import { DebugCacheLogger } from './_utils/debug-cache-logger'; export declare type RequestCacheStrategy = 'NetworkFirst' | 'StaleWhileRevalidate' | 'CacheFirst' | 'CacheFirstWithRevalidate'; export declare type OnUpdateCacheParamsType = ResponseType & { prevValue: { response?: ResponseType; old: boolean; }; }; export declare type CacheStateType = { quota?: number; usage?: number; minAllowedQuota: number; }; export declare type CacheHitParamsType = { size: number; expires: number; cacheKey: string; cacheState: CacheStateType; }; export declare type CacheMissParamsType = { cacheKey: string; cacheState: CacheStateType; }; export declare type CacheRequestParamsType = { request: () => Promise; onUpdateCache?: (params: OnUpdateCacheParamsType) => void; onRequestError?: () => void; expires?: number; expiresToDate?: number; disabledCache?: boolean; timeout?: number; onCacheHit?: (params: CacheHitParamsType) => void; onCacheMiss?: (params: CacheMissParamsType) => void; }; export declare type IRequestCacheParamsType = { timestamp: number; storageCacheName: string; requestCacheKey: string; debugCacheLogger: DebugCacheLogger; }; export interface IRequestCache { timestamp: number; storageCacheName: string; requestCacheKey: string; debugCacheLogger: DebugCacheLogger; cacheRequest: (params: CacheRequestParamsType) => Promise; } export declare type GetRequestCacheParamsType = { strategy: RequestCacheStrategy; storageCacheName: string; requestCacheKey: string; debug?: boolean; minAllowedQuota?: number; }; export interface IApiCacher { getRequestCache: (params: GetRequestCacheParamsType) => Promise; }