import { NamespacedStorage } from './NamespacedStorage'; import type { SecureStorageConfig, ExpiryOptions, IntegrityInfo, StorageEventType, EventListener } from '../types'; /** * SecureStorage v2 - API de alto nivel que imita localStorage con cifrado automático * Incluye: configuración personalizable, eventos, compresión, expiración, namespaces, rotación de claves */ export declare class SecureStorage { private static instance; private encryptionHelper; private eventEmitter; private keyRotation; private logger; private config; private cleanupInterval; private memoryCache; private constructor(); /** * Obtiene la instancia singleton de SecureStorage */ static getInstance(config?: SecureStorageConfig): SecureStorage; /** * Setup automatic cleanup of expired items */ private setupAutoCleanup; /** * Guarda un valor encriptado en localStorage */ setItem(key: string, value: string): Promise; /** * Guarda un valor con tiempo de expiración */ setItemWithExpiry(key: string, value: string, options: ExpiryOptions): Promise; /** * Recupera y desencripta un valor de localStorage */ getItem(key: string): Promise; /** * Elimina un valor de localStorage */ removeItem(key: string): Promise; /** * Verifica si existe un valor para la clave dada */ hasItem(key: string): Promise; /** * Limpia todos los datos encriptados */ clear(): void; /** * Limpia todos los items expirados */ cleanExpired(): Promise; /** * Verifica la integridad de un valor almacenado */ verifyIntegrity(key: string): Promise; /** * Obtiene información de integridad de un valor */ getIntegrityInfo(key: string): Promise; /** * Crea un namespace para organizar datos */ namespace(name: string): NamespacedStorage; /** * Rota todas las claves de encriptación */ rotateKeys(): Promise; /** * Exporta todos los datos encriptados como backup */ exportEncryptedData(): Promise; /** * Importa datos desde un backup */ importEncryptedData(backup: any): Promise; /** * Registra un listener de eventos */ on(event: StorageEventType, listener: EventListener): void; /** * Registra un listener de un solo uso */ once(event: StorageEventType, listener: EventListener): void; /** * Elimina un listener de eventos */ off(event: StorageEventType, listener: EventListener): void; /** * Elimina todos los listeners de un evento */ removeAllListeners(event?: StorageEventType): void; /** * Migra datos existentes no encriptados a formato encriptado */ migrateExistingData(keys: string[]): Promise; /** * Obtiene información de debug sobre el estado del almacenamiento */ getDebugInfo(): { cryptoSupported: boolean; encryptedKeys: string[]; unencryptedKeys: string[]; totalKeys: number; config: Required; }; /** * Calcula el checksum SHA-256 de un valor */ private calculateChecksum; /** * Cleanup on destroy */ destroy(): void; }