import type { IGroup } from './../../vrender';
import type { MenuListItem } from '../../ts-types';
import { Group } from '../graphic/group';
import type { BaseTableAPI } from '../../ts-types/base-table';
export declare enum MenuType {
    'dropDown' = "dropDown",
    'contextmenu' = "contextmenu",
    'custom' = "custom"
}
type MenuInfo = MenuListItem[];
export declare class MenuHandler {
    private _table;
    private _menuInstance;
    private _menuInfo;
    constructor(table: BaseTableAPI);
    bindTableComponent(componentGroup: Group): void;
    release(): void;
    attach(x: number, y: number, col: number, row: number, type: MenuType, menuInfo?: MenuInfo): void;
    updateMenuInfo(col: number, row: number, type: MenuType, menuInfo: MenuListItem[], highlightIndex: number): void;
    checkDropDownMenuChange(col: number, row: number): boolean;
    checkContextMenuChange(x: number, y: number): boolean;
    updateMenuInstance(menuInfo: MenuInfo, highlightIndex: number): void;
    updatePosition(x: number, y: number): void;
    addToScene(): void;
    detach(): void;
    getMenuInfo(col: number, row: number, type: MenuType): {
        menuInfo: MenuListItem[];
        highlightIndex: number;
    };
    bindEvent(): void;
    getEventInfo(target: IGroup): {
        col: number;
        row: number;
        menuKey: string;
        dropDownIndex: number;
        text: string;
        highlight: boolean;
    };
    get bounds(): import("@visactor/vutils").IBounds;
}
export {};
