import type { GroupXEnvelope } from "../core/envelope.js"; import type { GroupXStore } from "../storage/types.js"; import type { DurableGroupXEnvelope, DurableRangeRequest, SseDurableEventReader } from "../web/sse/types.js"; /** SQLite-backed replay reader used by every SSE connection. */ export declare class SqliteSseEventReader implements SseDurableEventReader { #private; constructor(store: GroupXStore, input?: { pageSize?: number; }); captureHighWaterSeq(roomId: string, signal: AbortSignal): number; readDurableRange(request: DurableRangeRequest): Iterable; } export interface LiveEnvelopePublisher { publish(envelope: GroupXEnvelope): void | Promise; } export interface SequencedEventPublisherOptions { closeTimeoutMs?: number; } /** * Converts Broker commit notifications into monotonic live publication. * * A notification is only a wake-up signal. Durable events are re-read from * SQLite through a captured high-water mark, so concurrent callers cannot * publish a later committed sequence before an earlier one. */ export declare class SequencedEventPublisher { #private; constructor(store: GroupXStore, live: LiveEnvelopePublisher, options?: SequencedEventPublisherOptions); /** Seed rooms before serving traffic so historical rows remain replay-only. */ initialize(roomIds: readonly string[]): void; publish(envelope: GroupXEnvelope): Promise; close(): Promise; } //# sourceMappingURL=event-stream.d.ts.map