/** * React Hooks for @bantis/local-cipher * Provides reactive hooks for encrypted browser storage */ import { SecureStorage } from '../core/SecureStorage'; import type { SecureStorageConfig, StorageEventType, StorageEventData, ExpiryOptions } from '../types'; /** * Initialize SecureStorage with custom configuration */ export declare function initializeSecureStorage(config?: SecureStorageConfig): SecureStorage; /** * Hook de React para usar SecureStorage de forma reactiva * Similar a useState pero con persistencia encriptada */ export declare function useSecureStorage(key: string, initialValue: T, storage?: SecureStorage): [T, (value: T) => Promise, boolean, Error | null]; /** * Hook para usar SecureStorage con expiración */ export declare function useSecureStorageWithExpiry(key: string, initialValue: T, expiryOptions: ExpiryOptions, storage?: SecureStorage): [T, (value: T) => Promise, boolean, Error | null]; /** * Hook para verificar si una clave existe en SecureStorage */ export declare function useSecureStorageItem(key: string, storage?: SecureStorage): [boolean, boolean, Error | null]; /** * Hook para escuchar eventos de SecureStorage */ export declare function useSecureStorageEvents(event: StorageEventType, handler: (data: StorageEventData) => void, storage?: SecureStorage): void; /** * Hook para obtener información de debug del almacenamiento */ export declare function useSecureStorageDebug(storage?: SecureStorage): { cryptoSupported: boolean; encryptedKeys: string[]; unencryptedKeys: string[]; totalKeys: number; config: Required; }; /** * Hook para usar un namespace de SecureStorage */ export declare function useNamespace(namespace: string, storage?: SecureStorage): import("..").NamespacedStorage; /** * Exportar la instancia de SecureStorage para uso directo */ export declare const secureStorage: SecureStorage; /** * Interface genérica para managers de almacenamiento asíncrono */ interface AsyncStorageManager { get(key: string): Promise; set(key: string, value: T): Promise; } /** * Hook para sincronizar el estado de React con el Storage Manager (por defecto localStore en texto plano) */ export declare function useLocalStore(key: string, initialValue: T, storageManager?: AsyncStorageManager): [T, (newValue: T) => Promise]; export {};