import { AddressMap } from '../deterministic/AddressMap.js';
import { Address } from '../keypair/Address.js';
import { BufferLike, i32, Selector, u16, u32, u8 } from '../utils/types.js';
export declare class BinaryReader {
    private buffer;
    private currentOffset;
    constructor(bytes: BufferLike);
    static stringCompare(a: string, b: string): number;
    static bigintCompare(a: bigint, b: bigint): number;
    static numberCompare(a: number, b: number): number;
    setBuffer(bytes: BufferLike): void;
    length(): number;
    bytesLeft(): number;
    readU8(): u8;
    readU16(be?: boolean): u16;
    readU32(be?: boolean): u32;
    readU64(be?: boolean): bigint;
    readU128(be?: boolean): bigint;
    readU256(be?: boolean): bigint;
    readI128(be?: boolean): bigint;
    readBoolean(): boolean;
    readSelector(): Selector;
    readBytes(length: u32, zeroStop?: boolean): Uint8Array;
    readString(length: u32): string;
    readStringWithLength(be?: boolean): string;
    readAddress(): Address;
    readBytesWithLength(maxLength?: number, be?: boolean): Uint8Array;
    readAddressArray(be?: boolean): Address[];
    readU256Array(be?: boolean): bigint[];
    readU128Array(be?: boolean): bigint[];
    readU64Array(be?: boolean): bigint[];
    readU32Array(be?: boolean): u32[];
    readU16Array(be?: boolean): u16[];
    readU8Array(): u8[];
    readStringArray(be?: boolean): string[];
    readBytesArray(be?: boolean): Uint8Array[];
    readAddressValueTuple(be?: boolean): AddressMap<bigint>;
    getOffset(): u16;
    setOffset(offset: u16): void;
    verifyEnd(size: i32): void;
    private reverseBytes;
    private toHexString;
}
