import { AfterViewInit, DoCheck, ElementRef, EventEmitter, IterableDiffers, OnInit, QueryList, ViewContainerRef } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { ECLBaseDirective } from '../ecl-base.directive';
import { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';
import * as i0 from "@angular/core";
export declare class EclMultiselectComponent extends ECLBaseDirective implements OnInit, DoCheck, ControlValueAccessor, AfterViewInit {
    protected ngControl: NgControl;
    private el;
    private viewContainerRef;
    private differs;
    eclOptionItems: QueryList<EclMultiselectOptionDirective>;
    isInvalid: boolean;
    set eclPlaceholder(value: string);
    get disabled(): true;
    set disabled(value: true);
    private _disabled;
    eclSize: string;
    get cssClasses(): string;
    eclChange: EventEmitter<any>;
    private _eclPlaceholder;
    private differ;
    private hostEl;
    private hostParentEl;
    private hostWrapperEl;
    private selectIconContainerEl;
    private eclIconComponentEl;
    private multiselectWrapper;
    private multiselectContainer;
    private multiDropdown;
    private optionsWrapper;
    private multiSelectOptions;
    private multiSelectInput;
    private checkboxSelectAll;
    private selectedValues;
    private destroy$;
    constructor(ngControl: NgControl, el: ElementRef, viewContainerRef: ViewContainerRef, differs: IterableDiffers);
    ngOnInit(): void;
    ngDoCheck(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    onKeyUp(ev: MouseEvent): void;
    private removeAllOptions;
    private onOptionsChange;
    private hideOriginalSelectComponent;
    private createHtmlElements;
    private propagateChange;
    private propagateTouched;
    private buildMultiselectDropdown;
    private getHostElement;
    private getHostParentElement;
    private createHostWrapperContainer;
    private createWrapperMultiselect;
    private createSelectContainerMultiselect;
    private createDropdownForMultiselect;
    private createSearchForMultiselect;
    private createOptionWithCheckbox;
    private createCheckboxLabel;
    private createCheckboxInput;
    private updateCurrentValue;
    private createMultiSelectAll;
    private createOptionsWrapper;
    private selectAll;
    private createIconComponent;
    private createIconContainer;
    private searchOptions;
    private resetComponent;
    static ɵfac: i0.ɵɵFactoryDeclaration<EclMultiselectComponent, [{ optional: true; self: true; }, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EclMultiselectComponent, "select[eclMultiselect]", never, { "isInvalid": "isInvalid"; "eclPlaceholder": "eclPlaceholder"; "disabled": "disabled"; "eclSize": "eclSize"; }, { "eclChange": "eclChange"; }, ["eclOptionItems"], ["*"]>;
}
//# sourceMappingURL=ecl-multiselect.component.d.ts.map