import { ComponentType } from 'react'
import { ConnectionQuality } from '@zocks-communications/client-sdk-js'
import { ParticipantModel } from '../../store'
import { StyledComponent } from '../common'

export interface ParticipantProps extends StyledComponent {
  participant: ParticipantModel
  withAudio?: boolean
  components?: ParticipantComponents
}

export interface ParticipantComponents {
  Extension?: ComponentType<ParticipantExtensionProps>
}

export interface ParticipantExtensionProps {
  participantId: string | null
  participantName: string | null
  isLocal: boolean
  connectionQuality: ConnectionQuality
  isSpeaking: boolean
  videoIsMuted: boolean
  audioIsMuted: boolean
  isScreenSharing: boolean
}

export interface ScreenShareProps extends StyledComponent {
  participant: ParticipantModel
}
