///
/**
* @public
*/
declare class Lock {
/**
* size大小不合理
*/
static readonly InvalidSizeError: {
new (message?: string): {
name: string;
message: string;
stack?: string | undefined;
};
captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void;
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
stackTraceLimit: number;
};
/**
* 放等待锁的回调函数
*/
private queue;
/**
* 当前被占用的个数
* 每 lock 一次,size++
* 每 unlock 一次, size--
* 超过 maxSize 时,进入队列
* 当 unlock 时会检查队列是否为空
* 如果不为空则将队首任务出列、执行
*/
private size;
/**
* 最大可以占用的个数
*/
private maxSize;
constructor(size?: number);
/**
* 设置能够同时获取多少次权限
*/
private setSize;
/**
* 获取锁
*/
lock(): Promise;
/**
* 尝试获取锁,需要注意获取到之后要释放
*/
tryLock(): boolean;
/**
* 释放锁
* @throws Lock.InvalidSizeError 没有锁时释放锁
*/
unlock(): void;
/**
* 释放锁
* @deprecated - Lock.unLock is deprecated, use Lock.unlock instead
*/
unLock(): void;
}
export default Lock;