141 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import Container, {
 | ||
|   ContainerProps,
 | ||
|   ContainerWithChildren
 | ||
| } from './container.js'
 | ||
| 
 | ||
| declare namespace AtRule {
 | ||
|   export interface AtRuleRaws extends Record<string, unknown> {
 | ||
|     /**
 | ||
|      * The space symbols after the last child of the node to the end of the node.
 | ||
|      */
 | ||
|     after?: string
 | ||
| 
 | ||
|     /**
 | ||
|      * The space between the at-rule name and its parameters.
 | ||
|      */
 | ||
|     afterName?: string
 | ||
| 
 | ||
|     /**
 | ||
|      * The space symbols before the node. It also stores `*`
 | ||
|      * and `_` symbols before the declaration (IE hack).
 | ||
|      */
 | ||
|     before?: string
 | ||
| 
 | ||
|     /**
 | ||
|      * The symbols between the last parameter and `{` for rules.
 | ||
|      */
 | ||
|     between?: string
 | ||
| 
 | ||
|     /**
 | ||
|      * The rule’s selector with comments.
 | ||
|      */
 | ||
|     params?: {
 | ||
|       raw: string
 | ||
|       value: string
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Contains `true` if the last child has an (optional) semicolon.
 | ||
|      */
 | ||
|     semicolon?: boolean
 | ||
|   }
 | ||
| 
 | ||
|   export interface AtRuleProps extends ContainerProps {
 | ||
|     /** Name of the at-rule. */
 | ||
|     name: string
 | ||
|     /** Parameters following the name of the at-rule. */
 | ||
|     params?: number | string
 | ||
|     /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
 | ||
|     raws?: AtRuleRaws
 | ||
|   }
 | ||
| 
 | ||
|   // eslint-disable-next-line @typescript-eslint/no-use-before-define
 | ||
|   export { AtRule_ as default }
 | ||
| }
 | ||
| 
 | ||
| /**
 | ||
|  * Represents an at-rule.
 | ||
|  *
 | ||
|  * ```js
 | ||
|  * Once (root, { AtRule }) {
 | ||
|  *   let media = new AtRule({ name: 'media', params: 'print' })
 | ||
|  *   media.append(…)
 | ||
|  *   root.append(media)
 | ||
|  * }
 | ||
|  * ```
 | ||
|  *
 | ||
|  * If it’s followed in the CSS by a `{}` block, this node will have
 | ||
|  * a nodes property representing its children.
 | ||
|  *
 | ||
|  * ```js
 | ||
|  * const root = postcss.parse('@charset "UTF-8"; @media print {}')
 | ||
|  *
 | ||
|  * const charset = root.first
 | ||
|  * charset.type  //=> 'atrule'
 | ||
|  * charset.nodes //=> undefined
 | ||
|  *
 | ||
|  * const media = root.last
 | ||
|  * media.nodes   //=> []
 | ||
|  * ```
 | ||
|  */
 | ||
| declare class AtRule_ extends Container {
 | ||
|   /**
 | ||
|    * An array containing the layer’s children.
 | ||
|    *
 | ||
|    * ```js
 | ||
|    * const root = postcss.parse('@layer example { a { color: black } }')
 | ||
|    * const layer = root.first
 | ||
|    * layer.nodes.length           //=> 1
 | ||
|    * layer.nodes[0].selector      //=> 'a'
 | ||
|    * ```
 | ||
|    *
 | ||
|    * Can be `undefinded` if the at-rule has no body.
 | ||
|    *
 | ||
|    * ```js
 | ||
|    * const root = postcss.parse('@layer a, b, c;')
 | ||
|    * const layer = root.first
 | ||
|    * layer.nodes //=> undefined
 | ||
|    * ```
 | ||
|    */
 | ||
|   nodes: Container['nodes'] | undefined
 | ||
|   parent: ContainerWithChildren | undefined
 | ||
| 
 | ||
|   raws: AtRule.AtRuleRaws
 | ||
|   type: 'atrule'
 | ||
|   /**
 | ||
|    * The at-rule’s name immediately follows the `@`.
 | ||
|    *
 | ||
|    * ```js
 | ||
|    * const root  = postcss.parse('@media print {}')
 | ||
|    * const media = root.first
 | ||
|    * media.name //=> 'media'
 | ||
|    * ```
 | ||
|    */
 | ||
|   get name(): string
 | ||
|   set name(value: string)
 | ||
| 
 | ||
|   /**
 | ||
|    * The at-rule’s parameters, the values that follow the at-rule’s name
 | ||
|    * but precede any `{}` block.
 | ||
|    *
 | ||
|    * ```js
 | ||
|    * const root  = postcss.parse('@media print, screen {}')
 | ||
|    * const media = root.first
 | ||
|    * media.params //=> 'print, screen'
 | ||
|    * ```
 | ||
|    */
 | ||
|   get params(): string
 | ||
| 
 | ||
|   set params(value: string)
 | ||
| 
 | ||
|   constructor(defaults?: AtRule.AtRuleProps)
 | ||
|   assign(overrides: AtRule.AtRuleProps | object): this
 | ||
|   clone(overrides?: Partial<AtRule.AtRuleProps>): this
 | ||
|   cloneAfter(overrides?: Partial<AtRule.AtRuleProps>): this
 | ||
|   cloneBefore(overrides?: Partial<AtRule.AtRuleProps>): this
 | ||
| }
 | ||
| 
 | ||
| declare class AtRule extends AtRule_ {}
 | ||
| 
 | ||
| export = AtRule
 |