import { RedisClient } from 'bun'; export declare interface RedisConfig { host?: string port?: number password?: string database?: number url?: string keyPrefix?: string } export declare interface RedisMessage { type: 'broadcast' | 'subscribe' | 'unsubscribe' | 'presence' channel: string event: string data: unknown socketId?: string | string[] serverId?: string } export declare class RedisAdapter { get client(): RedisClient; constructor(config: RedisConfig); connect(): Promise; close(): void; broadcast(channel: string, event: string, data: unknown, excludeSocketId?: string | string[]): Promise; onMessage(handler: (message: RedisMessage) => void): void; offMessage(handler: (message: RedisMessage) => void): void; storeChannel(channel: string, socketId: string): Promise; removeChannel(channel: string, socketId: string): Promise; getChannelSubscribers(channel: string): Promise; storePresenceMember(channel: string, socketId: string, member: unknown): Promise; removePresenceMember(channel: string, socketId: string): Promise; getPresenceMembers(channel: string): Promise>; incrementStat(stat: string): Promise; getStats(): Promise>; storeConnection(socketId: string, data: unknown): Promise; removeConnection(socketId: string): Promise; getConnection(socketId: string): Promise; getTotalConnections(): Promise; getTotalChannels(): Promise; healthCheck(): Promise; getServerId(): string; }