declare type TError = { message: string; }; declare type TValue = T & { id?: string; }; export default function useForm(initialValue: TValue, onSubmit: (value: T) => Promise | void, onValidate?: { [key in keyof T]?: (errors: TError[], value: T[key], values: T) => void; }): { handleSubmit: (event?: any) => void; handleBlur: (field: keyof T) => { [key in keyof T]?: (event: any) => void; }[keyof T]; handleChange: (field: keyof T, selector?: (event: T2) => any) => (e: T2) => void; values: TValue; errors: { [key_1 in keyof T]?: TError[]; }; touched: { [key_2 in keyof T]?: boolean; }; }; export {};