import { CollectionItem, Query, QueryFunction } from './types.ts'; import { Single } from './Single.ts'; import { Collection } from './Collection.ts'; export declare class Database { identifierName: string; collections: Record>; singles: Record>; getNewId?: () => number | string; constructor({ data, identifierName, getNewId, }?: DatabaseOptions); /** * Shortcut for adding several collections if identifierName is always the same */ init(data: Record): void; addCollection(name: string, collection: Collection): void; getCollection(name: string): Collection; getCollectionNames(): string[]; addSingle(name: string, single: Single): void; getSingle(name: string): Single; getSingleNames(): string[]; /** * @param {string} name * @param {string} params As decoded from the query string, e.g. { sort: "name", filter: {enabled:true}, slice: [10, 20] } */ getCount(name: string, params?: Query): number; /** * @param {string} name * @param {string} params As decoded from the query string, e.g. { sort: "name", filter: {enabled:true}, slice: [10, 20] } */ getAll(name: string, params?: Query): any[]; getOne(name: string, identifier: string | number, params?: Query): any; addOne(name: string, item: CollectionItem): any; updateOne(name: string, identifier: string | number, item: CollectionItem): any; removeOne(name: string, identifier: string | number): any; getOnly(name: string, params?: Query): any; updateOnly(name: string, item: CollectionItem): any; } export type DatabaseOptions = { baseUrl?: string; batchUrl?: string | null; data?: Record; defaultQuery?: QueryFunction; identifierName?: string; getNewId?: () => number | string; loggingEnabled?: boolean; };