import type { ActionSheetData, ActionSheetListCloseData } from 'q2-tecton-common/lib/types/action-sheet'; import type { ModuleConfig, TectonRuntimeConfig, FeatureManifest } from './config'; import type { PlatformAlertOptions, OpenUrlOptions } from 'q2-tecton-common/lib/types/actions'; import type { PendoInfo, ExtensionResponse, PlatformEvent, ThemeInfo } from 'q2-tecton-common/lib/types/sources'; import type { BehaviorSubject } from 'rxjs'; import type { Change, ParamOptions, Verb } from 'q2-tecton-common/lib/types/config'; import type { TectonResponse } from 'q2-tecton-common/lib/types/response'; import type { CssThemeProperty } from 'q2-tecton-common/lib/types/cssThemeProperty'; import type { RequestURLMap } from 'q2-tecton-common/lib/types/request'; import type { MobileSDKCapabilityResponse } from 'q2-tecton-common/lib/types/mobile'; import type { OverpanelOptions } from 'q2-tecton-common/lib/types/overpanels'; import type { PlatformDimensions } from 'q2-tecton-common/lib/types/platformDimensions'; /** * UUX version information from the platform. * Contains the UUX version and financial institution identifier. * * @see getUUXInfo-setup.ts - Return type for UUX info capability */ export interface UUXInfo { UUX_VERSION: string; FI_IDENTIFIER: string; } /** * Complete version information from the platform. * Extends UUX info with the platform version number. * * @see getVersionInfo-setup.ts - Return type for version info capability */ export interface VersionInfo { UUX_VERSION: string; PLATFORM_VERSION: string; FI_IDENTIFIER: string; } /** * Extended window type for the Tecton platform environment. * Provides access to Tecton platform globals including mobile app detection * and platform dimension information. * * @see init.ts - Used to access platform globals */ export type TectonWindow = typeof window & { Tecton: { inMobileApp?: boolean; useActionSheets?: boolean; platformDimensions?: PlatformDimensions; beta?: boolean; }; }; /** * Extended window type for testing environments. * Adds testing flag and config observable access for test harnesses. * * @see test-utils - Used in test environment setup */ export type TestingWindow = typeof window & { isTestingTecton?: boolean; tectonConfig$: BehaviorSubject; }; /** * Platform control bus interface defining all available platform capabilities. * This is the primary contract between the host platform and Tecton. * The platform implements this interface to provide functionality to features. * Optional methods indicate capabilities that may not be available on all platforms. * * @see init.ts - Received from platform during initialization * @see All action/source setup files - Used to check capability availability */ export interface TectonPlatformControls { actionRequired?(uuid: string, title: string, message?: string): void; authorizeTransactionWithMfa?(promptOptions: Record): Promise; buildIframeURL?(url: string): string; cdnOverride?(): Promise; clearCacheByPrefix?(prefix: string): void; clearLoadingModal?(): void; clearParams?(moduleId: string): void; clearTransferCache?(tranIdHash?: string[], accountIdHash?: string[]): void; closeOverpanel?(): void; cssPropertiesChanged?(fn: (cssProperties: CssThemeProperty[]) => void): void; executeDynamicPlatformAPI?(functionName: string, args: any[]): Promise>; dynamicConfigFetch(featureName: string): Promise; dynamicConfigFetch(featureName: string, moduleName: string): Promise; getAuthPayload(): { key: string; value: string; }[]; getAuthToken?(): Promise; getBaseAssetPath(subPath: string): string; getCapabilities?(...args: string[]): Record; getCurrentLanguage(): string; getCurrentTheme?(): string; getThemeInfo?(): ThemeInfo; getCustomLanguageURL?(fileName: string): string; getCustomerSpecificAssetPath(path: string): string; getFeatureConfig?(configVariables: string[]): Promise>; getGlobalScripts?(): Promise; getPendoInfo?(): PendoInfo; getPlatformInfo?(requestedInfo: string[]): Promise>; getPlatformOverpanels?(): Promise; getPlatformRootSelector?(): string | undefined; getMobileSDKCapabilities?(): Promise; getSurroundingOffsets?(): { top: number; bottom: number; }; getUUXInfo?(): UUXInfo; getVersionInfo?(): VersionInfo; isUUXPath?(featureKey: string, options?: Record): boolean; languageChanged?(fn: (lang: string) => void): void; logToServer?(featureName: string, message: string, logLevel: string): void; manageChanges?(changeData: Partial>): Promise; navigateTo?(platform: boolean, key: string, urlParams?: string[], queryParams?: Record): void; openURL?(url: string, options: OpenUrlOptions): void; platformEventNotification?(fn: (event: PlatformEvent) => void): void; promptForMFA?(featureName: string, promptOptions: Record): Promise; keepAlive?(): void; refetchAccountsNotification?(): void; refetchRequired?(fn: (type: string) => void): void; registerLogoffHook?(fn: () => void): void; removeActionRequired?(uuid: string): void; requestExtensionData?(featureName: string, requestBody?: Record): Promise; requestPlatformData?(route: string, method: string, requestBody?: string): Promise; sendAlert?(alertMessage: PlatformAlertOptions): Promise; sendFormDataRequest?(route: string, method: string, requestBody?: FormData): Promise; sendRequest?(route: string, method: string, requestBody?: string): Promise; setOverpanelTitle?(title: string, moduleId?: string): void; setPageTitle?(title: string, moduleId?: string): void; setupDynamicPlatformAPI?(): Set; showAlert?(alertMessage: PlatformAlertOptions): Promise; showActionSheet?(data: ActionSheetData): Promise; showLoadingModal?(title: string): void; showModal?(options: Record): Promise; showOverpanel?(overpanelId: string, fullWidth: OverpanelOptions['fullWidth'], legacyOverpanelName: string | undefined, size: OverpanelOptions['size'], height: OverpanelOptions['height'], testId: OverpanelOptions['testId'], isBlocking: OverpanelOptions['isBlocking']): Promise | void>; takePicture?(options: { overlayText?: string; helpText?: string; }): Promise; themeChanged?(fn: (theme: string) => void): void; themeInfoChanged?(fn: (info: ThemeInfo) => void): void; updateParams?(moduleId: string, params?: Record, paramOptions?: Record): void; verifyMFA?(options: { token: string; }): Promise; getRequestURLMap?(): RequestURLMap; } /** * Platform input API for configuration management and lifecycle control. * Used by the platform to control Tecton configuration at runtime. * Provides methods for config lookup, updates, and teardown. * * @see init.ts - Returned to platform during initialization */ export interface TectonPlatformInputAPI { configForOverpanel(overpanelId: string): Promise; configForOverpanel(featureName: string, moduleName: string): Promise; configForRoute(routeName: string): ModuleConfig; configLookup(featureName: string): FeatureManifest; configLookup(featureName: string, moduleName: string): ModuleConfig; replaceConfig(configDiff: TectonRuntimeConfig): void; teardown(): void; tectonParamsChanged(paramsChanged: ParamsChanged): void; updateConfig(config: TectonRuntimeConfig): void; verifyConfig(): void; updateApplicationModules(isAuthenticated: boolean): void; overpanelOverrideLookup(overpanelKey: string): Promise>; } /** * Parameter change notification payload from the platform. * Contains both the changed parameters and the complete current parameter state. * Used to notify features when URL or module parameters change. * * @see paramsChanged-setup.ts - Used in parameter change notifications */ export interface ParamsChanged { changedParams: Record; currentParams: Record; } /** * Request body for getting initial parameters for an outlet. * Contains the module ID to retrieve parameters for. * * @see getInitialParams-setup.ts - Used as parameter type for initial params request */ export interface OutletInitialParams { moduleId: string; } /** * Platform outlet element interface for application modules. * Represents the custom element that renders Tecton modules in the platform. * Contains routing and configuration information for the outlet. * * @see applicationModules.ts - Used for application module outlet elements */ export interface TectonPlatformOutletElement extends HTMLElement { name: string; routeName: string; configTree: { featureName: string; moduleName: string; }; hideLoading?: boolean; } /** * Properties for executing dynamic platform API functions. * Contains the function name and arguments for dynamic invocation. * * @see executeDynamicPlatformAPI-setup.ts - Used as parameter type for dynamic API calls */ export interface ExecuteProps { functionName: string; args: string[]; } /** * Testing options for platform initialization. * Used to configure the platform for test environments. * * @see test-utils - Used in test environment configuration */ export interface TestOptions { testing?: boolean; } //# sourceMappingURL=setup.d.ts.map