import { z } from 'zod';
export declare const evalCheckSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    command: z.ZodString;
    timeoutMs: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export declare const evalSetupSchema: z.ZodObject<{
    copyFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    files: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    commands: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        command: z.ZodString;
        timeoutMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>>;
    commitMessage: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const evalInlineFixtureSchema: z.ZodObject<{
    type: z.ZodLiteral<"inline">;
}, z.core.$strip>;
export declare const evalGitWorktreeFixtureSchema: z.ZodObject<{
    type: z.ZodLiteral<"git-worktree">;
    repo: z.ZodDefault<z.ZodString>;
    ref: z.ZodString;
}, z.core.$strip>;
export declare const evalFixtureSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"inline">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"git-worktree">;
    repo: z.ZodDefault<z.ZodString>;
    ref: z.ZodString;
}, z.core.$strip>], "type">;
export declare const evalMilestoneReviewSchema: z.ZodObject<{
    milestone: z.ZodOptional<z.ZodString>;
    intent: z.ZodOptional<z.ZodString>;
    requiredOutcomes: z.ZodDefault<z.ZodArray<z.ZodString>>;
    allowedScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
    outOfScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
    humanQuestions: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const agentEvalCaseSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"coding">;
    description: z.ZodOptional<z.ZodString>;
    prompt: z.ZodString;
    model: z.ZodOptional<z.ZodString>;
    maxSteps: z.ZodOptional<z.ZodNumber>;
    setup: z.ZodDefault<z.ZodObject<{
        copyFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        files: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        commands: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodOptional<z.ZodString>;
            command: z.ZodString;
            timeoutMs: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>>>;
        commitMessage: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    fixture: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"inline">;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"git-worktree">;
        repo: z.ZodDefault<z.ZodString>;
        ref: z.ZodString;
    }, z.core.$strip>], "type">>;
    review: z.ZodDefault<z.ZodObject<{
        milestone: z.ZodOptional<z.ZodString>;
        intent: z.ZodOptional<z.ZodString>;
        requiredOutcomes: z.ZodDefault<z.ZodArray<z.ZodString>>;
        allowedScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
        outOfScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
        humanQuestions: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        command: z.ZodString;
        timeoutMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>>;
    rubric: z.ZodDefault<z.ZodArray<z.ZodString>>;
    tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const evalCaseSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodLiteral<"coding">;
    description: z.ZodOptional<z.ZodString>;
    prompt: z.ZodString;
    model: z.ZodOptional<z.ZodString>;
    maxSteps: z.ZodOptional<z.ZodNumber>;
    setup: z.ZodDefault<z.ZodObject<{
        copyFiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        files: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        commands: z.ZodOptional<z.ZodArray<z.ZodObject<{
            name: z.ZodOptional<z.ZodString>;
            command: z.ZodString;
            timeoutMs: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>>>;
        commitMessage: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    fixture: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"inline">;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"git-worktree">;
        repo: z.ZodDefault<z.ZodString>;
        ref: z.ZodString;
    }, z.core.$strip>], "type">>;
    review: z.ZodDefault<z.ZodObject<{
        milestone: z.ZodOptional<z.ZodString>;
        intent: z.ZodOptional<z.ZodString>;
        requiredOutcomes: z.ZodDefault<z.ZodArray<z.ZodString>>;
        allowedScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
        outOfScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
        humanQuestions: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        command: z.ZodString;
        timeoutMs: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>>;
    rubric: z.ZodDefault<z.ZodArray<z.ZodString>>;
    tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export type EvalCheck = z.infer<typeof evalCheckSchema>;
export type EvalSetup = z.infer<typeof evalSetupSchema>;
export type EvalFixture = z.infer<typeof evalFixtureSchema>;
export type EvalMilestoneReview = z.infer<typeof evalMilestoneReviewSchema>;
export type AgentEvalCase = z.infer<typeof agentEvalCaseSchema>;
export type EvalCase = z.infer<typeof evalCaseSchema>;
export type EvalCheckResult = {
    name: string;
    command: string;
    exitCode: number | null;
    stdout: string;
    stderr: string;
    durationMs: number;
    passed: boolean;
    timedOut: boolean;
};
export type EvalChangedFile = {
    path: string;
    status: string;
    additions?: number;
    deletions?: number;
};
export type EvalTraceMetrics = {
    assistantTurns: number;
    toolCalls: number;
    toolResults: number;
    mutations: number;
    approvalsRequested: number;
    approvalsResolved: number;
    toolErrors: number;
    verificationCommandsAfterMutation: number;
    firstMutationStep?: number;
    outcome?: string;
    summary?: string;
    toolsByName: Record<string, number>;
    readOrSearchBeforeMutation: string[];
    verificationCommandDetails: string[];
};
export type EvalRunResult = {
    caseId: string;
    target: string;
    status: 'passed' | 'failed';
    workspaceRoot: string;
    outputDir: string;
    fixture: {
        type: EvalFixture['type'];
        repo?: string;
        ref?: string;
        resolvedRef?: string;
        baselineCommit?: string;
    };
    startedAt: string;
    finishedAt: string;
    durationMs: number;
    agent: {
        command: string[];
        exitCode: number | null;
        stdoutPath: string;
        stderrPath: string;
        timedOut: boolean;
    };
    artifacts: {
        gitStatusPath: string;
        gitDiffPath: string;
        gitDiffStatPath: string;
        changedFilesPath: string;
        progressPath?: string;
        sessionCatalogPath?: string;
        traceFiles: string[];
        changedFiles: EvalChangedFile[];
    };
    checks: EvalCheckResult[];
    metrics: EvalTraceMetrics;
    review: EvalMilestoneReview;
    model?: string;
    maxSteps?: number;
};
export type EvalSuiteReport = {
    version: 1;
    target: string;
    repoRoot: string;
    startedAt: string;
    finishedAt: string;
    resultsDir: string;
    results: EvalRunResult[];
};
//# sourceMappingURL=schema.d.ts.map