import { IContextMenu, IContextMenuItem } from './IContextMenuItem.js';
export interface IContextMenuOptions {
    defaultIcon?: string;
    subIcon?: string;
    mouseOffset?: number;
    shadowRoot?: ShadowRoot | Document;
    mode?: 'normal' | 'undo';
}
export declare class ContextMenu implements IContextMenu {
    private static _contextMenuCss;
    static count: number;
    private static _openedContextMenus;
    menu: IContextMenuItem[];
    options?: IContextMenuOptions;
    context: any;
    private num;
    private _menuElement;
    constructor(menu: IContextMenuItem[], options?: IContextMenuOptions, context?: any);
    reload(): void;
    renderLevel(level: IContextMenuItem[]): HTMLUListElement;
    display(event: MouseEvent): void;
    _windowResize(): void;
    _windowDown(e: MouseEvent): boolean;
    _windowKeyUp(e: KeyboardEvent): void;
    static show(menu: IContextMenuItem[], event: MouseEvent, options?: IContextMenuOptions, context?: any): ContextMenu;
    close(): void;
    static closeAll(): void;
    private configurePopoverSubmenu;
    private markUndoItems;
    private closeSiblingSubmenus;
    private hideDescendantSubmenus;
    private openPopoverSubmenu;
    private showPopover;
    private hidePopover;
    private isPopoverOpen;
    private positionMenu;
    private positionSubmenuPopover;
}
