import type { SnapshotConfig, SnapshotMetric } from "../config.js"; import type { RunnerInfo } from "../domain/runner.js"; export interface SnapshotEntry { caseId: string; runnerId: string; metric: SnapshotMetric; value: number; agentType: RunnerInfo["agent"]["type"]; model?: string; updatedAt: string; } export interface SnapshotRuntimeOptions { enabled: boolean; updateSnapshots: boolean; path: string; config: SnapshotConfig; } export interface SnapshotCheckInput { caseId: string; runner: RunnerInfo; actual: number; } export interface SnapshotCheckResult { created: boolean; updated: boolean; } export declare class SnapshotStore { private readonly filePath; private readonly config; private readonly entries; private dirty; private constructor(); static load(options: SnapshotRuntimeOptions | undefined): Promise; save(): Promise; check(input: SnapshotCheckInput, options: SnapshotRuntimeOptions): SnapshotCheckResult; getFilePath(): string; } export declare function createSnapshotRuntimeOptions(options: { snapshotConfig?: SnapshotConfig; updateSnapshots?: boolean; snapshotPath?: string; configPath?: string; }): SnapshotRuntimeOptions | undefined; export declare function createSnapshotKey(caseId: string, runnerId: string): string;