import type { AgentProfileProvider, SettingsProvider, AgentProfileEntity, SettingsEntity, TenantContext } from '../types.js'; /** * 通用 TTL 缓存。 * * - `ttl > 0`:启用缓存,过期后自动失效 * - `ttl === 0`:禁用缓存,get() 永远返回 null(每次直接查 Provider) */ export declare class TTLCache { private cache; private ttl; constructor(ttlMs?: number); /** 是否启用缓存 */ get enabled(): boolean; /** 更新 TTL(不影响已缓存条目的过期时间) */ setTTL(ttlMs: number): void; /** 获取缓存值(未命中或过期返回 null) */ get(key: string): T | null; /** 设置缓存值 */ set(key: string, value: T): void; /** 清除指定 key 的缓存 */ invalidate(key?: string): void; /** 按条件清除缓存 */ invalidateWhere(predicate: (key: string) => boolean): void; /** 清除所有缓存 */ clear(): void; /** 清除已过期的条目 */ purgeExpired(): void; /** 缓存条目数量 */ get size(): number; } /** * 包装 SettingsProvider,增加 TTL 缓存。 * * 多进程部署时,每个进程独立缓存 Settings,TTL 到期后重新从底层 Provider 加载。 * 主动失效通过 `invalidate()` 清除缓存,上层可通过 `CacheInvalidationNotifier` 跨进程通知。 */ export declare class CachedSettingsProvider implements SettingsProvider { private cache; private delegate; constructor(delegate: SettingsProvider, ttlMs?: number); getSettings(tenant?: TenantContext): SettingsEntity; updateSettings(updates: Partial, tenant?: TenantContext): SettingsEntity; resetSettings?(tenant?: TenantContext): SettingsEntity; /** 清除缓存 */ invalidate(): void; } /** * 包装 AgentProfileProvider,增加 TTL 缓存。 * * 多进程部署时,每个进程独立缓存 Profile,TTL 到期后重新从底层 Provider 加载。 * 主动失效通过 `invalidate(profileId?)` 清除指定或全部 Profile 缓存。 */ export declare class CachedAgentProfileProvider implements AgentProfileProvider { private cache; private listCache; private defaultCache; private delegate; constructor(delegate: AgentProfileProvider, ttlMs?: number); private tenantKey; listProfiles(tenant?: TenantContext): AgentProfileEntity[] | Promise; getProfile(id: number, tenant?: TenantContext): AgentProfileEntity | undefined | Promise; getDefaultProfile(tenant?: TenantContext): AgentProfileEntity | undefined | Promise; createProfile(data: Partial, tenant?: TenantContext): AgentProfileEntity | Promise; updateProfile(id: number, data: Partial, tenant?: TenantContext): AgentProfileEntity | undefined | Promise; deleteProfile(id: number, tenant?: TenantContext): boolean | Promise; /** * 清除缓存。 * @param profileId 指定 profileId 时仅清除该 profile;不指定时清除全部 */ invalidate(profileId?: number): void; } //# sourceMappingURL=cache.service.d.ts.map