import { BaseError, FlowNodeInstance, Model } from '@5minds/processcube_engine_sdk';
import { ExternalTaskDatabaseAdapter } from '../../../Tools/DatabaseAdaptersSequelize/ExternalTaskAdapter';
import { FlowNodeInstanceDatabaseAdapter } from '../../../Tools/DatabaseAdaptersSequelize/FlowNodeInstanceAdapter';
import { EventMiddlewareHandler } from '../../../Tools/EventMiddlewareHandler';
import { ProcessInstance } from '../../ProcessInstance';
import { ActivityHandler } from './ActivityHandler';
import { ActivityInstanceHandler } from './ActivityInstanceHandler';
export declare class ExternalServiceTaskInstanceHandler extends ActivityInstanceHandler<Model.Activities.ServiceTask> {
    private readonly externalTaskDatabaseAdapter;
    private externalTaskId;
    private externalTaskFinishedSubscription;
    private externalTaskExpiredSubscription;
    private externalTaskFinishedEventId;
    protected loggerNamespace: string;
    constructor(eventMiddlewareHandler: EventMiddlewareHandler, externalTaskDatabaseAdapter: ExternalTaskDatabaseAdapter, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, activityHandler: ActivityHandler<Model.Activities.ServiceTask>, processInstance: ProcessInstance, previousFlowNodeInstanceId?: string, instanceContext?: {
        [key: string]: any;
    });
    private get serviceTask();
    protected persistOnExit(dataObjectValues: Record<string, any>): Promise<void>;
    protected persistOnError(error: BaseError): Promise<void>;
    protected persistOnTerminate(): Promise<void>;
    protected afterExecute(): Promise<void>;
    protected resumeAfterSuspend(flowNodeInstance: FlowNodeInstance): Promise<void>;
    protected runHandler(): Promise<void>;
    private configureExternalTask;
    private parseExternalTaskTopic;
    private parseExternalTaskPayload;
    private getTypeDataForStateChange;
    private executeExternalServiceTask;
    private waitForExternalTaskResult;
    private executeExpression;
    private publishExternalTaskCreatedNotification;
    private getDataForErrors;
}
