import { FormState, FormSubmitHandler, FormValidation, FormValidationState, MyChangeEvent, MyFocusEvent } from "./models";
export declare function useForm<TFieldValues extends Record<string, any>>(initialForm?: FormState<TFieldValues>, formValidations?: FormValidation): {
    formState: FormState<TFieldValues>;
    setFormState: (newState: Partial<FormState<TFieldValues>>) => void;
    onInputChange: (event: MyChangeEvent) => void;
    onResetForm: () => void;
    formValidation: FormValidationState;
    errors: FormValidationState;
    isFormValid: boolean;
    handleSubmit: (onSubmit: FormSubmitHandler<TFieldValues>) => (event: React.FormEvent) => Promise<void>;
    isSubmitted: boolean;
    onBlur: (event: MyFocusEvent) => Promise<void>;
    touchedFields: Set<string>;
    dirtyFields: Set<string>;
    subscribe: (fn: Function) => () => boolean;
};
