import type { Client } from "#client/client.js";
import type { EveEval, EveEvalResult, EveEvalTargetHandle } from "#evals/types.js";
import type { EvalReporter } from "#evals/runner/reporters/types.js";
/**
 * Options for executing one eval.
 */
interface ExecuteEvalOptions {
    readonly evaluation: EveEval;
    readonly failOnSkip?: boolean;
    /** Receives `ctx.log` lines as cases run (used by `--verbose`). */
    readonly onCaseLog?: (caseId: string, message: string) => void;
    readonly target: EveEvalTargetHandle;
    readonly reporters: readonly EvalReporter[];
    readonly appRoot: string;
    /**
     * Pre-configured client for communicating with the Eve agent.
     * The CLI constructs this once with the appropriate auth and headers,
     * and every case creates a fresh session from it.
     */
    readonly client: Client;
}
/**
 * Executes all cases in one eval, runs checks and scorers, writes
 * artifacts, and reports results.
 */
export declare function executeEval(options: ExecuteEvalOptions): Promise<EveEvalResult>;
export {};
