import { Observable } from 'rxjs'; import type { SecureStorageConfig, StorageEventData, ExpiryOptions, EncryptedBackup } from '../types'; /** * Servicio de Angular para SecureStorage v2 * Proporciona una API reactiva usando RxJS Observables * * @example * constructor(private secureStorage: SecureStorageService) {} * * // Guardar * this.secureStorage.setItem('token', 'abc123').subscribe(); * * // Leer * this.secureStorage.getItem('token').subscribe(token => console.log(token)); * * // Escuchar eventos * this.secureStorage.events$.subscribe(event => console.log(event)); */ export declare class SecureStorageService { private storage; private debugInfo$; private eventsSubject$; /** * Observable de eventos de storage */ events$: Observable; constructor(config?: SecureStorageConfig); /** * Guarda un valor encriptado * @param key - Clave * @param value - Valor a guardar * @returns Observable que completa cuando se guarda */ setItem(key: string, value: string): Observable; /** * Guarda un valor con expiración * @param key - Clave * @param value - Valor a guardar * @param options - Opciones de expiración * @returns Observable que completa cuando se guarda */ setItemWithExpiry(key: string, value: string, options: ExpiryOptions): Observable; /** * Recupera un valor desencriptado * @param key - Clave * @returns Observable con el valor o null */ getItem(key: string): Observable; /** * Elimina un valor * @param key - Clave a eliminar * @returns Observable que completa cuando se elimina */ removeItem(key: string): Observable; /** * Verifica si existe una clave * @param key - Clave a verificar * @returns Observable con true/false */ hasItem(key: string): Observable; /** * Limpia todos los datos encriptados */ clear(): void; /** * Limpia todos los items expirados * @returns Observable con el número de items eliminados */ cleanExpired(): Observable; /** * Verifica la integridad de un valor * @param key - Clave a verificar * @returns Observable con true si es válido */ verifyIntegrity(key: string): Observable; /** * Obtiene información de integridad de un valor * @param key - Clave * @returns Observable con información de integridad */ getIntegrityInfo(key: string): Observable; /** * Crea un namespace para organizar datos * @param name - Nombre del namespace * @returns Instancia de NamespacedStorage */ namespace(name: string): import("..").NamespacedStorage; /** * Rota todas las claves de encriptación * @returns Observable que completa cuando termina la rotación */ rotateKeys(): Observable; /** * Exporta todos los datos como backup * @returns Observable con el backup */ exportEncryptedData(): Observable; /** * Importa datos desde un backup * @param backup - Backup a importar * @returns Observable que completa cuando termina la importación */ importEncryptedData(backup: EncryptedBackup): Observable; /** * Migra datos existentes a formato encriptado * @param keys - Array de claves a migrar * @returns Observable que completa cuando termina la migración */ migrateExistingData(keys: string[]): Observable; /** * Obtiene información de debug como Observable * @returns Observable con información de debug que se actualiza automáticamente */ getDebugInfo$(): Observable; /** * Obtiene información de debug de forma síncrona */ private getDebugInfo; /** * Helper para guardar objetos JSON * @param key - Clave * @param value - Objeto a guardar */ setObject(key: string, value: T): Observable; /** * Helper para guardar objetos JSON con expiración * @param key - Clave * @param value - Objeto a guardar * @param options - Opciones de expiración */ setObjectWithExpiry(key: string, value: T, options: ExpiryOptions): Observable; /** * Helper para recuperar objetos JSON * @param key - Clave * @returns Observable con el objeto parseado o null */ getObject(key: string): Observable; /** * Registra un listener para un tipo de evento específico * @param event - Tipo de evento * @param handler - Función manejadora */ on(event: any, handler: (data: StorageEventData) => void): void; /** * Elimina un listener de evento * @param event - Tipo de evento * @param handler - Función manejadora */ off(event: any, handler: (data: StorageEventData) => void): void; /** * Observable filtrado por tipo de evento * @param eventType - Tipo de evento a filtrar * @returns Observable con eventos del tipo especificado */ onEvent$(eventType: string): Observable; }