import type { CamundaApp } from '../../utils/camunda.types'; import type { BreadcrumbDescriptor } from './use-c3-navigation-v2'; export interface UseClusterWebappBreadcrumbsOptions { /** The app currently being viewed. */ currentApp: CamundaApp; /** * Per-app URL map matching the shape of `Cluster['endpoints']`. Source for * the modeler back-links on the org/cluster crumb labels, and the sole * source for the app-switcher dropdown when no SaaS cluster is available. */ webappLinks?: Partial>; } /** * Builds the standard breadcrumb chain for a cluster-scoped Camunda webapp: * * [Org ▾] > [Cluster ▾] > [App ▾] * * - **Org crumb**: shown when org data is available (SaaS). Label links back * to web modeler for the current org. Dropdown switches orgs and lands on * web modeler scoped to the selected org. Dropdown only renders when there * is at least one sibling org and the current cluster exposes a modeler * endpoint to derive sibling URLs from. * - **Cluster crumb**: shown when cluster data is available. Label links back * to web modeler / console at the cluster level. Dropdown switches clusters * while staying on `currentApp`, filtered to clusters that expose an * endpoint for that app (alias-aware via `getEndpointForApp`). * - **App crumb**: always shown. Dropdown switches between sibling apps on * the same cluster (filtered to apps with endpoints). * * Each dropdown follows the breadcrumb convention: clicking the label * navigates, clicking the chevron opens the dropdown. Items are listed in * source order with the current entry marked `isSelected`. Crumbs and * dropdowns are omitted when the underlying data is unavailable, so the same * hook works for both SaaS (full chain) and Self-Managed (partial or single * crumb) without any environment flag. */ export declare function useClusterWebappBreadcrumbs(options: UseClusterWebappBreadcrumbsOptions): BreadcrumbDescriptor[];