/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { EventEmitter } from "@fluid-internal/client-utils";
import { IDeltaManager } from "@fluidframework/container-definitions/internal";
import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
/**
 * This class has the following responsibilities:
 *
 * 1. It tracks batches as we process ops and raises "batchBegin" and "batchEnd" events.
 * As part of it, it validates batch correctness (i.e. no system ops in the middle of batch)
 *
 * 2. It creates instance of ScheduleManagerCore that ensures we never start processing ops from batch
 * unless all ops of the batch are in.
 */
export declare class ScheduleManager {
    private readonly deltaManager;
    private readonly emitter;
    readonly getClientId: () => string | undefined;
    private readonly logger;
    private readonly deltaScheduler;
    private batchClientId;
    private hitError;
    constructor(deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, emitter: EventEmitter, getClientId: () => string | undefined, logger: ITelemetryLoggerExt);
    beforeOpProcessing(message: ISequencedDocumentMessage): void;
    afterOpProcessing(error: any | undefined, message: ISequencedDocumentMessage): void;
}
//# sourceMappingURL=scheduleManager.d.ts.map