/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
/**
 * Flags enum that dictates behavior of a {@link ReferencePosition}
 * @alpha
 */
export var ReferenceType;
(function (ReferenceType) {
    ReferenceType[ReferenceType["Simple"] = 0] = "Simple";
    /**
     * Allows this reference to be located using the `findTile` API on merge-tree.
     */
    ReferenceType[ReferenceType["Tile"] = 1] = "Tile";
    /**
     * Denotes that this reference begins the start of an interval. This is
     * generally not meaningful outside the context of interval collections
     * on SharedString.
     */
    ReferenceType[ReferenceType["RangeBegin"] = 16] = "RangeBegin";
    /**
     * Denotes that this reference is the end of an interval. This is
     * generally not meaningful outside the context of interval collections
     * on SharedString.
     */
    ReferenceType[ReferenceType["RangeEnd"] = 32] = "RangeEnd";
    /**
     * When a segment is marked removed (locally or with ack), this reference will slide to the first
     * valid option of:
     * 1. the start of the next furthest segment
     * 2. the end of the next nearest segment
     * 3. DetachedReferencePosition
     */
    ReferenceType[ReferenceType["SlideOnRemove"] = 64] = "SlideOnRemove";
    /**
     * When a segment is marked removed (locally or with ack), this reference will remain on that segment.
     */
    ReferenceType[ReferenceType["StayOnRemove"] = 128] = "StayOnRemove";
    /**
     * Specifies that the reference position should never be added to the segment it refers to.
     * This is useful for comparison/iteration purposes
     */
    ReferenceType[ReferenceType["Transient"] = 256] = "Transient";
})(ReferenceType || (ReferenceType = {}));
// Note: Assigned positive integers to avoid clashing with MergeTreeMaintenanceType
/**
 * @alpha
 */
export const MergeTreeDeltaType = {
    INSERT: 0,
    REMOVE: 1,
    ANNOTATE: 2,
    /**
     * @deprecated The ability to create group ops will be removed in an upcoming release, as group ops are redundant with he native batching capabilities of the runtime
     */
    GROUP: 3,
    OBLITERATE: 4,
};
//# sourceMappingURL=ops.mjs.map