/**
 * Evaluation Harness — EvalRunner.
 *
 * Runs eval suites using production runtime paths:
 * - PerfMonitor for budget evaluation
 * - SloCollector for SLO p95 measurements
 * - scoreScenario() for dimension scoring
 *
 * The runner does not mock any dependencies — it exercises the real
 * production code paths that gate CI.
 */
import type { EvalScenario, EvalSuiteResult, EvalGateResult, EvalBaseline } from '@pellux/goodvibes-sdk/platform/runtime/eval/types';
export interface EvalRunnerOptions {
    /**
     * Regression threshold for gate comparisons.
     * A scenario regresses if its composite score drops by more than this amount.
     * Default: 5 (5-point drop).
     */
    regressionThreshold?: number;
}
/**
 * Runs eval suites and produces structured results.
 *
 * @example
 * ```ts
 * const runner = new EvalRunner();
 * const result = await runner.runSuite(mySuite);
 * if (!result.passed) process.exit(1);
 * ```
 */
export declare class EvalRunner {
    private readonly regressionThreshold;
    constructor(options?: EvalRunnerOptions);
    /**
     * Run all scenarios in a suite sequentially.
     *
     * Each scenario:
     * 1. Calls scenario.run() via the production code path
     * 2. Evaluates the raw result through PerfMonitor (if perfReport is absent)
     * 3. Scores the result via scoreScenario()
     *
     * @param suite - Suite name (used for logging and baseline matching).
     * @param scenarios - Scenarios to run.
     * @returns Aggregated EvalSuiteResult.
     */
    runSuite(suite: string, scenarios: EvalScenario[]): Promise<EvalSuiteResult>;
    /**
     * Compare a fresh suite result against a stored baseline.
     * Produces an EvalGateResult indicating whether CI should pass.
     *
     * @param fresh - Result from a freshly-run suite.
     * @param baseline - Previously stored baseline (may be undefined).
     * @returns Gate result with per-scenario regression entries.
     */
    evaluateGate(fresh: EvalSuiteResult, baseline: EvalBaseline | undefined): EvalGateResult;
    private _runScenario;
    /** Execute a scenario's run() function, catching and normalising errors. */
    private _executeScenario;
}
//# sourceMappingURL=runner.d.ts.map