ISemaphoreBase: {
    acquire(): LazyPromise<boolean>;
    acquireBlocking(
        settings?: SemaphoreAquireBlockingSettings,
    ): LazyPromise<boolean>;
    acquireBlockingOrFail(
        settings?: SemaphoreAquireBlockingSettings,
    ): LazyPromise<void>;
    acquireOrFail(): LazyPromise<void>;
    forceReleaseAll(): LazyPromise<boolean>;
    refresh(ttl?: ITimeSpan): LazyPromise<boolean>;
    refreshOrFail(ttl?: ITimeSpan): LazyPromise<void>;
    release(): LazyPromise<boolean>;
    releaseOrFail(): LazyPromise<void>;
    run<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
    ): LazyPromise<Result<TValue, LimitReachedSemaphoreError>>;
    runBlocking<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
        settings?: SemaphoreAquireBlockingSettings,
    ): LazyPromise<Result<TValue, LimitReachedSemaphoreError>>;
    runBlockingOrFail<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
        settings?: SemaphoreAquireBlockingSettings,
    ): LazyPromise<TValue>;
    runOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>): LazyPromise<TValue>;
}

IMPORT_PATH: "@daiso-tech/core/semaphore/contracts"

Type declaration