import { LitElement } from 'lit'; import type { Placement, Strategy } from '@floating-ui/dom'; import type { MenuItem } from './menu-item.js'; declare const Base: Constructor & Constructor & Constructor & typeof LitElement; interface MenuSelectDetail { item: MenuItem; index: number; } export type MenuSelectEvent = CustomEvent; interface ItemFocusDetail { item: MenuItem; } export type MenuItemFocusEvent = CustomEvent; /** * @csspart menu * @csspart items * * @fires {Event} open - Fires when the menu is opened. * @fires {Event} close - Fires when the menu is closed. * @fires {MenuSelectEvent} select - Fires when an item is selected. * @fires {MenuItemFocusEvent} item-focus - Fires when an item is focused * * TODO: handle slotchange */ export declare class Menu extends Base { #private; readonly _durations: { show: number; hide: number; }; readonly _scrollPadding: number; type: string; open: boolean; quick: boolean; offset: number; align: Placement; alignStrategy: Strategy; keepOpenBlur: boolean; keepOpenSelect: boolean; keepOpenClickAway: boolean; noFocusControl: boolean; tabIndex: number; $menu: HTMLElement; slotItems: Array; get $items(): MenuItem[]; private $lastFocused; render(): import("lit-html").TemplateResult<1>; renderItemSlot(): import("lit-html").TemplateResult<1>; private readonly popoverController; private readonly listController; connectedCallback(): void; disconnectedCallback(): void; protected updated(changed: Map): void; get currentIndex(): number; focusFirstItem(): void; focusLastItem(): void; focusItem(item: MenuItem): void; show(): void; close(): void; } export declare const MenuActions: { Close: number; CloseSelect: number; First: number; Last: number; Next: number; Open: number; PageDown: number; PageUp: number; Previous: number; Select: number; Type: number; }; export declare function filterOptions(options: string[], filter: string, exclude?: string[]): string[]; export declare function getActionFromKey(event: KeyboardEvent, menuOpen: boolean): number; export declare function getUpdatedIndex(currentIndex: number, maxIndex: number, action: number): number; export declare function scrollItemIntoView(menu: HTMLElement, item: HTMLElement, paddingY?: number): void; export {};