import type { RuntimeFaultCategory } from "./faultClassifier.js";
import type { RuntimeRepairPlanRisk, RuntimeRepairPlanStepKind } from "./repairPlanBuilder.js";
export type RuntimeRepairStrategyRegistryBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope" | "registry";
export type RuntimeRepairStrategyRegistryErrorCode = "MISSING_RUNTIME_ID" | "MISSING_STRATEGIES" | "MISSING_STRATEGY_ID" | "MISSING_STRATEGY_KIND" | "DUPLICATE_STRATEGY_ID" | "STRATEGY_SCOPE_DENIED" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type RuntimeRepairStrategyRegistryGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeRepairStrategyDefinition = {
    strategyId?: string;
    kind?: RuntimeRepairPlanStepKind;
    summary?: string;
    supportedFaultCategories?: readonly RuntimeFaultCategory[];
    risk?: RuntimeRepairPlanRisk;
    requiresApproval?: boolean;
    ownerSurface?: "applicationSurface" | "officialModuleSurface" | "runtime" | "test" | (string & {});
    tags?: readonly string[];
};
export type RuntimeRepairStrategyQuery = {
    strategyId?: string;
    kind?: RuntimeRepairPlanStepKind;
    faultCategory?: RuntimeFaultCategory;
    tags?: readonly string[];
};
export type RuntimeRepairStrategy = {
    strategyId: string;
    kind: RuntimeRepairPlanStepKind;
    summary: string;
    supportedFaultCategories: readonly RuntimeFaultCategory[];
    risk: RuntimeRepairPlanRisk;
    requiresApproval: boolean;
    ownerSurface: string;
    tags: readonly string[];
    dryRunOnly: true;
    unsafeSideEffects: false;
};
export type RuntimeRepairStrategyRegistrySnapshot = {
    runtimeId: string;
    strategies: readonly RuntimeRepairStrategy[];
    matchedStrategies: readonly RuntimeRepairStrategy[];
    strategyCount: number;
    matchedCount: number;
    audit: {
        dryRun: true;
        unsafeSideEffects: false;
        registry: "runtime.selfRepair.repairStrategyRegistry";
        contractChecked: true;
        governanceChecked: true;
    };
};
export type RuntimeRepairStrategyRegistryError = {
    code: RuntimeRepairStrategyRegistryErrorCode;
    message: string;
    boundary: RuntimeRepairStrategyRegistryBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type RuntimeRepairStrategyRegistryRequest = {
    runtimeId?: string;
    strategies?: readonly RuntimeRepairStrategyDefinition[];
    query?: RuntimeRepairStrategyQuery;
    allowedStrategyKinds?: readonly RuntimeRepairPlanStepKind[];
    runtimeReady?: boolean;
    contract?: RuntimeRepairStrategyRegistryGate;
    governance?: RuntimeRepairStrategyRegistryGate;
};
export type RuntimeRepairStrategyRegistryResult = {
    ok: true;
    registry: RuntimeRepairStrategyRegistrySnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeRepairStrategyRegistryError;
    events: readonly string[];
};
export declare const runtimeRepairStrategyRegistryDescriptor: {
    readonly surface: "runtime.selfRepair";
    readonly capability: "repairStrategyRegistry";
    readonly purpose: "register and query dry-run self-repair strategies without executing repair actions";
    readonly unsafeSideEffects: false;
};
export declare function createRepairStrategyRegistry(request?: RuntimeRepairStrategyRegistryRequest): RuntimeRepairStrategyRegistryResult;
