IWriterLock: {
    acquireWriter(): Task<boolean>;
    acquireWriterBlocking(
        settings?: SharedLockAquireBlockingSettings,
    ): Task<boolean>;
    acquireWriterBlockingOrFail(
        settings?: SharedLockAquireBlockingSettings,
    ): Task<void>;
    acquireWriterOrFail(): Task<void>;
    forceReleaseWriter(): Task<boolean>;
    refreshWriter(ttl?: ITimeSpan): Task<boolean>;
    refreshWriterOrFail(ttl?: ITimeSpan): Task<void>;
    releaseWriter(): Task<boolean>;
    releaseWriterOrFail(): Task<void>;
    runWriter<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
    ): Task<Result<TValue, FailedAcquireWriterLockError>>;
    runWriterBlocking<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
        settings?: SharedLockAquireBlockingSettings,
    ): Task<Result<TValue, FailedAcquireWriterLockError>>;
    runWriterBlockingOrFail<TValue = void>(
        asyncFn: AsyncLazy<TValue>,
        settings?: SharedLockAquireBlockingSettings,
    ): Task<TValue>;
    runWriterOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>): Task<TValue>;
}

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

Type declaration