import { IkasCustomerReviewSettings, IkasCustomerSettings, IkasIndexPageSeoSetting, IkasLoyaltyProgram, IkasMerchantSettings, IkasProductBackInStockSettings, IkasSalesChannelPaymentGateway, IkasStorefontMetaTemplates, IkasStorefrontB2BSettings, IkasStorefrontPopup, IkasStorefrontRouting, IkasStorefrontType, IkasThemeStockPreference } from "../../storefront-models/src"; import { ThemeGlobals } from "./theme-globals"; export * from "./theme-globals"; export declare class IkasStorefrontConfig { static themeId?: string; static apiUrl?: string; static cdnUrl?: string; static videoCdnUrl?: string; static baseUrl?: string; static apiKey?: string; static customerToken?: string; static storefrontId?: string; static storefrontRoutingId?: string; static storefrontType?: IkasStorefrontType; static storefrontB2BSettings?: IkasStorefrontB2BSettings; static priceListId?: string; static stockLocationIds?: string[]; static loginRequiredCallback?: LoginRequiredCallbackType; static domain?: string; static storefrontThemeId?: string; static salesChannelId?: string; static routings: IkasStorefrontRouting[]; static paymentGateways: IkasSalesChannelPaymentGateway[]; static gtmId?: string; static fbpId?: string; static analytics4Id?: string; static universalAnalyticsId?: string; static pickUpStockLocationIds?: string[] | null; static tiktokPixelId?: string; static stockPreference?: IkasThemeStockPreference; static translations: Record; static themeGlobals: ThemeGlobals; static storefrontJSScripts: string[]; static highPriorityStoreFrontJSScripts: string[]; static customerReviewSettings?: IkasCustomerReviewSettings | null; static productBackInStockSettings?: IkasProductBackInStockSettings | null; static merchantSettings?: IkasMerchantSettings | null; static currentPageComponents?: Record; static isEditor: boolean; static customerSettings?: IkasCustomerSettings; static metaTemplates: IkasStorefontMetaTemplates[] | null; static custom?: Record | null; static indexPageSeoSettings?: IkasIndexPageSeoSetting[] | null; static storefrontPopups: IkasStorefrontPopup[]; static loyaltyPrograms: IkasLoyaltyProgram[]; static payWithIkasUrl?: string | null; static sessionId?: string; static visitorId?: string; static journeyId?: string; static observers: IkasStorefrontConfigObserver[]; static isPreview: boolean; static addObserver(observer: IkasStorefrontConfigObserver): void; static init(config: Partial): void; static getCurrentRouting(): IkasStorefrontRouting | undefined; static getCurrentPath(): string; static getSupportedPaths(): string[]; static getCurrentLocale(): string; static getDefaultLocale(): string; static getIsPreview(): boolean; private static notify; static isCustomerReviewEnabled(): boolean; static isCustomerReviewLoginRequired(): boolean; static isBackInStockEnabled(): boolean; static isCustomerLoginRequiredForBackInStock(): boolean | null | undefined; static toJSON(): any; static isB2BStorefront(): boolean; static getDefaultCurrencyCode(): string | null | undefined; static getDefaultCurrencySymbol(): string | null | undefined; static isCaptchaRequired(): boolean; static getPayWithIkasUrl(): string | null | undefined; } export type IkasStorefrontConfigObserver = { id: string; callback: (config: IkasStorefrontConfig) => void; }; export type LoginRequiredCallbackType = () => Promise | void; export type IkasStorefrontConfigParams = { themeId?: string; apiUrl?: string; cdnUrl?: string; videoCdnUrl?: string; baseUrl?: string; apiKey?: string; token?: string; customerToken?: string; storefrontId?: string; storefrontRoutingId?: string; storefrontType?: IkasStorefrontType; storefrontB2BSettings?: IkasStorefrontB2BSettings; priceListId?: string; stockLocationIds?: string[]; loginRequiredCallback?: LoginRequiredCallbackType; domain?: string; storefrontThemeId?: string; salesChannelId?: string; routings: IkasStorefrontRouting[]; paymentGateways: IkasSalesChannelPaymentGateway[]; gtmId?: string; fbpId?: string; analytics4Id?: string; universalAnalyticsId?: string; pickUpStockLocationIds?: string[] | null; tiktokPixelId?: string; stockPreference?: IkasThemeStockPreference; translations: Record; themeGlobals: ThemeGlobals; storefrontJSScripts: string[]; highPriorityStoreFrontJSScripts: string[]; customerReviewSettings?: IkasCustomerReviewSettings | null; productBackInStockSettings?: IkasProductBackInStockSettings | null; merchantSettings?: IkasMerchantSettings | null; currentPageComponents?: Record; isEditor: boolean; customerSettings?: IkasCustomerSettings; sessionId?: string; visitorId?: string; journeyId?: string; metaTemplates: IkasStorefontMetaTemplates[] | null; custom?: Record | null; indexPageSeoSettings?: IkasIndexPageSeoSetting[] | null; storefrontPopups: IkasStorefrontPopup[]; loyaltyPrograms: IkasLoyaltyProgram[]; payWithIkasUrl?: string | null; isPreview: boolean; }; /** * Takes any string, escapes it for JSON, and also makes sure * is escaped as <\/script>. Designed to work with nested JSON.stringify. */ export declare function escapeForJSON(str: string): string; /** * Inverse of escapeForJSON, which reconstitutes the original string. */ export declare function unescapeFromJSON(str: string): string;