/** * EPG Cache Service * Caches EPG data locally to reduce API calls */ import type { EPGProgram, EPGCacheEntry } from '../types'; /** * EPG Cache Storage Interface * Implementations: localStorage (web), AsyncStorage (mobile) */ export interface EPGCacheStorage { save(entry: EPGCacheEntry): Promise | void; load(channelId: string): Promise | EPGCacheEntry | null; loadAll(): Promise | EPGCacheEntry[]; clear(): Promise | void; remove(channelId: string): Promise | void; } /** * EPG Cache Service */ export declare class EPGCacheService { private storage; private cacheTTL; constructor(storage: EPGCacheStorage, cacheTTL?: number); /** * Get cached EPG for a channel */ get(channelId: string): Promise; /** * Cache EPG data for a channel */ set(channelId: string, programs: EPGProgram[]): Promise; /** * Batch cache EPG data for multiple channels */ setBatch(channelEPGMap: Map): Promise; /** * Clear expired cache entries */ clearExpired(): Promise; /** * Get all cached channel IDs */ getCachedChannelIds(): Promise; /** * Check if channel has valid cached data */ hasValidCache(channelId: string): Promise; /** * Clear all cache */ clear(): Promise; /** * Remove cache for a specific channel */ remove(channelId: string): Promise; } /** * LocalStorage implementation for web */ export declare class LocalStorageEPGCache implements EPGCacheStorage { private keyPrefix; private getKey; save(entry: EPGCacheEntry): void; load(channelId: string): EPGCacheEntry | null; loadAll(): EPGCacheEntry[]; clear(): void; remove(channelId: string): void; } //# sourceMappingURL=epg-cache.d.ts.map