import { EventEmitter, QueryList, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';
import { EuiTreeListItemComponent } from './eui-tree-list-item.component';
import * as i0 from "@angular/core";
export interface EuiTreeListFilterParams {
    readonly level: number;
    readonly item: EuiTreeListItemComponent;
    readonly keyword: string;
}
export declare class EuiTreeListComponent implements AfterViewInit, OnChanges {
    /**
     * Option to show the toolbar
     * @default false
     */
    isShowToolbar: boolean;
    /**
     * @deprecated This property is not used anymore and will be removed in the next major version.
     */
    isShowToolbarToggle: boolean;
    /**
     * Sets the expanded state of the tree list
     */
    isExpanded: boolean;
    /**
     * @deprecated This property is not used anymore and will be removed in the next major version.
     */
    hasItemsUrl: boolean;
    /**
     * Sets the label for the filter input
     * @type {string}
     */
    filterLabel: string;
    /**
     * Function to filter the tree list items based on the provided params
     * @param {EuiTreeListFilterParams} params
     * @returns {boolean}
     */
    filterFunction: (params: EuiTreeListFilterParams) => boolean;
    /**
     * Sets the label for the expand-all button
     * @type {string}
     */
    expandAllLabel: string;
    /**
     * Sets the label for the collapse-all button
     * @type {string}
     */
    collapseAllLabel: string;
    /**
     * Sets the tabindex attribute to handle the focus state
     * @default '0'
     */
    tabindex: string;
    /**
     * Sets the aria-label attribute for the tree list
     * @default ''
     */
    ariaLabel: string;
    /**
     * Sets the filter value of the toolbar
     * @default ''
     */
    toolbarFilterValue: string;
    /**
     * Sets the end-to-end attribute for the tree list
     * @default 'eui-tree-list'
     */
    e2eAttr: string;
    /**
     * @deprecated This property is not used anymore and will be removed in the next major version.
     */
    itemSelected: EventEmitter<string>;
    /**
     * Event that emits the filter value upon filtering.
     */
    filter: EventEmitter<string>;
    /**
     * Event emitted upon expanding all items.
     */
    expandAll: EventEmitter<any>;
    /**
     * Event emitted upon collapsing all items.
     */
    collapseAll: EventEmitter<any>;
    items: QueryList<EuiTreeListItemComponent>;
    ariaOwns: string;
    originalTabindex: string;
    classes: string;
    ariaRoleTree: string;
    private elementRef;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Getter function that returns true if the expandAllLabel exists.
     * @returns {boolean}
     */
    get hasExpandAllLabel(): boolean;
    /**
     * Getter function that returns true if the collapseAllLabel exists.
     * @returns {boolean}
     */
    get hasCollapseAllLabel(): boolean;
    /**
     * Method that sets the expanded state and emits the expand-all event.
     */
    onExpandAll(event: Event): void;
    /**
     * Method that sets the collapsed state and emits the collapse-all event.
     */
    onCollapseAll(event: Event): void;
    /**
     * Method that handles the visibility of the items based on the filter value and emits the filter event.
     * @param {string} filterValue - The filter value to set.
     */
    onFilter(filterValue: string): void;
    /**
     * @deprecated This method is not used anymore and will be removed in the next major version. You can use the `focus()` method instead.
     */
    onFocus(): void;
    /**
     * Method that sets the visibility state of the tree list items.
     * @param {boolean} state
     */
    setVisibleState(state: boolean): void;
    /**
     * Method that sets the expanded state of the tree list items.
     * @param {boolean} state
     */
    setExpandedState(state: boolean): void;
    /**
     * Method that puts the focus on the first child tree item.
     */
    focus(): void;
    /**
     * Method that makes the tree list not focusable.
     */
    disableFocus(): void;
    /**
     * Method used to focus on the previous tree item in the list.
     * @param {EuiTreeListItemComponent} currentTreeListItem - The current tree list item.
     * @return {boolean} - Returns true if the focus was set on the previous tree item, false otherwise.
     */
    focusOnPreviousTreeItem(currentTreeListItem: EuiTreeListItemComponent): boolean;
    /**
     * Method used to focus on the next tree item in the list.
     * @param {EuiTreeListItemComponent} currentTreeListItem - The current tree list item.
     * @return {boolean} - Returns true if the focus was set on the next tree item, false otherwise.
     */
    focusOnNextTreeItem(currentTreeListItem: EuiTreeListItemComponent): boolean;
    /**
     * Method that sets the default filter function to filter the tree list items.
     * @param {EuiTreeListFilterParams} params - The filter parameters.
     * @returns {boolean} - Returns true if the item matches the filter, false otherwise.
     * @private
     */
    private defaultFilterFunction;
    /**
     * Method that filters the tree list items based on the provided params.
     * @param {number} level - The level of the item in the tree list.
     * @param {EuiTreeListItemComponent} item - The tree list item to filter.
     * @param {string} keyword - The keyword to filter by.
     * @returns {boolean} - Returns true if the item matches the filter, false otherwise.
     * @private
     */
    private filterMatched;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTreeListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiTreeListComponent, "eui-tree-list", never, { "isShowToolbar": { "alias": "isShowToolbar"; "required": false; }; "isShowToolbarToggle": { "alias": "isShowToolbarToggle"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "hasItemsUrl": { "alias": "hasItemsUrl"; "required": false; }; "filterLabel": { "alias": "filterLabel"; "required": false; }; "filterFunction": { "alias": "filterFunction"; "required": false; }; "expandAllLabel": { "alias": "expandAllLabel"; "required": false; }; "collapseAllLabel": { "alias": "collapseAllLabel"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "toolbarFilterValue": { "alias": "toolbarFilterValue"; "required": false; }; "e2eAttr": { "alias": "e2eAttr"; "required": false; }; }, { "itemSelected": "itemSelected"; "filter": "filter"; "expandAll": "expandAll"; "collapseAll": "collapseAll"; }, ["items"], ["*"], true, never>;
    static ngAcceptInputType_isShowToolbar: unknown;
    static ngAcceptInputType_isShowToolbarToggle: unknown;
    static ngAcceptInputType_isExpanded: unknown;
    static ngAcceptInputType_hasItemsUrl: unknown;
}
//# sourceMappingURL=eui-tree-list.component.d.ts.map