/// import { ValkeyCommandArgument } from "../commands"; export declare enum PubSubType { CHANNELS = "CHANNELS", PATTERNS = "PATTERNS", SHARDED = "SHARDED" } export type PubSubListener = (message: T, channel: T) => unknown; export interface ChannelListeners { unsubscribing: boolean; buffers: Set>; strings: Set>; } export type PubSubTypeListeners = Map; export type PubSubCommand = ReturnType; export declare class PubSub { #private; static isStatusReply(reply: Array): boolean; static isShardedUnsubscribe(reply: Array): boolean; get isActive(): boolean; subscribe(type: PubSubType, channels: string | Array, listener: PubSubListener, returnBuffers?: T): { args: ValkeyCommandArgument[]; channelsCounter: number; resolve: () => void; reject: () => void; } | undefined; extendChannelListeners(type: PubSubType, channel: string, listeners: ChannelListeners): { args: (string | Buffer)[]; channelsCounter: number; resolve: () => number; reject: () => void; } | undefined; extendTypeListeners(type: PubSubType, listeners: PubSubTypeListeners): { args: ValkeyCommandArgument[]; channelsCounter: number; resolve: () => number; reject: () => void; } | undefined; unsubscribe(type: PubSubType, channels?: string | Array, listener?: PubSubListener, returnBuffers?: T): { args: ValkeyCommandArgument[]; channelsCounter: number; resolve: () => void; reject: undefined; } | undefined; reset(): void; resubscribe(): Array; handleMessageReply(reply: Array): boolean; removeShardedListeners(channel: string): ChannelListeners; getTypeListeners(type: PubSubType): PubSubTypeListeners; }