/// import { FormFieldControl, FormFieldHTMLElement, FormFieldRegisterOptions } from './FormFieldControl'; export declare type FieldArrayItem = { key: string; item: TItem | undefined; getName: (name: string) => string; }; export declare type FormRegisterOptions = Record> = { ref?: React.MutableRefObject; onReset: (e: Event) => void; onSubmit: (data: TFormFields, event?: SubmitEvent) => any | Promise; }; export declare class FormControl = Record> { #private; constructor(options?: { defaultValues?: Partial; }); get props(): { ref(el: HTMLFormElement): void; }; get id(): string; get value(): Partial; get isDirty(): boolean; set isDirty(value: boolean); get isSubmitting(): boolean; startUpdate(): void; endUpdate(): void; getFieldValueChangedCallbacks(name: TName): ((defer?: boolean) => void)[]; getFieldStateChangedCallbacks(name: TName): ((defer?: boolean) => void)[]; 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; requestSubmit(): void; useFormState(): this; useFormFieldState(name: TName): Partial<{ [TName_1 in keyof TFormFields]: FormFieldControl; }>[TName]; useFormFieldValue(name: TName): TFormFields[TName] | undefined; useFieldArrayValue(name: TName): Partial[TName]; useFormValue(): Partial; useFieldArray(name: TName, bind?: { keyField: TKeyField | ((item: TItem) => string); items: TItem[] | undefined; loading?: boolean; returnTrueValues?: boolean; }): { fields: { key: string; item: TItem | undefined; getName: (name: string) => string; }[]; addItem: () => void; removeItem: (item: number | string) => void; }; reset(defaultValues?: Partial): void; setValue(name: TName, value: TFormFields[TName] | undefined): void; setDefaultValue(name: TName, value: TFormFields[TName] | undefined): void; }