import { AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios'; import EventEmitter from 'eventemitter3'; export interface ApiResult { msg: string; code: number; data: T; } export interface Listify { list: T[]; page: number; pageSize: number; totalCount: number; } interface HTTPEventTypes { error: (err: HTTPError) => void; unauthorize: (err: HTTPError) => void; unjurisdiction: (err: HTTPError) => void; } export interface IHTTPClient extends EventEmitter { request(config: AxiosRequestConfig): Promise; get(url: string): Promise>; get(url: string, params?: { [key: string]: unknown; }): Promise>; get(url: string, params?: { [key: string]: unknown; }, config?: AxiosRequestConfig): Promise>; post(url: string): Promise>; post(url: string, body?: unknown): Promise>; post(url: string, body?: unknown, config?: AxiosRequestConfig): Promise>; put(url: string): Promise>; put(url: string, body?: unknown): Promise>; put(url: string, body?: unknown, config?: AxiosRequestConfig): Promise>; delete(url: string): Promise>; delete(url: string, params?: { [key: string]: unknown; }): Promise>; delete(url: string, params?: { [key: string]: unknown; }, config?: AxiosRequestConfig): Promise>; } export declare class HTTPError extends Error { private _code; private _response; constructor(message: string, _code: number, _response: AxiosResponse); get code(): number; get response(): AxiosResponse; } export declare class HTTPClient extends EventEmitter implements IHTTPClient { client: AxiosInstance; private static instances; /** * 设置请求token * @param {string} token token值 * @param {string} prefix token前缀 */ static setToken(token: string, prefix?: string): void; constructor(baseURL: string); get defaults(): { url?: string | undefined; method?: import("axios").Method | undefined; baseURL?: string | undefined; transformRequest?: import("axios").AxiosTransformer | import("axios").AxiosTransformer[] | undefined; transformResponse?: import("axios").AxiosTransformer | import("axios").AxiosTransformer[] | undefined; headers?: any; params?: any; paramsSerializer?: ((params: any) => string) | undefined; data?: any; timeout?: number | undefined; timeoutErrorMessage?: string | undefined; withCredentials?: boolean | undefined; adapter?: import("axios").AxiosAdapter | undefined; auth?: import("axios").AxiosBasicCredentials | undefined; responseType?: import("axios").ResponseType | undefined; xsrfCookieName?: string | undefined; xsrfHeaderName?: string | undefined; onUploadProgress?: ((progressEvent: any) => void) | undefined; onDownloadProgress?: ((progressEvent: any) => void) | undefined; maxContentLength?: number | undefined; validateStatus?: ((status: number) => boolean) | null | undefined; maxBodyLength?: number | undefined; maxRedirects?: number | undefined; socketPath?: string | null | undefined; httpAgent?: any; httpsAgent?: any; proxy?: false | import("axios").AxiosProxyConfig | undefined; cancelToken?: import("axios").CancelToken | undefined; decompress?: boolean | undefined; transitional?: import("axios").TransitionalOptions | undefined; }; /** * post请求 * * @param {AxiosRequestConfig} conf 请求配置 * @returns {Promise} */ request(conf: AxiosRequestConfig): Promise>; get(url: string, params?: { [key: string]: unknown; }, config?: AxiosRequestConfig): Promise>; post(url: string, body?: unknown, config?: AxiosRequestConfig): Promise>; put(url: string, body?: unknown, config?: AxiosRequestConfig): Promise>; delete(url: string, params?: { [key: string]: unknown; }, config?: AxiosRequestConfig): Promise>; /** * 检查登录是否过期 * @param {AxiosResponse} response * @returns {boolean} */ private static isLoginFail; /** * 是否有权限(用来判断是否vip) * @param response */ private static isJurisdiction; } export {};