import { ExecutionContext, IEntity, IIamService, IInheritedSchema, IPublicGetOptions } from '@essential-projects/core_contracts';
import { Entity, EntityDependencyHelper, IEntityType, IPropertyBag } from '@essential-projects/data_model_contracts';
import { IMessageBusService } from '@essential-projects/messagebus_contracts';
import { INodeInstanceEntityTypeService, IParamStart, IProcessDefEntity, IProcessEngineService, IProcessEntity } from '@process-engine/process_engine_contracts';
export declare class ProcessEntity extends Entity implements IProcessEntity {
    private _iamService;
    private _nodeInstanceEntityTypeService;
    private _messageBusService;
    private _processEngineService;
    private _activeInstances;
    private _allInstances;
    boundProcesses: any;
    constructor(iamService: IIamService, nodeInstanceEntityTypeService: INodeInstanceEntityTypeService, messageBusService: IMessageBusService, processEngineService: IProcessEngineService, entityDependencyHelper: EntityDependencyHelper, context: ExecutionContext, schema: IInheritedSchema, propertyBag: IPropertyBag, entityType: IEntityType<IEntity>);
    private readonly iamService;
    private readonly nodeInstanceEntityTypeService;
    private readonly messageBusService;
    private readonly processEngineService;
    initialize(): Promise<void>;
    readonly activeInstances: any;
    readonly allInstances: any;
    name: string;
    key: string;
    status: string;
    processDef: IProcessDefEntity;
    getProcessDef(context: ExecutionContext): Promise<IProcessDefEntity>;
    isSubProcess: boolean;
    callerId: string;
    initializeProcess(): Promise<void>;
    private _getStartEvent();
    start(context: ExecutionContext, params: IParamStart, options?: IPublicGetOptions): Promise<void>;
    end(context: ExecutionContext, processToken: any): Promise<void>;
    error(context: ExecutionContext, error: any): Promise<void>;
    addActiveInstance(entity: IEntity): void;
    removeActiveInstance(entity: IEntity): void;
}
