import type { NodeWebSocketServerProvider } from "../extensions/websocket/index.js"; /** Public API contract for veryfront service server fetch. */ export type VeryfrontServiceServerFetch = (request: Request) => Response | Promise; /** Response payload for veryfront service server module. */ export type VeryfrontServiceServerModuleResponse = Response | null | undefined; /** Public API contract for veryfront service server module. */ export type VeryfrontServiceServerModule = { name: string; handle: (request: Request) => VeryfrontServiceServerModuleResponse | Promise; setShuttingDown?: () => void; stop?: () => void | Promise; }; /** Public API contract for veryfront service server logger. */ export type VeryfrontServiceServerLogger = { debug?: (message: string, metadata?: Record) => void; info?: (message: string, metadata?: Record) => void; warn?: (message: string, metadata?: Record) => void; error?: (message: string, metadata?: Record) => void; }; /** Options accepted by create veryfront server. */ export type CreateVeryfrontServerOptions = { modules: readonly VeryfrontServiceServerModule[]; notFound?: (request: Request) => Response | Promise; onError?: (error: unknown, request: Request) => Response | Promise; logger?: VeryfrontServiceServerLogger; }; /** Public API contract for veryfront service server runtime. */ export type VeryfrontServiceServerRuntime = { fetch: VeryfrontServiceServerFetch; setShuttingDown: () => void; stop: () => Promise; }; /** Options accepted by start node veryfront server. */ export type StartNodeVeryfrontServerOptions = { runtime: VeryfrontServiceServerRuntime; port: number; bindAddress?: string; logger?: VeryfrontServiceServerLogger; signals?: readonly NodeJS.Signals[]; hardShutdownTimeoutMs?: number; /** Extension-provided Node WebSocket implementation; upgrades fail closed when omitted. */ nodeWebSocketServerProvider?: Readonly; }; /** Options accepted by start veryfront server. */ export type StartVeryfrontServerOptions = { runtime: VeryfrontServiceServerRuntime; port: number; bindAddress?: string; logger?: VeryfrontServiceServerLogger; signals?: readonly NodeJS.Signals[]; hardShutdownTimeoutMs?: number; /** Used only when the selected runtime is Node.js. */ nodeWebSocketServerProvider?: Readonly; }; /** Public API contract for veryfront service server runtime kind. */ export type VeryfrontServiceServerRuntimeKind = "node" | "deno" | "bun"; /** Public API contract for veryfront service server. */ export type VeryfrontServiceServer = { ready: Promise; stop: () => Promise; port: number; url: string; runtime: VeryfrontServiceServerRuntimeKind; }; /** Public API contract for node veryfront service server. */ export type NodeVeryfrontServiceServer = { server: import("node:http").Server; ready: Promise; stop: () => Promise; port: number; url: string; runtime: "node"; }; /** Create veryfront server. */ export declare function createVeryfrontServer(options: CreateVeryfrontServerOptions): VeryfrontServiceServerRuntime; /** Starts veryfront server. */ export declare function startVeryfrontServer(options: StartVeryfrontServerOptions): Promise; /** Starts node veryfront server. */ export declare function startNodeVeryfrontServer(options: StartNodeVeryfrontServerOptions): Promise; //# sourceMappingURL=service-server.d.ts.map