import { type OfficialModuleIdentity, type OfficialModuleKind, type OfficialModuleRuntimeError, type OfficialModuleRuntimeGate } from "./officialModuleRuntimeSurface.js";
export type OfficialModuleLifecycleAction = "join" | "pause" | "resume" | "reload" | "detach";
export type OfficialModuleLifecyclePhase = "detached" | "attached" | "paused";
export type OfficialModuleLifecycleRequest = {
    runtimeId?: string;
    moduleId?: string;
    moduleKind?: OfficialModuleKind;
    action?: OfficialModuleLifecycleAction;
    currentPhase?: OfficialModuleLifecyclePhase;
    runtimeReady?: boolean;
    contract?: OfficialModuleRuntimeGate;
    governance?: OfficialModuleRuntimeGate;
};
export type OfficialModuleLifecyclePlan = {
    runtimeId: string;
    module: OfficialModuleIdentity;
    action: OfficialModuleLifecycleAction;
    from: OfficialModuleLifecyclePhase;
    to: OfficialModuleLifecyclePhase;
    coordination: "runtime-lifecycle-port";
    rollbackPhase: OfficialModuleLifecyclePhase;
    dispatch: "dry-run";
    unsafeSideEffects: false;
};
export type OfficialModuleLifecycleResult = {
    ok: true;
    plan: OfficialModuleLifecyclePlan;
    events: readonly string[];
} | {
    ok: false;
    error: OfficialModuleRuntimeError;
    events: readonly string[];
};
export declare function planOfficialModuleLifecycleTransition(request?: OfficialModuleLifecycleRequest): OfficialModuleLifecycleResult;
