import { CallActivityInstance, Model } from '@5minds/processcube_engine_sdk';
import { FlowNodeInstanceDatabaseAdapter } from '../../../Tools/DatabaseAdaptersSequelize/FlowNodeInstanceAdapter';
import { ProcessInstanceDatabaseAdapter } from '../../../Tools/DatabaseAdaptersSequelize/ProcessInstanceAdapter';
import { EventMiddlewareHandler } from '../../../Tools/EventMiddlewareHandler';
import { IdentityService } from '../../../Tools/Iam/IdentityService';
import { ProcessDefinitionMediator } from '../../../Tools/ProcessDefinitionMediator';
import { CoreAccessService } from '../../CoreAccessService';
import { ProcessInstance, ProcessInstanceFactory } from '../../ProcessInstance';
import { ActivityHandler } from './ActivityHandler';
import { ActivityInstanceHandler } from './ActivityInstanceHandler';
export declare class CallActivityInstanceHandler extends ActivityInstanceHandler<Model.Activities.CallActivity> {
    private readonly identityService;
    private readonly coreAccess;
    private readonly processDefinitionMediator;
    private readonly processInstanceDatabaseAdapter;
    private readonly processInstanceFactory;
    private childProcessInstance;
    private killedSubscription;
    private endSubscription;
    private erroredSubscription;
    protected loggerNamespace: string;
    constructor(coreAccess: CoreAccessService, eventMiddlewareHandler: EventMiddlewareHandler, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, identityService: IdentityService, processDefinitionMediator: ProcessDefinitionMediator, processInstanceDatabaseAdapter: ProcessInstanceDatabaseAdapter, processInstanceFactory: ProcessInstanceFactory, activityHandler: ActivityHandler<Model.Activities.CallActivity>, processInstance: ProcessInstance, previousFlowNodeInstanceId?: string, instanceContext?: {
        [key: string]: any;
    });
    private get callActivity();
    protected afterExecute(): Promise<void>;
    protected resumeAfterSuspend(callActivityInstance: CallActivityInstance): Promise<void>;
    protected runHandler(): Promise<void>;
    private suspendHandlerAndExecuteTargetProcess;
    private executeTargetProcess;
    private resumeChildProcessInstance;
    private getTargetProcessModelId;
    private getTargetStartEventId;
    private createStartTokenForChildProcess;
    private executeExpression;
    private createAndThrowExpressionError;
    private subscribeToChildProcessEvents;
    private createTokenFromCallActivityResult;
    private terminateProcessInstance;
    private getOwnerIdentity;
}
