import { IsFlatObject, Noop } from './utils'; import { RegisterOptions } from './validator'; export type InternalFieldName = string; export type FieldName = IsFlatObject extends true ? Extract : string; export type CustomElement = Partial & { name: FieldName; type?: string; value?: any; disabled?: boolean; checked?: boolean; options?: HTMLOptionsCollection; files?: FileList | null; focus?: Noop; }; export type FieldValue = TFieldValues[InternalFieldName]; export type FieldValues = Record; export type NativeFieldValue = string | number | boolean | null | undefined | unknown[]; export type FieldElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | CustomElement; export type Ref = FieldElement; export type Field = { _f: { ref: Ref; name: InternalFieldName; refs?: HTMLInputElement[]; mount?: boolean; } & RegisterOptions; }; export type FieldRefs = Partial<{ [key: InternalFieldName]: Field | FieldRefs; }>; //# sourceMappingURL=fields.d.ts.map