import NileElement from '../internal/nile-element'; import type { CSSResultGroup } from 'lit'; import type NileMenuItem from '../nile-menu-item/nile-menu-item'; /** * An nile-menu element. * @summary Menus provide a list of options for the user to choose from. * * @slot - The menu's content, including menu items, menu labels, and dividers. * * @event nile-select - Emitted when a menu item is selected. * @fires count-changed - Indicates when the count changes * @slot - This element has a slot * @csspart button - The button */ export declare class NileMenu extends NileElement { static styles: CSSResultGroup; searchValue: string; searchWidth: number; searchEnabled: boolean; customSearch: boolean; showNoResults: boolean; allowSpaceKey: boolean; noResultsMessage: string; defaultSlot: HTMLSlotElement; private readonly hasSlotController; connectedCallback(): void; private handleClick; private handleKeyDown; private handleMouseDown; private handleSlotChange; private isMenuItem; /** @internal Gets all slotted menu items, ignoring dividers, headers, and other elements. */ getAllItems(): NileMenuItem[]; /** * @internal Gets the current menu item, which is the menu item that has `tabindex="0"` within the roving tab index. * The menu item may or may not have focus, but for keyboard interaction purposes it's considered the "active" item. */ getCurrentItem(): NileMenuItem | undefined; /** * @internal Sets the current menu item to the specified element. This sets `tabindex="0"` on the target element and * `tabindex="-1"` to all other items. This method must be called prior to setting focus on a menu item. */ setCurrentItem(item: NileMenuItem): void; private handleSearchChange; render(): import("lit-html").TemplateResult<1>; } export default NileMenu; declare global { interface HTMLElementTagNameMap { 'nile-menu': NileMenu; } }