import { SymmetricCipherVersion } from "./SymmetricCipherVersion.js"; import { Aes256Key, AesKey } from "./SymmetricCipherUtils.js"; export type SymmetricSubKeys = { encryptionKey: AesKey; authenticationKey: AesKey | null; }; export type AeadSubKeys = SymmetricSubKeys & { encryptionKey: Aes256Key; authenticationKey: Aes256Key; }; /** * Derives keys for symmetric encryption schemes. * * @deprecated DO NOT USE THIS MANUALLY - EXPORTED ONLY FOR COMPATIBILITY TESTS! */ export declare class SymmetricKeyDeriver { /** * Derives encryption and authentication keys as needed for the symmetric cipher implementations */ deriveSubKeys(key: AesKey, symmetricCipherVersion: SymmetricCipherVersion): SymmetricSubKeys; /** * Derive encryption and authentication keys for AEAD from groupKey in the correct version and kdfNonce for the instance type. */ deriveSubKeysAeadFromGroupKey(groupKey: AesKey, kdfNonce: Uint8Array, globalInstanceTypeId: string): AeadSubKeys; /** * Derive encryption and authentication keys for AEAD from the session key for the instance type. */ deriveSubKeysAeadFromSessionKey(sessionKey: AesKey, globalInstanceTypeId: string): AeadSubKeys; private deriveAeadSubKeys; } export declare const SYMMETRIC_KEY_DERIVER: SymmetricKeyDeriver;