import type { CaseResult } from "../vitest-runner.js";
import type { EvalDef, MetricResult, MetricSpec } from "../../types.js";
import type { NormalizedTrace } from "../trace/types.js";
import { type JudgeMetricScore } from "../judge.js";
export type MetricJudge = (input: {
    evalDef: EvalDef;
    metric: MetricSpec;
    cloneDir: string;
    traceJsonPath: string;
    trace: NormalizedTrace;
    oracleOutcome: OracleOutcome;
    agentUnderTest: string;
}) => Promise<JudgeMetricScore>;
type OracleOutcome = {
    passed: number;
    total: number;
    cases: CaseResult[];
};
export declare function executeMetrics(input: {
    evalDef: EvalDef;
    cloneDir: string;
    traceJsonPath: string;
    trace: NormalizedTrace;
    oracleOutcome: OracleOutcome;
    agentUnderTest: string;
    judgeEnabled?: boolean;
    judgeSkipReason?: string;
    judge?: MetricJudge;
}): Promise<readonly MetricResult[]>;
export {};
