/**
 * Cache interfaces - decoupled contracts
 */

export interface CacheAdapter {
  get<T>(key: string): Promise<T | null>;
  set<T>(key: string, value: T, ttl?: number): Promise<void>;
  del(key: string): Promise<void>;
  clear(): Promise<void>;
}

export interface CacheConfig {
  prefix?: string;
  defaultTTL?: number;
}