import '../../styles/ContextMenu.scss';
import { ColDef } from 'ag-grid-community';
import { CellContextMenuEvent } from 'ag-grid-community';
import { ReactElement } from 'react';
import { GridBaseRow } from '../types';
export interface GridContextMenuComponentProps<TData extends GridBaseRow, Context extends object = object> {
    selectedRows: TData[];
    clickedRow: TData;
    colDef: ColDef;
    close: () => void;
    event?: CellContextMenuEvent;
    context?: Context;
}
export type GridContextMenuComponent<TData extends GridBaseRow, Context extends object = object> = (props: GridContextMenuComponentProps<TData, Context>) => ReactElement | null;
export interface useGridContextMenuProps<TData extends GridBaseRow, Context extends object = object> {
    contextMenuSelectRow?: boolean;
    contextMenu?: GridContextMenuComponent<TData, Context>;
    context?: Context;
}
export declare const useGridContextMenu: <TData extends GridBaseRow, Context extends object = object>({ contextMenuSelectRow, contextMenu: ContextMenu, context, }: useGridContextMenuProps<TData, Context>) => {
    openMenu: (e: PointerEvent | null | undefined) => void;
    cellContextMenu: (event: CellContextMenuEvent) => void;
    contextMenuComponent: import("react").JSX.Element | null;
};
