import type { CompactionPayloadInput, SessionSealedPayload, TraceEvent, TraceEventInput } from './types.js'; export interface TraceSink { write(event: TraceEventInput): Promise; getTracePath(): string; } export interface TraceWriter extends TraceSink { seal(payload: SessionSealedPayload): Promise; close(): Promise; } export interface NdjsonTraceWriterOptions { traceDir: string; startSeq?: number; } export declare class NdjsonTraceWriter implements TraceWriter { private readonly traceDir; private readonly tracePath; private seq; private sealed; private sealRecordPersisted; private fh; private writeQueue; constructor(options: NdjsonTraceWriterOptions); getTracePath(): string; write(event: TraceEventInput): Promise; seal(payload: SessionSealedPayload): Promise; close(): Promise; private enqueue; private ensureOpen; private closeHandle; sealOnProcessExit(): void; private appendLine; private materializePersistedEvent; private persistCompactionSidecar; } export declare class InMemoryTraceWriter implements TraceWriter { private seq; private sealed; private readonly _events; get events(): readonly TraceEvent[]; write(event: TraceEventInput): Promise; getTracePath(): string; seal(payload: SessionSealedPayload): Promise; close(): Promise; private readonly _inlineCompactionPayloads; getInlineCompactionPayload(seq: number): CompactionPayloadInput | undefined; }