import type { EvalReport } from './EvalRunner.ts'; export interface MetricDelta { metric: string; current: number; baseline: number; delta: number; } export interface RegressionReport { overall: 'pass' | 'flag'; regressions: MetricDelta[]; improvements: MetricDelta[]; unchanged: MetricDelta[]; missingMetrics: string[]; } /** Snapshot of an EvalReport's aggregates, persisted as a comparison target. */ export interface BaselineRecord { member: string; suiteName: string; timestamp: string; taskCount: number; aggregate: Record; } export declare const DEFAULT_THRESHOLD = 0.1; /** * Compares a fresh EvalReport against a stored baseline, flagging metrics * whose aggregate dropped by more than the threshold. */ export declare class BaselineComparator { private readonly threshold; constructor(threshold?: number); compare(report: EvalReport, baseline: BaselineRecord): RegressionReport; /** Persists the report's aggregates as the new baseline. */ saveBaseline(report: EvalReport, path: string): BaselineRecord; /** Reads a baseline file, or null when missing or unparseable. */ loadBaseline(path: string): BaselineRecord | null; } //# sourceMappingURL=BaselineComparator.d.ts.map