import { ICallback } from '../async/index.js'; import { ILogger } from '../logger/index.js'; import { IRedisClient } from '../redis-client/index.js'; import { Runnable } from '../runnable/index.js'; import { Timer } from '../timer/index.js'; import { Backoff } from '../backoff/backoff.js'; export type TLockerEvent = { 'locker.up': (id: string) => void; 'locker.down': (id: string) => void; 'locker.goingUp': (id: string) => void; 'locker.goingDown': (id: string) => void; 'locker.error': (error: Error, id: string) => void; }; export declare class RedisLock extends Runnable { protected readonly lockKey: string; protected readonly ttl: number; protected readonly redisClient: IRedisClient; protected readonly autoExtendInterval: number; protected readonly timer: Timer; protected logger: ILogger; protected backoff: Backoff | null; constructor(redisClient: IRedisClient, logger: ILogger, lockKey: string, ttl: number, retryOnFail?: boolean, autoExtend?: boolean); protected lock: (cb: ICallback) => void; protected extend: (cb: ICallback) => void; protected release: (cb: ICallback) => void; protected autoExtendLock(): void; protected goingUp(): Array<(cb: ICallback) => void>; protected goingDown(): Array<(cb: ICallback) => void>; protected handleError: (err: Error) => void; protected finalizeUp(): void; protected finalizeDown(): void; run(): Promise; run(cb: ICallback): void; acquireLock(cb: ICallback): void; releaseLock(cb: ICallback): void; extendLock(cb: ICallback): void; isLocked(): boolean; isReleased(): boolean; getRetryAttempts(): number; } //# sourceMappingURL=redis-lock.d.ts.map