import { OnInit, EventEmitter, OnChanges, SimpleChanges, AfterViewInit, OnDestroy, ChangeDetectorRef, QueryList } from '@angular/core';
import { FlatTreeControl } from '@angular/cdk/tree';
import { PaginationInstance, PaginationService } from 'ngx-pagination';
import { Subject, BehaviorSubject } from 'rxjs';
import { EagnaTreeService } from '../../@services/tree.service';
import { EagnaScrollComponent } from '../scroll/scroll.component';
import { sortType } from '../../@interfaces/tree-format.interface';
import * as i0 from "@angular/core";
export declare class HashMapSelection {
    private _map;
    selected(): any;
    select(values: any): boolean;
    deselect(values: any): boolean;
    isSelected(key: any): boolean;
    toggle(key: any, value?: any): boolean;
    clear(): boolean;
}
export declare class EagnaTreeComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
    private treeService;
    private paginationService;
    private _cdr;
    dataFormat: any;
    name: string;
    treeMenuEnabled: boolean;
    searchInputEnabled: boolean;
    data: any;
    showCheckboxes: boolean;
    disableActiveNode: boolean;
    icons: boolean | Object;
    maxHeight: any;
    paginate: ('frontend' | 'backend');
    numResults: number;
    totalResults?: number;
    sort: sortType;
    expandedLevelDefault: number;
    activeNode: any;
    lazyChildren: any;
    silentActiveNodeUpdater: BehaviorSubject<any>;
    dontToggleOpened: boolean;
    expandAllOnSearch: boolean;
    loading: boolean;
    app: string;
    toggleCheckAll: Subject<any>;
    checkBoxCallback: EventEmitter<any>;
    changePageCallback: EventEmitter<any>;
    clickCallback: EventEmitter<any>;
    lazyLoadNode: EventEmitter<any>;
    contextMenuClick: EventEmitter<any>;
    refreshState: number;
    refreshCallback: EventEmitter<number>;
    nodeWidth: string;
    initialSearchValue: string;
    dataLoaded: EventEmitter<any>;
    treeControl: FlatTreeControl<any>;
    treeFlattener: any;
    dataSource: any;
    shouldExpandActiveNode: boolean;
    rightClickOptions: any;
    menuPosition: any;
    search: string;
    searchUpdates: Subject<string>;
    nodeContextMenuOpen: any;
    checklistSelection: HashMapSelection;
    treeViewPort: any;
    pgConfig: PaginationInstance;
    hasError: boolean;
    private _allSubscriptions;
    eagnaTree: EagnaScrollComponent;
    treeNodesRef: QueryList<any>;
    treeNodes: QueryList<any>;
    constructor(treeService: EagnaTreeService, paginationService: PaginationService, _cdr: ChangeDetectorRef);
    refreshTree(event: any): void;
    ngAfterViewInit(): void;
    ngOnInit(): void;
    ngOnChanges(change: SimpleChanges): void;
    onSearchTermChanges(search: any): void;
    /**Data handlers */
    refreshDatasourceData(search: any): void;
    /** Pagination handlers */
    changePage(page: any): void;
    /**Node Hierarchy handlers (expand) */
    expandAllParents(node_id: string): void;
    toggleNodeExpanded(node: any): void;
    /**Node Click handlers */
    nodeClick(node: any, e?: MouseEvent): void;
    toggleNodesHighlight($event: any): void;
    handleMenuOptionClick($event: any): void;
    openNodeContextMenu($event: any, node: any): void;
    /** Checkbox handlers */
    itemSelectionToggle(node: any): void;
    setNodesChecked(nodes: any): void;
    private notifyCheckboxChanged;
    checkRootNodeSelection(node: any): void;
    checkAllParentsSelection(node: any): void;
    checkAll(event: any): void;
    /** Pure (stateless) Node Getters */
    getParentNode(node: any): any;
    descendantsPartiallySelected(node: any): boolean;
    descendantsAllSelected(node: any): boolean;
    getLevel: (node: any) => any;
    hasChild: (num: number, node: any) => any;
    isExpandable(node: any): boolean;
    getNodeFromId(id: string): any;
    isNodeActive(node: any): boolean;
    /** Tree formatters */
    private transformer;
    buildIcons(): void;
    getIcon(type: string): string;
    ngOnDestroy(): void;
    addParentAndChildren(node: any, nodeParent?: any): void;
    getSelectedNodes(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<EagnaTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EagnaTreeComponent, "eagna-tree", never, { "dataFormat": "dataFormat"; "name": "name"; "treeMenuEnabled": "treeMenuEnabled"; "searchInputEnabled": "searchInputEnabled"; "data": "data"; "showCheckboxes": "showCheckboxes"; "disableActiveNode": "disableActiveNode"; "icons": "icons"; "maxHeight": "maxHeight"; "paginate": "paginate"; "numResults": "numResults"; "totalResults": "totalResults"; "sort": "sort"; "expandedLevelDefault": "expandedLevelDefault"; "activeNode": "activeNode"; "lazyChildren": "lazyChildren"; "silentActiveNodeUpdater": "silentActiveNodeUpdater"; "dontToggleOpened": "dontToggleOpened"; "expandAllOnSearch": "expandAllOnSearch"; "loading": "loading"; "app": "app"; "toggleCheckAll": "toggleCheckAll"; "refreshState": "refreshState"; "nodeWidth": "nodeWidth"; "initialSearchValue": "initialSearchValue"; }, { "checkBoxCallback": "checkBoxCallback"; "changePageCallback": "changePageCallback"; "clickCallback": "clickCallback"; "lazyLoadNode": "lazyLoadNode"; "contextMenuClick": "contextMenuClick"; "refreshCallback": "refreshCallback"; "dataLoaded": "dataLoaded"; }, never, never, false>;
}
