import { IDefinition, IInstanceData } from './'; import { IBpmnModelData, IItemData, IEventData } from './'; export interface FindParams { filter?: Record; after?: string; limit?: number; sort?: Record; projection?: Record; lastItem?: Record; latestItem?: Record; getTotalCount?: boolean; // if true, return total count of items in the result set } export interface FindResult { data?: any[]; nextCursor?: string | null; totalCount?: number; error?: string; } interface IDataStore { dbConfiguration: any; db: any; logger: any; locker: any; save(instance:any,options:any): Promise; loadInstance(instanceId: any,options:any): Promise<{ instance: any; items: any[]; }>; findItem(query: any): Promise; findInstance(query: any, options: any): Promise; findInstances(query: any, option: 'summary' | 'full'|any): Promise; findItems(query: any): Promise; deleteInstances(query?: any): Promise; install(); archive(query); find(FindParams) : Promise; } interface IModelsDatastore { get(query): Promise; getList(query): Promise; getSource(name: any,owner?): Promise; getSVG(name: any,owner?): Promise; save(name: any, bpmn: any, svg?: any,owner?): Promise; load(name: any,owner?): Promise; loadModel(name: any,owner?): Promise; findEvents(query: any,owner?): Promise; rebuild(model?: any): Promise install(); import(data); saveModel(model: IBpmnModelData): Promise; deleteModel(name: any,owner?): Promise; renameModel(name: any,newName: any,owner?): Promise; } class EventData implements IEventData { elementId; type; subType; name; processId; signalId; messageId; // timer info expression; expressionFormat; // cron/iso referenceDateTime; // start time of event or last time timer ran maxRepeat; repeatCount; timeDue?: Date; } export { IDataStore , IModelsDatastore }