/// <reference types="node" />
import { APIBase } from './api_base';
/**
 * @internal
 */
export declare abstract class APICrypto extends APIBase {
    private cryptoConfig;
    /**
     * AES算法pkcs7 padding Decoder
     * @param buff 需要解码的Buffer
     * @returns {Blob|ArrayBuffer|Array.<T>|string|*}
     * @constructor
     */
    pkcs7Decoder(buff: Buffer): Buffer;
    /**
     * AES算法pkcs7 padding Encoder
     * @param buff 需要编码码的Buffer
     * @returns {Blob|ArrayBuffer|Array.<T>|string|*}
     * @constructor
     */
    pkcs7Encoder(buff: Buffer): Buffer;
    /**
     * 初始化AES解密的配置信息
     * @param corpId 企业微信的corpId，当为第三方套件回调事件时，corpId的内容为suiteId
     * @param token 企业微信的token，当为第三方套件回调事件时，token的内容为套件的token
     * @param encodingAESKey 企业微信的encodingAESKey，当为第三方套件回调事件时，encodingAESKey的内容为套件的encodingAESKey
     */
    initCrypto(corpId: string, token: string, encodingAESKey: string): void;
    /**
     * 生成签名
     * @param timestamp String|Number 时间戳
     * @param nonce String 随机串
     * @param encrypt String 加密的数据
     * @returns {*} String 排好序的签名
     */
    rawSignature(timestamp: number, nonce: string, encrypt: string): string;
    /**
     * 对给定的消息进行AES加密
     * @param msg String 需要加密的明文
     * @param corpId 可选 需要对比的corpId，如果第三方回调时默认是suiteId，也可自行传入作为匹配处理
     * @returns {string} 加密后的结果
     */
    encrypt(message: string, corpId: string): string;
    /**
     * 对给定的密文进行AES解密
     * @param str 需要解密的密文
     * @param corpId 可选 需要对比的corpId，如果第三方回调时默认是suiteId，也可自行传入作为匹配处理
     * @returns {string} 解密后的结果
     */
    decrypt(str: string, corpId: string): string;
}
