IReaderSemaphore: {
    acquireReader(): ITask<boolean>;
    acquireReaderBlocking(
        settings?: SharedLockAquireBlockingSettings,
    ): ITask<boolean>;
    acquireReaderBlockingOrFail(
        settings?: SharedLockAquireBlockingSettings,
    ): ITask<void>;
    acquireReaderOrFail(): ITask<void>;
    forceReleaseAllReaders(): ITask<boolean>;
    refreshReader(ttl?: ITimeSpan): ITask<boolean>;
    refreshReaderOrFail(ttl?: ITimeSpan): ITask<void>;
    releaseReader(): ITask<boolean>;
    releaseReaderOrFail(): ITask<void>;
    runReaderBlockingOrFail<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
        settings?: SharedLockAquireBlockingSettings,
    ): ITask<TValue>;
    runReaderOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>): ITask<TValue>;
}

IMPORT_PATH: "@daiso-tech/core/shared-lock/contracts"

Type declaration