/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { EventEmitter } from "@fluid-internal/client-utils";
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
export declare class BatchTracker {
    private readonly batchEventEmitter;
    private readonly logger;
    private startBatchSequenceNumber;
    private trackedBatchCount;
    private batchProcessingStartTimeStamp;
    constructor(batchEventEmitter: EventEmitter, logger: ITelemetryBaseLogger, batchLengthThreshold: number, batchCountSamplingRate: number, dateTimeProvider?: () => number);
}
/**
 * Track batch sizes in terms of op counts and processing times
 *
 * @param batchEventEmitter - event emitter which tracks the lifecycle of batch operations
 * @param logger - See {@link @fluidframework/core-interfaces#ITelemetryLoggerExt}
 * @param batchLengthThreshold - threshold for the length of a batch when to send an error event
 * @param batchCountSamplingRate - rate for batches for which to send an event with its characteristics
 */
export declare const BindBatchTracker: (batchEventEmitter: EventEmitter, logger: ITelemetryLoggerExt, batchLengthThreshold?: number, batchCountSamplingRate?: number) => BatchTracker;
//# sourceMappingURL=batchTracker.d.ts.map