import * as React from 'react';
import { type CSSProperties } from 'react';
import { type Menu_Model, type MenuListener } from "./MenuModule.js";
import { BaseComponent } from "../../core/BaseComponent.js";
export type MenuPosition = {
    left: number;
    top: number;
} | {
    left: number;
    bottom: number;
} | {
    right: number;
    top: number;
} | {
    right: number;
    bottom: number;
};
type State = {
    element?: Menu_Model;
};
export declare class PopupMenu extends BaseComponent<{}, State> implements MenuListener {
    overlayRef: React.RefObject<HTMLDivElement>;
    __onMenuDisplay: (element: Menu_Model) => void;
    __onMenuHide: (id: string) => void;
    componentDidMount(): void;
    componentDidUpdate(): void;
    componentWillUnmount(): void;
    stopClickCascading: (e: MouseEvent) => void;
    closeMenu: (e: MouseEvent) => void;
    style: (pos: MenuPosition, css?: CSSProperties) => CSSProperties;
    render(): React.JSX.Element | null;
    private eventListenersEffect;
}
export {};
//# sourceMappingURL=PopupMenu.d.ts.map