import { LocalLockItem, LockItemInfo } from '../utils/interfaces'; import { LocalMutexSynchronizer } from './LocalMutexSynchronizer'; import { MutexSynchronizer, MutexSynchronizerOptions } from './MutexSynchronizer'; import { Awaiter } from '../utils/Awaiter'; export declare class SharedMutexSynchronizer extends MutexSynchronizer { readonly identifier: string; constructor(options?: Partial, identifier?: string); getLocksCount(): number; lock(lock: LocalLockItem, codeStack?: string): Promise; unlock(hash: string, codeStack?: string): Promise; unlockForced(filter: (lock: LocalLockItem) => boolean): void; getLockInfo(hash: string): LockItemInfo; getLockItem(hash: string): LocalLockItem; watchdog(hash: string, phase?: string, args?: any, codeStack?: string): Promise; setScopeRejector(hash: string, rejector: (reason: any) => void): void; removeScopeRejector(hash: string): void; isClean(): boolean; setOptions(options: Partial): void; protected messageQueue: Map void; reject: (err: Error) => void; }>; protected hashLockRejectors: Map void; }>; protected masterSynchronizer: LocalMutexSynchronizer; protected verifyAwaiter: Awaiter; protected workerUnlockForced(workerId: number): void; protected resetAwaiter(): void; protected handleMasterIncomingMessage(worker: any, message: any): Promise; protected handlerWorkerIncomingMessage(message: any): void; protected initialize(): Promise; protected scopesRejector(item: LocalLockItem, reason: string, message: string): void; protected sendProcessMessage(message: any): Promise; protected sendMasterMessage(worker: any, message: any): void; protected static executeMethod(handler: () => Promise | T): Promise<{ result: T | null; error: { message: string; [prop: string]: any; } | null; }>; }