export default class SM3Digest {
    ivByte: number[];
    iv: number[];
    tj: number[];
    BLOCK_BYTE_LEN: number;
    vbuf: number[];
    dataBuf: number[];
    dataBufLen: number;
    totalLen: number;
    constructor();
    ffj(x: number, y: number, z: number, i: number): number;
    ggj(x: number, y: number, z: number, i: number): number;
    p0(x: number): number;
    p1(x: number): number;
    /**
     * 循环左移
     */
    cycleLeft(x: number, moveLen: number): number;
    /**
     * 消息填充函数
     * @param data
     * @return
     */
    padding(data: number[]): number[];
    /**
     * 对数据进行分组迭代，每64个字节迭代一次
     * <br>1、对消息进行分组，由于是int类型，则每16个分一组，对每一组再调用{@link #expand}进行拓展
     * <br>2、使用上一轮的迭代结果V，调用{@link #cf}进行本轮迭代
     * <br>3、最后一轮迭代结果复制进缓冲区vbuf
     * @param message
     */
    iterate(message: number[]): void;
    /**
     * 消息数据拓展函数
     * @param b
     * @return
     */
    expand(b: number[]): any[][];
    /**
     * 迭代压缩函数
     *
     * @param v
     * @param w1
     * @param w2
     * @return
     */
    cf(v: number[], w1: number[], w2: number[]): any[];
    digest(data: number[]): number[];
    update(data: number[], pos: any, len: number): void;
    doFinal(): any[];
}
