import { IORedisClientType as RedisClientType, IORedisMultiType as RedisMultiType } from '../../../../types/redis';
import { StoreInitializable } from '../store-initializable';
import { RedisStoreBase } from './_base';
declare class IORedisStoreService extends RedisStoreBase<RedisClientType, RedisMultiType> implements StoreInitializable {
    constructor(storeClient: RedisClientType);
    /**
     * When in cluster mode, the transact wrapper only
     * sends commands to the same node/shard if they share a key.
     * All other commands are sent simultaneouslyusing Promise.all
     * and are then collated. this is effectiely a wrapper for
     * `multi` but is closer to `pipeline` in terms of usage when
     * promises are used.
     */
    transact(): RedisMultiType;
    exec(...args: any[]): Promise<string | string[] | string[][]>;
    setnxex(key: string, value: string, expireSeconds: number): Promise<boolean>;
    hGetAllResult(result: any): any;
    addTaskQueues(keys: string[]): Promise<void>;
}
export { IORedisStoreService };
