import type { EvalDef, JudgeSpec, MetricSpec, RubricKey } from "../types.js";
import type { NormalizedTrace } from "./trace/types.js";
type JudgeScores = Record<RubricKey, number> & {
    mean: number;
};
export interface JudgeMetricScore {
    score: number;
    reason: string;
    traceReferences?: readonly number[];
}
export declare function judgeRun(input: {
    evalDef: EvalDef;
    cloneDir: string;
    traceJsonPath: string;
    trace: NormalizedTrace;
    testsResult: {
        passed: number;
        total: number;
    };
    spec: JudgeSpec;
    agentUnderTest: string;
}): Promise<JudgeScores>;
export declare function judgeMetric(input: {
    evalDef: EvalDef;
    metric: MetricSpec;
    cloneDir: string;
    traceJsonPath: string;
    trace: NormalizedTrace;
    oracleOutcome: {
        passed: number;
        total: number;
    };
    agentUnderTest: string;
}): Promise<JudgeMetricScore>;
export {};
