UNPKG

@checkfirst/nestjs-outlook

Version:

An opinionated NestJS module for Microsoft Outlook integration that provides easy access to Microsoft Graph API for emails, calendars, and more.

35 lines (34 loc) 1.19 kB
import { OnModuleInit } from '@nestjs/common'; export declare class GraphRateLimiterService implements OnModuleInit { private readonly logger; private readonly MAX_REQUESTS_PER_SECOND; private readonly MAX_REQUESTS_PER_10_MINUTES; private readonly ONE_SECOND_MS; private readonly TEN_MINUTES_MS; private readonly INACTIVE_USER_THRESHOLD_MS; private readonly userLimiters; private totalPermitsAcquired; private totalWaitTime; private cooldownCount; onModuleInit(): void; acquirePermit(userId: string): Promise<void>; releasePermit(userId: string): void; handleRateLimitResponse(userId: string, retryAfterSeconds: number): void; private canMakeRequest; private initializeLimiter; private cleanupInactiveUsers; getStats(): { activeUsers: number; totalPermitsAcquired: number; totalWaitTimeMs: number; averageWaitTimeMs: number; cooldownCount: number; }; getUserStats(userId: string): { userId: string; recentRequestCount: number; tenMinuteRequestCount: number; cooldownUntil: number | null; lastActivity: string; } | null; }