import { default as CxBadge } from '../../../atoms/src/components/badge/badge.ts';
import { default as CxIcon } from '../../../atoms/src/components/icon/icon.ts';
import { default as CxMenu } from '../../../atoms/src/components/menu/menu.ts';
import { default as CxMenuItem } from '../../../atoms/src/components/menu-item/menu-item.ts';
import { default as CxPopup } from '../../../atoms/src/components/popup/popup.ts';
import { default as CxSpace } from '../../../atoms/src/components/space/space.ts';
import { default as CxTooltip } from '../../../atoms/src/components/tooltip/tooltip.ts';
import { default as CortexElement } from '../../../base/src/cortex-element.ts';
import { AutocompleteItem } from '../../../types/src/comment';
import { TemplateResult } from 'lit';

/**
 * @summary Displays and manages mention autocomplete options.
 * @description Renders a popup menu of mention candidates, supports keyboard navigation, and notifies consumers when an item is selected.
 *
 * @csspart base - The popup base part exposed by `cx-popup`.
 */
export default class CxMentions extends CortexElement {
    static readonly styles: import('lit').CSSResult;
    static readonly dependencies: {
        'cx-badge': typeof CxBadge;
        'cx-icon': typeof CxIcon;
        'cx-menu': typeof CxMenu;
        'cx-menu-item': typeof CxMenuItem;
        'cx-popup': typeof CxPopup;
        'cx-space': typeof CxSpace;
        'cx-tooltip': typeof CxTooltip;
    };
    active: boolean;
    anchor: CxPopup['anchor'] | undefined;
    items: AutocompleteItem[];
    searchTerm: string;
    noItemsMessage: string;
    onSelect: ((value: {
        id: string;
        label: string;
        type?: string;
    } | undefined, key?: 'Enter') => void) | undefined;
    selectedIndex: number;
    private handleSelect;
    private handleUp;
    private handleDown;
    handleEnter(): void;
    handleKeyDown(event: KeyboardEvent): boolean;
    handleItemsChange(): void;
    handleSelectedIndexChange(): Promise<void>;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-mentions': CxMentions;
    }
}
