///
import { EventEmitter, OnInit, OnChanges, SimpleChange, TemplateRef, ElementRef, ChangeDetectorRef } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { services } from 'typescript-angular-utilities';
import __object = services.object;
import __array = services.array;
import __guid = services.guid;
import __transform = services.transform;
import __search = services.search;
import { ValidatedInputComponent } from '../validationInput';
import { ComponentValidator } from '../../../services/componentValidator/componentValidator.service';
import { FormComponent } from '../../form/form';
import { BusyComponent } from '../../busy/busy';
import { PopoutListComponent } from '../../popoutList/index';
export declare const DEFAULT_SERVER_SEARCH_DEBOUNCE: number;
export declare const DEFAULT_CLIENT_SEARCH_DEBOUNCE: number;
export interface ITypeaheadChanges {
value: SimpleChange;
[key: string]: SimpleChange;
}
export declare class TypeaheadComponent extends ValidatedInputComponent implements OnInit, OnChanges {
transform: __transform.ITransform;
getItems: {
(search?: string): Promise | Observable;
};
prefix: string;
clientSearch: boolean;
allowCollapse: boolean;
create: {
(value: string): T;
};
caseSensitiveSearching: boolean;
debounce: number;
selector: EventEmitter;
input: ElementRef;
busy: BusyComponent;
list: PopoutListComponent;
template: TemplateRef;
search: string;
searchStream: Subject;
cachedItems: any[];
getItemsRequest: Observable;
loading: boolean;
loadDelay: number;
placeholder: string;
allowCustomOption: boolean;
collapsed: boolean;
cacheDisplayList: any[];
private _visibleItems;
transformService: __transform.ITransformService;
searchUtility: __search.ISearchUtility;
changeDetector: ChangeDetectorRef;
readonly visibleItems$: Observable;
readonly canShowOptions: boolean;
readonly hideFlowerup: boolean;
constructor(transformService: __transform.TransformService, rlForm: FormComponent, componentValidator: ComponentValidator, object: __object.ObjectUtility, array: __array.ArrayUtility, guid: __guid.GuidService, searchService: __search.SearchUtility, changeDetector: ChangeDetectorRef);
focus(): void;
add(item: T): void;
remove(item: T): void;
clear(): void;
selectItem(item: T): void;
selectCustom(): void;
refresh(search: string): void;
ngOnInit(): void;
ngOnChanges(changes: ITypeaheadChanges): void;
getDisplayName(item: T): string;
loadItems(search: string): Observable;
private getItemsClient();
private showCustomSearch(search);
private filter(list, search);
}