import type { Logger } from '@ariestools/sdk'; import type { SystemStatusPublisher, SystemStatusRunner, SystemStatusViewerMethods } from '@xyo-network/xl1-protocol/protocol-lib'; /** Options for the HTTP system-status publisher. */ export interface HttpSystemStatusPublisherOptions { /** Optional host or interface on which the probe server listens. */ host?: string; /** Logger used by this instance and the providers it creates. */ logger?: Logger; /** TCP port on which the probe server listens. */ port: number; } /** A resolved probe response (HTTP status code + JSON body). */ export interface StatusProbeResponse { /** JSON-serializable probe response body. */ body: unknown; /** HTTP status code returned for the probe route. */ statusCode: number; } /** * Pure routing for the status probe endpoints. Extracted from the HTTP server * so the routing logic is testable without binding a socket. */ export declare function resolveStatusProbe(status: SystemStatusViewerMethods, url: string): StatusProbeResponse; /** * Publishes system status over HTTP with Kubernetes-style probes plus a richer * `/status` snapshot: * - `/healthz` — 200 once the global status is `started`, otherwise 500. * - `/livez` — 200 unconditionally while the process is running. * - `/readyz` — 503 while shutting down, 200 once `isReady()`, else 503. * - `/status` — 200 with the full status snapshot as JSON. * * It publishes to two sinks: the HTTP endpoints above, and the logger (it logs * each global status transition via the Runner's subscription). * * It is a plain start/stop observer (not a CreatableProvider) so it does not * report its own lifecycle into the Runner — keeping the global status (and * thus `/healthz`) reflecting only the actual services. */ export declare class HttpSystemStatusPublisher implements SystemStatusPublisher { /** Moniker implemented by this provider instance. */ readonly moniker: "SystemStatusPublisher"; private _server; private _started; private readonly options; private readonly status; /** Creates an HTTP probe publisher for the supplied status runner. */ constructor(status: SystemStatusRunner, options: HttpSystemStatusPublisherOptions); /** Starts the probe HTTP server and enables transition logging. */ start(): Promise; /** Disables transition logging and closes the probe HTTP server. */ stop(): Promise; private handleRequest; } //# sourceMappingURL=HttpSystemStatusPublisher.d.ts.map