import { OnModuleDestroy } from '@nestjs/common';
import { Observable, Subject } from 'rxjs';
export declare enum ERedisEvent {
    EMIT_SOCKET_MESSAGE = "emitSocketMessage",
    EMIT_SOCKET_MESSAGE_CHANGED = "emitSocketMessageChanged"
}
export declare const REDIS_KEYS: {
    ATTACHMENT_LICENSEE_IDS_CHECKS: string;
    CONNECTED_LICENSEE_IDS: string;
    LAUNCHED_INSTANCE_COUNT: string;
};
export declare class RedisService implements OnModuleDestroy {
    private logger;
    private pub;
    private sub;
    private message$;
    onConnect$: Subject<void>;
    constructor();
    onModuleDestroy(): void;
    private connect;
    private getChannelList;
    on<T = {
        licenseeId: number;
        messageId: number;
    }>(type: ERedisEvent.EMIT_SOCKET_MESSAGE): Observable<{
        data: T;
        channel: string;
    }>;
    on<T = {
        licenseeId: number;
        messageId: number;
    }>(type: ERedisEvent.EMIT_SOCKET_MESSAGE_CHANGED): Observable<{
        data: T;
        channel: string;
    }>;
    emit(type: ERedisEvent.EMIT_SOCKET_MESSAGE, data: {
        licenseeId: number;
        messageId: number;
    }): any;
    emit(type: ERedisEvent.EMIT_SOCKET_MESSAGE_CHANGED, data: {
        licenseeId: number;
        messageId: number;
    }): any;
    pushToList(key: string, value: string): void;
    getList(key: string): Promise<string[]>;
    deleteKey(key: string): void;
    removeValueFromList(key: string, value: string): void;
    increment(key: string): Promise<number>;
    decrement(key: string): void;
}
