import { OnModuleDestroy, OnModuleInit } from "@nestjs/common"; import { TelemetryEngine } from "@devflow-tools/telemetry"; import type { TelemetryEvent } from "@devflow-tools/sdk"; import { DevFlowDatabase } from "@devflow-tools/database"; export declare class TelemetryService implements OnModuleInit, OnModuleDestroy { engine: TelemetryEngine; private db; private readonly logCleanupScheduler; constructor(database?: DevFlowDatabase); onModuleInit(): void; onModuleDestroy(): void; recordEvent(event: TelemetryEvent): Promise; getWorkflowWorkerHealth(projectRoot: string): Promise>; createSession(params: { id: string; projectRoot: string; startedAt: number; label?: string; }): Promise; getSession(id: string, projectRoot?: string): Promise; listSessions(limit: number, offset: number, projectRoot?: string): Promise; getSessionEvents(sessionId: string, projectRoot?: string): Promise; closeSession(id: string, finishedAt?: number): Promise; createSkillExecution(params: { executionId: string; sessionId: string; skillName: string; startedAt: number; }): Promise; listRuns(limit: number, offset: number, source?: string, projectRoot?: string): Promise<{ id: any; agent: string; mode: string; source: string; status: any; startedAt: any; totalToolCalls: any; mcpToolCalls: any; mcpComplianceRate: number; }[]>; getRun(id: string, projectRoot?: string): Promise; getTimeline(from?: string, to?: string, projectRoot?: string): Promise<{ runId: any; stepId: any; type: string; duration: any; timestamp: any; }[]>; getRunEvents(runId: string, projectRoot?: string): Promise; getRunStats(runId: string, projectRoot?: string): Promise; endRun(runId: string, result: { status: "success" | "failed" | "canceled"; }): Promise; getStats(periodDays?: number, projectRoot?: string): Promise<{ period: { from: string; to: string; }; summary: { totalRuns: number; completedRuns: number; failedRuns: number; totalTokens: number; totalLlmCalls: number; totalToolUses: number; avgRunDuration: number; }; byDay: { runs: number; date: string; tokens: number; }[]; byWorkflow: { workflow: string; count: number; }[]; byPlugin: { plugin: string; count: number; }[]; }>; private emptyStats; getRoiSummary(periodDays?: number, projectRoot?: string): Promise; private emptyRoiSummary; recordExecutionStart(params: { executionId: string; sessionId?: string; skillName: string; startedAt: number; projectRoot?: string; }): Promise; recordToolCall(event: { eventId: string; executionId: string; sessionId?: string; projectRoot?: string; toolUseId?: string; timestamp: number; toolName: string; toolType: string; isMcpTool: boolean; mcpToolName?: string; mcpEnforced: boolean; mcpFallback: boolean; kind?: string; input: unknown; duration: number; parentToolCallId?: string; subagentId?: string; error?: string; blocked: boolean; blockReason?: string; failureCategory?: string; }): Promise; updateToolCallOutput(eventId: string, output: unknown, completedAt?: number, duration?: number): Promise; recordExecutionComplete(params: { executionId: string; finishedAt: number; status: 'completed' | 'failed'; summary: { totalToolCalls: number; mcpToolCalls: number; directToolCalls: number; subagentCount: number; totalDuration: number; mcpComplianceRate: number; }; }): Promise; reconcileExecution(params: { executionId: string; status: 'completed' | 'failed'; finishedAt: number; metadata?: Record; }): Promise; getExecutions(limit: number, skillName?: string, projectRoot?: string): Promise; getExecutionEvents(executionId: string, projectRoot?: string): Promise; getMcpCompliance(projectRoot?: string): Promise<{ overall: number; bySkill: Record; missedTools: string[]; applicableObligations: number; satisfiedObligations: number; mcpCallShare: number; }>; classifyFailure(runId: string): Promise<{ failureCategory?: string; failureReason?: string; suggestedActions?: Array<{ action: string; priority: string; }>; }>; cleanup(olderThanDays: number): Promise; cleanupStaleRecords(): Promise; recordToolMetric(metric: { id: string; toolCallEventId: string; sessionId: string; toolName: string; query?: string; status?: string; resultCount?: number; resultSizeBytes?: number; latencyMs?: number; engine?: string; accuracyQueryId?: string; metadata?: string; }): Promise; getToolMetrics(sessionId?: string, toolName?: string, limit?: number, offset?: number, projectRoot?: string): Promise; getToolMetricsSummary(days?: number, projectRoot?: string): Promise; recordAccuracyQuery(params: { id: string; sessionId: string; engine: string; query: string; topKResults: string; selectedIds?: string; }): Promise; getAccuracyQueries(options: { engine?: string; status?: string; limit?: number; offset?: number; projectRoot?: string; }): Promise; updateAccuracyFeedback(id: string, feedback: { relevance: 'hit' | 'partial' | 'miss'; note?: string; }): Promise; getAccuracyStats(engine?: string, since?: number, projectRoot?: string): Promise; runAutoCheck(): Promise; getHealthSnapshot(): Promise; getFeedbackStats(_projectRoot?: string, _periodDays?: number): Promise<{ total: number; hits: number; partials: number; misses: number; hitRate: number; partialRate: number; missRate: number; }>; getOpsRoiSummary(): Promise<{ period: string; totalRuns: number; successfulRuns: number; successRate: number; avgDuration: number; trend: "stable"; }>; getExperimentalRoiSummary(): Promise<{ totalScenarios: number; avgTimeSavedRate: null; avgTokenReductionRate: null; avgFirstPassLift: null; avgReworkReductionRate: null; conclusion: string; }>; getPluginEffectiveness(pluginName: string, projectRoot?: string): Promise<{ name: string; totalRuns: number; successRate: number; lastUsedAt: string | null; }>; getPluginUsageStats(pluginName: string): Promise<{ activeProjects: number; totalRuns: number; successfulRuns: number; lastUsedAt: string | undefined; }>; } //# sourceMappingURL=telemetry.service.d.ts.map