import { RedisSys } from './RedisSys';
import { UserSys } from './UserSys';
import { ErrorSys } from '@63pokupki/components/lib';
import { P63Context } from './P63Context';
/**
 * Система кеширования
 */
export declare class CacheSys {
    protected redisSys: RedisSys;
    protected errorSys: ErrorSys;
    protected userSys: UserSys;
    protected ctx: P63Context;
    constructor(ctx: P63Context);
    /**
     * Авто кеширование для встраивания в функцию
     * @param sKey - Ключ кеша
     * @param iTimeSec - Время кеширования
     * @param callback - функция получающая данные из БД
     */
    autoCache<RequestT>(sKey: string, iTimeSec: number, callback: () => Promise<RequestT>): Promise<RequestT>;
    /**
     * Авто кеширование строки для встраивания в функцию
     * @param sKey - Ключ кеша
     * @param iTimeSec - Время кеширования
     * @param callback - функция получающая данные из БД
     */
    autoCacheStr(sKey: string, iTimeSec: number, callback: any): Promise<string>;
    /**
     * Авто кеширование int переменной для встраивания в функцию
     * @param sKey - Ключ кеша
     * @param iTimeSec - Время кеширования
     * @param callback - функция получающая данные из БД
     */
    autoCacheInt(sKey: string, iTimeSec: number, callback: any): Promise<number>;
    /**
     * Авто кеширование ID переменной для встраивания в функцию
     * @param sKey - Ключ кеша
     * @param iTimeSec - Время кеширования
     * @param callback - функция получающая данные из БД
     */
    autoCacheID(sKey: string, iTimeSec: number, callback: any): Promise<number>;
    /**
     * Очистить кеш редиса
     * @param sKey
     */
    clearCache(sKey: string): Promise<void>;
}
