import MockAdapter from "axios-mock-adapter"; import { Auth } from "../api/types"; import { CancelableResponse } from "./CancelableResponse"; export interface HttpClientRepository { request(options: HttpRequest): CancelableResponse; getMockAdapter(): MockAdapter; } export declare type Method = "get" | "post" | "put" | "delete" | "PATCH"; export declare type ParamValue = string | number | boolean | undefined; export interface HttpRequest { method: Method; url: string; params?: Record; data?: unknown; requestBodyType?: "json" | "raw"; responseDataType?: "json" | "raw"; validateStatus?(status: number): boolean; timeout?: number; headers?: Record; } export interface HttpClientResponse { status: number; data: Data; headers: Record; } export interface Credentials { username: string; password: string; } export interface ConstructorOptions { baseUrl?: string; auth?: Auth; timeout?: number; agent?: Agent; } export declare type Agent = unknown; interface HttpErrorOptions { request: HttpRequest; response?: HttpClientResponse; } export declare class HttpError extends Error implements HttpErrorOptions { request: HttpRequest; response?: HttpClientResponse; constructor(message: string, obj: HttpErrorOptions); } export declare function getBody(dataType: HttpRequest["responseDataType"], data: any): any; export {};