/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { Heap } from "@fluidframework/core-utils/internal";
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
import { RedBlackTree } from "../collections/index.js";
import { PropertySet } from "../properties.js";
import { TestClient } from "./testClient.js";
interface ClientSeq {
    refSeq: number;
    clientId: string;
}
/**
 * Server for tests.  Simulates client communication by directing placing
 * messages in client queues.
 */
export declare class TestServer extends TestClient {
    seq: number;
    clients: TestClient[];
    clientSeqNumbers: Heap<ClientSeq>;
    upstreamMap: RedBlackTree<number, number>;
    constructor(options?: PropertySet);
    addClients(clients: TestClient[]): void;
    applyMsg(msg: ISequencedDocumentMessage): boolean;
    transformUpstreamMessage(msg: ISequencedDocumentMessage): void;
    copyMsg(msg: ISequencedDocumentMessage): ISequencedDocumentMessage;
    private minSeq;
    applyMessages(msgCount: number): boolean;
}
/**
 * Used for in-memory testing.  This will queue a reference string for each client message.
 */
export declare function checkTextMatchRelative(refSeq: number, clientId: number, server: TestServer, msg: ISequencedDocumentMessage): boolean;
export {};
//# sourceMappingURL=testServer.d.ts.map