/// import { AudioLevelDisplayType } from '../../types'; import { HMSTrack } from '../../store/schema'; export declare type DisplayShapes = 'circle' | 'rectangle'; export interface VideoClasses { /** The actual video element * */ video?: string; /** * Extra styles added when video is circular */ videoCircle?: string; /** * Extra styles added when video is local stream */ videoLocal?: string; /** * Extra styles added when objectFit is set to cover */ videoCover?: string; /** * Extra styles added when objectFit is contain */ videoContain?: string; /** * Extra styles added when to audio level border */ borderAudioRoot?: string; } export interface VideoProps { /** * Native Video Track to be displayed. This is auto inferred and not required if you * pass in peer and hmsVideoTrack */ videoTrack?: MediaStreamTrack; /** * HMS Video Track is for track related metadata */ hmsVideoTrack?: HMSTrack; /** * Audio Track to be displayed. */ audioTrack?: MediaStreamTrack; /** * Indicates if the stream belongs to the user viewing it. Used in labelling and styling. */ isLocal?: boolean; peerId?: string; /** * Indicates whether to show the volume of the stream's audio. Needs audioLevel to display the audio level. */ showAudioLevel?: boolean; /** * Indicates the volume of the stream as a number. * Ignored when showAudioLevel is false. */ audioLevel?: number; /** * Indicates the fit type of the video inside the container. * 'contain' - Video is fit inside the container with it's original aspect-ratio. * 'cover' - Video is scaled to cover the largest area within the container while maintaining aspectRatio. */ objectFit: 'contain' | 'cover'; /** * Shape of the video tile. * Use 'rectangle' and 'aspect ratio' 1:1 for square. */ displayShape?: DisplayShapes; /** * Indicates how to display the volume of the stream's audio. * Supported types are 'border', 'inline-wave' and 'inline-circle'. * Ignored if showAudioLevel is set to false. */ audioLevelDisplayType?: AudioLevelDisplayType; /** * The color of the audio display */ audioLevelDisplayColor?: string; /** * extra classes added by user */ classes?: VideoClasses; } export declare const Video: ({ peerId, videoTrack, hmsVideoTrack, objectFit, isLocal, showAudioLevel, audioLevel, audioLevelDisplayType, audioLevelDisplayColor, displayShape, classes, }: VideoProps) => JSX.Element;