export type ReplayEventType = "replay-start" | "replay-end" | "node-start" | "node-complete" | "node-fallback" | "state-change";
export type TelemetryEventType = ReplayEventType | "lane.started" | "lane.activity" | "lane.heartbeat" | "lane.completed" | "lane.failed" | "lane.stalled" | "agent.spawned" | "tool.started" | "tool.completed" | "mcp.started" | "mcp.completed" | "mcp.failed" | "hook.started" | "hook.completed" | "provider.route" | "provider.fallback" | "provider.request.started" | "provider.request.completed" | "provider.request.failed" | "provider.advisory.started" | "provider.advisory.completed" | "provider.advisory.failed" | "evidence.result";
export interface TelemetryEvent {
    schemaVersion: "telemetry.v1";
    type: TelemetryEventType;
    timestamp: string;
    seq: number;
    runId: string;
    nodeId?: string;
    laneId?: string;
    agentId?: string;
    toolName?: string;
    provider?: string;
    status?: string;
    data?: Record<string, unknown>;
}
export type ReplayEvent = TelemetryEvent;
export interface ReadEventsOptions {
    afterSeq?: number;
    limit?: number;
}
type EventInput = Omit<TelemetryEvent, "schemaVersion" | "timestamp" | "seq"> & {
    schemaVersion?: "telemetry.v1";
    timestamp?: string;
    seq?: number;
};
export declare function appendEvent(runDir: string, event: EventInput): Promise<void>;
export declare function readEvents(runDir: string): Promise<ReplayEvent[]>;
export declare function tailEvents(runDir: string, options?: ReadEventsOptions): Promise<ReplayEvent[]>;
export {};
