export declare type OzoneAPIRequestOption = { cache: boolean; }; /** * OzoneAPIRequest is a light wrapper over XMLHttpRequest to manager AJAX request to Ozone. * * ### Events * * * *ozone-api-request-success* Fired when connection to ozone succeeds. * Event detail contains the XMLHttpRequest. * * * *ozone-api-request-error* Fired when connection to ozone fails. * Event detail contains the XMLHttpRequest. * * * *ozone-api-request-timeout* Fired when connection timeout. * Event detail contains the XMLHttpRequest. * * * *ozone-api-request-unauthorized* Fired when server return 403 unauthorized. * Event detail contains the XMLHttpRequest. * deprecated * * ### Usage * * * Basic usage with promise * ```typeScript * const ozoneAPIRequest = new OzoneAPIRequest(); * ozoneAPIRequest.url = url; * ozoneAPIRequest.method = 'GET'; * ozoneAPIRequest.sendRequest() * .then((res:XMLHttpRequest) => { * // Do something with XMLHttpRequest * console.log(res.response) * }) * .catch((failRequest)=>{ * // Do something with XMLHttpRequest to handel the error. * console.error(failRequest.statusText) * }) * ``` * * * * Usage with Event handler * ```typeScript * this.addEventListener('ozone-api-request-success', (event: Event) => { * // Do something with XMLHttpRequest * console.log(event.detail.response) * }) * this.addEventListener('ozone-api-request-error', (event: Event) => { * // Do something with XMLHttpRequest to handel the error. * console.error(event.detail.statusText) * }) * const ozoneAPIRequest = new OzoneAPIRequest(); * ozoneAPIRequest.setEventTarget(this) * ozoneAPIRequest.url = url; * ozoneAPIRequest.method = 'GET'; * ozoneAPIRequest.sendRequest(); * ``` * * * Modify request before send * ```typeScript * const ozoneAPIRequest = new OzoneAPIRequest(); * ozoneAPIRequest.url = url; * ozoneAPIRequest.method = 'GET'; * const request = ozoneAPIRequest.createXMLHttpRequest(); * // Modify default request * request.setRequestHeader('Cache-Control', 'only-if-cached'); * * ozoneAPIRequest.sendRequest(request); * // Handel response * ``` * * Setup global options * * * ```typeScript * OzoneAPIRequest.setup({ cache: false }) * ``` */ export declare class OzoneAPIRequest { private static option; /** * eventTarget to dispatch *ozone-api-request-success* and *ozone-api-request-error* events * Default value is document. * @type {EventTarget} */ eventTarget: EventTarget | null; private _resultPromise?; private currentRequest; private resolveCurrentRequest?; constructor(); url: string; private _method; get method(): string; set method(method: string); private _body; get body(): string | FormData; set body(body: string | FormData); private _responseType; get responseType(): XMLHttpRequestResponseType; set responseType(responseType: XMLHttpRequestResponseType); /** * Resolve with current XMLHttpRequest on achieved */ get result(): Promise; private _onreadystatechange; set onreadystatechange(callback: ((this: XMLHttpRequest, ev: Event) => any)); get readyState(): number; /** * setup OzoneAPIRequest global option. * @param option: OzoneAPIRequestOption default value { cache: false } */ static setup(option: OzoneAPIRequestOption): void; abort(): void; /** * Create and open an XMLHttpRequest * @return {XMLHttpRequest} */ createXMLHttpRequest(withHeader?: boolean): XMLHttpRequest; setEventTarget(element: EventTarget): void; /** * * @param {XMLHttpRequest} request (optional) This parameters overwrite the default XmlHttpRequest. * @return {OzoneAPIRequest} */ send(request?: XMLHttpRequest): OzoneAPIRequest; /** * * @param {XMLHttpRequest} request (optional) This parameters overwrite the default XmlHttpRequest. * @return {Promise} */ sendRequest(request?: XMLHttpRequest): Promise; private dispatchEvent; }