UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

115 lines (114 loc) 5.79 kB
import { ClientSample } from './schema/ClientSample'; import EventEmitter from 'eventemitter3'; import { ClientEvent, ClientIssue, ClientMetaData, ClientMonitorEvents } from './ClientMonitorEvents'; import { PeerConnectionMonitor } from './monitors/PeerConnectionMonitor'; import { AppliedClientMonitorConfig, ClientMonitorConfig, ClientMonitorSourceType } from './ClientMonitorConfig'; import { PartialBy } from './utils/common'; import { Detectors } from './detectors/Detectors'; import { OutboundTrackMonitor } from './monitors/OutboundTrackMonitor'; import { InboundTrackMonitor } from './monitors/InboundTrackMonitor'; import { TrackMonitor } from './monitors/TrackMonitor'; import { ScoreCalculator } from "./scores/ScoreCalculator"; import { ClientEventPayloadProvider } from './sources/ClientEventPayloadProvider'; export declare class ClientMonitor extends EventEmitter<ClientMonitorEvents> { static readonly samplingSchemaVersion = "3.0.0"; readonly mappedPeerConnections: Map<string, PeerConnectionMonitor>; readonly detectors: Detectors; readonly clientEventPayloadProvider: ClientEventPayloadProvider; scoreCalculator: ScoreCalculator; closed: boolean; lastSampledAt: number; lastCollectingStatsAt: number; cpuPerformanceAlertOn: boolean; sendingAudioBitrate: number; sendingVideoBitrate: number; receivingAudioBitrate: number; receivingVideoBitrate: number; totalAvailableIncomingBitrate: number; totalAvailableOutgoingBitrate: number; avgRttInSec: number; score: number; scoreReasons?: Record<string, number>; private _browser?; private readonly _sources; private _timer?; private _samplingTick; private _collectingCounter; private _clientEvents; private _clientMetaItems; private _clientIssues; private _extensionStats; durationOfCollectingStatsInMs: number; readonly config: AppliedClientMonitorConfig; attachments?: Record<string, unknown>; constructor(config?: Partial<ClientMonitorConfig>); get clientId(): string | undefined; set clientId(clientId: string | undefined); get callId(): string | undefined; set callId(callId: string | undefined); get appData(): Record<string, unknown> | undefined; set appData(appData: Record<string, unknown> | undefined); set browser(browser: { name: 'chrome' | 'firefox' | 'safari' | 'edge' | 'opera' | 'unknown'; version: string; } | undefined); set onsamplecreated(listener: (...args: ClientMonitorEvents['sample-created']) => void); set onstatscollected(listener: (...args: ClientMonitorEvents['stats-collected']) => void); set onclientevent(listener: (...args: ClientMonitorEvents['client-event']) => void); set onissue(listener: (...args: ClientMonitorEvents['issue']) => void); get browser(): { name: "chrome" | "firefox" | "safari" | "edge" | "opera" | "unknown"; version: string; } | undefined; close(): void; on<K extends keyof ClientMonitorEvents>(event: K, listener: (...args: ClientMonitorEvents[K]) => void): this; once<K extends keyof ClientMonitorEvents>(event: K, listener: (...args: ClientMonitorEvents[K]) => void): this; off<K extends keyof ClientMonitorEvents>(event: K, listener: (...args: ClientMonitorEvents[K]) => void): this; emit(event: keyof ClientMonitorEvents, ...args: ClientMonitorEvents[typeof event]): boolean; collect(): Promise<[string, RTCStats[]][]>; getPeerConnectionMonitor(peerConnectionId: string): PeerConnectionMonitor | undefined; setScore<T extends Record<string, number>>(score: number, reasons?: T): void; createSample(): ClientSample | undefined; addPeerConnectionMonitor(peerConnectionMonitor: PeerConnectionMonitor): void; addClientJoinEvent(event?: { payload?: Record<string, unknown>; timestamp?: number; }): void; addClientLeftEvent(event?: { payload?: Record<string, unknown>; timestamp?: number; }): void; addEvent<Payload = Record<string, unknown>>(event: PartialBy<ClientEvent, 'timestamp'> & { payload?: Payload; }): void; addIssue(issue: PartialBy<ClientIssue, 'timestamp'>): void; addMetaData(metaData: PartialBy<ClientMetaData, 'timestamp'>): void; addExtensionStats(stats: { type: string; payload?: Record<string, unknown>; }): void; addSource(source: unknown, type?: ClientMonitorSourceType): void; removeSource(source: unknown, type?: ClientMonitorSourceType): void; fetchUserAgentData(): any; watchNavigatorMediaDevices(): void; get peerConnections(): PeerConnectionMonitor[]; get codecs(): import(".").CodecMonitor[]; get inboundRtps(): import(".").InboundRtpMonitor[]; get outboundRtps(): import(".").OutboundRtpMonitor[]; get remoteInboundRtps(): import(".").RemoteInboundRtpMonitor[]; get remoteOutboundRtps(): import(".").RemoteOutboundRtpMonitor[]; get mediaSources(): import(".").MediaSourceMonitor[]; get mediaPlayouts(): import(".").MediaPlayoutMonitor[]; get dataChannels(): import(".").DataChannelMonitor[]; get iceCandidatePairs(): import(".").IceCandidatePairMonitor[]; get iceCandidates(): import(".").IceCandidateMonitor[]; get iceTransports(): import(".").IceTransportMonitor[]; get certificates(): import(".").CertificateMonitor[]; get tracks(): TrackMonitor[]; getTrackMonitor(trackId: string): TrackMonitor | undefined; getInboundTrackMonitor(trackId: string): InboundTrackMonitor | undefined; getOutboundTrackMonitor(trackId: string): OutboundTrackMonitor | undefined; setCollectingPeriod(collectingPeriodInMs: number): void; setSamplingPeriod(samplingPeriodInMs: number): void; private _setSamplingTick; }