import type { Ajv, ErrorObject, ValidateFunction } from "ajv";
import type { AsyncFieldValueValidator, AsyncFormValueValidator, FieldValueValidator, FormValueValidator, Validator } from "@sjsf/form";
import { type ErrorsTransformerOptions } from "../errors.js";
export type CompiledValidateFunction = {
    (this: Ajv | any, data: any): boolean;
} & Pick<ValidateFunction, "errors">;
export type ValidateFunctions = {
    [key: string]: CompiledValidateFunction;
};
export interface ValidatorOptions {
    validateFunctions: ValidateFunctions;
    augmentSuffix?: string;
}
export declare function createValidator(options: ValidatorOptions): Validator;
export interface FormValueValidatorOptions extends ValidatorOptions, ErrorsTransformerOptions {
}
export declare function createFormValueValidator(options: FormValueValidatorOptions): FormValueValidator<ErrorObject>;
export declare function createFieldValueValidator(options: ValidatorOptions): FieldValueValidator<ErrorObject>;
export declare function createAsyncFormValueValidator(options: FormValidatorOptions): AsyncFormValueValidator<ErrorObject>;
export declare function createAsyncFieldValueValidator(options: ValidatorOptions): AsyncFieldValueValidator<ErrorObject>;
export interface FormValidatorOptions extends ValidatorOptions, FormValueValidatorOptions {
}
export declare function createFormValidator(options: FormValidatorOptions): Validator & FormValueValidator<ErrorObject<string, Record<string, any>, unknown>> & FieldValueValidator<ErrorObject<string, Record<string, any>, unknown>>;
export declare function createAsyncFormValidator(options: FormValidatorOptions): Validator & AsyncFormValueValidator<ErrorObject<string, Record<string, any>, unknown>> & AsyncFieldValueValidator<ErrorObject<string, Record<string, any>, unknown>>;
