/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import { ICtComparable, IUint, IUintMut } from '../interfaces/IUint.js';
import { AInt } from './_AInt.js';
declare const consoleDebugSymbol: unique symbol;
export declare class U64 extends AInt implements IUint<U64>, ICtComparable<U64> {
    protected constructor(arr: Uint32Array, pos: number, name?: string);
    static fromInt(i52: number): U64;
    static fromI32s(...ns: number[]): U64;
    static fromBytesBE(src: Uint8Array, pos?: number): U64;
    static mount(arr: Uint32Array, pos?: number): U64;
    get low(): number;
    get high(): number;
    clone(): U64;
    mut(): U64Mut;
    lShift(by: number): U64;
    rShift(by: number): U64;
    lRot(by: number): U64;
    rRot(by: number): U64;
    xor(o: U64): U64;
    or(o: U64): U64;
    and(o: U64): U64;
    not(): U64;
    add(o: U64): U64;
    sub(o: U64): U64;
    mul(o: U64): U64;
    eq(o: U64): boolean;
    gt(o: U64): boolean;
    gte(o: U64): boolean;
    lt(o: U64): boolean;
    lte(o: U64): boolean;
    ctEq(o: U64): boolean;
    ctGt(o: U64): boolean;
    ctGte(o: U64): boolean;
    ctLt(o: U64): boolean;
    ctLte(o: U64): boolean;
    ctSwitch(o: U64, other: boolean): U64;
    static get zero(): U64;
}
export declare class U64Mut extends U64 implements IUintMut<U64Mut, U64> {
    protected constructor(arr: Uint32Array, pos: number);
    set(v: U64): U64Mut;
    zero(): U64Mut;
    static fromInt(i52: number): U64Mut;
    static fromI32s(...ns: number[]): U64Mut;
    static fromBytesBE(src: Uint8Array, pos?: number): U64Mut;
    static mount(arr: Uint32Array, pos?: number): U64Mut;
    lShiftEq(by: number): this;
    lRotEq(by: number): this;
    rShiftEq(by: number): this;
    rRotEq(by: number): this;
    xorEq(o: U64): this;
    orEq(o: U64): this;
    andEq(o: U64): this;
    notEq(): this;
    addEq(o: U64): this;
    subEq(o: U64): this;
    mulEq(o: U64): this;
}
export declare class U64MutArray {
    private buf;
    private bufPos;
    private arr;
    protected constructor(buf: Uint32Array, bufPos?: number, len?: number);
    get length(): number;
    at(idx: number): U64Mut;
    set(src: U64MutArray, thisOffset?: number, srcOffset?: number): void;
    clone(): U64MutArray;
    toBytesBE(): Uint8Array;
    toBytesLE(): Uint8Array;
    toString(): string;
    get [Symbol.toStringTag](): string;
    [consoleDebugSymbol](): string;
    static fromLen(len: number): U64MutArray;
    static fromU64s(...u64s: U64[]): U64MutArray;
    static mount(arr: Uint32Array, pos?: number, len?: number): U64MutArray;
    static fromBytes(buffer: ArrayBuffer, bytePos?: number, byteLen?: number): U64MutArray;
}
export {};
