/** * Client-Side Rate Limiter (Token Bucket) * * Prevents clients from exceeding the server's rate limit (100 req/s on mainnet) * by throttling outgoing requests. Excess requests are queued rather * than rejected, so callers never see a rate-limit error from the SDK. */ export interface RateLimiterOptions { /** Maximum requests per second (default: 25, under server's 100/s mainnet limit) */ maxRequestsPerSecond?: number; /** Maximum queued requests before rejecting (default: 100) */ maxQueueSize?: number; } export declare class RateLimiter { private tokens; private maxTokens; private refillRate; private lastRefill; private queue; private maxQueueSize; private drainTimer; constructor(options?: RateLimiterOptions); /** * Acquire a token before making a request. * Resolves immediately if tokens are available, otherwise queues. */ acquire(): Promise; /** * Get current state for debugging. */ get state(): { tokens: number; queued: number; }; /** * Cancel all queued requests and stop the drain timer. */ destroy(): void; private refill; private scheduleDrain; private drain; } //# sourceMappingURL=rate-limiter.d.ts.map