import FFT from "./fft";
export default class ZqField {
    type: string;
    one: bigint;
    zero: bigint;
    p: bigint;
    m: number;
    negone: bigint;
    two: bigint;
    half: bigint;
    bitLength: number;
    mask: bigint;
    n64: number;
    n32: number;
    n8: number;
    R: bigint;
    Ri: bigint;
    nqr: bigint;
    s: number;
    t: bigint;
    nqr_to_t: bigint;
    FFT: FFT;
    w: bigint[];
    wi: bigint[];
    shift: bigint;
    k: bigint;
    sqrt_q?: bigint;
    sqrt_s?: number;
    sqrt_t?: bigint;
    sqrt_z?: bigint;
    sqrt_tm1d2?: bigint;
    sqrt_e1?: bigint;
    sqrt_e34?: bigint;
    sqrt_e12?: bigint;
    sqrt?: (this: ZqField, a: bigint) => bigint | null;
    frobenius?: (n: number, x: bigint) => bigint;
    constructor(p: bigint | number | string);
    e(a: bigint | number | string, b?: number): bigint;
    add(a: bigint, b: bigint): bigint;
    sub(a: bigint, b: bigint): bigint;
    neg(a: bigint): bigint;
    mul(a: bigint, b: bigint): bigint;
    mulScalar(base: bigint, s: bigint | number | string): bigint;
    square(a: bigint): bigint;
    eq(a: bigint, b: bigint): boolean;
    neq(a: bigint, b: bigint): boolean;
    lt(a: bigint, b: bigint): boolean;
    gt(a: bigint, b: bigint): boolean;
    leq(a: bigint, b: bigint): boolean;
    geq(a: bigint, b: bigint): boolean;
    div(a: bigint, b: bigint): bigint;
    idiv(a: bigint, b: bigint): bigint;
    inv(a: bigint): bigint;
    mod(a: bigint, b: bigint): bigint;
    pow(b: bigint, e: bigint | number): bigint;
    exp(b: bigint, e: bigint | number): bigint;
    band(a: bigint, b: bigint): bigint;
    bor(a: bigint, b: bigint): bigint;
    bxor(a: bigint, b: bigint): bigint;
    bnot(a: bigint): bigint;
    shl(a: bigint, b: bigint): bigint;
    shr(a: bigint, b: bigint): bigint;
    land(a: bigint, b: bigint): bigint;
    lor(a: bigint, b: bigint): bigint;
    lnot(a: bigint): bigint;
    sqrt_old(n: bigint): bigint | null;
    normalize(a: bigint | number): bigint;
    random(): bigint;
    toString(a: bigint, base?: number): string;
    isZero(a: bigint): boolean;
    fromRng(rng: {
        nextU64(): bigint;
    }): bigint;
    fft(a: bigint[]): bigint[];
    ifft(a: bigint[]): bigint[];
    toRprLE(buff: Uint8Array, o: number, e: bigint): void;
    toRprBE(buff: Uint8Array, o: number, e: bigint): void;
    toRprBEM(buff: Uint8Array, o: number, e: bigint): void;
    toRprLEM(buff: Uint8Array, o: number, e: bigint): void;
    fromRprLE(buff: Uint8Array, o: number): bigint;
    fromRprBE(buff: Uint8Array, o: number): bigint;
    fromRprLEM(buff: Uint8Array, o: number): bigint;
    fromRprBEM(buff: Uint8Array, o: number): bigint;
    toObject(a: bigint): bigint;
}
