import type { RuntimeFaultClassification } from "./faultClassifier.js";
import type { RuntimeRepairPlan } from "./repairPlanBuilder.js";
import type { RuntimeRepairRollbackDecision } from "./repairRollbackGuard.js";
import type { RuntimeRepairSandboxRun } from "./repairSandboxRunner.js";
export type RuntimeRepairResultBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope" | "report";
export type RuntimeRepairOutcome = "succeeded" | "failed" | "blocked" | "escalated" | "observe-only";
export type RuntimeRepairResultSeverity = "info" | "warning" | "error";
export type RuntimeRepairResultErrorCode = "MISSING_RUNTIME_ID" | "MISSING_OUTCOME" | "MISSING_FAULT_CONTEXT" | "MISSING_FAILURE_REASON" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type RuntimeRepairResultGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeRepairResultReporterRequest = {
    runtimeId?: string;
    outcome?: RuntimeRepairOutcome;
    classification?: RuntimeFaultClassification;
    faultId?: string;
    plan?: RuntimeRepairPlan;
    sandboxRun?: RuntimeRepairSandboxRun;
    rollbackDecision?: RuntimeRepairRollbackDecision;
    failureReason?: string;
    recommendations?: readonly string[];
    reportedAt?: string;
    runtimeReady?: boolean;
    contract?: RuntimeRepairResultGate;
    governance?: RuntimeRepairResultGate;
};
export type RuntimeRepairResultReport = {
    reportId: string;
    runtimeId: string;
    outcome: RuntimeRepairOutcome;
    severity: RuntimeRepairResultSeverity;
    faultId: string;
    planId?: string;
    sandboxRunId?: string;
    rollbackPoint?: string;
    failureReason?: string;
    recommendations: readonly string[];
    reportedAt: string;
    publicSummary: string;
    audit: {
        dryRun: true;
        unsafeSideEffects: false;
        reporter: "runtime.selfRepair.repairResultReporter";
        notificationSent: false;
        contractChecked: true;
        governanceChecked: true;
    };
};
export type RuntimeRepairResultError = {
    code: RuntimeRepairResultErrorCode;
    message: string;
    boundary: RuntimeRepairResultBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type RuntimeRepairResultReporterResult = {
    ok: true;
    report: RuntimeRepairResultReport;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeRepairResultError;
    events: readonly string[];
};
export declare const runtimeRepairResultReporterDescriptor: {
    readonly surface: "runtime.selfRepair";
    readonly capability: "repairResultReporter";
    readonly purpose: "report self-repair outcomes, failure reasons, and recommended next steps";
    readonly unsafeSideEffects: false;
};
export declare function reportRepairResult(request?: RuntimeRepairResultReporterRequest): RuntimeRepairResultReporterResult;
