import EventEmitter from './utils/EventEmitter'; export declare class ErrorResponse { code: string | number; message: string; constructor(code: string | number, message: string); } declare type onRequestHandler = (request: Request) => void; declare type onResponseHandler = (response: Promise, request: Request) => Promise; declare type ResponseType = '' | 'text' | 'json' | 'arraybuffer' | 'blob' | 'document'; export interface HttpRequestOptions { url: string; method?: string; query?: string | {}; headers?: { [name: string]: string; }; body?: any; timeout?: number; } export default class Request extends EventEmitter { private readonly _headers; private _url; private _method; private _query; private _body; private _timeout; private _responseType; private _onBeforeHandlers; private _onAfterHandlers; private _xhr?; constructor(config: HttpRequestOptions); readonly xhr: XMLHttpRequest; setMethod(method: string): this; setUrl(url: string): this; setQueryParams(params: string | {}): this; setRequestHeader(field: string, value: string): this; setJsonBody(body: any): this; setBody(body: any): this; setTimeout(timeout: number): this; setResponseType(type: ResponseType): this; get(): this; post(body: any): this; postJson(body: {}): this; put(body: any): this; putJson(body: {}): this; patch(body: any): this; patchJson(body: {}): this; delete(): this; upload(body: FormData): this; use(onRequest?: onRequestHandler, onResponse?: onResponseHandler): this; useBefore(onRequest: onRequestHandler): this; useAfter(onResponse: onResponseHandler): this; execute(): Promise; private _processResponse; } export {}; //# sourceMappingURL=Request.d.ts.map