mute-structs
Version:
NodeJS module providing an implementation of the LogootSplit CRDT algorithm
46 lines (45 loc) • 2.27 kB
TypeScript
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;
}