import { IHotelColorScheme } from '@roomstay/core';
import { TFunction } from 'i18next';
import type { Company } from '../models/Client/Hotel/Company';
import { Language } from './LanguageProvider';
declare global {
    interface Window {
        ResizeObserver: any;
    }
}
export declare const RS_VERSION: string;
export declare enum RoomstayTheme {
    Medium = "medium",
    Light = "light"
}
declare class RoomstayThemeEngine {
    currentCompany: Company | null;
    EngineContainer: HTMLElement;
    ScriptContainer: Element | null;
    StyleContainer: Element | null;
    selectedLang: Language;
    isLocalhost: boolean;
    ThemeType: RoomstayTheme;
    ExternalStyles: string[];
    ExternalScripts: string[];
    translation: TFunction | null;
    constructor();
    changeCompany: (newCompany: Company) => void;
    changeTheme: (profile: IHotelColorScheme) => Promise<void>;
    registerStyles: (profile?: IHotelColorScheme) => Promise<void>;
    getAssetUrl: () => string;
    getImageAssetUrl: (url?: string) => string;
    /**
     * Detects if URL is absolute, and needs to be
     * @param url string
     */
    wrapAssetUrl: (url: string) => string;
    registerScripts: () => Promise<void>;
    loadScript: (src: string, name: string, alwaysExecute?: boolean, timeout?: number) => Promise<void>;
    createElementOrReuseExisting: <K extends keyof HTMLElementTagNameMap>(type: K, name: string) => Element;
    init: () => Promise<void>;
    private reloadScriptAndStyleContainers;
}
declare const _default: RoomstayThemeEngine;
export default _default;
