/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
import { IBatch } from "./definitions.js";
/**
 * Compresses batches of ops. It generates a single compressed op that contains
 * the contents of each op in the batch. It then submits empty ops for each original
 * op to reserve sequence numbers.
 */
export declare class OpCompressor {
    private readonly logger;
    constructor(logger: ITelemetryBaseLogger);
    /**
     * Combines the contents of the batch into a single JSON string and compresses it, putting
     * the resulting string as the first message of the batch. The rest of the messages are
     * empty placeholders to reserve sequence numbers.
     * @param batch - The batch to compress
     * @returns A batch of the same length as the input batch, containing a single compressed message followed by empty placeholders
     */
    compressBatch(batch: IBatch): IBatch;
    /**
     * Combine the batch's content strings into a single JSON string (a serialized array)
     */
    private serializeBatchContents;
}
//# sourceMappingURL=opCompressor.d.ts.map