import { DocumentCache } from 'nxdb-old/src/doc-cache'; import { IncrementalWriteQueue } from 'nxdb-old/src/incremental-write'; import { RxCollection } from 'nxdb-old/src/types/rx-collection'; import { RxDatabase } from 'nxdb-old/src/types/rx-database'; import { RxDocumentBase } from 'nxdb-old/src/types/rx-document'; import { RxStorageInstance } from 'nxdb-old/src/types/rx-storage.interface'; import { Override } from 'nxdb-old/src/types/util'; export type LocalDocumentParent = RxDatabase | RxCollection; export type LocalDocumentState = { database: RxDatabase; parent: LocalDocumentParent; storageInstance: RxStorageInstance; docCache: DocumentCache; incrementalWriteQueue: IncrementalWriteQueue; }; export type RxLocalDocumentData< Data = { // local documents are schemaless and contain any data [key: string]: any; } > = { id: string; data: Data; }; declare type LocalDocumentModifyFunction = ( doc: Data, rxLocalDocument: RxLocalDocument ) => Data | Promise; export declare type RxLocalDocument = Override< RxDocumentBase, {}>, { readonly parent: Parent; isLocal(): true; /** * Because local documents store their relevant data inside of the 'data' property, * the incremental mutation methods are changed a bit to only allow to change parts of the data property. */ incrementalModify(mutationFunction: LocalDocumentModifyFunction): Promise>; incrementalPatch(patch: Partial): Promise>; } >;