import { SelectionMode } from '../../../Types/SelectionMode';
import { SelectorElement } from '../Abstracts/Selector/SelectorElement';
import type { IListElementProps } from './IListElementProps';
import { ListElementIntl } from './ListElementIntl';
import { ListItemElement } from './ListItemElement';
declare const ListElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Filterable").IFilterableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Insetable").IInsetableProps) & (abstract new () => SelectorElement<any>) & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * List - A versatile container component for displaying collections of interactive items in organized layouts.
 *
 * Presents ordered or unordered collections of related content items with support for selection,
 * filtering, grouping, and navigation. Optimized for accessibility and keyboard interaction
 * with flexible styling options for various content types.
 *
 * @name ListElement
 * @element mosaik-list
 * @category Selectors
 *
 * @slot - Default content area for list items and groups
 * @slot empty - Empty state content when no items are available
 * @slot filter - Filter controls and search functionality area
 * @slot footer - Footer content below the list items
 * @slot header - Header content above the list items
 *
 * @csspart empty - Empty state container
 * @csspart filter - Filter controls container
 * @csspart items - Container for all list items
 *
 * @cssprop {String} --list-background-color - The background color CSS custom property.
 * @cssprop {String} --list-border-color - The border color CSS custom property.
 * @cssprop {String} --list-border-radius - Border radius for list styling
 * @cssprop {String} --list-border-style - The border style CSS custom property.
 * @cssprop {String} --list-border-width - The border width CSS custom property.
 * @cssprop {String} --list-font-family - The font family CSS custom property.
 * @cssprop {String} --list-font-letter-spacing - The font letter spacing CSS custom property.
 * @cssprop {String} --list-font-line-height - The font line height CSS custom property.
 * @cssprop {String} --list-font-size - The font size CSS custom property.
 * @cssprop {String} --list-font-text-decoration - The font text decoration CSS custom property.
 * @cssprop {String} --list-font-text-transform - The font text transform CSS custom property.
 * @cssprop {String} --list-font-weight - The font weight CSS custom property.
 * @cssprop {String} --list-foreground-color - The foreground color CSS custom property.
 * @cssprop {String} --list-gap - The gap CSS custom property.
 * @cssprop {String} --list-padding-bottom - The padding bottom CSS custom property.
 * @cssprop {String} --list-padding-left - The padding left CSS custom property.
 * @cssprop {String} --list-padding-right - The padding right CSS custom property.
 * @cssprop {String} --list-padding-top - The padding top CSS custom property.
 * @cssprop {String} --list-shadow - The shadow CSS custom property.
 * @cssprop {String} --list-shadow-blur - The shadow blur CSS custom property.
 * @cssprop {String} --list-shadow-color - The shadow color CSS custom property.
 * @cssprop {String} --list-shadow-offset-x - The shadow offset x CSS custom property.
 * @cssprop {String} --list-shadow-offset-y - The shadow offset y CSS custom property.
 * @cssprop {String} --list-shadow-spread - The shadow spread CSS custom property.
 * @cssprop {String} --list-transition-duration - The transition duration CSS custom property.
 * @cssprop {String} --list-transition-mode - The transition mode CSS custom property.
 * @cssprop {String} --list-transition-property - The transition property CSS custom property.
 * @cssprop {String} --list-translate - The translate CSS custom property.
 *
 * @dependency mosaik-spacer - The Spacer element.
 * @dependency mosaik-textbox - The Textbox element.
 *
 * @example
 * ```html
 * <!-- Simple navigation list -->
 * <mosaik-list>
 *   <mosaik-list-item value="dashboard">
 *     <mosaik-icon slot="prefix"></mosaik-icon>
 *     Dashboard
 *   </mosaik-list-item>
 *   <mosaik-list-item value="analytics">
 *     <mosaik-icon slot="prefix"></mosaik-icon>
 *     Analytics
 *   </mosaik-list-item>
 *   <mosaik-list-item value="settings">
 *     <mosaik-icon slot="prefix"></mosaik-icon>
 *     Settings
 *   </mosaik-list-item>
 * </mosaik-list>
 *
 * <!-- Multi-select list with filter -->
 * <mosaik-list selection-mode="multiple" show-filter>
 *   <mosaik-list-item-group header="Favorites">
 *     <mosaik-list-item value="john">
 *       John Smith
 *       <mosaik-text slot="suffix">john@example.com</mosaik-text>
 *     </mosaik-list-item>
 *   </mosaik-list-item-group>
 *   <mosaik-list-item-group header="Colleagues">
 *     <mosaik-list-item value="jane">Jane Doe</mosaik-list-item>
 *     <mosaik-list-item value="mike">Mike Johnson</mosaik-list-item>
 *   </mosaik-list-item-group>
 * </mosaik-list>
 *
 * <!-- Action list with suffix descriptions -->
 * <mosaik-list>
 *   <mosaik-list-item value="export">
 *     <mosaik-icon slot="prefix"></mosaik-icon>
 *     Export Data
 *     <mosaik-text slot="suffix" variant="caption">Download your data as CSV</mosaik-text>
 *   </mosaik-list-item>
 *   <mosaik-list-item value="import">
 *     <mosaik-icon slot="prefix"></mosaik-icon>
 *     Import Data
 *     <mosaik-text slot="suffix" variant="caption">Upload data from file</mosaik-text>
 *   </mosaik-list-item>
 * </mosaik-list>
 * ```
 *
 * @public
 *
 * @keyhandle ArrowUp - Navigates to the previous item
 * @keyhandle ArrowDown - Navigates to the next item
 * @keyhandle Home - Navigates to the first item
 * @keyhandle End - Navigates to the last item
 * @keyhandle Space - Toggles selection of the focused item
 * @keyhandle Enter - Activates the focused item
 */
export declare class ListElement extends ListElement_base implements IListElementProps {
    private readonly _provider;
    private readonly _itemsClickSubscriptions;
    private readonly _intlController;
    private _selectionMode;
    private _value;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @override
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `selectionMode` property.
     *
     * @public
     * @attr
     */
    get selectionMode(): SelectionMode;
    set selectionMode(value: SelectionMode);
    /**
     * Gets or sets the `value` property.
     *
     * @public
     * @attr
     */
    get value(): string | null;
    set value(value: string | null);
    /**
     * Gets all the list items in the list.
     *
     * @public
     * @override
     */
    get items(): Array<ListItemElement>;
    /**
     * Returns the `intl` property.
     *
     * @public
     * @readonly
     */
    get intl(): ListElementIntl;
    /**
     * @protected
     * @override
     */
    protected onItemsChanged(): void;
    /**
     * @protected
     */
    protected onSelectionModePropertyChanged(prev?: SelectionMode, next?: SelectionMode): void;
    /**
     * @protected
     */
    protected onFilterPropertyChanged(_?: string, next?: string): void;
    /**
     * @private
     */
    private onSelectItem;
}
/**
 * @public
 */
export declare namespace ListElement {
    type Props = IListElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-list': ListElement;
    }
}
export {};
//# sourceMappingURL=ListElement.d.ts.map