import * as Immutable from "immutable"; import { TypedRecord } from "typed-immutable-record"; import { FieldStoreStateRecord } from "../contracts/field"; import { FieldsGroupStoreStateRecord } from "../contracts/fields-group"; import { FormStateRecord } from "../contracts/form"; import { FieldValidationStatus } from "./validation"; export interface FormStoreState extends FormStoreStateStatus { Fields: Immutable.Map; FieldsGroups: Immutable.Map; FieldsValidationStatuses: Immutable.Map; Form: FormStateRecord; } export interface FormStoreStateStatus { Validating: boolean; Submitting: boolean; Disabled: boolean; HasError: boolean; Pristine: boolean; Touched: boolean; } export interface FormStoreStateRecord extends TypedRecord, FormStoreState { } export interface BuiltFormObject { Fields: Immutable.Map; Object: any; }