import Redis from 'ioredis';
export declare class RedisService {
    private readonly redisClient;
    private redisCache;
    constructor(redisClient: Redis);
    publish(channel: string, message: any): Promise<number>;
    subscribe(channel: string, handler: (message: string) => void): Promise<void>;
    unsubscribe(channel: string): Promise<void>;
    brpop(listKey: string, timeout: number, clientKey?: string): Promise<any>;
    onModuleDestroy(): Promise<void>;
    scan(cursor: string, matchType: 'MATCH', matchPattern: string, countType: 'COUNT', count: number): Promise<[string, string[]]>;
    set(key: string, value: any, seconds?: number): Promise<"OK">;
    get(key: string): Promise<any>;
    del(key: string): Promise<void>;
    exists(key: string): Promise<boolean>;
    keys(key: string): Promise<string[]>;
    flushall(): Promise<"OK">;
    flushCurrentDB(): Promise<"OK">;
    pipeline(): import("ioredis").ChainableCommander;
    mget(keys: string[]): Promise<string[]>;
    smembers(key: string): Promise<string[]>;
    hincrby(key: string, field: string, count: number): Promise<number>;
    hget(key: string, field: string): Promise<string>;
    scard(key: string): Promise<number>;
    hmset(key: string, field: any): Promise<"OK">;
    hmget(key: string, ...fields: string[]): Promise<string[]>;
    zadd(key: string, score: number, member: string): Promise<number>;
    zrangebyscore(key: string, min: number | string, max: number | string): Promise<string[]>;
    zrem(key: string, member: string): Promise<number>;
    hset(key: string, fieldOrObject: string | Record<string, any>, value?: any): Promise<number>;
    hgetall(key: string): Promise<Record<string, string>>;
    lpush(key: string, value: any): Promise<number>;
    expire(key: string, seconds: number): Promise<number>;
    getEntity<T>(key: string | number, entity: new () => T): Promise<T>;
    getEntityAll<T>(entity: new () => T): Promise<T[]>;
    findByCondition<T>(entity: new () => T, propertyName: string, propertyValue: any): Promise<T | null>;
    getUniversalOptionList<T>(entityName: string): Promise<any>;
    getDevice<T>(entity: new () => T, iotId: string, projectId?: string, productId?: string, deviceId?: string): Promise<T>;
    setDeviceSnapshoot(iotId: string, dataJson: any[]): Promise<void>;
    getDeviceSnapshoot(iotId: string): Promise<any>;
    addSubDevice(parentIotId: string, subIotId: string): Promise<void>;
    getSubDevices<T>(entity: new () => T, iotId: string): Promise<T[]>;
}
