/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChange, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { FlattenNode, NzConfigService, NzFormatBeforeDropEvent, NzFormatEmitEvent, NzNoAnimationDirective, NzTreeBase, NzTreeBaseService, NzTreeNode, NzTreeNodeKey, NzTreeNodeOptions } from 'ng-zorro-antd/core';
import { Observable, Subject } from 'rxjs';
import { NzTreeService } from './nz-tree.service';
import * as i0 from "@angular/core";
export declare function NzTreeServiceFactory(higherOrderService: NzTreeBaseService, treeService: NzTreeService): NzTreeBaseService;
export declare class NzTreeComponent extends NzTreeBase implements OnInit, OnDestroy, ControlValueAccessor, OnChanges {
    nzConfigService: NzConfigService;
    private cdr;
    noAnimation?: NzNoAnimationDirective | undefined;
    nzShowIcon: boolean;
    nzShowExpand: boolean;
    nzShowLine: boolean;
    nzExpandedIcon: TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    nzCheckable: boolean;
    nzAsyncData: boolean;
    nzDraggable: boolean;
    nzHideUnMatched: boolean;
    nzSelectMode: boolean;
    nzCheckStrictly: boolean;
    nzBlockNode: boolean;
    nzExpandAll: boolean;
    nzTreeTemplate: TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    nzTreeTemplateChild: TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    get treeTemplate(): TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    nzBeforeDrop: (confirm: NzFormatBeforeDropEvent) => Observable<boolean>;
    nzMultiple: boolean;
    nzData: NzTreeNodeOptions[] | NzTreeNode[];
    nzExpandedKeys: NzTreeNodeKey[];
    nzSelectedKeys: NzTreeNodeKey[];
    nzCheckedKeys: NzTreeNodeKey[];
    nzSearchValue: string;
    nzSearchFunc: (node: NzTreeNodeOptions) => boolean;
    /**
     * To render nodes if root is changed.
     */
    get nzNodes(): NzTreeNode[];
    get nzFlattenNodes(): FlattenNode[];
    readonly nzExpandedKeysChange: EventEmitter<string[]>;
    readonly nzSelectedKeysChange: EventEmitter<string[]>;
    readonly nzCheckedKeysChange: EventEmitter<string[]>;
    readonly nzSearchValueChange: EventEmitter<NzFormatEmitEvent>;
    readonly nzClick: EventEmitter<NzFormatEmitEvent>;
    readonly nzDblClick: EventEmitter<NzFormatEmitEvent>;
    readonly nzContextMenu: EventEmitter<NzFormatEmitEvent>;
    readonly nzCheckBoxChange: EventEmitter<NzFormatEmitEvent>;
    readonly nzExpandChange: EventEmitter<NzFormatEmitEvent>;
    readonly nzOnDragStart: EventEmitter<NzFormatEmitEvent>;
    readonly nzOnDragEnter: EventEmitter<NzFormatEmitEvent>;
    readonly nzOnDragOver: EventEmitter<NzFormatEmitEvent>;
    readonly nzOnDragLeave: EventEmitter<NzFormatEmitEvent>;
    readonly nzOnDrop: EventEmitter<NzFormatEmitEvent>;
    readonly nzOnDragEnd: EventEmitter<NzFormatEmitEvent>;
    HIDDEN_STYLE: {
        width: number;
        height: number;
        display: string;
        overflow: string;
        opacity: number;
        border: number;
        padding: number;
        margin: number;
    };
    destroy$: Subject<unknown>;
    prefixCls: string;
    classMap: {};
    classMapOfNodeList: {};
    classMapOfListContainer: {};
    onChange: (value: NzTreeNode[]) => void;
    onTouched: () => void;
    setClassMap(): void;
    writeValue(value: NzTreeNode[]): void;
    registerOnChange(fn: (_: NzTreeNode[]) => void): void;
    registerOnTouched(fn: () => void): void;
    /**
     * Render all properties of nzTree
     * @param changes: all changes from @Input
     */
    renderTreeProperties(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    /**
     * nzData
     * @param value
     */
    handleNzData(value: any[]): void;
    handleFlattenNodes(data: NzTreeNode[], expandKeys?: NzTreeNodeKey[] | true): void;
    handleCheckedKeys(keys: NzTreeNodeKey[]): void;
    handleExpandedKeys(keys?: NzTreeNodeKey[] | true): void;
    handleSelectedKeys(keys: NzTreeNodeKey[], isMulti: boolean): void;
    handleSearchValue(value: string, searchFunc?: (node: NzTreeNodeOptions) => boolean): void;
    /**
     * Handle emit event
     * @param event
     * handle each event
     */
    eventTriggerChanged(event: NzFormatEmitEvent): void;
    /**
     * Click expand icon
     */
    renderTree(): void;
    constructor(nzTreeService: NzTreeBaseService, nzConfigService: NzConfigService, cdr: ChangeDetectorRef, noAnimation?: NzNoAnimationDirective | undefined);
    ngOnInit(): void;
    ngOnChanges(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDef<NzTreeComponent>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<NzTreeComponent, "nz-tree", ["nzTree"], { "nzShowIcon": "nzShowIcon"; "nzShowExpand": "nzShowExpand"; "nzShowLine": "nzShowLine"; "nzExpandedIcon": "nzExpandedIcon"; "nzCheckable": "nzCheckable"; "nzAsyncData": "nzAsyncData"; "nzDraggable": "nzDraggable"; "nzHideUnMatched": "nzHideUnMatched"; "nzSelectMode": "nzSelectMode"; "nzCheckStrictly": "nzCheckStrictly"; "nzBlockNode": "nzBlockNode"; "nzExpandAll": "nzExpandAll"; "nzTreeTemplate": "nzTreeTemplate"; "nzBeforeDrop": "nzBeforeDrop"; "nzMultiple": "nzMultiple"; "nzData": "nzData"; "nzExpandedKeys": "nzExpandedKeys"; "nzSelectedKeys": "nzSelectedKeys"; "nzCheckedKeys": "nzCheckedKeys"; "nzSearchValue": "nzSearchValue"; "nzSearchFunc": "nzSearchFunc"; }, { "nzExpandedKeysChange": "nzExpandedKeysChange"; "nzSelectedKeysChange": "nzSelectedKeysChange"; "nzCheckedKeysChange": "nzCheckedKeysChange"; "nzSearchValueChange": "nzSearchValueChange"; "nzClick": "nzClick"; "nzDblClick": "nzDblClick"; "nzContextMenu": "nzContextMenu"; "nzCheckBoxChange": "nzCheckBoxChange"; "nzExpandChange": "nzExpandChange"; "nzOnDragStart": "nzOnDragStart"; "nzOnDragEnter": "nzOnDragEnter"; "nzOnDragOver": "nzOnDragOver"; "nzOnDragLeave": "nzOnDragLeave"; "nzOnDrop": "nzOnDrop"; "nzOnDragEnd": "nzOnDragEnd"; }, ["nzTreeTemplateChild"]>;
}
