import { TAcquireParams, IMutex, IMutexReleaser, TMutexAcquireParams, TMutexToken } from "./types"; export declare class Mutex implements IMutex { private readonly semaphore; constructor(); runExclusive(fn: () => Promise | T): Promise; runExclusive(params: TAcquireParams, fn: () => Promise | T): Promise; acquire(params?: TMutexAcquireParams): Promise; tryAcquire(params?: TMutexAcquireParams): Promise; restoreReleaser(token: TMutexToken): IMutexReleaser; cancel(errMessage?: string): Promise; isLocked(): Promise; waitForUnlock(): Promise; } //# sourceMappingURL=mutex.d.ts.map