import { Coordinate } from 'ol/coordinate.js';
import IGirafeContext from '../../../tools/context/icontext.js';
export declare enum EntryInteractionType {
    ENABLED = 0,
    DISABLED = 1,
    NOT_SHOWN = 2
}
export type MenuEntry = {
    entry: string;
    callback: (e: MouseEvent, mapCoordinate: Coordinate) => void;
    prepare?: (e: MouseEvent, mapCoordinate: Coordinate) => EntryInteractionType;
};
/**
 * Show a simple context menu when clicking on the map
 */
export declare class ContextMenu {
    name: string;
    private _active;
    private readonly isExclusive;
    private readonly overlay;
    private readonly container;
    private readonly openEventListener;
    private readonly closeEventListener;
    private readonly context;
    private readonly menuEntries;
    private menuEntryDivs;
    private get map();
    constructor(context: IGirafeContext, menuEntries?: MenuEntry[], isExclusive?: boolean, openCondition?: (evt: PointerEvent | MouseEvent, mapCoordinate: Coordinate) => boolean);
    get visible(): boolean;
    get active(): boolean;
    setActive(active: boolean): void;
    private enable;
    private disable;
    private handleContextmenuEvent;
    updateMenuEntries(): void;
    prepareMenuEntries(evt: PointerEvent | MouseEvent, mapCoordinate: Coordinate): void;
    openMenu(mapCoordinates: Coordinate): void;
    closeMenu(): void;
    onClickMenuEntry(evt: PointerEvent | MouseEvent, callback: (e: PointerEvent | MouseEvent, mapCoordinate: Coordinate) => void): void;
    remove(): void;
}
