import * as react from 'react'; import * as Component from './Component'; import * as Language from './Language'; export interface Part { Component: React.ComponentType; Logic: React.ComponentType; validation: (props: ValidationProps) => { [elemName: string]: string; }; } export interface CustomPart { Component?: React.ComponentType; Logic?: React.ComponentType; validation?: (props: ValidationProps) => { [elemName: string]: string; }; } export interface CustomPartSet { [tagName: string]: CustomPart; } export interface LogicProps { Element: Component.ElementProps; Component: react.ComponentType; children: any; data: any; error: { [key: string]: string; }; onChange?: (props: { data: any; error: { [key: string]: string; }; }, autorunHandler?: any) => void; } export interface ValidationProps { Element: Component.ElementProps; data: any; value: any; Language: Language.LanguagePack; }