import { ConnectionQuality, StreamKind, StreamSource } from '@zocks-communications/client-sdk-js'

interface TrackAction {
  trackId: string
  trackKind: StreamKind
  trackSource: StreamSource
}

export interface LocalTrackPublishedAction extends TrackAction {
  trackIsMuted: boolean
}

export interface LocalTrackUnpublishedAction extends TrackAction {}

export interface TrackSubscribedAction {
  participantId: string
  trackId: string
  trackIsMuted: boolean
}

export interface TrackUnsubscribedAction {
  participantId: string
  trackId: string
}

export interface TrackPublishedAction extends TrackAction {
  participantId: string
  trackIsMuted: boolean
  trackIsSubscribed: boolean
}

export interface TrackUnpublishedAction extends TrackAction {
  participantId: string
}

export interface TrackMuteAction {
  participantId: string
  trackId: string
}

export interface AddRemoteParticipantAction {
  participantId: string
  participantName?: string
}

export interface RemoveRemoteParticipantAction {
  participantId: string
}

export interface ConnectionQualityAction {
  participantId: string
  connectionQuality: ConnectionQuality
}
