import Redlock from 'redlock'; import { InMemoryProviderClient, CacheInMemoryProviderService } from '../in-memory-provider'; export interface ILockOptions { resource: string; ttl: number; } export declare class DistributedLockService { private cacheInMemoryProviderService; distributedLock: Redlock; instances: InMemoryProviderClient[]; lockCounter: {}; shuttingDown: boolean; constructor(cacheInMemoryProviderService: CacheInMemoryProviderService); initialize(): Promise; startup(client: InMemoryProviderClient, settings?: { driftFactor: number; retryCount: number; retryDelay: number; retryJitter: number; }): void; isDistributedLockEnabled(): boolean; areAllLocksReleased(): boolean; shutdown(): Promise; onApplicationShutdown(signal: any): Promise; buildResourceWithPrefix(resource: string): string; applyLock({ resource, ttl }: ILockOptions, handler: () => Promise): Promise; lock(resource: string, ttl: number, settings?: { retryCount: number; }): Promise<() => Promise>; private createLockRelease; private increaseLockCounter; private decreaseLockCounter; } //# sourceMappingURL=distributed-lock.service.d.ts.map