interface CacheStore { get(key: string): Promise; set(key: string, value: T, ttlMs?: number): Promise; getOrSet(key: string, loader: () => Promise, ttlMs?: number): Promise; attachTags(key: string, tags: string[]): Promise; flushTags(tags: string[]): Promise; invalidate(key: string): Promise; invalidateByPrefix(prefix: string): Promise; clear(): Promise; size(): Promise; } export type { CacheStore };