import { FieldConfiguration } from './FieldConfigurationTypes'; export interface FormConfiguration { id: string, debug: boolean, behavior: FormBehavior, fields: FieldConfiguration[], rules: UpdateRule[], init: InitialisationRule[] } export interface FormBehavior { beforeUpdate: (subjectName: string) => boolean, afterUpdate: (subjectName: string) => void beforeInit: () => void, afterInit: () => void } export interface UpdateRule { name: string, update: string[], additionalData?: string[], externalData?: (data: object, subjectName: string|null) => object } export interface InitialisationRule { name: string, value?: any }