import { BehaviorSubject, Subject } from 'rxjs'; import { IMaybeError, IValidation, IValidators, ValidateOption } from '../validate'; import { Maybe } from '../maybe'; import { IModel } from './base'; import { MODEL_ID } from './is'; declare abstract class BasicModel implements IModel { readonly id: string; protected abstract _displayName: string; readonly validate$: Subject; validators: IValidators; initialValue: Maybe; destroyOnUnmount: boolean; private subscriptions; abstract owner: IModel | null; [MODEL_ID]: boolean; abstract getRawValue(): Value; abstract getSubmitValue(): any; readonly error$: BehaviorSubject>; abstract get valid$(): BehaviorSubject; abstract get value$(): BehaviorSubject; abstract _getValue$(shouldWarn?: boolean): BehaviorSubject; abstract _getValid$(shouldWarn?: boolean): BehaviorSubject; get value(): Value; set value(value: Value); get form(): import("./form").FormModel; protected constructor(id: string); abstract pristine(): boolean; abstract touched(): boolean; abstract dirty(): boolean; abstract patchValue(value: Value): void; abstract reset(): void; abstract clear(): void; abstract clearError(): void; abstract initialize(value: Value): void; abstract validate(option?: ValidateOption): Promise; dispose(): void; valid(): boolean; protected triggerValidate(option: ValidateOption): Promise>; get error(): IMaybeError; set error(error: IMaybeError); } export { BasicModel };