/*! * Copyright (c) Microsoft Corporation and contributors. All rights reserved. * Licensed under the MIT License. */ import { EndOfTreeSegment } from "./endOfTreeSegment.js"; import { type LocalReferencePosition } from "./localReference.js"; import { type MergeTree } from "./mergeTree.js"; import type { IMergeTreeDeltaCallbackArgs } from "./mergeTreeDeltaCallback.js"; import { type ITrackingGroup } from "./mergeTreeTracking.js"; import { type IJSONSegment, MergeTreeDeltaType } from "./ops.js"; import { type PropertySet } from "./properties.js"; /** * @legacy @beta */ export type MergeTreeDeltaRevertible = { operation: typeof MergeTreeDeltaType.INSERT; trackingGroup: ITrackingGroup; } | { operation: typeof MergeTreeDeltaType.REMOVE; trackingGroup: ITrackingGroup; } | { operation: typeof MergeTreeDeltaType.ANNOTATE; trackingGroup: ITrackingGroup; propertyDeltas: PropertySet; }; /** * Tests whether x is a MergeTreeDeltaRevertible * @internal */ export declare function isMergeTreeDeltaRevertible(x: unknown): x is MergeTreeDeltaRevertible; /** * @legacy @beta */ export interface MergeTreeRevertibleDriver { insertFromSpec(pos: number, spec: IJSONSegment): void; removeRange(start: number, end: number): void; annotateRange(start: number, end: number, props: PropertySet): void; } /** * exported for test only. should not be exported out the the package * @internal */ export interface MergeTreeWithRevert extends MergeTree { __mergeTreeRevertible: { detachedReferences: EndOfTreeSegment; refCallbacks: LocalReferencePosition["callbacks"]; }; } export type PickPartial = Omit & Partial>; /** * Appends a merge tree delta to the list of revertibles. * * @legacy @beta */ export declare function appendToMergeTreeDeltaRevertibles(deltaArgs: IMergeTreeDeltaCallbackArgs, revertibles: MergeTreeDeltaRevertible[]): void; /** * Removes all revertibles from the list of revertibles. * * @legacy @beta */ export declare function discardMergeTreeDeltaRevertible(revertibles: MergeTreeDeltaRevertible[]): void; /** * Reverts all operations in the list of revertibles. * * @legacy @beta */ export declare function revertMergeTreeDeltaRevertibles(driver: MergeTreeRevertibleDriver, revertibles: MergeTreeDeltaRevertible[]): void; //# sourceMappingURL=revertibles.d.ts.map