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;
    static ID_SEED: number;
    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;
    dropFromOutside: boolean;
    disableMouseEvent: boolean;
    checkboxInput: ICheckboxInput;
    beforeAddNode: (node: TreeNode) => Promise<any>;
    beforeDeleteNode: (node: TreeNode) => Promise<any>;
    beforeEditNode: (node: TreeNode) => Promise<any>;
    beforeSelectNode: (node: TreeNode) => Promise<any>;
    beforeNodeDrop: (dragNodeId: string, dropNodeId: string, dropType: string, dragNodeIds?: string[]) => 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';
    indent: string;
    /**
     * @deprecated
     */
    canIdEmpty: boolean;
    operatorAlign: 'start' | 'end';
    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;
        isFromOutside?: boolean;
    }>;
    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>;
    id: string;
    i18nCommonText: I18nInterface['common'];
    i18nSubscription: Subscription;
    dragState: {
        showIndicator: boolean;
        dropType: any;
        draggingNode: any;
        indicatorTop: number;
        indicatorLeft: number;
        indicatorWidth: number;
    };
    afterInitAnimate: boolean;
    document: Document;
    isOpenedOonDragOver: any[];
    constructor(doc: any, i18n: I18nService, devConfigService: DevConfigService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): 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;
    dropFormOutside(event: any, dropNode: any): void;
    onDragend(): 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;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperableTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OperableTreeComponent, "d-operable-tree", ["dOperableTreeComponent"], { "tree": { "alias": "tree"; "required": false; }; "treeNodeIdKey": { "alias": "treeNodeIdKey"; "required": false; }; "treeNodeChildrenKey": { "alias": "treeNodeChildrenKey"; "required": false; }; "checkboxDisabledKey": { "alias": "checkboxDisabledKey"; "required": false; }; "selectDisabledKey": { "alias": "selectDisabledKey"; "required": false; }; "toggleDisabledKey": { "alias": "toggleDisabledKey"; "required": false; }; "iconParentOpen": { "alias": "iconParentOpen"; "required": false; }; "iconParentClose": { "alias": "iconParentClose"; "required": false; }; "iconLeaf": { "alias": "iconLeaf"; "required": false; }; "showLoading": { "alias": "showLoading"; "required": false; }; "loadingTemplateRef": { "alias": "loadingTemplateRef"; "required": false; }; "treeNodesRef": { "alias": "treeNodesRef"; "required": false; }; "checkable": { "alias": "checkable"; "required": false; }; "deletable": { "alias": "deletable"; "required": false; }; "addable": { "alias": "addable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "dropFromOutside": { "alias": "dropFromOutside"; "required": false; }; "disableMouseEvent": { "alias": "disableMouseEvent"; "required": false; }; "checkboxInput": { "alias": "checkboxInput"; "required": false; }; "beforeAddNode": { "alias": "beforeAddNode"; "required": false; }; "beforeDeleteNode": { "alias": "beforeDeleteNode"; "required": false; }; "beforeEditNode": { "alias": "beforeEditNode"; "required": false; }; "beforeSelectNode": { "alias": "beforeSelectNode"; "required": false; }; "beforeNodeDrop": { "alias": "beforeNodeDrop"; "required": false; }; "canActivateNode": { "alias": "canActivateNode"; "required": false; }; "canActivateParentNode": { "alias": "canActivateParentNode"; "required": false; }; "canActivateMultipleNode": { "alias": "canActivateMultipleNode"; "required": false; }; "treeNodeTitleKey": { "alias": "treeNodeTitleKey"; "required": false; }; "postAddNode": { "alias": "postAddNode"; "required": false; }; "iconTemplatePosition": { "alias": "iconTemplatePosition"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "virtualScrollHeight": { "alias": "virtualScrollHeight"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "minBufferPx": { "alias": "minBufferPx"; "required": false; }; "maxBufferPx": { "alias": "maxBufferPx"; "required": false; }; "checkableRelation": { "alias": "checkableRelation"; "required": false; }; "indent": { "alias": "indent"; "required": false; }; "canIdEmpty": { "alias": "canIdEmpty"; "required": false; }; "operatorAlign": { "alias": "operatorAlign"; "required": false; }; "dropType": { "alias": "dropType"; "required": false; }; }, { "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, never>;
}
