import { BaseModel } from '../core-models/BaseModel'; import { AbstractModelFactory } from './AbstractModelFactory'; import { CanvasEngine } from '../CanvasEngine'; export interface GenerateWidgetEvent { model: T; } /** * Further extends the AbstractFactory to add widget generation capability. */ export abstract class AbstractReactFactory< T extends BaseModel = BaseModel, E extends CanvasEngine = CanvasEngine > extends AbstractModelFactory { /** * Generates React widgets from the model contained in the event object */ abstract generateReactWidget(event: GenerateWidgetEvent): JSX.Element; }