import { default as React } from 'react';
import { FieldValues } from 'react-hook-form';
import { BaseRHFProps, ComponentWithRHFControllerProps } from './types';
/**
 * HOC que envuelve un componente con la funcionalidad de Controller de react-hook-form.
 *
 * Este HOC automatiza la integración con react-hook-form proporcionando:
 * - Acceso automático al control del formulario mediante useFormContext
 * - Wrapper con Controller que maneja el estado del campo
 * - Props del field, fieldState y formState pasadas automáticamente al componente envuelto
 * - Props estándar de RHF (value, onChange, onBlur, name, error) extraídas del field y fieldState para compatibilidad
 * @template TComponentProps - Props del componente que será envuelto
 * @template TFieldValues - Tipo de los valores del formulario
 * @param Component - Componente a envolver
 * @returns Componente envuelto con funcionalidad RHF
 * @example
 * ```tsx
 * // Componente base sin RHF - puede usar field completo o props individuales
 * const MyInput = ({ field, fieldState, value, onChange, ...props }) => (
 *   <input {...field} {...props} />
 * );
 *
 * // O usar props estándar de RHF directamente
 * const MyTextField = ({ value, onChange, onBlur, error, ...props }) => (
 *   <TextField value={value} onChange={onChange} onBlur={onBlur} error={error} {...props} />
 * );
 *
 * // Componente envuelto con HOC
 * const RHFMyInput = withRHFController(MyInput);
 * const RHFMyTextField = withRHFController(MyTextField);
 *
 * // Uso en formulario
 * <RHFMyInput name="email" label="Email" />
 * <RHFMyTextField name="email" label="Email" />
 * ```
 */
export declare function withRHFController<TComponentProps extends Record<string, any> = {}, TFieldValues extends FieldValues = FieldValues>(Component: React.ComponentType<ComponentWithRHFControllerProps<TComponentProps, TFieldValues>>): React.ForwardRefExoticComponent<React.PropsWithoutRef<TComponentProps & BaseRHFProps<TFieldValues>> & React.RefAttributes<any>>;
//# sourceMappingURL=index.d.ts.map