import { OnInit, Renderer2, ElementRef } from '@angular/core';
import { FormControl } from '@angular/forms';
import { AsiComponentTemplateTreeLeafDef, AsiComponentTemplateTreeNodeDef, AsiComponentTemplateClearDef } from '../common/asi-component-template';
import { AsiTreeViewComponent } from '../asi-tree-view/asi-tree-view.component';
import { AsiTreeViewNodeComponent } from '../asi-tree-view/node/asi-tree-view-node.component';
import { DefaultControlValueAccessor } from '../common/default-control-value-accessor';
export declare class AsiTreeSelectComponent extends DefaultControlValueAccessor implements OnInit {
    private renderer;
    private elementRef;
    /** html id */
    id: string;
    /** html name */
    name: string;
    /** Label to display (is translated) */
    label: string;
    /** Label position */
    labelPosition: 'top' | 'left' | 'right' | 'bottom' | 'bottom-center' | 'top-center';
    /** Placeholder */
    placeholder: string;
    /** Select data */
    data: any[];
    /** Field containing the label of the item to display */
    labelField: string;
    /** Field containing the children of an item */
    childrenField: string;
    /** Allow selection of nodes which have children */
    allowParentSelection: boolean;
    /** Functions used to decide if an item should be displayed when a filter is applied (returns a boolean) */
    filter: (item: any, filter: string) => boolean;
    /** Display a clear button */
    clearButton: boolean;
    selectHeaderContainer: ElementRef;
    asiTreeView: AsiTreeViewComponent;
    clearDef: AsiComponentTemplateClearDef;
    nodeDef: AsiComponentTemplateTreeNodeDef;
    leafDef: AsiComponentTemplateTreeLeafDef;
    formControl: FormControl;
    dropdownOpened: boolean;
    constructor(renderer: Renderer2, elementRef: ElementRef);
    ngOnInit(): void;
    isLeaf: (item: any) => boolean;
    onNodeSelected(node: AsiTreeViewNodeComponent): void;
    onFilter(filter: string): void;
    toggleDropdown(): void;
    onDropdownClosed(): void;
    clear(): void;
    displayClearButton(): boolean;
    writeValue(value: any): void;
}
