///
import type { AxiosResponse, AxiosRequestConfig, AxiosInstance } from "axios";
import AsyncRetry from "async-retry";
export interface ApiConfig {
url: URL | string;
timeout?: number;
logging?: boolean;
logger?: (msg: string) => void;
network?: string;
headers?: Record;
withCredentials?: boolean;
retry?: AsyncRetry.Options;
}
export type ApiRequestConfig = {
retry?: AsyncRetry.Options;
} & AxiosRequestConfig;
export default class Api {
protected _instance?: AxiosInstance;
cookieMap: Map;
config: ApiConfig;
constructor(config?: ApiConfig);
applyConfig(config: ApiConfig): void;
getConfig(): ApiConfig;
private requestInterceptor;
private responseInterceptor;
private mergeDefaults;
get(path: string, config?: ApiRequestConfig): Promise>;
post(path: string, body: Buffer | string | object | null, config?: ApiRequestConfig): Promise>;
get instance(): AxiosInstance;
request(path: string, config?: ApiRequestConfig): Promise>;
}