/// /// import * as HTTP from 'http'; import * as x from 'x-value'; import type { ListeningHost } from '../x.js'; import { Port } from '../x.js'; import type { NetProxyBridge, TLSProxyBridge } from './proxy-bridges/index.js'; import type { Router } from './router/index.js'; import { type Web } from './web.js'; export declare const HTTP_PROXY_REFERER_SNIFFING_OPTIONS_DEFAULT = false; export declare const HTTPProxyRefererSniffingOptions: x.ObjectType<{ include: x.OptionalType>>; hosts: x.OptionalType>>; }>>; exclude: x.OptionalType>>; hosts: x.OptionalType>>; }>>; }>; export type HTTPProxyRefererSniffingOptions = x.TypeOf; export type HTTPProxyOptions = { host?: ListeningHost; port?: Port; refererSniffing?: HTTPProxyRefererSniffingOptions | boolean; }; export declare class HTTPProxy { readonly netProxyBridge: NetProxyBridge; readonly tlsProxyBridge: TLSProxyBridge | undefined; readonly router: Router; readonly web: Web; readonly server: HTTP.Server; private lastContextIdNumber; /** * Sockets kept alive. */ private handledRequestSocketSet; private refererSniffingOptions; constructor(index: number, netProxyBridge: NetProxyBridge, tlsProxyBridge: TLSProxyBridge | undefined, router: Router, web: Web, { host, port, refererSniffing: refererSniffingOptions, }: HTTPProxyOptions); private connect; private request; private preRoute; private getNextConnectionId; }