import type { FleetProcessEntry } from './fleet-shutdown.js'; /** Injectable reader for tests. Production reads the live PM2 jlist. */ export type Pm2FleetProjectionReader = () => FleetProcessEntry[]; export interface RestartShutdownPreflight { /** True when a normal restart will fail closed and the operator must run the * one-time `--bootstrap-shutdown-protocol` upgrade first. */ bootstrapRequired: boolean; /** Canonical PM2 names of the live daemon rows still on the old policy. * Empty when bootstrapRequired is false. */ unsafeDaemonNames: string[]; } /** * Inspect the currently live botmux daemons and decide whether a normal * restart would be refused by the shutdown-capability boundary. * * Only ONLINE, OS-plausible daemon rows are considered: a fleet that is * already fully retired (or a box where jlist is empty) reports * bootstrapRequired=false. If the projection cannot be read, callers should * treat that as "unknown, do not claim bootstrap is required" and fall back to * the existing fire-and-forget behavior — this probe never fabricates a * bootstrap requirement out of a read failure. */ export declare function evaluateRestartShutdownPreflight(read?: Pm2FleetProjectionReader): RestartShutdownPreflight; //# sourceMappingURL=restart-shutdown-preflight.d.ts.map