import type { GoalScope } from '@dsh-enhanced/assistant-goals'; import type { SkillDefinition } from './definition.js'; export interface SkillComparisonProfile { id: string; version: number; scope: GoalScope; stateRoot: string; image: string; dockerPath: string; command: string; artifactPath: string; expiresAt: number; maxComparisons: number; repeats: number; cellDurationMs: number; verificationDurationMs: number; maxToolCalls: number; maxBytes: number; maxOutputBytes: number; minimumEvaluationGain: number; cases: readonly { id: string; kind: 'replay' | 'evaluation' | 'regression'; inputs: Readonly>; files: readonly { path: string; content: string; }[]; stdin: string; expectedStdout: string; expectedExitCode: number; }[]; } export declare function validateComparisonProfiles(value: unknown): readonly SkillComparisonProfile[]; /** Host coordinator: fixed native file-tool replay, separate isolated artifact execution, Host-side judge. */ export declare class SkillComparator { #private; constructor(profile: SkillComparisonProfile); compare(id: string, baseline: SkillDefinition, candidate: SkillDefinition, signal: AbortSignal, authorize: () => void): Promise<{ protocol: string; profileId: string; profileDigest: string; baselineDigest: string; candidateDigest: string; report: import("@dsh-enhanced/assistant-evaluation/benchmark").BenchmarkReport; cells: { id: string; artifactDigest: string; jobId: string; verdict: string; quiescent: boolean; toolCalls: number; executedToolCalls: number; omittedObservations: number; }[]; quality: { candidateChecksPassed: boolean; evaluationGain: number | null; evaluationGainObserved: boolean; criticalRegressionsPassed: boolean; heldoutIndependence: string; }; promotionAuthorized: boolean; execution: string; modelCalls: number; }>; close(): Promise; } //# sourceMappingURL=comparison.d.ts.map