/** Bare `down` on a legacy root stops this space's local service instances through the service * controller before its pidfile sweep. Every instance is classified before the first stop, and * anything that cannot be verified refuses then, so no service and not the broker is stopped. */ import { type Report, type Style } from "@cotal-ai/workspace"; import { type ServiceProcessState } from "../lib/service-instances.js"; export interface BareDownService { definition: string; instanceId: string; host: string; process: ServiceProcessState | "not-observed"; recordedState: string; /** `stop` hands the instance to the controller; `already-stopped` is skipped; `blocked` refuses. */ action: "stop" | "already-stopped" | "blocked"; reason: string | null; remedy: string | null; } /** What bare down would do with each saved instance in `space`. Reads local records and observes * this host's processes; nothing is reserved, signalled or written. */ export declare function planBareDownServices(space: string): BareDownService[]; /** Refuse before any effect when one instance cannot be verified. The remedy names the first. */ export declare function assertBareDownServicesVerified(space: string, rows: readonly BareDownService[]): void; export declare function bareDownServicesView(space: string, rows: readonly BareDownService[]): Report; /** Stop every `stop` row through `service stop --yes`, in order. A failure stops the sequence with * the stack still running; completed stops are not rolled back. */ export declare function stopBareDownServices(space: string, rows: readonly BareDownService[], options: { style: Style; withAgents: boolean; }): Promise; //# sourceMappingURL=down-services.d.ts.map