/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ISummaryTree } from "@fluidframework/driver-definitions";
import { type IMergeTreeOptionsInternal } from "../mergeTree.js";
import { type ISegmentPrivate } from "../mergeTreeNodes.js";
import { PropertySet } from "../properties.js";
import { TestClient } from "./testClient.js";
export declare function loadSnapshot(summary: ISummaryTree, options?: IMergeTreeOptionsInternal): Promise<TestClient>;
export declare class TestString {
    private readonly options?;
    private client;
    private readonly pending;
    private seq;
    private minSeq;
    constructor(id: string, options?: IMergeTreeOptionsInternal | undefined, initialState?: string);
    insert(pos: number, text: string, increaseMsn: boolean): void;
    annotate(start: number, end: number, props: PropertySet, increaseMsn: boolean): void;
    append(text: string, increaseMsn: boolean): void;
    insertMarker(pos: number, increaseMsn: boolean): void;
    appendMarker(increaseMsn: boolean): void;
    removeRange(start: number, end: number, increaseMsn: boolean): void;
    obliterateRange(start: number, end: number, increaseMsn: boolean): void;
    expect(expected: string): Promise<void>;
    checkSnapshot(options?: IMergeTreeOptionsInternal): Promise<void>;
    getSummary(): ISummaryTree;
    getText(): string;
    applyPendingOps(): void;
    private queue;
    getSegment(pos: number): ISegmentPrivate;
}
//# sourceMappingURL=snapshot.utils.d.ts.map