import React from 'react';
import { IValidateVales } from './validate';
export declare type IUseForm = {
    values: IValidateVales;
    validate?: (values: IValidateVales, form: any) => boolean;
    rerenderOnUpdate?: boolean;
    autoValidate?: boolean;
    valueDefault?: any;
    validDefault?: boolean;
};
export declare type IUseFormOnChangeOptions = {
    rerenderOnUpdate?: boolean;
};
declare const useForm: (props: IUseForm) => {
    value: any;
    values: any;
    valid: boolean;
    init: () => void;
    validate: () => Promise<boolean>;
    onChange: (...args: [Array<[string, any, any?, IUseFormOnChangeOptions?]>] | [string, any, any?, IUseFormOnChangeOptions?]) => Promise<void>;
    clear: () => void;
    updateForm: React.Dispatch<React.SetStateAction<{
        value: any;
        values: any;
        valid: boolean;
    }>>;
};
export default useForm;
