import { EventEmitter } from "../../stencil-public-runtime";
import { Options } from "@popperjs/core";
import { IcThemeMode } from "../../utils/types";
export declare class PopoverMenu {
    private anchorEl;
    private ARIA_LABEL;
    private backButton?;
    private currentFocus;
    private popoverMenuEls;
    private popperInstance;
    el: HTMLIcPopoverMenuElement;
    openingFromChild: boolean;
    openingFromParent: boolean;
    popperProps: Partial<Options>;
    /**
     * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.
     */
    anchor?: string;
    /**
     * Setting to `true` can help in situations where tooltip content is clipped by a parent element.
     */
    fixedPositioning: boolean;
    /**
     * @internal The parent popover menu of a child popover menu.
     */
    parentLabel?: string;
    /**
     * @internal The parent popover menu of a child popover menu.
     */
    parentPopover?: HTMLIcPopoverMenuElement;
    /**
     * The unique identifier for a popover submenu.
     */
    submenuId?: string;
    /**
     * @internal The level of menu being displayed.
     */
    submenuLevel?: number;
    /**
     * Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
     */
    theme?: IcThemeMode;
    /**
     * If `true`, the popover menu will be displayed.
     */
    open?: boolean | undefined;
    watchOpenHandler(): void;
    /**
     * Emitted when the popover menu is closed.
     */
    icPopoverClosed: EventEmitter<HTMLIcMenuItemElement>;
    disconnectedCallback(): void;
    componentDidLoad(): void;
    componentWillRender(): void;
    componentDidRender(): void;
    handleMenuItemClick(ev: CustomEvent<HTMLIcMenuItemElement>): void;
    handleSubmenuChange(ev: Event): void;
    handleClick(ev: Event): void;
    handleKeyDown(ev: KeyboardEvent): void;
    /**
     * @internal Opens the menu from the child menu.
     */
    openFromChild(): Promise<void>;
    /**
     * @internal Opens the menu from the parent menu.
     */
    openFromParent(): Promise<void>;
    private setButtonFocus;
    private findAnchorEl;
    private isNotPopoverMenuEl;
    /**
     * @internal Close the menu, emit icPopoverClosed of the root popover
     * @param setFocusToAnchor when true return focus to anchor element when menu is closed
     */
    closeMenu(setFocusToAnchor?: boolean, menuElement?: HTMLIcMenuItemElement): Promise<void>;
    /**
     * @internal This method allows props to be added to the PopperJS createPopper instance outside of the popover menu
     * @param props object - createPopper props set externally
     */
    setExternalPopperProps<T extends Partial<Options>>(props: T): Promise<void>;
    private getNextItemToSelect;
    private addMenuItems;
    private getMenuAriaLabel;
    private handleBackButtonClick;
    private initPopperJS;
    render(): any;
}
