import { MutationEvent } from './index'; import { ExclusiveStorage as Storage, StorageFacade, Storage as StorageClass } from '../storage/storage'; import { ModelInstanceCreator } from '../datastore/datastore'; import { InternalSchema, PersistentModel, PersistentModelConstructor } from '../types'; import { TransformerMutationType } from './utils'; declare class MutationEventOutbox { private readonly schema; private readonly MutationEvent; private readonly modelInstanceCreator; private readonly ownSymbol; private inProgressMutationEventId; constructor(schema: InternalSchema, MutationEvent: PersistentModelConstructor, modelInstanceCreator: ModelInstanceCreator, ownSymbol: Symbol); enqueue(storage: Storage, mutationEvent: MutationEvent): Promise; dequeue(storage: StorageClass, record?: PersistentModel, recordOp?: TransformerMutationType): Promise; /** * Doing a peek() implies that the mutation goes "inProgress" * * @param storage */ peek(storage: StorageFacade): Promise; getForModel(storage: StorageFacade, model: T): Promise; getModelIds(storage: StorageFacade): Promise>; private syncOutboxVersionsOnDequeue; private mergeUserFields; private removeTimestampFields; } export { MutationEventOutbox };