import type { RunMeta, StepTrace, RunResult, RunDetail, RunFilter, FlattenedTrace, TimelineEvent, TelemetryEvent, RunStats, FailureCategory } from "@devflow-tools/sdk"; import { DevFlowDatabase } from "@devflow-tools/database"; interface RunRecord { meta: RunMeta; steps: StepTrace[]; status: "active" | "completed"; startedAt: number; finishedAt?: number; tokenUsed: number; contextTokenCount?: number; relevanceFeedback?: "hit" | "partial" | "miss"; firstPassSuccess?: boolean; retryCount?: number; workflowName?: string; pluginName?: string; } export declare class TelemetryEngine { private db; private runs; private events; constructor(databaseOrProjectRoot?: DevFlowDatabase | string); private loadFromDatabase; startRun(meta: RunMeta): Promise; createRun(input: { source?: string; tool?: string; input?: Record; projectRoot?: string; task?: string; workflowName?: string; }): Promise<{ id: string; }>; recordStep(runId: string, step: StepTrace): Promise; endRun(runId: string, result: RunResult): Promise; getRun(runId: string): Promise; listRuns(filter?: RunFilter): Promise; getTimeline(): Promise; getReplay(runId: string): Promise; recordEvent(event: TelemetryEvent): Promise; listEvents(runId: string): Promise; updateRunMeta(runId: string, fields: Partial>): Promise; classifyFailure(runId: string): Promise; recordToolCall(event: { eventId: string; executionId: string; timestamp: number; toolName: string; toolType: string; isMcpTool: boolean; mcpToolName?: string; mcpEnforced: boolean; mcpFallback: boolean; input: unknown; output?: unknown; tokensUsed: number; duration: number; parentToolCallId?: string; subagentId?: string; error?: string; blocked: boolean; blockReason?: string; failureCategory?: FailureCategory; }): Promise; getToolCallEvents(executionId: string): Promise; getRunStats(runId: string): Promise; close(): void; } export {}; //# sourceMappingURL=telemetry-engine.d.ts.map