import { IncomingMessage, ServerResponse } from "http"; import type { Fetch, Platform } from "../runtime"; export interface NodePlatformInfo { request: IncomingMessage; response: ServerResponse; } /** Connect/Express style request listener/middleware */ export type NodeMiddleware = (req: IncomingMessage, res: ServerResponse, next?: (error?: Error) => void) => void; /** Adapter options */ export interface NodeMiddlewareOptions { /** * Set the origin part of the URL to a constant value. * It defaults to `process.env.ORIGIN`. If neither is set, * the origin is computed from the protocol and hostname. * To determine the protocol, `req.protocol` is tried first. * If `trustProxy` is set, `X-Forwarded-Proto` header is used. * Otherwise, `req.socket.encrypted` is used. * To determine the hostname, `X-Forwarded-Host` * (if `trustProxy` is set) or `Host` header is used. */ origin?: string; /** * Whether to trust `X-Forwarded-*` headers. `X-Forwarded-Proto` * and `X-Forwarded-Host` are used to determine the origin when * `origin` and `process.env.ORIGIN` are not set. `X-Forwarded-For` * is used to determine the IP address. The leftmost values are used * if multiple values are set. Defaults to true if `process.env.TRUST_PROXY` * is set to `1`, otherwise false. */ trustProxy?: boolean; createPlatform?(platform: NodePlatformInfo): Platform & NodePlatformInfo; } export declare function getOrigin(req: IncomingMessage, trustProxy?: boolean): string; export declare function copyResponseHeaders(response: ServerResponse, headers: Headers): void; /** * Creates a request handler to be passed to http.createServer() or used as a * middleware in Connect-style frameworks like Express. */ export declare function createMiddleware(fetch: Fetch, options?: NodeMiddlewareOptions): NodeMiddleware;