import { CollectionCore } from '../collection/collection.svelte.js'; import { CollectionState } from '../state/idbstate.svelte.js'; import type { IdbqModel } from './types.js'; export type ReadonlyCollections = { [K in keyof T]: CollectionCore; }; export type StateCollections = { [K in keyof T]: CollectionState; }; /** * Represents the IndexedDB wrapper for managing database operations. * @template T - The type of data stored in the IndexedDB. */ export declare class IdbqlIndexedCore { #private; private databaseName; dbVersion: number; idbDatabase: IDBDatabase; /** * Creates an instance of Idbq. * @param {string} databaseName - The name of the database. */ constructor(databaseName: string, idbqModel: IdbqModel, version: number); get schema(): Record; get idbqModel(): IdbqModel>>; /** * return a database, with the version is provided * @param {number} version - The version number of the database. * @returns {object} - An object with a `stores` method to define the object stores. */ stores(args: Record): Promise; transaction(storeNames: string | string[], mode: IDBTransactionMode, callback: (tx: IDBTransaction) => Promise): Promise; private createCollections; } /** * Main entrance function to create an IndexedDB database store schema. * Creates an IndexedDB database store schema for the given model and version. * * @param model - The IdbqModel representing the structure of the store. * @param version - The version number of the store. * @returns A function that creates a readonly collection for the given name. * The returned function returns an instance of ReadonlyCollections & typeof idb_. * * @typeparam T - The type of data stored in the collections. */ export declare const createDb: (model: T, version: number) => { create: (name: string) => { idbDatabase: IdbqlIndexedCore; idbql: ReadonlyCollections; idbqlState: StateCollections; qolie: any; idbqModel: T; }; }; /** @deprecated use createDb instead */ export declare const createIdbqDb: (model: T, version: number) => { create: (name: string) => { idbDatabase: IdbqlIndexedCore; idbql: ReadonlyCollections; idbqlState: StateCollections; qolie: any; idbqModel: T; }; }; /** @deprecated use createDb instead */ export declare const idbqBase: (model: T, version: number) => { create: (name: string) => { idbDatabase: IdbqlIndexedCore; idbql: ReadonlyCollections; idbqlState: StateCollections; qolie: any; idbqModel: T; }; };