import type { ISQLiteAPI, ISQLiteAPIFactory, ISQLiteAPIOptions } from "../sqlite/type.js"; import { IKvliteCollectionOptions, KvliteCollection } from "./KvliteCollection.js"; import { IKvliteArrayOptions, KvliteArray } from "./KvliteArray.js"; /** * 使用 Kvlite 数据库,相同文件路径的实例会被复用 * @warning 注意:如果使用内存数据库 ":memory:",则每次调用都会复用同一个实例 * 如果需要区分不同内存数据库,请使用不同的标识符,如 ":memory:1"、":memory:2" * @param dbPath 数据库文件路径,或者使用 ":memory:" 表示内存数据库 */ export declare function useKvlite(dbPath: string, options?: IKvliteOptions): Promise; export interface IKvliteOptions extends ISQLiteAPIOptions { sqliteGetter?: ISQLiteAPIFactory; } /** * 键值数据库,对 SQLite 进行的简单封装 */ export declare class Kvlite { _options: ISQLiteAPIOptions; _sqlite: ISQLiteAPI; _allCollection: Map; constructor( /** sqlite 数据库文件路径或 Buffer */ dbPath: string | Buffer | ":memory:", options?: IKvliteOptions); /** * 使用指定的 Kvlite 键值数据结构的合集 * 如果合集不存在则创建,通名合集实例会被复用 */ useCollection(collectionName: string, options?: IKvliteCollectionOptions): KvliteCollection; /** * 使用指定的 Kvlite 数组数据结构的合集 * 如果合集不存在则创建,通名合集实例会被复用 */ useArray(collectionName: string, options?: IKvliteArrayOptions): KvliteArray; /** * 关闭数据库连接 */ close(): boolean; /** * 测试数据库连接是否可用 */ testDb(): boolean; /** * 优化数据库尺寸 * Sqlite 的操作会产生碎片,使用 VACUUM 可以优化数据库尺寸 */ vacuum(): void; /** * 将数据库导出为文件 * @example * ```ts * let buffer = kvlite1.toBuffer() * * let kvlite2 = new Kvlite(buffer) * ``` */ toBuffer(): Buffer; } //# sourceMappingURL=Kvlite.d.ts.map