import type { AsyncValidatorRules, ValidatorMode } from '../utils/validation/types';
import { ValidationResult } from '../utils/validation/validationResult';
import type { FormState } from './useForm/types';
export type AsyncValidationResults<FormSchema> = Partial<Record<keyof FormSchema, ValidationResult>>;
export type TriggerAsyncValidation<FormSchema> = (field: keyof FormSchema, formState: FormState<FormSchema>, mode: ValidatorMode) => void;
type UseAsyncValidator<FormSchema> = {
    asyncValidationResults: AsyncValidationResults<FormSchema>;
    triggerAsyncValidation: TriggerAsyncValidation<FormSchema>;
    clearAsyncValidationResults: (field: keyof FormSchema) => void;
};
export declare const useAsyncValidator: <FormSchema>(asyncRules?: AsyncValidatorRules<FormSchema>) => UseAsyncValidator<FormSchema>;
export {};
