///
import * as Redlock from 'redlock';
import { RedisConfig } from '../redis/connect';
export declare type UnlockFunction = () => Promise;
export declare function connectToRedisLocker(cfg: RedisConfig): void;
export declare class AsyncLocker {
private resource;
protected static server: Redlock;
MAX_HOLD: number;
TIMEOUT: number;
protected holdList: {
[id: string]: NodeJS.Timer;
};
private lockCount;
protected lockTimer: NodeJS.Timer;
protected lockerList: {
[id: string]: Redlock.Lock;
};
constructor(resource: string);
lock(name?: string): Promise;
unlock(name?: string): Promise;
protected decreaseRenew(): void;
protected increaseRenew(): void;
private notTooLong(lock);
private preventTooLong(lock);
}