export interface HttpErrorInput { message: string; statusCode: number; response?: Response; body?: any; } export declare class HttpError extends Error { statusCode: number; response?: Response; body?: any; constructor(input: HttpErrorInput); } export type AbortFunction = () => void; type Token = string | undefined; type RequestFn = (url: string, data: I, config?: RequestConfig) => Promise; type RequestGetFn = (url: string, data?: I, config?: RequestConfig) => Promise; type BeforeHook = (client: HttpClient) => Promise | void; type ErrorHook = (err: HttpError, request: () => Promise) => any; type HttpClientInit = RequestInit & { baseUrl?: string; returnType?: 'json' | 'text' | 'blob'; beforeHook?: BeforeHook; onError?: ErrorHook; }; export type RequestConfig = HttpClientInit & { createAbort?: (abortFunction: AbortFunction) => void; }; export declare class HttpClient { private defaultConfig; private config; private token; constructor(config?: HttpClientInit); private createRequest; get: RequestGetFn; post: RequestFn; put: RequestFn; patch: RequestFn; delete: RequestFn; setToken: (token: Token) => Token; setBaseUrl: (baseUrl: string) => string; setSecurityHeaders: (name: string, value: string) => void; private setAuthenticationHeaders; private setAbortController; request(url: string | URL, requestConfig?: RequestConfig): Promise; private handleSuccess; private onError; private createBody; private handleError; } export {};