import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _List, { ListAccessibilityAttributes } from '@ui5/webcomponents/dist/List.js';
export { ListAccessibilityAttributes } from '@ui5/webcomponents/dist/List.js';
import { UI5CustomEvent } from '@ui5/webcomponents-base';
import ListItemBase from '@ui5/webcomponents/dist/ListItemBase.js';

declare class List implements AfterViewInit {
    /**
     * Defines the component header text.
  
  **Note:** If `header` is set this property is ignored.
     */
    headerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the footer text.
     */
    footerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Determines whether the component is indented.
     */
    indent: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the selection mode of the component.
     */
    selectionMode: _angular_core.InputSignal<"None" | "Single" | "SingleStart" | "SingleEnd" | "SingleAuto" | "Multiple" | "Delete" | undefined>;
    /**
     * Defines the text that is displayed when the component contains no items.
     */
    noDataText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the item separator style that is used.
     */
    separators: _angular_core.InputSignal<"None" | "All" | "Inner" | undefined>;
    /**
     * Defines whether the component will have growing capability either by pressing a `More` button,
  or via user scroll. In both cases `load-more` event is fired.
  
  **Restrictions:** `growing="Scroll"` is not supported for Internet Explorer,
  on IE the component will fallback to `growing="Button"`.
     */
    growing: _angular_core.InputSignal<"None" | "Button" | "Scroll" | undefined>;
    /**
     * Defines the text that will be displayed inside the growing button.
  
  **Note:** If not specified a built-in text will be displayed.
  
  **Note:** This property takes effect if the `growing` property is set to the `Button`.
     */
    growingButtonText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines if the component would display a loading indicator over the list.
     */
    loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the delay in milliseconds, after which the loading indicator will show up for this component.
     */
    loadingDelay: _angular_core.InputSignal<number | undefined>;
    /**
     * Defines the accessible name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines additional accessibility attributes on different areas of the component.
  
  The accessibilityAttributes object has the following field:
  
   - **growingButton**: `growingButton.name`, `growingButton.description`.
  
   The accessibility attributes support the following values:
  
  - **name**: Defines the accessible ARIA name of the growing button.
  Accepts any string.
  
  - **description**: Defines the accessible ARIA description of the growing button.
  Accepts any string.
  
   **Note:** The `accessibilityAttributes` property is in an experimental state and is a subject to change.
     */
    accessibilityAttributes: _angular_core.InputSignal<ListAccessibilityAttributes | undefined>;
    /**
     * Defines the IDs of the elements that label the component.
     */
    accessibleNameRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the accessible description of the component.
     */
    accessibleDescription: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the IDs of the elements that describe the component.
     */
    accessibleDescriptionRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the accessible role of the component.
     */
    accessibleRole: _angular_core.InputSignal<"List" | "Menu" | "Tree" | "ListBox" | undefined>;
    /**
     * Returns an array containing the list item instances without the groups in a flat structure.
     * @readonly This property is managed by the web component.
     */
    get listItems(): Array<ListItemBase>;
    /**
     * Fired when an item is activated, unless the item's `type` property
  is set to `Inactive`.
  
  **Note**: This event is not triggered by interactions with selection components such as the checkboxes and radio buttons,
  associated with non-default `selectionMode` values, or if any other **interactive** component
  (such as a button or input) within the list item is directly clicked.
     */
    ui5ItemClick: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "item-click">>;
    /**
     * Fired when the `Close` button of any item is clicked
  
  **Note:** This event is only applicable to list items that can be closed (such as notification list items),
  not to be confused with `item-delete`.
     */
    ui5ItemClose: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "item-close">>;
    /**
     * Fired when the `Toggle` button of any item is clicked.
  
  **Note:** This event is only applicable to list items that can be toggled (such as notification group list items).
     */
    ui5ItemToggle: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "item-toggle">>;
    /**
     * Fired when the Delete button of any item is pressed.
  
  **Note:** A Delete button is displayed on each item,
  when the component `selectionMode` property is set to `Delete`.
     */
    ui5ItemDelete: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "item-delete">>;
    /**
     * Fired when selection is changed by user interaction
  in `Single`, `SingleStart`, `SingleEnd` and `Multiple` selection modes.
     */
    ui5SelectionChange: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "selection-change">>;
    /**
     * Fired when the user scrolls to the bottom of the list.
  
  **Note:** The event is fired when the `growing='Scroll'` property is enabled.
     */
    ui5LoadMore: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "load-more">>;
    /**
     * Fired when a movable list item is moved over a potential drop target during a dragging operation.
  
  If the new position is valid, prevent the default action of the event using `preventDefault()`.
     */
    ui5MoveOver: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "move-over">>;
    /**
     * Fired when a movable list item is dropped onto a drop target.
  
  **Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.
     */
    ui5Move: _angular_core.OutputEmitterRef<UI5CustomEvent<_List, "move">>;
    /**
     * Available slots for content projection in this component.
     *
     * Slots allow you to insert custom content into predefined areas of the web component.
     * Use the `slot` attribute on child elements to target specific slots.
     *
     * - **(default)**: Defines the items of the component.
  
  **Note:** Use `ui5-li`, `ui5-li-custom`, and `ui5-li-group` for the intended design.
     * - **header**: Defines the component header.
  
  **Note:** When `header` is set, the
  `headerText` property is ignored.
     *
     * @example
     * ```html
     * <ui5-list>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-list>
     * ```
     *
     * @readonly
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
     */
    readonly slots: {
        name: string;
        description: string;
    }[];
    elementRef: ElementRef<_List>;
    injector: Injector;
    get element(): _List;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<List, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<List, "ui5-list, [ui5-list]", ["ui5List"], { "headerText": { "alias": "headerText"; "required": false; "isSignal": true; }; "footerText": { "alias": "footerText"; "required": false; "isSignal": true; }; "indent": { "alias": "indent"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "noDataText": { "alias": "noDataText"; "required": false; "isSignal": true; }; "separators": { "alias": "separators"; "required": false; "isSignal": true; }; "growing": { "alias": "growing"; "required": false; "isSignal": true; }; "growingButtonText": { "alias": "growingButtonText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingDelay": { "alias": "loadingDelay"; "required": false; "isSignal": true; }; "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "accessibilityAttributes": { "alias": "accessibilityAttributes"; "required": false; "isSignal": true; }; "accessibleNameRef": { "alias": "accessibleNameRef"; "required": false; "isSignal": true; }; "accessibleDescription": { "alias": "accessibleDescription"; "required": false; "isSignal": true; }; "accessibleDescriptionRef": { "alias": "accessibleDescriptionRef"; "required": false; "isSignal": true; }; "accessibleRole": { "alias": "accessibleRole"; "required": false; "isSignal": true; }; }, { "ui5ItemClick": "ui5ItemClick"; "ui5ItemClose": "ui5ItemClose"; "ui5ItemToggle": "ui5ItemToggle"; "ui5ItemDelete": "ui5ItemDelete"; "ui5SelectionChange": "ui5SelectionChange"; "ui5LoadMore": "ui5LoadMore"; "ui5MoveOver": "ui5MoveOver"; "ui5Move": "ui5Move"; }, never, ["*"], true, never>;
}

export { List };
