import { BigInteger } from './jsbn';
import SecureRandom from './secure-random';
import { ECPointFp, ECCurveFp } from './ec';
declare class SM2 {
    eccP: BigInteger;
    eccA: BigInteger;
    eccB: BigInteger;
    eccN: BigInteger;
    eccGx: BigInteger;
    eccGy: BigInteger;
    rng: SecureRandom;
    ecCurve: ECCurveFp;
    ecPointG: ECPointFp;
    constructor();
    getBigRandom(limit: any): any;
    generateKeyPairHex(): {
        privkeyhex: string;
        pubkeyhex: string;
    };
    generateKeyPairBigInteger(): {
        privkey: any;
        pubkey: any;
    };
    formartXY(bg: any, needLength: number): any[] | null;
    kdf(xy: any, data: any): number;
    arrayCompare(src1: any, pos1: any, src2: any, pos2: any, len: number): 0 | -1;
    encrypt(pubkey: string, dataHex: string): string | null;
    decrypt(privkey: string, cipherHex: string): string | null;
    cipherToDer(c1x: any, c1y: any, c2: any, c3: any): any[];
    derDecode(der: any): {
        c1x: any[];
        c1y: any[];
        c2: any[];
        c3: any[];
    } | null;
}
export default SM2;
