import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnChanges, OnInit, QueryList, SimpleChanges, TemplateRef } from '@angular/core';
import { MenuItem, PrimeTemplate, TreeNode } from 'primeng/api';
import { SmzTreeDragEvent, SmzTreeDragResult } from '../../models/drag-and-drop';
import { SmzTreeNode } from '../../models/tree-node';
import { SmzTreeContext, SmzTreeState } from '../../models/tree-state';
import { TreeHelperService } from '../../services/tree-helper.service';
import { Tree, TreeNodeCollapseEvent, TreeNodeDropEvent, TreeNodeExpandEvent, TreeNodeSelectEvent, TreeNodeUnSelectEvent } from 'primeng/tree';
import { Menu } from 'primeng/menu';
import * as i0 from "@angular/core";
export declare class SmzTreeComponent implements OnInit, AfterContentInit, OnChanges {
    cdr: ChangeDetectorRef;
    private treeHelper;
    treeKey: string;
    dt: Tree;
    templates: QueryList<PrimeTemplate>;
    state: SmzTreeState;
    items: SmzTreeNode<unknown>[];
    treeItems: SmzTreeNode<unknown>[];
    loading: boolean;
    styleClass: string;
    inlineStyle: {
        [klass: string]: any;
    };
    appendTo: string;
    primeSelection: TreeNode<any> | TreeNode<any>[] | any[] | any;
    selection: string[];
    selectionKey: string;
    selectedNodes: EventEmitter<SmzTreeNode<unknown>[]>;
    selectionChange: EventEmitter<SmzTreeNode<unknown>>;
    parentChange: EventEmitter<{
        parentNode: SmzTreeNode<unknown>;
        node: SmzTreeNode<unknown>;
        event: any;
    }>;
    reorder: EventEmitter<{
        parentNode: SmzTreeNode<unknown>;
        node: SmzTreeNode<unknown>;
        childrenIds: string[];
        event: any;
    }>;
    blockedDrop: EventEmitter<{
        blockedEvent: SmzTreeDragEvent;
    }>;
    nodeExpanded: EventEmitter<{
        node: SmzTreeNode<unknown>;
    }>;
    nodeCollapsed: EventEmitter<{
        node: SmzTreeNode<unknown>;
    }>;
    treeExpanded: EventEmitter<any>;
    nodeDropped: EventEmitter<SmzTreeDragResult>;
    headerTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    toolbarTemplate: TemplateRef<any>;
    actionsTemplate: TemplateRef<any>;
    emptyStateTemplate: TemplateRef<any>;
    emptyActionsTemplate: TemplateRef<any>;
    contentTemplates: {
        type: string;
        template: TemplateRef<any>;
    }[];
    selectedItems: SmzTreeNode<unknown>[];
    documentClickListener: any;
    menuItems: MenuItem[];
    private dropNode;
    private dragNode;
    private dragParentNode;
    private dropIndex;
    private operationResult;
    private operationType;
    private dropPlace;
    constructor(cdr: ChangeDetectorRef, treeHelper: TreeHelperService);
    ngOnInit(): void;
    private transformItems;
    private response;
    bind(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterContentInit(): void;
    clear(dt: any, context: SmzTreeContext): void;
    onRowSelection(context: SmzTreeContext): void;
    onUnselected(event: TreeNodeUnSelectEvent): void;
    onSelected(event: TreeNodeSelectEvent): void;
    onExpanded(event: TreeNodeExpandEvent): void;
    onCollapsed(event: TreeNodeCollapseEvent): void;
    onContextMenuOpen(event: TreeNodeCollapseEvent): void;
    onRowMenuOpen(node: TreeNode, menuComponent: Menu, event: any): void;
    private convertMenu;
    expandAll(): void;
    collapseAll(): void;
    expandNode(): void;
    collapseNode(): void;
    onDropped(event: TreeNodeDropEvent): void;
    onFiltered(event: {
        filter: any;
        filteredValue: any;
    }): void;
    private expandRecursive;
    check(event: TreeNodeDropEvent): boolean;
    getOperationDetails(): SmzTreeDragResult;
    onToolbarButtonClick(event: MouseEvent, button: any, items: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SmzTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SmzTreeComponent, "smz-ui-tree", never, { "state": { "alias": "state"; "required": false; }; "items": { "alias": "items"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "inlineStyle": { "alias": "inlineStyle"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "selectionKey": { "alias": "selectionKey"; "required": false; }; }, { "selectedNodes": "selectedNodes"; "selectionChange": "selectionChange"; "parentChange": "parentChange"; "reorder": "reorder"; "blockedDrop": "blockedDrop"; "nodeExpanded": "nodeExpanded"; "nodeCollapsed": "nodeCollapsed"; "treeExpanded": "treeExpanded"; "nodeDropped": "nodeDropped"; }, ["templates"], never, false, never>;
}
