/**
 * 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 { FocusMonitor } from '@angular/cdk/a11y';
import { Direction, Directionality } from '@angular/cdk/bidi';
import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { NzConfigKey, NzConfigService } from 'ng-zorro-antd/core/config';
import { NzFormNoStatusService, NzFormStatusService } from 'ng-zorro-antd/core/form';
import { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';
import { NzFormatEmitEvent, NzTreeBase, NzTreeBaseService, NzTreeNode, NzTreeNodeOptions } from 'ng-zorro-antd/core/tree';
import { BooleanInput, NgClassInterface, NgStyleInterface, NzSizeLDSType, NzStatus, NzValidateStatus, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';
import { NzSelectSearchComponent } from 'ng-zorro-antd/select';
import { NzTreeComponent } from 'ng-zorro-antd/tree';
import { NzTreeSelectService } from './tree-select.service';
import * as i0 from "@angular/core";
export declare function higherOrderServiceFactory(injector: Injector): NzTreeBaseService;
export declare class NzTreeSelectComponent extends NzTreeBase implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {
    nzConfigService: NzConfigService;
    private renderer;
    private cdr;
    private elementRef;
    private directionality;
    private focusMonitor;
    noAnimation?: NzNoAnimationDirective | undefined;
    nzFormStatusService?: NzFormStatusService | undefined;
    private nzFormNoStatusService?;
    readonly _nzModuleName: NzConfigKey;
    static ngAcceptInputType_nzAllowClear: BooleanInput;
    static ngAcceptInputType_nzShowExpand: BooleanInput;
    static ngAcceptInputType_nzShowLine: BooleanInput;
    static ngAcceptInputType_nzDropdownMatchSelectWidth: BooleanInput;
    static ngAcceptInputType_nzCheckable: BooleanInput;
    static ngAcceptInputType_nzHideUnMatched: BooleanInput;
    static ngAcceptInputType_nzShowIcon: BooleanInput;
    static ngAcceptInputType_nzShowSearch: BooleanInput;
    static ngAcceptInputType_nzDisabled: BooleanInput;
    static ngAcceptInputType_nzAsyncData: BooleanInput;
    static ngAcceptInputType_nzMultiple: BooleanInput;
    static ngAcceptInputType_nzDefaultExpandAll: BooleanInput;
    static ngAcceptInputType_nzCheckStrictly: BooleanInput;
    nzId: string | null;
    nzAllowClear: boolean;
    nzShowExpand: boolean;
    nzShowLine: boolean;
    nzDropdownMatchSelectWidth: boolean;
    nzCheckable: boolean;
    nzHideUnMatched: boolean;
    nzShowIcon: boolean;
    nzShowSearch: boolean;
    nzDisabled: boolean;
    nzAsyncData: boolean;
    nzMultiple: boolean;
    nzDefaultExpandAll: boolean;
    nzCheckStrictly: boolean;
    nzVirtualItemSize: number;
    nzVirtualMaxBufferPx: number;
    nzVirtualMinBufferPx: number;
    nzVirtualHeight: string | null;
    nzExpandedIcon?: TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    nzNotFoundContent?: string;
    nzNodes: NzTreeNodeOptions[] | NzTreeNode[];
    nzOpen: boolean;
    nzSize: NzSizeLDSType;
    nzPlaceHolder: string;
    nzDropdownStyle: NgStyleInterface | null;
    nzDropdownClassName?: string;
    nzBackdrop: boolean;
    nzStatus: NzStatus;
    set nzExpandedKeys(value: string[]);
    get nzExpandedKeys(): string[];
    nzDisplayWith: (node: NzTreeNode) => string | undefined;
    nzMaxTagCount: number;
    nzMaxTagPlaceholder: TemplateRef<{
        $implicit: NzTreeNode[];
    }> | null;
    readonly nzOpenChange: EventEmitter<boolean>;
    readonly nzCleared: EventEmitter<void>;
    readonly nzRemoved: EventEmitter<NzTreeNode>;
    readonly nzExpandChange: EventEmitter<NzFormatEmitEvent>;
    readonly nzTreeClick: EventEmitter<NzFormatEmitEvent>;
    readonly nzTreeCheckBoxChange: EventEmitter<NzFormatEmitEvent>;
    nzSelectSearchComponent: NzSelectSearchComponent;
    treeRef: NzTreeComponent;
    cdkOverlayOrigin: CdkOverlayOrigin;
    cdkConnectedOverlay: CdkConnectedOverlay;
    nzTreeTemplate: TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    nzTreeTemplateChild: TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    get treeTemplate(): TemplateRef<{
        $implicit: NzTreeNode;
        origin: NzTreeNodeOptions;
    }>;
    prefixCls: string;
    statusCls: NgClassInterface;
    status: NzValidateStatus;
    hasFeedback: boolean;
    dropdownClassName: string;
    triggerWidth?: number;
    isComposing: boolean;
    isDestroy: boolean;
    isNotFound: boolean;
    focused: boolean;
    inputValue: string;
    dropDownPosition: 'top' | 'center' | 'bottom';
    selectedNodes: NzTreeNode[];
    expandedKeys: string[];
    value: string[];
    dir: Direction;
    private destroy$;
    onChange: OnChangeType;
    onTouched: OnTouchedType;
    get placeHolderDisplay(): string;
    get isMultiple(): boolean;
    constructor(nzTreeService: NzTreeSelectService, nzConfigService: NzConfigService, renderer: Renderer2, cdr: ChangeDetectorRef, elementRef: ElementRef, directionality: Directionality, focusMonitor: FocusMonitor, noAnimation?: NzNoAnimationDirective | undefined, nzFormStatusService?: NzFormStatusService | undefined, nzFormNoStatusService?: NzFormNoStatusService | undefined);
    ngOnInit(): void;
    ngOnDestroy(): void;
    isComposingChange(isComposing: boolean): void;
    setDisabledState(isDisabled: boolean): void;
    private setStatusStyles;
    ngOnChanges(changes: SimpleChanges): void;
    writeValue(value: string[] | string): void;
    registerOnChange(fn: (_: string[] | string | null) => void): void;
    registerOnTouched(fn: () => void): void;
    onKeydown(event: KeyboardEvent): void;
    trigger(): void;
    openDropdown(): void;
    closeDropDown(): void;
    onKeyDownInput(e: KeyboardEvent): void;
    onExpandedKeysChange(value: NzFormatEmitEvent): void;
    setInputValue(value: string): void;
    removeSelected(node: NzTreeNode, emit?: boolean): void;
    focusOnInput(): void;
    subscribeSelectionChange(): void;
    updateSelectedNodes(init?: boolean): void;
    updatePosition(): void;
    onPositionChange(position: ConnectedOverlayPositionChange): void;
    onClearSelection(): void;
    onClickOutside(event: MouseEvent): void;
    setSearchValues($event: NzFormatEmitEvent): void;
    updateCdkConnectedOverlayStatus(): void;
    trackValue(_index: number, option: NzTreeNode): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NzTreeSelectComponent, [null, null, null, null, null, { optional: true; }, null, { optional: true; host: true; }, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NzTreeSelectComponent, "nz-tree-select", ["nzTreeSelect"], { "nzId": "nzId"; "nzAllowClear": "nzAllowClear"; "nzShowExpand": "nzShowExpand"; "nzShowLine": "nzShowLine"; "nzDropdownMatchSelectWidth": "nzDropdownMatchSelectWidth"; "nzCheckable": "nzCheckable"; "nzHideUnMatched": "nzHideUnMatched"; "nzShowIcon": "nzShowIcon"; "nzShowSearch": "nzShowSearch"; "nzDisabled": "nzDisabled"; "nzAsyncData": "nzAsyncData"; "nzMultiple": "nzMultiple"; "nzDefaultExpandAll": "nzDefaultExpandAll"; "nzCheckStrictly": "nzCheckStrictly"; "nzVirtualItemSize": "nzVirtualItemSize"; "nzVirtualMaxBufferPx": "nzVirtualMaxBufferPx"; "nzVirtualMinBufferPx": "nzVirtualMinBufferPx"; "nzVirtualHeight": "nzVirtualHeight"; "nzExpandedIcon": "nzExpandedIcon"; "nzNotFoundContent": "nzNotFoundContent"; "nzNodes": "nzNodes"; "nzOpen": "nzOpen"; "nzSize": "nzSize"; "nzPlaceHolder": "nzPlaceHolder"; "nzDropdownStyle": "nzDropdownStyle"; "nzDropdownClassName": "nzDropdownClassName"; "nzBackdrop": "nzBackdrop"; "nzStatus": "nzStatus"; "nzExpandedKeys": "nzExpandedKeys"; "nzDisplayWith": "nzDisplayWith"; "nzMaxTagCount": "nzMaxTagCount"; "nzMaxTagPlaceholder": "nzMaxTagPlaceholder"; "nzTreeTemplate": "nzTreeTemplate"; }, { "nzOpenChange": "nzOpenChange"; "nzCleared": "nzCleared"; "nzRemoved": "nzRemoved"; "nzExpandChange": "nzExpandChange"; "nzTreeClick": "nzTreeClick"; "nzTreeCheckBoxChange": "nzTreeCheckBoxChange"; }, ["nzTreeTemplateChild"], never, false>;
}
