import { Transport } from "../proxy.js"; import { Registry as Registry$1 } from "../registry.js"; import { createPinboard } from "../server.js"; import { IncomingMessage, Server, ServerResponse } from "node:http"; import { Duplex } from "node:stream"; import { Registry } from "prom-client"; import { Redis } from "ioredis"; //#region src/node/serve.d.ts declare const toRequest: (req: IncomingMessage, signal?: AbortSignal) => Request; declare const writeResponse: (res: ServerResponse, response: Response) => Promise; type UpgradeContext = { socket: Duplex; head: Buffer; }; declare namespace createNodeTransport { type Options = { /** Time allowed for a backend to produce response headers (or the WS 101), default 30s. */ responseHeaderTimeoutMs?: number | undefined; }; } type NodeTransport = Transport.Options & { bindUpgrade(request: Request, ctx: UpgradeContext): void; completed(response: Response): boolean; close(): Promise; }; declare const createNodeTransport: (options?: createNodeTransport.Options) => NodeTransport; declare namespace servePinboard { type Options = Omit & createNodeTransport.Options & { /** An ioredis instance (owned and quit by `close()`), or any RedisKV. */ redis: Redis | createPinboard.RedisKV; /** prom-client Registry backing GET /metrics, served to pinboard:operator credentials. Absent = metrics off. */ metricsRegistry?: Registry | undefined; }; type Instance = { server: Server; registry: Registry$1; fetch: createPinboard.Instance["fetch"]; sweep(): Promise; handleRequest(req: IncomingMessage, res: ServerResponse): void; handleUpgrade(req: IncomingMessage, socket: Duplex, head: Buffer): void; close(): Promise; }; } declare const servePinboard: (options: servePinboard.Options) => servePinboard.Instance; //#endregion export { NodeTransport, createNodeTransport, servePinboard, toRequest, writeResponse }; //# sourceMappingURL=serve.d.ts.map