/// <reference types="node" />
import { Cryptor, CryptoInfo, Logger, LoggerOptions } from '@evan.network/dbcp';
/**
 * aes instance options
 */
export interface AesOptions extends LoggerOptions {
}
export declare class Aes extends Logger implements Cryptor {
    static defaultOptions: {
        keyLength: number;
        algorithm: string;
    };
    private readonly encodingUnencrypted;
    private readonly encodingEncrypted;
    options: any;
    constructor(options?: AesOptions);
    /**
     * convert string to array buffer
     *
     * @param      {string}  str     string to convert
     * @return     {Buffer}  converted input
     */
    stringToArrayBuffer(str: any): ArrayBuffer | SharedArrayBuffer;
    getCryptoInfo(originator: string): CryptoInfo;
    /**
     * generate key for cryptor/decryption
     *
     * @return     {any}  The iv from key.
  
     */
    generateKey(): Promise<any>;
    /**
     * encrypt a message
     *
     * @param      {any}     message  The message
     * @param      {any}     options  cryptor options
     * @return     {Buffer}  encrypted message
     */
    encrypt(message: any, options: any): Promise<Buffer>;
    /**
     * decrypt a message
     *
     * @param      {Buffer}  message  The message
     * @param      {any}     options  decryption options
     * @return     {any}  decrypted message
     */
    decrypt(message: Buffer, options: any): Promise<any>;
}
