export interface RegisterInput { ref: any; required?: boolean; min?: number | Date; max?: number | Date; maxLength?: number; pattern?: RegExp; custom?: (data: string | number) => boolean; minLength?: number; } export interface Field { ref: any; required?: boolean; min?: number | Date; max?: number | Date; maxLength?: number; pattern?: RegExp; custom?: (data: string | number) => boolean; minLength?: number; eventAttached?: boolean; watch?: boolean; mutationWatcher?: any; options?: Array<{ ref: any; eventAttached?: boolean; mutationWatcher?: any; }>; } export interface ErrorMessages { [key: string]: { string: boolean; } | {}; } export default function useForm({ mode }?: { mode: 'onSubmit' | 'onBlur' | 'onChange'; }): { register: (data: RegisterInput) => void; handleSubmit: (callback: (Object: any, e: any) => void) => (e: any) => void; errors: ErrorMessages; watch: (filedNames?: string | string[]) => any; };