/**
 * BootHealthBeacon — a minimal HTTP listener that answers `/health` with 200
 * *during* the server's heavy boot, before the real AgentServer binds its port.
 *
 * Earned 2026-06-07 (topic 21816 post-mortem, root cause #1 — "Liveness Before
 * Load"). The server's boot loads large TopicMemory/SemanticMemory and reconciles
 * dozens of sessions BEFORE AgentServer calls `app.listen`, so for ~5-6 min under
 * load nothing answers `/health`. The supervisor then judged the (alive, still-
 * booting) server unresponsive and restarted it → the restart-before-boot loop.
 * The grace bump (#979) widened the supervisor's patience; this is the durable
 * cure: a tiny beacon answers liveness from the very start of boot, so a restart
 * can never loop regardless of grace.
 *
 * Lifecycle: `start()` at the very top of the server boot; `stop()` immediately
 * before AgentServer's `listen` (the handoff). `stop()` fully releases the port —
 * it force-closes lingering connections so the real `listen` cannot hit
 * EADDRINUSE. The handoff gap has no heavy work between, so it is sub-second and
 * the supervisor never observes a hole.
 *
 * Deliberately minimal and dependency-free: it must come up instantly and never
 * itself become a source of boot latency or failure. Any error binding the
 * beacon is non-fatal to boot (the caller logs + proceeds without it).
 */
export declare class BootHealthBeacon {
    private readonly port;
    private readonly host;
    private server?;
    constructor(port: number, host?: string);
    /** Bind the beacon. Resolves once it is listening. Idempotent. */
    start(): Promise<void>;
    /**
     * Close the beacon and fully release the port. Resolves only after the OS has
     * released the listening socket, so the caller can safely `listen` on the same
     * port immediately afterward. Idempotent.
     */
    stop(): Promise<void>;
    /** True while the beacon is bound. */
    get active(): boolean;
}
//# sourceMappingURL=BootHealthBeacon.d.ts.map