import type { LiveHost, LiveHostApplication } from "../../../types/livehost.types.js"; import { type NodeApplicationSecurity, type NodeTrustedProxyPolicy } from "./livehost.node-policy.js"; export type NodeHostOperationalEvent = Readonly<{ type: "application-registration" | "registration-conflict" | "host-startup" | "host-listening" | "http-dispatch" | "websocket-dispatch" | "policy-rejection" | "resource-rejection" | "heartbeat-timeout" | "backpressure" | "startup-failure" | "shutdown-start" | "shutdown-completion" | "shutdown-failure"; application?: string; route?: string; host?: string; port?: number; correlationId?: string; transport?: "http" | "websocket"; proxyInterpretation?: "direct" | "trusted-proxy"; outcome?: "accepted" | "rejected"; code?: string; error?: string; }>; export type NodeHostTransportLimits = Readonly<{ maxHeaderBytes: number; maxHeaderValueBytes: number; maxUrlBytes: number; headersTimeoutMs: number; requestTimeoutMs: number; handshakeTimeoutMs: number; maxPendingHandshakes: number; maxPayloadBytes: number; messageWindowMs: number; maxMessagesPerWindow: number; maxMessageBytesPerWindow: number; maxConnections: number; maxConnectionsPerApplication: number; maxConnectionsPerClient: number; heartbeatIntervalMs: number; heartbeatDeadlineMs: number; maxBufferedAmount: number; }>; export type NodeHostDeployment = Readonly<{ mode: "development"; }> | Readonly<{ mode: "production"; proxy?: NodeTrustedProxyPolicy; limits?: Partial; }>; export type NodeApplicationHostOptions = Readonly<{ host?: string; port?: number; shutdownTimeoutMs?: number; /** Serve HTTPS with HTTP/2 and HTTP/1 compatibility using PEM TLS material. */ http2?: Readonly<{ key: string | Buffer; cert: string | Buffer; }>; deployment?: NodeHostDeployment; applications: readonly LiveHostApplication[]; security?: ReadonlyMap; log?: (event: NodeHostOperationalEvent) => void; }>; export type NodeApplicationHost = LiveHost & Readonly<{ host: string; port: number; url: string; httpUrl: string; connectionCount(applicationName?: string): number; disconnectConnections(applicationName?: string): void; }>; /** @experimental Node implementation of the platform-neutral LiveHost contract. */ export declare function start_node_application_host(options: NodeApplicationHostOptions): Promise; //# sourceMappingURL=livehost.node-application-host.d.ts.map