/// <reference types="node" />
import { Buffer } from 'buffer';
/**
 * sm4 加密
 *
 * @param {byteArray} message - 要加密的明文，32 GB 以下
 * @param {byteArray} key - 密钥，16 字节
 * @param {byteArray} iv - IV 或随机数，16 字节（ECB 模式下不需要）
 * @param {string} mode - 分组密码模式 CBC, ECB, CFB, OFB, CTR
 * @param {boolean} noPadding - 如果设置为 true，则不添加 PKCS#7 填充，默认为 false
 *
 * @return {byteArray} - 密文
 */
export declare function encrypt(message: number[] | Buffer | Uint8Array, key: number[] | Buffer | Uint8Array, iv: number[] | Buffer | Uint8Array, mode?: string, noPadding?: boolean): number[];
/**
 * sm4 解密
 *
 * @param {byteArray} cipherText - 密文
 * @param {byteArray} key - 密钥，16 字节
 * @param {byteArray} iv - IV 或随机数，16 字节（ECB 模式下不需要）
 * @param {string} mode - 分组密码模式 CBC, ECB, CFB, OFB, CTR
 * @param {boolean] ignorePadding - 如果为 true，则忽略 ECB/CBC 模式下的填充问题，默认为 false
 *
 * @return {byteArray} - 明文
 */
export declare function decrypt(cipherText: number[] | Buffer | Uint8Array, key: number[] | Buffer | Uint8Array, iv: number[] | Buffer | Uint8Array, mode?: string, ignorePadding?: boolean): number[];
/**
 * 创建 IV，16 字节
 *
 * @returns {byteArray} - IV
 */
export declare function createIV(): number[] | Buffer | Uint8Array;
