/** * Performance Regression Detection — v4.9.0 Enhanced * * SQLite-backed metric tracking with configurable thresholds for * latency, cost, and token regressions. */ import type { SuiteResult } from './types'; export interface PerfMetrics { latency_ms: number; cost_usd?: number; tokens?: number; tool_calls?: number; custom?: Record; } export interface ThresholdConfig { latency_percent?: number; cost_percent?: number; token_percent?: number; custom?: Record; } export interface PerfRecord { suite: string; timestamp: string; metrics: PerfMetrics; tags?: string[]; } export interface PerfComparison { suite: string; baseline: PerfRecord; current: PerfRecord; regressions: PerfAlert[]; improvements: PerfAlert[]; unchanged: string[]; } export interface PerfAlert { metric: string; baseline: number; current: number; delta: number; deltaPercent: number; threshold: number; message: string; } export interface PerfChange { name: string; status: 'regression' | 'improvement' | 'unchanged' | 'new' | 'removed'; baselineDuration?: number; currentDuration?: number; delta_ms?: number; deltaPercent?: number; } export interface PerfRegressionResult { changes: PerfChange[]; regressions: number; improvements: number; unchanged: number; newTests: number; removedTests: number; thresholdMs: number; thresholdPercent: number; } export interface PerfCheckOptions { thresholdMs?: number; thresholdPercent?: number; } export declare class PerfRegressionTracker { private dbPath; private records; private thresholds; constructor(dbPath: string); private _load; private _save; record(suite: string, metrics: PerfMetrics): void; compare(suite: string, baseline?: string): PerfComparison; private _compareRecords; generateReport(): string; setThresholds(config: ThresholdConfig): void; getRecords(suite: string): PerfRecord[]; listSuites(): string[]; } export declare function loadPerfReport(filePath: string): SuiteResult; export declare function buildDurationMap(suite: SuiteResult): Map; export declare function detectPerfChanges(baseline: SuiteResult, current: SuiteResult, options?: PerfCheckOptions): PerfRegressionResult; export declare function formatPerfChanges(result: PerfRegressionResult): string; //# sourceMappingURL=perf-regression.d.ts.map