import { Validator } from "./validation"; export interface Domain { [key: string]: any; formatter?: (value: any, options?: { isEdit: boolean; }) => string; unformatter?: (text: string, options?: { isEdit: boolean; }) => any; validator?: Validator[]; DisplayComponent?: ReactComponent; FieldComponent?: ReactComponent; InputComponent?: ReactComponent; LabelComponent?: ReactComponent; className?: string; } export interface FieldEntry { readonly type: "field"; readonly domain?: Domain; readonly entityName?: string; readonly isRequired: boolean; readonly name: string; readonly translationKey: string; } export interface ListEntry { readonly type: "list"; readonly entityName: string; } export interface Entity { readonly fields: { readonly [name: string]: FieldEntry | ListEntry; }; readonly name: string; } export interface EntityField { readonly $entity: FieldEntry; value: T; } export interface EntityList { readonly $entity: ListEntry; value: T; }