import React from 'react'; import { RegisterOptions } from './validator'; import { Control, FieldError, FieldPath, FieldPathValue, FieldValues, Noop, RefCallBack, UseFormStateReturn } from './'; export type ControllerFieldState = { invalid: boolean; isTouched: boolean; isDirty: boolean; isValidating: boolean; error?: FieldError; }; export type ControllerRenderProps = FieldPath> = { onChange: (...event: any[]) => void; onBlur: Noop; value: FieldPathValue; disabled?: boolean; name: TName; ref: RefCallBack; }; export type UseControllerProps = FieldPath> = { name: TName; rules?: Omit, 'valueAsNumber' | 'valueAsDate' | 'setValueAs' | 'disabled'>; shouldUnregister?: boolean; defaultValue?: FieldPathValue; control?: Control; disabled?: boolean; }; export type UseControllerReturn = FieldPath> = { field: ControllerRenderProps; formState: UseFormStateReturn; fieldState: ControllerFieldState; }; /** * Render function to provide the control for the field. * * @returns all the event handler, and relevant field and form state. * * @example * ```tsx * const { field, fieldState, formState } = useController(); * * ({ * * })} * /> * ``` */ export type ControllerProps = FieldPath> = { render: ({ field, fieldState, formState, }: { field: ControllerRenderProps; fieldState: ControllerFieldState; formState: UseFormStateReturn; }) => React.ReactElement; } & UseControllerProps; //# sourceMappingURL=controller.d.ts.map