import postcssValueParser from "postcss-value-parser"; import type { Unit } from "./data"; export declare class FunctionArgument { private readonly raws; readonly node: postcssValueParser.Node; constructor(before: string, node: postcssValueParser.Node, after?: string); toString(): string; } export type AlphaArgument = AlphaArgumentValid | AlphaArgumentInvalid; export declare abstract class AbsAlphaArgument { private readonly div; private readonly tokens; readonly value: V; constructor(div: FunctionArgument, tokens: FunctionArgument[], alpha: V); toAlphaString(): string; toString(): string; } export declare class AlphaArgumentValid extends AbsAlphaArgument { get valid(): true; } export declare class AlphaArgumentInvalid extends AbsAlphaArgument { get valid(): false; } export type NumberWithUnit = { number: number; unit: U; }; export type ValuesArgument = ValuesArgumentComplete | ValuesArgumentIncomplete; declare abstract class AbsValuesArgument { private readonly tokens; readonly value: V; constructor(tokens: FunctionArgument[], value: V); toString(): string; } export declare class ValuesArgumentComplete extends AbsValuesArgument { readonly complete = true; } export declare class ValuesArgumentIncomplete extends AbsValuesArgument { readonly complete = false; constructor(tokens: FunctionArgument[]); } export declare function parseFunction(input: string | postcssValueParser.Node, expectName: string | string[]): null | { rawName: string; arguments: FunctionArgument[]; }; export declare function parseNumberUnit(input: FunctionArgument | undefined, expectUnits: U[]): NumberWithUnit | null; export declare function parseInput(input: string | postcssValueParser.Node | undefined): postcssValueParser.Node | null; export declare function isPercentRange(node: NumberWithUnit<"" | "%"> | null): node is NumberWithUnit<"" | "%">; type ParseArgumentValuesOption = { generate: (args: FunctionArgument[]) => V | null; }; type ParseArgumentValuesWithCommaOption = ParseArgumentValuesOption & { argCount: number; }; export declare function parseArgumentValues(functionArguments: FunctionArgument[], option: ParseArgumentValuesWithCommaOption): { values: ValuesArgument; alpha: AlphaArgument | null; }; export declare function parseArgumentValuesWithSpace(functionArguments: FunctionArgument[], option: ParseArgumentValuesOption): { values: ValuesArgument; alpha: AlphaArgument | null; }; export declare function parseArgumentValuesWithComma(functionArguments: FunctionArgument[], option: ParseArgumentValuesWithCommaOption): { values: ValuesArgument; alpha: AlphaArgument | null; }; export {};