import { IUserMenuItemModel, IBadgeModel } from './IUserMenuItem'; import { DeepReadonly } from '../Components/Core'; import { ILayoutBreakpoint } from '../Helpers/Index'; export interface UserMenuItemClickEvent { readonly item: DeepReadonly; readonly originalEvent: UIEvent; cancel?: boolean; } export interface IUserMenuOptions { container: HTMLElement; userName: string; userAvatar: string; items: IUserMenuItemModel[]; collapseBreakpoint?: ILayoutBreakpoint; getDisplayedUserInfo?: (userName: string) => string; onItemClick?: (e: UserMenuItemClickEvent) => void; } export declare class UserMenu { protected static defaultGetDisplayedUserInfo: (userName: string) => string; private readonly container; private readonly userName; private readonly userAvatar; private readonly getDisplayedUserInfo; private readonly collapseBreakpoint; private readonly windowResizeListener; private readonly onLayoutBreakpointChangedListener; private readonly onItemClick; private items; private _root; private mobileContentContainer; private desktopRootDropdown; private desktopContentContainer; private desktopContentTrigger; private userInfoContainer; private userInfoDivider; private itemsContainer; get root(): HTMLElement; constructor(options: IUserMenuOptions); render(): never; addItems(items: IUserMenuItemModel[]): void; insertItems(items: IUserMenuItemModel[], position: number): void; updateItems(items: IUserMenuItemModel[]): void; get menuItems(): IUserMenuItemModel[]; getBadge(itemName: string): IBadgeModel | null; setBadge(itemName: string, badge: IBadgeModel): void; protected get isMobileView(): boolean; protected renderMainElements(): void; protected renderUserInfo(): never; protected renderItems(): never; protected createItemElement(item: IUserMenuItemModel, isMobile: boolean): HTMLLIElement; protected createItemElementBase(): HTMLLIElement; protected attachEventsToItem(itemElement: HTMLElement, item: IUserMenuItemModel): void; protected switchView(isMobile: boolean): void; protected applyMobileViewForUserInfo(): void; protected applyDesktopViewForUserInfo(): void; protected applyMobileViewForItems(): void; protected applyDesktopViewForItems(): void; protected clearItemsContainer(): void; protected emitItemClick(e: UserMenuItemClickEvent): void; private onLayoutBreakpointChanged; private onMenuItemClick; }