export declare class Numbers {
    static divides(k: number, n: number): boolean;
    static factors(n: number): Set<number>;
    static isPowerOfTwo(n: number): boolean;
    static minDistMod12(a: number, b: number): number;
    static correctMod(a: number, b: number): number;
    static prime(n0: number): boolean;
    static primeFactorization(n0: number): [number[], number[]];
    static totient(n: number): number;
    static gcd(a0: number, b0: number): number;
    static lcm(a: number, b: number): number;
    static catalan(n: number): number;
    static bell(n: number): number;
    static binomial(n: number, k: number): number;
    static multinomial(n: number[]): number;
    static factorial(n: number): number;
    static triangularNumber(n: number): number;
    static reverseTriangularNumber(n: number): number;
    /**
     * Expands the bits of the number `n` by inserting extra characters after each bit.
     *
     * When `filler` is '0', it inserts k zeros after each bit (dilating the bits).
     * When `filler` is 'bit', it repeats the bit k times after the original bit (replicating the bit).
     *
     * @param n - The original number.
     * @param k - The number of extra characters to insert after each bit.
     * @param filler - Either '0' (to insert zeros) or 'bit' (to repeat the bit). Defaults to '0'.
     * @returns The new number after the expansion.
     */
    static expandBits(n: number, k: number, filler?: '0' | 'bit'): number;
    static decodeCantor(v: number): [number, number];
    static decodeIntervals(iPrime: number): number;
    static CantorIntervalBinaryNumber(a: number, b: number): number;
    static getPermutation(n: number): number[];
    static permuteBits(a: number, b: number): number;
    static toBalancedTernary(n: number, nbdigits: number): number[];
    static fromBalancedTernary(trits: number[]): number;
    static toBinary(n: number, nbdigits: number): number[];
    static fromBinary(bits: number[]): number;
    static readonly tritIndex: Map<number, number>;
    private static readonly unaryTritOps;
    static applyUnaryTritwise(n: number, tritOp: number[]): number;
    static tritBuf(n: number): number;
    static tritNot(n: number): number;
    static tritPnot(n: number): number;
    static tritNnot(n: number): number;
    static tritAbs(n: number): number;
    static tritClu(n: number): number;
    static tritCld(n: number): number;
    static tritInc(n: number): number;
    static tritDec(n: number): number;
    static tritRtu(n: number): number;
    static tritRtd(n: number): number;
    static tritIsp(n: number): number;
    static tritIsz(n: number): number;
    static tritIsn(n: number): number;
}
