export interface StreamEvent {
    readonly schemaVersion: "1";
    readonly runId: string;
    readonly fingerprint: string;
    readonly seq: number;
    readonly ts: number;
    readonly type: string;
}
export interface SseWriter {
    readonly write: (event: StreamEvent) => boolean | undefined;
    readonly close: () => void;
}
export interface QueueEventSinkOptions {
    readonly bufferCapacity?: number | undefined;
}
export declare class QueueEventSink {
    private readonly buffer;
    private readonly capacity;
    private readonly writers;
    private terminated;
    readonly emit: (event: StreamEvent) => void;
    constructor(options?: QueueEventSinkOptions);
    attach(writer: SseWriter, afterSeq: number): () => void;
    closeAll(): void;
    isTerminated(): boolean;
    buffered(afterSeq?: number): readonly StreamEvent[];
}
//# sourceMappingURL=sink.d.ts.map