import Redis from '../Storage/Redis/Redis'; import CurlSender from '../Transport/Curl/CurlSender'; import RequestDto from '../Transport/Curl/RequestDto'; import ResponseDto from '../Transport/Curl/ResponseDto'; export interface ICacheCallback { dataToStore: T; expire: number; } export default class CacheService { private _redis; private _curlSender; constructor(_redis: Redis, _curlSender: CurlSender); entry(cacheKey: string, requestDto: RequestDto, getDataCallback: (res: ResponseDto) => Promise>, allowedCodes?: number[]): Promise; entryWithLock(cacheKey: string, lockKey: string, requestDto: RequestDto, getDataCallback: (res: ResponseDto) => Promise>, allowedCodes?: number[], tryCount?: number): Promise; private _recurseEntryWithLock; }