UNPKG

@convergence/convergence

Version:
32 lines (31 loc) 1.84 kB
import { IModelState } from "./IModelState"; import { ILocalOperationData, IServerOperationData } from "./IModelOperationData"; import { IModelCreationData } from "./IModelCreationData"; import { IModelUpdate } from "./IModelUpdate"; import { IModelMetaData } from "./IModelMetaData"; import { IObjectValue } from "../../model"; export interface IModelStore { initiateModelCreation(modelCreationData: IModelCreationData): Promise<IModelMetaData>; completeModelCreation(modelId: string): Promise<void>; getModelCreationData(modelId: string): Promise<IModelCreationData | null>; initiateModelDeletion(modelId: string): Promise<void>; completeModelDeletion(modelId: string): Promise<void>; deleteModels(modelId: string[]): Promise<void>; getModelState(modelId: string): Promise<IModelState | null>; setModelState(modelState: IModelState): Promise<void>; modelMetaDataExists(modelId: string): Promise<boolean>; getModelMetaData(modelId: string): Promise<IModelMetaData | null>; getAllModelMetaData(): Promise<IModelMetaData[]>; getModelsRequiringSync(): Promise<IModelMetaData[]>; getSubscribedModels(): Promise<IModelMetaData[]>; updateSubscriptions(subscribe: string[], unsubscribe: string[]): Promise<void>; processOfflineModelUpdate(update: IModelUpdate): Promise<void>; processServerOperation(serverOp: IServerOperationData, localOps: ILocalOperationData[]): Promise<void>; processLocalOperation(localOp: ILocalOperationData): Promise<void>; processOperationAck(modelId: string, seqNo: number, serverOp: IServerOperationData): Promise<void>; snapshotModel(modelId: string, version: number, sequenceNumber: number, modelData: IObjectValue): Promise<void>; claimValueIdPrefix(modelId: string): Promise<{ prefix: string; increment: number; }>; }