/// <reference types="node" />
import { CacheStore, CacheSetOptions } from './cache_store';
import { RedisClient } from 'redis';
import { RedisConnectionOptions } from './redis_adapter';
export declare class RedisCacheStore implements CacheStore {
    redis: FlyRedis;
    constructor(redis: RedisConnectionOptions | RedisClient);
    get(ns: string, key: string): Promise<Buffer>;
    getMulti(ns: string, keys: string[]): Promise<(Buffer | null)[]>;
    set(ns: string, key: string, value: any, options?: CacheSetOptions | number): Promise<boolean>;
    expire(ns: string, key: string, ttl: number): Promise<boolean>;
    ttl(ns: string, key: string): Promise<number>;
    del(ns: string, key: string): Promise<boolean>;
    setTags(ns: string, key: string, tags: string[]): Promise<boolean>;
    purgeTag(ns: string, tags: string): Promise<string[]>;
}
declare class FlyRedis {
    getBufferAsync: (key: Buffer | string) => Promise<Buffer>;
    getMultiBufferAsync: (keys: string[]) => Promise<Buffer[]>;
    setAsync: (key: string, value: Buffer, mode?: number | string, duration?: number, exists?: string) => Promise<"OK" | undefined>;
    expireAsync: (key: string, ttl: number) => Promise<boolean>;
    ttlAsync: (key: string) => Promise<number>;
    delAsync: (...keys: string[]) => Promise<boolean>;
    saddAsync: (key: string, values: string | string[]) => Promise<boolean>;
    sscanAsync: (key: string, cursor: number) => Promise<[string, string[]]>;
    smembersAsync: (key: string) => Promise<string[] | undefined>;
    sismemberAsync: (key: string, member: string) => Promise<boolean>;
    redis: RedisClient;
    constructor(redis: RedisClient);
    sscanShim(key: string, cursor: number, count?: number): Promise<(string | string[])[]>;
}
export {};
