/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { IMergeBlock, ISegment } from "../mergeTreeNodes";
import { IMergeTreeDeltaOpArgs } from "../mergeTreeDeltaCallback";
import { ReferenceType } from "../ops";
import { PropertySet } from "../properties";
import { MergeTree } from "../mergeTree";
import { LocalReferenceCollection } from "../localReference";
export declare function loadTextFromFile(filename: string, mergeTree: MergeTree, segLimit?: number): MergeTree;
export declare function loadTextFromFileWithMarkers(filename: string, mergeTree: MergeTree, segLimit?: number): MergeTree;
interface InsertMarkerArgs {
    mergeTree: MergeTree;
    pos: number;
    refSeq: number;
    clientId: number;
    seq: number;
    behaviors: ReferenceType;
    props: PropertySet | undefined;
    opArgs: IMergeTreeDeltaOpArgs;
}
export declare function insertMarker({ mergeTree, pos, refSeq, clientId, seq, behaviors, props, opArgs, }: InsertMarkerArgs): void;
interface InsertTextArgs {
    mergeTree: MergeTree;
    pos: number;
    refSeq: number;
    clientId: number;
    seq: number;
    text: string;
    props?: PropertySet;
    opArgs?: IMergeTreeDeltaOpArgs;
}
export declare function insertText({ mergeTree, pos, refSeq, clientId, seq, text, props, opArgs, }: InsertTextArgs): void;
interface InsertSegmentsArgs {
    mergeTree: MergeTree;
    pos: number;
    segments: ISegment[];
    refSeq: number;
    clientId: number;
    seq: number;
    opArgs: IMergeTreeDeltaOpArgs | undefined;
}
export declare function insertSegments({ mergeTree, pos, segments, refSeq, clientId, seq, opArgs, }: InsertSegmentsArgs): void;
interface MarkRangeRemovedArgs {
    mergeTree: MergeTree;
    start: number;
    end: number;
    refSeq: number;
    clientId: number;
    seq: number;
    overwrite: boolean;
    opArgs: IMergeTreeDeltaOpArgs;
}
export declare function markRangeRemoved({ mergeTree, start, end, refSeq, clientId, seq, overwrite, opArgs, }: MarkRangeRemovedArgs): void;
export declare function nodeOrdinalsHaveIntegrity(block: IMergeBlock): boolean;
/**
 * Returns an object that tallies each delta and maintenance operation observed
 * for the given 'mergeTree'.
 */
export declare function countOperations(mergeTree: MergeTree): {};
export declare function validatePartialLengths(clientId: number, mergeTree: MergeTree, expectedValues?: {
    seq: number;
    len: number;
    localSeq?: number;
}[], localSeq?: number, mergeBlock?: IMergeBlock): void;
export declare function validateRefCount(collection?: LocalReferenceCollection): void;
export {};
//# sourceMappingURL=testUtils.d.ts.map