import { Identity } from '@5minds/processcube_engine_sdk'; import { HandleExternalTaskAction, IExternalTaskWorkerConfig, WorkerErrorHandler } from './Types/index'; export type ExternalTaskWorkerHeartbeat = (operation?: 'fetchAndLock' | 'processExternalTask' | 'extendLock' | 'finishExternalTask' | 'handleError', externalTaskId?: string) => void; export interface ExternalTaskWorkerHealth { isPollingActive: boolean; consecutiveCriticalErrors: number; maxConsecutiveCriticalErrors: number; activeTaskCount: number; identityRefreshFailedCritically: boolean; } export declare class ExternalTaskWorker { private readonly _workerId; private readonly lockDuration; private readonly topic; private readonly maxTasks; private readonly idleTimeout; private readonly longpollingTimeout; private readonly processingFunction; private readonly payloadFilter; private readonly useCustomLogger; private readonly logger; private identityAccessor; private _pollingActive; private externalTaskClient; private customErrorHandler; private onHeartbeatCallback; private abortController; private abortSignal; private activelyProcessedExternalTasks; private pollingPromise; private consecutiveCriticalErrors; private readonly maxConsecutiveCriticalErrors; constructor(engineUrl: string, topic: string, processingFunction: HandleExternalTaskAction, config?: IExternalTaskWorkerConfig); /** * @deprecated Use getIdentity instead. */ get identity(): Identity; getIdentity(): Promise; /** * @deprecated This is no longer safe to use. Identity should be set via the constructor. */ set identity(value: Identity); get workerId(): string; get pollingIsActive(): boolean; onWorkerError(callback: WorkerErrorHandler): void; onHeartbeat(callback: ExternalTaskWorkerHeartbeat): void; getActiveExternalTasks(): string[]; isExternalTaskBeingProcessed(externalTaskId: string): boolean; /** * Gibt den aktuellen Gesundheitszustand des Workers zurück. * Kann verwendet werden um den Worker zu überwachen und Probleme frühzeitig zu erkennen. */ getHealth(): ExternalTaskWorkerHealth; /** * Prüft ob der Worker noch gesund ist und Tasks verarbeiten kann. * Gibt false zurück wenn der Worker aufgehört hat zu arbeiten. */ isHealthy(): boolean; start(): void; stop(): void; abortExternalTaskIfPresent(externalTaskId: string): void; dispose(): void; private processExternalTasks; private isPermanentAuthorizationError; private startExecutingExternalTask; private sleep; }