| /// <reference types="node" /> |
| import net from 'net'; |
| import http from 'http'; |
| import https from 'https'; |
| import { Duplex } from 'stream'; |
| import { EventEmitter } from 'events'; |
| declare function createAgent(opts?: createAgent.AgentOptions): createAgent.Agent; |
| declare function createAgent(callback: createAgent.AgentCallback, opts?: createAgent.AgentOptions): createAgent.Agent; |
| declare namespace createAgent { |
| interface ClientRequest extends http.ClientRequest { |
| _last?: boolean; |
| _hadError?: boolean; |
| method: string; |
| } |
| interface AgentRequestOptions { |
| host?: string; |
| path?: string; |
| port: number; |
| } |
| interface HttpRequestOptions extends AgentRequestOptions, Omit<http.RequestOptions, keyof AgentRequestOptions> { |
| secureEndpoint: false; |
| } |
| interface HttpsRequestOptions extends AgentRequestOptions, Omit<https.RequestOptions, keyof AgentRequestOptions> { |
| secureEndpoint: true; |
| } |
| type RequestOptions = HttpRequestOptions | HttpsRequestOptions; |
| type AgentLike = Pick<createAgent.Agent, 'addRequest'> | http.Agent; |
| type AgentCallbackReturn = Duplex | AgentLike; |
| type AgentCallbackCallback = (err?: Error | null, socket?: createAgent.AgentCallbackReturn) => void; |
| type AgentCallbackPromise = (req: createAgent.ClientRequest, opts: createAgent.RequestOptions) => createAgent.AgentCallbackReturn | Promise<createAgent.AgentCallbackReturn>; |
| type AgentCallback = typeof Agent.prototype.callback; |
| type AgentOptions = { |
| timeout?: number; |
| }; |
| /** |
| * Base `http.Agent` implementation. |
| * No pooling/keep-alive is implemented by default. |
| * |
| * @param {Function} callback |
| * @api public |
| */ |
| class Agent extends EventEmitter { |
| timeout: number | null; |
| maxFreeSockets: number; |
| maxTotalSockets: number; |
| maxSockets: number; |
| sockets: { |
| [key: string]: net.Socket[]; |
| }; |
| freeSockets: { |
| [key: string]: net.Socket[]; |
| }; |
| requests: { |
| [key: string]: http.IncomingMessage[]; |
| }; |
| options: https.AgentOptions; |
| 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<createAgent.AgentCallbackReturn>; |
| /** |
| * 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; |