import { KeyPair, DerivedKeyResult, KeyDerivationConfig } from './types';
/**
 * Generate a random AES-256 key.
 * Returns the key as a hex string (64 characters).
 */
export declare function generateSymmetricKey(): Promise<string>;
/**
 * Import a symmetric key from a hex string.
 */
export declare function importSymmetricKey(hexKey: string): Promise<CryptoKey>;
/**
 * Generate a random initialization vector (nonce) for AES-GCM.
 * Returns 12 bytes as required by GCM.
 */
export declare function generateIV(): Uint8Array;
/**
 * Generate random bytes.
 */
export declare function randomBytes(length: number): Uint8Array;
/**
 * Generate an RSA key pair for hybrid encryption.
 * Uses RSA-OAEP with SHA-256, compatible with FluxEncrypt.
 */
export declare function generateKeyPair(keySize?: 2048 | 4096): Promise<KeyPair>;
/**
 * Export a public key to PEM format (SPKI).
 */
export declare function exportPublicKey(key: CryptoKey): Promise<string>;
/**
 * Export a private key to PEM format (PKCS8).
 */
export declare function exportPrivateKey(key: CryptoKey): Promise<string>;
/**
 * Import a public key from PEM format.
 */
export declare function importPublicKey(pem: string): Promise<CryptoKey>;
/**
 * Import a private key from PEM format.
 */
export declare function importPrivateKey(pem: string): Promise<CryptoKey>;
/**
 * Derive a key from a password using PBKDF2.
 * Compatible with FluxEncrypt's key derivation.
 */
export declare function deriveKeyFromPassword(password: string, salt?: Uint8Array, config?: KeyDerivationConfig): Promise<DerivedKeyResult>;
/**
 * Export a derived key as a hex string.
 */
export declare function exportDerivedKey(key: CryptoKey): Promise<string>;
//# sourceMappingURL=keys.d.ts.map