/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { IDeltaManagerFull } from "@fluidframework/container-definitions/internal";
import { type ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
/**
 * This class ensures that we aggregate a complete batch of incoming ops before processing them. It basically ensures
 * that we never start processing ops in a batch IF we do not have all ops in the batch.
 */
export declare class InboundBatchAggregator {
    private readonly deltaManager;
    private readonly getClientId;
    private readonly logger;
    private pauseSequenceNumber;
    private currentBatchClientId;
    private localPaused;
    private timePaused;
    private batchCount;
    constructor(deltaManager: IDeltaManagerFull, getClientId: () => string | undefined, logger: ITelemetryLoggerExt);
    dispose(): void;
    /**
     * Callback for DeltaManager's "op" event, for us to make decision if op processing should
     * be paused or not after that.
     */
    private readonly afterOpProcessing;
    /**
     * Called for each incoming op (i.e. inbound "push" notification)
     */
    private readonly trackPending;
    private pauseQueue;
    private resumeQueue;
}
//# sourceMappingURL=inboundBatchAggregator.d.ts.map