import { type CellCoordinate, type Region } from "../../regions"; export type ContextMenuRenderer = (context: MenuContext) => React.JSX.Element; export interface MenuContext { /** * Returns an array of `Region`s that represent the user-intended context * of this menu. If the mouse click was on a selection, the array will * contain all selected regions. Otherwise it will have one `Region` that * represents the clicked cell (the same `Region` from `getTarget`). */ getRegions: () => Region[]; /** * Returns the list of selected `Region` in the table, regardless of * where the users clicked to launch the context menu. For the user- * intended regions for this context, use `getRegions` instead. */ getSelectedRegions: () => Region[]; /** * Returns a region containing the single cell that was clicked to launch * this context menu. */ getTarget: () => Region; /** * Returns an array containing all of the unique, potentially non- * contiguous, cells contained in all the regions from `getRegions`. The * cell coordinates are sorted by rows then columns. */ getUniqueCells: () => CellCoordinate[]; } export declare class MenuContextImpl implements MenuContext { private target; private selectedRegions; private numRows; private numCols; private regions; constructor(target: Region, selectedRegions: Region[], numRows: number, numCols: number); getTarget(): Region; getSelectedRegions(): Region[]; getRegions(): Region[]; getUniqueCells(): CellCoordinate[]; }