/************************************************************************* * Copyright 2020 Adobe * All Rights Reserved. * * NOTICE: Adobe permits you to use, modify, and distribute this file in * accordance with the terms of the Adobe license agreement accompanying * it. If you have received this file from a source other than Adobe, * then your use, modification, or distribution of it requires the prior * written permission of Adobe. **************************************************************************/ /** * @packageDocumentation * @module "index" */ import { AgreementsApi } from '../agreements'; import { AIApi } from '../ai'; import { AppApi } from '../appapi'; import { CacheApi } from '../cache'; import { ComponentApi } from '../component'; import { ConsentApi } from '../consent'; import * as domTypes from '../dom'; import { ErrorApi } from '../error'; import { FeatureFlagsApi } from '../featureflags'; import { HelpCenterApi } from '../helpcenter'; import { InterFrameApi } from '../interframe'; import { InternalApi } from '../internal'; import { MetricsApi } from '../metrics'; import { ModulesApi } from '../modules'; import { NetworkApi } from '../network'; import { Nps } from '../nps'; import { OrgSwitcherApi } from '../orgswitcher'; import { PageApi } from '../page'; import { PermissionsApi } from '../permissions'; import { PulseApi } from '../pulse'; import Runtime from './Runtime'; import { SessionApi } from '../session'; import { SettingsApi } from '../settings'; import { ShellApi } from '../shell'; import { SidenavApi } from '../sidenav'; import { TopbarApi } from '../topbar'; import { UserApi } from '../user'; import { UserProfileApi } from '../userprofile'; import { WebMcpApi } from '../webmcp'; export interface CommonModules { readonly internal: InternalApi; readonly metrics: MetricsApi; readonly network: NetworkApi; } export interface Modules extends CommonModules { readonly agreements: () => AgreementsApi; readonly ai: () => AIApi; readonly appApi: () => AppApi; readonly cache: () => CacheApi; readonly component: () => ComponentApi; readonly consent: () => ConsentApi; readonly default: (options?: any) => Runtime; readonly dom: () => typeof domTypes; readonly error: () => ErrorApi; readonly featureFlags: () => FeatureFlagsApi; readonly helpCenter: HelpCenterApi; readonly interFrame: () => InterFrameApi; readonly modules: () => ModulesApi; readonly nps: Nps; readonly orgSwitcher: OrgSwitcherApi; readonly page: PageApi; readonly permissions: () => PermissionsApi; readonly pulse: () => PulseApi; readonly Runtime: new (options?: any) => Runtime; readonly session: () => SessionApi; readonly settings: () => SettingsApi; readonly shell: () => ShellApi; readonly sidenav: () => SidenavApi; readonly topbar: TopbarApi; readonly user: () => UserApi; readonly userProfile: UserProfileApi; readonly webmcp: () => WebMcpApi; } export type Writeable = { -readonly [P in keyof T]: T[P]; }; export interface EMR extends Modules { 'exc-app-version'?: string; isNested?: boolean; } type Global = typeof window & { readonly 'exc-module-runtime': EMR; readonly 'shell-module-runtime'?: CommonModules; EXC_MR_READY?: (() => void) & { autoDelete?: boolean; }; }; export declare const changeGlobalName: (name: string) => keyof Window; export declare const getEMR: (win?: Window) => any; /** * Gets the implementation for the module. * @ignore * @param moduleName The name of the module. * @returns The implementation. */ export declare function getImpl(moduleName: T): Modules[T]; /** * Connects attributes of the specified API. * @ignore * @param apiName Name of the API. * @param attributes The attributes to connect. * @returns The API instance. */ export declare function connect(apiName: T, attributes: [keyof Modules[T], boolean?][]): Modules[T]; declare const _default: Global; export default _default;