import { Menu, IMenuOptions, IMenuItem } from './Menu'; import { ILayoutBreakpoint, WindowResizeListener } from '../../Helpers/Index'; export declare enum CollapsingMode { Disabled = 0, Collapsed = 1, Expanded = 2, AdaptiveCollapsing = 3 } type ItemActionMode = 'hover' | 'click'; export interface IBootstrapCollapsingMenuOptions extends IMenuOptions { itemAction?: ItemActionMode; collapsingMode?: CollapsingMode; collapseBreakpoint?: ILayoutBreakpoint; collapseIcon?: string; } export declare class BootstrapCollapsingMenu extends Menu { protected static HOVER_MODE_CSS_CLASS: string; protected static adaptivityCollapsingDelay: number; protected readonly itemActionMode: ItemActionMode; protected readonly collapsingMode: CollapsingMode; protected readonly collapseIconName: string; protected readonly collapseBreakpoint: ILayoutBreakpoint; protected readonly windowResizeListener: WindowResizeListener; protected readonly onWindowResizeEventHandler: () => void; protected readonly onToggleDropdownButtonClickHandler: (e: MouseEvent) => void; protected readonly onToggleDropdownButtonMouseEnterHandler: (e: MouseEvent) => void; protected collapseRoot: HTMLElement | undefined; protected collapseButton: HTMLElement | undefined; protected collapseDropdown: HTMLElement | undefined; protected currentOpeningSubMenu: HTMLElement | undefined; constructor(options: IBootstrapCollapsingMenuOptions); render(): never; updateItems(items: IMenuItem[]): Error; applyAdaptivityCollapsing(): void; updateActiveItemsState(): void; closeOpenedDropdown(targetElement: HTMLElement): void; protected forEachMenuItemRecursive(rootItems: IMenuItem[], action: (item: IMenuItem) => void): void; protected renderRoot(): void; protected renderItems(): void; protected changeDefaultDropdownBehaviorForNestedDropdown(): void; protected renderCollapseElements(): never; protected renderRootItems(): never; protected createRootItemWithNestedItems(item: IMenuItem & { items: IMenuItem[]; }): HTMLLIElement; protected createRootItemElement(item: IMenuItem): HTMLLIElement; protected createNestedSubMenuItemElement(item: IMenuItem & { items: IMenuItem[]; }): HTMLLIElement; protected createNestedItem(item: IMenuItem): HTMLLIElement; protected createDropdownMenu(item: IMenuItem & { items: IMenuItem[]; }): HTMLUListElement; protected createItemIconElement(item: IMenuItem): HTMLElement; protected setItemContentAsDropdownToggler(itemContent: HTMLElement): void; protected applyStatesToItemElement(itemElement: HTMLElement, item: IMenuItem): void; protected attachEventsToItem(itemElement: HTMLElement, item: IMenuItem): void; protected isNestedItemsOwnerItem(item: IMenuItem): item is IMenuItem & { items: IMenuItem[]; }; protected moveRootItemsToCollapseDropdown(rootItemOrItems: Element | Iterable): void; protected moveRootItemsToRoot(rootItemOrItems: Element | Iterable): void; protected applyCollapsingViewForRootItem(rootItem: Element): void; protected applyExpandedViewForRootItem(rootItem: Element): void; protected isNeedCollapse(): boolean; protected isDropdownRectsIntersect(dropdownRect1: ClientRect, dropdownRect2: ClientRect, delta?: number): boolean; protected applyShadowsForOverlapingDropdownIfNeeded(openedDropdownElement: HTMLElement): void; protected onWindowResize(): void; protected onToggleDropdownButtonClick(e: MouseEvent): void; protected onToggleDropdownButtonMouseEnter(e: MouseEvent): void; } export {};