import { Redis } from 'ioredis'; import type { Store } from './types.js'; import type { RateLimitResult, AlgorithmType } from '../types/index.js'; export interface RedisStoreOptions { timeoutMs?: number; retryLimit?: number; keyPrefix?: string; logger?: { warn: (msg: string, ...args: any[]) => void; error: (msg: string, ...args: any[]) => void; info: (msg: string, ...args: any[]) => void; }; } export declare class RedisStore implements Store { private redis; private initialized; private timeoutMs; private shas; private logger; private retryLimit; private lastFailureTime; private keyPrefix; constructor(redis: Redis, options?: RedisStoreOptions); initialize(): Promise; private safeExecute; private executeWithRetry; private execScript; private ensureInitialized; consume(key: string, window: number, max: number, algorithm?: AlgorithmType, _burst?: number): Promise; peek(key: string, window: number, max: number, algorithm?: AlgorithmType): Promise; private unlinkKeysByPrefix; reset(key?: string): Promise; getStats(): Record; }