import { Streamer } from "./streamer"; interface CachePlugin { get(key: string): Promise; set(key: string, value: unknown, ms?: number): Promise; } declare enum CACHING_STRATEGY { CacheThenNetwork = "CacheThenNetwork", NetWorkThenCache = "NetWorkThenCache" } interface CacheConfiguration { plugin?: string; strategy?: CACHING_STRATEGY; duration?: string | number; cacheWithCookie?: boolean; } declare class CacheFactory { private plugins; constructor(); create(configuration: CacheConfiguration | true): Streamer; getPlugin(plugin?: string): CachePlugin; parseMs(duration?: string | number): number; getStrategy(strategy?: CACHING_STRATEGY): CACHING_STRATEGY; register(name: string, plugin: CachePlugin | (new () => CachePlugin)): void; } export { CachePlugin, CACHING_STRATEGY, CacheFactory, CacheConfiguration };