import { Module } from "@intuitionrobotics/ts-common";
import { MenuPosition } from "./PopupMenu";
import { _GenericRenderer, Adapter } from "../../components/adapter/Adapter";
import { BaseRendererMap } from "../../components/adapter/BaseRenderer";
import { 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?: Function;
    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: Function): this;
}
