import { Observable } from 'rxjs'; import { FlCompareHost } from 'flex-controls/classes'; import { FlBaseControl, FlBaseControlHost } from 'flex-controls/interfaces'; import { AbstractConstructor, FlCompareFunction } from 'flex-controls/types'; import { FlControl } from './control'; import * as i0 from "@angular/core"; /** Uses to implement host that stores multiple values */ export declare abstract class FlControlArrayHost extends FlControl implements FlBaseControlHost, FlCompareHost { protected host?: FlBaseControlHost | undefined; /** Uses to compare two values (usefull to compare two objects, for example by id) */ compareFn: FlCompareFunction; private controls; private updatesFrom; private proxyModel; private controlChange$; constructor(host?: FlBaseControlHost | undefined); registerControl(control: FlControl): void; unregisterControl(control: FlControl): void; get controlChange(): Observable; typedControlChange(type: AbstractConstructor>): Observable; updateModel(obj: T[] | null): void; protected incomingUpdate(obj: T[] | null): void; private updateControls; private getNewModel; private updateControl; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, { "compareFn": { "alias": "compareFn"; "required": false; }; }, {}, never, never, false, never>; }