export {}; interface MutationObserverMock extends MutationObserver { trigger(mutations: Partial[]): void; } interface IFormAccount { id: number; name: string; type: string; } interface AuthorizeBody { merchantId: number; spreadSheetUrl: string; authorizationCode?: string; formAccountId?: number; } interface AuthorizeResponse { granted: boolean; grantUrl?: string; formAccountId?: number; spreadSheetId?: string; sheetId?: number; } interface IForm { id: number; name: string; config: Config[]; } interface Config { type: 'GOOGLE_SHEET' | 'API' | 'GOOGLE_FORM' | 'EMAIL'; isMainConfig: boolean; formAccountId?: number; spreadSheetUrl?: string; sheetId?: number; endpoint?: string; method?: 'GET' | 'POST' | 'PATCH'; body?: any; headers?: any; email?: string; } declare global { interface Window { dataLayer: { event: string; [key: string]: string | number; }[]; config: { env: 'test-1' | 'dev' | 'production'; iam: { clientId: string; oauthDomain: string; bffDomain: string; }; apiServices: { [key: string]: string; }; clientDomain: string; previewDomain: string; customDomain: { ip: string; cname: string; }; tracker?: { appId?: string; host?: string; jsFile?: string; }; facebook?: { pageId: string; appId: string; }; googleReCaptchaKey?: string; merchantIdsDisplayTekoProductList?: number[]; useTerminalId?: boolean; maintenance?: { isMaintaining: boolean; }; turnOnAppSwitcher?: boolean; pricingContactSheet?: { clientEmail: string; privateKey: string; sheetId: string; }; contactLink?: string; helpingInformation?: { supportLink: string; facebookGroup: string; supportEmail: string; facebookPage: string; }; policyContent?: string; flag424?: boolean; rootDomain?: string; dashboardDomain?: string; tempiDomain?: string; market?: { appId?: number; loginUri?: string; defaultLoginUri?: string; }; flagWebsiteBuilder?: boolean; postfixFreeDomain?: string; flagPB1699?: boolean; // Flag for epic PB-1699L make website multilingual flagChatGPT?: boolean; // Flag for ChatGPT feature (PB-2087) smartActivationEditorDomain?: string; // smart activaiton editor domain platformMapping?: { [key: string]: number; }; flagContactBubble?: boolean; // Flag for Contact Bubble feature (PB-2433) screenshotDomain?: string; // screenshot domain flagPB2478?: boolean; flagPB2851?: boolean; flagPB2108?: boolean; flagPB3159?: boolean; flagPB2963?: boolean; flagPB3412?: boolean; flagPB3864?: boolean; flagPB3498?: boolean; flagPB3415?: boolean; merchantIdsDisplayCustomComponent?: number[]; cdnBaseUrl?: string; flagNewMMLogin?: boolean; superset?: { appId?: number; hostname: string; overviewDashboardId: number; pageDashboardId: number; channelDashboardId: number; utmDashboardId: number; dashboardParams?: { standalone?: string; }; }; flagPB2225: boolean; regexCustomDomain?: string; articleTemplateCategoryId?: number; flagPB3979?: boolean; flagPB4146?: boolean; merchantUseMultilang?: number[]; flagPB3972?: boolean; languageServiceCode?: string; defaultLanguage?: string; flagPB4443?: boolean; isGlobalWebsite?: boolean; flagHiddenUpgradePlan?: boolean; appName?: string; flagPB3999?: boolean; newComponents?: { [key: string]: { name: string; endTime: number } }; flagPB4525?: boolean; flagPB4292?: boolean; flagPB4971?: boolean; flagTopBanner?: boolean; flagPB5049?: boolean; }; hostnameMapping: { wbeSite?: string; wbeGlobalSite?: string; ldeSite?: string; ldeGlobalSite?: string; demoSite?: string; }; merchantId?: number; formAccountApi?: { getAllFormAccounts: (merchantId: number) => Promise; authorizeGGSheet: (body: AuthorizeBody) => Promise; deleteFormAccountById: ( merchantId: number, formAccountId: number, ) => Promise; }; formConfigApi?: { getListForm: (merchantId: number) => Promise; upsertForm: (data: any) => void; deleteFormById: (merchantId: number, formId: number) => Promise; }; } function track(param1?: string, param2?: any, param3?: any): () => void; }