/*! * Copyright (c) Microsoft Corporation and contributors. All rights reserved. * Licensed under the MIT License. */ import type { LocalReferencePosition, MergeTreeDeltaRevertible, PropertySet } from "@fluidframework/merge-tree/internal"; import type { SequenceInterval } from "./intervals/index.js"; import { IntervalOpType } from "./intervals/index.js"; import type { SequenceDeltaEvent } from "./sequenceDeltaEvent.js"; import type { ISharedString } from "./sharedString.js"; /** * Data for undoing edits on SharedStrings and Intervals. * @legacy @beta */ export type SharedStringRevertible = MergeTreeDeltaRevertible | IntervalRevertible; /** * Data for undoing edits affecting Intervals. * @legacy @beta */ export type IntervalRevertible = { event: typeof IntervalOpType.CHANGE; interval: SequenceInterval; start: LocalReferencePosition; end: LocalReferencePosition; } | { event: typeof IntervalOpType.ADD; interval: SequenceInterval; } | { event: typeof IntervalOpType.DELETE; interval: SequenceInterval; start: LocalReferencePosition; end: LocalReferencePosition; } | { event: typeof IntervalOpType.PROPERTY_CHANGED; interval: SequenceInterval; propertyDeltas: PropertySet; } | { event: typeof IntervalOpType.POSITION_REMOVE; intervals: { intervalId: string; label: string; startOffset?: number; endOffset?: number; }[]; revertibleRefs: { revertible: IntervalRevertible; offset: number; isStart: boolean; }[]; mergeTreeRevertible: MergeTreeDeltaRevertible; }; /** * Create revertibles for adding an interval * @legacy @beta */ export declare function appendAddIntervalToRevertibles(interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[]; /** * Create revertibles for deleting an interval * @legacy @beta */ export declare function appendDeleteIntervalToRevertibles(string: ISharedString, interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[]; /** * Create revertibles for moving endpoints of an interval * @legacy @beta */ export declare function appendChangeIntervalToRevertibles(string: ISharedString, newInterval: SequenceInterval, previousInterval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[]; /** * Create revertibles for changing properties of an interval * @legacy @beta */ export declare function appendIntervalPropertyChangedToRevertibles(interval: SequenceInterval, deltas: PropertySet, revertibles: SharedStringRevertible[]): SharedStringRevertible[]; /** * Create revertibles for SharedStringDeltas, handling indirectly modified intervals * (e.g. reverting remove of a range that contains an interval will move the interval back) * @legacy @beta */ export declare function appendSharedStringDeltaToRevertibles(string: ISharedString, delta: SequenceDeltaEvent, revertibles: SharedStringRevertible[]): void; /** * Clean up resources held by revertibles that are no longer needed. * @legacy @beta */ export declare function discardSharedStringRevertibles(sharedString: ISharedString, revertibles: SharedStringRevertible[]): void; /** * Invoke revertibles to reverse prior edits * @legacy @beta */ export declare function revertSharedStringRevertibles(sharedString: ISharedString, revertibles: SharedStringRevertible[]): void; //# sourceMappingURL=revertibles.d.ts.map