import { BehaviorSubject } from 'rxjs'; import { BasicModel } from './basic'; import { ValidateOption } from '../validate'; import { INormalizeBeforeSubmit } from './field'; import type { BasicBuilder } from '../builders/basic'; import { IModel } from './base'; import { FIELD_ARRAY_ID } from './is'; import type { FieldArrayBuilder } from '../builders'; declare class FieldArrayModel = IModel> extends BasicModel { private readonly defaultValue; [FIELD_ARRAY_ID]: boolean; protected readonly _displayName = "FieldArrayModel"; readonly children$: BehaviorSubject; owner: IModel | null; readonly builder?: FieldArrayBuilder>; private _valid$?; private _value$?; private readonly invalidModels; private readonly mapModelToSubscriptions; private readonly childFactory; normalizeBeforeSubmit: INormalizeBeforeSubmit; constructor(childBuilder: BasicBuilder | null, defaultValue: readonly Item[]); get value(): readonly Item[]; get value$(): BehaviorSubject; get valid$(): BehaviorSubject; _getValue$(shouldWarn?: boolean): BehaviorSubject; _getValid$(shouldWarn?: boolean): BehaviorSubject; reset(): void; clear(): void; clearError(): void; get children(): ReadonlyArray; get(index: number): Child; getRawValue(): Item[]; getSubmitValue(): any; patchValue(value: Item[]): void; initialize(values: Item[]): void; push(...models: Child[]): number; push(...values: Item[]): number; pop(): Child; shift(): Child; unshift(...models: Child[]): number; unshift(...values: Item[]): number; splice(start: number, deleteCount: number, ...models: readonly Child[]): Child[]; splice(start: number, deleteCount: number, ...values: readonly Item[]): Child[]; filter(predicate: (item: Child, index: number, array: Child[]) => boolean): this; sort(compareFn: (a: Child, b: Child) => number): this; validate(option?: ValidateOption): Promise; pristine(): boolean; dirty(): boolean; touched(): boolean; dispose(): void; private _linkChild; private _initValue$; private _initValid$; private _initUnsubscribeChild; private _getValue; private _subscribeChild; private _subscribeChildModel; private _subscribeObservable; private _unsubscribeChild; private _disposeChild; private _buildChild; private _unsubscribeModel; } export { FieldArrayModel };