import type { RateLimitStorage, RateLimitData, RateLimitTransaction } from '../types'; interface RedisClient { get(key: string): Promise; set(key: string, value: string, mode?: string, duration?: number): Promise; incr(key: string): Promise; incrby(key: string, increment: number): Promise; del(key: string): Promise; exists(key: string): Promise; expire(key: string, seconds: number): Promise; multi(): RedisMulti; } interface RedisMulti { get(key: string): this; set(key: string, value: string, mode?: string, duration?: number): this; incr(key: string): this; incrby(key: string, increment: number): this; del(key: string): this; expire(key: string, seconds: number): this; exec(): Promise; } export declare class RedisStorage implements RateLimitStorage { private client; private keyPrefix; constructor(client: RedisClient, keyPrefix?: string); private getKey; private serializeData; private deserializeData; get(key: string): Promise; set(key: string, data: RateLimitData, ttl?: number): Promise; increment(key: string, amount?: number): Promise; delete(key: string): Promise; exists(key: string): Promise; expire(key: string, ttl: number): Promise; multi(): RateLimitTransaction; } export {};