import { IRedisClient } from '../interfaces/redis-client'; export type NodeRedisCommandArgument = string | Buffer; export interface NodeRedisRawTransaction { hGetAll(key: string): this; hSet(key: string, data: Record): this; hScan(key: string, cursor: string, options?: Record): this; sMembers(key: string): this; sScan(key: string, cursor: string, options?: Record): this; zRange(key: string, start: number, end: number): this; lRange(key: string, start: number, end: number): this; lLen(key: string): this; del(keys: string[]): this; evalSha(sha: string, options: { keys: string[]; arguments: NodeRedisCommandArgument[]; }): this; exec(): Promise; } export interface NodeRedisRawClient { isReady: boolean; isOpen: boolean; options?: Record; on(event: string, listener: (...args: any[]) => void): this; connect(): Promise; close?(): Promise; destroy(): void | Promise; quit(): Promise; duplicate(): NodeRedisRawClient; scriptLoad(lua: string): Promise; evalSha(sha: string, options: { keys: string[]; arguments: NodeRedisCommandArgument[]; }): Promise; eval(lua: string, options: { keys: string[]; arguments: NodeRedisCommandArgument[]; }): Promise; multi(): NodeRedisRawTransaction; hGetAll(key: string): Promise>; hGet(key: string, field: string): Promise; hmGet(key: string, fields: string[]): Promise<(string | null | undefined)[]>; hSet(key: string, data: Record): Promise; hDel(key: string, fields: string[]): Promise; hExists(key: string, field: string): Promise; get(key: string): Promise; set(key: string, value: string, options?: Record): Promise; del(keys: string[]): Promise; zRange(key: string, start: number, end: number, options?: Record): Promise; zRangeWithScores?(key: string, start: number, end: number, options?: Record): Promise<{ value: string; score: number; }[]>; zCard(key: string): Promise; zScore(key: string, member: string): Promise; zAdd(key: string, members: { score: number; value: string; }[]): Promise; zRem(key: string, members: string[]): Promise; lRange(key: string, start: number, end: number): Promise; lLen(key: string): Promise; lTrim(key: string, start: number, end: number): Promise; lPos(key: string, value: string): Promise; lPush(key: string, values: string[]): Promise; rPop(key: string): Promise; sMembers(key: string): Promise; sAdd(key: string, members: string[]): Promise; sCard(key: string): Promise; xAdd(key: string, id: string, fields: Record, options?: Record): Promise; xRead(streams: { key: string; id: string; }[], options?: Record): Promise; xTrim(key: string, strategy: 'MAXLEN', threshold: number, options?: Record): Promise; xLen(key: string): Promise; xRevRange(key: string, end: string, start: string, options?: Record): Promise; bzPopMin(key: string, timeout: number): Promise<{ key: string; value: string; score: number | string; } | null>; info(): Promise; clientSetName(name: string): Promise; sendCommand(args: string[]): Promise; scan(cursor: string, options?: Record): Promise<{ cursor: number | string; keys: string[]; }>; scanIterator(options?: Record): AsyncIterable; keys(pattern: string): Promise; exists(keys: string[]): Promise; incr(key: string): Promise; incrBy(key: string, increment: number): Promise; flushAll(): Promise; } export declare function createNodeRedisClient(client: TClient): IRedisClient;