/** * A small wrapper around `fetch`. - Allows globally registering request and response interceptors - Throws on 4xx and 5xx status codes - Supports caching, so a request can be prevented from reaching to network, by returning the cached response. - Supports JSON with `ajax.fetchJson` by automatically serializing request body and deserializing response payload as JSON, and adding the correct Content-Type and Accept headers. - Adds accept-language header to requests based on application language - Adds XSRF header to request if the cookie is present */ export class Ajax { /** * @param {Partial} config */ constructor(config?: Partial); /** * @type {AjaxConfig} * @private */ private __config; /** @type {Array.} */ _requestInterceptors: Array; /** @type {Array.} */ _responseInterceptors: Array; /** @type {Array.} */ _responseJsonInterceptors: Array; /** * Configures the Ajax instance * @param {AjaxConfig} config configuration for the Ajax instance */ set options(arg: import("../types/types.js").AjaxConfig); get options(): import("../types/types.js").AjaxConfig; /** @param {RequestInterceptor} requestInterceptor */ addRequestInterceptor(requestInterceptor: RequestInterceptor): void; /** @param {RequestInterceptor} requestInterceptor */ removeRequestInterceptor(requestInterceptor: RequestInterceptor): void; /** @param {ResponseInterceptor} responseInterceptor */ addResponseInterceptor(responseInterceptor: ResponseInterceptor): void; /** @param {ResponseInterceptor} responseInterceptor */ removeResponseInterceptor(responseInterceptor: ResponseInterceptor): void; /** @param {ResponseJsonInterceptor} responseJsonInterceptor */ addResponseJsonInterceptor(responseJsonInterceptor: ResponseJsonInterceptor): void; /** * Fetch by calling the registered request and response interceptors. * * @param {RequestInfo} info * @param {RequestInit & Partial} [init] * @param {Boolean} [parseErrorResponse] * @returns {Promise} */ fetch(info: RequestInfo, init?: (RequestInit & Partial) | undefined, parseErrorResponse?: boolean | undefined): Promise; /** * Fetch by calling the registered request and response * interceptors. And supports JSON by: * - Serializing request body as JSON * - Deserializing response payload as JSON * - Adding the correct Content-Type and Accept headers * * @template T * @param {RequestInfo} info * @param {LionRequestInit} [init] * @returns {Promise<{ response: Response, body: string | T }>} */ fetchJson(info: RequestInfo, init?: import("../types/types.js").LionRequestInit | undefined): Promise<{ response: Response; body: string | T; }>; /** * @template T * @param {Response} response * @returns {Promise} */ __parseBody(response: Response): Promise; /** * @param {Response} response * @returns {Promise} */ __attemptParseFailedResponseBody(response: Response): Promise; /** * @param {Request} request * @returns {Promise} */ __interceptRequest(request: Request): Promise; /** * @param {Response} response * @returns {Promise} */ __interceptResponse(response: Response): Promise; /** * @param {object} jsonObject * @param {Response} response * @returns {Promise} */ __interceptResponseJson(jsonObject: object, response: Response): Promise; } export type RequestInterceptor = import('../types/types.js').RequestInterceptor; export type CachedRequestInterceptor = import('../types/types.js').CachedRequestInterceptor; export type ResponseInterceptor = import('../types/types.js').ResponseInterceptor; export type CachedResponseInterceptor = import('../types/types.js').CachedResponseInterceptor; export type ResponseJsonInterceptor = import('../types/types.js').ResponseJsonInterceptor; export type AjaxConfig = import('../types/types.js').AjaxConfig; export type CacheRequest = import('../types/types.js').CacheRequest; export type CacheResponse = import('../types/types.js').CacheResponse; export type CacheRequestExtension = import('../types/types.js').CacheRequestExtension; export type LionRequestInit = import('../types/types.js').LionRequestInit; //# sourceMappingURL=Ajax.d.ts.map