import { ISdkBitrateFrame , SdkIndexFrame , SdkSubscribeAckFrame , } from '../signalingprotocol/SignalingProtocol.js' ; import VideoSource from '../videosource/VideoSource' ; import VideoStreamIdSet from '../videostreamidset/VideoStreamIdSet' ; import VideoStreamDescription from './VideoStreamDescription' ; /**
 * [[VideoStreamIndex]] holds the set of video streams available on the server for subscription
 */ export default interface VideoStreamIndex { /**
     * Saves [[SdkIndexFrame]] in [[VideoStreamIndex]]
     */ integrateIndexFrame ( indexFrame ) : void ; /**
     * Subscribe frame sent
     */ subscribeFrameSent ( ) : void ; /**
     * Saves [[SdkSubscribeAckFrame]] in [[VideoStreamIndex]]
     */ integrateSubscribeAckFrame ( subscribeAck ) : void ; /**
     * Saves [[SdkBitrateFrame]] in [[VideoStreamIndex]]
     */ integrateBitratesFrame ( bitrates ) : void ; /**
     * Returns the set of all streams as [[VideoStreamIdSet]]
     */ allStreams ( ) : VideoStreamIdSet ; /**
     * Returns an array of video sources who are sending video excluding self
     */ allVideoSendingSourcesExcludingSelf ( selfAttendeeId ) : VideoSource [ ] ; /**
     * Return a selection set of streams for subscription based on self attendee id, size information of tiles, bandwidth limitation
     */ streamSelectionUnderBandwidthConstraint ( selfAttendeeId , largeTileAttendeeIds , smallTileAttendeeIds , bandwidthKbps ) : VideoStreamIdSet ; /**
     * Returns the set of the highest quality videos for subscription
     */ highestQualityStreamFromEachGroupExcludingSelf ( selfAttendeeId ) : VideoStreamIdSet ; /**
     * Returns the number of participants who are publishing videos excluding self
     */ numberOfVideoPublishingParticipantsExcludingSelf ( selfAttendeeId ) : number ; /**
     * Returns the number of video participants
     */ numberOfParticipants ( ) : number ; /**
     * Returns attendee id for a track id
     */ attendeeIdForTrack ( trackId ) : string ; /**
     * Returns external user id for a track id
     */ externalUserIdForTrack ( trackId ) : string ; /**
     * Returns attendee id for a stream id
     */ attendeeIdForStreamId ( streamId ) : string ; /**
     * Returns group id for a stream id
     */ groupIdForStreamId ( streamId ) : number ; /**
     * Determines if the stream ID's are from the same group (client)
     */ StreamIdsInSameGroup ( streamId1 , streamId2 ) : boolean ; /**
     * Returns a stream id for a track id
     */ streamIdForTrack ( trackId ) : number ; /**
     * Returns a stream id for an SSRC Id
     */ streamIdForSSRC ( ssrcId ) : number ; /**
     * Override mappings using stream ID (i.e. for `streamIdForTrack`, and `streamIdForSSRC`)
     * locally (i.e. without the need for a subscribe ACK message)
     */ overrideStreamIdMappings ? ( previous , current ) : void ; /**
     * Returns the set of streams which are paused at source.
     */ streamsPausedAtSource ( ) : VideoStreamIdSet ; /**
     * Updates cached local stream description array via uplink decisions, an array of [[RTCRtpEncodingParameters]]
     */ integrateUplinkPolicyDecision ( encodingParameters ) : void ; /**
     * Returns the cloned array of [[VideoStreamDescription]] corresponding to local streams
     */ localStreamDescriptions ( ) : VideoStreamDescription [ ] ; /**
     * Returns the cloned array of [[VideoStreamDescription]] corresponding to remote streams
     */ remoteStreamDescriptions ( ) : VideoStreamDescription [ ] ; }