import { FieldArrayItem, FormControl, FormRegisterOptions } from '../FormControl'; import { FormFieldHTMLElement, FormFieldRegisterOptions } from '../FormFieldControl'; export declare type UseFormReturn = Record> = { control: FormControl; id: string; register(options: FormRegisterOptions): { id: string; ref(el: HTMLFormElement): void; }; register(name: TName, options?: FormFieldRegisterOptions): { name: string; form: string; ref(el: FormFieldHTMLElement | null): void; }; unregister(name: TName): void; useFormFieldState(name: TName): { isDirty: boolean; isTouched: boolean; error: string | null; } | undefined; useFormFieldValue(name: TName): TFormFields[TName] | undefined; useFieldArrayValue(name: TName): TFormFields[TName] | undefined; useFormValue(): Partial; useFormState(): { isDirty: boolean; isSubmitting: boolean; }; useFieldArray(name: TName, bind?: { keyField: TKeyField | ((item: TItem) => string); items: TItem[] | undefined | null; loading?: boolean; returnTrueValues?: boolean; }): { fields: FieldArrayItem[]; addItem: () => void; removeItem: (item: number | string) => void; }; requestSubmit(): void; reset(defaultValues?: Partial): void; setValue(name: TName, value: TFormFields[TName]): void; setDefaultValue(name: TName, value: TFormFields[TName]): void; }; export declare function useForm = Record>(options?: { defaultValues?: Partial; }): UseFormReturn;