import { DataModels, ExternalTaskError, IExternalTaskExtensionAdapter, Identity } from '@5minds/processcube_engine_sdk';
import { ExternalTaskFetchAndLockService, ExternalTaskService } from '../../../Api/Services/index';
import { IdentityService } from '../../Iam/IdentityService';
type ExternalTask<TPayload> = DataModels.ExternalTasks.ExternalTask<TPayload>;
export declare class ExternalTaskExtensionAdapter implements IExternalTaskExtensionAdapter {
    private readonly externalTaskService;
    private readonly fetchAndLockService;
    private readonly identityService;
    private readonly logger;
    constructor(externalTaskService: ExternalTaskService, fetchAndLockService: ExternalTaskFetchAndLockService, identityService: IdentityService);
    getAllDeployedTopics(identity?: Identity): Promise<Array<string>>;
    fetchAndLockExternalTasks<TPayload>(workerId: string, topicNames: string | Array<string>, maxTasks: number, longPollingTimeout: number, lockDuration: number, payloadFilter?: RegExp, identity?: Identity): Promise<Array<ExternalTask<TPayload>>>;
    extendLock(workerId: string, externalTaskId: string, additionalDuration: number, identity?: Identity): Promise<void>;
    handleError(workerId: string, externalTaskId: string, error: ExternalTaskError, identity?: Identity): Promise<void>;
    finishExternalTask<TResultType>(workerId: string, externalTaskId: string, result: TResultType, identity?: Identity): Promise<void>;
}
export {};
