///
export type PBKDF2Options = {
iterations: number;
keyLength: number;
hash: string;
};
/**
* Derives a cryptographic key using PBKDF2.
*
* @param password - The password from which to derive the key.
* @param salt - The cryptographic salt.
* @param opts - Options for the derivation.
*
* @returns The derived key.
*/
export declare function pbkdf2(password: string, salt: Buffer, opts: PBKDF2Options): Promise;
/**
* Seals data using AES-256-GCM encryption.
*
* @param data - The data to encrypt.
* @param key - The 32-byte secret key.
* @param iv - The 12-byte initialization vector.
*
* @throws If the key is not 32 bytes.
* @throws If the iv is not 12 bytes.
*
* @returns The encrypted data.
*/
export declare function aesGCMEncrypt(data: Uint8Array, key: Uint8Array, iv: Uint8Array): Promise;
/**
* Unseals data using AES-256-GCM decryption.
*
* @remarks
* The authentication tag shall be appended to the encryptedData.
*
* @param encryptedData - The data to decrypt.
* @param key - The 32-byte secret key.
* @param iv - The 12-byte initialization vector.
*
* @throws If the key is not 32 bytes.
* @throws If the iv is not 12 bytes.
*
* @returns The decrypted data.
*/
export declare function aesGCMDecrypt(encryptedData: Uint8Array, key: Uint8Array, iv: Uint8Array): Promise;