UNPKG

marketing-post-generator-mcp

Version:

A powerful MCP server for AI-powered marketing blog post generation with Claude integration

59 lines 1.76 kB
import { Logger } from '../../utils/logger'; export interface RateLimitConfig { windowMs: number; maxRequests: number; keyGenerator?: (identifier: string) => string; skipSuccessfulRequests?: boolean; skipFailedRequests?: boolean; resetOnSuccessfulRequest?: boolean; } export interface RateLimitInfo { totalRequests: number; remainingRequests: number; resetTime: number; retryAfter?: number; } export interface RateLimitResult { allowed: boolean; info: RateLimitInfo; } export declare class RateLimitService { private readonly logger; private readonly store; private readonly cleanupInterval; constructor(logger: Logger); checkRateLimit(identifier: string, config: RateLimitConfig): RateLimitResult; recordRequest(identifier: string, config: RateLimitConfig, success?: boolean): void; getRateLimitInfo(identifier: string, config: RateLimitConfig): RateLimitInfo | null; resetRateLimit(identifier: string, config: RateLimitConfig): void; getStats(): { totalKeys: number; activeRecords: number; memoryUsage: number; }; private cleanup; destroy(): void; } export declare const rateLimitConfigs: { readonly strict: { readonly windowMs: number; readonly maxRequests: 5; }; readonly standard: { readonly windowMs: number; readonly maxRequests: 60; }; readonly generous: { readonly windowMs: number; readonly maxRequests: 300; }; readonly hourly: { readonly windowMs: number; readonly maxRequests: 1000; }; readonly daily: { readonly windowMs: number; readonly maxRequests: 10000; }; }; //# sourceMappingURL=RateLimitService.d.ts.map