import { KMSClient } from '@aws-sdk/client-kms';
import { AwsKmsConfig, DataKeyObject, DataKeyPairObject, EncryptDecryptOptions } from '../../TYPES';
/**
 * Class to execute KMS methods using AWS KMS
 *
 * @class
 */
export declare class AwsKms {
    /**
     * Configurations used for AWS KMS
     */
    CONFIG: AwsKmsConfig;
    /**
     * AWS KMS client instance
     */
    client: KMSClient;
    /**
     * Creates an instance of AwsKms.
     *
     * @constructor
     * @param config
     */
    constructor(config: AwsKmsConfig);
    /**
     * Generates encryption keys for symmetric encryption algorithm
     *
     * @async
     * @returns
     */
    generateDataKey(): Promise<DataKeyObject>;
    /**
     * Generates encryption keys for asymmetric encryption algorithm
     *
     * @async
     * @returns
     */
    generateDataKeyPair(): Promise<DataKeyPairObject>;
    /**
     * Encrypts a given string using AES-256-CBC
     *
     * @async
     * @param [plainText='']
     * @param [options]
     * @returns
     */
    encrypt(plainText?: string, options?: EncryptDecryptOptions): Promise<string>;
    /**
     * Decrypts a given string using AES-256-CBC
     *
     * @async
     * @param [ciphertext='']
     * @param [options]
     * @returns
     */
    decrypt(ciphertext?: string, options?: EncryptDecryptOptions): Promise<string>;
}
