import IGlobalScope from '../globalScope/IGlobalScope';
import Subject from '../rx/Subject';
import ReadOnlySubject from '../rx/ReadOnlySubject';
import { LoggingLevelType } from '../logger/Logger';
import { TelemetryLevelType } from '../metrics/MetricsConfiguration';
import MetricsService from '../metrics/MetricsService';
import BrowserDetector from '../dom/BrowserDetector';
import ApplicationActivityMonitor from '../dom/ApplicationActivityMonitor';
import IPeerConnectionFactory from '../rtc/IPeerConnectionFactory';
import { ShakaPlayerType } from './streaming/IShakaPlayer';
import { HlsPlayerType } from './streaming/IHlsPlayer';
import { WebPlayerType } from './streaming/IWebPlayer';
interface IInitOptions {
    discoveryUri?: string;
    peerConnectionFactory?: IPeerConnectionFactory;
    telemetryLevel?: TelemetryLevelType;
    loggingLevel?: LoggingLevelType;
    consoleLoggingLevel?: LoggingLevelType;
    automaticallyPlayMediaStream?: boolean;
    automaticallyMuteVideoOnPlayFailure?: boolean;
    webPlayerLoader?: (value: (player: WebPlayerType) => void) => void;
    shakaPlayerLoader?: (value: (player: ShakaPlayerType) => void) => void;
    hlsJsLoader?: (value: (player: HlsPlayerType) => void) => void;
}
export default class SDK {
    private static _automaticallyRetryOnFailure;
    private static _automaticallyReconnectPeerConnection;
    private static _automaticallyPlayMediaStream;
    private static _automaticallyMuteVideoOnPlayFailure;
    private static _forceGarbageCollectionOnRestart;
    private static _skipGarbageCollectionOnMobileDevices;
    private static _webPlayerLoader;
    private static _shakaPlayerLoader;
    private static _hlsJsLoader;
    private static _applicationActivityMonitor;
    private static _environment;
    private static _telemetryUrl;
    private static _maximalNumberOfPeerConnectionReconnectAttempts;
    private static _telemetryLevel;
    private static _metricsService;
    private static _metricsConfiguration;
    private static readonly _sendLocalCandidates;
    private static readonly _tenancy;
    private static readonly _clientSessionId;
    private static readonly _loadedTimestamp;
    private static readonly _logger;
    private static readonly _initialized;
    private static readonly _readOnlyInitialized;
    private static readonly _readOnlyDiscoveryUri;
    private static readonly _readOnlyPeerConnectionFactory;
    static get pageLoadTime(): number;
    static get sendLocalCandidates(): Subject<boolean>;
    static get tenancy(): Subject<string>;
    static get clientSessionId(): string;
    static get loadedTimestamp(): Date;
    static get initialized(): ReadOnlySubject<boolean>;
    static get discoveryUri(): ReadOnlySubject<string>;
    static get peerConnectionFactory(): ReadOnlySubject<IPeerConnectionFactory>;
    static get automaticRetryOnFailure(): boolean;
    static get automaticallyReconnectPeerConnection(): boolean;
    static get automaticallyPlayMediaStream(): boolean;
    static get automaticallyMuteVideoOnPlayFailure(): boolean;
    static get forceGarbageCollectionOnRestart(): boolean;
    static get skipGarbageCollectionOnMobileDevices(): boolean;
    static get webPlayerLoader(): (value: (player: WebPlayerType) => void) => void;
    static get shakaPlayerLoader(): (value: (player: ShakaPlayerType) => void) => void;
    static get hlsJsLoader(): (value: (player: HlsPlayerType) => void) => void;
    static get metricsService(): MetricsService;
    static get applicationActivityMonitor(): ApplicationActivityMonitor | null;
    static get telemetryUrl(): Subject<string>;
    static get maximalNumberOfPeerConnectionReconnectAttempts(): number;
    static set maximalNumberOfPeerConnectionReconnectAttempts(retriesAmount: number);
    static get loggingLevel(): LoggingLevelType;
    static get telemetryLevel(): TelemetryLevelType;
    static get browserDetector(): BrowserDetector;
    static applyTelemetryConfiguration(): void;
    static applyMetricsConfiguration(): void;
    static applyAutomaticallyRetryOnFailureFromParameterConfiguration(): void;
    static applyAutomaticallyReconnectPeerConnectionFromParameterConfiguration(): void;
    static applyForceGarbageCollectionOnRestartFromParameterConfiguration(): void;
    static applySkipGarbageCollectionOnMobileDevicesFromParameterConfiguration(): void;
    static applyDiscoveryUriDefaultFromParameterConfiguration(): void;
    static onLoad(globalScope: IGlobalScope | null): void;
    static init(options?: IInitOptions): void;
    static dispose(): void;
    static getTelemetryUrl(url: string): string;
    private constructor();
}
export {};
