import { ItemsElement } from '../Abstracts/Items/ItemsElement';
import { IDataListElementProps } from './IDataListElementProps';
import type { IDataListItemDefinition } from './IDataListItemDefinition';
declare const DataListElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new () => ItemsElement<{}>) & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Data List - A structured list component for displaying tabular data with configurable columns.
 *
 * @description
 * The Data List component provides a flexible way to display tabular data in a list format.
 * It supports dynamic item definitions with configurable columns, alternating row styles, and
 * data binding from various sources. Each row is rendered as a list item with cells corresponding
 * to the defined item definitions. The component is ideal for displaying structured data sets
 * where each record has multiple fields that need to be presented in a consistent format.
 *
 * @name Data List
 * @element mosaik-data-list
 * @category Selectors
 *
 * @csspart list - The inner list container element
 *
 * @cssprop {String} --data-list-font-family - The list font family CSS custom property.
 * @cssprop {String} --data-list-font-letter-spacing - The list font letter spacing CSS custom property.
 * @cssprop {String} --data-list-font-line-height - The list font line height CSS custom property.
 * @cssprop {String} --data-list-font-size - The list font size CSS custom property.
 * @cssprop {String} --data-list-font-text-decoration - The list font text decoration CSS custom property.
 * @cssprop {String} --data-list-font-text-transform - The list font text transform CSS custom property.
 * @cssprop {String} --data-list-font-weight - The list font weight CSS custom property.
 * @cssprop {String} --data-list-gap - The list gap CSS custom property.
 * @cssprop {String} --data-list-padding-bottom - The list padding bottom CSS custom property.
 * @cssprop {String} --data-list-padding-left - The list padding left CSS custom property.
 * @cssprop {String} --data-list-padding-right - The list padding right CSS custom property.
 * @cssprop {String} --data-list-padding-top - The list padding top CSS custom property.
 * @cssprop {String} --data-list-shadow - The list shadow CSS custom property.
 * @cssprop {String} --data-list-shadow-blur - The list shadow blur CSS custom property.
 * @cssprop {String} --data-list-shadow-color - The list shadow color CSS custom property.
 * @cssprop {String} --data-list-shadow-offset-x - The list shadow offset x CSS custom property.
 * @cssprop {String} --data-list-shadow-offset-y - The list shadow offset y CSS custom property.
 * @cssprop {String} --data-list-shadow-spread - The list shadow spread CSS custom property.
 * @cssprop {String} --data-list-transition-duration - The list transition duration CSS custom property.
 * @cssprop {String} --data-list-transition-mode - The list transition mode CSS custom property.
 * @cssprop {String} --data-list-transition-property - The list transition property CSS custom property.
 * @cssprop {String} --data-list-translate - The list translate CSS custom property.
 *
 * @fires connected {ConnectedEvent} - Fired when the data list is connected to the DOM
 * @fires changed {PropertyChangedEvent} - Fired when data list properties change
 *
 * @dependency mosaik-list - The List element.
 * @dependency mosaik-list-item - The List Item element.
 * @dependency mosaik-text - The Text element.
 *
 * @example
 * Basic data list with item definitions:
 * ```html
 * <mosaik-data-list id="userList"></mosaik-data-list>
 * <script>
 *   const list = document.getElementById('userList');
 *   list.itemDefinitions = [
 *     { key: 'name', pathFn: 'name' },
 *     { key: 'email', pathFn: 'email' },
 *     { key: 'role', pathFn: 'role' }
 *   ];
 *   list.source = [
 *     { name: 'John Doe', email: 'john@example.com', role: 'Admin' },
 *     { name: 'Jane Smith', email: 'jane@example.com', role: 'User' }
 *   ];
 * </script>
 * ```
 *
 * @example
 * Data list with alternating rows:
 * ```html
 * <mosaik-data-list alternating id="products"></mosaik-data-list>
 * <script>
 *   const list = document.getElementById('products');
 *   list.itemDefinitions = [
 *     { key: 'sku', pathFn: 'sku' },
 *     { key: 'product', pathFn: 'name' },
 *     { key: 'price', pathFn: 'price' }
 *   ];
 *   list.source = productData;
 * </script>
 * ```
 *
 * @public
 */
export declare class DataListElement extends DataListElement_base implements IDataListElementProps {
    private _alternating;
    private _itemDefinitions;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `alternating` property.
     *
     * @public
     * @attr
     */
    get alternating(): boolean;
    set alternating(value: boolean);
    /**
     * Gets or sets the `itemDefinitions` property.
     *
     * @public
     */
    get itemDefinitions(): Array<IDataListItemDefinition>;
    set itemDefinitions(value: Array<IDataListItemDefinition>);
    /**
     * @template
     * @private
     */
    getItemDefinitions(): Array<IDataListItemDefinition>;
}
/**
 * @public
 */
export declare namespace DataListElement {
    type Props = IDataListElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-data-list': DataListElement;
    }
}
export {};
//# sourceMappingURL=DataListElement.d.ts.map