export interface FlyRequestConfig extends Object { url?: string; method?: string; baseURL?: string; headers?: any; body?: any; timeout?: number; withCredentials?: boolean; parseJson?: boolean; responseType?: string; } export interface FlyError { status: number; message: string; engine: XMLHttpRequest; request?: FlyRequestConfig; response?: FlyErrResponse; } export interface FlyResponse { data: T; request: FlyRequestConfig; engine: XMLHttpRequest; headers: Object; } export interface FlyErrResponse { data: any; headers: Object; status: number; statusText: string; } export interface FlyPromise extends Promise> { } export interface FlyRequestInterceptor { use(onSend?: (request: V) => any): void; lock(): void; unlock(): void; clear(): void; } export interface FlyResponseInterceptor { use(onSucceed?: (response: V) => any, onError?: (err: Error) => any): void; lock(): void; unlock(): void; clear(): void; } export interface Fly { config: FlyRequestConfig; interceptors: { request: FlyRequestInterceptor; response:FlyResponseInterceptor; }; engine:any; request(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; get(url: string, data?:any, config?: FlyRequestConfig): FlyPromise; delete(url: string, data?:any, config?: FlyRequestConfig): FlyPromise; head(url: string,data?:any, config?: FlyRequestConfig): FlyPromise; post(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; put(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; patch(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; all(values: (T | Promise)[]): Promise; spread(callback: (...args: T[]) => R): (array: T[]) => R; lock(): void; unlock(): void; clear(): void; } declare const fly:Fly; export default fly;