// Cache Adapter Interface
// Defines the minimal contract for the entitlement and branding caches.
// Concrete implementations: MemoryAdapter (default) and RedisAdapter (production).

export interface CacheAdapter {
  /** Returns the cached value, or null on miss or error. */
  get<T>(key: string): Promise<T | null>

  /** Stores a value with an explicit TTL in milliseconds. */
  set<T>(key: string, value: T, ttlMs: number): Promise<void>

  /** Removes a key immediately (explicit invalidation). */
  delete(key: string): Promise<void>
}
