import { ControlValueAccessor } from '@angular/forms';
import { SelectableItem } from '../models/selectable-item';
import { SelectService } from '../services/select.service';
import { TreeSelectDefaultOptions } from '../models/tree-select-default-options';
export declare const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any;
export declare class TreeSelectComponent implements ControlValueAccessor {
    private svc;
    private defaultOpts;
    onTouchedCallback: () => void;
    showMoreLink: boolean;
    moreLoaded: boolean;
    disabled: boolean;
    placeholder: string;
    filterPlaceholder: string;
    allowFilter: boolean;
    private _isOpen;
    private onChangeCallback;
    private haveFocus;
    private inputFocus;
    items: any[];
    idField: string;
    textField: string;
    allowParentSelection: boolean;
    restructureWhenChildSameName: boolean;
    childrenField: string;
    multiple: boolean;
    filterCaseSensitive: boolean;
    expandMode: string;
    maxVisibleItemCount: number;
    readonly internalItems: SelectableItem[];
    readonly selection: SelectableItem[];
    filter: string;
    constructor(svc: SelectService, defaultOpts: TreeSelectDefaultOptions);
    keyUp($event: any): void;
    toggle($event: any): void;
    removeItem($event: any, item: SelectableItem): void;
    readonly isOpen: boolean;
    clickedOutside(): void;
    onTouched(): void;
    setInputFocus(): void;
    setInputFocusOut(): void;
    /**
     * Write a new value to the element.
     *
     * @param {*} value
     * @memberof TreeSelectComponent
     */
    writeValue(value: any): void;
    /**
     * Set the function to be called when the control receives a change event.
     *
     * @param {*} fn
     * @memberof TreeSelectComponent
     */
    registerOnChange(fn: any): void;
    /**
     * Set the function to be called when the control receives a touch event.
     *
     * @param {*} fn
     * @memberof TreeSelectComponent
     */
    registerOnTouched(fn: any): void;
    /**
     * This function is called when the control status changes to or from "DISABLED".
     * Depending on the value, it will enable or disable the appropriate DOM element.
     *
     * @param {boolean} isDisabled
     * @memberof TreeSelectComponent
     */
    setDisabledState?(isDisabled: boolean): void;
    /**
     * This finction is called when user click on show more link.
     *
     * @param {*} $event
     * @memberof TreeSelectComponent
     */
    loadMore($event: any): void;
    private ProcessMatchFilterTreeItem(tree, filter);
}
