| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 | declare namespace postcssValueParser {  interface BaseNode {    /**     * The offset, inclusive, inside the CSS value at which the node starts.     */    sourceIndex: number;    /**     * The offset, exclusive, inside the CSS value at which the node ends.     */    sourceEndIndex: number;    /**     * The node's characteristic value     */    value: string;  }  interface ClosableNode {    /**     * Whether the parsed CSS value ended before the node was properly closed     */    unclosed?: true;  }  interface AdjacentAwareNode {    /**     * The token at the start of the node     */    before: string;    /**     * The token at the end of the node     */    after: string;  }  interface CommentNode extends BaseNode, ClosableNode {    type: "comment";  }  interface DivNode extends BaseNode, AdjacentAwareNode {    type: "div";  }  interface FunctionNode extends BaseNode, ClosableNode, AdjacentAwareNode {    type: "function";    /**     * Nodes inside the function     */    nodes: Node[];  }  interface SpaceNode extends BaseNode {    type: "space";  }  interface StringNode extends BaseNode, ClosableNode {    type: "string";    /**     * The quote type delimiting the string     */    quote: '"' | "'";  }  interface UnicodeRangeNode extends BaseNode {    type: "unicode-range";  }  interface WordNode extends BaseNode {    type: "word";  }  /**   * Any node parsed from a CSS value   */  type Node =    | CommentNode    | DivNode    | FunctionNode    | SpaceNode    | StringNode    | UnicodeRangeNode    | WordNode;  interface CustomStringifierCallback {    /**     * @param node The node to stringify     * @returns The serialized CSS representation of the node     */    (nodes: Node): string | undefined;  }  interface WalkCallback {    /**     * @param node  The currently visited node     * @param index The index of the node in the series of parsed nodes     * @param nodes The series of parsed nodes     * @returns Returning `false` will prevent traversal of descendant nodes (only applies if `bubble` was set to `true` in the `walk()` call)     */    (node: Node, index: number, nodes: Node[]): void | boolean;  }  /**   * A CSS dimension, decomposed into its numeric and unit parts   */  interface Dimension {    number: string;    unit: string;  }  /**   * A wrapper around a parsed CSS value that allows for inspecting and walking nodes   */  interface ParsedValue {    /**     * The series of parsed nodes     */    nodes: Node[];    /**     * Walk all parsed nodes, applying a callback     *     * @param callback A visitor callback that will be executed for each node     * @param bubble   When set to `true`, walking will be done inside-out instead of outside-in     */    walk(callback: WalkCallback, bubble?: boolean): this;  }  interface ValueParser {    /**     * Decompose a CSS dimension into its numeric and unit part     *     * @param value The dimension to decompose     * @returns An object representing `number` and `unit` part of the dimension or `false` if the decomposing fails     */    unit(value: string): Dimension | false;    /**     * Serialize a series of nodes into a CSS value     *     * @param nodes  The nodes to stringify     * @param custom A custom stringifier callback     * @returns The generated CSS value     */    stringify(nodes: Node | Node[], custom?: CustomStringifierCallback): string;    /**     * Walk a series of nodes, applying a callback     *     * @param nodes    The nodes to walk     * @param callback A visitor callback that will be executed for each node     * @param bubble   When set to `true`, walking will be done inside-out instead of outside-in     */    walk(nodes: Node[], callback: WalkCallback, bubble?: boolean): void;    /**     * Parse a CSS value into a series of nodes to operate on     *     * @param value The value to parse     */    new (value: string): ParsedValue;    /**     * Parse a CSS value into a series of nodes to operate on     *     * @param value The value to parse     */    (value: string): ParsedValue;  }}declare const postcssValueParser: postcssValueParser.ValueParser;export = postcssValueParser;
 |