/**
 * Eval harness — strategy × dataset → {accuracy, cost, latency, rationale}.
 *
 * Sprint-579: eval-harness. Product-agnostic; consumer apps supply their own datasets.
 *
 * Usage:
 *   const result = await evalSuite(singleShotStrategy, EVAL_DATASET_30);
 *   console.log(result.accuracy); // 0.73
 */
import type { EvalTask } from "./datasets/index.js";
export interface StrategyOutput {
    output: string;
    costUsd?: number;
    latencyMs?: number;
    candidates?: string[];
}
export interface EvalStrategy {
    name: string;
    run(prompt: string): Promise<StrategyOutput>;
}
export interface EvalTaskResult {
    taskId: string;
    category: string;
    difficulty: string;
    passed: boolean;
    output: string;
    score: number;
    latencyMs: number;
    costUsd: number;
    rationale?: string;
}
export interface EvalSuiteResult {
    strategy: string;
    accuracy: number;
    costUsd: number;
    latencyMs: number;
    rationale: EvalTaskResult[];
    meta: {
        totalTasks: number;
        passedTasks: number;
        failedTasks: number;
        durationMs: number;
    };
}
export declare function scoreTask(task: EvalTask, output: string): number;
/**
 * Run a strategy against a dataset of eval tasks.
 * Returns accuracy (0-1), total cost in USD, median latency in ms,
 * and per-task rationale.
 */
export declare function evalSuite(strategy: EvalStrategy, dataset: EvalTask[]): Promise<EvalSuiteResult>;
//# sourceMappingURL=harness.d.ts.map