import { type Decoder, type ReadonlyUint8Array } from '@solana/kit';
export declare class ByteCursor {
    private readonly data;
    private offset;
    constructor(data: Uint8Array);
    remaining(): number;
    readU8(): number;
    readBool(): boolean;
    readU32LE(): number;
    readU64LE(): bigint;
    readU128LE(): bigint;
    readU256LE(): bigint;
    readBytes(length: number): Uint8Array;
    readVecBytes(): Uint8Array;
    readString(): string;
    readWithDecoder<T>(decoder: Decoder<T>): T;
    private ensure;
}
export declare function concatBytes(...parts: readonly ArrayLike<number>[]): ReadonlyUint8Array;
export declare function u8(value: number): ReadonlyUint8Array;
export declare function bool(value: boolean): ReadonlyUint8Array;
export declare function u32le(value: number): ReadonlyUint8Array;
export declare function u64le(value: bigint): ReadonlyUint8Array;
export declare function u128le(value: bigint): ReadonlyUint8Array;
export declare function u256le(value: bigint): ReadonlyUint8Array;
export declare function vecBytes(bytes: ReadonlyUint8Array): ReadonlyUint8Array;
export declare function vec<T>(items: readonly T[], encodeItem: (item: T) => ArrayLike<number>): ReadonlyUint8Array;
export declare function option<T>(item: T | null | undefined, encodeItem: (value: T) => ArrayLike<number>): ReadonlyUint8Array;
export declare function mapU32<T>(entries: Iterable<[number, T]>, encodeValue: (value: T) => ArrayLike<number>): ReadonlyUint8Array;
export declare function addressBytes(input: string | ReadonlyUint8Array): ReadonlyUint8Array;
export declare function ensureLength(bytes: ReadonlyUint8Array, length: number, label: string): ReadonlyUint8Array;
export declare function readBigIntLE(bytes: Uint8Array): bigint;
export declare function writeBigIntLE(value: bigint, length: number): Uint8Array;
//# sourceMappingURL=binary.d.ts.map