import { LitElement, type TemplateResult } from 'lit';
import type NavigationItem from './NavigationItem.js';
import { AriaCurrent } from '../../../types/aria.js';
/**
 * NavigationList
 *
 * A semantic, accessible navigation container for `ui-navigation-item` elements.
 * Handles keyboard navigation (roving tabindex), focus management, and ARIA roles.
 *
 * ## Usage Example
 *
 * ```html
 * <ui-navigation aria-label="Main navigation" current="page">
 *   <ui-navigation-item selected>
 *     <span slot="icon" aria-hidden="true">🏠</span>
 *     Home
 *   </ui-navigation-item>
 *   <ui-navigation-item>
 *     <span slot="icon" aria-hidden="true">🔍</span>
 *     Search
 *   </ui-navigation-item>
 *   <ui-navigation-item>
 *     <span slot="icon" aria-hidden="true">📁</span>
 *     Files
 *   </ui-navigation-item>
 *   <ui-navigation-item iconOnly disabled aria-disabled="true" tabindex="-1">
 *     <span slot="icon" aria-hidden="true">⚙️</span>
 *   </ui-navigation-item>
 * </ui-navigation>
 * ```
 *
 * @slot - Place `ui-navigation-item` elements as direct children.
 * @fires select - Dispatched when an item is selected via click or keyboard.
 *                 The `detail` object contains the selected `item`.
 */
export default class Navigation extends LitElement {
    /**
     * Orientation of the navigation: 'horizontal' or 'vertical'.
     * @attribute
     */
    accessor orientation: 'horizontal' | 'vertical';
    /**
     * The current item in the navigation, used for ARIA attributes.
     * Can be 'page', 'step', 'location', 'date', 'time', 'true', 'false', or ''.
     * @attribute
     */
    accessor current: AriaCurrent;
    /**
     * Query all ui-navigation-item children
     */
    accessor _items: NavigationItem[];
    render(): TemplateResult;
    constructor();
    firstUpdated(): void;
    private _onSlotChange;
    /**
     * Sets the initial `tabindex` for the items. The first selected item,
     * or the first item if none are selected, receives `tabindex="0"`.
     * All other items receive `tabindex="-1"`.
     */
    private _setupItems;
    private _getEnabledItems;
    private _onClick;
    private _selectItem;
    private _updateFocus;
    private _onKeyDown;
}
//# sourceMappingURL=Navigation.d.ts.map