import type { AsyncFieldValueValidator, AsyncFormValueValidator, FieldValueValidator, FormValueValidator, Schema, Validator } from "@sjsf/form";
import { type ErrorsTransformerOptions } from "../errors.js";
import { type CompiledValidateFunction } from "../internals.js";
export type ValidateFunctions = {
    [key: string]: CompiledValidateFunction;
};
interface LegacyValidatorOptions {
    /** @deprecated use `validatorRetriever` instead */
    validateFunctions: ValidateFunctions;
    /** @deprecated use `validatorRetriever` instead */
    augmentSuffix?: string;
    validatorRetriever?: (schema: Schema) => CompiledValidateFunction;
}
interface ModernValidatorOptions {
    validatorRetriever: (schema: Schema) => CompiledValidateFunction;
}
export type ValidatorOptions = LegacyValidatorOptions | ModernValidatorOptions;
export declare function createValidator(options: ValidatorOptions): Validator;
export type FormValueValidatorOptions = ValidatorOptions & ErrorsTransformerOptions;
export declare function createFormValueValidator<T>(options: FormValueValidatorOptions): FormValueValidator<T>;
export declare function createFieldValueValidator(options: ValidatorOptions): FieldValueValidator;
export declare function createAsyncFormValueValidator<T>(options: FormValidatorOptions): AsyncFormValueValidator<T>;
export declare function createAsyncFieldValueValidator(options: ValidatorOptions): AsyncFieldValueValidator;
export type FormValidatorOptions = ValidatorOptions & FormValueValidatorOptions;
export declare function createFormValidatorFactory<T>(vOptions: ValidatorOptions): (options: Omit<FormValidatorOptions, keyof ValidatorOptions>) => Validator & FormValueValidator<T> & FieldValueValidator;
export declare function createAsyncFormValidatorFactory<T>(vOptions: ValidatorOptions): (options: Omit<FormValidatorOptions, keyof ValidatorOptions>) => Validator & AsyncFormValueValidator<T> & AsyncFieldValueValidator;
export {};
