import { PropertyValues, TemplateResult } from 'lit';
import UiList from '../../list/internals/List.js';
import UiMenuItem from './MenuItem.js';
import UiSubMenu from './SubMenu.js';
import UiListItem from '../../list/internals/ListItem.js';
/**
 * Material Design 3 Menu component with sub-menu support.
 * Uses Popover API and Anchor Positioning API for modern positioning.
 *
 * @fires select - Dispatched when a menu item is selected
 * @fires close - Dispatched when the menu is closed
 * @fires open - Dispatched when the menu is opened
 */
export default class Menu extends UiList {
    /**
     * Whether the menu is currently open
     * @attribute
     */
    accessor open: boolean;
    /**
     * Whether the menu is disabled
     * @attribute
     */
    accessor disabled: boolean;
    /**
     * Whether to select menu items when they are activated.
     * When true, clicking or pressing Enter/Space on a menu item will mark it as selected.
     * When false (default), menu items will not be marked as selected when activated.
     *
     * Note, this is different than `selectActive` as this property controls the class names
     * set on the menu item.
     * @attribute
     */
    accessor selectOnActivate: boolean;
    /**
     * Currently active sub-menu
     */
    accessor activeSubMenu: UiSubMenu | null;
    constructor();
    connectedCallback(): void;
    protected updated(changedProperties: PropertyValues<this>): void;
    togglePopover(force?: boolean): boolean;
    protected queryMenuItems(): UiMenuItem[];
    show(): void;
    hide(): void;
    /**
     * Shows the menu
     */
    showPopover(): void;
    /**
     * Hides the menu
     */
    hidePopover(): void;
    positionMenu(): void;
    /**
     * Handles beforetoggle event from popover
     */
    protected handleBeforeToggle(e: Event): void;
    /**
     * Handles keyboard navigation for the menu
     */
    handleKeydown(e: KeyboardEvent): void;
    handleSubMenuSelect(e: CustomEvent): void;
    /**
     * Opens the sub-menu for the currently active item
     */
    protected openSubMenu(): void;
    /**
     * Closes the currently open sub-menu
     */
    closeSubMenu(): void;
    /**
     * Sets the active sub-menu
     */
    setActiveSubMenu(subMenu: UiSubMenu | null): void;
    notifySelect(item: UiListItem & {
        selected?: boolean;
    }, index?: number): boolean;
    /**
     * Clears selection from all menu items
     */
    protected clearSelection(): void;
    /**
     * Gets the currently selected menu item
     */
    get selectedItem(): UiMenuItem | null;
    /**
     * Sets the selected menu item
     */
    setSelectedItem(item: UiMenuItem | null): void;
    /**
     * Handles sub-menu opening
     */
    protected handleSubMenuOpen(e: CustomEvent): void;
    /**
     * Handles slot changes to update menu items
     */
    protected handleSlotChange(): void;
    render(): TemplateResult;
}
//# sourceMappingURL=Menu.d.ts.map