tryaii-mcp-server
Version:
TryAII MCP Server - 15+ AI models with comparison, cost tracking, and collective intelligence
51 lines • 1.5 kB
TypeScript
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