interface UseControlledStateOptions<T> {
    value?: T;
    defaultValue?: T;
    onChange?: (value: T) => void;
    initialValue?: T;
}
interface UseControlledStateReturn<T> {
    value: T;
    isControlled: boolean;
    setValue: (newValue: T) => void;
    reset: () => void;
}
/**
 * Hook genérico para manejar estado controlado y no controlado
 * @param options - Opciones de configuración
 * @returns Objeto con el valor actual, si es controlado, y funciones para manejarlo
 */
export declare const useControlledState: <T>(options: UseControlledStateOptions<T>) => UseControlledStateReturn<T>;
/**
 * Hook especializado para valores primitivos (string, number, boolean)
 */
export declare const useControlledPrimitive: <T extends string | number | boolean>(options: UseControlledStateOptions<T>) => UseControlledStateReturn<T>;
/**
 * Hook especializado para arrays
 */
export declare const useControlledArray: <T>(options: UseControlledStateOptions<T[]>) => UseControlledStateReturn<T[]>;
/**
 * Hook especializado para objetos
 */
export declare const useControlledObject: <T extends Record<string, unknown>>(options: UseControlledStateOptions<T>) => UseControlledStateReturn<T>;
export {};
//# sourceMappingURL=useControlledState.d.ts.map