declare class TokenLimiter { private tokens; private maxTokens; private lastRefreshTime; private mutex; private bufferRatio; private initialMaxTokens; private hasReset; private readonly currentTime; constructor(maxTokensPerMinute?: number, bufferRatio?: number); /** * 获取当前时间所在分钟的开始时间戳 * @returns {number} 返回当前时间所在分钟的开始时间戳(毫秒) */ private getTimeAtLastMinute; /** * 整分刷新令牌 * @returns Promise */ private refreshTokens; /** * 当前时间开始到下一分钟开始所需等待的时间(以毫秒为单位) * 如果在一个时间窗口(例如一分钟)内可用的令牌已经用完,需要等待直到下一个时间窗口开始才能再次填充令牌 * @returns 等待时间 */ private timeUntilNextMinute; /** * 当前是否有指定数量的可用令牌 * 如果当前令牌数不足,它将计算等待时间直到下一分钟开始,并尝试再次刷新令牌。 * @param tokenCount 令牌数量 * @returns 返回Promise类型,如果成功获取令牌,则返回true;否则返回false */ acquireTokens(tokenCount: number): Promise; /** * 重置令牌 * * @param totalTokens 总的令牌数量 */ resetTokens(totalTokens: number): Promise; /** * 计算文本中的 Token 数量 * * @param text 要计算 Token 的文本 * @returns 返回计算出的 Token 数量 */ calculateTokens(text: string): number; getTokens(): number; getMaxTokens(): number; setHasReset(value: boolean): void; } export default TokenLimiter;