import { EncryptCallBackValue } from './type';

/**
 * aes 加密
 * @param {string} encrypt
 * @param {string} key
 * @param {Object} options 配置对象, 可配置如下
 * options.mode {String} 加密模式, 值 可能为 CBC (默认值) CFB OFB ECB, 如果是其他值 报错
 * options.keySize {Number},秘钥长度字节数, 共三种可能,  为16, 24, 32, 如果是其他值, 返回 错误
 * options.padding {String}, 填充, 值可能为 pkcs7(默认) pkcs5 zero iso10126 ansix923, 如果是其他值报错
 * options.encoding {String} 输出的编码, base64 (默认)  hex ,  如果是其他, 报错
 * options.iv {String} 偏移量, 当是 ECB模式时,要为空, 哪怕赋值也会被忽略, 其他模式不能为空
 *
 * @param {Function} complete 参数为 Object,其中
 * object.value: 加密后的内容, 如果加密失败 则是 null
 * object.error: 加密失败后的 错误提示
 */
declare function aes(encrypt: string, key: string, options: {
    [k: string]: any;
}, complete: (p: EncryptCallBackValue) => void): void;
/**
 * des 加密
 * @param {string} encrypt
 * @param {string} key
 * @param {Object} options 配置对象, 可配置如下
 * options.mode {String} 加密模式, 值 可能为 CBC (默认值) CFB OFB ECB, 如果是其他值 报错
 * options.padding {String}, 填充, 值可能为 pkcs7(默认) pkcs5 zero iso10126 ansix923, 如果是其他值报错
 * options.encoding {String} 输出的编码, base64 (默认)  hex ,  如果是其他, 报错
 * options.iv {String} 偏移量, 当是 ECB模式时,要为空, 哪怕赋值也会被忽略, 其他模式不能为空
 *
 * @param {Function} complete 参数为 Object,其中
 * object.value: 加密后的内容, 如果加密失败 则是 null
 * object.error: 加密失败后的 错误提示
 */
declare function des(encrypt: string, key: string, options: {
    [k: string]: any;
}, complete: (p: EncryptCallBackValue) => void): void;
declare const encryptUtil: {
    aes: typeof aes;
    des: typeof des;
};
export { encryptUtil };
