import { EventEmitter } from '../../stencil-public-runtime'; import type { NavChromeStyle } from '../../shell/nav-chrome'; import type { BarNavTab } from './bar-nav-types'; export declare class BarNav { /** Style slot: `dashboard` or `settings`. Colors match for now. */ navStyle: NavChromeStyle; el: HTMLElement; /** * Tab items for the left section. * Set via JS property: `el.tabs = [...]`. Replace the array reference to update. */ tabs: BarNavTab[]; /** ID of the currently active tab. Overridden when `currentUrl` + `basePath` are set. */ value: string; /** * Fallback heading shown when no tabs are provided. * When tabs are present the heading is hidden. */ heading: string | undefined; /** Section base path (e.g. `/dashboard/safety`). Used with `currentUrl` to derive `value`. */ basePath: string; /** Current route URL. When set with `basePath`, the active tab is derived automatically. */ currentUrl: string; moreTabsLabel: string; /** Emitted when the active tab changes. Detail = tab id. */ dsTabChange: EventEmitter; private resolvedTabs; private urlDerivedValue; private hideTabsForDetailRoute; private tabsCollapsed; private menuOpen; private menuTriggerActive; /** When false, defer showing expanded tabs or the collapsed trigger until intrinsic width is measured (avoids a one-frame flash of the full tab row on narrow viewports). */ private tabLayoutCommitted; private visibleTabs; private overflowTabs; private menuInitialFocusVisible; private overflowRovingFocused; private focusedTabId; private static readonly HOST_PROP_SYNC_BUDGET; private static readonly INTRINSIC_WIDTH_RETRY_MAX; private static readonly TAB_LAYOUT_COMMIT_MAX_FRAMES; private static readonly OVERFLOW_HYSTERESIS_PX; private headerEl; private triggerEl; private menuEl; private visibleTabListEl; private probeTabListEl; private resizeObserver; private intrinsicWidthRetryCount; private tabLayoutPendingFrames; private readonly panelNavTransition; private readonly panelToolsTransition; private readonly overflowCoalescer; private chromeTransitionShell; /** Matches `basePath` once tabs + URL are reconciled for the active section. */ private committedSection; /** Section waiting for URL + tabs to catch up after a cross-area navigation. */ private pendingSection; private get effectiveValue(); private get renderedSelectableTabs(); private get hasOverflowTabs(); private syncFocusedTabId; private digestTabsConfig; private resetTabOverflowLayout; onHostPropsChange(): void; onSelectionChange(): void; onMenuOpenChange(open: boolean): void; onTabsCollapsedChange(collapsed: boolean, prevCollapsed: boolean | undefined): void; componentWillLoad(): void; componentDidLoad(): void; componentDidRender(): void; disconnectedCallback(): void; private bindChromeTransitionListeners; private unbindChromeTransitionListeners; private onChromeTransitionStart; private chromeOverflowPaused; private onChromeTransitionEnd; /** Re-resolve props assigned by the host after componentWillLoad (Angular ngAfterViewInit). */ private syncHostPropsIfNeeded; /** Poll across animation frames — host props may land without triggering @Watch. */ private scheduleDeferredHostPropSync; private setupOverflowObserver; private scheduleOverflowCheck; /** Width available for the tab row or collapsed trigger. */ private getLeftZoneAvailableWidth; private getTabsIntrinsicWidth; private getHeaderGap; private getOverflowTriggerReserveWidth; private getProbeTabMetrics; private setOverflowTabLayout; private scheduleIntrinsicWidthRetry; private forceTabLayoutCommit; private updateTabsCollapsed; private syncMenuAnchor; private handleMenuSelect; private handleMenuClose; private handleMenuAfterClose; /** Batch tabs/basePath/currentUrl updates so URL derivation never runs with a mixed section. */ private incomingTabs; private applyHostProps; private syncMenuSections; private syncValueFromUrl; private selectTab; /** Move focus to the selected tab in the visible tab group (after expand). */ private focusVisibleSelectedTab; private focusVisibleTab; private focusLastVisibleTab; private findEnabledVisibleTab; private handleTabKeyDown; private toggleTabMenu; private handleOverflowFocus; private handleOverflowBlur; private handleTriggerKeyDown; private renderTabList; render(): any; } //# sourceMappingURL=BarNav.d.ts.map