import { OnModuleDestroy } from '@nestjs/common'; import { Lock } from 'redlock'; import { MemoryLock } from './drivers/memory-store'; import type { LockService } from './interfaces/lock.service'; /** * AsyncLockService provides a unified interface for distributed and in-memory locks. * It delegates to the injected LockService implementation. */ export declare class AsyncLockService implements LockService, OnModuleDestroy { private readonly lockService; private readonly logger; constructor(lockService: LockService); /** * Acquire a lock for a given resource. * @param resource The resource to lock. * @param ttl Time-to-live for the lock in ms. */ acquireLock(resource: string, ttl?: number): Promise; /** * Release a previously acquired lock. * @param lock The lock to release. */ releaseLock(lock: Lock | MemoryLock): Promise; /** * Run a function with a lock held for the duration. * @param resource The resource to lock. * @param ttl Time-to-live for the lock in ms. * @param fn The function to run. */ runWithLock(resource: string, ttl: number, fn: () => Promise): Promise; /** * Cleanup resources on module destroy. */ onModuleDestroy(): Promise; } //# sourceMappingURL=async-lock.service.d.ts.map