import type { ReactNode } from 'react'; import type { Control, DeepPartialSkipArrayKey, FieldPath, FieldPathValue, FieldPathValues, FieldValues } from './types'; type WatchDefaultValue = TFieldName extends FieldPath ? FieldPathValue : DeepPartialSkipArrayKey; type WatchValue = TFieldName extends FieldPath[] | readonly FieldPath[] ? FieldPathValues : TFieldName extends FieldPath ? FieldPathValue : TFieldValues; type WatchRenderValue = TComputeValue extends undefined ? WatchValue : TComputeValue; export type WatchProps | FieldPath[] | readonly FieldPath[] | undefined = undefined, TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues, TComputeValue = undefined> = { control?: Control; /** * @deprecated This prop will be renamed to `name` in the next major release. * Use `name` instead. */ names?: TFieldName; name?: TFieldName; disabled?: boolean; exact?: boolean; defaultValue?: WatchDefaultValue; compute?: (value: WatchValue) => TComputeValue; render: (value: WatchRenderValue) => ReactNode; }; /** * Watch component that subscribes to form field changes and re-renders when watched fields update. * * @param control - The form control object from useForm * @param name - Can be field name, array of field names, or undefined to watch the entire form * @param disabled - Disable subscription * @param exact - Whether to watch exact field names or not * @param defaultValue - The default value to use if the field is not yet set * @param compute - Function to compute derived values from watched fields * @param render - The function that receives watched values and returns ReactNode * @returns The result of calling render function with watched values * * @example * The `Watch` component only re-render when the values of `foo`, `bar`, and `baz.qux` change. * The types of `foo`, `bar`, and `baz.qux` are precisely inferred. * * ```tsx * const { control } = useForm(); * *
{foo}{bar}{baz_qux}
} * /> * ``` */ export declare const Watch: | FieldPath[] | readonly FieldPath[] | undefined = undefined, TContext = any, TTransformedValues = TFieldValues, TComputeValue = undefined>({ render, names, ...props }: WatchProps) => ReactNode; export {}; //# sourceMappingURL=watch.d.ts.map