import { Subject, Observable } from 'rxjs'; import { ValidatorFn, AsyncValidatorFn } from "@angular/forms"; import { DynFormControl } from "./dyn-form-control"; export declare class DynAutoCompleteControl extends DynFormControl { type: string; loader: AutoCompleteCriteriaLoader; selectOptions$: Subject; total: number; items: any[]; constructor(options?: {}, validator?: ValidatorFn | ValidatorFn[] | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null); loadValues(value: any): void; displayFn(item: any): any; } export interface AutoCompleteLoadFn { (criteria: any): Observable; } export interface ArrayAutoCompleteFilterLoadFn { (item: any, value: any): boolean; } export interface AutoCompleteCriteriaLoader { codeProperty: string; valueProperty: string; prepare(criteria: any): Observable; processResponse(response: any): any; } export declare class ArrayAutoCompleteLoader implements AutoCompleteCriteriaLoader { items: any[]; filterFn: ArrayAutoCompleteFilterLoadFn; size: number; page: number; codeProperty: string; valueProperty: string; constructor(items: any[], filterFn: ArrayAutoCompleteFilterLoadFn, options: any); prepare(value: any): Observable; processResponse(response: any): any; } export declare class ObservableAutoCompleteLoader implements AutoCompleteCriteriaLoader { loadFn: AutoCompleteLoadFn; size: number; page: number; codeProperty: string; valueProperty: string; constructor(loadFn: AutoCompleteLoadFn, options?: any); prepare(value: any): Observable; processResponse(response: any): { total: any; items: any; }; } export declare class KeywordAutoCompleteCriteriaLoader implements AutoCompleteCriteriaLoader { loadFn: AutoCompleteLoadFn; size: number; page: number; inclusive: boolean; keywordProperty: string; codeProperty: string; valueProperty: string; constructor(loadFn: AutoCompleteLoadFn, options?: any); resolveContext(value: any): { size: number; page: number; inclusive: boolean; criteria: any[]; }; prepare(value: any): Observable; processResponse(response: any): { total: any; items: any; }; }