import type { EventObject } from 'cytoscape'; import type { MenuItemOption } from './constants'; export interface Scratchpad { cxtMenuItemClasses: string; cxtMenuClasses: string; submenuIndicatorGen: () => HTMLImageElement; currentCyEvent?: EventObject; [key: string]: unknown; } export declare class MenuItem extends HTMLButtonElement { onMenuItemClick: (event: Event) => void; data: Record; clickFns: (() => void)[]; selector: string; hasTrailingDivider?: boolean; show: boolean; coreAsWell: boolean; scratchpad: Scratchpad; onClickFunction?: (event: EventObject) => void; submenu?: MenuItemList; indicator?: HTMLImageElement; mouseEnterHandler?: (event: MouseEvent) => void; mouseLeaveHandler?: (event: MouseEvent) => void; constructor(params: MenuItemOption, onMenuItemClick: (event: Event) => void, scratchpad: Scratchpad); bindOnClickFunction(onClickFn: () => void): void; unbindOnClickFunctions(): void; enable(): void; disable(): void; hide(): void; getHasTrailingDivider(): boolean; setHasTrailingDivider(status: boolean): void; hasSubmenu(): boolean; appendSubmenuItem(menuItem: MenuItem, before?: Element): void; isClickable(): boolean; display(): void; isVisible(): boolean; removeSubmenu(): void; detachSubmenu(): void; _onMouseEnter(_event: MouseEvent): void; _onMouseLeave(event: MouseEvent): void; _createSubmenu(items?: MenuItemOption[]): void; _getMenuItemClassStr(classStr: string, hasTrailingDivider?: boolean): string; static define(): void; } export declare class MenuItemList extends HTMLDivElement { onMenuItemClick: (event: Event) => void; scratchpad: Scratchpad; constructor(onMenuItemClick: (event: Event) => void, scratchpad: Scratchpad); hide(): void; display(): void; isVisible(): boolean; hideMenuItems(): void; hideSubmenus(): void; appendMenuItem(menuItem: MenuItem, before?: Element): void; moveBefore(menuItem: MenuItem, before: MenuItem): void; removeAllMenuItems(): void; _removeImmediateMenuItem(menuItem: MenuItem): void; _detachImmediateMenuItem(menuItem: MenuItem): boolean; _performBindings(menuItem: MenuItem): void; _bindOnClick(onClickFn: (event: EventObject) => void): () => void; static define(): void; } export declare class ContextMenu extends MenuItemList { constructor(onMenuItemClick: () => void, scratchpad: Scratchpad); removeMenuItem(menuItem: MenuItem): void; appendMenuItem(menuItem: MenuItem, before?: Element): void; insertMenuItem(menuItem: MenuItem, { before, parent }?: { before?: MenuItem; parent?: MenuItem; }): void; moveBefore(menuItem: MenuItem, before: MenuItem): void; moveToSubmenu(menuItem: MenuItem, parent?: MenuItem | null, options?: { selector?: string; coreAsWell?: boolean; } | null): void; ensureDoesntContain(id: string): void; static define(): void; }