152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { ContainerWithChildren } from './container.js'
 | 
						|
import Node from './node.js'
 | 
						|
 | 
						|
declare namespace Declaration {
 | 
						|
  export interface DeclarationRaws extends Record<string, unknown> {
 | 
						|
    /**
 | 
						|
     * The space symbols before the node. It also stores `*`
 | 
						|
     * and `_` symbols before the declaration (IE hack).
 | 
						|
     */
 | 
						|
    before?: string
 | 
						|
 | 
						|
    /**
 | 
						|
     * The symbols between the property and value for declarations.
 | 
						|
     */
 | 
						|
    between?: string
 | 
						|
 | 
						|
    /**
 | 
						|
     * The content of the important statement, if it is not just `!important`.
 | 
						|
     */
 | 
						|
    important?: string
 | 
						|
 | 
						|
    /**
 | 
						|
     * Declaration value with comments.
 | 
						|
     */
 | 
						|
    value?: {
 | 
						|
      raw: string
 | 
						|
      value: string
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  export interface DeclarationProps {
 | 
						|
    /** Whether the declaration has an `!important` annotation. */
 | 
						|
    important?: boolean
 | 
						|
    /** Name of the declaration. */
 | 
						|
    prop: string
 | 
						|
    /** Information used to generate byte-to-byte equal node string as it was in the origin input. */
 | 
						|
    raws?: DeclarationRaws
 | 
						|
    /** Value of the declaration. */
 | 
						|
    value: string
 | 
						|
  }
 | 
						|
 | 
						|
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
 | 
						|
  export { Declaration_ as default }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * It represents a class that handles
 | 
						|
 * [CSS declarations](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_declarations)
 | 
						|
 *
 | 
						|
 * ```js
 | 
						|
 * Once (root, { Declaration }) {
 | 
						|
 *   const color = new Declaration({ prop: 'color', value: 'black' })
 | 
						|
 *   root.append(color)
 | 
						|
 * }
 | 
						|
 * ```
 | 
						|
 *
 | 
						|
 * ```js
 | 
						|
 * const root = postcss.parse('a { color: black }')
 | 
						|
 * const decl = root.first?.first
 | 
						|
 *
 | 
						|
 * decl.type       //=> 'decl'
 | 
						|
 * decl.toString() //=> ' color: black'
 | 
						|
 * ```
 | 
						|
 */
 | 
						|
declare class Declaration_ extends Node {
 | 
						|
  parent: ContainerWithChildren | undefined
 | 
						|
  raws: Declaration.DeclarationRaws
 | 
						|
 | 
						|
  type: 'decl'
 | 
						|
 | 
						|
  /**
 | 
						|
   * It represents a specificity of the declaration.
 | 
						|
   *
 | 
						|
   * If true, the CSS declaration will have an
 | 
						|
   * [important](https://developer.mozilla.org/en-US/docs/Web/CSS/important)
 | 
						|
   * specifier.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * const root = postcss.parse('a { color: black !important; color: red }')
 | 
						|
   *
 | 
						|
   * root.first.first.important //=> true
 | 
						|
   * root.first.last.important  //=> undefined
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  get important(): boolean
 | 
						|
  set important(value: boolean)
 | 
						|
 | 
						|
  /**
 | 
						|
   * The property name for a CSS declaration.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * const root = postcss.parse('a { color: black }')
 | 
						|
   * const decl = root.first.first
 | 
						|
   *
 | 
						|
   * decl.prop //=> 'color'
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  get prop(): string
 | 
						|
 | 
						|
  set prop(value: string)
 | 
						|
 | 
						|
  /**
 | 
						|
   * The property value for a CSS declaration.
 | 
						|
   *
 | 
						|
   * Any CSS comments inside the value string will be filtered out.
 | 
						|
   * CSS comments present in the source value will be available in
 | 
						|
   * the `raws` property.
 | 
						|
   *
 | 
						|
   * Assigning new `value` would ignore the comments in `raws`
 | 
						|
   * property while compiling node to string.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * const root = postcss.parse('a { color: black }')
 | 
						|
   * const decl = root.first.first
 | 
						|
   *
 | 
						|
   * decl.value //=> 'black'
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  get value(): string
 | 
						|
  set value(value: string)
 | 
						|
 | 
						|
  /**
 | 
						|
   * It represents a getter that returns `true` if a declaration starts with
 | 
						|
   * `--` or `$`, which are used to declare variables in CSS and SASS/SCSS.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * const root = postcss.parse(':root { --one: 1 }')
 | 
						|
   * const one = root.first.first
 | 
						|
   *
 | 
						|
   * one.variable //=> true
 | 
						|
   * ```
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * const root = postcss.parse('$one: 1')
 | 
						|
   * const one = root.first
 | 
						|
   *
 | 
						|
   * one.variable //=> true
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  get variable(): boolean
 | 
						|
  constructor(defaults?: Declaration.DeclarationProps)
 | 
						|
 | 
						|
  assign(overrides: Declaration.DeclarationProps | object): this
 | 
						|
  clone(overrides?: Partial<Declaration.DeclarationProps>): this
 | 
						|
  cloneAfter(overrides?: Partial<Declaration.DeclarationProps>): this
 | 
						|
  cloneBefore(overrides?: Partial<Declaration.DeclarationProps>): this
 | 
						|
}
 | 
						|
 | 
						|
declare class Declaration extends Declaration_ {}
 | 
						|
 | 
						|
export = Declaration
 |