import type { CompactionLifecycleState } from './compaction/index.js';
import { type TransitionResult as CompactionTransitionResult } from './compaction/index.js';
import type { McpServerState } from './mcp/index.js';
import type { PluginLifecycleState } from './plugins/index.js';
import { type TransitionResult as PluginTransitionResult } from './plugins/index.js';
import type { TaskLifecycleState } from './store/domains/tasks.js';
type RuntimeLifecycleState = TaskLifecycleState | PluginLifecycleState | McpServerState | CompactionLifecycleState;
export type RuntimeTransitionResult = (PluginTransitionResult & {
    readonly success?: never;
    readonly previous?: never;
    readonly next?: never;
    readonly state?: never;
}) | ({
    ok: true;
    success: true;
    previous: McpServerState;
    next: McpServerState;
    from: McpServerState;
    to: McpServerState;
    readonly state?: never;
} | {
    ok: false;
    success: false;
    reason: string;
    readonly previous?: never;
    readonly next?: never;
    readonly from?: never;
    readonly to?: never;
    readonly state?: never;
}) | (CompactionTransitionResult & {
    readonly success?: never;
    readonly previous?: never;
    readonly next?: never;
    readonly from?: never;
    readonly to?: never;
}) | {
    ok: true;
    from: TaskLifecycleState;
    to: TaskLifecycleState;
    readonly success?: never;
    readonly previous?: never;
    readonly next?: never;
    readonly state?: never;
} | {
    ok: false;
    reason: string;
    readonly success?: never;
    readonly previous?: never;
    readonly next?: never;
    readonly from?: never;
    readonly to?: never;
    readonly state?: never;
};
export declare function canTransition(from: McpServerState, to: McpServerState): boolean;
export declare function canTransition(from: PluginLifecycleState, to: PluginLifecycleState): boolean;
export declare function canTransition(from: TaskLifecycleState, to: TaskLifecycleState): boolean;
export declare function canTransition(from: CompactionLifecycleState, to: CompactionLifecycleState): boolean;
export declare function applyTransition(from: RuntimeLifecycleState, to: RuntimeLifecycleState): RuntimeTransitionResult;
export declare function reachableFrom(from: McpServerState): ReadonlySet<McpServerState>;
export declare function reachableFrom(from: CompactionLifecycleState): ReadonlySet<CompactionLifecycleState>;
export declare function reachableFrom(from: TaskLifecycleState): ReadonlySet<TaskLifecycleState>;
export declare function isOperational(state: PluginLifecycleState | McpServerState): boolean;
export declare function isReloadable(state: PluginLifecycleState): boolean;
export declare function isTerminal(state: TaskLifecycleState | PluginLifecycleState | McpServerState | CompactionLifecycleState): boolean;
export {};
//# sourceMappingURL=lifecycle-facade.d.ts.map