import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { DevConfigService } from 'ng-devui/utils';
import { Subscription } from 'rxjs';
import { Dictionary, ITreeItem, ITreeNodeData, TreeNode } from './tree-factory.class';
import { TreeComponent } from './tree.component';
import { ICheckboxInput, IDropType } from './tree.types';
import * as i0 from "@angular/core";
export declare class OperableTreeComponent implements OnInit, OnDestroy, AfterViewInit {
    private doc;
    private i18n;
    private devConfigService;
    tree: Array<ITreeItem>;
    treeNodeIdKey: string;
    treeNodeChildrenKey: string;
    checkboxDisabledKey: string;
    selectDisabledKey: string;
    toggleDisabledKey: string;
    iconParentOpen: string;
    iconParentClose: string;
    iconLeaf: string;
    /**
     * @deprecated
     */
    showLoading: boolean;
    loadingTemplateRef: TemplateRef<any>;
    treeNodesRef: TemplateRef<any>;
    checkable: boolean;
    deletable: boolean;
    addable: boolean;
    editable: boolean;
    draggable: boolean;
    checkboxInput: ICheckboxInput;
    beforeAddNode: (node: TreeNode) => Promise<any>;
    disableMouseEvent: boolean;
    beforeDeleteNode: (node: TreeNode) => Promise<any>;
    beforeNodeDrop: (dragNodeId: string, dropNodeId: string, dropType: string, dragNodeIds?: string[]) => Promise<any>;
    beforeEditNode: (node: TreeNode) => Promise<any>;
    canActivateNode: boolean;
    canActivateParentNode: boolean;
    canActivateMultipleNode: boolean;
    treeNodeTitleKey: string;
    postAddNode: (node: TreeNode) => Promise<any>;
    iconTemplatePosition: string;
    virtualScroll: boolean;
    virtualScrollHeight: string;
    showAnimation: boolean;
    itemSize: number;
    minBufferPx: number;
    maxBufferPx: number;
    checkableRelation: 'upward' | 'downward' | 'both' | 'none';
    nodeSelected: EventEmitter<TreeNode | TreeNode[]>;
    nodeDblClicked: EventEmitter<TreeNode>;
    nodeRightClicked: EventEmitter<{
        node: TreeNode;
        event: MouseEvent;
    }>;
    nodeToggled: EventEmitter<TreeNode>;
    afterTreeInit: EventEmitter<Dictionary<TreeNode>>;
    nodeDeleted: EventEmitter<TreeNode>;
    nodeChecked: EventEmitter<any>;
    currentNodeChecked: EventEmitter<{
        id: string | number;
        data: ITreeNodeData;
    }>;
    nodeEdited: EventEmitter<TreeNode>;
    editValueChange: EventEmitter<{
        value: string;
        callback: Function;
    }>;
    nodeDragStart: EventEmitter<{
        event: DragEvent;
        treeNode: TreeNode;
        treeNodes?: TreeNode[];
    }>;
    nodeOnDrop: EventEmitter<{
        event: DragEvent;
        treeNode: TreeNode;
        dropType: IDropType;
    }>;
    operableTree: TreeComponent;
    operableTreeEle: ElementRef;
    treeDropIndicator: ElementRef;
    iconTemplate: any;
    nodeTemplate: any;
    operatorTemplate: any;
    statusTemplate: any;
    dropType: IDropType;
    private addingNode;
    private mouseRightButton;
    private treeNodeDragoverResponder;
    treeNodeContent: QueryList<ElementRef>;
    i18nCommonText: I18nInterface['common'];
    i18nSubscription: Subscription;
    dragState: {
        showIndicator: boolean;
        dropType: any;
        draggingNode: any;
        indicatorTop: number;
        indicatorLeft: number;
        indicatorWidth: number;
    };
    afterInitAnimate: boolean;
    document: Document;
    constructor(doc: any, i18n: I18nService, devConfigService: DevConfigService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    contextmenuEvent(event: any, node: any): void;
    copyStyle(source: any, target: any): void;
    multipleDragStyle(event: any, nodes: any, target: any): void;
    onDragstart(event: any, treeNode: any): void;
    onDragover(event: any, droppable: any, treeNode: any): void;
    handlerDragState(event: any, treeNode: any): void;
    onDragleave(event: any, treeNode: any): void;
    removeDraggingStyle(target: any): void;
    onDrop(event: any, dropNode: any): void;
    reverseSelection(node: any, dropNodeId: any, dragNodeIds: any, dragNodesCheckStatus: any): void;
    setSelection(dropNode: any, dragNodeId: any, dragNodeIds: any, dragNodesCheckStatus: any): void;
    handleDropNode(dragNodeId: any, dropNode: any): void;
    handlerDropSort(oldIndex: any, newIndex: any, movingNode: any, dropNode: any, originalParentNode: any, type: any): void;
    handlerOriginalParentNode(originalParentNode: any, oldIndex: any): void;
    handlerDropInner(oldIndex: any, movingNode: any, dropNode: any, originalParentNode: any): void;
    selectNode(event: any, treeNode: TreeNode): void;
    toggleNode(event: any, treeNode: TreeNode): void;
    deleteNodes(event: any, treeNode: TreeNode): void;
    deleteNodesProxy: (event: any, treeNode: TreeNode) => void;
    addChildNode(event: any, treeNode: TreeNode, newNode?: any): void;
    addChildNodeProxy: (event: any, treeNode: TreeNode, newNode?: any) => void;
    editNode(event: any, treeNode: TreeNode): void;
    editNodeProxy: (event: any, treeNode: TreeNode) => void;
    checkNodeById(checked: boolean, id: number | string): void;
    onBlurEdit(treeNode: any): Promise<any>;
    onInputChange(event: any, treeNode: any): void;
    treeNodeHover(treeNode: any, type: any): void;
    isSelectedNode(node: any): any;
    get nodes(): any[];
    private postEditNode;
    appendTreeItems(treeItems: Array<ITreeItem>, parentId: any): void;
    get treeFactory(): import("./tree-factory.class").TreeFactory;
    checkNode(checked: any, treeNode: TreeNode): void;
    nodeDblClick(event: any, node: any): void;
    initTreeFinishEvent($event: any): void;
    eventTriggerBlur(event: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperableTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OperableTreeComponent, "d-operable-tree", ["dOperableTreeComponent"], { "tree": "tree"; "treeNodeIdKey": "treeNodeIdKey"; "treeNodeChildrenKey": "treeNodeChildrenKey"; "checkboxDisabledKey": "checkboxDisabledKey"; "selectDisabledKey": "selectDisabledKey"; "toggleDisabledKey": "toggleDisabledKey"; "iconParentOpen": "iconParentOpen"; "iconParentClose": "iconParentClose"; "iconLeaf": "iconLeaf"; "showLoading": "showLoading"; "loadingTemplateRef": "loadingTemplateRef"; "treeNodesRef": "treeNodesRef"; "checkable": "checkable"; "deletable": "deletable"; "addable": "addable"; "editable": "editable"; "draggable": "draggable"; "checkboxInput": "checkboxInput"; "beforeAddNode": "beforeAddNode"; "disableMouseEvent": "disableMouseEvent"; "beforeDeleteNode": "beforeDeleteNode"; "beforeNodeDrop": "beforeNodeDrop"; "beforeEditNode": "beforeEditNode"; "canActivateNode": "canActivateNode"; "canActivateParentNode": "canActivateParentNode"; "canActivateMultipleNode": "canActivateMultipleNode"; "treeNodeTitleKey": "treeNodeTitleKey"; "postAddNode": "postAddNode"; "iconTemplatePosition": "iconTemplatePosition"; "virtualScroll": "virtualScroll"; "virtualScrollHeight": "virtualScrollHeight"; "showAnimation": "showAnimation"; "itemSize": "itemSize"; "minBufferPx": "minBufferPx"; "maxBufferPx": "maxBufferPx"; "checkableRelation": "checkableRelation"; "dropType": "dropType"; }, { "nodeSelected": "nodeSelected"; "nodeDblClicked": "nodeDblClicked"; "nodeRightClicked": "nodeRightClicked"; "nodeToggled": "nodeToggled"; "afterTreeInit": "afterTreeInit"; "nodeDeleted": "nodeDeleted"; "nodeChecked": "nodeChecked"; "currentNodeChecked": "currentNodeChecked"; "nodeEdited": "nodeEdited"; "editValueChange": "editValueChange"; "nodeDragStart": "nodeDragStart"; "nodeOnDrop": "nodeOnDrop"; }, ["iconTemplate", "nodeTemplate", "operatorTemplate", "statusTemplate"], never, false>;
}
