import { Cryptor, CryptoInfo, Logger, LoggerOptions } from '@evan.network/dbcp';
/**
 * aes blob instance options
 */
export interface AesBlobOptions extends LoggerOptions {
    dfs: any;
}
/**
 * encrypts files, uploads them to DFS and keeps their references in an envelope
 *
 * @class      AesBlob (name)
 */
export declare class AesBlob extends Logger implements Cryptor {
    static defaultOptions: {
        keyLength: number;
        algorithm: string;
    };
    private readonly encodingUnencrypted;
    private readonly encodingEncrypted;
    options: any;
    algorithm: string;
    webCryptoAlgo: string;
    constructor(options?: AesBlobOptions);
    /**
     * convert string to array buffer
     *
     * @param      {string}  str     string to convert
     * @return     {any}  converted input
     */
    stringToArrayBuffer(str: any): any;
    getCryptoInfo(originator: string): CryptoInfo;
    chunkBuffer(buffer: any, chunkSize: any): any[];
    /**
     * generate key for cryptor/decryption
     *
     * @return     {any}  The iv from key.
  
     */
    generateKey(): Promise<any>;
    decryptBrowser(algorithm: any, buffer: any, decryptKey: any, iv: any): Promise<Buffer>;
    encryptBrowser(algorithm: any, buffer: any, encryptionKey: any, iv: any): Promise<Buffer>;
    /**
     * 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>;
}
