/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
import { IMergeTreeDeltaOp } from "../ops";
import { SegmentGroup } from "..";
import { TestClientLogger } from "./testClientLogger";
declare const ClientIds: readonly ["A", "B", "C", "D"];
type ClientName = (typeof ClientIds)[number];
export declare class ReconnectTestHelper {
    clients: Record<"A" | "C" | "B" | "D", import("./testClient").TestClient> & {
        all: import("./testClient").TestClient[];
    };
    idxFromName(name: ClientName): number;
    logger: TestClientLogger;
    ops: ISequencedDocumentMessage[];
    perClientOps: ISequencedDocumentMessage[][];
    seq: number;
    insertText(clientName: ClientName, pos: number, text: string): void;
    removeRange(clientName: ClientName, start: number, end: number): void;
    obliterateRange(clientName: ClientName, start: number, end: number): void;
    insertTextLocal(clientName: ClientName, pos: number, text: string): {
        op: import("..").IMergeTreeInsertMsg;
        seg: SegmentGroup;
        refSeq: number;
    };
    removeRangeLocal(clientName: ClientName, start: number, end: number): {
        op: import("..").IMergeTreeRemoveMsg;
        seg: SegmentGroup;
        refSeq: number;
    };
    obliterateRangeLocal(clientName: ClientName, start: number, end: number): {
        op: import("..").IMergeTreeObliterateMsg;
        seg: SegmentGroup;
        refSeq: number;
    };
    disconnect(clientNames: ClientName[]): void;
    processAllOps(): void;
    reconnect(clientNames: ClientName[]): void;
    submitDisconnectedOp(clientName: ClientName, op: {
        op: IMergeTreeDeltaOp;
        seg: SegmentGroup | SegmentGroup[];
        refSeq: number;
    }): void;
}
export {};
//# sourceMappingURL=reconnectHelper.d.ts.map