import type { Static, ValidationIssue } from "../../toolcraft-schema/dist/index.js";
/**
 * Schema for an eval.yaml file.
 *
 * Canonical oracle layout:
 *
 * oracle/
 * ├── solution/    # reference implementation; used by `eval check`
 * └── tests/       # vitest *.test.ts files; the default scorer
 *
 * Keep oracle.path at its default value of "oracle" unless an eval has a
 * strong reason to use a different folder.
 *
 * eval check copies oracle/solution/* into the clone root by default. Use
 * oracle.solution_dest to copy it under a clone-root-relative subdirectory.
 */
export declare const evalYamlSchema: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
    readonly id: import("../../toolcraft-schema/dist/index.js").StringSchema;
    readonly title: import("../../toolcraft-schema/dist/index.js").StringSchema;
    readonly target: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly repo: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly ref: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly plan_dest: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
    }>;
    readonly scorer: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly command: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly cwd: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
        readonly result_path: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly timeout_ms: import("../../toolcraft-schema/dist/index.js").NumberSchema;
    }>>;
    readonly oracle: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly path: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
        readonly solution_dest: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
    }>;
    readonly budget: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly max_iterations: import("../../toolcraft-schema/dist/index.js").NumberSchema;
        readonly max_tokens: import("../../toolcraft-schema/dist/index.js").NumberSchema;
        readonly wall_clock_ms: import("../../toolcraft-schema/dist/index.js").NumberSchema;
    }>;
    readonly judge: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly agent: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly model: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly rubric: import("../../toolcraft-schema/dist/index.js").ArraySchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
    }>;
    readonly weights: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly tests: import("../../toolcraft-schema/dist/index.js").NumberSchema;
        readonly judge: import("../../toolcraft-schema/dist/index.js").NumberSchema;
    }>;
    readonly metrics: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").ArraySchema<import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly id: import("../../toolcraft-schema/dist/index.js").EnumSchema<readonly ["task_completion", "plan_adherence", "tool_correctness", "step_efficiency"]>;
        readonly enabled: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").BooleanSchema>;
        readonly required: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").BooleanSchema>;
        readonly weight: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").NumberSchema>;
        readonly threshold: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").NumberSchema>;
        readonly evaluator: import("../../toolcraft-schema/dist/index.js").OneOfSchema<{
            deterministic: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
                readonly config: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").JsonValueSchema>;
            }>;
            judge: import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
                readonly agent: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
                readonly model: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
                readonly instructions: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").StringSchema>;
                readonly config: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").JsonValueSchema>;
            }>;
        }, "kind">;
    }>>>;
    readonly verify: import("../../toolcraft-schema/dist/index.js").OptionalSchema<import("../../toolcraft-schema/dist/index.js").ObjectSchema<{
        readonly command: import("../../toolcraft-schema/dist/index.js").StringSchema;
        readonly timeout_ms: import("../../toolcraft-schema/dist/index.js").NumberSchema;
    }>>;
}>;
export type EvalYaml = Static<typeof evalYamlSchema>;
export declare class EvalYamlValidationError extends Error {
    readonly issues: readonly ValidationIssue[];
    constructor(message: string, issues: readonly ValidationIssue[]);
}
export declare function validateEvalYaml(value: unknown, filePath?: string): EvalYaml;
