/** * 缓存服务 - 用于缓存群组和用户信息 */ import { Context } from 'koishi'; /** 群组缓存信息 */ export interface GuildCacheInfo { id: string; name: string; avatar?: string; lastUpdate: number; } /** 用户缓存信息 */ export interface UserCacheInfo { id: string; name: string; avatar?: string; lastUpdate: number; } /** 群成员缓存信息 */ export interface MemberCacheInfo { guildId: string; userId: string; nick?: string; name?: string; avatar?: string; lastUpdate: number; } /** 缓存数据结构 */ interface CacheData { guilds: Record; users: Record; members: Record; metadata: { lastFullRefresh: number; version: string; }; [key: string]: unknown; } export declare class CacheService { private ctx; private store; private logger; private cacheExpiry; constructor(ctx: Context, dataDir: string); /** 获取群组信息(优先从缓存) */ getGuildInfo(guildId: string, forceRefresh?: boolean): Promise; /** 获取用户信息(优先从缓存) */ getUserInfo(userId: string, forceRefresh?: boolean): Promise; /** 获取群成员信息(优先从缓存) */ getMemberInfo(guildId: string, userId: string, forceRefresh?: boolean): Promise; /** 批量预热缓存(只缓存未缓存的) */ warmCache(guildIds: string[], userIds: string[], memberPairs: Array<{ guildId: string; userId: string; }>): Promise; /** 强制刷新所有缓存 */ refreshAll(): Promise; /** 清空所有缓存 */ clearAll(): Promise; /** 获取缓存统计信息 */ getStats(): { guilds: number; users: number; members: number; lastFullRefresh: number; lastFullRefreshTime: string; }; /** 直接获取缓存数据(同步,不触发网络请求) */ getCachedData(): CacheData; } export {};