/** * DB PersistenceProvider 抽象基类 * * 将结构化数据(JSON / 对象)持久化到数据库表。 * 上层应用(work-space)提供具体实现,通过 SPI 绑定注入。 * * 适用场景: * - 小型结构化数据(< 配置的 maxSize) * - 需要查询/索引的数据 * - 不适合存文件系统的 JSON 结果 */ import type { PersistenceProvider, FileMeta, DataMeta, PersistedFile, PersistedData, DbProviderConfig } from '../../spi/persistence-interfaces.js'; /** DB 记录结构 */ export interface DbPersistRecord { id: string; key: string; data: string; content_type: string; size: number; tags: string; created_at: Date; } /** * DB Provider 抽象基类 * * 子类需实现以下方法: * - upsertRecord(record): 插入或更新记录(同 key 覆盖) * - queryByKey(key): 按键查询 * - deleteByKey(key): 删除记录 * - existsByKey(key): 检查存在 */ export declare abstract class DbProvider implements PersistenceProvider { readonly name = "db"; protected config: DbProviderConfig; constructor(config: DbProviderConfig); /** 更新配置(由 PersistenceManager 工厂在创建后调用) */ updateConfig(config: Partial): void; saveFile(key: string, content: Buffer | NodeJS.ReadableStream, meta?: FileMeta): Promise; saveData(key: string, data: unknown, meta?: DataMeta): Promise; readFile(key: string): Promise; readData(key: string): Promise; delete(key: string): Promise; exists(key: string): Promise; getAccessibleUrl(key: string, _expirySec?: number): Promise; protected abstract upsertRecord(record: DbPersistRecord): Promise; protected abstract queryByKey(key: string): Promise; protected abstract deleteByKey(key: string): Promise; protected abstract existsByKey(key: string): Promise; protected normalizeKey(key: string): string; protected generateId(key: string): string; } //# sourceMappingURL=db.provider.d.ts.map