/** * Token Bucket Core Logic - SMI-730, SMI-1189 * * Core token bucket algorithm implementation for rate limiting. */ import type { TokenBucket, RateLimitResult, RateLimitStorage } from './types.js'; /** * Configuration for token bucket operations */ export interface TokenBucketConfig { maxTokens: number; refillRate: number; windowMs: number; keyPrefix: string; failMode: 'open' | 'closed'; } /** * Try to consume tokens from a bucket (internal helper) * * @param storage - Storage for token buckets * @param config - Token bucket configuration * @param key - Rate limit key * @param cost - Number of tokens to consume * @returns Rate limit result */ export declare function tryConsumeToken(storage: RateLimitStorage, config: TokenBucketConfig, key: string, cost: number): Promise; /** * Get the current state of a token bucket * * @param storage - Storage for token buckets * @param keyPrefix - Key prefix for storage * @param key - Rate limit key * @returns Current bucket state or null */ export declare function getTokenBucketState(storage: RateLimitStorage, keyPrefix: string, key: string): Promise; /** * Reset a token bucket * * @param storage - Storage for token buckets * @param keyPrefix - Key prefix for storage * @param key - Rate limit key */ export declare function resetTokenBucket(storage: RateLimitStorage, keyPrefix: string, key: string): Promise; //# sourceMappingURL=token-bucket.d.ts.map