import { Kvlite } from "./Kvlite.js"; import { IKvDefineIndexesOptions, IKvIndex } from "./defineIndexes.js"; export interface IKvliteArrayOptions { } /** * 基于 Kvlite 的数组 * 数据的增删改查都在 collection 中进行 * 实现了 Array 的方法 */ export declare class KvliteArray { collectionName: string; _kvlite: Kvlite; _options: IKvliteArrayOptions; /** 预编译的 SQL */ _stmts: ReturnType; constructor(kvlite: Kvlite, collectionName: string, options?: IKvliteArrayOptions); /** 初始化预编译语句 */ _prepareStmts(): { stmtPush: import("../sqlite/type.js").Statement; stmtPop: import("../sqlite/type.js").Statement; stmtShift: import("../sqlite/type.js").Statement; stmtUnshift: import("../sqlite/type.js").Statement; stmtLength: import("../sqlite/type.js").Statement; stmtClear: import("../sqlite/type.js").Statement; stmtGetByIndex: import("../sqlite/type.js").Statement; stmtSetByIndex: import("../sqlite/type.js").Statement; stmtGetAll: import("../sqlite/type.js").Statement; stmtSlice: import("../sqlite/type.js").Statement; }; /** * 获取数组长度 */ get length(): number; /** * 在数组末尾添加一个或多个元素 */ push(...items: TData[]): number; /** * 删除并返回数组的最后一个元素 */ pop(): TData | undefined; /** * 删除并返回数组的第一个元素 */ shift(): TData | undefined; /** * 在数组开头添加一个或多个元素 */ unshift(...items: TData[]): number; /** * 通过索引获取元素 */ at(index: number): TData | undefined; /** * 通过索引获取元素(不支持负数索引) */ get(index: number): TData | undefined; /** * 通过索引设置元素 */ set(index: number, value: TData): void; /** * 清空数组 */ clear(): void; /** * 将数组转换为 JavaScript 数组 */ toArray(): TData[]; /** * 查找元素的索引 */ indexOf(searchElement: TData): number; /** * 检查数组是否包含某个元素 */ includes(searchElement: TData): boolean; /** * 返回数组的一部分 */ slice(start?: number, end?: number): TData[]; /** * 删除现有元素并可选择性地添加新元素 */ splice(start: number, deleteCount?: number, ...items: TData[]): TData[]; /** * 遍历数组 */ forEach(callback: (value: TData, index: number, array: KvliteArray) => void): void; /** * 映射数组 */ map(callback: (value: TData, index: number, array: KvliteArray) => U): U[]; /** * 过滤数组 */ filter(callback: (value: TData, index: number, array: KvliteArray) => boolean): TData[]; /** * 查找第一个符合条件的元素 */ find(callback: (value: TData, index: number, array: KvliteArray) => boolean): TData | undefined; /** * 查找第一个符合条件的元素的索引 */ findIndex(callback: (value: TData, index: number, array: KvliteArray) => boolean): number; /** * 检查是否所有元素都符合条件 */ every(callback: (value: TData, index: number, array: KvliteArray) => boolean): boolean; /** * 检查是否有元素符合条件 */ some(callback: (value: TData, index: number, array: KvliteArray) => boolean): boolean; /** * 聚合数组元素 */ reduce(callback: (accumulator: U, currentValue: TData, currentIndex: number, array: KvliteArray) => U, initialValue: U): U; /** * 实现迭代器 */ [Symbol.iterator](): Iterator; /** * 转换为字符串 */ toString(): string; /** * 转换为 JSON 字符串 */ toJSON(): TData[]; /** * 执行事务 * 执行一个函数,保证事务的完整性。 * 如果有大量的数据操作,如批量插入、删除、更新,使用事务能大幅度提高性能 */ runTransaction(func: () => any): void; /** * 定义索引 * 指定 data 中哪些字段需要创建索引,可以加快查询速度 * * field 为 false 会删除索引 * * @example * defineIndexes({ id:{unique:true}, name:true, age:{type:'number'} }) */ defineIndexes(indexes: { [field: string]: IKvIndex; }, options?: IKvDefineIndexesOptions): void; /** * 将集合所属的 Kvlite 导出为 Buffer 数据,可以保存为文件 */ toBuffer(): Buffer; } //# sourceMappingURL=KvliteArray.d.ts.map