import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _Tree from '@ui5/webcomponents/dist/Tree.js';
import { UI5CustomEvent } from '@ui5/webcomponents-base';

declare class Tree implements AfterViewInit {
    /**
     * Defines the selection mode of the component. Since the tree uses a `ui5-list` to display its structure,
  the tree modes are exactly the same as the list modes, and are all applicable.
     */
    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 component header text.
  
  **Note:** If the `header` slot is set, this property is ignored.
     */
    headerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the component footer text.
     */
    footerText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the accessible name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | 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>;
    /**
     * Fired when a tree item is expanded or collapsed.
  
  **Note:** You can call `preventDefault()` on the event object to suppress the event, if needed.
  This may be handy for example if you want to dynamically load tree items upon the user expanding a node.
  Even if you prevented the event's default behavior, you can always manually call `toggle()` on a tree item.
     */
    ui5ItemToggle: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "item-toggle">>;
    /**
     * Fired when the mouse cursor enters the tree item borders.
     */
    ui5ItemMouseover: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "item-mouseover">>;
    /**
     * Fired when the mouse cursor leaves the tree item borders.
     */
    ui5ItemMouseout: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "item-mouseout">>;
    /**
     * Fired when a tree item is activated.
     */
    ui5ItemClick: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "item-click">>;
    /**
     * Fired when the Delete button of any tree 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<_Tree, "item-delete">>;
    /**
     * Fired when selection is changed by user interaction
  in `Single`, `SingleStart`, `SingleEnd` and `Multiple` modes.
     */
    ui5SelectionChange: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "selection-change">>;
    /**
     * Fired when a movable tree item is moved over a potential drop target during a drag-and-drop operation.
  
  If the new position is valid, prevent the default action of the event using `preventDefault()`.
     */
    ui5Move: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "move">>;
    /**
     * Fired when a movable tree item is dropped onto a drop target.
  
  **Note:** The `move` event is fired only if there was a preceding `move-over` event with prevented default action.
     */
    ui5MoveOver: _angular_core.OutputEmitterRef<UI5CustomEvent<_Tree, "move-over">>;
    /**
     * 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. Tree items may have other tree items as children.
  
  **Note:** Use `ui5-tree-item` for the intended design.
     * - **header**: Defines the component header.
  
  **Note:** When the `header` slot is set, the
  `headerText` property is ignored.
     *
     * @example
     * ```html
     * <ui5-tree>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-tree>
     * ```
     *
     * @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<_Tree>;
    injector: Injector;
    get element(): _Tree;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tree, "ui5-tree, [ui5-tree]", ["ui5Tree"], { "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "noDataText": { "alias": "noDataText"; "required": false; "isSignal": true; }; "headerText": { "alias": "headerText"; "required": false; "isSignal": true; }; "footerText": { "alias": "footerText"; "required": false; "isSignal": true; }; "accessibleName": { "alias": "accessibleName"; "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; }; }, { "ui5ItemToggle": "ui5ItemToggle"; "ui5ItemMouseover": "ui5ItemMouseover"; "ui5ItemMouseout": "ui5ItemMouseout"; "ui5ItemClick": "ui5ItemClick"; "ui5ItemDelete": "ui5ItemDelete"; "ui5SelectionChange": "ui5SelectionChange"; "ui5Move": "ui5Move"; "ui5MoveOver": "ui5MoveOver"; }, never, ["*"], true, never>;
}

export { Tree };
