import { EventEmitter, OnInit } from '@angular/core';
import { NestedTreeControl } from '@angular/cdk/tree';
import { ArrayDataSource } from '@angular/cdk/collections';
import { TreeNode } from './tree-node';
import * as i0 from "@angular/core";
export declare abstract class AbstractTree implements OnInit {
    nodeSelected: EventEmitter<TreeNode<any>>;
    defaultExpandedIcon: string;
    defaultCollapsedIcon: string;
    _tree: TreeNode[];
    dataSource: ArrayDataSource<TreeNode<any>>;
    treeControl: NestedTreeControl<TreeNode<any>, TreeNode<any>>;
    selectedNode: TreeNode;
    get tree(): TreeNode[];
    set tree(newTree: Array<TreeNode>);
    constructor();
    ngOnInit(): void;
    hasChild: (_: number, node: TreeNode) => boolean;
    doClick(node: TreeNode): void;
    private _processData;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTree, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractTree, never, never, { "tree": { "alias": "tree"; "required": false; }; }, { "nodeSelected": "nodeSelected"; }, never, never, false, never>;
}
