import { Operators, scalarExt } from "./core"; export declare function isBigInt(x: any): x is bigint; declare class _Big implements scalarExt<_Big> { value: bigint; constructor(value: bigint); dup(): Big; neg(): Big; scale(b: number): Big; add(b: Big): Big; sub(b: Big): Big; mul(b: Big): Big; div(b: Big): Big; mag(): number; from(n: number | bigint): _Big; ipow(n: number): Big; rpow(n: number, d: number): Big; npow(n: number): Big; sqrt(): Big; abs(): Big; sign(): number; recip(): Big; divmod(b: Big): number; lt(b: Big): boolean; eq(b: Big): boolean; valueOf(): number; toString(): string; } declare class extentB { min: bigint; max: bigint; static fromCentreExtent(centre: bigint, size: bigint): extentB; static from>(items: U): extentB | undefined; constructor(min: bigint, max: bigint); extent(): bigint; centre(): bigint; add(p: bigint): void; combine(b: extentB): void; encompasses(b: extentB): boolean; overlaps(b: extentB): boolean; contains(p: bigint): boolean; clamp(p: bigint): bigint; } export declare const Big: ((value: bigint) => _Big) & Operators & { shift(x: bigint, n: bigint): bigint; sign(a: bigint): 0 | 1 | -1; abs(a: bigint): bigint; max(...values: bigint[]): bigint; min(...values: bigint[]): bigint; gcd(...values: bigint[]): bigint; lcm(...x: bigint[]): bigint; divToReal(a: bigint, b: bigint): number; modPow(base: bigint, exp: bigint, mod: bigint): bigint; npow(x: bigint, n: number): bigint; random(bits: number): bigint; root(x: bigint, b: number): bigint; log2(n: bigint, bits?: bigint): bigint; extent: typeof extentB; }; export type Big = _Big; export default Big; export declare namespace Big { type extent = extentB; }