/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import type { ISignalEnvelope } from "@fluidframework/core-interfaces/internal";
import type { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
export declare class SignalTelemetryManager {
    private readonly signalTracking;
    /**
     * Identifier to track broadcast signals being submitted in order to
     * allow collection of data around the roundtrip of signal messages.
     */
    private broadcastSignalSequenceNumber;
    /**
     * Resets the signal tracking state in the {@link SignalTelemetryManager}.
     */
    resetTracking(): void;
    /**
     * Perform telemetry-related processing of incoming signals.
     * @param envelope - The signal envelope to process.
     * @param logger - The telemetry logger to use for emitting telemetry events.
     * @param consecutiveReconnects - The number of consecutive reconnects that have occurred. Only used for logging.
     */
    trackReceivedSignal(envelope: ISignalEnvelope, logger: ITelemetryLoggerExt, consecutiveReconnects: number): void;
    /**
     * Updates tracking state for broadcast signals based on the provided signal envelope, and updates the
     * envelope with additional information that the signal needs to have stamped on it.
     * @remarks Do not call this for non-broadcast signals.
     * @param envelope - The signal envelope to process.
     */
    applyTrackingToBroadcastSignalEnvelope(envelope: ISignalEnvelope): void;
}
//# sourceMappingURL=signalTelemetryProcessing.d.ts.map