import { LitElement, TemplateResult, CSSResult } from 'lit'; import { DropdownMenuSelectionMode } from './selection-manager.js'; declare global { interface HTMLElementTagNameMap { 'forge-ai-dropdown-menu-item': ForgeAiDropdownMenuItemComponent; } } /** * @summary An item component for use within ai-dropdown-menu with submenu support. * * @description * This component represents an individual item within a dropdown menu and supports * advanced features including submenus, configurable selection states, and * accessibility-compliant interactions. * * ## Features * - **Selection States**: Supports none, single, and multi-selection modes * - **Submenu Support**: Can contain nested dropdown menus with configurable triggers * - **Accessibility**: Complete ARIA implementation with proper roles and states * - **Configurable Behavior**: Customizable submenu trigger timing and behavior * - **Rich Content**: Supports text, descriptions, icons, and custom content * * ## Submenu Configuration * The component supports three submenu trigger modes: * - **'hover'**: Opens on mouse hover (default) * - **'click'**: Opens on click/tap * - **'both'**: Opens on both hover and click * * @cssproperty --forge-ai-dropdown-menu-item-selection-icon-size - Size of selection and submenu icons. * * @slot - The default slot for item text content. * @slot description - The description slot for additional item details. * @slot start - The start icon slot. * @slot end - The end icon slot. * @slot submenu - The slot for nested dropdown menu components. * * @example * ```html * * Basic Item * * * * Detailed Item * Additional information * * * * * Parent Item * * Child 1 * Child 2 * * * ``` */ export declare class ForgeAiDropdownMenuItemComponent extends LitElement { #private; static styles: CSSResult; /** * The value associated with this menu item. */ value: string; /** * Whether this menu item is selected. */ selected: boolean; /** * Whether this menu item is disabled. */ disabled: boolean; /** * The selection mode for this menu item. * This is typically set by the parent dropdown menu component. */ selectionMode: DropdownMenuSelectionMode; /** * The trigger behavior for submenu opening. * - 'hover': Opens on mouse hover (default) * - 'click': Opens on click * - 'both': Opens on both hover and click */ submenuTrigger: 'hover' | 'click' | 'both'; /** * The delay in milliseconds before opening a submenu on hover. */ submenuOpenDelay: number; /** * The delay in milliseconds before closing a submenu when mouse leaves. */ submenuCloseDelay: number; private _descriptionSlottedNodes; private _defaultSlottedNodes; private _childSubmenu; private _submenuOpen; private _hoverTimeout; private _leaveTimeout; connectedCallback(): void; disconnectedCallback(): void; updated(changedProperties: Map): void; private _updateSubmenuAttributes; private _updateSubmenuState; private _onMouseEnter; private _onMouseLeave; private _onItemClick; private _onKeyDown; private _clearAllTimeouts; private _focusFirstSubmenuItem; private _updateRole; private get _hasDescriptionContent(); private get _shouldShowSelectionIcon(); private get _shouldReserveSelectionSpace(); private get _hasSubmenu(); /** * Gets the text content from the default slot (label text only). */ get labelText(): string; private get _selectionIcon(); private readonly _submenuArrowIcon; render(): TemplateResult; }