import { BaseStorage, BaseStore, StorageOpts } from './base-store.js'; import { StoreInMemorySynced } from './store-inmemory-synced.js'; import { Encrypter } from '../utils'; import { IDBPDatabase } from 'idb'; export declare class StorageIndexedDB extends BaseStorage { private db; private dbName; private constructor(); static createOrOpen(dbName: string): Promise; listStores(): Promise; createStore(storeName: string, opts?: StorageOpts): Promise; getStore(storeName: string, opts?: StorageOpts): Promise; createOrGetStore(storeName: string, opts?: StorageOpts): Promise; deleteStore(storeName: string): Promise; deleteDatabase(): Promise; } /** * Implementation of BaseStore using IndexedDB as the storage backend. */ export declare class StoreIndexedDB extends BaseStore { db: IDBPDatabase; storeName: string; encryption?: Encrypter | undefined; constructor(db: IDBPDatabase, storeName: string, encryption?: Encrypter | undefined); /** * Factory method to create a new instance of StoreIndexedDB. * Provides a more convenient way to instantiate the store when working with promises. * * @param db - An instance of an upgraded and opened IndexedDB database * @param storeName - The name of the object store within the database to use * * @example * ```typescript * const store = await StoreIndexedDB.create(db, 'myStore'); * ``` */ static create(db: IDBPDatabase, storeName: string, encryption?: Encrypter): Promise; all(): Promise<{ [key: string]: T; }>; keys(): Promise; get(key: string): Promise; set(key: string, value: T): Promise; delete(key: string): Promise; batchGet(keys: string[]): Promise>; batchSet(items: Map): Promise; clear(): Promise; has(key: string): Promise; close(): Promise; }