|  |  | 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;
 |