| import { SecureRandom } from "./rng"; | 
| export declare class BigInteger { | 
|     constructor(a: number | number[] | string, b?: number | SecureRandom, c?: number | SecureRandom); | 
|     toString(b: number): string; | 
|     protected negate(): BigInteger; | 
|     abs(): BigInteger; | 
|     compareTo(a: BigInteger): number; | 
|     bitLength(): number; | 
|     mod(a: BigInteger): BigInteger; | 
|     modPowInt(e: number, m: BigInteger): BigInteger; | 
|     protected clone(): BigInteger; | 
|     protected intValue(): number; | 
|     protected byteValue(): number; | 
|     protected shortValue(): number; | 
|     protected signum(): 0 | 1 | -1; | 
|     toByteArray(): number[]; | 
|     protected equals(a: BigInteger): boolean; | 
|     protected min(a: BigInteger): BigInteger; | 
|     protected max(a: BigInteger): BigInteger; | 
|     protected and(a: BigInteger): BigInteger; | 
|     protected or(a: BigInteger): BigInteger; | 
|     protected xor(a: BigInteger): BigInteger; | 
|     protected andNot(a: BigInteger): BigInteger; | 
|     protected not(): BigInteger; | 
|     protected shiftLeft(n: number): BigInteger; | 
|     protected shiftRight(n: number): BigInteger; | 
|     protected getLowestSetBit(): number; | 
|     protected bitCount(): number; | 
|     protected testBit(n: number): boolean; | 
|     protected setBit(n: number): BigInteger; | 
|     protected clearBit(n: number): BigInteger; | 
|     protected flipBit(n: number): BigInteger; | 
|     add(a: BigInteger): BigInteger; | 
|     subtract(a: BigInteger): BigInteger; | 
|     multiply(a: BigInteger): BigInteger; | 
|     divide(a: BigInteger): BigInteger; | 
|     protected remainder(a: BigInteger): BigInteger; | 
|     protected divideAndRemainder(a: BigInteger): BigInteger[]; | 
|     modPow(e: BigInteger, m: BigInteger): BigInteger; | 
|     modInverse(m: BigInteger): BigInteger; | 
|     protected pow(e: number): BigInteger; | 
|     gcd(a: BigInteger): BigInteger; | 
|     isProbablePrime(t: number): boolean; | 
|     copyTo(r: BigInteger): void; | 
|     fromInt(x: number): void; | 
|     protected fromString(s: string | number[], b: number): void; | 
|     clamp(): void; | 
|     dlShiftTo(n: number, r: BigInteger): void; | 
|     drShiftTo(n: number, r: BigInteger): void; | 
|     protected lShiftTo(n: number, r: BigInteger): void; | 
|     protected rShiftTo(n: number, r: BigInteger): void; | 
|     subTo(a: BigInteger, r: BigInteger): void; | 
|     multiplyTo(a: BigInteger, r: BigInteger): void; | 
|     squareTo(r: BigInteger): void; | 
|     divRemTo(m: BigInteger, q: BigInteger, r: BigInteger): void; | 
|     invDigit(): number; | 
|     protected isEven(): boolean; | 
|     protected exp(e: number, z: IReduction): BigInteger; | 
|     protected chunkSize(r: number): number; | 
|     protected toRadix(b: number): string; | 
|     fromRadix(s: string, b: number): void; | 
|     protected fromNumber(a: number, b: number | SecureRandom, c?: number | SecureRandom): void; | 
|     protected bitwiseTo(a: BigInteger, op: (a: number, b: number) => number, r: BigInteger): void; | 
|     protected changeBit(n: number, op: (a: number, b: number) => number): BigInteger; | 
|     protected addTo(a: BigInteger, r: BigInteger): void; | 
|     protected 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; | 
|     protected modInt(n: number): number; | 
|     protected millerRabin(t: number): boolean; | 
|     protected square(): BigInteger; | 
|     gcda(a: BigInteger, callback: (x: BigInteger) => void): void; | 
|     fromNumberAsync(a: number, b: number | SecureRandom, c: number | SecureRandom, callback: () => void): void; | 
|     s: number; | 
|     t: number; | 
|     DB: number; | 
|     DM: number; | 
|     DV: number; | 
|     FV: number; | 
|     F1: number; | 
|     F2: number; | 
|     am: (i: number, x: number, w: BigInteger, j: number, c: number, n: number) => number; | 
|     [index: number]: number; | 
|     static ONE: BigInteger; | 
|     static ZERO: BigInteger; | 
| } | 
| export interface IReduction { | 
|     convert(x: BigInteger): BigInteger; | 
|     revert(x: BigInteger): BigInteger; | 
|     mulTo(x: BigInteger, y: BigInteger, r: BigInteger): void; | 
|     sqrTo(x: BigInteger, r: BigInteger): void; | 
| } | 
| export declare function nbi(): BigInteger; | 
| export declare function parseBigInt(str: string, r: number): BigInteger; | 
| export declare function intAt(s: string, i: number): number; | 
| export declare function nbv(i: number): BigInteger; | 
| export declare function nbits(x: number): number; |