import { AfterViewInit, EventEmitter, OnDestroy, ElementRef } from '@angular/core'; import { ControlValueAccessor, FormControl, FormGroup, ValidatorFn } from '@angular/forms'; import { Subscription } from 'rxjs'; import { Http, RequestOptions } from '@angular/http'; import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { SingleSelectConfig } from './config.service'; import { OptionModel, OptionWithGroupModel, AjaxSettings } from './model'; export declare const newEntityLen = 3; export declare class SingleSelectComponent implements ControlValueAccessor, OnDestroy, AfterViewInit { http: Http; private config; private el; _isResultsShown: boolean; isResultsShown: boolean; isWithGroups: boolean; isShowResultsOnTop: boolean; isDataLoaded: boolean; isQueryStringValid: boolean; isAjax: boolean; isPendingRequest: boolean; isSkipQuery: boolean; serverError: boolean | string; id: string; server: string; latestQuery: string; newItemPostfix: string; originalPlaceholder: string; totalItemsInAjaxResponse: number; currentAjaxPage: number; focusedResultIndex: number; onSearchModelChange: Subject; searchModel: FormControl; form: FormGroup; selectedItem: OptionModel; subscribers: Subscription[]; placeholder: string; allowClear: boolean; entityName: string; showAddNewBtn: boolean; disableSearch: boolean; allowCreateEntity: boolean; disabled: boolean; _ajax: AjaxSettings; optionsListContainer: Element; ajax: AjaxSettings; _viewPath: string; viewPath: string; _options: Array; options: Array; readonly isOptionsNotFound: boolean; _value: string | number; value: string | number; onNewEntityCreated: EventEmitter; onShown: EventEmitter; onHidden: EventEmitter; onSelected: EventEmitter; onAddClicked: EventEmitter; onAjaxResponseReceived: EventEmitter<{ total_rows: number; }>; constructor(http: Http, config: SingleSelectConfig, el: ElementRef); subscribeToSearchModelChange(): void; ngAfterViewInit(): void; writeValue(value: string | number, isSelect?: boolean): void; resetValue(): void; clearSelection(e?: Event): void; setSelectedItem(arr: Array): void; selectItemHandler(value: string | number, index: any): void; loadMoreOptionsFromServer(): void; getOptionsFromServer(): void; getRequestParams(params?: any): RequestOptions; sendRequest(page?: number): Observable; responseMapper(res: { data: any[]; }): OptionModel[]; filterOptions(value?: string): void; filterFlatOptions(value: string): void; filterOptionsWithGroup(value: string): void; showResults(e: Event): void; toggleResults(e?: Event): void; addNewEntityToOptions(): void; setSelectedItemToSearchModel(): void; trimLabel(str: string): string; calculateResultsPosition(): void; calculateTextAreaHeight(): void; enterClickHandler(e: Event): void; inputKeyUpHandler($event: KeyboardEvent): void; setScrollForList(): void; inputBlurHandler(e: Event): void; enterKeydownHandler(e: Event): void; inputClickHandler(e: Event | any): void; resultsClickHandler($event: Event): void; documentClickHandler(e: Event | any): void; ngOnDestroy(): void; onChange: any; onTouched: any; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; trackListByFn(index: number): number; searchModelValidator(): ValidatorFn; }