import ClientMetricReport from '../clientmetricreport/ClientMetricReport' ; import MeetingSessionLifecycleEvent from '../meetingsession/MeetingSessionLifecycleEvent' ; import MeetingSessionLifecycleEventCondition from '../meetingsession/MeetingSessionLifecycleEventCondition' ; import MeetingSessionStatus from '../meetingsession/MeetingSessionStatus' ; import SignalingClient from '../signalingclient/SignalingClient' ; import VideoStreamIndex from '../videostreamindex/VideoStreamIndex' ; import AudioLogEvent from './AudioLogEvent' ; import VideoLogEvent from './VideoLogEvent' ; /**
 * [[StatsCollector]] gathers statistics and sends metrics.
 */ export default interface StatsCollector { /**
     * Starts collecting statistics.
     */ start ( signalingClient , videoStreamIndex , clientMetricReport ? ) : boolean ; stop ( ) : void ; /**
     * Logs the audio event.
     */ logAudioEvent ( eventName , attributes ? ) : void ; /**
     * Logs the video event.
     */ logVideoEvent ( eventName , attributes ? ) : void ; /**
     * Logs the latency.
     */ logLatency ( eventName , timeMs , attributes ? ) : void ; /**
     * Logs the state timeout.
     */ logStateTimeout ( stateName , attributes ? ) : void ; /**
     * Logs the session status.
     */ logMeetingSessionStatus ( status ) : void ; /**
     * Logs the lifecycle event
     */ logLifecycleEvent ( lifecycleEvent , condition ) : void ; }