type LockCallback = () => Promise; declare class ReadWriteLock { private semaphore; private readers; private readersMutex; constructor(); withReadLock(callback: LockCallback): Promise; withWriteLock(callback: LockCallback): Promise; private _acquireReadLock; private _releaseReadLock; private _acquireWriteLock; private _releaseWriteLock; } export { ReadWriteLock };