import { IRepoPlugin, IKeyValue, IModel, Repo, ICoordinator, ICoordinatorOptions, PluginEventType, IFinderPlugin, IModelMapper } from 'typestore'; import { IndexedDBPlugin } from "./IndexedDBPlugin"; import Dexie from "dexie"; /** * Super simple plain jain key for now * what you send to the constructor comes out the * other end * * just like poop! */ export declare class IndexedDBKeyValue implements IKeyValue { args: any[]; indexedDBKey: boolean; constructor(...args: any[]); } export declare class IndexedDBRepoPlugin implements IRepoPlugin, IFinderPlugin { private store; repo: Repo; type: number; supportedModels: any[]; private coordinator; private keys; /** * Construct a new repo/store * manager for a given repo/model * * @param store * @param repo */ constructor(store: IndexedDBPlugin, repo: Repo); /** * Create a finder method with descriptor * and signature * * @param repo * @param finderKey * @returns {any} */ decorateFinder(repo: Repo, finderKey: string): (...args: any[]) => Promise; /** * Handle a plugin event * * @param eventType * @param args * @returns {boolean} */ handle(eventType: PluginEventType, ...args: any[]): boolean | any; /** * Model mapper * * @returns {IModelMapper} */ readonly mapper: IModelMapper; /** * Get dexie table * * @returns {Dexie.Table} */ readonly table: Dexie.Table; /** * Get db ref * * @returns {Dexie} */ readonly db: Dexie; init(coordinator: ICoordinator, opts: ICoordinatorOptions): Promise; start(): Promise; stop(): Promise; key(...args: any[]): IndexedDBKeyValue; keyFromObject(o: any): IndexedDBKeyValue; dbKeyFromKey(key: IndexedDBKeyValue): any; get(key: IndexedDBKeyValue): Promise; save(model: M): Promise; /** * Remove implementation * * @param key * @returns {Promise} */ remove(key: IndexedDBKeyValue): Promise; count(): Promise; /** * Bulk get * * @param keys * @returns {any} */ bulkGet(...keys: IndexedDBKeyValue[]): Promise; /** * Bulk save/put * * @param models * @returns {M[]} */ bulkSave(...models: M[]): Promise; /** * Bulk remove * * @param keys * @returns {IndexedDBKeyValue[]} */ bulkRemove(...keys: IndexedDBKeyValue[]): Promise; }