import { Identity } from '@5minds/processcube_engine_sdk'; import { ILogger, WorkerErrorHandler } from './index'; export type IdentityLike = Identity | (() => Promise) | (() => Identity) | IdentityAccessor | ClientCredentialsConfig; export type ClientCredentialsConfig = { authorityUrl?: string; engineUrl?: string; baseMinRefreshTimeInMs?: number; clientId: string; clientSecret: string; scope: string; }; export declare class IdentityAccessor { static wrap(identity?: IdentityLike, engineUrl?: string, logger?: ILogger, retryableIdentityRefreshErrors?: string[] | ((error: Error) => boolean)): IdentityAccessor; private identityGetter; private retryableIdentityRefreshErrors?; private latestIdentity; private expirationTimeInMs; protected id: string; private identityAvailablePromise; private identityAvailableResolve; private identityAvailableReject; private onErrorHandler; protected refreshFailedCritically: boolean; protected refreshTimeout: NodeJS.Timeout; protected disposed: boolean; protected isDynamicRefreshObject: boolean; protected logger: ILogger; private newIdentityCallbacks; private asyncLock; constructor(staticOrDynamicIdentity?: Identity | (() => Promise) | (() => Identity), customLogger?: ILogger, retryableIdentityRefreshErrors?: string[] | ((error: Error) => boolean)); initialize(): void; onError(callback: WorkerErrorHandler): void; getId(): string; getIdentitySync(): Identity; canIdentityBeRefreshed(): boolean; /** * Prüft ob das Identity-Refresh kritisch fehlgeschlagen ist. * Wenn true, kann der Worker keine neuen Tasks mehr abholen. */ hasRefreshFailedCritically(): boolean; /** * Versucht eine Recovery nach einem kritischen Identity-Refresh-Fehler. * Setzt den kritischen Fehlerstatus zurück und versucht erneut, die Identity abzurufen. */ attemptRecovery(): Promise; getIdentity(): Promise; forceImmediateIdentityRefresh(): Promise; /** * This method only waits the first time the identity is retrieved from any remote source to ensure no missing references occur. */ waitUntilIdentityIsAvailable(): Promise; /** * @deprecated This method only exists for downward compatibility purposes, use getIdentity instead. */ getIdentityStatic(): Identity; onNewIdentity(callback: (identity: Identity) => Promise): void; removeOnNewIdentityListener(callback: (identity: Identity) => Promise): void; /** * The IdentityAccesor creates a refresh timer, which needs to be disposed. * This method should be called when the IdentityAccessor is not needed anymore. * If any Client using this will be disposed, the IdentityAccessor will be disposed as well. */ dispose(): void; protected getBaseMinRefreshTimeInMs(): number; private refreshIdentityPeriodically; private fetchIdentity; private getDecodedToken; private isErrorRetryable; }