import { LitElement } from 'lit';
import type DropdownItem from './DropdownItem.js';
export interface DropdownMenuProps {
    name?: string;
    header?: boolean;
    checkbox?: boolean;
    icon?: boolean;
    symbol?: string;
    favorites?: boolean;
    shortcuts?: boolean;
    emptyMessage?: string;
}
declare const DropdownMenu_base: (new (...args: any[]) => import("../../util/RovingTabindexMixin.js").RovingTabindexInterface) & (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
/**
 * A menu container component that provides keyboard navigation and ARIA menu semantics.
 *
 * Contains `btu-dropdown-item` children and manages roving tabindex, typeahead search,
 * and keyboard navigation following the WAI-ARIA Menu Button Pattern.
 *
 * @element btu-dropdown-menu
 *
 * @fires {CustomEvent} btu-dropdown-menu-ready - Fired after first render
 *
 * @slot - Menu items (`btu-dropdown-item` elements)
 *
 * @cssprop --dropdown-empty-color - Empty state text color (default: gray-400)
 *
 * @example
 * ```html
 * <btu-dropdown-menu name="Sort By" header checkbox>
 *   <btu-dropdown-item label="Name" selected></btu-dropdown-item>
 *   <btu-dropdown-item label="Date"></btu-dropdown-item>
 *   <btu-dropdown-item label="Size"></btu-dropdown-item>
 * </btu-dropdown-menu>
 * ```
 */
export default class DropdownMenu extends DropdownMenu_base {
    /**
     * Accessible name for the menu, displayed in header when header is true.
     * @attr
     */
    name: string;
    /**
     * Show header bar with menu name.
     * @attr
     */
    header: boolean;
    /**
     * Enable checkbox mode for items (menuitemcheckbox role).
     * @attr
     */
    checkbox: boolean;
    /**
     * Show icons before each item.
     * @attr
     */
    icon: boolean;
    /**
     * Fallback Lucide icon symbol for items without their own.
     * @attr
     */
    symbol: string;
    /**
     * Show favorite toggle on each item.
     * @attr
     */
    favorites: boolean;
    /**
     * Show keyboard shortcut text on each item.
     * @attr
     */
    shortcuts: boolean;
    /**
     * Message displayed when the menu has no focusable items.
     * @attr empty-message
     */
    emptyMessage: string;
    /** @internal */
    private _typeaheadBuffer;
    /** @internal */
    private _typeaheadTimeout;
    createRenderRoot(): this;
    /** @internal Override: return menuitem elements from focusable items */
    _getRovingTargets(): HTMLElement[];
    connectedCallback(): void;
    disconnectedCallback(): void;
    firstUpdated(): void;
    updated(): void;
    /** Configure all child items with menu-level settings */
    private _configureItems;
    /** Get all btu-dropdown-item children */
    private _getAllItems;
    /** Get only focusable items (default type, skip dividers/subheads) */
    private _getFocusableItems;
    /** @internal Focus a specific item by updating tabindex */
    focusItem(item: DropdownItem): void;
    /** @internal Focus the first non-disabled focusable item (or first checked in checkbox mode) */
    focusFirst(): void;
    /** @internal Focus the last non-disabled focusable item */
    focusLast(): void;
    /** @internal */
    private _handleKeydown;
    /** Typeahead character matching with 500ms accumulation */
    private _handleTypeahead;
    /** Check whether the menu has zero focusable items */
    private get _isEmpty();
    render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'btu-dropdown-menu': DropdownMenu;
    }
}
export {};
//# sourceMappingURL=DropdownMenu.d.ts.map