/**
 * 通用存储适配器接口
 * 使用简单的key-value存储模式支持所有OIDC存储需求
 */
export interface StorageAdapter {
    /**
     * 存储数据
     * @param key 存储键
     * @param value 存储值
     * @param ttl 过期时间（秒），可选
     */
    set(key: string, value: any, ttl?: number): Promise<void>;

    /**
     * 获取数据
     * @param key 存储键
     */
    get<T = any>(key: string): Promise<T | null>;

    /**
     * 删除数据
     * @param key 存储键
     */
    delete(key: string): Promise<void>;

    /**
     * 批量删除匹配模式的键
     * @param pattern 键模式（支持通配符）
     */
    deletePattern(pattern: string): Promise<void>;

    /**
     * 检查键是否存在
     * @param key 存储键
     */
    exists(key: string): Promise<boolean>;

    /**
     * 设置键的过期时间
     * @param key 存储键
     * @param ttl 过期时间（秒）
     */
    expire(key: string, ttl: number): Promise<void>;
} 