//@ts-ignore
import { Coordinates, DropdownItem, DropdownMenuProps, Size } from '@grapecity/core-ui';
//@ts-ignore
import { AppContextType } from '@grapecity/core-ui';
/// <reference path="../vendor/react/react.d.ts" />
//@ts-ignore
import * as React from 'react';
export declare const noop: () => any;
export type ContextMenuAPI = {
    open: ContextMenuProvider['open'];
    close: ContextMenuProvider['close'];
};
export type ContextMenuOptions = Omit<DropdownMenuProps, 'align' | 'offset' | 'parent' | 'onItemClick'>;
export type ContextMenuProps = {
    /** HTML data-aid attribute for the dropdown menu */
    dataAid?: string;
    /** Size of dropdown items */
    size?: Size;
};
type ContextMenuState = {
    showMenu: boolean;
    mousePosition: Coordinates;
};
export declare class ContextMenuProvider extends React.Component<ContextMenuProps, ContextMenuState> {
//@ts-ignore
    static contextType: React.Context<import("@grapecity/core-ui/lib/types/utils").AppContextValue>;
    context: AppContextType;
    private _menu;
    private _menuProps;
    private _onItemClick;
    state: {
        showMenu: boolean;
        mousePosition: {
            x: number;
            y: number;
        };
    };
    componentDidMount(): void;
    open: (mousePosition: Coordinates, items?: DropdownItem[], onItemClick?: ((item: DropdownItem) => void) | undefined, options?: ContextMenuOptions) => void;
    close: () => void;
    onItemClick: (item: DropdownItem) => void;
    getNode: () => HTMLDivElement | null;
    getSafeZone: () => any;
    getMenuNode: () => any;
    onNavigation: () => any;
    getPositionerNode: () => any;
    updateMenuPosition: () => any;
    render(): false | React.JSX.Element;
}
export {};
