import { Module } from "@intuitionrobotics/ts-common";
import { type MenuPosition } from "./PopupMenu.js";
import { type _GenericRenderer, Adapter } from "../../components/adapter/Adapter.js";
import { type BaseRendererMap } from "../../components/adapter/BaseRenderer.js";
import { type CSSProperties } from "react";
export declare const resolveRealPosition: (button: HTMLImageElement) => MenuPosition;
export type _Menu<Rm extends BaseRendererMap<any>> = _GenericRenderer<Rm>;
export type Menu_Model = {
    id: string;
    adapter: Adapter;
    pos: MenuPosition;
    onNodeClicked?: (path: string, item: any) => void;
    onNodeDoubleClicked?: (...args: any[]) => any;
    css?: CSSProperties;
};
export interface MenuListener {
    __onMenuDisplay: (menu: Menu_Model) => void;
    __onMenuHide: (id: string) => void;
}
export declare class MenuModule_Class extends Module<{}> {
    constructor();
    private showMenu;
    private hideMenu;
    show: (model: Menu_Model) => void;
    hide: (id: string) => void[];
}
export declare const MenuModule: MenuModule_Class;
export declare class MenuBuilder {
    private readonly adapter;
    private readonly position;
    private readonly cssContainer?;
    private id;
    private onNodeClicked?;
    private onNodeDoubleClicked?;
    constructor(menu: Adapter, position: MenuPosition, cssContainer?: CSSProperties);
    show(): void;
    setId(id: string): this;
    setOnClick(func: (path: string, item: any) => void): this;
    setOnDoubleClick(func: (...args: any[]) => any): this;
}
//# sourceMappingURL=MenuModule.d.ts.map