/** * Sequence execution: copy literals + match copies with window. */ export interface Sequence { literalsLength: number; offset: number; matchLength: number; } export interface PackedSequences { literalsLength: Uint32Array; offset: Uint32Array; matchLength: Uint32Array; length: number; } export interface HistoryWindow { buffer: Uint8Array; length: number; writePos: number; } export declare function createHistoryWindow(windowSize: number, initial?: Uint8Array): HistoryWindow; /** Internal: reuse bag for decoder context. */ export interface DecoderReuseBag { _history?: HistoryWindow; _sequences?: PackedSequences; } export declare function ensurePackedSequencesCapacity(existing: PackedSequences | undefined, minLength: number): PackedSequences; export declare function packSequences(sequences: readonly Sequence[], reuse?: PackedSequences): PackedSequences; export declare function packedSequencesToArray(sequences: PackedSequences): Sequence[]; /** * Get or create a history window, reusing from bag when buffer is large enough. * Caller may pass a mutable bag; it will be updated with the history used. */ export declare function getOrCreateHistoryWindow(windowSize: number, initial: Uint8Array | undefined, reuse: DecoderReuseBag | undefined): HistoryWindow; export declare function appendToHistoryWindow(history: HistoryWindow, chunk: Uint8Array): void; export declare function appendRangeToHistoryWindow(history: HistoryWindow, source: Uint8Array, start: number, length: number): void; export declare function appendRLEToHistoryWindow(history: HistoryWindow, byte: number, length: number): void; export declare function executeSequencesInto(literals: Uint8Array, sequences: PackedSequences, windowSize: number, target: Uint8Array, targetOffset: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array, updateHistory?: boolean): number; export declare function executeSequencesIntoFast(literals: Uint8Array, sequences: PackedSequences, windowSize: number, target: Uint8Array, targetOffset: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array, updateHistory?: boolean): number; /** * Execute sequences to produce decompressed output. * repOffsets: [Repeated_Offset1, Repeated_Offset2, Repeated_Offset3], updated in place. */ export declare function executeSequences(literals: Uint8Array, sequences: Sequence[], windowSize: number, repOffsets?: [number, number, number], historyInput?: HistoryWindow | Uint8Array): Uint8Array;