import { EventEmitter } from '../../stencil-public-runtime'; import type { NavChromeStyle } from '../../shell/nav-chrome'; import type { PanelToolsToolId } from '../PanelTools/panel-tools-types'; import type { BreadcrumbSelectDetail } from '../Breadcrumb/breadcrumb-types'; import { type ShellGradientPreset } from '../../shell/shell-gradient-presets'; import { type MobileDestination, type ShellResponsiveMode } from '../../shell/shell-responsive'; import type { PanelNavUserActionDetail } from '../PanelNav/panel-nav-types'; import type { ShellAppComposition, ShellNavigationConfig, ShellPageChromeConfig, ShellToolsConfig } from './shell-app-types'; import type { PaperTextureConfig } from '../PaperTexture/paper-texture-types'; export declare class ShellApp { private static readonly FOREGROUND_REFRESH_MS; /** Managed renders the complete responsive chrome; slotted exposes the advanced composition. */ composition: ShellAppComposition; /** Router-owned navigation data used by managed composition. */ navigation: ShellNavigationConfig; /** Route-owned page title and section data used by managed composition. */ pageChrome: ShellPageChromeConfig; /** Product-owned global tool definitions used by managed composition. */ tools: ShellToolsConfig; /** Chrome style propagated to slotted `ds-panel-nav` and `ds-bar-nav`. */ navStyle: NavChromeStyle; /** * Shell chrome wash preset. `none` renders solid chrome; the remaining * presets use token-based washes that adapt to the active color theme. */ gradientPreset: ShellGradientPreset; /** Optional decorative Paper Design texture layered above the shell wash. */ paperTexture?: PaperTextureConfig; /** When `true` (default), registers global shell keyboard shortcuts. `[` toggles panel nav; `]` closes tools; K, A, S, M, N, and / toggle tool drawers. Modifiers are ignored so browser chords like ⌘N stay native. */ shortcutsEnabled: boolean; /** Controlled mobile surface shown above the persistent bottom bar. */ mobileDestination: MobileDestination; /** Controlled full-stage Mobile Sheet Nav state. */ mobileSheetNavOpen: boolean; /** Emitted after crossing the fixed 768px or 1200px shell boundaries. */ dsResponsiveModeChange: EventEmitter<{ mode: ShellResponsiveMode; }>; /** Managed primary-navigation intent; the application router performs navigation. */ dsNavSelect: EventEmitter; /** Managed desktop BarNav or mobile section-selection intent. */ dsTabChange: EventEmitter; /** Managed page-subsection intent from BarTitle or MobileHeader. */ dsSubsectionChange: EventEmitter; /** Managed page-level Back intent. */ dsPageBack: EventEmitter; /** Managed breadcrumb intent from BarTitle. */ dsBreadcrumbSelect: EventEmitter; /** Managed page action intent from BarTitle. */ dsPageAction: EventEmitter; /** Managed tools selection state. */ dsToolChange: EventEmitter<{ id: PanelToolsToolId; selected: boolean; }>; /** Managed tool-header Back intent. */ dsHeaderBack: EventEmitter<{ tool: PanelToolsToolId; }>; /** Managed tool-header action intent. */ dsHeaderAction: EventEmitter<{ tool: PanelToolsToolId; id: string; }>; /** Managed drawer/fullscreen presentation state. */ dsPresentationChange: EventEmitter<{ presentation: 'drawer' | 'fullscreen'; }>; /** Managed mobile Dashboard/Settings browsing intent. */ dsBrowseContextChange: EventEmitter; /** Managed account-footer action intent. */ dsNavFooterAction: EventEmitter; /** Managed user/account trigger intent. */ dsNavUserAction: EventEmitter; el: HTMLElement; private toolsFullscreen; private resolvedMode; private managedToolsOpen; private managedActiveTool; private managedToolPresentation; private managedMobileDestination; private managedMobileSheetNavOpen; private managedInboxTool; private managedBrowseContext; private resizeObserver; private hasLoaded; private foregroundRefreshTimer; private readonly panelNavTransition; private readonly chromeSyncCoalescer; private panelWidthTokens; private cachedViewportWidth; private cachedViewportHeight; private onWindowResize; private onVisualViewportChange; private get managed(); private get effectiveMobileDestination(); private get effectiveMobileSheetNavOpen(); private get resolvedNavigationGroups(); private get resolvedToolItems(); private get availableInboxTools(); componentWillLoad(): void; componentDidLoad(): void; handleToolsPresentation(event: CustomEvent<{ presentation?: string; }>): void; disconnectedCallback(): void; onShellPropsChange(): void; handleNavigationChange(): void; handleToolsChange(): void; onMobileStateChange(_next: unknown, previous: unknown): void; private updateResponsiveMode; private onChromeTransitionStart; private onChromeTransitionEnd; /** Coalesce ResizeObserver bursts to one layout read per frame. */ private scheduleChromeSync; private syncSlottedNavStyle; private syncSlottedMobileState; private connectMetricsObserver; private connectViewportListeners; private disconnectViewportListeners; private connectPageLifecycleListeners; private disconnectPageLifecycleListeners; private onDocumentVisibilityChange; private onPageShow; private cancelForegroundRefresh; private refreshAfterForegroundRestore; private cachePanelWidthTokens; private applyGradientVars; private clearGradientPaintVars; /** Panel/bar wash offsets for scroll fades and badge rings. */ private syncChromeLayoutVars; private resolvePanelWidthPx; /** Fixed-attachment wash/grid size — always the viewport, never the shell element box. */ private resolveViewportDimensions; private chromeLayerActive; private gradientLayerActive; private paperTextureLayerActive; handleWindowKeyDown(e: KeyboardEvent): void; /** Open or toggle a managed global tool from application-owned UI. */ activateTool(id: PanelToolsToolId): Promise; /** Close whichever managed global surface is currently visible. */ closeGlobalSurface(): Promise; /** Request drawer or fullscreen presentation for the active managed tool. */ setToolPresentation(presentation: 'drawer' | 'fullscreen'): Promise; private handleManagedNavSelect; private handleManagedTabChange; private handleManagedPageBack; private handleManagedBreadcrumbSelect; private handleManagedSubsectionChange; private handleManagedPageAction; private handleManagedToolChange; private handleManagedPresentationChange; private handleManagedHeaderBack; private handleManagedHeaderAction; private handleManagedSheetToggle; private activateManagedMobileTool; private handleManagedMobileDestination; private handleManagedAreaSelect; private handleManagedBrowseContext; private handleManagedSheetClose; private handleManagedNavFooterAction; private handleManagedNavUserAction; private get currentArea(); private toolDot; private syncChrome; private syncPaperTextureLayout; private renderPaperTexture; private renderManagedPanelNav; private renderManagedBarNav; private renderManagedToolSlots; private renderManagedTools; private renderManagedMobileSheetNav; private renderManagedMobileBarNav; private renderManagedMobileLeading; private renderManagedMobileActions; private renderManagedPage; private renderSlottedShell; render(): any; } //# sourceMappingURL=ShellApp.d.ts.map