// Type definitions for request-debug 0.2 // Project: https://github.com/request/request-debug // Definitions by: Marcello Urbani // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 export = request_debug; import { CoreOptions, Headers, Request, RequestAPI, RequiredUriUrl, UriOptions, UrlOptions } from "request"; declare namespace request_debug { type LogPhase = "request" | "response" | "redirect" | "auth"; interface RequestData { debugId: number; method: string; uri: string; headers: Headers; body?: any; } interface ResponseData { debugId: number; headers: Headers; statusCode: number; body?: any; } interface RedirectData { debugId: number; headers: Headers; statusCode: number; uri: string; } type LogData = RequestData | ResponseData | RedirectData; interface LogCallback { (type: "request", data: RequestData, r: RequestAPI): void; } interface LogCallback { (type: "response", data: ResponseData, r: RequestAPI): void; } interface LogCallback { (type: "redirect" | "auth", data: RedirectData, r: RequestAPI): void; } interface LogCallback { (type: LogPhase, data: LogData, r: RequestAPI): void; } const log: LogCallback; } declare function request_debug( request: RequestAPI, cb?: request_debug.LogCallback ): void;