import * as _angular_core from '@angular/core'; import { TemplateRef, Signal } from '@angular/core'; import { ZIcon } from '@shival99/z-ui/components/z-icon'; interface ZMenuItemTemplateContext { $implicit: ZMenuItem; close: () => void; } type ZMenuOverlayType = 'dark' | 'blur'; interface ZMenuItem { id: string; name: string; icon?: ZIcon; iconSvg?: string; parent?: string[]; active?: boolean; expanded?: boolean; children?: ZMenuItem[]; permission?: string[]; path: string; level?: number; subPaths?: string[]; projects?: string[]; menuTemplate?: TemplateRef; menuTemplateWidth?: number; renderChildren?: boolean; renderExpanded?: boolean; groupLabel?: string; } type ZMenuV2Item = Omit & { children?: ZMenuV2Item[]; }; type ZMenuV2ExpandMode = 'accordion' | 'multiple'; interface ZMenuProcessed { tree: ZMenuItem[]; flat: Map; pathMap: Map; subPathMap: Map; parentMap: Map; } interface ZMenuUser { name: string; email: string; avatar?: string; } interface ZMenuUserAction { id: string; label: string; icon?: ZIcon; disabled?: boolean; hidden?: boolean; divide?: 'before' | 'after'; class?: string; } interface ZMenuControl { openMobileMenu: () => void; closeMobileMenu: () => void; toggleMobileMenu: () => void; setSelectedMenuItem: (menuId: string) => void; clearActiveItem: () => void; toggleSidebar: () => void; openMobileTemplateDrawer: (parentId: string) => void; closeMobileTemplateDrawer: () => void; sidebarCollapsed: Signal; mobileMenuOpen: Signal; mobileTemplateDrawerOpen: Signal; selectedMenuItem: Signal; selectedParent: Signal; menuProcessed: Signal; } type ZMenuV2Control = Omit; declare class ZMenuComponent { private readonly _breakpointObserver; private readonly _destroyRef; private readonly _platformId; private readonly _router; readonly zOnSelect: _angular_core.OutputEmitterRef; readonly zOnMenuAction: _angular_core.OutputEmitterRef; readonly zControl: _angular_core.OutputEmitterRef; readonly zLogo: _angular_core.InputSignal; readonly zLogoMobile: _angular_core.InputSignal; readonly zMenus: _angular_core.InputSignal; readonly zUser: _angular_core.InputSignal; readonly zUserActions: _angular_core.InputSignal; readonly zActionsTemplate: _angular_core.InputSignal void; }> | null>; readonly zCurrentPath: _angular_core.InputSignal; readonly zKey: _angular_core.InputSignal; readonly selectedParent: _angular_core.WritableSignal; readonly selectedMenuItem: _angular_core.WritableSignal; readonly mobileMenuOpen: _angular_core.WritableSignal; readonly mobileTemplateDrawerOpen: _angular_core.WritableSignal; readonly sidebarCollapsed: _angular_core.WritableSignal; private readonly _templateDrawerParentId; protected readonly closeSidebarFn: () => void; protected readonly closeMobileDrawerFn: () => void; private readonly _isMobile$; readonly isMobile: _angular_core.Signal; protected readonly mobileLogo: _angular_core.Signal; private readonly _routerPath; private readonly _currentPath; protected readonly overlayType: _angular_core.Signal; protected readonly menuProcessed: _angular_core.Signal; protected readonly menuParents: _angular_core.Signal; protected readonly menuChildren: _angular_core.Signal; protected readonly selectedParentHasNoChild: _angular_core.Signal; protected readonly parentWithActiveChild: _angular_core.Signal; protected isParentOfActiveItem(item: ZMenuItem): boolean; protected readonly avatarSrc: _angular_core.Signal; protected readonly customDrawerParent: _angular_core.Signal; private readonly _defaultSidebarChildWidth; private readonly _defaultMobileDrawerWidth; protected readonly sidebarChildWidth: _angular_core.Signal; protected readonly mobileCustomDrawerWidth: _angular_core.Signal; constructor(); private _emitControl; openMobileMenu(): void; closeMobileMenu(): void; toggleMobileMenu(): void; openMobileTemplateDrawer(parentId: string): void; closeMobileTemplateDrawer(): void; setSelectedMenuItem(menuId: string): void; clearActiveItem(): void; protected selectParent(item: ZMenuItem): void; protected onDesktopParentClick(item: ZMenuItem): void; protected onMenuItemClick(item: ZMenuItem): void; protected onMobileParentClick(item: ZMenuItem): void; protected toggleSidebar(): void; protected closeSidebar(): void; protected onUserActionClick(action: ZMenuUserAction): void; protected getVisibleUserActions(): ZMenuUserAction[]; protected shouldShowDividerBefore(action: ZMenuUserAction, index: number): boolean; protected shouldShowDividerAfter(action: ZMenuUserAction, index: number): boolean; protected onBackdropClick(): void; private _findMenuItemById; private _findParentOfMenuItem; private _isChildOf; private _expandParentsOfItem; private _processMenus; private _findMenuItemByPath; private _getStateMenuCollapsed; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ZMenuV2Component { private readonly _breakpointObserver; private readonly _destroyRef; private readonly _platformId; private readonly _router; readonly zOnSelect: _angular_core.OutputEmitterRef; readonly zOnMenuAction: _angular_core.OutputEmitterRef; readonly zControl: _angular_core.OutputEmitterRef; readonly zLogo: _angular_core.InputSignal; readonly zLogoMobile: _angular_core.InputSignal; readonly zMenus: _angular_core.InputSignal; readonly zUser: _angular_core.InputSignal; readonly zUserActions: _angular_core.InputSignal; readonly zCurrentPath: _angular_core.InputSignal; readonly zKey: _angular_core.InputSignal; readonly zClass: _angular_core.InputSignal; readonly zTitle: _angular_core.InputSignal; readonly zCollapsedWidth: _angular_core.InputSignal; readonly zExpandedWidth: _angular_core.InputSignal; readonly zExpandMode: _angular_core.InputSignal; readonly zShowMobileBar: _angular_core.InputSignal; readonly selectedParent: _angular_core.WritableSignal; readonly selectedMenuItem: _angular_core.WritableSignal; readonly mobileMenuOpen: _angular_core.WritableSignal; readonly sidebarCollapsed: _angular_core.WritableSignal; private readonly _expandedIds; private readonly _collapsedIds; private readonly _renderedOpeningIds; private readonly _renderedClosingIds; private readonly _activeCacheKey; private readonly _hasSyncedInitialPath; private readonly _openingRenderTimers; private readonly _closingRenderTimers; protected readonly zClasses: _angular_core.Signal; private readonly _isMobile$; readonly isMobile: _angular_core.Signal; protected readonly mobileLogo: _angular_core.Signal; protected readonly effectiveTitle: _angular_core.Signal; protected readonly avatarSrc: _angular_core.Signal; protected readonly visibleUserActions: _angular_core.Signal; private readonly _routerPath; private readonly _currentPath; protected readonly overlayType: _angular_core.Signal; protected readonly menuProcessed: _angular_core.Signal; protected readonly menuParents: _angular_core.Signal; protected readonly parentWithActiveChild: _angular_core.Signal; constructor(); openMobileMenu(): void; closeMobileMenu(): void; toggleMobileMenu(): void; setSelectedMenuItem(menuId: string): void; clearActiveItem(): void; protected toggleSidebar(): void; protected onMenuItemClick(item: ZMenuItem): void; protected onCollapsedLeafClick(item: ZMenuItem, close: () => void): void; protected onCollapsedParentClick(item: ZMenuItem): void; protected onMobileBackdropClick(): void; protected onUserActionClick(action: ZMenuUserAction): void; private _emitControl; private _selectLeafItem; private _toggleExpanded; private _startOpeningRender; private _keepSubmenuRenderedDuringClose; private _stopClosingRender; private _expandParentsOfItem; private _processMenus; private _findMenuItemByPath; private _findDeepestPrefixMatch; private _getStateMenuCollapsed; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { ZMenuComponent, ZMenuV2Component }; export type { ZMenuControl, ZMenuItem, ZMenuItemTemplateContext, ZMenuProcessed, ZMenuUser, ZMenuUserAction, ZMenuV2Control, ZMenuV2ExpandMode, ZMenuV2Item };