UNPKG

mute-structs

Version:

NodeJS module providing an implementation of the LogootSplit CRDT algorithm

46 lines (45 loc) 2.27 kB
import { Epoch } from "./epoch/epoch"; import { EpochStore } from "./epoch/epochstore"; import { Identifier } from "./identifier"; import { IdentifierInterval } from "./identifierinterval"; import { LogootSRopes } from "./logootsropes"; import { LogootSDel } from "./operations/delete/logootsdel"; import { RenamableLogootSDel } from "./operations/delete/renamablelogootsdel"; import { TextDelete } from "./operations/delete/textdelete"; import { LogootSAdd } from "./operations/insert/logootsadd"; import { RenamableLogootSAdd } from "./operations/insert/renamablelogootsadd"; import { TextInsert } from "./operations/insert/textinsert"; import { LogootSRename } from "./operations/rename/logootsrename"; import { RenamingMap } from "./renamingmap/renamingmap"; import { RenamingMapStore } from "./renamingmap/renamingmapstore"; export interface RenamableReplicableListJSON { readonly epochsStore: EpochStore; readonly renamingMapStore: RenamingMapStore; readonly list: LogootSRopes; readonly currentEpoch: Epoch; } export declare class RenamableReplicableList { static create(replicaNumber?: number, clock?: number): RenamableReplicableList; static fromPlain(o: unknown): RenamableReplicableList | null; static fromPlainLogootSRopes(o: unknown): RenamableReplicableList | null; readonly epochsStore: EpochStore; readonly renamingMapStore: RenamingMapStore; private list; private currentEpoch; private constructor(); readonly replicaNumber: number; readonly clock: number; readonly currentRenamingMap: RenamingMap; getList(): LogootSRopes; getCurrentEpoch(): Epoch; readonly str: string; insertLocal(pos: number, l: string): RenamableLogootSAdd; insertRemote(epoch: Epoch, op: LogootSAdd): TextInsert[]; delLocal(begin: number, end: number): RenamableLogootSDel; delRemote(epoch: Epoch, op: LogootSDel): TextDelete[]; renameLocal(): LogootSRename; renameRemote(replicaNumber: number, clock: number, newEpoch: Epoch, renamedIdIntervals: IdentifierInterval[]): void; renameFromEpochToCurrent(idsToRename: Identifier[], fromEpoch: Epoch, strat: (rmap: RenamingMap, ids: Identifier[]) => Identifier[]): Identifier[]; getNbBlocks(): number; digest(): number; }