import { O as Objective, P as ParetoResult } from './pareto-E-pembql.js';
import { R as RunScore, a as RunTrace, b as RunScoreWeights } from './run-critic-CmMf05uV.js';

interface SteeringRolePrompt {
    system?: string;
    append?: string;
}
interface SteeringBundle {
    id: string;
    coderPrompt?: string;
    continuePrompt?: string;
    reviewerPrompts?: Record<string, string>;
    skills?: string[];
    rolePrompts?: Record<string, SteeringRolePrompt>;
    metadata?: Record<string, unknown>;
}
interface SteeringDelta {
    coderPrompt?: string;
    continuePrompt?: string;
    reviewerPrompts?: Record<string, string>;
    skills?: string[];
    rolePrompts?: Record<string, SteeringRolePrompt>;
    metadata?: Record<string, unknown>;
}
declare function mergeSteeringBundle(base: SteeringBundle, delta: SteeringDelta): SteeringBundle;
declare function renderSteeringText(bundle: SteeringBundle): string;

type HarnessIntervention = 'continue' | 'plan' | 'audit' | 'recover' | 'repair' | 'verify' | 'final_gate' | 'wait_for_measurement' | 'abort';
interface WorkflowTopology {
    id: string;
    interventions: HarnessIntervention[];
    maxParallelBranches?: number;
    metadata?: Record<string, unknown>;
}
interface MeasurementPolicy {
    required: string[];
    optional?: string[];
    promoteOn?: Array<keyof RunScore | 'aggregate'>;
}
interface HarnessVariant {
    id: string;
    steering?: SteeringBundle;
    topology?: WorkflowTopology;
    measurement?: MeasurementPolicy;
    budgets?: Record<string, number>;
    models?: Record<string, string>;
    reviewers?: Record<string, string>;
    metadata?: Record<string, unknown>;
}
interface HarnessScenario {
    id: string;
    task: string;
    split?: 'train' | 'validation' | 'test' | string;
    metadata?: Record<string, unknown>;
}
interface HarnessRunRequest {
    variant: HarnessVariant;
    scenario: HarnessScenario;
    trialIndex: number;
}
interface HarnessAdapter {
    run(request: HarnessRunRequest): Promise<RunTrace>;
}
interface HarnessRunResult {
    variant: HarnessVariant;
    scenario: HarnessScenario;
    trialIndex: number;
    trace: RunTrace;
    score: RunScore;
    aggregate: number;
}
interface HarnessVariantReport {
    variant: HarnessVariant;
    runs: HarnessRunResult[];
    aggregateMean: number;
    passRate: number;
    costUsdMean: number;
    wallSecondsMean: number;
    scoreMean: RunScore;
}
interface HarnessSelection {
    winner: HarnessVariantReport;
    frontier: ParetoResult<HarnessVariantReport>;
    reports: HarnessVariantReport[];
}
interface HarnessExperimentResult {
    results: HarnessRunResult[];
    selection: HarnessSelection;
}
interface HarnessExperimentConfig {
    adapter: HarnessAdapter;
    variants: HarnessVariant[];
    scenarios: HarnessScenario[];
    trialsPerScenario?: number;
    parallelism?: number;
    weights?: Partial<RunScoreWeights>;
    objectives?: Array<Objective<HarnessVariantReport>>;
    score?: (trace: RunTrace, request: HarnessRunRequest) => RunScore | Promise<RunScore>;
    onResult?: (result: HarnessRunResult) => void | Promise<void>;
}
declare const DEFAULT_HARNESS_OBJECTIVES: Array<Objective<HarnessVariantReport>>;
declare function runHarnessExperiment(config: HarnessExperimentConfig): Promise<HarnessExperimentResult>;
declare function selectHarnessVariant(results: HarnessRunResult[], objectives?: Array<Objective<HarnessVariantReport>>): HarnessSelection;
declare function summarizeHarnessResults(results: HarnessRunResult[]): HarnessVariantReport[];

export { DEFAULT_HARNESS_OBJECTIVES as D, type HarnessAdapter as H, type MeasurementPolicy as M, type SteeringBundle as S, type WorkflowTopology as W, type HarnessExperimentConfig as a, type HarnessExperimentResult as b, type HarnessIntervention as c, type HarnessRunRequest as d, type HarnessRunResult as e, type HarnessScenario as f, type HarnessSelection as g, type HarnessVariant as h, type HarnessVariantReport as i, type SteeringDelta as j, type SteeringRolePrompt as k, runHarnessExperiment as l, mergeSteeringBundle as m, summarizeHarnessResults as n, renderSteeringText as r, selectHarnessVariant as s };
