/// <reference types="node" />
/// <reference types="node" />
import { SecureVaultOptions } from '../types';
export interface RealEncryptionResult {
    encrypted: string;
    authTag: string;
    salt: string;
    iv: string;
    algorithm: string;
    iterations: number;
    timestamp: number;
    memoryKb: number;
    parallelism: number;
    keyDerivation: 'Argon2id' | 'PBKDF2-Fallback';
}
export declare class CryptoEngine {
    private static readonly ALGORITHM;
    private static readonly KEY_SIZE;
    private static readonly IV_SIZE;
    private static readonly SALT_SIZE;
    private static readonly TAG_SIZE;
    private static readonly ARGON2_MEMORY;
    private static readonly ARGON2_TIME;
    private static readonly ARGON2_PARALLELISM;
    private static readonly PBKDF2_ITERATIONS;
    private argon2Instance;
    constructor();
    private initializeArgon2;
    generateSecureRandom(length: number): Uint8Array;
    generateSalt(length?: number): string;
    deriveKey(password: string, salt: string, options?: {
        memoryCost?: number;
        timeCost?: number;
        parallelism?: number;
    }): Promise<{
        key: Buffer;
        method: 'Argon2id' | 'PBKDF2-Fallback';
    }>;
    encrypt(data: any, password: string, options?: Partial<SecureVaultOptions>): Promise<RealEncryptionResult>;
    decrypt(vault: RealEncryptionResult, password: string): Promise<any>;
    hash(data: string): string;
    hmac(data: string, key: string): string;
    secureErase(data: any): void;
    private wordArrayToUint8Array;
    validateEncryptionParams(vault: any): boolean;
    getCryptoInfo(): {
        implementation: 'Node.js Crypto' | 'CryptoJS Fallback';
        algorithm: string;
        keyDerivation: string;
        secure: boolean;
    };
    isSecureContext(): boolean;
}
//# sourceMappingURL=CryptoEngine.d.ts.map