import { ReactNode } from 'react';
export declare type FormInstanceHandles = {
    submit: () => void;
};
export declare type FormValues = Record<string, any>;
export declare type FormFieldErrors = Record<string, any>;
export declare type FormErrors = Record<string, any>;
export declare type FormState<FV> = {
    values?: FV;
    vertical: boolean;
    requiredFields: string[];
    formContext: FormContextProps;
    prevValues?: FV;
    prevErrors?: FormErrors;
    prevRequiredMark?: ReactNode;
};
export declare type Field = {
    focus: (errors: FormFieldErrors) => void;
};
export declare type FormContextProps = {
    getValues: () => Readonly<FormValues> | undefined;
    getValue: (name: string, def?: any) => any;
    setValue: (name: string, value: any) => void;
    getErrors: (name: string) => {
        [key: string]: any;
    };
    setRequiredField: (name: string, required: boolean) => void;
    registerField: (name: string, field: Field) => void;
    unregisterField: (name: string) => void;
    getRequiredMark: () => ReactNode;
};
