/// import http = require('http'); import ifm = require('./interfaces'); export declare enum HttpCodes { OK = 200, MultipleChoices = 300, MovedPermanently = 301, ResourceMoved = 302, SeeOther = 303, NotModified = 304, UseProxy = 305, SwitchProxy = 306, TemporaryRedirect = 307, PermanentRedirect = 308, BadRequest = 400, Unauthorized = 401, PaymentRequired = 402, Forbidden = 403, NotFound = 404, MethodNotAllowed = 405, NotAcceptable = 406, ProxyAuthenticationRequired = 407, RequestTimeout = 408, Conflict = 409, Gone = 410, TooManyRequests = 429, InternalServerError = 500, NotImplemented = 501, BadGateway = 502, ServiceUnavailable = 503, GatewayTimeout = 504 } export declare enum Headers { Accept = "accept", ContentType = "content-type" } export declare enum MediaTypes { ApplicationJson = "application/json" } /** * Returns the proxy URL, depending upon the supplied url and proxy environment variables. * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com */ export declare function getProxyUrl(serverUrl: string): string; export declare class HttpClientResponse implements ifm.IHttpClientResponse { constructor(message: http.IncomingMessage); message: http.IncomingMessage; readBody(): Promise; } export declare function isHttps(requestUrl: string): boolean; export declare class HttpClient { userAgent: string | undefined; handlers: ifm.IRequestHandler[]; requestOptions: ifm.IRequestOptions; private _ignoreSslError; private _socketTimeout; private _allowRedirects; private _allowRedirectDowngrade; private _maxRedirects; private _allowRetries; private _maxRetries; private _agent; private _proxyAgent; private _keepAlive; private _disposed; constructor(userAgent?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions); options(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; get(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; del(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; post(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; patch(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; put(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; head(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: ifm.IHeaders): Promise; /** * Gets a typed object from an endpoint * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise */ getJson(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise>; postJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise>; putJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise>; patchJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise>; /** * Makes a raw http request. * All other methods such as get, post, patch, and request ultimately call this. * Prefer get, del, post and patch */ request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: ifm.IHeaders): Promise; /** * Needs to be called if keepAlive is set to true in request options. */ dispose(): void; /** * Raw request. * @param info * @param data */ requestRaw(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream): Promise; /** * Raw request with callback. * @param info * @param data * @param onResult */ requestRawWithCallback(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: ifm.IHttpClientResponse) => void): void; /** * Gets an http agent. This function is useful when you need an http agent that handles * routing through a proxy server - depending upon the url and proxy environment variables. * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com */ getAgent(serverUrl: string): http.Agent; private _prepareRequest; private _mergeHeaders; private _getExistingOrDefaultHeader; private _getAgent; private _performExponentialBackoff; private static dateTimeDeserializer; private _processResponse; }