UNPKG

tryaii-mcp-server

Version:

TryAII MCP Server - 15+ AI models with comparison, cost tracking, and collective intelligence

51 lines 1.5 kB
export interface RateLimitConfig { windowMs: number; maxRequests: number; maxCost: number; blockDurationMs: number; algorithm: 'fixed' | 'sliding' | 'token-bucket'; } export interface RateLimitResult { allowed: boolean; remaining: number; resetTime: number; retryAfter?: number; reason: string | undefined; } export interface UsageRecord { timestamp: number; requests: number; cost: number; } export declare class RateLimitService { private static instance; private usageStore; private blockStore; private tokenBuckets; private readonly rateLimits; private constructor(); static getInstance(): RateLimitService; checkRateLimit(userId: string, userTier?: string, cost?: number): Promise<RateLimitResult>; private applySlidingWindowRateLimit; private applyTokenBucketRateLimit; private applyFixedWindowRateLimit; getUserUsage(userId: string, userTier?: string): Promise<{ currentPeriod: { requests: number; cost: number; }; remaining: { requests: number; cost: number; }; resetTime: number; tier: string; blocked: boolean; blockExpiresAt?: number; }>; resetUserLimits(userId: string): Promise<void>; getAllUsersStatus(): Promise<Map<string, any>>; cleanup(): Promise<void>; } export declare const rateLimitService: RateLimitService; //# sourceMappingURL=RateLimitService.d.ts.map