export interface NodeDSL { id: string; data: any; shape: string; position: { x: number; y: number; }; } export interface EdgeDSL { id: string; data: any; source: { cell: string; port: string; }; target: { cell: string; port: string; }; } export interface EventFlowDSL { nodes: NodeDSL[]; edges: EdgeDSL[]; } export interface ICondition { id: string; logic: string; target?: any; operator?: string; value?: any; children: ICondition[]; } export interface IVariable { loading: Record; setLoading: (key: string, loading: boolean) => void; getVariable: (key: string) => any; setVariable: (key: string, variable: any) => void; hasVariable: (key: string) => boolean; [key: string]: any; } export interface IWorkspaceProps { id?: string; pageId?: string; title?: string; type?: string; description?: string; contentWindow?: Window; viewportElement?: HTMLElement; graph?: any; dnd?: any; } export interface IWorkspace { engine: any; eventflowDsls: Record; runtimeVariable: any; runtimeEventVariable: any; props?: IWorkspaceProps; findEventById?: (id: number) => any; findEventDslById: (id: string) => any; initEventVariable?: (eventId: number) => void; }