import { WindowHapiUtils } from "./utils.types"; import { WindowHapiValidations } from "./validation.types"; import { WindowHapiState } from "./state.types"; import { WindowHapiInstance, WindowHapiInstances } from "./instances.types"; import { WindowHapiRouting } from "./routing.types"; import { WindowHapiAuth } from "./auth.types"; import { WindowHapiEvents } from "./events.types"; import { WindowHapiUI, WindowHapiUIElementNameForAddingToBody } from "./ui.types"; import { WindowHapiAPI } from "./api.types"; import { WindowHapiSDK } from "./sdk.types"; import { WindowHapiService } from "./service.types"; import { WindowHapiQA } from "./qa.types"; import { WindowHapiLogger } from "../common/logger/types"; import { HapiFeatureBranch, HapiWebComponent, RecursivePartial, WindowHapiSubmoduleName } from "../common"; import { DebugPanelPosition } from "./config.types"; import { ProductPriceCurrency } from "../product/enums"; import { CampaignCreateForm } from "../campaign"; export type WindowHapiModuleWithConstructorArgs = Module & ConstructorArgs; export type WindowHapiUtilsSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiValidationSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiStateSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiInstancesSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiRoutingSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiAuthSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiEventsSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiUISubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiAPISubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiSDKSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiServiceSubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiQASubmodule = WindowHapiModuleWithConstructorArgs; export type WindowHapiConfigBase = { apiHost: string; partnerToken: string; clientToken: string; appOrigin: string; docsOrigin: string; enableLogs: boolean; enableRemoteLogs: boolean; useJWTAuthHeaders: boolean; addModal: boolean; addAlertBar: boolean; addDebugPanel: boolean; debugPanelPosition: DebugPanelPosition; testMode: boolean; debugMode: boolean; walletCurrency: ProductPriceCurrency | undefined; isDemoATS: boolean; buildId?: string; env?: string; isSkeletonLoadingEnabled?: boolean; }; export type WindowHapiInjectorConfig = {} & WindowHapiConfigBase; export type WindowHapiPreLoadConfig = { isIframePerformanceTrackingEnabled?: boolean; isSkeletonLoadingEnabled?: boolean; isEventCountingEnabled?: boolean; isEventBatchingEnabled?: boolean; maxConcurrentLoads?: number; }; export type WindowHapiConfigSubmodule = { initialState: RecursivePartial; loadingSpinnerDefaultFillColor: string; webComponents: HapiWebComponent[]; isInvalidToken: boolean; env: string; appVersion: string; htmlTemplates: Record; isUsingGETMethod: boolean; featureBranches: HapiFeatureBranch[]; walletCurrency: ProductPriceCurrency | undefined; } & WindowHapiConfigBase; export type WindowPropertiesMap = { windowKey: WindowHapiSubmoduleName; klassProperty: keyof WindowHapiClassInterface; }; export type WindowHapiClassInterface = { logger: WindowHapiLogger; utils: WindowHapiUtilsSubmodule; validation: WindowHapiValidationSubmodule; state: WindowHapiStateSubmodule; instances: WindowHapiInstancesSubmodule; routing: WindowHapiRoutingSubmodule; auth: WindowHapiAuthSubmodule; events: WindowHapiEventsSubmodule; ui: WindowHapiUISubmodule; api: WindowHapiAPISubmodule; sdk: WindowHapiSDKSubmodule; service: WindowHapiServiceSubmodule; instance: WindowHapiInstance; qa: WindowHapiQASubmodule; isProduction: boolean; isReady: boolean; enableLogs: boolean; enableRemoteLogs: boolean; windowPropertiesMap: WindowPropertiesMap[]; uiElementsToAddToBody: WindowHapiUIElementNameForAddingToBody[]; attachWebComponents: () => void; attach: () => void; detach: () => void; bootstrap: () => Promise; logWelcomeMessage: () => void; logDirectChargeDraftCampaignNotes: () => void; logCampaignWeeklyWorkingMinutesNotes: (form: CampaignCreateForm) => void; logDeprecationNotice: () => void; logLatestTypesPackageVersion: () => Promise; logFeatureBranches: () => Promise; logPerformanceDegradationWarning: (detailsStrings: [ string, string | undefined | null | number | boolean ][]) => Promise; logWidgetVisibilityWarning: (details?: { reason?: string; widgetElement?: Element | null; widgetTagName?: string; ancestorSummary?: string; ancestorElement?: Element | null; }) => Promise; logSpamCallWarning: (functionName: string, callCount: number, args: any[], stackTrace?: string) => Promise; logUnstableSelectorWarning: (functionName: string, selector: string, reasons: string[]) => Promise; querySelectorAllThatAlsoSearchesShadowDOM: (node: Element | ShadowRoot | Document, selector: string) => Element[]; querySelectorThatAlsoSearchesShadowDOM: (selector: string) => Element; registerServiceWorker: () => Promise; checkForServiceWorkerUpdate: () => Promise; unregisterServiceWorker: () => Promise; serviceWorkerRegistration: ServiceWorkerRegistration | null; }; export type WindowHapi = { [WindowHapiSubmoduleName.api]: WindowHapiAPISubmodule; [WindowHapiSubmoduleName.auth]: WindowHapiAuthSubmodule; [WindowHapiSubmoduleName.config]: WindowHapiConfigSubmodule; [WindowHapiSubmoduleName.instances]: WindowHapiInstancesSubmodule; [WindowHapiSubmoduleName.qa]: WindowHapiQASubmodule; [WindowHapiSubmoduleName.routing]: WindowHapiRoutingSubmodule; [WindowHapiSubmoduleName.sdk]: WindowHapiSDKSubmodule; [WindowHapiSubmoduleName.service]: WindowHapiServiceSubmodule; [WindowHapiSubmoduleName.state]: WindowHapiStateSubmodule; [WindowHapiSubmoduleName.ui]: WindowHapiUISubmodule; [WindowHapiSubmoduleName.utils]: WindowHapiUtilsSubmodule; [WindowHapiSubmoduleName.validation]: WindowHapiValidationSubmodule; [WindowHapiSubmoduleName.events]: WindowHapiEventsSubmodule; [WindowHapiSubmoduleName.instance]: WindowHapiInstance; }; export type WindowHapiInjector = { hapiInjector: { setConfig(key: K, value: WindowHapiInjectorConfig[K]): WindowHapiInjectorConfig; inject: () => Promise; eject: () => Promise; reinjectForNewUser: (newToken: string) => Promise; }; hapiInjectorConfig: WindowHapiInjectorConfig; }; //# sourceMappingURL=window.d.ts.map