import { BehaviorSubject, Subject } from 'rxjs'; import type { FieldSetBuilder } from '../builders/set'; import { Maybe } from '../maybe'; import type { UnknownFieldSetBuilderChildren, UnknownFieldSetModelChildren } from '../utils'; import { IMaybeError, ValidateOption } from '../validate'; import { IModel } from './base'; import { BasicModel } from './basic'; import { INormalizeBeforeSubmit } from './field'; import { SET_ID } from './is'; declare type $FieldSetValue = { [Key in keyof Children]: Children[Key] extends IModel ? V : never; }; declare class FieldSetModel extends BasicModel<$FieldSetValue> { [SET_ID]: boolean; protected readonly _displayName: string; patchedValue: Partial<$FieldSetValue> | null; readonly childRegister$: Subject; readonly childRemove$: Subject; readonly children: Children; owner: IModel | null; readonly builder?: FieldSetBuilder; private _valid$?; private _value$?; private readonly invalidModels; private readonly mapModelToSubscriptions; normalizeBeforeSubmit: INormalizeBeforeSubmit<$FieldSetValue, any>; constructor(children: Children, id?: string); get value(): $FieldSetValue; get value$(): BehaviorSubject<$FieldSetValue>; get valid$(): BehaviorSubject; _getValid$(shouldWarn?: boolean): BehaviorSubject; _getValue$(shouldWarn?: boolean): BehaviorSubject<$FieldSetValue>; initialize(values: $FieldSetValue): void; getPatchedValue(name: string): Maybe; getRawValue(): $FieldSetValue; getSubmitValue(): any; registerChild(name: string, model: BasicModel): void; removeChild(name: T): Children[T] | null; dispose(): void; patchValue(value: Partial<$FieldSetValue>): void; clear(): void; clearError(): void; reset(): void; validate(option?: ValidateOption): Promise | IMaybeError[]>; pristine(): boolean; dirty(): boolean; touched(): boolean; get(name: Name): Children[Name] | undefined | null; private _setValid; private _initValue$; private _initValid$; private _subscribeChild; private _unsubscribeChild; private _subscribeObservable; } export { FieldSetModel, $FieldSetValue };