import { CountryCodes, LanguageCodes } from './countries'; import { IframeContainerQuerySelectorSettings } from './plugin-thankyou'; export interface SettingsUiWindow extends Window { sovSettingsUi: { currentSettings: SovendusAppSettings; saveSettings: (saveSettings: SovendusAppSettings) => Promise; settingsContainerId: string; }; } export declare enum Versions { ONE = "1", TWO = "2", THREE = "3" } export declare const defaultSovendusAppSettings: SovendusAppSettings; export declare const defaultIframeContainerQuerySelector: IframeContainerQuerySelectorSettings; export interface SovendusAppSettings { voucherNetwork?: VoucherNetworkSettings; rewards?: RewardsSettings; optimize?: OptimizeSettings; checkoutProducts?: boolean; employeeBenefits?: EmployeeBenefitsSettings; version: Versions.THREE; } export interface EmployeeBenefitsSettings { isEnabled: boolean; showWidgetOnDashboard: boolean; addToSidebar: boolean; } export declare enum TriggerPages { MY_ACCOUNT_DASHBOARD = "myAccountDashboard", MY_ORDERS = "myOrders", MY_ORDERS_DETAIL = "myOrdersDetail", CUSTOM = "custom" } export type RewardsSettings = { pages: { [triggerPage in TriggerPages]: RewardsTriggerSettings; }; }; export type RewardsTriggerSettings = TSettingsType extends SettingsType.SIMPLE ? RewardsSettingsSimple : RewardsSettingsCountries; export type RewardsBaseSettings = { trigger: RewardsTriggerMatchSettings | RewardsTriggerBuiltIn; }; export type RewardsTriggerBuiltIn = "builtIn"; export interface RewardsTriggerMatchSettings extends RewardsBaseSettings { matchType: "contains" | "startsWith" | "endsWith" | "regex"; matchValue: string; } export interface RewardsSettingsSimple extends RewardsBaseSettings { settingType: SettingsType.SIMPLE; simple: VoucherNetworkLanguage; countries?: never; } export interface RewardsSettingsCountries { settingType: SettingsType.COUNTRY; countries: { fallBackIds?: VoucherNetworkLanguage | undefined; iframeContainerQuerySelector?: IframeContainerQuerySelectorSettings | undefined; ids: { [key in CountryCodes]?: VoucherNetworkCountry; }; }; simple?: never; } export type VoucherNetworkSettings = TSettingsType extends SettingsType.SIMPLE ? VoucherNetworkSettingsSimple : VoucherNetworkSettingsCountries; export type VoucherNetworkSettingsSimple = { settingType: SettingsType.SIMPLE; simple: VoucherNetworkLanguage; countries?: never; cookieTracking?: boolean; }; export interface VoucherNetworkSettingsCountries { settingType: SettingsType.COUNTRY; cookieTracking?: boolean; countries: { fallBackIds?: VoucherNetworkLanguage | undefined; iframeContainerQuerySelector?: IframeContainerQuerySelectorSettings | undefined; ids: { [key in CountryCodes]?: VoucherNetworkCountry; }; }; simple?: never; } export type OptimizeSettings = TSettingsType extends SettingsType.SIMPLE ? OptimizeSettingsSimple : OptimizeSettingsCountries; export interface OptimizeSettingsSimple { settingsType: SettingsType.SIMPLE; simple: OptimizeCountry; countries?: never; } export interface OptimizeSettingsCountries { settingsType: SettingsType.COUNTRY; countries: { fallBackEnabled: boolean; fallBackId: string | undefined; ids: { [key in CountryCodes]?: OptimizeCountry; }; }; simple?: never; } export declare enum SettingsType { SIMPLE = "simple", COUNTRY = "country" } export interface VoucherNetworkCountry { languages: { [key in LanguageCodes]?: VoucherNetworkLanguage; }; } export interface OptimizeCountry { isEnabled: boolean; optimizeId: string; } export interface VoucherNetworkLanguage { isEnabled: boolean; trafficSourceNumber: string; trafficMediumNumber: string; iframeContainerQuerySelector?: IframeContainerQuerySelectorSettings | undefined; } //# sourceMappingURL=plugin-settings.d.ts.map