/** * Rate Limit Queue Manager - SMI-1013, SMI-1189 * * Queue management for rate limiting with request waiting. */ import type { RateLimitResult } from './types.js'; /** * Configuration for the queue manager */ export interface QueueManagerConfig { maxQueueSize: number; queueTimeoutMs: number; debug: boolean; } /** * Manages request queues for rate limiting */ export declare class QueueManager { private readonly queues; private processorInterval; private isProcessing; private readonly config; private readonly log; constructor(config: QueueManagerConfig, log?: { debug: (msg: string, data?: Record) => void; }); /** * Start the queue processor */ startProcessor(tryConsumeToken: (key: string, cost: number) => Promise, onSuccess: (key: string, allowed: boolean) => void): void; /** * Stop the queue processor */ stopProcessor(): void; /** * Process all queues and release waiting requests when tokens become available */ private processQueues; /** * Queue a request and wait for a token */ queueRequest(key: string, cost: number, onMetricsUpdate: (allowed: boolean) => void): Promise; /** * Get queue status for a key */ getStatus(key?: string): { totalQueued: number; queues: Map; } | number; /** * Clear queue for a key */ clear(key?: string): void; /** * Dispose of resources */ dispose(): void; } //# sourceMappingURL=queue-manager.d.ts.map