/// import net from 'net'; import http from 'http'; import { EventEmitter } from 'events'; declare function createAgent(opts?: createAgent.AgentOptions): createAgent.Agent; declare namespace createAgent { var prototype: Agent; } declare function createAgent(callback: createAgent.AgentCallback, opts?: createAgent.AgentOptions): createAgent.Agent; declare namespace createAgent { var prototype: Agent; } declare namespace createAgent { type ClientRequest = http.ClientRequest & { _last?: boolean; _hadError?: boolean; method: string; }; type AgentCallbackReturn = net.Socket | createAgent.Agent | http.Agent; type AgentCallbackCallback = (err: Error | null | undefined, socket: createAgent.AgentCallbackReturn) => void; type AgentCallbackPromise = (req: createAgent.ClientRequest, opts: createAgent.RequestOptions) => createAgent.AgentCallbackReturn | Promise; type AgentCallback = typeof Agent.prototype.callback; type AgentOptions = http.AgentOptions & {}; type RequestOptions = http.RequestOptions & { port: number; secureEndpoint: boolean; }; /** * Base `http.Agent` implementation. * No pooling/keep-alive is implemented by default. * * @param {Function} callback * @api public */ class Agent extends EventEmitter { timeout: number | null; options?: createAgent.AgentOptions; maxFreeSockets: number; maxSockets: number; sockets: net.Socket[]; requests: http.ClientRequest[]; private promisifiedCallback?; private explicitDefaultPort?; private explicitProtocol?; constructor(callback?: createAgent.AgentCallback | createAgent.AgentOptions, _opts?: createAgent.AgentOptions); get defaultPort(): number; set defaultPort(v: number); get protocol(): string; set protocol(v: string); callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions, fn: createAgent.AgentCallbackCallback): void; callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions): createAgent.AgentCallbackReturn | Promise; /** * Called by node-core's "_http_client.js" module when creating * a new HTTP request with this Agent instance. * * @api public */ addRequest(req: ClientRequest, _opts: RequestOptions): void; freeSocket(socket: net.Socket, opts: AgentOptions): void; destroy(): void; } } export = createAgent;