/**
 * Redis操作工具库
 * @date 2020-10-29 09:17:19
 * @author 吴锋霖
 * @doc https://github.com/NodeRedis/node-redis
 *      https://www.runoob.com/redis/redis-tutorial.html
 */
declare class RedisClient {
    private client;
    private redisCommands;
    /**
     * 创建Redis客户端
     * @param host 127.0.0.1
     * @param port  6379
     * @param password 可选
     * @param database 可选 默认0
     */
    constructor(host: string, port: number, password?: string, database?: number);
    /**
     * SET
     * @param key key
     * @param value value
     * @param expires 过期时间(秒),可选参数，默认不过期
     */
    set(key: string, value: any, expires?: number): Promise<any>;
    /**
     * setNX
     * @param key key
     * @param value value
     */
    setNX(key: string, value: any, expires?: number): Promise<any>;
    /**
     * 获取
     * @param key key
     */
    get(key: string): Promise<any>;
    /**
     * 删除
     * @param key key
     */
    delete(key: string): Promise<boolean>;
    /**
     * 判断Key是否存在
     * @param key key
     */
    exists(key: string): Promise<boolean>;
    /**
     * 用于查找所有符合给定模式 pattern 的 key
     * @param pattern
     */
    keys(pattern: string): Promise<Array<string>>;
    /**
     * 设置过期时间
     * @param key key
     * @param expires 过期时间(秒)
     */
    expire(key: string, expires: number): Promise<boolean>;
    /**
     * 将一个或多个值插入到列表头部
     * @param key key
     * @param value 值
     */
    lpush(key: string, value: any): Promise<number>;
    /**
     * 获取列表长度
     * @param key key
     */
    llen(key: string): Promise<number>;
    /**
     * 将一个值插入到已存在的列表头部
     * @param key key
     * @param value 值
     */
    lpushx(key: string, value: any): Promise<number>;
    /**
     * 获取列表指定范围内的元素
     * @param key key
     * @param start 开始索引
     * @param stop 截止索引
     */
    lrange(key: string, start: number, stop: number): Promise<any>;
    /**
     * 移出并获取列表的第一个元素
     * @param key key
     */
    lpop(key: string): Promise<any>;
    /**
     * 根据参数 COUNT 的值，移除列表中与参数 VALUE 相等的元素。
     * @param key key
     * @param count
     *  count > 0 : 从表头开始向表尾搜索，移除与 VALUE 相等的元素，数量为 COUNT 。
     *  count < 0 : 从表尾开始向表头搜索，移除与 VALUE 相等的元素，数量为 COUNT 的绝对值。
     *  count = 0 : 移除表中所有与 VALUE 相等的值。
     * @param value
     */
    lrem(key: string, count: number, value: any): Promise<any>;
    /**
     * 向集合添加一个或多个成员
     * @param key
     * @param value
     */
    sadd(key: string, value: any): Promise<any>;
    /**
     * 获取集合的成员数
     * @param key
     */
    scard(key: string): Promise<any>;
    /**
     * 返回第一个集合与其他集合之间的差异。
     * @param key1
     * @param key2
     */
    sdiff(key1: string, key2: string): Promise<any>;
    /**
     * 判断 member 元素是否是集合 key 的成员
     * @param key
     * @param member
     */
    sismember(key: string, member: any): Promise<any>;
    /**
     * 返回集合中的所有成员
     * @param key
     */
    smembers(key: string): Promise<any>;
    /**
     * 移除并返回集合中的一个随机元素
     * @param key
     */
    spop(key: string): Promise<any>;
    /**
     * 返回集合中一个或多个随机数
     * @param key
     * @param count
     */
    srandmember(key: string, count: number): Promise<any>;
    /**
     * 移除集合中一个或多个成员
     * @param key
     * @param member
     */
    srem(key: string, member: any): Promise<any>;
    /**
     * 返回所有给定集合的并集
     * @param key
     */
    sunion(key: any): Promise<any>;
    /**
     * 获取存储在哈希表中指定字段的值
     * @param key
     * @param field 字段名称
     */
    hget(key: any, field: any): Promise<any>;
    /**
     * 获取在哈希表中指定 key 的所有字段和值
     * @param key
     */
    hgetall(key: any): Promise<any>;
    /**
     * 为哈希表 key 中的指定字段的整数值加上增量 increment
     * @param key
     * @param field
     * @param increment
     */
    hincrby(key: any, field: any, increment: number): Promise<any>;
    /**
     * 将哈希表 key 中的字段 field 的值设为 value 。
     * @param key
     * @param field
     * @param value
     */
    hset(key: any, field: any, value: any): Promise<any>;
    /**
     * 同时将多个 field-value (域-值)对设置到哈希表 key 中。
     * @param key
     * @param ...args [field1,value1,field2,value2 ]
     */
    hmset(key: any, ...args: any[]): Promise<any>;
    /**
     * 删除存储在哈希表中指定字段的值
     * @param key
     * @param ...args [field1,value1,field2,value2 ]
     */
    hdel(key: any, ...args: any[]): Promise<any>;
    /**
     * 执行某个Redis指令
     * @param command 指令名称,例： set
     * @param ...args 指令参数,例： [key value 'EX' expires ]
     */
    exec(command: string, ...args: any[]): Promise<any>;
}
export { RedisClient };
