import { FlatTreeControl } from '@angular/cdk/tree';
import { ChangeDetectorRef, EventEmitter, IterableDiffers, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
import { BehaviorSubject, Subject } from 'rxjs';
import { FlatNodeNavDrawer, TreeNodeNavDrawer } from './models/qms-nav-drawer.model';
import { QMSTreeGlobalService } from '../../services/qms-tree-global.service';
import * as i0 from "@angular/core";
export declare class QMSNavDrawerComponent implements OnInit, OnChanges, OnDestroy {
    qmsNavDrawerService: QMSTreeGlobalService;
    private cdRef;
    private iterableDiffers;
    readonly scrollIntoNode$: BehaviorSubject<string>;
    ngUnsubscribe: Subject<void>;
    treeData: Array<TreeNodeNavDrawer>;
    openNodes: string[];
    favoriteAction: any;
    addLocationAction: any;
    nodeExpandEvent: EventEmitter<any>;
    onClickNodeEvent: EventEmitter<any>;
    updateFavoriteEvent: EventEmitter<any>;
    addLocationEvent: EventEmitter<any>;
    treeControl: FlatTreeControl<FlatNodeNavDrawer, FlatNodeNavDrawer>;
    treeFlattener: MatTreeFlattener<TreeNodeNavDrawer, {
        expandable: boolean;
        name: string;
        level: number;
        id: string;
        parentId: string;
        itemIcon: string;
        itemMatIcon: string;
        itemIconSvg: string;
        isFile: boolean;
        markedGetChildren: boolean;
        isFavorite: boolean;
    }, {
        expandable: boolean;
        name: string;
        level: number;
        id: string;
        parentId: string;
        itemIcon: string;
        itemMatIcon: string;
        itemIconSvg: string;
        isFile: boolean;
        markedGetChildren: boolean;
        isFavorite: boolean;
    }>;
    dataSource: MatTreeFlatDataSource<TreeNodeNavDrawer, FlatNodeNavDrawer, FlatNodeNavDrawer>;
    expandingNodes: FlatNodeNavDrawer[];
    activeNode: string;
    guidHelper: {
        empty: string;
    };
    iterableDiffer: any;
    constructor(qmsNavDrawerService: QMSTreeGlobalService, cdRef: ChangeDetectorRef, iterableDiffers: IterableDiffers);
    _transformer(node: TreeNodeNavDrawer, level: number): {
        expandable: boolean;
        name: string;
        level: number;
        id: string;
        parentId: string;
        itemIcon: string;
        itemMatIcon: string;
        itemIconSvg: string;
        isFile: boolean;
        markedGetChildren: boolean;
        isFavorite: boolean;
    };
    hasChild: (_: number, node: FlatNodeNavDrawer) => boolean;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    private _activeNode;
    getActiveNode(id: any, parentId: any): string;
    findAndExpandNodes(expandNewChild?: boolean): void;
    onClickNode(node: FlatNodeNavDrawer): void;
    onExpandNode(node: FlatNodeNavDrawer): void;
    updateFavorite(node: any, event: any): void;
    addLocation(node: any, event: any): void;
    private _addExpandingNode;
    private _removeExpandingNodes;
    ngOnDestroy(): void;
    convertTreeData(list: any): any[];
    static ɵfac: i0.ɵɵFactoryDeclaration<QMSNavDrawerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QMSNavDrawerComponent, "qms-nav-drawer", never, { "treeData": { "alias": "treeData"; "required": false; }; "openNodes": { "alias": "openNodes"; "required": false; }; "favoriteAction": { "alias": "favoriteAction"; "required": false; }; "addLocationAction": { "alias": "addLocationAction"; "required": false; }; }, { "nodeExpandEvent": "nodeExpandEvent"; "onClickNodeEvent": "onClickNodeEvent"; "updateFavoriteEvent": "updateFavoriteEvent"; "addLocationEvent": "addLocationEvent"; }, never, never, false, never>;
}
