import { BooleanInput } from '@angular/cdk/coercion';
import { SelectionModel } from '@angular/cdk/collections';
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { FlatTreeControl } from '@angular/cdk/tree';
import { ElementRef, OnChanges, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, FormControl, ValidatorFn } from '@angular/forms';
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { CanColor, CanDisable, CanDisableRipple } from '@angular/material/core';
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
import { DisplayDensity } from '@metad/ocap-angular/core';
import { DisplayBehaviour, FlatTreeNode, TreeNodeInterface } from '@metad/ocap-core';
import * as i0 from "@angular/core";
declare const _TreeSelectBase: import("@angular/material/core")._Constructor<CanColor> & import("@angular/material/core")._AbstractConstructor<CanColor> & import("@angular/material/core")._Constructor<CanDisable> & import("@angular/material/core")._AbstractConstructor<CanDisable> & import("@angular/material/core")._Constructor<CanDisableRipple> & import("@angular/material/core")._AbstractConstructor<CanDisableRipple> & {
    new (_elementRef: ElementRef): {
        _elementRef: ElementRef;
    };
};
/**
 * TreeSelect 组件分为三种展示模式:
 * 1. Select 形式, 树型选项列表以弹出列表的形式.
 * 2. Autocomplete 形式, 输入框可输入搜索条件进行过滤, 树型选项列表以下拉列表的形式展示.
 * 3. TreeViewer 形式, 树型选项列表以视图的方式平铺展示出来.
 */
export declare class NgmTreeSelectComponent<T> extends _TreeSelectBase implements OnChanges, ControlValueAccessor, CanDisable, CanColor, CanDisableRipple {
    #private;
    appearance: MatFormFieldAppearance;
    floatLabel: FloatLabelType;
    displayBehaviour: DisplayBehaviour | string;
    displayDensity: DisplayDensity | string;
    label: string;
    placeholder: string;
    validators: ValidatorFn | ValidatorFn[] | null;
    readonly panelWidth: import("@angular/core").InputSignal<string | number>;
    get treeNodes(): TreeNodeInterface<T>[];
    set treeNodes(value: TreeNodeInterface<T>[]);
    private treeNodes$;
    initialLevel: number;
    get multiple(): boolean | string;
    set multiple(value: boolean | string);
    private _multiple;
    /**
     * Max Count for autocomplete chips
     */
    maxTagCount: number;
    get virtualScroll(): BooleanInput;
    set virtualScroll(value: BooleanInput);
    private _virtualScroll;
    get autocomplete(): boolean;
    set autocomplete(value: boolean | string);
    private _autocomplete;
    get searchable(): boolean;
    set searchable(value: boolean | string);
    private _searchable;
    get treeViewer(): boolean;
    set treeViewer(value: boolean | string);
    private _treeViewer;
    /**
     * Whether the first option should be highlighted when the autocomplete panel is opened.
     */
    get autoActiveFirstOption(): boolean;
    set autoActiveFirstOption(value: BooleanInput);
    private _autoActiveFirstOption;
    /** Whether the active option should be selected as the user is navigating. */
    get autoSelectActiveOption(): boolean;
    set autoSelectActiveOption(value: BooleanInput);
    private _autoSelectActiveOption;
    loading: boolean;
    autoInput: ElementRef<HTMLInputElement>;
    cdkVirtualScrollViewPort: CdkVirtualScrollViewport;
    get useAutocomplete(): BooleanInput;
    formControl: FormControl<FlatTreeNode<any> | FlatTreeNode<any>[]>;
    get value(): FlatTreeNode<any> | FlatTreeNode<any>[];
    get isNotInitial(): number | FlatTreeNode<any>;
    autoControl: FormControl<string>;
    get autoHighlight(): string;
    /**
     * Tree expand status
     */
    unfold: boolean;
    separatorKeysCodes: number[];
    multipleSelection: SelectionModel<string>;
    singleSelection: SelectionModel<string>;
    virtualScrollItemSize: number;
    treeNodePaddingIndent: number;
    private transformer;
    treeControl: FlatTreeControl<FlatTreeNode<any>, FlatTreeNode<any>>;
    treeFlattener: MatTreeFlattener<TreeNodeInterface<any>, FlatTreeNode<any>, FlatTreeNode<any>>;
    dataSource: MatTreeFlatDataSource<TreeNodeInterface<any>, FlatTreeNode<any>, FlatTreeNode<any>>;
    selectOptions$: import("rxjs").Observable<FlatTreeNode<any>[]>;
    readonly selectedOptions$: import("rxjs").Observable<FlatTreeNode<any>[]>;
    readonly trigger$: import("rxjs").Observable<string | string[]>;
    restChips: any[];
    readonly chipList$: import("rxjs").Observable<TreeNodeInterface<unknown>[]>;
    allSelect: boolean;
    onChange: (input: any) => void;
    private _nodesSub;
    private _treeNodesSub;
    private _formControlSub;
    private _singleSelectionSub;
    private multipleSelectionSub;
    constructor(elementRef: ElementRef);
    ngOnChanges({ displayDensity, validators }: SimpleChanges): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    compareWith(a: FlatTreeNode<any>, b: FlatTreeNode<any>): boolean;
    displayWith(value: any): any;
    trackByFun(index: number, item: any): any;
    hasChild: (_: number, node: FlatTreeNode<T>) => boolean;
    isSelected(option: FlatTreeNode<T>): boolean;
    toggleNode(node: FlatTreeNode<T>): void;
    onAutocompleteSelected(event: MatAutocompleteSelectedEvent): void;
    onCheckboxSelect(event: MatCheckboxChange, option: FlatTreeNode<any>): void;
    removeChip(event: any): void;
    clear(event: any): void;
    clearSearch(event: any): void;
    add(e: any): void;
    someSelect(): boolean;
    setAll(selected: boolean): void;
    onAutocompleteOpened(): void;
    toggleExpand(): void;
    getErrorMessage(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmTreeSelectComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmTreeSelectComponent<any>, "ngm-tree-select", never, { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "displayBehaviour": { "alias": "displayBehaviour"; "required": false; }; "displayDensity": { "alias": "displayDensity"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "validators": { "alias": "validators"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "treeNodes": { "alias": "treeNodes"; "required": false; }; "initialLevel": { "alias": "initialLevel"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "maxTagCount": { "alias": "maxTagCount"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "treeViewer": { "alias": "treeViewer"; "required": false; }; "autoActiveFirstOption": { "alias": "autoActiveFirstOption"; "required": false; }; "autoSelectActiveOption": { "alias": "autoSelectActiveOption"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, ["[matSuffix]"], true, never>;
}
export {};
