import { ExternalTask } from '@5minds/processcube_engine_sdk'; import { InternalIdentity as Identity } from '../../Contracts/index'; import { ProxyConfiguration } from '../../Setups/EngineRouter'; import { ExternalTaskDatabaseAdapter, IamService } from '../../Tools/index'; import { CancellationToken } from '../CancellationToken'; type FetchAndLockOptions = { workerId: string; topics: string | Array; maxTasks: number; lockDuration: number; longPollingTimeoutInMs?: number; payloadFilter?: RegExp; }; export declare class ExternalTaskFetchAndLockService { private readonly externalTaskAdapter; private readonly iamService; private readonly logger; constructor(externalTaskDatabaseAdapter: ExternalTaskDatabaseAdapter, iamService: IamService); dispose(): Promise; fetchAndLockExternalTasks>(identity: Identity, options: FetchAndLockOptions, cancellationToken?: CancellationToken): Promise>>; extendLock(identity: Identity, workerId: string, externalTaskId: string, additionalDuration: number): Promise; updateExpirationTimeForExternalTaskIds(externalTaskIds: Array, lockExpirationTime: Date): void; clearExpirationTimeForExternalTaskIds(externalTaskIds: Array): void; private fetchOrWaitForExternalTasks; startExternalTaskExpirationTimers(): Promise; private fetchAndLockExternalTasksSafely; private publishExternalTaskLockedNotifications; private lockForWorker; private unlockExternalTasks; private ensureExternalTaskCanBeAccessedByWorker; private startExternalTaskExpirationTimer; private clearExternalTaskExpirationTimer; private onExternalTaskLockExpired; private getLockExpirationDate; private ensureHasClaim; } export interface ExternalTaskFetchAndLockServiceProxy { fetchAndLockExternalTasks>(identity: Identity, options: FetchAndLockOptions, cancellationToken?: CancellationToken): Promise>>; extendLock(identity: Identity, workerId: string, externalTaskId: string, additionalDuration: number): Promise; updateExpirationTimeForExternalTaskIds(externalTaskIds: Array, lockExpirationTime: Date): Promise; clearExpirationTimeForExternalTaskIds(externalTaskIds: Array): Promise; } export declare const ExternalTaskFetchAndLockServiceProxyConfiguration: ProxyConfiguration; export {};