import { LocalLockItem, LockItemInfo } from '../utils/interfaces'; import { MutexSynchronizer, MutexSynchronizerOptions } from './MutexSynchronizer'; export declare class LocalMutexSynchronizer extends MutexSynchronizer { readonly scopesRejector?: (item: LocalLockItem, reason: string, message: string) => void; constructor(options?: Partial, scopesRejector?: (item: LocalLockItem, reason: string, message: string) => void); getLocksCount(): number; lock(lock: LocalLockItem, codeStack?: string): Promise; unlock(hash: string, codeStack?: string): void; 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; protected queue: LocalLockItem[]; protected hashLockWaiters: { [hash: string]: { lockReject?: (err: any) => void; lockResolve?: () => void; }; }; protected hashLockRejectors: { [hash: string]: { scopeReject?: (err: any) => void; }; }; protected mutexTickNext(): void; protected continue(hash: string, originalStack?: string): void; protected lockTimeout: (hash: string) => void; }