import type { Clock } from "./abstractions.js"; export interface RateLimiter { acquire(key: string, signal?: AbortSignal): Promise; close(): void; } export interface TokenBucketRateLimiterOptions { capacity: number; refillTokens?: number; refillIntervalMs: number; maxQueue: number; clock?: Clock; } export declare class RateLimitQueueFullError extends Error { readonly key: string; readonly maxQueue: number; constructor(key: string, maxQueue: number); } export declare class RateLimiterClosedError extends Error { constructor(); } export declare class TokenBucketRateLimiter implements RateLimiter { #private; constructor(options: TokenBucketRateLimiterOptions); acquire(key: string, signal?: AbortSignal): Promise; pending(key?: string): number; close(): void; } //# sourceMappingURL=rate-limiter.d.ts.map