import TelemetryEvent from "./TelemetryEvent";
import { TelemetryConfig, TelemetryEmitter } from "./TelemetryTypes";
import ApiEvent, { API_EVENT_IDENTIFIER } from "./ApiEvent";
import { Logger } from "../Logger";
import HttpEvent from "./HttpEvent";
export default class TelemetryManager {
    private completedEvents;
    private inProgressEvents;
    private eventCountByCorrelationId;
    private onlySendFailureTelemetry;
    private telemetryPlatform;
    private clientId;
    private telemetryEmitter;
    private logger;
    constructor(config: TelemetryConfig, telemetryEmitter: TelemetryEmitter, logger: Logger);
    static getTelemetrymanagerStub(clientId: string, logger: Logger): TelemetryManager;
    startEvent(event: TelemetryEvent): void;
    stopEvent(event: TelemetryEvent): void;
    flush(correlationId: string): void;
    createAndStartApiEvent(correlationId: string, apiEventIdentifier: API_EVENT_IDENTIFIER): ApiEvent;
    stopAndFlushApiEvent(correlationId: string, apiEvent: ApiEvent, wasSuccessful: boolean, errorCode?: string): void;
    createAndStartHttpEvent(correlation: string, httpMethod: string, url: string, eventLabel: string): HttpEvent;
    private incrementEventCount;
    private getOrphanedEvents;
}
