/**
 * 로깅 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