/// <reference types="node" />
import EventEmitter from 'events';
import { CompatibleCallbackRedisClient, CompatibleNodeRedisV4Client, CompatiblePromiseRedisClient, CompatibleRedisClient } from './compatible-redis-client';
/**
 * Converts a Redis callback interface to match a Redis Promise interface. Implements only
 * a minimal subset of Redis functionality as defined in
 * {@link CompatiblePromiseRedisClient}.
 */
export declare class RedisPromiseAdapter<T extends CompatibleCallbackRedisClient> extends EventEmitter implements CompatiblePromiseRedisClient {
    #private;
    constructor(client: T);
    /**
   * Factory method returns a Promise-based Redis client.
   *
   * If the provided client is a callback client, it’s wrapped in the Promise adapter. If
   * the provided client is a Promise client, it’s passed through and returned.
   *
   * @param client a Redis Promise or callback client
   *
   * @returns a Redis Promise client
   */
    static create(client: CompatibleRedisClient | CompatibleNodeRedisV4Client): CompatiblePromiseRedisClient;
    get(key: string): PromiseLike<string | null>;
    set(key: string, value: string, expiryMode?: 'PX', time?: number): PromiseLike<unknown>;
    del(key: string): PromiseLike<number>;
    sadd(key: string, member: string): PromiseLike<unknown>;
    srem(key: string, member: string): PromiseLike<unknown>;
    smembers(key: string): PromiseLike<string[]>;
    sismember(key: string, member: string): PromiseLike<number | boolean>;
}
