export interface DBFileOptions { /** * 文件存储路径 */ filePath: string; /** * 初始化数据 */ initData: T; /** * 内存数据持久化频率,即:节流时间 单位 ms * @default 3000 */ flushInterval?: number; /** * 是否启用文件监听 * @default false */ watchFile?: boolean; /** * 是否自动存储,开启后,不需要主动执行update */ autoSave?: boolean; /** * 加载已存储文件信息为数据 * @param filePath * @returns */ fileToData?: (filePath: string) => T; /** * 将数据转换为文件内容的函数 * * @param data 要转换的数据对象 * @returns 返回可以直接写入文件的字符串或二进制数据 */ dataToFile?: (data: T) => string | NodeJS.ArrayBufferView; /** * 文件变化时的回调函数 * @param newData 新的数据 * @param oldData 旧的数据 */ onFileChange?: (newData?: T, oldData?: T) => void; } export declare class DBFile { options: Required>; data: T; save_timer?: Timer; private watcher?; private isUpdating; private lastUpdateTime; private readonly DEBOUNCE_TIME; constructor(options: DBFileOptions); private startWatching; /** * 修改数据并持久化,autoSave = true 时,仅修改数据,持久化使用定时器实现 * @param data 需要修改的数据,不提供不修改 * @returns */ update: (data?: T) => void; destroy: () => void; }