/**
 * 缓存服务统一导出
 * 
 * 提供平台级的缓存能力，支持内存和Redis无缝切换。
 * 
 * @module cache
 * 
 * @example
 * ```typescript
 * // 方式1：使用全局缓存实例（推荐）
 * import { cache } from '@/common/cache'
 * 
 * // 缓存用户数据
 * await cache.set('user:123', { id: 123, name: 'Alice' }, 60 * 5) // 5分钟
 * const user = await cache.get<User>('user:123')
 * 
 * // 缓存LLM响应
 * const cacheKey = `llm:${model}:${hash(prompt)}`
 * const cached = await cache.get(cacheKey)
 * if (cached) return cached
 * 
 * const response = await llm.chat(prompt)
 * await cache.set(cacheKey, response, 60 * 60) // 1小时
 * 
 * // 方式2：直接使用适配器
 * import { MemoryCacheAdapter } from '@/common/cache'
 * const cache = new MemoryCacheAdapter()
 * 
 * // 方式3：使用工厂
 * import { CacheFactory } from '@/common/cache'
 * const cache = CacheFactory.getInstance()
 * ```
 */

export type { CacheAdapter } from './CacheAdapter.js'
export { MemoryCacheAdapter } from './MemoryCacheAdapter.js'
export { RedisCacheAdapter } from './RedisCacheAdapter.js'
export { CacheFactory } from './CacheFactory.js'

// Import for usage below
import { CacheFactory } from './CacheFactory.js'

/**
 * 全局缓存实例（推荐使用）
 * 
 * 自动根据环境变量选择缓存实现：
 * - CACHE_TYPE=memory: 内存缓存（本地开发）
 * - CACHE_TYPE=redis: Redis缓存（生产环境）
 */
export const cache = CacheFactory.getInstance()




