import { Redis, Cluster, type ClusterNode, type ClusterOptions, type RedisOptions } from 'ioredis';
import { type IRoomCache, type MatchMakerDriver, type SortOptions } from '@colyseus/core';
export declare class RedisDriver implements MatchMakerDriver {
    private readonly _client;
    constructor(options?: number | string | RedisOptions | ClusterNode[] | Redis | Cluster, clusterOptions?: ClusterOptions);
    has(roomId: string): Promise<boolean>;
    query(conditions: Partial<IRoomCache>, sortOptions?: SortOptions): Promise<IRoomCache<any>[]>;
    cleanup(processId: string): Promise<void>;
    findOne(conditions: Partial<IRoomCache>, sortOptions?: SortOptions): Promise<IRoomCache>;
    private _concurrentRoomCacheRequest?;
    private _roomCacheRequestByName;
    private getRooms;
    update(room: IRoomCache, operations: Partial<{
        $set: Partial<IRoomCache>;
        $inc: Partial<IRoomCache>;
    }>): Promise<boolean>;
    persist(room: IRoomCache, _?: boolean): Promise<boolean>;
    remove(roomId: string): Promise<boolean>;
    shutdown(): Promise<void>;
    clear(): void;
}
