import type { EncryptionMetadata } from '@dynamic-labs-wallet/core';
export declare const ENCRYPTION_VERSION_LEGACY = "v1";
export declare const ENCRYPTION_VERSION_CURRENT = "v2";
export declare const PBKDF2_ALGORITHM = "PBKDF2";
export declare const PBKDF2_HASH_ALGORITHM = "SHA-256";
export declare const AES_GCM_ALGORITHM = "AES-GCM";
export declare const AES_GCM_LENGTH = 256;
export declare const ENCRYPTION_VERSIONS: {
    readonly v1: {
        readonly version: "v1";
        readonly algorithm: "AES-GCM";
        readonly keyDerivation: "PBKDF2";
        readonly iterations: 100000;
        readonly hashAlgorithm: "SHA-256";
        readonly algorithmLength: 256;
    };
    readonly v2: {
        readonly version: "v2";
        readonly algorithm: "AES-GCM";
        readonly keyDerivation: "PBKDF2";
        readonly iterations: 1000000;
        readonly hashAlgorithm: "SHA-256";
        readonly algorithmLength: 256;
    };
};
export declare const PBKDF2_ITERATIONS: 1000000;
export declare const PBKDF2_ITERATIONS_LEGACY: 100000;
export type EncryptionVersion = (typeof ENCRYPTION_VERSIONS)[keyof typeof ENCRYPTION_VERSIONS];
/**
 * Encrypts data using the specified encryption version.
 * Always uses the latest encryption configuration for new encryptions by default.
 */
export declare const encryptData: ({ data, password, version, }: {
    data: string;
    password: string;
    version?: string;
}) => Promise<{
    salt: string;
    iv: string;
    cipher: string;
    version: string;
}>;
/**
 * Decrypts data with version-based configuration.
 * Uses the version field from the data to determine encryption parameters.
 * Falls back to legacy version for backward compatibility if no version is specified.
 */
export declare const decryptData: ({ data, password, }: {
    data: {
        salt: string;
        iv: string;
        cipher: string;
        version?: string;
    };
    password: string;
}) => Promise<string>;
/**
 * Gets encryption metadata for a specific version.
 * Used when we need to include metadata in legacy systems or APIs that require it.
 */
export declare const getEncryptionMetadataForVersion: (version: string) => EncryptionMetadata;
//# sourceMappingURL=encryption.d.ts.map