/** * Key management service (KMS) driver. */ export interface KmsDriver { getKeyUrlPrefix(): string; newKmsClient(config: Map, keyUrl: string): KmsClient; } /** * Key management service (KMS) client. */ export interface KmsClient { supported(keyUri: string): boolean; encrypt(plaintext: Buffer): Promise; decrypt(ciphertext: Buffer): Promise; } /** * Register a KMS driver. * @param kmsDriver - the KMS driver to register */ export declare function registerKmsDriver(kmsDriver: KmsDriver): void; /** * Get the KMS driver for the given key URL. * @param keyUrl - the key URL */ export declare function getKmsDriver(keyUrl: string): KmsDriver; /** * Register a KMS client. * @param kmsClient - the KMS client to register */ export declare function registerKmsClient(kmsClient: KmsClient): void; /** * Get the KMS client for the given key URL. * @param keyUrl - the key URL */ export declare function getKmsClient(keyUrl: string): KmsClient | null; /** * Clear the KMS clients. */ export declare function clearKmsClients(): void;