/**
 * Rate Limiter for Sync Operations (TRL-336)
 *
 * Prevents DoS via message flood by limiting per-peer message frequency.
 */
export interface RateLimiterOptions {
    /** Maximum messages per window (default: 100). */
    maxMessages?: number;
    /** Window duration in ms (default: 1000). */
    windowMs?: number;
}
export interface RateLimiterState {
    allowed: boolean;
    remaining: number;
    resetTime: number;
}
/**
 * Token bucket rate limiter per peer.
 */
export declare class RateLimiter {
    private options;
    private peerBuckets;
    constructor(opts?: RateLimiterOptions);
    /**
     * Check if a peer is allowed to send a message.
     */
    check(peerId: string): RateLimiterState;
    /**
     * Reset a peer's rate limit bucket.
     */
    reset(peerId: string): void;
    /**
     * Clear all peer buckets.
     */
    clear(): void;
    /**
     * Get current state for a peer.
     */
    getState(peerId: string): RateLimiterState | null;
}
//# sourceMappingURL=rate-limiter.d.ts.map