import { IRendered } from '../Core'; import { INavigationMenuItemModel } from '../../Header'; export interface IMenuItem { text: string; icon?: string; items?: IMenuItem[]; url?: string; hidden?: boolean; active?: boolean; disabled?: boolean; title?: string; menuItemEl?: HTMLElement | undefined; originalModel: INavigationMenuItemModel; } export interface MenuItemClickEvent { readonly item: IMenuItem; readonly originalEvent: UIEvent; } export interface IMenuOptions { container: HTMLElement; items: IMenuItem[]; onItemClick?: (e: MenuItemClickEvent) => void; } export declare abstract class Menu implements IRendered { protected readonly container: HTMLElement; protected items: IMenuItem[]; protected readonly onItemClick: ((e: MenuItemClickEvent) => void) | undefined; protected root: HTMLElement | undefined; constructor(options: IMenuOptions); abstract render(): void; updateItems(items: IMenuItem[]): void; protected emitItemClick(e: MenuItemClickEvent): void; }