import type { AgentSpan, AgentTrace } from '../types/trace.js'; export interface TraceListWindow { from?: Date; to?: Date; limit?: number; } export interface TraceSink { write(span: AgentSpan): void | Promise; flush?(): Promise; } export interface TraceStore extends TraceSink { putSpan(span: AgentSpan): void | Promise; getTrace(traceId: string): Promise; listTraces(sessionId: string, window?: TraceListWindow): Promise; cleanup?(maxAgeMs: number): Promise; } export declare function isTraceStore(sink: TraceSink): sink is TraceStore; export declare function traceFromSpans(spans: AgentSpan[]): AgentTrace | null; export declare function cloneSpan(span: AgentSpan): AgentSpan;