import { type AppOption, type SuiteAppSource, type SuiteUrlOptions } from "./AppSwitcherProps"; /** Every app in the Pixelize suite. */ export type SuiteAppId = "crm" | "account" | "tickets" | "billing" | "hrms" | "social"; /** One catalogue entry: switcher copy plus whether the app is hidden from production lists. */ export interface PixelizeSuiteApp extends SuiteAppSource { /** Narrows `AppOption.id` to a known suite app id. */ id: SuiteAppId; /** Hidden from production lists (except as the current app) until a deployment overrides it to false. */ preRelease?: boolean; } /** The default Pixelize app list; `resolveSuiteApps` `overrides` change a single app without forking it. */ export declare const PIXELIZE_SUITE: readonly PixelizeSuiteApp[]; /** Options for `resolveSuiteApps`; the URL fields are `buildSuiteApps`'s. */ export interface ResolveSuiteAppsOptions extends SuiteUrlOptions { /** The app this UI runs inside; always listed, even while pre-release. */ currentAppId: SuiteAppId; /** Production drops pre-release apps so customers are never linked to a dead host. */ isProduction: boolean; /** Explicit origin per app (e.g. Account's own deployment variable); wins over derivation. An undefined value falls back to derivation. */ urls?: Partial>; /** Per-app changes to the catalogue entry, e.g. `{ hrms: { preRelease: false } }` once it ships. */ overrides?: Partial>>>; } /** The catalogue as a ready `AppSwitcher` list: pre-release filtering, per-app `urls` and `overrides`, then `buildSuiteApps`. */ export declare const resolveSuiteApps: ({ currentAppId, isProduction, urls, overrides, ...urlOptions }: ResolveSuiteAppsOptions) => AppOption[];