import SecureRandom from './secure-random';
import type { IAlgorithm } from './algorithms';
declare class BigInteger {
    [key: number]: number;
    t: number;
    s: number;
    static get ZERO(): BigInteger;
    static get ONE(): BigInteger;
    DB: number;
    DM: number;
    DV: number;
    FV: number;
    F1: number;
    F2: number;
    constructor(a: number | string | Array<number> | null, b?: number | SecureRandom, c?: number | SecureRandom);
    am(i: number, x: number, w: BigInteger, j: number, c: number, n: number): number;
    fromNumber(a: number, b: number | SecureRandom, c?: number | SecureRandom): void;
    bitwiseTo(a: BigInteger, op: (x: number, y: number) => number, r: BigInteger): void;
    chunkSize(r: number): number;
    toRadix(b: number): string;
    fromRadix(s: string, b: number): void;
    changeBit(n: number, op: (x: number, y: number) => number): BigInteger;
    addTo(a: BigInteger, r: BigInteger): void;
    dMultiply(n: number): void;
    dAddOffset(n: number, w: number): void;
    multiplyLowerTo(a: BigInteger, n: number, r: BigInteger): void;
    multiplyUpperTo(a: BigInteger, n: number, r: BigInteger): void;
    modInt(n: number): number;
    millerRabin(t: number): boolean;
    fromInt(x: number): void;
    fromString(s: string | Array<number>, b: number): void;
    lShiftTo(n: number, r: BigInteger): void;
    rShiftTo(n: number, r: BigInteger): void;
    isEven(): boolean;
    exp(e: number, z: IAlgorithm): BigInteger;
    copyTo(r: BigInteger): void;
    squareTo(r: BigInteger): void;
    divRemTo(m: BigInteger, q: BigInteger | null, r: BigInteger | null): void;
    invDigit(): number;
    clamp(): void;
    dlShiftTo(n: number, r: BigInteger): void;
    drShiftTo(n: number, r: BigInteger): void;
    subTo(a: BigInteger, r: BigInteger): void;
    multiplyTo(a: BigInteger, r: BigInteger): void;
    clone(): BigInteger;
    intValue(): number;
    byteValue(): number;
    shortValue(): number;
    signum(): number;
    toByteArray(): Array<number>;
    equals(a: BigInteger): boolean;
    min(a: BigInteger): BigInteger;
    max(a: BigInteger): BigInteger;
    and(a: BigInteger): BigInteger;
    or(a: BigInteger): BigInteger;
    xor(a: BigInteger): BigInteger;
    andNot(a: BigInteger): BigInteger;
    not(): BigInteger;
    shiftLeft(n: number): BigInteger;
    shiftRight(n: number): BigInteger;
    getLowestSetBit(): number;
    bitCount(): number;
    testBit(n: number): boolean;
    setBit(n: number): BigInteger;
    clearBit(n: number): BigInteger;
    flipBit(n: number): BigInteger;
    add(a: BigInteger): BigInteger;
    subtract(a: BigInteger): BigInteger;
    multiply(a: BigInteger): BigInteger;
    divide(a: BigInteger): BigInteger;
    square(): BigInteger;
    remainder(a: BigInteger): BigInteger;
    divideAndRemainder(a: BigInteger): Array<BigInteger>;
    modPow(e: BigInteger, m: BigInteger): BigInteger;
    modInverse(m: BigInteger): BigInteger;
    pow(e: number): BigInteger;
    gcd(a: BigInteger): BigInteger;
    isProbablePrime(t: number): boolean;
    toString(b: number): string;
    negate(): BigInteger;
    abs(): BigInteger;
    compareTo(a: BigInteger): number;
    bitLength(): number;
    mod(a: BigInteger): BigInteger;
    modPowInt(e: number, m: BigInteger): BigInteger;
}
export { BigInteger, };
