import { Dictionary, Field } from 'src/engine/Engine'; export declare type ActionType = 'createRootNode' | 'deleteNode' | 'objectUpdate' | 'listPush' | 'listPop' | 'actionReset' | 'relationDisconnect' | 'relationConnect' | 'relationCreate' | 'relationListDisconnect' | 'relationListSet' | 'relationListCreate'; export interface BaseAction { type: ActionType; } export interface CreateRootNodeAction extends BaseAction { type: 'createRootNode'; typeName: string; id: string; } export interface DeleteNodeAction extends BaseAction { type: 'deleteNode'; typeName: string; id: string; } export interface ObjectUpdateAction extends BaseAction { type: 'objectUpdate'; typeName: string; id: string; fieldName: string; value: any; } export interface ListPushAction extends BaseAction { type: 'listPush'; typeName: string; id: string; value: any; fieldName: string; index?: number; } export interface ListPopAction extends BaseAction { type: 'listPop'; typeName: string; id: string; fieldName: string; index?: number; } export interface ActionReset extends BaseAction { type: 'actionReset'; typeName: string; id: string; fieldName: string; } export interface RelationDisconnectAction extends BaseAction { type: 'relationDisconnect'; typeName: string; id: string; fieldName: string; fields: Dictionary; } export interface RelationConnectAction extends BaseAction { type: 'relationConnect'; typeName: string; id: string; fieldName: string; value: any; } export interface RelationCreateAction extends BaseAction { type: 'relationCreate'; childTypeName: string; typeName: string; id: string; temporaryId?: string; fieldName: string; } export interface RelationListSetAction extends BaseAction { type: 'relationListSet'; typeName: string; id: string; fieldName: string; value: any; } export interface RelationListCreateAction extends BaseAction { type: 'relationListCreate'; childTypeName: string; typeName: string; id: string; temporaryId?: string; fieldName: string; } export interface RelationListDisconnectAction extends BaseAction { type: 'relationListDisconnect'; typeName: string; id: string; fieldName: string; value: any; fields: Dictionary; } export declare type Action = CreateRootNodeAction | DeleteNodeAction | ObjectUpdateAction | ActionReset | ListPushAction | ListPopAction | RelationDisconnectAction | RelationConnectAction | RelationCreateAction | RelationListSetAction | RelationListDisconnectAction | RelationListCreateAction; export declare type ListActions = ListPopAction | ListPushAction; export declare type RelationActions = RelationDisconnectAction | RelationConnectAction | RelationCreateAction; export declare type RelationListActions = RelationListSetAction | RelationListDisconnectAction | RelationListCreateAction;