import { MenuItem } from './types';
export interface MenuOptions {
    onClick?: (itemData: MenuItem, value: string) => void;
}
export declare class DOMTreeMenu {
    private container;
    private menuData;
    private onClick?;
    private activeSubmenus;
    private boundMouseEnterHandler;
    private boundMouseLeaveHandler;
    private boundClickHandler;
    constructor(container: HTMLElement, menuData?: MenuItem[], options?: MenuOptions);
    private createMenu;
    private createMenuItem;
    private createSubmenu;
    private createElement;
    private bindEvents;
    private handleMouseEvent;
    private handleHover;
    private handleLeave;
    private hideSiblingSubmenus;
    private showSubmenu;
    private hideSubmenu;
    private hideAllChildSubmenus;
    private handleClick;
    private findMenuItem;
    positionMenu(e: MouseEvent): void;
    destroy(): void;
    /**
     * 删除指定值的菜单项
     * @param value 要删除的菜单项的值
     * @returns 是否成功删除
     */
    removeMenuItem(value: string): boolean;
    /**
     * 删除指定值的子菜单项
     * @param value 要删除的子菜单项的值
     * @returns 是否成功删除
     */
    removeSubMenuItem(value: string): boolean;
    private cleanupAllSubmenus;
    private cleanupSubmenuRecursively;
}
