@class VCAudioCaptionsCoordinator, NSString, NSArray, VCSessionBandwidthAllocationTable, NSMutableDictionary, NSDictionary, VCPositionalInfo, VCSessionParticipantMediaStreamInfo, TimingCollection, NSNumber, NSObject; @protocol OS_dispatch_source, OS_nw_activity; @interface VCSessionParticipantRemote : VCSessionParticipant { BOOL _remoteSystemAudioPaused; BOOL _receivedFirstFrame; VCSessionBandwidthAllocationTable *_mediaTable; VCSessionBandwidthAllocationTable *_repairMediaTable; BOOL _isVideoDegraded; BOOL _isRedundancyRequested; BOOL _isRemoteMediaStalled; struct tagVCAudioStreamGroupPriorityInfo { BOOL isAudioActive; unsigned int audioActiveProbabilityThreshold; unsigned int audioInactiveProbabilityThreshold; unsigned int audioActiveAccumulationThreshold; unsigned int audioInactiveAccumulationThreshold; unsigned int audioActiveCount; unsigned int lastAudioPriority; unsigned int refreshCounter; } _mediaPriorityInfo; TimingCollection *_perfTimers; BOOL _haveReportedPerfTimers; BOOL _isMediaSuspended; BOOL _oneToOneVideoEnabled; BOOL _outOfProcessCodecsEnabled; int _thermalLevel; struct __CFDictionary { } *_mediaTypeToSpatialAudioMetadataEntryMap; NSObject *_nwActivity; NSObject *_participantPoorConnectionNwActivity; NSObject *_participantMediaStallNwActivity; double _lastVideoExpectationSwitch; BOOL _isVideoExpected; BOOL _isVideoJitterForPlayoutEnabled; BOOL _remoteScreenEnabledStateChanged; NSMutableDictionary *_jbSynchronizerPerSyncGroupID; NSMutableDictionary *_remoteMediaStates; NSObject *_remoteStreamGroupStateUpdateTimer; VCAudioCaptionsCoordinator *_captionsCoordinator; } @property (readonly, nonatomic) VCSessionParticipantMediaStreamInfo *micStreamInfo; @property (readonly, nonatomic) VCSessionParticipantMediaStreamInfo *cameraStreamInfo; @property (readonly, nonatomic) VCSessionParticipantMediaStreamInfo *screenStreamInfo; @property (readonly, nonatomic) NSNumber *optedInAudioStreamID; @property (readonly, nonatomic) NSNumber *optedInVideoStreamID; @property (nonatomic, getter=isRemoteVideoEnabled) BOOL remoteVideoEnabled; @property (nonatomic, getter=isRemoteAudioEnabled) BOOL remoteAudioEnabled; @property (nonatomic, getter=isRemoteScreenEnabled) BOOL remoteScreenEnabled; @property (nonatomic, getter=isScreenControlEnabled) BOOL screenControlEnabled; @property (nonatomic, getter=isRemoteVideoPaused) BOOL remoteVideoPaused; @property (nonatomic, getter=isRemoteAudioPaused) BOOL remoteAudioPaused; @property (readonly, nonatomic) BOOL isVideoExpected; @property (nonatomic) unsigned char videoQuality; @property (nonatomic) unsigned int visibilityIndex; @property (nonatomic) unsigned int prominenceIndex; @property (readonly, nonatomic) unsigned int lastDisplayedFrameRTPTimestamp; @property (nonatomic) struct _VCSessionParticipantCapabilities { BOOL isPeace; unsigned int participantType; int controlChannelVersion; BOOL supportsGFTSwitchToOneToOne; BOOL isDawnburstOrLater; } capabilities; @property (readonly, nonatomic) VCPositionalInfo *positionalInfo; @property (readonly, nonatomic) NSDictionary *participantSpatialAudioSourceIDs; @property (nonatomic) BOOL isServerRTxEnabled; @property (readonly) NSString *uuid; @property (readonly) NSArray *mediaEntries; @property (readonly) BOOL isVisible; + (BOOL)isDeviceLargeScreen; + (unsigned int)maxAudioNetworkBitrateForLocalInterfaceOnWiFi:(BOOL)a0 isLowLatencyAudio:(BOOL)a1; + (unsigned int)maxBdatNetworkBitrateForVideoQuality:(unsigned char)a0 isLocalOnWiFi:(BOOL)a1 isRedundancyRequested:(BOOL)a2; + (unsigned int)maxCameraNetworkBitrateForVideoQuality:(unsigned char)a0 isLocalOnWiFi:(BOOL)a1 isRedundancyRequested:(BOOL)a2 isSharingEnabled:(BOOL)a3; + (unsigned int)maxCameraNetworkBitrateForVideoQuality:(unsigned char)a0 useWiFiBitrate:(BOOL)a1 isSharingEnabled:(BOOL)a2; + (unsigned int)maxCameraNetworkBitrateWithRedundancyForVideoQuality:(unsigned char)a0 useWiFiBitrate:(BOOL)a1; + (unsigned int)maxFdatNetworkBitrateForVideoQuality:(unsigned char)a0 isLocalOnWiFi:(BOOL)a1 isRedundancyRequested:(BOOL)a2; + (unsigned int)maxFtxtNetworkBitrateForVideoQuality:(unsigned char)a0 isLocalOnWiFi:(BOOL)a1 isRedundancyRequested:(BOOL)a2; + (unsigned int)maxNetworkBitrateForStreamGroupID:(unsigned int)a0 videoQuality:(unsigned char)a1 isLocalOnWiFi:(BOOL)a2 isRedundancyRequested:(BOOL)a3 isSharingEnabled:(BOOL)a4; - (void)dealloc; - (void)setMuted:(BOOL)a0; - (void)start; - (void)stop; - (void)setSharingEnabled:(BOOL)a0; - (void)setAudioPaused:(BOOL)a0; - (void)setVideoPaused:(BOOL)a0; - (BOOL)isInCanvas; - (void)setVideoDegraded:(BOOL)a0; - (void)appendStreamGroupsMediaEntries:(id)a0; - (void)dispatchedSetRemoteVideoPaused:(BOOL)a0; - (void)reportCameraCompositionEnabled:(BOOL)a0; - (void)didStopReacting; - (void)dispatchedSetRemoteAudioPaused:(BOOL)a0; - (id)setupStreamRTP:(id)a0; - (id)activeDownlinkStreamIDForStreamGroupID:(unsigned int)a0; - (unsigned int)actualNetworkBitrateForStreamGroup:(unsigned int)a0; - (unsigned int)actualNetworkBitrateWithAudioBitrates:(id)a0; - (BOOL)addOneToOneStreamConfigToMediaStreamInfo:(id)a0 negotiatorStreamGroupConfig:(id)a1; - (void)appendOptedInStreamID:(id)a0 toOptInStreamsIDs:(id)a1 targetBandwidthEntry:(id)a2 forceSeamlessTransition:(BOOL)a3; - (void)appendStreamGroup:(id)a0 maxBitrate:(unsigned int)a1 mediaEntries:(id)a2; - (id)applyVideoEnabledSetting:(BOOL)a0; - (id)audioGroup; - (void)cancelAndReleaseFetchTimer; - (unsigned char)cappedVideoQualityWithShouldLimitCameraQualityForPIP:(BOOL)a0; - (id)checkSubstreams:(id)a0 forLowerQualityIndex:(unsigned int)a1; - (void)cleanupNwActivity; - (void)cleanupSpatialAudio; - (void)collectAudioChannelMetrics:(struct { unsigned int x0; unsigned int x1[5]; unsigned int x2; double x3; struct CGSize { double x0; double x1; } x4; double x5; unsigned int x6; double x7; unsigned int x8; unsigned int x9; } *)a0; - (void)collectVideoChannelMetrics:(struct { unsigned int x0; unsigned int x1[5]; unsigned int x2; double x3; struct CGSize { double x0; double x1; } x4; double x5; unsigned int x6; double x7; unsigned int x8; unsigned int x9; } *)a0; - (void)completeAndReleaseNwActivity:(id)a0 withReason:(int)a1; - (BOOL)configureAudioIOWithDeviceRole:(int)a0 operatingMode:(int)a1; - (BOOL)configureWithOneToOneParticipantConfig:(id)a0 operatingMode:(int)a1; - (void)createAndResumeFetchTimer; - (void)createJitterBufferTargetEstimatorSynchronizer:(struct tagVCJBTargetEstimatorSynchronizer **)a0 syncGroupID:(unsigned int)a1; - (BOOL)didNegotiateStreamGroupWithID:(unsigned int)a0; - (void)didReceiveFirstFrameForStreamGroup:(id)a0; - (void)dispatchedSetRemoteAudioEnabled:(BOOL)a0; - (void)dispatchedSetRemoteScreenEnabled:(BOOL)a0; - (void)dispatchedSetRemoteSystemAudioPaused:(BOOL)a0; - (void)dispatchedSetRemoteVideoEnabled:(BOOL)a0; - (void)dispatchedSetScreenControlEnabled:(BOOL)a0; - (void)dispatchedSetVideoReceiverFeedbackDelegate:(id)a0; - (id)entryForStreamID:(id)a0; - (id)getAudioDumpName; - (id)getMajorVersionNumber; - (id)initWithConfig:(id)a0 delegate:(id)a1; - (void)initializeParticipantType; - (BOOL)isActiveMediaType:(unsigned int)a0; - (BOOL)isAudioActive; - (BOOL)isParticipantDawnburstOrLater; - (BOOL)isParticipantPeace:(id)a0; - (BOOL)isScreenActive; - (BOOL)isSeamlessTransitionSupportedForStreamGroup:(id)a0; - (BOOL)isStreamGroupActive:(id)a0; - (void)negotiateAudioRules:(id)a0; - (void)networkQualityDidDegrade:(BOOL)a0 isLocalNetworkQualityDegraded:(BOOL)a1; - (id)newCaptionsStreamGroupWithStreamGroupConfig:(id)a0; - (id)newMediaStreamConfigWithStreamConfig:(id)a0 streamGroupConfig:(id)a1 maxIDSStreamIDCount:(unsigned int)a2; - (id)newMediaStreamConfigWithStreamGroupConfig:(id)a0 streamConfig:(id)a1 rateControlConfig:(id)a2 multiwayConfig:(id)a3; - (id)newMediaStreamInfoWithNegotiationConfig:(id)a0 streamToken:(long long)a1; - (id)newMediaStreamWithNegotiationConfig:(id)a0 streamToken:(long long)a1; - (id)newMultiwayConfigWithStreamGroupStreamConfig:(id)a0 maxIDSStreamIDCount:(unsigned int)a1 groupID:(unsigned int)a2; - (id)newStreamGroupConfigWithNegotiationConfig:(id)a0; - (id)newSupportedRemoteMediaTypeStatesDict:(id)a0; - (id)newVideoStreamGroupWithStreamGroupConfig:(id)a0; - (BOOL)oneToOneIsSupportedAudioStreamGroup:(unsigned int)a0; - (BOOL)oneToOneIsSupportedVideoStreamGroup:(unsigned int)a0; - (unsigned int)optedInNetworkBitrateForStreamGroup:(unsigned int)a0; - (id)optedInStreamIDForStreamGroupID:(unsigned int)a0; - (long long)participantMicrophoneToken; - (long long)participantScreenToken; - (BOOL)processParticipantInfo; - (void)pushEventToNwActivity:(long long)a0 started:(BOOL)a1; - (void)reactionDidStart:(id)a0; - (id)recommendedStreamIDsForSelectedMediaEntries:(id)a0 forceSeamlessTransition:(BOOL)a1; - (void)redundancyController:(id)a0 redundancyIntervalDidChange:(double)a1; - (void)redundancyController:(id)a0 redundancyPercentageDidChange:(unsigned int)a1; - (unsigned int)remoteMediaStateForMediaType:(unsigned int)a0; - (id)screenGroup; - (void)setActiveStreamIDs:(id)a0; - (void)setMediaRecorder:(id)a0; - (void)setMediaSuspended:(BOOL)a0 forStreamToken:(id)a1; - (void)setRemoteMediaStalled:(BOOL)a0; - (void)setRemoteMediaState:(id)a0 forMediaType:(id)a1; - (void)setRemoteMediaTypeStates:(id)a0; - (void)setRemoteSystemAudioPaused:(BOOL)a0; - (void)setShouldEnableFaceZoom:(BOOL)a0; - (BOOL)setShouldEnableMLEnhance:(BOOL)a0 streamWithVideoResolution:(long long)a1 videoStreamGroup:(id)a2; - (void)setStreamGroup:(unsigned int)a0 syncSourceStreamGroupID:(unsigned int)a1; - (void)setTransitionToDisabled:(unsigned int)a0; - (void)setTransitionToEnabled:(unsigned int)a0; - (void)setTransitionToPaused:(unsigned int)a0; - (void)setVideoReceiverFeedbackDelegate:(id)a0; - (void)setVideoStreamDelegate:(id)a0 delegateFunctions:(const struct tagVCVideoStreamDelegateRealtimeInstanceVTable { void /* function */ *x0; } *)a1; - (BOOL)setupAudioStreamConfiguration:(id)a0 withStreamGroupConfig:(id)a1 streamGroupStreamConfig:(id)a2; - (BOOL)setupBandwidthAllocationTableForMediaStreamConfigs:(id)a0 streamGroupID:(unsigned int)a1 entryType:(unsigned char)a2; - (void)setupJBTargetSynchronizers; - (void)setupMediaStreamGroupConfig:(id)a0 withNegotiationConfig:(id)a1; - (int)setupSpatialAudioWithMetadata:(void *)a0 spatialMetadataEntryMap:(struct __CFDictionary { } *)a1; - (int)setupSpatialInfoForStreamGroupConfig:(id)a0; - (BOOL)setupStreamConfigWithCodecs:(id)a0 streamConfig:(id)a1 codecConfigs:(id)a2 featureStringsDict:(id)a3; - (BOOL)setupStreamGroupWithConfig:(id)a0; - (BOOL)setupStreamGroups; - (BOOL)setupVideoStreamConfiguration:(id)a0 withStreamGroupStreamConfig:(id)a1 codecConfigs:(id)a2 multiwayConfig:(id)a3 groupID:(unsigned int)a4; - (BOOL)shouldEnableMLEnhanceHighTier; - (BOOL)shouldEnableMLEnhanceLowTier; - (BOOL)shouldEnableMLEnhanceOneToOne; - (BOOL)shouldEnablePacketRetransmissionForStreamGroupID:(unsigned int)a0; - (BOOL)shouldSetupStreamGroupWithID:(unsigned int)a0; - (int)spatialChannelIndex:(unsigned int *)a0 spatialAudioSourceID:(unsigned long long *)a1 forMediaType:(unsigned int)a2; - (void *)spatialMetadataEntryForMediaType:(unsigned int)a0; - (id)startAudioIO; - (id)startScreenGroup; - (id)stopAudioStreams; - (int)storeSpatialAudioMetadataEntry:(void *)a0 forMediaType:(unsigned int)a1; - (BOOL)supportsGFTSwitchToOneToOne; - (BOOL)supportsNegotiatedCoordinateSystem; - (id)systemAudioStreamInfo; - (void)updateAndHandleVideoMediaStall:(BOOL)a0 isOneToOneStream:(BOOL)a1; - (void)updateAudioSpectrumState; - (void)updateDownlinkBandwithAllocatorClientConfigurations:(id)a0; - (id)updateMediaState:(unsigned int)a0 forStreamGroup:(id)a1; - (void)updateOneToOneAudioPositionalInfo:(const struct tagVCSpatialAudioMetadataPositionalInfo { float x0; float x1; float x2; unsigned int x3; unsigned int x4; unsigned int x5; } *)a0; - (void)updatePositionalInfo:(id)a0 shouldReapply:(BOOL)a1; - (void)updateScreenStreamConfigurationWithStreamGroupResult:(id)a0 multiwayConfig:(id)a1 screenStreamConfig:(id)a2; - (void)updateShouldEnableFaceZoom; - (void)updateShouldEnableMLEnhance; - (void)updateShouldEnableMLEnhanceHighTierMultiway; - (void)updateShouldEnableMLEnhanceLowTierMultiway; - (void)updateShouldEnableMLEnhanceOneToOne; - (void)updateStreamConfigWithMLEnhance:(id)a0; - (void)updateThermalLevel:(int)a0; - (void)updateVideoMultiwayConfig:(id)a0 withStreamGroupStreamConfig:(id)a1; - (void)validateMediaEntries:(id)a0; - (id)videoGroup; @end