export type RuntimeRollbackBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type RuntimeRollbackGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeRollbackTrace = {
    correlationId?: string;
    callerId?: string;
    operatorId?: string;
};
export type RuntimeRollbackCheckpoint = {
    checkpointId?: string;
    revision?: number;
    label?: string;
    createdBy?: string;
    trace?: RuntimeRollbackTrace;
};
export type RuntimeRollbackRequest = {
    runtimeId?: string;
    currentRevision?: number;
    targetCheckpoint?: RuntimeRollbackCheckpoint;
    reason?: string;
    allowedCheckpointIds?: readonly string[];
    runtimeReady?: boolean;
    contract?: RuntimeRollbackGate;
    governance?: RuntimeRollbackGate;
    trace?: RuntimeRollbackTrace;
};
export type RuntimeRollbackErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CURRENT_REVISION" | "MISSING_TARGET_CHECKPOINT" | "INVALID_CURRENT_REVISION" | "INVALID_TARGET_REVISION" | "CHECKPOINT_OUT_OF_SCOPE" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "ROLLBACK_NOT_REQUIRED" | "TARGET_AHEAD_OF_CURRENT";
export type RuntimeRollbackError = {
    code: RuntimeRollbackErrorCode;
    message: string;
    boundary: RuntimeRollbackBoundary;
    publicSafe: true;
    internalDetailExposed: false;
    stateSafe: true;
};
export type RuntimeRollbackPlan = {
    runtimeId: string;
    fromRevision: number;
    toRevision: number;
    checkpoint: {
        checkpointId: string;
        revision: number;
        label?: string;
        createdBy?: string;
    };
    reason?: string;
    controller: "runtime.managementPlane.rollbackController";
    dispatch: "dry-run";
    reversible: true;
    unsafeSideEffects: false;
    plannedSteps: readonly string[];
    audit: {
        kind: "runtime-rollback";
        requiresGovernance: true;
        contractChecked: boolean;
        governanceChecked: boolean;
    };
    trace: RuntimeRollbackTrace;
};
export type RuntimeRollbackResult = {
    ok: true;
    plan: RuntimeRollbackPlan;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeRollbackError;
    events: readonly string[];
};
export declare function planRuntimeRollback(request?: RuntimeRollbackRequest): RuntimeRollbackResult;
