export interface IRequestParams { [key: string]: any; } export declare type ErrorHandler = (options: IRequestOptions, response: any, error?: any) => boolean; export declare type SuccessHandler = (ret: any) => Promise; export declare type requestCb = (options: IRequestOptions) => void; export declare type CredentialType = 'same-origin' | 'include'; export declare type MethodType = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; export declare type requestSuccessCheckFn = (statusCode: number) => boolean; export interface IRequestOptions { path: string; method?: MethodType; url?: string; credentials?: CredentialType; query?: IRequestParams; data?: IRequestParams; headers?: any; onError?: ErrorHandler; timeout?: number; loading?: boolean; } declare type APIGetter = () => string; declare type CredentialGetter = () => CredentialType; declare type HeaderGetter = () => any; declare type TimeoutGetter = () => number; export default class Request { static genQuery(params?: IRequestParams): string; static setDefaultCheckRequestSuccessFn(cb: requestSuccessCheckFn): void; static setDefaultStartRequestCb(cb: requestCb): void; static setDefaultEndRequestCb(cb: requestCb): void; static setDefaultSuccessHandler(onSuccess: SuccessHandler): void; static setDefaultErrorHandler(onError: ErrorHandler): void; static setDefaultHeader(name: string, value: any | HeaderGetter): void; static setDefaultCredential(credentials: CredentialType | CredentialGetter): void; static setDefaultAPIHost(apiHost: string | APIGetter): void; static setDefaultTimeout(timeout: number | TimeoutGetter): void; static request(opts: IRequestOptions, isDownload?: boolean): Promise<[Error | null, any]>; static get(opts: IRequestOptions): Promise<[Error | null, any]>; static post(opts: IRequestOptions): Promise<[Error | null, any]>; static postForm(opts: IRequestOptions): Promise<[Error | null, any]>; static delete(opts: IRequestOptions): Promise<[Error | null, any]>; static put(opts: IRequestOptions): Promise<[Error | null, any]>; static patch(opts: IRequestOptions): Promise<[Error | null, any]>; static upload(opts: IRequestOptions): Promise<[Error | null, any]>; static download(opts: IRequestOptions, filename?: string): Promise<[Error | null, unknown]>; } export {};