export class AES_CBC {
    static encrypt(data: any, key: any, padding: boolean | undefined, iv: any): Uint8Array;
    static decrypt(data: any, key: any, padding: boolean | undefined, iv: any): Uint8Array;
    constructor(key: any, iv: any, padding: boolean | undefined, aes: any);
    aes: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
}
export class AES_CCM {
    static encrypt(clear: any, key: any, nonce: any, adata: any, tagsize?: number): Uint8Array;
    static decrypt(cipher: any, key: any, nonce: any, adata: any, tagsize?: number): Uint8Array;
    constructor(key: any, nonce: any, adata: any, tagSize: number | undefined, dataLength: any, aes: any);
    counter: number;
    dataLength: any;
    aes: any;
    tagSize: number;
    nonce: any;
    lengthSize: number;
    adata: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
    AES_CCM_calculate_iv(): void;
    _cbc_mac_process(data: any): void;
    AES_CCM_Encrypt_process(data: any): Uint8Array;
    AES_CCM_Encrypt_finish(): Uint8Array;
    AES_CCM_Decrypt_process(data: any): Uint8Array;
    AES_CCM_Decrypt_finish(): Uint8Array;
    AES_CTR_set_options(nonce: any, counter: any, size: any): void;
}
export class AES_CFB {
    static encrypt(data: any, key: any, iv: any): Uint8Array;
    static decrypt(data: any, key: any, iv: any): Uint8Array;
    constructor(key: any, iv: any, aes: any);
    aes: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
}
export class AES_CMAC {
    static bytes(data: any, key: any): Uint8Array | null;
    constructor(key: any);
    bufferLength: number;
    k: Uint8Array;
    cbc: AES_CBC;
    buffer: Uint8Array;
    result: Uint8Array | null;
    process(data: any): AES_CMAC;
    finish(): AES_CMAC;
}
export class AES_CTR {
    static encrypt(data: any, key: any, nonce: any): Uint8Array;
    static decrypt(data: any, key: any, nonce: any): Uint8Array;
    constructor(key: any, nonce: any, aes: any);
    aes: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
    AES_CTR_set_options(nonce: any, counter: any, size: any): void;
}
export class AES_ECB {
    static encrypt(data: any, key: any, padding?: boolean): Uint8Array;
    static decrypt(data: any, key: any, padding?: boolean): Uint8Array;
    constructor(key: any, padding: boolean | undefined, aes: any);
    aes: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
}
export class AES_GCM {
    static encrypt(cleartext: any, key: any, nonce: any, adata: any, tagsize: any): Uint8Array;
    static decrypt(ciphertext: any, key: any, nonce: any, adata: any, tagsize: any): Uint8Array;
    constructor(key: any, nonce: any, adata: any, tagSize: number | undefined, aes: any);
    tagSize: number;
    gamma0: number;
    counter: number;
    aes: any;
    adata: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
    AES_GCM_Encrypt_process(data: any): Uint8Array;
    AES_GCM_Encrypt_finish(): Uint8Array;
    AES_GCM_Decrypt_process(data: any): Uint8Array;
    AES_GCM_Decrypt_finish(): Uint8Array;
    AES_GCM_decrypt(data: any): Uint8Array;
    AES_GCM_encrypt(data: any): Uint8Array;
    _gcm_mac_process(data: any): void;
}
export class AES_OFB {
    static encrypt(data: any, key: any, iv: any): Uint8Array;
    static decrypt(data: any, key: any, iv: any): Uint8Array;
    constructor(key: any, iv: any, aes: any);
    aes: any;
    encrypt(data: any): Uint8Array;
    decrypt(data: any): Uint8Array;
}
export class BigNumber {
    static fromString(str: any): BigNumber;
    static fromNumber(num: any): BigNumber;
    static fromArrayBuffer(buffer: any): BigNumber;
    static fromConfig(obj: any): BigNumber;
    constructor(num: any);
    limbs: Uint32Array | undefined;
    bitLength: number | undefined;
    sign: number | undefined;
    toString(radix: any): string;
    toBytes(): Uint8Array;
    /**
     * Downgrade to Number
     */
    valueOf(): number;
    clamp(b: any): BigNumber;
    slice(f: any, b: any): BigNumber;
    negate(): BigNumber;
    compare(that: any): number;
    add(that: any): any;
    subtract(that: any): any;
    square(): BigNumber;
    divide(that: any): {
        quotient: BigNumber;
        remainder: BigNumber;
    };
    multiply(that: any): BigNumber;
    isMillerRabinProbablePrime(rounds: any): boolean;
    isProbablePrime(paranoia?: number): boolean;
}
export namespace BigNumber {
    export { BigNumber_extGCD as extGCD };
    export const ZERO: BigNumber;
    export const ONE: BigNumber;
}
export class HmacSha1 extends Hmac {
    constructor(password: any, verify: any);
    reset(): HmacSha1;
}
export class HmacSha256 extends Hmac {
    constructor(password: any, verify: any);
    reset(): HmacSha256;
}
export class HmacSha512 extends Hmac {
    constructor(password: any, verify: any);
    reset(): HmacSha512;
}
export class IllegalArgumentError extends Error {
    constructor(...args: any[]);
}
export class IllegalStateError extends Error {
    constructor(...args: any[]);
}
export class Modulus extends BigNumber {
    static _Montgomery_reduce(a: any, n: any): BigNumber;
    coefficient: number | undefined;
    comodulus: BigNumber | undefined;
    comodulusRemainder: BigNumber | undefined;
    comodulusRemainderSquare: BigNumber | undefined;
    /**
     * Modular reduction
     */
    reduce(a: any): any;
    /**
     * Modular inverse
     */
    inverse(a: any): any;
    /**
     * Modular exponentiation
     */
    power(g: any, e: any): BigNumber;
}
export function Pbkdf2HmacSha1(password: any, salt: any, count: any, length: any): Uint8Array;
export function Pbkdf2HmacSha256(password: any, salt: any, count: any, length: any): Uint8Array;
export function Pbkdf2HmacSha512(password: any, salt: any, count: any, length: any): Uint8Array;
export class RSA {
    constructor(key: any);
    key: {
        0: Modulus;
        1: BigNumber;
    };
    encrypt(msg: any): RSA;
    result: any;
    decrypt(msg: any): RSA;
}
export class RSA_OAEP {
    constructor(key: any, hash: any, label: any);
    rsa: RSA;
    hash: any;
    label: any;
    encrypt(data: any, random: any): Uint8Array;
    decrypt(data: any): Uint8Array;
    RSA_MGF1_generate(seed: any, length?: number): Uint8Array;
}
export class RSA_PKCS1_v1_5 {
    constructor(key: any, hash: any);
    rsa: RSA;
    hash: any;
    sign(data: any): any;
    verify(signature: any, data: any): void;
}
export class RSA_PSS {
    constructor(key: any, hash: any, saltLength?: number);
    rsa: RSA;
    hash: any;
    saltLength: number;
    sign(data: any, random: any): any;
    verify(signature: any, data: any): void;
    RSA_MGF1_generate(seed: any, length?: number): Uint8Array;
}
export class SecurityError extends Error {
    constructor(...args: any[]);
}
export class Sha1 extends Hash {
    NAME: string;
    BLOCK_SIZE: number;
    HASH_SIZE: number;
    heap: any;
    asm: {
        reset: () => void;
        init: (h0: any, h1: any, h2: any, h3: any, h4: any, total0: any, total1: any) => void;
        process: (offset: any, length: any) => number;
        finish: (offset: any, length: any, output: any) => number;
        hmac_reset: () => void;
        hmac_init: (p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any, p8: any, p9: any, p10: any, p11: any, p12: any, p13: any, p14: any, p15: any) => void;
        hmac_finish: (offset: any, length: any, output: any) => number;
        pbkdf2_generate_block: (offset: any, length: any, block: any, count: any, output: any) => -1 | 0;
    };
}
export namespace Sha1 {
    const NAME: string;
}
export class Sha256 extends Hash {
    NAME: string;
    BLOCK_SIZE: number;
    HASH_SIZE: number;
    heap: any;
    asm: {
        reset: () => void;
        init: (h0: any, h1: any, h2: any, h3: any, h4: any, h5: any, h6: any, h7: any, total0: any, total1: any) => void;
        process: (offset: any, length: any) => number;
        finish: (offset: any, length: any, output: any) => number;
        hmac_reset: () => void;
        hmac_init: (p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any, p8: any, p9: any, p10: any, p11: any, p12: any, p13: any, p14: any, p15: any) => void;
        hmac_finish: (offset: any, length: any, output: any) => number;
        pbkdf2_generate_block: (offset: any, length: any, block: any, count: any, output: any) => -1 | 0;
    };
}
export namespace Sha256 {
    const NAME_1: string;
    export { NAME_1 as NAME };
}
export class Sha512 extends Hash {
    NAME: string;
    BLOCK_SIZE: number;
    HASH_SIZE: number;
    heap: any;
    asm: {
        reset: () => void;
        init: (h0h: any, h0l: any, h1h: any, h1l: any, h2h: any, h2l: any, h3h: any, h3l: any, h4h: any, h4l: any, h5h: any, h5l: any, h6h: any, h6l: any, h7h: any, h7l: any, total0: any, total1: any) => void;
        process: (offset: any, length: any) => number;
        finish: (offset: any, length: any, output: any) => number;
        hmac_reset: () => void;
        hmac_init: (p0h: any, p0l: any, p1h: any, p1l: any, p2h: any, p2l: any, p3h: any, p3l: any, p4h: any, p4l: any, p5h: any, p5l: any, p6h: any, p6l: any, p7h: any, p7l: any, p8h: any, p8l: any, p9h: any, p9l: any, p10h: any, p10l: any, p11h: any, p11l: any, p12h: any, p12l: any, p13h: any, p13l: any, p14h: any, p14l: any, p15h: any, p15l: any) => void;
        hmac_finish: (offset: any, length: any, output: any) => number;
        pbkdf2_generate_block: (offset: any, length: any, block: any, count: any, output: any) => -1 | 0;
    };
}
export namespace Sha512 {
    const NAME_2: string;
    export { NAME_2 as NAME };
}
export function base64_to_bytes(str: any): Uint8Array;
export function bytes_to_base64(arr: any): string;
export function bytes_to_hex(arr: any): string;
export function bytes_to_string(bytes: any, utf8?: boolean): string;
export function hex_to_bytes(str: any): Uint8Array;
export function string_to_bytes(str: any, utf8?: boolean): Uint8Array;
declare function BigNumber_extGCD(a: any, b: any): {
    gcd: any;
    x: BigNumber;
    y: BigNumber;
};
declare class Hmac {
    constructor(hash: any, password: any, verify: any);
    hash: any;
    BLOCK_SIZE: any;
    HMAC_SIZE: any;
    result: any;
    key: Uint8Array;
    verify: any;
    process(data: any): Hmac;
    finish(): Hmac;
    _hmac_init_verify(verify: any): void;
}
declare class Hash {
    pos: number;
    len: number;
    reset(): Hash;
    result: Uint8Array | null | undefined;
    process(data: any): Hash;
    finish(): Hash;
}
export {};
//# sourceMappingURL=asmcrypto.all.es8.d.ts.map