type Page = { page: TPage; } & SubPage & FragmentIdentifier & Search; type SubPage = { subPage?: string; }; type Search = { search?: Record; }; type FragmentIdentifier = { hash?: string; }; type NeverPage = { page?: never; }; type NeverIrisApp = { irisAppId?: never; extensionId?: never; }; export type IrisAppOptions = { irisAppId: string; extensionId?: string; } & SubPage & Search & FragmentIdentifier & NeverPage; export declare const mainApps: readonly ["myhome", "map", "assets", "sites", "customers", "groups", "reports"]; export type MainFleetApp = (typeof mainApps)[number]; export type FleetAppStandardOptions = Page & NeverIrisApp; export type MapAppStandardOptions = Page<"map"> & NeverIrisApp; export type MarketplaceOptions = { irisAppId: string; }; export declare const assetHomePageIds: readonly ["status", "movement", "events", "insights", "specification", "telematics"]; export type AssetHomePageId = (typeof assetHomePageIds)[number]; export type AssetHomeStandardOptions = Page & NeverIrisApp; export declare const siteHomePageIds: readonly ["overview", "assets", "asset-visibility"]; export type SiteHomePageId = (typeof siteHomePageIds)[number]; export type SiteHomeStandardOptions = Page & NeverIrisApp; export declare const groupHomePageIds: readonly ["assets", "users", "details"]; export type GroupHomePageId = (typeof groupHomePageIds)[number]; export type GroupHomeStandardOptions = Page & NeverIrisApp; export declare const customerHomePageIds: readonly ["info", "assets", "contact-list"]; export type CustomerHomePageId = (typeof customerHomePageIds)[number]; export type CustomerHomeStandardOptions = Page & NeverIrisApp; export declare const allPages: readonly ["status", "movement", "events", "insights", "specification", "telematics", "overview", "assets", "asset-visibility", "assets", "users", "details", "info", "assets", "contact-list", "myhome", "map", "assets", "sites", "customers", "groups", "reports"]; export type AllPages = (typeof allPages)[number]; export type AssetHomeOptions = AssetHomeStandardOptions & { assetId: string; }; export type SiteHomeOptions = SiteHomeStandardOptions & { siteId: string; }; export type CustomerHomeOptions = CustomerHomeStandardOptions & { customerId: string; }; export type GroupHomeOptions = GroupHomeStandardOptions & { groupId: string; }; /** * A legacy subscription feature, identified by its raw feature UUID. * * This is a Trackunit-internal mechanism, not a public API intended for * 3rd-party developers. It lives in this runtime package (rather than in an * internal manager lib) only so Trackunit-built iris apps can check legacy * subscription-feature access without depending on internal manager libs. */ export type LegacyFeature = string; export type LegacyFeatureOptions = { legacyFeature: LegacyFeature; } & NeverPage & NeverIrisApp; export type HasAccessToOptions = IrisAppOptions | AssetHomeOptions | SiteHomeOptions | GroupHomeOptions | CustomerHomeOptions | FleetAppStandardOptions | LegacyFeatureOptions; /** * type guard for IrisAppOptions */ export declare const isIrisOptions: (options: IrisAppOptions | AssetHomeStandardOptions | SiteHomeStandardOptions | FleetAppStandardOptions | GroupHomeStandardOptions | CustomerHomeStandardOptions | LegacyFeatureOptions | undefined) => options is IrisAppOptions; /** * type guard for FleetAppStandardOptions */ export declare const isFleetAppStandardOptions: (options: HasAccessToOptions) => options is FleetAppStandardOptions; /** * type guard for AssetHomeOptions */ export declare const isAssetHomeOptions: (options: HasAccessToOptions) => options is AssetHomeOptions; /** * type guard for SiteHomeOptions */ export declare const isSiteHomeOptions: (options: HasAccessToOptions) => options is SiteHomeOptions; /** * type guard for GroupHomeOptions */ export declare const isGroupHomeOptions: (options: HasAccessToOptions) => options is GroupHomeOptions; /** * type guard for CustomerHomeOptions */ export declare const isCustomerHomeOptions: (options: HasAccessToOptions) => options is CustomerHomeOptions; /** * type guard for LegacyFeatureOptions */ export declare const isLegacyFeatureOptions: (options: HasAccessToOptions) => options is LegacyFeatureOptions; export interface NavigationRuntimeApi { hasAccessTo: (options: HasAccessToOptions) => Promise; gotoAssetHome: (assetId: string, options?: IrisAppOptions | AssetHomeStandardOptions) => Promise; gotoSiteHome: (siteId: string, options?: IrisAppOptions | SiteHomeStandardOptions) => Promise; gotoCustomerHome: (customerId?: string, options?: IrisAppOptions | CustomerHomeStandardOptions) => Promise; gotoGroupHome: (groupId: string, options?: GroupHomeStandardOptions) => Promise; gotoAppLibrary: (irisAppId?: string) => Promise; gotoFleetApp: (options: IrisAppOptions | FleetAppStandardOptions) => Promise; gotoAdmin: (url?: string) => Promise; gotoAlerts: (url?: string) => Promise; gotoMarketplace: (options?: MarketplaceOptions) => Promise; reloadManager: (options?: { renewToken?: boolean; }) => Promise; getAssetHomeUrl: (assetId: string, options?: IrisAppOptions | AssetHomeStandardOptions) => Promise; getSiteHomeUrl: (siteId: string, options?: IrisAppOptions | SiteHomeStandardOptions) => Promise; getCustomerHomeUrl: (customerId?: string, options?: IrisAppOptions | CustomerHomeStandardOptions) => Promise; getGroupHomeUrl: (groupId: string, options?: GroupHomeStandardOptions) => Promise; getAppLibraryUrl: (irisAppId?: string) => Promise; getFleetAppUrl: (options: IrisAppOptions | FleetAppStandardOptions) => Promise; getAdminUrl: (url?: string) => Promise; getAlertsUrl: (url?: string) => Promise; getMarketplaceUrl: (options?: MarketplaceOptions) => Promise; } export {};