import type { BuiltInFunctionParameter, BuiltInFunctionParameterValidator, NodeInput } from './AST';
import { ComplexType } from './AST';
interface FunctionParameterValidationSpec {
    name?: string;
    classes?: string[];
    validators?: BuiltInFunctionParameterValidator[];
    allowedStrings?: string[];
    identifier?: boolean;
    allowInfinity?: boolean;
}
/**
 * Value validation shared by built-in signatures and `arguments` blocks.
 *
 * This module is intentionally value-oriented: it does not know how to evaluate
 * expressions or resolve variables. Callers provide evaluated `NodeInput`
 * values and receive boolean results, making the same validator vocabulary
 * usable for native built-ins and MATLAB-like function declarations.
 */
declare class FunctionValidation {
    /**
     * Return the MATLAB-like runtime class name for a value.
     */
    static className(value: NodeInput): string;
    /**
     * Extract numeric elements from a scalar or numeric array.
     */
    static numericElements(value: NodeInput): ComplexType[] | undefined;
    /**
     * Check whether a value matches a supported class constraint.
     */
    static matchesClass(value: NodeInput, className: string): boolean;
    /**
     * Remove validators implied by more specific validators.
     */
    static normalizeValidators(validators?: BuiltInFunctionParameterValidator[]): BuiltInFunctionParameterValidator[];
    /**
     * Check whether a value can be used as a dimension scalar.
     */
    static isDimensionValue(value: NodeInput, allowEmpty: boolean): boolean;
    /**
     * Check whether a value is a valid dimension vector.
     */
    static isDimensionVector(value: NodeInput, allowEmpty: boolean): boolean;
    /**
     * Check classes, literal allowed strings, identifier syntax, and validators.
     */
    static matchesParameter(value: NodeInput, spec: FunctionParameterValidationSpec): boolean;
    /**
     * Match a built-in parameter before considering alternatives.
     */
    static matchesBuiltInParameterBase(value: NodeInput, parameter: BuiltInFunctionParameter): boolean;
    /**
     * Match a built-in parameter, including alternative parameter shapes.
     */
    static matchesBuiltInParameter(value: NodeInput, parameter: BuiltInFunctionParameter): boolean;
    /**
     * Check an evaluated argument list against declarative built-in parameters.
     */
    static argumentsMatchBuiltInParameters(args: NodeInput[], parameters?: BuiltInFunctionParameter[]): boolean;
    /**
     * Check one low-level validator predicate.
     */
    static matchesBuiltInValidator(value: NodeInput, validator: BuiltInFunctionParameterValidator, allowInfinity?: boolean): boolean;
    /**
     * Map MATLAB `mustBe*` validator names to built-in signature validators.
     */
    static builtInValidatorForArgumentValidator(validator: string): BuiltInFunctionParameterValidator | undefined;
}
export type { FunctionParameterValidationSpec };
export { FunctionValidation };
declare const _default: {
    FunctionValidation: typeof FunctionValidation;
};
export default _default;
