/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ISegment, Marker } from "./mergeTreeNodes";
import { IMergeTreeAnnotateMsg, IMergeTreeGroupMsg, IMergeTreeInsertMsg, IMergeTreeRemoveMsg, IMergeTreeDeltaOp, IMergeTreeObliterateMsg } from "./ops";
import { PropertySet } from "./properties";
/**
 * Creates the op for annotating the markers with the provided properties
 * @param marker - The marker to annotate
 * @param props - The properties to annotate the marker with
 * @returns The annotate op
 *
 * @internal
 */
export declare function createAnnotateMarkerOp(marker: Marker, props: PropertySet): IMergeTreeAnnotateMsg | undefined;
/**
 * Creates the op for annotating the range with the provided properties
 * @param start - The inclusive start position of the range to annotate
 * @param end - The exclusive end position of the range to annotate
 * @param props - The properties to annotate the range with
 * @returns The annotate op
 *
 * @internal
 */
export declare function createAnnotateRangeOp(start: number, end: number, props: PropertySet): IMergeTreeAnnotateMsg;
/**
 * Creates the op to remove a range
 *
 * @param start - The inclusive start of the range to remove
 * @param end - The exclusive end of the range to remove
 *
 * @internal
 */
export declare function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg;
/**
 * Creates the op to obliterate a range
 *
 * @param start - The inclusive start of the range to obliterate
 * @param end - The exclusive end of the range to obliterate
 *
 * @internal
 */
export declare function createObliterateRangeOp(start: number, end: number): IMergeTreeObliterateMsg;
/**
 *
 * @param pos - The position to insert the segment at
 * @param segment - The segment to insert
 *
 * @internal
 */
export declare function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg;
/**
 * @internal
 */
export declare function createInsertOp(pos: number, segSpec: any): IMergeTreeInsertMsg;
/**
 *
 * @param ops - The ops to group
 *
 * @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
 *
 * @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
 * @internal
 */
export declare function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg;
//# sourceMappingURL=opBuilder.d.ts.map