import { Event } from '../event.js'; /** * Event queue with watermarks. * * Accepts chunked events and breaks them into atomic tokens which are * then processed by operators prioritized by watermarks. Token events * whose data is longer than one character are sub-indexed so that every * small-index step corresponds to a single character of input. * * `smallIndex` advances per atomic step; `bigIndex` advances per pushed * event. Watermarks are registered against a small-index position and * prevent dequeue from advancing past that position. */ export declare class EventQueue { id: string; private start; private onEvict; nextBigIndex: number; nextSmallIndex: number; maxIndex: number; maxSteps: number; minIndex: number; minSteps: number; completedWrite: boolean; completedRead: boolean; readers: number; accum: { [key: number]: number; }; inQueue: { [key: number]: Event; }; watermarks: { [key: number]: Set; }; positions: { [key: number]: number; }; closed: number; maxConsumedSmallIndex: number; constructor(options?: { id?: string; start?: number; onEvict?: (event: Event, index: number) => void; }, inQueue?: { [key: number]: Event; }, watermarks?: { [key: number]: Set; }); print(): string; push(event: Event): void; getLength(event: Event): number; getContent(event: Event, index?: number): Event; get minSmallIndex(): number; get maxSmallIndex(): number; /** * Drop events from the head of the buffer while no watermark holds them. */ dequeue(max?: number): void; removeWatermark(watermark: number): void; reindexWatermark(watermark: number, newSmallIndex: number): void; addWatermark(smallIndex?: number): number; reader(watermark?: number, end?: number): Generator<{ event: Event; index: number; blocked: boolean; }>; } //# sourceMappingURL=eventqueue.d.ts.map