import type { Collection, ReadonlyRecord } from "./types"; export type Headers = ReadonlyRecord; export interface HttpClientOptions { headers?: Headers; agent?: any; okStatusCodes?: Collection; baseURL?: string; timeout?: number; stringifyBody?: (body: Request) => string | Uint8Array; parseResponse?: (body: Uint8Array) => Response; mapHttpErrors?: (error: HttpError) => Error; } export interface HttpRequestOptions extends Partial> { url: string; method: string; body?: Request; } export interface HttpResponse { request: HttpRequestOptions; statusCode: number; headers: Headers; body?: Response; } /** * * * @export * @class HttpError * @extends {Error} */ export declare class HttpError extends Error { response: HttpResponse; /** * Creates an instance of HttpError. * @param {string} message * @param {HttpResponse} response * @memberof HttpError */ constructor(message: string, response: HttpResponse); } export interface HttpClient { options: HttpClientOptions; request(options: HttpRequestOptions): Promise>; }