/** * 로깅 Rate Limiter * * MCP 스펙 준수: 로그 전송 빈도를 제한하여 클라이언트에 과부하를 주지 않도록 함 * * 참조: * - MCP 스펙: https://spec.modelcontextprotocol.io/specification/server/#logging */ /** * Rate Limiter 설정 */ export interface RateLimiterConfig { /** * 최대 로그 전송 빈도 (초당 로그 수) * 기본값: 10 (초당 10개 로그) */ maxLogsPerSecond?: number; /** * 버스트 허용 크기 (한 번에 전송 가능한 로그 수) * 기본값: 20 */ burstSize?: number; } /** * 로깅 Rate Limiter 클래스 * Token Bucket 알고리즘 사용 */ export declare class LoggingRateLimiter { private tokens; private readonly capacity; private readonly refillRate; private lastRefill; private droppedCount; constructor(config?: RateLimiterConfig); /** * 로그 전송 가능 여부 확인 * @returns true면 전송 가능, false면 rate limit에 걸림 */ canSend(): boolean; /** * 로그 전송 (토큰 소비) * @returns true면 전송 성공, false면 rate limit에 걸림 */ consume(): boolean; /** * 토큰 리필 */ private refill; /** * 드롭된 로그 수 조회 */ getDroppedCount(): number; /** * 드롭된 로그 수 리셋 */ resetDroppedCount(): void; /** * 현재 토큰 수 조회 */ getAvailableTokens(): number; } /** * 전역 Rate Limiter 인스턴스 * 환경 변수로 설정 가능: * - LOG_RATE_LIMIT_MAX_LOGS_PER_SECOND: 초당 최대 로그 수 (기본값: 10) * - LOG_RATE_LIMIT_BURST_SIZE: 버스트 크기 (기본값: 20) */ export declare const loggingRateLimiter: LoggingRateLimiter; //# sourceMappingURL=logging-rate-limiter.d.ts.map