declare const productBenchmarkSplits: readonly ["practice", "dev", "holdout", "safety", "sentinel"];
type ProductBenchmarkSplit = (typeof productBenchmarkSplits)[number];
interface ProductBenchmarkRepoRef {
    readonly url: string;
    readonly commit: string;
    readonly branch: string;
}
interface ProductBenchmarkSubstrateVersions {
    readonly agentEval: string;
    readonly agentRuntime: string;
    readonly agentInterface: string;
    readonly sandbox: string;
    readonly agentBench?: string;
}
interface ProductBenchmarkProfileRef {
    readonly id: string;
    readonly profileHash: string;
    readonly agentProfilePath: string;
}
interface ProductBenchmarkArm {
    readonly id: string;
    readonly profileId: string;
    readonly mutableSurfaces: readonly string[];
    readonly policyAxes: Record<string, unknown>;
}
interface ProductBenchmarkScenario {
    readonly id: string;
    readonly split: ProductBenchmarkSplit;
    readonly tags: readonly string[];
    readonly sourceAllowedForSynthesis: boolean;
}
interface ProductBenchmarkBudgets {
    readonly maxUsd: number;
    readonly maxCells: number;
    readonly maxWallMs: number;
}
interface ProductBenchmarkManifest {
    readonly schemaVersion: 1;
    readonly projectId: string;
    readonly benchmarkId: string;
    readonly repo: ProductBenchmarkRepoRef;
    readonly substrate: ProductBenchmarkSubstrateVersions;
    readonly profiles: readonly ProductBenchmarkProfileRef[];
    readonly arms: readonly ProductBenchmarkArm[];
    readonly scenarios: readonly ProductBenchmarkScenario[];
    readonly budgets: ProductBenchmarkBudgets;
    readonly expectedArtifactDir: string;
}
interface AgentProfileRuntimeReceipt {
    readonly model: string;
    readonly harness: string;
    readonly backend: string;
    readonly reasoningEffort?: string;
}
type RuntimeResolution = AgentProfileRuntimeReceipt;
interface ProductBenchmarkRecord {
    readonly schemaVersion: 1;
    readonly projectId: string;
    readonly benchmarkId: string;
    readonly runId: string;
    readonly scenarioId: string;
    readonly split: ProductBenchmarkSplit;
    readonly armId: string;
    readonly rep: number;
    readonly agentProfile: {
        readonly id: string;
        readonly hash: string;
        readonly path: string;
        readonly declared: RuntimeResolution;
        readonly resolved: RuntimeResolution;
    };
    readonly model: {
        readonly provider: string;
        readonly id: string;
    };
    readonly backend: {
        readonly kind: string;
        readonly version: string;
    };
    readonly outcome: {
        readonly pass: boolean;
        readonly score: number;
        readonly dimensions: Record<string, number>;
        readonly failureMode: string | null;
    };
    readonly usage: {
        readonly inputTokens: number;
        readonly outputTokens: number;
        readonly costUsd: number;
        readonly wallMs: number;
        readonly toolCalls: number;
    };
    readonly integrity: {
        readonly realBackend: boolean;
        readonly rawCapture: boolean;
        readonly traceCapture: boolean;
        readonly noStubRows: boolean;
        readonly priced: boolean;
        readonly profileMaterialized: boolean;
    };
    readonly artifacts: {
        readonly records: string;
        readonly traces: string;
        readonly raws: string;
        readonly scores: string;
        readonly workspace: string;
    };
}
interface ProductBenchmarkRunInput {
    readonly manifestPath: string;
    readonly recordsPath: string;
    readonly artifactRoot?: string;
    readonly checkArtifacts?: boolean;
}
interface ProductBenchmarkValidationReport {
    readonly manifestPath: string;
    readonly recordsPath: string;
    readonly records: number;
    readonly projects: readonly string[];
    readonly benchmarks: readonly string[];
    readonly arms: readonly string[];
    readonly scenarios: readonly string[];
    readonly passed: number;
    readonly failed: number;
    readonly inputTokens: number;
    readonly outputTokens: number;
    readonly costUsd: number;
    readonly wallMs: number;
    readonly integrityFailures: readonly string[];
    readonly missingArtifacts: readonly string[];
}
interface ProductBenchmarkArtifactPaths {
    readonly manifestPath: string;
    readonly recordsPath: string;
}
declare function validateProductBenchmarkManifest(value: unknown): ProductBenchmarkManifest;
declare function validateProductBenchmarkRecord(value: unknown): ProductBenchmarkRecord;
declare function productBenchmarkIntegrityFailures(record: ProductBenchmarkRecord): string[];
declare function readProductBenchmarkRecords(path: string): ProductBenchmarkRecord[];
declare function readProductBenchmarkManifest(path: string): ProductBenchmarkManifest;
declare function validateProductBenchmarkRun(input: ProductBenchmarkRunInput): ProductBenchmarkValidationReport;
declare function findProductBenchmarkArtifacts(runDir: string): ProductBenchmarkArtifactPaths | null;

export { type AgentProfileRuntimeReceipt, type ProductBenchmarkArm, type ProductBenchmarkArtifactPaths, type ProductBenchmarkBudgets, type ProductBenchmarkManifest, type ProductBenchmarkProfileRef, type ProductBenchmarkRecord, type ProductBenchmarkRepoRef, type ProductBenchmarkRunInput, type ProductBenchmarkScenario, type ProductBenchmarkSplit, type ProductBenchmarkSubstrateVersions, type ProductBenchmarkValidationReport, type RuntimeResolution, findProductBenchmarkArtifacts, productBenchmarkIntegrityFailures, productBenchmarkSplits, readProductBenchmarkManifest, readProductBenchmarkRecords, validateProductBenchmarkManifest, validateProductBenchmarkRecord, validateProductBenchmarkRun };
