import { default as Column } from '../../core/column/Column';
import { default as Module } from '../../core/Module';
import { default as Tabulator } from '../../core/Tabulator';

export default class Menu extends Module {
    static moduleName: string;
    menuContainer: HTMLElement | null;
    nestedMenuBlock: ReturnType<typeof setTimeout> | false;
    currentComponent: any;
    rootPopup: any;
    columnSubscribers: Record<string, (e: Event, column: Column) => void>;
    constructor(table: Tabulator);
    initialize(): void;
    deprecatedOptionsCheck(): void;
    initializeRowWatchers(): void;
    initializeGroupWatchers(): void;
    initializeColumn(column: Column): void;
    initializeColumnHeaderMenu(column: Column): void;
    loadMenuTableCellEvent(option: string, e: Event, cell: any): void;
    loadMenuTableColumnEvent(option: string, e: Event, column: any): void;
    loadMenuEvent(menu: any, e: Event, component: any): void;
    loadMenu(e: Event, component: any, menu: any[], parentEl?: HTMLElement, parentPopup?: any): void;
}
