/** * Buffer I/O utilities for Native format encoding/decoding. */ import { type DecodeOptions, type TypedArray } from "./types.ts"; /** * Growable buffer for streaming decode. Replaces chunk array + flattenChunks(). * Amortized O(n) vs O(n²) for many small chunks. */ export declare class StreamBuffer { private buffer; private readOffset; private writeOffset; constructor(initialSize?: number); get available(): number; append(chunk: Uint8Array): void; get view(): Uint8Array; consume(bytes: number): void; private compact; private grow; } export declare class BufferUnderflowError extends Error { constructor(message: string); } export type TypedArrayConstructor = { new (length: number): T; new (buffer: ArrayBuffer, byteOffset: number, length: number): T; BYTES_PER_ELEMENT: number; }; export declare function varIntSize(value: number | bigint): number; export declare function writeVarInt(buffer: Uint8Array, offset: number, value: number | bigint): number; export declare function readVarInt(buffer: Uint8Array, cursor: { offset: number; }): number; export declare function readVarInt64(buffer: Uint8Array, cursor: { offset: number; }): bigint; export declare class BufferWriter { private buffer; private offset; private view; constructor(initialSize?: number); private ensure; write(chunk: Uint8Array): void; writeU8(v: number): void; writeU32LE(v: number): void; writeU64LE(v: bigint): void; writeI32LE(v: number): void; writeVarint(value: number | bigint): void; writeString(val: string): void; reset(): void; finish(): Uint8Array; } export declare class BufferReader { buffer: Uint8Array; offset: number; view: DataView; options?: DecodeOptions; constructor(buffer: Uint8Array, offset?: number, options?: DecodeOptions); readVarint(): number; readVarInt64(): bigint; readString(): string; readTypedArray(Ctor: TypedArrayConstructor, count: number): T; readBytes(length: number): Uint8Array; ensureAvailable(bytes: number): void; readU8(): number; readU32LE(): number; readU64LE(): bigint; readI32LE(): number; readI64LE(): bigint; /** * Replace the underlying buffer while preserving read offset. * Used for progressive decoding: when more data arrives, swap in * the larger buffer and continue reading from where we left off. */ replaceBuffer(newBuffer: Uint8Array): void; } //# sourceMappingURL=io.d.ts.map