import { RateLimiter } from './types.js'; export declare class TokenBucketRateLimiter implements RateLimiter { private tokens; private lastRefill; private readonly maxTokens; private readonly refillRate; private readonly refillInterval; constructor(maxRequests: number, windowMs: number); private refillTokens; canMakeRequest(): boolean; waitForAvailableToken(): Promise; } export declare const createTrelloRateLimiters: () => { apiKeyLimiter: TokenBucketRateLimiter; tokenLimiter: TokenBucketRateLimiter; /** * Checks if a request can be made without hitting rate limits. * This is useful for pre-checking before attempting a request, * allowing for more graceful handling of rate limits without blocking. * * @returns {boolean} True if both API key and token limiters have available tokens */ canMakeRequest(): boolean; /** * Waits until tokens are available for both API key and token limiters. * This method blocks execution until rate limits allow the request to proceed. * Used by the axios interceptor to ensure all requests respect Trello's rate limits. * * @returns {Promise} Resolves when tokens are available */ waitForAvailableToken(): Promise; };