export interface FieldState { name: string; initialValue: Value; value: Value; dirty: boolean; changed: boolean; error?: any; } export interface FieldDescriptor extends FieldState { onChange(newValue: Value): void; onBlur(): void; } export type FieldDescriptors = { [FieldPath in keyof Fields]: FieldDescriptor };