Spaces:
Sleeping
Sleeping
| 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 | |