UNPKG

qbo-mcp-ts

Version:

TypeScript QuickBooks Online MCP Server with enhanced features and dual transport support

89 lines 2.17 kB
/** * Queue service for managing API rate limits and concurrent requests */ import { IQueueService } from '../types'; /** * Queue service implementation using p-queue */ export declare class QueueService implements IQueueService { private queue; private readonly rateLimitPerMinute; constructor(); /** * Set up queue event listeners for monitoring */ private setupEventListeners; /** * Add a task to the queue */ add<T>(task: () => Promise<T>, priority?: number): Promise<T>; /** * Pause the queue */ pause(): void; /** * Resume the queue */ resume(): void; /** * Clear all pending tasks */ clear(): void; /** * Get queue size (waiting tasks) */ size(): number; /** * Get number of pending tasks (running + waiting) */ pending(): number; /** * Check if queue is paused */ isPaused(): boolean; /** * Check if queue is idle */ isIdle(): boolean; /** * Wait for all tasks to complete */ onIdle(): Promise<void>; /** * Wait for queue to be empty (no waiting tasks) */ onEmpty(): Promise<void>; /** * Get queue statistics */ getStats(): { size: number; pending: number; isPaused: boolean; concurrency: number; rateLimitPerMinute: number; }; /** * Add multiple tasks as a batch */ addBatch<T>(tasks: Array<() => Promise<T>>, priority?: number): Promise<T[]>; /** * Execute a task with retry logic */ addWithRetry<T>(task: () => Promise<T>, options?: { retries?: number; retryDelay?: number; priority?: number; onRetry?: (attempt: number, error: Error) => void; }): Promise<T>; /** * Execute tasks with rate limiting per time window */ createRateLimitedExecutor<T>(windowMs: number, maxRequests: number): (task: () => Promise<T>) => Promise<T>; /** * Shutdown the queue gracefully */ shutdown(): Promise<void>; } export declare const queueService: QueueService; //# sourceMappingURL=queue.d.ts.map