import type { FunctionNode, WordNode, Node } from 'postcss-value-parser'; export declare function turnToRad(turn: number): number; export declare function degToRad(deg: number): number; export declare function gradToRad(grad: number): number; export declare function radToDeg(rad: number): number; export declare function gradToDeg(grad: number): number; export declare function turnToDeg(turn: number): number; declare const toRad: { turn: typeof turnToRad; deg: typeof degToRad; grad: typeof gradToRad; }; declare const toDeg: { grad: typeof gradToDeg; turn: typeof turnToDeg; rad: typeof radToDeg; }; export declare function filterOnlyWords(node: Node): boolean; /** * Try to compute a calculation from a Node. * * This validates that the calculation has a valid order which is: * - `{Number} {Operation} {Number} ...` * * Only basic arithmetic operations are allowed, and it has to be separate words * similarly to how CSS calc works: * * - `sin(3.14159 * 2)` -> is valid * - `sin(3.14159*2)` -> is not valid * * * @param {FunctionNode} nodes Nodes to be parsed * @param {Boolean} ignoreUnit Whether units are ignored or converted to radians * @return {FunctionNode} Returns the node, if it managed to calculate, it will * simplify inner nodes. * @see https://www.w3.org/TR/css-values-4/#trig-funcs */ export declare function computeCalculation(nodes: Node[], ignoreUnit?: boolean): Node[]; export declare function functionNodeToWordNode(fn: FunctionNode): WordNode; /** * Formats a number that's intended to be put into CSS. * * Due to processing of Number(number.toFixed(decimals)) this will get * rid of ending zeroes, usually helping with the rounding which is the * intended effect. * * For example, converting 4.71238898038469 radians into deg leads to * 270.000000000669786 which is going to result as 270 unless a * precision of 10 is chosen. * * @param {Number} number Number to be formatted * @param {Number} decimals Precision of decimals, CSS doesn't usually handle further than 5. */ export declare function formatResultingNumber(number: number, decimals: number): string; export declare function parseNumber(value: string): false | { number: any; unit: string; }; declare type validateNodeReturn = [WordNode, number] | undefined; export declare function validateNode(node: FunctionNode, parseUnit?: boolean): validateNodeReturn; export { toRad, toDeg };