import 'cross-fetch/polyfill';
import Model from '@tripian/model';
import IXhrOptions from './IXhrOptions';
declare class XHR {
    private baseURL;
    private xApiKey;
    private timeout;
    private authorization?;
    private token?;
    private lang?;
    getToken: () => Model.Token | undefined;
    setToken: (token: Model.Token) => void;
    removeToken: () => void;
    setLang: (lang: string) => void;
    constructor(xhrOptions: IXhrOptions, lang: string);
    refreshXhrToken: () => Promise<Model.Token> | undefined;
    private get;
    private getWithPage;
    private appendLangToUrl;
    private post;
    private put;
    private delete;
    req: (httpMethod: string) => <T>(url: string, dataKey: string, params?: any, customHeaders?: any) => Promise<T>;
    reqWithPage: (httpMethod: string) => <T>(url: string, dataKey: string, params?: any) => Promise<Model.DataPayload<T>>;
    info: () => {
        baseURL: string;
        xApiKey: string;
        email: string;
    };
}
export default XHR;
