import { RedisClientType } from '../client'; import { RedisClusterOptions } from '.'; import { RedisCommandArgument, RedisModules, RedisScripts } from '../commands'; export interface ClusterNode { id: string; client: RedisClientType; } interface NodeAddress { host: string; port: number; } export declare type NodeAddressMap = { [address: string]: NodeAddress; } | ((address: string) => NodeAddress | undefined); declare type OnError = (err: unknown) => void; export default class RedisClusterSlots { #private; constructor(options: RedisClusterOptions, onError: OnError); connect(): Promise; rediscover(startWith: RedisClientType): Promise; getSlotMaster(slot: number): ClusterNode; getClient(firstKey?: RedisCommandArgument, isReadonly?: boolean): RedisClientType; getMasters(): Array>; getNodeByAddress(address: string): ClusterNode | undefined; quit(): Promise; disconnect(): Promise; } export {};