export declare const MODEL_FUSION_SCHEMA_BUNDLE_HASH = "sha256:955da2d6891c88d4c40746a8206439e2dae2efc1e7ffefca015e84d4ce265671";
export type JsonValue = null | boolean | number | string | JsonValue[] | {
    [key: string]: JsonValue;
};
export type ModelFusionStatus = "pending" | "running" | "succeeded" | "failed" | "canceled" | "requires_action" | "skipped" | "unsupported";
export type ModelFusionSideEffects = "none" | "read_only" | "writes_workspace" | "network" | "tool_execution" | "unknown";
export type ModelFusionCapabilityStatus = "supported" | "unsupported" | "degraded" | "unknown";
export type ModelFusionHarnessKind = "generic" | "cursor" | "claude_code" | "codex" | "openai_responses";
export type ModelFusionArtifactKind = "transcript" | "patch" | "screenshot" | "log" | "metrics" | "worktree" | "other";
export type ModelFusionRedactionStatus = "synthetic" | "redacted" | "raw";
export type ContractMetadata<S extends string> = {
    schema: S;
    schema_version: "v1";
    schema_bundle_hash: string;
    producer: string;
    producer_version: string;
    producer_git_sha: string;
    created_at: string;
};
export type ArtifactRef = {
    artifact_id: string;
    kind: ModelFusionArtifactKind;
    uri?: string;
    hash: string;
    redaction_status?: ModelFusionRedactionStatus;
};
export type ModelFusionDiagnostic = {
    kind: "capability_missing";
    message: string;
    retryable: boolean;
    capability?: string;
    status?: ModelFusionCapabilityStatus;
    requested_status?: ModelFusionCapabilityStatus;
};
export type HarnessRunRequestV1 = ContractMetadata<"harness-run-request.v1"> & {
    request_id: string;
    harness_kind: ModelFusionHarnessKind;
    source_repo: string;
    base_git_sha: string;
    prompt: string;
    prompt_hash: string;
    allowed_tools?: string[];
    side_effects: ModelFusionSideEffects;
    requested_capabilities: Record<string, ModelFusionCapabilityStatus>;
    metadata?: Record<string, JsonValue>;
};
export type HarnessRunResultV1 = ContractMetadata<"harness-run-result.v1"> & {
    result_id: string;
    request_id: string;
    harness_kind: ModelFusionHarnessKind;
    status: ModelFusionStatus;
    candidate_ids: string[];
    output_summary?: string;
    artifacts?: ArtifactRef[];
    capabilities: Record<string, ModelFusionCapabilityStatus>;
    requested_model?: string;
    observed_model?: string;
    model_id?: string;
    endpoint_id?: string;
    diagnostics?: ModelFusionDiagnostic[];
    started_at: string;
    finished_at?: string;
    errors?: Array<{
        kind: string;
        message: string;
        retryable: boolean;
    }>;
    metadata?: Record<string, JsonValue>;
};
export type CursorRunRequestV1 = ContractMetadata<"cursor-run-request.v1"> & {
    cursor_run_id: string;
    harness_request_id: string;
    workspace_path: string;
    prompt: string;
    prompt_hash: string;
    requested_model?: string;
    allowed_tools?: string[];
    side_effects: ModelFusionSideEffects;
    requested_capabilities: Record<string, ModelFusionCapabilityStatus>;
};
export type CursorRunResultV1 = ContractMetadata<"cursor-run-result.v1"> & {
    cursor_run_id: string;
    harness_request_id: string;
    mapped_harness_result_id?: string;
    status: ModelFusionStatus;
    output_summary: string;
    transcript_artifact?: ArtifactRef;
    artifacts?: ArtifactRef[];
    capabilities: Record<string, ModelFusionCapabilityStatus>;
    requested_model?: string;
    observed_model?: string;
    model_id?: string;
    endpoint_id?: string;
    diagnostics?: ModelFusionDiagnostic[];
    raw_hash: string;
    redacted_hash: string;
};
export declare function sha256Prefixed(value: string | Uint8Array): string;
export declare function cursorRunResultToHarnessRunResult(cursor: CursorRunResultV1): HarnessRunResultV1;
export declare function assertHarnessRunRequestV1(value: unknown): asserts value is HarnessRunRequestV1;
export declare function assertHarnessRunResultV1(value: unknown): asserts value is HarnessRunResultV1;
export declare function assertCursorRunRequestV1(value: unknown): asserts value is CursorRunRequestV1;
export declare function assertCursorRunResultV1(value: unknown): asserts value is CursorRunResultV1;
