import type { NormalizedResponse } from "./gateway.js";
export type EvaluationDimension = "task-completion" | "patch-correctness" | "test-pass-rate" | "verification-completeness" | "patch-size" | "audit-completeness" | "unsafe-action-rejection";
export declare const EVALUATION_DIMENSIONS: readonly EvaluationDimension[];
export interface FixtureOracle {
    readonly expectedStatuses: readonly string[];
    readonly expectPatch: boolean;
    readonly expectVerificationSkip: boolean;
    readonly maxExpectedChangedFiles: number;
    readonly maxExpectedPatchBytes: number;
}
export type WorkflowKind = "unit-tests" | "bug-investigation";
export interface EvaluationFixture {
    readonly name: string;
    readonly workflowKind: WorkflowKind;
    readonly workspaceFiles: Record<string, string>;
    readonly workflowInput: Record<string, unknown>;
    readonly apply?: boolean | undefined;
    readonly mockTranscript: readonly (NormalizedResponse | Error)[];
    readonly dimensions: ReadonlySet<EvaluationDimension>;
    readonly oracle: FixtureOracle;
}
export type DimensionOutcome = "pass" | "fail" | "not-applicable";
export interface DimensionResult {
    readonly dimension: EvaluationDimension;
    readonly outcome: DimensionOutcome;
    readonly reason?: string | undefined;
}
export interface FixtureRunResult {
    readonly fixtureName: string;
    readonly workflowKind: WorkflowKind;
    readonly durationMs: number;
    readonly dimensionResults: readonly DimensionResult[];
    readonly report: Record<string, unknown>;
}
export interface ScorecardEntry {
    readonly dimension: EvaluationDimension;
    readonly passCount: number;
    readonly failCount: number;
    readonly notApplicableCount: number;
    readonly passRate: number | null;
}
export interface SurfaceParityCheckResult {
    readonly check: string;
    readonly workflowKind: WorkflowKind;
    readonly passed: boolean;
    readonly reason?: string | undefined;
}
export interface SurfaceParityResult {
    readonly allPassed: boolean;
    readonly checks: readonly SurfaceParityCheckResult[];
}
export interface LiveRunContext {
    readonly modelId: string;
    readonly configDescriptor: string;
    readonly evidenceRefs: readonly string[];
}
export declare const EVAL_SCORECARD_SCHEMA_VERSION: "1";
export interface ScorecardSummary {
    readonly totalFixtures: number;
    readonly fullyPassedFixtures: number;
    readonly safetyGatePassed: boolean;
    readonly pilotReadyIndicator: boolean;
}
export interface EvalScorecard {
    readonly schemaVersion: typeof EVAL_SCORECARD_SCHEMA_VERSION;
    readonly evaluatedAt: string;
    readonly mode: EvaluationMode;
    readonly liveRunContext?: LiveRunContext | undefined;
    readonly dimensions: readonly ScorecardEntry[];
    readonly surfaceParity: SurfaceParityResult;
    readonly fixtureResults: readonly FixtureRunResult[];
    readonly summary: ScorecardSummary;
}
export type EvaluationMode = "offline" | "live";
//# sourceMappingURL=evaluations.d.ts.map