import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { SearchComponent } from 'ng-devui/search';
import { ICheckboxInput, ITreeItem, OperableTreeComponent, TreeNode } from 'ng-devui/tree';
import { DevConfigService } from 'ng-devui/utils';
import { Subject, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class TreeSelectComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy, OnChanges {
    protected renderer: Renderer2;
    protected changeDetectorRef: ChangeDetectorRef;
    private i18n;
    private devConfigService;
    checkableRelation: 'upward' | 'downward' | 'both' | 'none';
    set allowClear(allowClear: boolean);
    get allowClear(): boolean;
    set treeData(treeData: ITreeItem[]);
    get treeData(): ITreeItem[];
    get isOpen(): boolean;
    set isOpen(value: boolean);
    set value(val: any);
    get value(): any;
    constructor(renderer: Renderer2, changeDetectorRef: ChangeDetectorRef, i18n: I18nService, devConfigService: DevConfigService);
    showAnimation: boolean;
    styleType: string;
    showGlowStyle: boolean;
    get hasGlowStyle(): boolean;
    placeholder: string;
    searchPlaceholder: string;
    disabled: boolean;
    expandTree: boolean;
    multiple: boolean;
    treeNodeIdKey: string;
    treeNodeChildrenKey: string;
    treeNodeTitleKey: string;
    disabledKey: string;
    leafOnly: boolean;
    delimiter: string;
    iconParentOpen: string;
    iconParentClose: string;
    iconLeaf: string;
    closeOnNodeSelected: boolean;
    width: string;
    searchable: boolean;
    appendTo: string;
    allowUnselect: boolean;
    enableLabelization: boolean;
    iconTemplatePosition: string;
    iconTemplateInput: TemplateRef<any>;
    customItemTemplate: TemplateRef<any>;
    customNoDataTemplate: TemplateRef<any>;
    customViewTemplate: TemplateRef<any>;
    customSearchFn: (treeData: TreeNode[], keyword: string) => boolean | TreeNode[];
    customViewDirection: 'top' | 'bottom' | 'right' | 'left';
    selectHost: ElementRef;
    optionsContainer: ElementRef;
    tree: OperableTreeComponent;
    searchInput: SearchComponent;
    searchInputModel: any;
    popper: any;
    iconTemplatePassThrough: any;
    nodeToggleEvent: EventEmitter<any>;
    valueChanged: EventEmitter<any>;
    toggleChange: EventEmitter<boolean>;
    virtualScroll: boolean;
    virtualScrollItemSize: number;
    virtualScrollMinBufferPx: number;
    virtualScrollMaxBufferPx: number;
    virtualScrollHeightPx: number;
    checkboxInput: ICheckboxInput;
    _treeData: Array<ITreeItem>;
    currentActiveNode: ITreeItem;
    searchString: string;
    i18nCommonText: I18nInterface['common'];
    i18nSubscription: Subscription;
    noRecord: boolean;
    valueType: 'array' | 'object' | undefined;
    displayValue: string | Array<string>;
    valueLength: number;
    userAgent: string;
    destroy$: Subject<void>;
    validVirtualScrollHeight: number;
    private _value;
    private _isOpen;
    private _sourceTree;
    private _allowClear;
    private timer;
    readyEvent: (treeSelect: TreeSelectComponent) => void;
    private onChange;
    private onTouch;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    ngOnInit(): void;
    afterTreeInit(): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    writeValue(value: any): void;
    toggle(): void;
    private setI18nText;
    private queryMedia;
    private prepareTree;
    private nodeSelected;
    private resolveParentNode;
    private refreshTree;
    onOperableNodeChecked(selectedNodes: ITreeItem[]): void;
    onOperableNodeSelected(selectedNode: TreeNode | TreeNode[]): void;
    emitEvents(): void;
    visualizeSelectedItems(): void;
    visualizeMultipleValue(): void;
    visualizeSingleValue(): void;
    emptyInput(): void;
    selectedValue(): any;
    responsePopperChange(popperState: any): void;
    private focusSearchInput;
    search(searchString: any): void;
    customSearchFnHandle(searchString: any): boolean | TreeNode[];
    private registerSearchListener;
    clearValue(event: any, item: any, index?: any): void;
    clearAll(): void;
    onNodeToggled($event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TreeSelectComponent, "d-tree-select", ["select"], { "checkableRelation": { "alias": "checkableRelation"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "treeData": { "alias": "treeData"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "showGlowStyle": { "alias": "showGlowStyle"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expandTree": { "alias": "expandTree"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "treeNodeIdKey": { "alias": "treeNodeIdKey"; "required": false; }; "treeNodeChildrenKey": { "alias": "treeNodeChildrenKey"; "required": false; }; "treeNodeTitleKey": { "alias": "treeNodeTitleKey"; "required": false; }; "disabledKey": { "alias": "disabledKey"; "required": false; }; "leafOnly": { "alias": "leafOnly"; "required": false; }; "delimiter": { "alias": "delimiter"; "required": false; }; "iconParentOpen": { "alias": "iconParentOpen"; "required": false; }; "iconParentClose": { "alias": "iconParentClose"; "required": false; }; "iconLeaf": { "alias": "iconLeaf"; "required": false; }; "closeOnNodeSelected": { "alias": "closeOnNodeSelected"; "required": false; }; "width": { "alias": "width"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "allowUnselect": { "alias": "allowUnselect"; "required": false; }; "enableLabelization": { "alias": "enableLabelization"; "required": false; }; "iconTemplatePosition": { "alias": "iconTemplatePosition"; "required": false; }; "iconTemplateInput": { "alias": "iconTemplateInput"; "required": false; }; "customItemTemplate": { "alias": "customItemTemplate"; "required": false; }; "customNoDataTemplate": { "alias": "customNoDataTemplate"; "required": false; }; "customViewTemplate": { "alias": "customViewTemplate"; "required": false; }; "customSearchFn": { "alias": "customSearchFn"; "required": false; }; "customViewDirection": { "alias": "customViewDirection"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; }; "virtualScrollMinBufferPx": { "alias": "virtualScrollMinBufferPx"; "required": false; }; "virtualScrollMaxBufferPx": { "alias": "virtualScrollMaxBufferPx"; "required": false; }; "virtualScrollHeightPx": { "alias": "virtualScrollHeightPx"; "required": false; }; "readyEvent": { "alias": "readyEvent"; "required": false; }; }, { "nodeToggleEvent": "nodeToggleEvent"; "valueChanged": "valueChanged"; "toggleChange": "toggleChange"; }, ["iconTemplatePassThrough"], never, false, never>;
}
