import { IRouteContext, AppInstanceContext, IMessageBusTopicSubscription, TokenBasedRouteStateData, Future } from "../models"; import { AppService, PermissionService } from "../services"; import { MessageBusTopicMediator } from "../core"; import { OmniaContext } from "../contexts"; import { BusinessProfileStore, UserTargetingStore } from "../stores"; import { OmniaUxLocalization } from "."; export interface TokenBasedRouteStateDataDict { [token: string]: TokenBasedRouteStateData; } export interface StateData { public?: any; tokenBased?: TokenBasedRouteStateDataDict; } /** * Base Routing logic* **/ export declare class InternalRouter { static businessProfileStore: BusinessProfileStore; static omniaCtx: OmniaContext; static appService: AppService; static userTargetingStore: UserTargetingStore; static permissionService: PermissionService; static omniaUxLoc: OmniaUxLocalization; static tokenPrefix: string; private static publicPath; private static tokenPath; private static stateData; static resolveTokenBasedContext: (stateDataDictFromBrowserPopState?: TokenBasedRouteStateDataDict) => void; static publicRouteCtx: IRouteContext; static appInstanceChangedPublishSubscriber: MessageBusTopicMediator; static onAppInstanceChanged: () => IMessageBusTopicSubscription; static contextReadyPromise: Future; /** * The init of the router should only be done once and very early in the boot **/ static init(): void; private static IsInBusinessProfileScope; private static buildPublicRoutePath; static tokenBasedNavigate(title: string, path: string, tokenBasedStateData?: TokenBasedRouteStateDataDict, updateState?: boolean, replaceState?: boolean): boolean; static publicNavigate(title: string, path: string, stateData?: StateData, updateState?: boolean): void; private static handleAppChange; private static createNotFoundElement; private static createUnauthorizedElement; private static createSetupInProgressElement; private static onPopState; static hasToken(): boolean; static setPublicTitle(title: string, ignoreIfTokenBasedExists?: boolean): void; /** * Subscribe to public navigation changes **/ static onPublicNavigate(cb: (routeCtx: IRouteContext) => void): void; static combine(...parts: string[]): string; /** * Perform clientside navigation using push state **/ private static pushState; private static get fullPathIncludeHashWithoutToken(); private static get hashWithoutToken(); private static get pathWithoutTokenAndParams(); private static removeTokenPart; private static extractTokenPart; private static get isOmniaApp(); private static getRedirectRoutePath; private static isLayoutRoute; private static getRedirectRoute; private static joinPath; private static comparePath; }