import "whatwg-fetch"; import "@babel/polyfill"; export interface Headers { [key: string]: string; } export interface State { baseHeaders: Headers; baseUrl: string; } export default class BimFetch { state: State; constructor(url: string); /** * Set headers on every request using rest operators. * It will handle the case when headers already set needs to be changed. * Thanks to rest operators, newHeaders will overwrite old headers values. * @param {Object} newHeaders Custom headers to be used for the current request */ setHeaders(newHeaders: Headers): void; /** * Set default url to be used when making fetch requests */ setDefaultUrl(url: string): void; /** * Perform a GET request. Parameters are sent as an object and will be parsed and transformed * into a valid query */ get(url: string, params?: any, headers?: Headers): Promise; /** * Perform a POST request. Parameters are sent as an object. * @param {String} url Relative or absolute URL of the request * @param {Object} [params={}] Parameters to send with the request * @param {Object} [headers={}] Custom headers * @return {Promise} Return a promise of the result. */ post(url: string, bodyToTransform?: any, headers?: Headers): Promise; /** * Perform a PUT request. Parameters are sent as an object. * @param {String} url Relative or absolute URL of the request * @param {Object} [params={}] Parameters to send with the request * @param {Object} [headers={}] Custom headers * @return {Promise} Return a promise of the result. */ put(url: string, bodyToTransform?: any, headers?: Headers): Promise; /** * Perform a DELETE request. There should be no parameters to be sent. * @param {String} url Relative or absolute URL of the request * @param {Object} [params={}] Parameters to send with the request * @param {Object} [headers={}] Custom headers * @return {Promise} Return a promise of the result. */ delete(url: string, headers?: Headers): Promise; }