import { ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChange, TemplateRef } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { AtTreeNode } from './at-tree-node';
import { AtTreeService } from './at-tree.service';
import { AtFormatBeforeDropEvent, AtFormatEmitEvent } from './interface';
export declare class AtTreeNodeComponent implements OnInit, OnChanges, OnDestroy {
    private atTreeService;
    private ngZone;
    private renderer;
    private elRef;
    dragElement: ElementRef;
    atShowLine: boolean;
    atShowExpand: boolean;
    atMultiple: boolean;
    atCheckable: boolean;
    atAsyncData: boolean;
    atCheckStrictly: boolean;
    atHideUnMatched: boolean;
    atTreeTemplate: TemplateRef<void>;
    atBeforeDrop: (confirm: AtFormatBeforeDropEvent) => Observable<boolean>;
    atTreeNode: AtTreeNode;
    atDraggable: boolean;
    atExpandAll: boolean;
    atSearchValue: string;
    readonly clickNode: EventEmitter<AtFormatEmitEvent>;
    readonly dblClick: EventEmitter<AtFormatEmitEvent>;
    readonly contextMenu: EventEmitter<AtFormatEmitEvent>;
    readonly clickCheckBox: EventEmitter<AtFormatEmitEvent>;
    readonly clickExpand: EventEmitter<AtFormatEmitEvent>;
    readonly atDragStart: EventEmitter<AtFormatEmitEvent>;
    readonly atDragEnter: EventEmitter<AtFormatEmitEvent>;
    readonly atDragOver: EventEmitter<AtFormatEmitEvent>;
    readonly atDragLeave: EventEmitter<AtFormatEmitEvent>;
    readonly atDrop: EventEmitter<AtFormatEmitEvent>;
    readonly atDragEnd: EventEmitter<AtFormatEmitEvent>;
    prefixCls: string;
    highlightKeys: any[];
    atNodeClass: {};
    atNodeSwitcherClass: {};
    atNodeContentClass: {};
    atNodeContentIconClass: {};
    atNodeContentLoadingClass: {};
    atNodeChildrenClass: {};
    /**
     * drag var
     */
    destory$: Subject<{}>;
    dragPos: number;
    dragPosClass: object;
    /**
     * default set
     */
    _atTreeNode: AtTreeNode;
    _searchValue: string;
    _atExpandAll: boolean;
    _atDraggable: boolean;
    oldAPIIcon: boolean;
    readonly atIcon: string;
    readonly canDraggable: boolean | null;
    readonly isShowLineIcon: boolean;
    readonly isShowSwitchIcon: boolean;
    readonly isSwitcherOpen: boolean;
    readonly isSwitcherClose: boolean;
    readonly displayStyle: string;
    /**
     * reset node class
     */
    setClassMap(): void;
    /**
     * click node to select, 200ms to dbl click
     */
    atClick(event: MouseEvent): void;
    atDblClick(event: MouseEvent): void;
    /**
     * @param event
     */
    atContextMenu(event: MouseEvent): void;
    /**
     * collapse node
     * @param event
     */
    _clickExpand(event: MouseEvent): void;
    /**
     * check node
     * @param event
     */
    _clickCheckBox(event: MouseEvent): void;
    /**
     * drag event
     * @param e
     */
    clearDragClass(): void;
    handleDragStart(e: DragEvent): void;
    handleDragEnter(e: DragEvent): void;
    handleDragOver(e: DragEvent): void;
    handleDragLeave(e: DragEvent): void;
    handleDragDrop(e: DragEvent): void;
    handleDragEnd(e: DragEvent): void;
    /**
     * 监听拖拽事件
     */
    handDragEvent(): void;
    constructor(atTreeService: AtTreeService, ngZone: NgZone, renderer: Renderer2, elRef: ElementRef);
    ngOnInit(): void;
    ngOnChanges(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    ngOnDestroy(): void;
}
