/** Category of formula function for validation and translation. */
export type FormulaFunctionCategory = 'xdiff' | 'aggregative' | 'math' | 'growth' | 'date' | 'window' | 'string' | 'scalar';
/** Metadata for a formula function (e.g. DDIFF, SUM). */
export interface FormulaFunctionMeta {
    category: FormulaFunctionCategory;
    /** Inclusive minimum number of parenthesized arguments. */
    minArgs: number;
    /** Inclusive maximum number of parenthesized arguments; use Infinity for unbounded (e.g. concat). */
    maxArgs: number;
    /** Required date level for xdiff functions (e.g. DateLevels.Days for DDIFF). */
    requiredDateLevel?: string;
    /** Argument type constraint; 'datetime' means args must be datetime dimensions. */
    argType?: 'datetime';
}
/**
 * Formula functions explicitly not supported in custom formulas (engine may expose them elsewhere).
 * Keys are uppercase for lookup.
 */
export declare const UNSUPPORTED_FORMULA_FUNCTIONS: ReadonlySet<string>;
/** Registry keyed by formula function name (uppercase). */
export declare const FORMULA_FUNCTION_SCHEMAS: Record<string, FormulaFunctionMeta>;
/**
 * Returns inclusive arg bounds for a known formula function, or undefined if not in the registry.
 */
export declare function getFormulaFunctionArgBounds(formulaFunctionName: string): Pick<FormulaFunctionMeta, 'minArgs' | 'maxArgs'> | undefined;
/**
 * Returns formula function names that are xdiff (SDIFF, MNDIFF, HDIFF, DDIFF, MDIFF, QDIFF, YDIFF).
 */
export declare function getXDiffFormulaFunctions(): readonly string[];
/**
 * Returns the required date level for an xdiff function, or undefined if not an xdiff function.
 */
export declare function getRequiredDateLevel(formulaFunctionName: string): string | undefined;
/**
 * Returns formula function names for a given category.
 */
export declare function getFormulaFunctionsByCategory(category: FormulaFunctionCategory): readonly string[];
/**
 * Human-readable arity text for validation errors (e.g. "1 or 2 parameters", "at least 2 parameters").
 */
export declare function formatFormulaFunctionArityMessage(minArgs: number, maxArgs: number): string;
