import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { FlatTreeControl } from '@angular/cdk/tree';
import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
import { Subscription } from 'rxjs';
import { FlatNode, TreeNode } from './models/qms-navigation-drawer.model';
export declare class QMSNavigationDrawerComponent implements OnInit, OnChanges, OnDestroy {
    constructor();
    treeData: Array<TreeNode>;
    showFavoriteIcon: boolean;
    favoriteMode: boolean;
    addNodeEvent: EventEmitter<string>;
    addFavoriteEvent: EventEmitter<string>;
    drogLocationEvent: EventEmitter<any>;
    showAddIcon: boolean;
    openNodes: string[];
    dragDropListDisabled: boolean;
    nodesExpand: EventEmitter<any>;
    filterText: string;
    faIconPath: string;
    onClickNodeEvent: EventEmitter<string>;
    addFavoriteTooltip: string;
    deleteFavoriteTooltip: string;
    addNodeTooltip: string;
    activeNode: string;
    activeNodeLocation: Subscription;
    expandedNodeSet: Set<string>;
    dragging: boolean;
    expandTimeout: any;
    expandDelay: number;
    hoverFavoriteNodeId: string;
    isHover: boolean;
    treeControl: FlatTreeControl<FlatNode, FlatNode>;
    treeFlattener: MatTreeFlattener<TreeNode, {
        expandable: boolean;
        name: string;
        level: number;
        id: any;
        isReadOnly: boolean;
        favorite: boolean;
        disabled: boolean;
    }, {
        expandable: boolean;
        name: string;
        level: number;
        id: any;
        isReadOnly: boolean;
        favorite: boolean;
        disabled: boolean;
    }>;
    dataSource: MatTreeFlatDataSource<TreeNode, FlatNode, FlatNode>;
    hoverNode: any;
    expandingNodes: FlatNode[];
    _transformer(node: TreeNode, level: number): {
        expandable: boolean;
        name: string;
        level: number;
        id: any;
        isReadOnly: boolean;
        favorite: boolean;
        disabled: boolean;
    };
    ngOnInit(): void;
    hasChild: (_: number, node: FlatNode) => boolean;
    ngOnChanges(changes: SimpleChanges): void;
    expandNodeSearched(nodesOrigin: TreeNode[], txtSearch: string): void;
    onClickNode(node: TreeNode, setActiveNode?: boolean): void;
    onOver(node: any): void;
    addNewNode(nodeId: any, event: any): void;
    addFavoriteNode(nodeId: any, event: any): void;
    ngOnDestroy(): void;
    /**
     * This constructs an array of nodes that matches the DOM,
     * and calls rememberExpandedTreeNodes to persist expand state
     */
    visibleNodes(): TreeNode[];
    /**
     * Handle the drop - here we rearrange the data based on the drop event,
     * then rebuild the tree.
     * */
    drop(event: CdkDragDrop<string[]>): void;
    private updateNewOrderForNodeSiblings;
    /**
     * Experimental - opening tree nodes as you drag over them
    */
    dragStart(): void;
    dragEnd(): void;
    dragHover(node: FlatNode): void;
    dragHoverEnd(): void;
    /**
     * The following methods are for persisting the tree expand state
     * after being rebuilt
     */
    rebuildTreeForData(data: any): void;
    private rememberExpandedTreeNodes;
    private forgetMissingExpandedNodes;
    private expandNodesById;
    private getParentNode;
    onKeyDownNode(event: any, node: any): void;
    onClickToggleNode(node: any): void;
    setHoverFavorite(id: any): void;
    expandNodes(): void;
    private _expandNodesLoop;
    private _addExpandingNode;
    private _removeExpandingNodes;
}
