import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChange, TemplateRef } from '@angular/core';
import { Observable, ReplaySubject, Subscription } from 'rxjs';
import { AtFormatBeforeDropEvent, AtFormatEmitEvent } from './interface';
import { AtTreeNode } from './at-tree-node';
import { AtTreeService } from './at-tree.service';
export declare class AtTreeComponent implements OnInit, OnChanges, OnDestroy {
    atTreeService: AtTreeService;
    atShowIcon: boolean;
    atShowLine: boolean;
    atCheckStrictly: boolean;
    atCheckable: boolean;
    atShowExpand: boolean;
    atAsyncData: boolean;
    atDraggable: boolean;
    atMultiple: boolean;
    atExpandAll: boolean;
    atHideUnMatched: boolean;
    atBeforeDrop: (confirm: AtFormatBeforeDropEvent) => Observable<boolean>;
    atData: any[];
    /**
     * @deprecated use
     * atExpandedKeys instead
     */
    atDefaultExpandedKeys: string[];
    /**
     * @deprecated use
     * atSelectedKeys instead
     */
    atDefaultSelectedKeys: string[];
    /**
     * @deprecated use
     * atCheckedKeys instead
     */
    atDefaultCheckedKeys: string[];
    atExpandedKeys: string[];
    atSelectedKeys: string[];
    atCheckedKeys: string[];
    atSearchValue: string;
    readonly atExpandedKeysChange: EventEmitter<string[]>;
    readonly atSelectedKeysChange: EventEmitter<string[]>;
    readonly atCheckedKeysChange: EventEmitter<string[]>;
    readonly atSearchValueChange: EventEmitter<AtFormatEmitEvent>;
    /**
     * @deprecated use
     * atSearchValueChange instead
     */
    readonly atOnSearchNode: EventEmitter<AtFormatEmitEvent>;
    readonly atClick: EventEmitter<AtFormatEmitEvent>;
    readonly atDblClick: EventEmitter<AtFormatEmitEvent>;
    readonly atContextMenu: EventEmitter<AtFormatEmitEvent>;
    readonly atCheckBoxChange: EventEmitter<AtFormatEmitEvent>;
    readonly atExpandChange: EventEmitter<AtFormatEmitEvent>;
    readonly atOnDragStart: EventEmitter<AtFormatEmitEvent>;
    readonly atOnDragEnter: EventEmitter<AtFormatEmitEvent>;
    readonly atOnDragOver: EventEmitter<AtFormatEmitEvent>;
    readonly atOnDragLeave: EventEmitter<AtFormatEmitEvent>;
    readonly atOnDrop: EventEmitter<AtFormatEmitEvent>;
    readonly atOnDragEnd: EventEmitter<AtFormatEmitEvent>;
    atTreeTemplate: TemplateRef<any>;
    _searchValue: any;
    atDefaultSubject: ReplaySubject<{
        type: string;
        keys: string[];
    }>;
    atDefaultSubscription: Subscription;
    atNodes: AtTreeNode[];
    prefixCls: string;
    atTreeClass: {};
    onChange: (value: AtTreeNode[]) => void;
    onTouched: () => void;
    getTreeNodes(): AtTreeNode[];
    /**
     * public function
     */
    getCheckedNodeList(): AtTreeNode[];
    getSelectedNodeList(): AtTreeNode[];
    getHalfCheckedNodeList(): AtTreeNode[];
    getExpandedNodeList(): AtTreeNode[];
    getMatchedNodeList(): AtTreeNode[];
    setClassMap(): void;
    writeValue(value: AtTreeNode[]): void;
    registerOnChange(fn: (_: AtTreeNode[]) => void): void;
    registerOnTouched(fn: () => void): void;
    constructor(atTreeService: AtTreeService);
    ngOnInit(): void;
    ngOnChanges(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    ngOnDestroy(): void;
}
