import type { RuntimeRepairPlan, RuntimeRepairPlanRisk, RuntimeRepairPlanStepKind } from "./repairPlanBuilder.js";
export type RuntimeRepairActionGateBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope" | "approval";
export type RuntimeRepairActionGateErrorCode = "MISSING_RUNTIME_ID" | "MISSING_REPAIR_PLAN" | "MISSING_REPAIR_STEP" | "REPAIR_STEP_NOT_FOUND" | "REPAIR_SCOPE_DENIED" | "APPROVAL_REQUIRED" | "HIGH_RISK_REPAIR_DENIED" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type RuntimeRepairActionDecisionStatus = "allow" | "deny" | "requires-approval";
export type RuntimeRepairActionGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeRepairActionGateRequest = {
    runtimeId?: string;
    plan?: RuntimeRepairPlan;
    stepId?: string;
    allowedStepKinds?: readonly RuntimeRepairPlanStepKind[];
    approvedStepIds?: readonly string[];
    allowHighRisk?: boolean;
    runtimeReady?: boolean;
    contract?: RuntimeRepairActionGate;
    governance?: RuntimeRepairActionGate;
};
export type RuntimeRepairActionDecision = {
    status: RuntimeRepairActionDecisionStatus;
    runtimeId: string;
    planId: string;
    stepId: string;
    stepKind: RuntimeRepairPlanStepKind;
    risk: RuntimeRepairPlanRisk;
    reason: string;
    dryRunOnly: true;
    executionPlanned: false;
    approvalRequired: boolean;
    rollbackPoint: string;
    audit: {
        unsafeSideEffects: false;
        gate: "runtime.selfRepair.repairActionGate";
        contractChecked: true;
        governanceChecked: true;
    };
};
export type RuntimeRepairActionGateError = {
    code: RuntimeRepairActionGateErrorCode;
    message: string;
    boundary: RuntimeRepairActionGateBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type RuntimeRepairActionGateResult = {
    ok: true;
    decision: RuntimeRepairActionDecision;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeRepairActionGateError;
    events: readonly string[];
};
export declare const runtimeRepairActionGateDescriptor: {
    readonly surface: "runtime.selfRepair";
    readonly capability: "repairActionGate";
    readonly purpose: "decide whether a dry-run self-repair step may proceed past runtime governance";
    readonly unsafeSideEffects: false;
};
export declare function gateRuntimeRepairAction(request?: RuntimeRepairActionGateRequest): RuntimeRepairActionGateResult;
