export interface IMenuItem {
    label: string;
    disabled: boolean;
}
export interface ITextMenuItem extends IMenuItem {
    sublabel?: string;
    onClick: () => void;
}
export interface ISubMenuItem extends IMenuItem {
    submenu: IContextMenuData;
}
export declare type IMenuItemGroup = Array<ITextMenuItem | ISubMenuItem>;
export declare type IContextMenuData = IMenuItemGroup[];
export interface IContextMenuProps {
}
export interface IContextMenuReactContext {
    showContextMenu: (data: (ITextMenuItem | ISubMenuItem)[][] | Promise<(ITextMenuItem | ISubMenuItem)[][]>, pos?: IPosition) => {
        onShow: (cb: any) => void;
        onClose: (cb: any) => void;
        update: (newData: (ITextMenuItem | ISubMenuItem)[][]) => void;
        close: () => void;
        isActive: () => boolean;
    };
    hideContextMenu: () => void;
    pos: {
        x: number;
        y: number;
    };
    visible: boolean;
    data: any[];
}
export interface IPosition {
    x: number;
    y: number;
}
