import type { ModifyFunction, MaybePromise, RxDocumentData, RxDocumentWriteData, RxError, RxStorageInstance, StringKeys } from './types/index.d.ts'; export type IncrementalWriteModifier = (doc: RxDocumentData) => MaybePromise> | MaybePromise>; type IncrementalWriteQueueItem = { lastKnownDocumentState: RxDocumentData; modifier: IncrementalWriteModifier; resolve: (d: RxDocumentData) => void; reject: (error: RxError) => void; }; /** * The incremental write queue * batches up all incremental writes to a collection * so that performance can be improved by: * - Running only one write even when there are multiple modifications to the same document. * - Run all writes ins a single bulkWrite() call even when there are writes to many documents. */ export declare class IncrementalWriteQueue { readonly storageInstance: RxStorageInstance; readonly primaryPath: StringKeys>; readonly preWrite: (newData: RxDocumentData, oldData: RxDocumentData) => MaybePromise; readonly postWrite: (docData: RxDocumentData) => void; queueByDocId: Map[]>; isRunning: boolean; constructor(storageInstance: RxStorageInstance, primaryPath: StringKeys>, preWrite: (newData: RxDocumentData, oldData: RxDocumentData) => MaybePromise, postWrite: (docData: RxDocumentData) => void); addWrite(lastKnownDocumentState: RxDocumentData, modifier: IncrementalWriteModifier): Promise>; triggerRun(): Promise; } export declare function modifierFromPublicToInternal(publicModifier: ModifyFunction): IncrementalWriteModifier; export declare function findNewestOfDocumentStates(docs: RxDocumentData[]): RxDocumentData; export {};