@convergence/convergence
Version:
Convergence JavaScript Client
32 lines (31 loc) • 1.84 kB
TypeScript
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;
}>;
}