///
import { KmsOperationContext, KmsProviderConfig } from './types';
export declare function createKmsCryptoProvider(config?: KmsProviderConfig): Promise<{
readonly reconfigure: (newConfig: KmsProviderConfig) => Promise;
readonly decrypt: (context: KmsOperationContext, cipherText: string) => Promise;
readonly encrypt: (keyArn: string, context: KmsOperationContext, plaintext: string | Buffer) => Promise;
readonly generateDataKey: (keyArn: string, context: KmsOperationContext) => Promise<{
Plaintext: Buffer;
CiphertextBlob: string;
}>;
readonly decryptText: (context: KmsOperationContext, cipherText: string) => Promise;
readonly decryptorInContext: (context: KmsOperationContext, returnOriginalOnFailure: boolean) => (cipher: string) => Promise;
readonly textDecryptorInContext: (context: KmsOperationContext, returnOriginalOnFailure: boolean) => (cipher: string) => Promise;
}>;
export declare type KmsCrypto = Awaited>;