import { type RuntimeManagementCaller, type RuntimeManagementError, type RuntimeManagementGate, type RuntimeManagementSurface } from "./runtimeManagementPlane.js";
export type RuntimeMutationOperation = "bind" | "unmount" | "configure" | "mode-switch" | "resource-tune" | "rollback-marker" | (string & {});
export type RuntimeMutationRisk = "low" | "medium" | "high" | "critical";
export type RuntimeMutationProposal = {
    mutationId?: string;
    targetSurface?: RuntimeManagementSurface;
    operation?: RuntimeMutationOperation;
    risk?: RuntimeMutationRisk;
    requestedScopes?: readonly string[];
    requiresRollback?: boolean;
    dryRunOnly?: boolean;
    reason?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type RuntimeMutationPlanStep = {
    stepId: string;
    mutationId: string;
    targetSurface: RuntimeManagementSurface;
    operation: RuntimeMutationOperation;
    risk: RuntimeMutationRisk;
    guardrails: readonly string[];
    auditTags: readonly string[];
    rollbackRequired: boolean;
    dryRunOnly: true;
};
export type RuntimeMutationPlan = {
    runtimeId: string;
    caller: RuntimeManagementCaller;
    route: "runtime.managementPlane.mutationPlanner";
    phase: "planned";
    steps: readonly RuntimeMutationPlanStep[];
    mutationIds: readonly string[];
    targetSurfaces: readonly RuntimeManagementSurface[];
    requestedScopes: readonly string[];
    grantedScopes: readonly string[];
    rollbackRequired: boolean;
    mockableEnvelope: true;
    governanceChecked: true;
    contractChecked: true;
    auditRequired: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type RuntimeMutationPlannerErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_MUTATIONS" | "MISSING_MUTATION_ID" | "MISSING_TARGET_SURFACE" | "MISSING_OPERATION" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "RISK_REVIEW_REQUIRED";
export type RuntimeMutationPlannerError = Omit<RuntimeManagementError, "code"> & {
    code: RuntimeMutationPlannerErrorCode;
};
export type RuntimeMutationPlannerResult = {
    ok: true;
    plan: RuntimeMutationPlan;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeMutationPlannerError;
    events: readonly string[];
};
export type RuntimeMutationPlannerRequest = {
    runtimeId?: string;
    caller?: RuntimeManagementCaller;
    mutations?: readonly RuntimeMutationProposal[];
    runtimeReady?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    reviewedRisks?: readonly RuntimeMutationRisk[];
    contract?: RuntimeManagementGate;
    governance?: RuntimeManagementGate;
};
export declare function planRuntimeMutation(request?: RuntimeMutationPlannerRequest): RuntimeMutationPlannerResult;
