import redis from 'ioredis';
import { Knex } from 'knex';
interface OneConnectI {
    urlDbMaster: string;
    urlDbScan: string;
}
interface OneDbConnectI {
    redisMaster: redis.Redis;
    redisScan: redis.Redis;
}
interface ConnectI {
    env?: string;
    urlDbMaster?: string;
    urlDbScan?: string;
    connect?: Record<string, OneConnectI[]>;
    sphinxDb?: Knex.Config;
    sphinxIndex?: string;
}
/** Обертка над редисом которая понимает async/await */
export declare class RedisSys {
    env: string;
    ixRedisDb: Record<number, OneDbConnectI>;
    ixRedisDbError: Record<number, OneDbConnectI>;
    ixRedisDbCommon: Record<number, OneDbConnectI>;
    ixRedisDbCommonError: Record<number, OneDbConnectI>;
    sphinxDb?: Knex;
    sphinxIndex?: string;
    ipSrv: string;
    ipConnectUse: string;
    asIpRedis: string[];
    redisMaster: redis.Redis;
    redisScan: redis.Redis;
    /** Проверка БД редиса */
    private checkRedisDb;
    /** Интервал проверки актуальности соединения REDIS */
    private intervalRedis;
    /** Обработка БД с ошибками */
    workErrorDb(dbRedis: redis.Redis): void;
    /** init */
    constructor(param: ConnectI);
    /**
     * Получить значение из редиса
     * @param key
     */
    get(key: string): Promise<string>;
    /**
     * Получить ключи по шаблону - медленный способ
     * @param sKeyPattern
     */
    keys(sKeyPattern: string): Promise<string[]>;
    /**
     * Получить ключи по шаблону сканированием
     * @param keys
     */
    scan(sKeyPattern: string): Promise<string[]>;
    /**
     * Получить количество ключей базы данных
     * @param keys
     */
    dbsize(): Promise<number>;
    /**
     * Поместить значение в редис
     * @param key
     * @param val
     * @param time
     */
    set(key: string, val: string | number, time?: number): Promise<string>;
    /**
     * Найти и удалить ключи по шаблону
     * @param sMatch
     * @param iCount
     */
    clear(sMatch: string): Promise<string[]>;
    /**
     * Удалить ключи по ID
     * @param keys
     */
    del(keys: any[]): Promise<any>;
    /**
     * Получить значение из редиса
     * @param sKey
     */
    private getFromSphinx;
    /**
     * Получить ключи по шаблону сканированием
     * @param keys
     */
    scanFromSphinx(sKey: string): Promise<string[]>;
    /**
     * Поместить значение в редис
     * @param sKey
     * @param val
     * @param time
     */
    setInSphinx(sKey: string): Promise<string>;
    clearKeyForMatch(sKey: string): string;
    /** Ждет выполнения запросов и закрывает соединение */
    quit(): void;
}
export {};
