import http from 'node:http'; import net from 'node:net'; export interface ProxyUpstream { host: string; username?: string; password?: string; useHttps?: boolean; } export interface ProxyStats { bytesRead: number; bytesWritten: number; } /** * Describes an outbound connection established by a proxy instance. * This can be either a direct connection to the target host, * or a connection to an upstream proxy. */ export interface Connection { connectionId: string; partitionId?: string; upstream: ProxyUpstream | null; socket: net.Socket; host: string; } /** * Standard logging interface, compatible with `console` and `@flexent/logger`. */ export interface Logger { info(message: string, object?: unknown): void; warn(message: string, object?: unknown): void; error(message: string, object?: unknown): void; debug(message: string, object?: unknown): void; } export declare function makeBasicAuthHeader(config: ProxyUpstream): string; export declare function makeProxyUrl(config: ProxyUpstream): string; export declare function makeRequestHead(req: http.IncomingMessage): string; export declare function makeResponseHead(res: http.IncomingMessage): string; export declare function createUpstreamUrl(upstream: ProxyUpstream | null): string; export declare function createConnectionId(): string;