import { type RunTraceEventV1, type RunTraceKindV1, type RunTracePayloadMapV1 } from "./run-trace.js"; export interface RunTraceSink { append(event: RunTraceEventV1): Promise; } export type RunTraceRedactor = (event: RunTraceEventV1) => RunTraceEventV1 | Promise; export type RunTraceFailureMode = "best_effort" | "required"; export interface RunTraceRecorderOptions { runId: string; sessionId?: string; sink: RunTraceSink; redactor?: RunTraceRedactor; failureMode?: RunTraceFailureMode; maxPending?: number; now?: () => number; createEventId?: () => string; } export interface RunTraceRecordContext { turnId?: string; parentEventId?: string; } export interface RunTraceRecorderFailure { sequence: number; message: string; } export declare class RunTraceRecorder { #private; constructor(options: RunTraceRecorderOptions); get failures(): readonly RunTraceRecorderFailure[]; record(kind: K, payload: RunTracePayloadMapV1[K], context?: RunTraceRecordContext): Promise; flush(): Promise; } export declare class InMemoryRunTraceSink implements RunTraceSink { #private; append(event: RunTraceEventV1): Promise; snapshot(): RunTraceEventV1[]; }