export type EncryptionAlgorithm = 'AES-256-GCM' | 'AES-256-CBC' | 'AES-256-CTR' | 'RSA-OAEP' | 'ChaCha20-Poly1305' | 'XChaCha20-Poly1305' | 'Kyber-KEM' | 'Dilithium-Signature' | 'none'; export interface EncryptionResult { encryptedBlob: Blob; iv: string; algorithm: EncryptionAlgorithm; salt: string; } export interface DecryptionParams { encryptedBlob: Blob; password: string; iv: string; algorithm: EncryptionAlgorithm; salt: string; } export interface AlgorithmInfo { name: EncryptionAlgorithm; displayName: string; description: string; isSupported: boolean; requiresExternalLibrary: boolean; category: 'symmetric' | 'asymmetric' | 'post-quantum' | 'none'; recommended: boolean; } /** * Enhanced Encryption Service using Strategy Pattern * * SOLID Principles Applied: * - Single Responsibility: Manages encryption strategy selection and execution * - Open/Closed: Open for new strategies, closed for modification * - Liskov Substitution: All strategies are interchangeable * - Interface Segregation: IEncryptionStrategy is focused * - Dependency Inversion: Depends on IEncryptionStrategy abstraction * * Design Patterns: * - Strategy Pattern: Different encryption algorithms * - Factory Pattern: Creates appropriate strategy based on algorithm */ export declare class EnhancedEncryptionService { private readonly strategies; constructor(); /** * Initialize all encryption strategies (Factory Pattern) */ private initializeStrategies; /** * Get all available algorithms with their info */ getAvailableAlgorithms(): AlgorithmInfo[]; /** * Get supported algorithms only */ getSupportedAlgorithms(): AlgorithmInfo[]; /** * Encrypt file using selected algorithm (Strategy Pattern) */ encryptFile(params: { file: Blob; password: string; algorithm: EncryptionAlgorithm; salt: string; iv: string; }): Promise; /** * Decrypt file using selected algorithm (Strategy Pattern) */ decryptFile(params: DecryptionParams): Promise; /** * Validate password strength */ validatePassword(password: string): { valid: boolean; message?: string; }; /** * Calculate password strength (0-100) */ calculatePasswordStrength(password: string): number; /** * Generate cryptographically secure random bytes */ generateRandomBytes(length: number): Uint8Array; /** * Generate IV for specific algorithm */ generateIV(algorithm: EncryptionAlgorithm): string; /** * Generate salt for key derivation */ generateSalt(algorithm: EncryptionAlgorithm): string; /** * Utility: Convert ArrayBuffer to hex string */ private arrayBufferToHex; } //# sourceMappingURL=enhanced-encryption.service.d.ts.map