type StalierCacheValue = { updatedCount: number; lastUpdated: number; value: unknown; }; interface StalierCacheClient { get(key: string): Promise; set(key: string, value: StalierCacheValue): Promise; } interface StalierWarningLogger { warn(message: string): void; } export type StalierOptions = { maxAge?: number; staleWhileRevalidate?: number; logger?: StalierWarningLogger; cacheKey: string | (() => string); cacheClient: StalierCacheClient; }; export type StalierResult = { data: T; status: 'HIT' | 'MISS' | 'STALE' | 'NO_CACHE'; }; export {};