import type { MetricSpread } from "./multirun.js"; /** * Baselines for "did that change actually help" comparisons, persisted under * ~/.pagespeed-mcp/baselines.json keyed by url+strategy. The first call on a * URL records the baseline; later calls compare against it. Verdicts are only * given where the two min-max ranges do NOT overlap — comparing medians alone * reports improvements that are just the instrument moving. */ interface Snapshot { recorded: string; lighthouseVersion?: string; scores: Record; metrics: Record; } export declare function getBaseline(url: string, strategy: string): Snapshot | null; export declare function saveBaseline(url: string, strategy: string, multirun: { stats: any; scores: Record; metrics: Record; }, lighthouseVersion?: string): Snapshot; export declare function clearBaseline(url: string, strategy: string): void; export interface RangeVerdict { metric: string; before: MetricSpread; after: MetricSpread; verdict: "improved" | "regressed" | "no-verdict"; medianDelta: number; guaranteedDelta: number; } /** * Compare two snapshots. A verdict is only given where the ranges are * completely disjoint; `guaranteedDelta` is the smaller figure the gap * actually guarantees (max(before.min - after.max, 0) style) and is the one * to quote. */ export declare function compareBaselines(before: Snapshot, after: Snapshot): RangeVerdict[]; export {};