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
 |