import { OnInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy } from '@angular/core';
import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
import { Observable } from 'rxjs/Observable';
import { SearchComboBoxGenericService } from '../search-combo-box-generic/search-combo-box-generic.service';
import { SearchComboBoxGenericModel } from '../search-combo-box';
export declare class RemoteMultiChoiceComponent implements OnInit, OnChanges, OnDestroy {
    service: SearchComboBoxGenericService;
    cd: ChangeDetectorRef;
    private formBuilder;
    private searchSubject$;
    private destroy$;
    dataOrigin: any;
    dataTarget: any;
    asyncDataSelected: any;
    dataLabel: any[];
    preSelectedFields: any[];
    selectedFields: any;
    preSelectedOptions: any;
    selectedOptions: any;
    emitValues: any[];
    formGroup: FormGroup;
    itemControl: FormControl;
    componentModel: SearchComboBoxGenericModel;
    preSelectedValues: any[];
    itemSelected: EventEmitter<any>;
    constructor(service: SearchComboBoxGenericService, cd: ChangeDetectorRef, formBuilder: FormBuilder);
    ngOnInit(): void;
    ngOnChanges(): void;
    ngOnDestroy(): void;
    private subscribeToSearch();
    /**
     *
     */
    setValuesFromParent(): void;
    /**
   * Listen to every change that is typed into the filter component
   * @param event
   */
    changeDataSelected(value: string): void;
    /**
     * fill the list of preselected items
     * @param data
     */
    getInfoDatalabel(data: any[]): void;
    searchItems(token: string, componentModel: SearchComboBoxGenericModel): Observable<any>;
    /**
      * Triggers event when smth in selected select changes
      * @param event
      */
    selectedChanges(event: any[]): void;
    /**
      * Triggers event when smth in preselected select changes
      * @param event
      */
    preSelectedChanges(event: any[]): void;
    /**
      * Set all items to preselected list
      */
    setAllPreselectedItems(): void;
    /**
    * Set many items from selected list
    */
    setMultipleSelectFields(): void;
    /**
     * Set many items from preselected list
     */
    setMultiplePreSelectFields(): void;
    /**
     * Set all items to selected list
     */
    setAllSelectedItems(): void;
    /**
    * Set selected items dbclick
    */
    setSelectedItems(event: any): void;
    /**
    * Set preselected items dbclick
    * @param event
    */
    setPreSelectedItems(event: any): void;
    /**
     * Order the array according to the variables entered in the model
     * @param arraytmp
     */
    sortArraysMultichoise(arraytmp: any[]): any[];
    /**
     * Returns the converted variable according to the data type defined in the model
     * @param value
     */
    castTypeValue(value: any): number | string | Date | boolean | any;
    /**
     * Removes items by label
     * @param list
     * @param item
     */
    removeItemInListFields(list: any[], item: any): void;
    /**
     * Set items and emits selected items events
     */
    setItems(): void;
    /**
     * Disable button when you don't have a collection
     */
    disabledBtn(): boolean;
    /**
     * Returns the comparison and display variable that has been predefined in the model
     * @param value
     */
    getValue(value: any): string | null;
}
