import { AppSpec, HoistAppModel, HoistModel, IdentityInfo, RootRefreshContextModel, TaskObserver } from '@xh/hoist/core'; import { ReactNode } from 'react'; import { AboutDialogModel } from './AboutDialogModel'; import { BannerSourceModel } from './BannerSourceModel'; import { ChangelogDialogModel } from './ChangelogDialogModel'; import { ColChooserOptionsModel } from './ColChooserOptionsModel'; import { ExceptionDialogModel } from './ExceptionDialogModel'; import { FeedbackDialogModel } from './FeedbackDialogModel'; import { ImpersonationBarModel } from './ImpersonationBarModel'; import { MessageSourceModel } from './MessageSourceModel'; import { OptionsDialogModel } from './OptionsDialogModel'; import { SizingModeModel } from './SizingModeModel'; import { ViewportSizeModel } from './ViewportSizeModel'; import { ThemeModel } from './ThemeModel'; import { ToastSourceModel } from './ToastSourceModel'; import { UserAgentModel } from './UserAgentModel'; import { AppStateModel } from './AppStateModel'; import { PageStateModel } from './PageStateModel'; import { RouterModel } from './RouterModel'; /** * Root object for Framework GUI State. */ export declare class AppContainerModel extends HoistModel { telemetryPrefix: string; private initCalled; appSpec: AppSpec; appModel: HoistAppModel; appLoadObserver: TaskObserver; appStateModel: AppStateModel; pageStateModel: PageStateModel; routerModel: RouterModel; aboutDialogModel: AboutDialogModel; changelogDialogModel: ChangelogDialogModel; exceptionDialogModel: ExceptionDialogModel; feedbackDialogModel: FeedbackDialogModel; impersonationBarModel: ImpersonationBarModel; optionsDialogModel: OptionsDialogModel; bannerSourceModel: BannerSourceModel; messageSourceModel: MessageSourceModel; toastSourceModel: ToastSourceModel; refreshContextModel: RootRefreshContextModel; sizingModeModel: SizingModeModel; viewportSizeModel: ViewportSizeModel; themeModel: ThemeModel; colChooserOptionsModel: ColChooserOptionsModel; userAgentModel: UserAgentModel; /** * Message shown on spinner while the application is in a pre-running state. * Update within `AppModel.initAsync()` to relay app-specific initialization status. */ initializingLoadMaskMessage: ReactNode; /** * The last interactive login in the app. Hoist's security package will mark the last * time spent during user interactive login. * * Used by `Promise.track`, to ensure this time is not counted in any elapsed time tracking * for the app. * @internal */ lastRelogin: { started: number; completed: number; }; constructor(); /** * Main entry point. Initialize and render application code. */ renderApp(appSpec: AppSpec): void; /** * Called when {@link AppContainer} first mounted. * Triggers initial authentication and initialization of Hoist and application. */ initAsync(): Promise; /** * Called by {@link LoginPanelModel} on successful credential submission to resume startup. * @internal */ completeInteractiveLogin(identity: IdentityInfo): void; /** * Show the update Banner. Called by EnvironmentService when the server reports that a * new (or at least different) version is available and the user should be prompted. * * @param version - updated version from server. * @param build - updated build from server - included for snapshot version prompts. */ showUpdateBanner(version: string, build?: string): void; hasAboutDialog(): boolean; openAdmin(): void; private interactiveLoginDeferred; private awaitInteractiveLoginAsync; /** * Complete initialization. Called after the client has confirmed that the user is generally * authenticated and known to the server (regardless of application roles at this point). */ private completeInitAsync; private addGlobalListenersAndCss; private setDocTitle; private startRouter; private startOptionsDialog; private setAppState; private bindInitSequenceToAppLoadObserver; private setViewportContent; private getViewportContent; }