/** What crtrd exposes to handlers that act on the daemon process itself. */ export interface DaemonControl { /** This daemon's epoch id. */ epoch: string; /** Schedule the handover: this daemon answers now, then after a bounded * grace tears its fleet down, releases its claim, spawns a successor on the * currently selected runtime generation, and exits. * * Returns the grace it will wait. Idempotent — a second request while one is * already scheduled returns the same grace and schedules nothing new, so an * agent that retries cannot stack handovers. */ requestHandover(): { graceMs: number; }; } /** Bind this process's control surface. Called once, by `runDaemon`. */ export declare function bindDaemonControl(control: DaemonControl): void; /** Release the binding (cleanup, and test isolation). */ export declare function clearDaemonControl(): void; /** The bound control surface, or null when this process is not a live daemon. */ export declare function boundDaemonControl(): DaemonControl | null;