import { ILoadResult } from "../ILoadResult.js"; import { IRepositoryIndex } from "./IRepositoryIndex.js"; import { IRepository } from "../IRepository.js"; /** * Abstração para simplificar o uso do indexed DB * * Além de facilitar os comandos de incluir, remover alterar e obter * objetos, esse repositório preserva a ordem de inserção na lista, * além de permitir filtros e ordenações compostas * (impossíveis com uso de índices). * */ export declare class IDBRepository implements IRepository { private _dbName; private _dbVersion; private _storeName; private _addedStoreName; private _indexKeyPath; private _indexes?; private _db?; private _operating; /** * Construtor padrão * * @param dbName - Nome do DB * @param dbVersion - Versão do DB * @param storeName - Nome da store * @param indexKeyPath - Um atributo que identifique os objetos guardados */ constructor(dbName: string, dbVersion: number, storeName: string, indexKeyPath: string, indexes?: Array); load(filterFunction?: (value: T) => boolean, sortingFunction?: (itemA: T, itemB: T) => number, offset?: number, limit?: number): Promise>; distict(itemProcessor: (item: T) => { key: string; value: any; }): Promise>; push(items: Array): Promise; clear(): Promise; delete(items: Array): Promise; update(items: Array): Promise; insert(itemReference: T, items: Array): Promise; isOperating(): boolean; isEmpty(): Promise; count(): Promise; private openDB; private createStore; private getItemPosition; private getItemPositionByAdded; private getAddedItems; getFromCache(): Array | undefined; }