marketing-post-generator-mcp
Version:
A powerful MCP server for AI-powered marketing blog post generation with Claude integration
59 lines • 1.76 kB
TypeScript
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