import { RedisClientType, RedisFunctions, RedisModules, RedisScripts } from '@redis/client';
import { RedisClientMultiCommandType } from '@redis/client/dist/lib/client/multi-command.js';
import { ICallback } from '../../../async/index.js';
import { IRedisTransaction } from '../../types/index.js';
export type TRedisTransactionNodeRedis = RedisClientMultiCommandType<RedisModules, RedisFunctions, RedisScripts>;
export type TRedisClientNodeRedis = RedisClientType<RedisModules, RedisFunctions, RedisScripts>;
export declare class NodeRedisClientMulti implements IRedisTransaction {
    protected multi: TRedisTransactionNodeRedis;
    constructor(client: TRedisClientNodeRedis);
    lrem(key: string, count: number, element: string): this;
    lpop(key: string): this;
    lpush(key: string, element: string): this;
    ltrim(key: string, start: number, stop: number): this;
    rpop(key: string): this;
    rpush(key: string, element: string): this;
    zadd(key: string, score: number, element: string): this;
    zrem(key: string, element: string | string[]): this;
    sadd(key: string, element: string): this;
    srem(key: string, element: string | string[]): this;
    hset(key: string, field: string, value: string | number): this;
    hdel(key: string, field: string | string[]): this;
    hincrby(key: string, field: string, by: number): this;
    pexpire(key: string, millis: number): this;
    expire(key: string, secs: number): this;
    rpoplpush(source: string, destination: string): this;
    del(key: string | string[]): this;
    exec(cb: ICallback<unknown[]>): void;
}
//# sourceMappingURL=node-redis-client-multi.d.ts.map