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;
}