import DiagnosticBalancerCdn from './balancer/DiagnosticBalancerCdn';
import NpawPlugin from '../../NpawPlugin';
export default class DiagnosticTool {
    static defaultReportTimeout: number;
    private static _instance;
    private integrationMessageColors;
    private npawPluginInstance?;
    private balancerEnabled;
    private videoAnalyticsEnabled;
    private adsAnalyticsEnabled;
    private reportTimeoutDuration;
    private reportTimeout?;
    private reportTimeoutStarted;
    private runningOffline;
    private balancerInterceptedRequests;
    private successfulResponseFromSelector;
    private apiErrorMessage?;
    private usedSelectorAPI;
    private activeSwitchingEnabled;
    private asDecisionPerformed;
    private switchedCdns;
    private cdnList;
    private triedSendingBalancerStats;
    private mandatoryBalancerRequests;
    private capturedEvents;
    private successfulNQSRequests;
    private hasPlayerRegistered;
    private triedSendingNQSStats;
    private mandatoryNQSRequests;
    private shouldIgnoreAds;
    private capturedAdsEvents;
    private successfulNQSAdsRequests;
    private hasAdsPlayerRegistered;
    private triedSendingNQSAdStats;
    private mandatoryNQSAdsRequests;
    private constructor();
    static getInstance(forceNew?: boolean): DiagnosticTool;
    /**
     * @internal
     */
    destroy(): void;
    /**
     * @internal
     */
    start(npawPluginInstance?: NpawPlugin): void;
    setSettings(newConfig: any): void;
    /**
     * @internal
     */
    clearReportTimeout(): void;
    /**
     * @internal
     * @param options
     */
    setOptions(options: any): void;
    setBalancerEnabled(enabled?: boolean): void;
    setVideoAnalyticsEnabled(enabled?: boolean): void;
    setAdsAnalyticsEnabled(enabled?: boolean): void;
    getReportTimeout(): number;
    setReportTimeout(timeout?: number): void;
    /**
     * @internal
     */
    cleanCdnList(): void;
    /**
     * @internal
     * @param name
     * @param cdn
     */
    addCdn(name: string, cdn: DiagnosticBalancerCdn): void;
    /**
     * @internal
     * @param name
     * @param numberOfRequests
     * @param trafficServedInBytes
     * @param failedRequests
     */
    updateCdnInfo(name: string, numberOfRequests: number, trafficServedInBytes: number, failedRequests: number): void;
    /**
     * @internal
     * @param wasSuccessful
     * @param errorMessage
     */
    wasSelectorCommunicationSuccessful(wasSuccessful: boolean, errorMessage?: string): void;
    /**
     * @internal
     * @param intercepted
     */
    setInterceptedRequests(intercepted: boolean): void;
    /**
     * @internal
     * @param enabled
     */
    setActiveSwitchingEnabled(enabled: boolean): void;
    /**
     * @internal
     * @param performed
     */
    wasActiveSwitchingDecisionPerformed(performed: boolean): void;
    /**
     * @internal
     * @param switched
     */
    setSwitchedCdns(switched: boolean): void;
    /**
     * @internal
     * @param used
     */
    usedSelectorAPIResponse(used: boolean): void;
    /**
     * @internal
     * @param tried
     */
    setTriedSendingBalancerStats(tried: boolean): void;
    /**
     * @internal
     * @param requestPath
     */
    addNQSRequest(requestPath: string): void;
    /**
     * @internal
     * @param eventType
     * @param params
     */
    addNQSEvent(eventType: string, params: any): void;
    /**
     * @internal
     * @param registered
     */
    registeredPlayer(registered: boolean): void;
    /**
     * @internal
     * @param tried
     */
    setTriedSendingNQSStats(tried: boolean): void;
    /**
     * @internal
     * @param requestPath
     */
    addNQSAdRequest(requestPath: string): void;
    /**
     * @internal
     * @param eventType
     * @param params
     */
    addNQSAdEvent(eventType: string, params: any): void;
    /**
     * @internal
     * @param registered
     */
    registeredAdsPlayer(registered: boolean): void;
    /**
     * @internal
     * @param tried
     */
    setTriedSendingNQSAdStats(tried: boolean): void;
    report(): void;
    private logBalancerDiagnostic;
    private logVideoAnalyticsDiagnostic;
    private logAdsAnalyticsDiagnostic;
    private getApiErrorMessage;
}
