import { EventEmitter, TemplateRef, SimpleChanges, OnInit, OnChanges, OnDestroy } from '@angular/core';
import { TreeDataModel, TreeItemModel, TreeItemRunTimeModel, TreeItemSelectionRecursiveModel, EuiTreeSelectionChanges, CustomNodeSelectFn } from './eui-tree.model';
import { NestedTreeControl, CdkTree } from '@angular/cdk/tree';
import { ArrayDataSource } from '@angular/cdk/collections';
import { CdkScrollable } from '@angular/cdk/scrolling';
import * as i0 from "@angular/core";
/**
 * @description
 * The eui-tree can be used to display hierarchy data with optional added behavior inside node templates and interactions
 * that could affect the rendered data such as expand, collapse, direct actions, extra menu actions, etc.
 *
 */
export declare class EuiTreeComponent implements OnInit, OnChanges, OnDestroy {
    get cssClasses(): string;
    e2eAttr: string;
    /**
     * Hierarchy of data to display in the tree
     */
    nodes: TreeDataModel;
    /**
     * Reference to the `ng-template` used to render node item
     */
    nodeTemplateRef: TemplateRef<any>;
    nodeContentMetadataTemplateRef: TemplateRef<any>;
    rightContextMenuTemplateRef: TemplateRef<any>;
    customNodeSelectFn: CustomNodeSelectFn;
    /**
     * Icon to display when a node is closed
     *
     * @default 'chevron-forward:sharp'
     */
    expandedSvgIconClass: string;
    /**
     * Icon to display when a node is opened
     *
     * @default 'chevron-down:sharp'
     */
    collapsedSvgIconClass: string;
    cdkScrollableRef: CdkScrollable;
    treeComponentInstance: CdkTree<TreeItemRunTimeModel>;
    /**
     * Whether the full node display can be clicked to toggle the node.
     *
     * @default false
     */
    isClickTogglingNode: boolean;
    /**
     * Whether multiple nodes can be selected.
     *
     * @default false
     */
    isMultiselect: boolean;
    /**
     * Whether only one node can be selected. Select one will unselect the previous selected.
     *
     * @default false
     */
    isSingleSelect: boolean;
    /**
     * In combination with `isMultiselect`. Whether the selection of a node will automatically select its children.
     *
     * @default false
     */
    isRecursiveSelection: boolean;
    /**
     * In combination with `isMultiselect`. Whether the selection of all children will automatically select the parent.
     *
     * @default true
     */
    isRecursiveParentSelection: boolean;
    /**
     * Whether the links are underlined on hiver in the tree.
     *
     * @default true
     */
    showUnderlinedLinks: boolean;
    /**
     * Whether the lines are displayed on the left of nodes.
     *
     * @default true
     */
    showLines: boolean;
    /**
     * Whether i18n key can be passed to be translated with `TranslateService`.
     *
     * @default true
     */
    autoTranslate: boolean;
    /**
     * Whether all parents till the selected are highlighted in bold.
     *
     * @default false
     */
    highlightPath: boolean;
    /**
     * Treshold for the virtual scroll to be activated
     *
     * @default 800
     */
    virtualScrollThreshold: number;
    /**
     * Size of the virtaul scroll pages
     *
     * @default 400
     */
    virtualScrollPageSize: number;
    selectionChange: EventEmitter<EuiTreeSelectionChanges>;
    nodeClick: EventEmitter<TreeItemModel>;
    nodeToggle: EventEmitter<TreeItemModel>;
    cdkArrayDataSource: ArrayDataSource<TreeItemRunTimeModel>;
    cdkTreeControl: NestedTreeControl<TreeItemRunTimeModel>;
    renderTree: boolean;
    uid: string;
    protected _isMultiLevel: boolean;
    private processedNodes;
    private treeDataRunTime;
    private treeDataRunTimeBackup;
    private runTimeSelectionRecursiveState;
    private selectionModel;
    private tempSelectionModel;
    private selectionModelSubs;
    private scrollDispatcherSubs;
    private _selection;
    private treePagination;
    private changeDetectorRef;
    private scrollDispatcher;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    getSelection(): TreeDataModel;
    getProcessedNodes(): TreeDataModel;
    trackBy(index: number, item: TreeItemRunTimeModel): any;
    trackByControl(item: TreeItemRunTimeModel): any;
    getTreeItem(path: string): TreeItemModel;
    expandAll(): void;
    expandAt(path: string, detectChanges?: boolean): void;
    collapseAll(): void;
    collapseAt(path: string, detectChanges?: boolean): void;
    filterTerm(filterInput: string, filterKey?: string, showChildrenOfMatchedItems?: boolean): void;
    setAllSelection(isChecked: boolean): void;
    updateTreeItem(givenTreeItem: TreeItemModel, path: string): void;
    onNodeClick(treeRunTimeItem: TreeItemRunTimeModel, e: any): void;
    onNodeToggle(treeRunTimeItem: TreeItemRunTimeModel): void;
    nodeSelected(evt: any, path: string): void;
    hasChild: (_: number, item: TreeItemRunTimeModel) => boolean;
    onSelectFn(path: string): (evt: any) => void;
    getRunTimeSelectionRecursiveState(path: string): TreeItemSelectionRecursiveModel;
    private initTree;
    private processInputs;
    private overrideTreeDataModelForSelection;
    private runScrollListener;
    private getSelectionIndexOfItem;
    private silentSelect;
    private selectTreeItem;
    private deselectTreeItem;
    private createTreeDataRuntime;
    private applyRunTimeLastItems;
    private createRunTimeSelectionRecursiveState;
    private calculateItemSelectionRecursiveState;
    private decideSelectionRecursiveState;
    private syncStateChangesAtPath;
    private setTreeData;
    private setTreeDataRunTimeBackup;
    private setTreeDataRunTime;
    private setRunTimeSelectionRecursiveStateTree;
    private updateRunTimeSelectionRecursiveState;
    private setIsCheckedForAll;
    private runStateChangesForAll;
    private syncSelectionAtPath;
    private resolvePath;
    private getParentPaths;
    private calculateRunTimeState;
    private filterTreeData;
    private normalizedStr;
    private getInitialSelection;
    private scanSelection;
    private renderInitialExpand;
    private expandMatched;
    private getRunTimeTreeItem;
    private findRunTimeTreeItem;
    private getRunTimeBackupTreeItem;
    private getCssClasses;
    private checkIfMultiLevel;
    private checkIfCurrentScrollable;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiTreeComponent, "eui-tree", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "nodes": { "alias": "nodes"; "required": false; }; "nodeTemplateRef": { "alias": "nodeTemplateRef"; "required": false; }; "nodeContentMetadataTemplateRef": { "alias": "nodeContentMetadataTemplateRef"; "required": false; }; "rightContextMenuTemplateRef": { "alias": "rightContextMenuTemplateRef"; "required": false; }; "customNodeSelectFn": { "alias": "customNodeSelectFn"; "required": false; }; "expandedSvgIconClass": { "alias": "expandedSvgIconClass"; "required": false; }; "collapsedSvgIconClass": { "alias": "collapsedSvgIconClass"; "required": false; }; "isClickTogglingNode": { "alias": "isClickTogglingNode"; "required": false; }; "isMultiselect": { "alias": "isMultiselect"; "required": false; }; "isSingleSelect": { "alias": "isSingleSelect"; "required": false; }; "isRecursiveSelection": { "alias": "isRecursiveSelection"; "required": false; }; "isRecursiveParentSelection": { "alias": "isRecursiveParentSelection"; "required": false; }; "showUnderlinedLinks": { "alias": "showUnderlinedLinks"; "required": false; }; "showLines": { "alias": "showLines"; "required": false; }; "autoTranslate": { "alias": "autoTranslate"; "required": false; }; "highlightPath": { "alias": "highlightPath"; "required": false; }; "virtualScrollThreshold": { "alias": "virtualScrollThreshold"; "required": false; }; "virtualScrollPageSize": { "alias": "virtualScrollPageSize"; "required": false; }; }, { "selectionChange": "selectionChange"; "nodeClick": "nodeClick"; "nodeToggle": "nodeToggle"; }, never, never, true, never>;
    static ngAcceptInputType_isClickTogglingNode: unknown;
    static ngAcceptInputType_isMultiselect: unknown;
    static ngAcceptInputType_isSingleSelect: unknown;
    static ngAcceptInputType_isRecursiveSelection: unknown;
    static ngAcceptInputType_isRecursiveParentSelection: unknown;
    static ngAcceptInputType_showUnderlinedLinks: unknown;
    static ngAcceptInputType_showLines: unknown;
    static ngAcceptInputType_autoTranslate: unknown;
    static ngAcceptInputType_highlightPath: unknown;
    static ngAcceptInputType_virtualScrollThreshold: unknown;
    static ngAcceptInputType_virtualScrollPageSize: unknown;
}
/**
 * @description
 * Module that provides the EuiTree component and its dependencies
 */
export declare class EuiTreeModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTreeModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<EuiTreeModule, never, [typeof EuiTreeComponent], [typeof EuiTreeComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<EuiTreeModule>;
}
//# sourceMappingURL=eui-tree.component.d.ts.map