| type AnyObject = Record<string | number | symbol, any>  | 
| type HttpPromise<T> = Promise<HttpResponse<T>>;  | 
| type Tasks = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask  | 
| export interface RequestTask {  | 
|   abort: () => void;  | 
|   offHeadersReceived: () => void;  | 
|   onHeadersReceived: () => void;  | 
| }  | 
| export interface HttpRequestConfig<T = Tasks> {  | 
|   /** 请求基地址 */  | 
|   baseURL?: string;  | 
|   /** 请求服务器接口地址 */  | 
|   url?: string;  | 
|   | 
|   /** 请求查询参数,自动拼接为查询字符串 */  | 
|   params?: AnyObject;  | 
|   /** 请求体参数 */  | 
|   data?: AnyObject;  | 
|   | 
|   /** 文件对应的 key */  | 
|   name?: string;  | 
|   /** HTTP 请求中其他额外的 form data */  | 
|   formData?: AnyObject;  | 
|   /** 要上传文件资源的路径。 */  | 
|   filePath?: string;  | 
|   /** 需要上传的文件列表。使用 files 时,filePath 和 name 不生效,App、H5( 2.6.15+) */  | 
|   files?: Array<{  | 
|     name?: string;  | 
|     file?: File;  | 
|     uri: string;  | 
|   }>;  | 
|   /** 要上传的文件对象,仅H5(2.6.15+)支持 */  | 
|   file?: File;  | 
|   | 
|   /** 请求头信息 */  | 
|   header?: AnyObject;  | 
|   /** 请求方式 */  | 
|   method?: "GET" | "POST" | "PUT" | "DELETE" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE" | "UPLOAD" | "DOWNLOAD";  | 
|   /** 如果设为 json,会尝试对返回的数据做一次 JSON.parse */  | 
|   dataType?: string;  | 
|   /** 设置响应的数据类型,支付宝小程序不支持 */  | 
|   responseType?: "text" | "arraybuffer";  | 
|   /** 自定义参数 */  | 
|   custom?: AnyObject;  | 
|   /** 超时时间,仅微信小程序(2.10.0)、支付宝小程序支持 */  | 
|   timeout?: number;  | 
|   /** DNS解析时优先使用ipv4,仅 App-Android 支持 (HBuilderX 2.8.0+) */  | 
|   firstIpv4?: boolean;  | 
|   /** 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) */  | 
|   sslVerify?: boolean;  | 
|   /** 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) */  | 
|   withCredentials?: boolean;  | 
|   | 
|   /** 返回当前请求的task, options。请勿在此处修改options。 */  | 
|   getTask?: (task: T, options: HttpRequestConfig<T>) => void;  | 
|   /**  全局自定义验证器 */  | 
|   validateStatus?: (statusCode: number) => boolean | void;  | 
| }  | 
| export interface HttpResponse<T = any> {  | 
|   config: HttpRequestConfig;  | 
|   statusCode: number;  | 
|   cookies: Array<string>;  | 
|   data: T;  | 
|   errMsg: string;  | 
|   header: AnyObject;  | 
| }  | 
| export interface HttpUploadResponse<T = any> {  | 
|   config: HttpRequestConfig;  | 
|   statusCode: number;  | 
|   data: T;  | 
|   errMsg: string;  | 
| }  | 
| export interface HttpDownloadResponse extends HttpResponse {  | 
|   tempFilePath: string;  | 
| }  | 
| export interface HttpError {  | 
|   config: HttpRequestConfig;  | 
|   statusCode?: number;  | 
|   cookies?: Array<string>;  | 
|   data?: any;  | 
|   errMsg: string;  | 
|   header?: AnyObject;  | 
| }  | 
| export interface HttpInterceptorManager<V, E = V> {  | 
|   use(  | 
|     onFulfilled?: (config: V) => Promise<V> | V,  | 
|     onRejected?: (config: E) => Promise<E> | E  | 
|   ): void;  | 
|   eject(id: number): void;  | 
| }  | 
| export abstract class HttpRequestAbstract {  | 
|   constructor(config?: HttpRequestConfig);  | 
|   config: HttpRequestConfig;  | 
|   interceptors: {  | 
|     request: HttpInterceptorManager<HttpRequestConfig, HttpRequestConfig>;  | 
|     response: HttpInterceptorManager<HttpResponse, HttpError>;  | 
|   }  | 
|   middleware<T = any>(config: HttpRequestConfig): HttpPromise<T>;  | 
|   request<T = any>(config: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   get<T = any>(url: string, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   upload<T = any>(url: string, config?: HttpRequestConfig<UniApp.UploadTask>): HttpPromise<T>;  | 
|   delete<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   head<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   post<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   put<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   connect<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   options<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   trace<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;  | 
|   | 
|   download(url: string, config?: HttpRequestConfig<UniApp.DownloadTask>): Promise<HttpDownloadResponse>;  | 
|   | 
|   setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void;  | 
| }  | 
|   | 
| declare class HttpRequest extends HttpRequestAbstract { }  | 
| export default HttpRequest;  |