import { SortedNumericalSet } from '../vendor/generics/sortedset.js'; import { Event } from '../event.js'; /** * Priority-blocked event queue. * * Accepts chunked events, breaks them into atomic tokens, and hands them * out in priority order — the lowest watermark reads first, and only when * it advances can higher-watermark readers proceed. Used by ordered-choice * (Race) scanning: the highest-priority ambiguous choice holds the lowest * watermark and consumes tokens until it resolves, then readers re-sort * by next ambiguous index. */ export declare class PriorityBlockedQueue { 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]: SortedNumericalSet; }; closed: number; maxConsumedSmallIndex: number; constructor(options?: { id?: string; start?: number; onEvict?: (event: Event, index: number) => void; }, inQueue?: { [key: number]: Event; }, watermarks?: { [key: number]: SortedNumericalSet; }); print(): string; push(event: Event): void; getLength(event: Event): number; getContent(event: Event, index?: number): Event; get minSmallIndex(): number; peek(): number; dequeue(max?: number): void; /** * Removes the lowest-priority watermark (the one at the head of the buffer). * @returns the reader number of the watermark that was removed */ removeWatermark(): number; /** * Reindex the bottom watermark to a new small index. */ reindexWatermark(newSmallIndex: number): void; addWatermark(smallIndex?: number): number; reader(): Generator<{ event: Event; blocked: boolean; }, { finished: boolean; }>; } //# sourceMappingURL=priorityblockedqueue.d.ts.map