// Code generated by counterfeiter. DO NOT EDIT.
package typesfakes

import (
	"sync"
	"time"

	"github.com/livekit/livekit-server/pkg/rtc/types"
	"github.com/livekit/livekit-server/pkg/telemetry"
	"github.com/livekit/protocol/codecs/mime"
	"github.com/livekit/protocol/livekit"
)

type FakeParticipantTelemetryListener struct {
	OnTrackMaxSubscribedVideoQualityStub        func(livekit.ParticipantID, *livekit.TrackInfo, mime.MimeType, livekit.VideoQuality)
	onTrackMaxSubscribedVideoQualityMutex       sync.RWMutex
	onTrackMaxSubscribedVideoQualityArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 mime.MimeType
		arg4 livekit.VideoQuality
	}
	OnTrackMutedStub        func(livekit.ParticipantID, *livekit.TrackInfo)
	onTrackMutedMutex       sync.RWMutex
	onTrackMutedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}
	OnTrackPublishRTPStatsStub        func(livekit.ParticipantID, livekit.TrackID, mime.MimeType, int, *livekit.RTPStats)
	onTrackPublishRTPStatsMutex       sync.RWMutex
	onTrackPublishRTPStatsArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 livekit.TrackID
		arg3 mime.MimeType
		arg4 int
		arg5 *livekit.RTPStats
	}
	OnTrackPublishRequestedStub        func(livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool)
	onTrackPublishRequestedMutex       sync.RWMutex
	onTrackPublishRequestedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 livekit.ParticipantIdentity
		arg3 *livekit.TrackInfo
		arg4 bool
	}
	OnTrackPublishedStub        func(livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool)
	onTrackPublishedMutex       sync.RWMutex
	onTrackPublishedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 livekit.ParticipantIdentity
		arg3 *livekit.TrackInfo
		arg4 bool
	}
	OnTrackPublishedUpdateStub        func(livekit.ParticipantID, *livekit.TrackInfo)
	onTrackPublishedUpdateMutex       sync.RWMutex
	onTrackPublishedUpdateArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}
	OnTrackStatsStub        func(telemetry.StatsKey, *livekit.AnalyticsStat)
	onTrackStatsMutex       sync.RWMutex
	onTrackStatsArgsForCall []struct {
		arg1 telemetry.StatsKey
		arg2 *livekit.AnalyticsStat
	}
	OnTrackSubscribeFailedStub        func(livekit.ParticipantID, livekit.TrackID, error, bool)
	onTrackSubscribeFailedMutex       sync.RWMutex
	onTrackSubscribeFailedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 livekit.TrackID
		arg3 error
		arg4 bool
	}
	OnTrackSubscribeRTPStatsStub        func(livekit.ParticipantID, livekit.TrackID, mime.MimeType, *livekit.RTPStats)
	onTrackSubscribeRTPStatsMutex       sync.RWMutex
	onTrackSubscribeRTPStatsArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 livekit.TrackID
		arg3 mime.MimeType
		arg4 *livekit.RTPStats
	}
	OnTrackSubscribeRequestedStub        func(livekit.ParticipantID, *livekit.TrackInfo)
	onTrackSubscribeRequestedMutex       sync.RWMutex
	onTrackSubscribeRequestedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}
	OnTrackSubscribeStreamStartedStub        func(livekit.ParticipantID, *livekit.TrackInfo, time.Duration)
	onTrackSubscribeStreamStartedMutex       sync.RWMutex
	onTrackSubscribeStreamStartedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 time.Duration
	}
	OnTrackSubscribedStub        func(livekit.ParticipantID, *livekit.TrackInfo, *livekit.ParticipantInfo, bool)
	onTrackSubscribedMutex       sync.RWMutex
	onTrackSubscribedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 *livekit.ParticipantInfo
		arg4 bool
	}
	OnTrackUnmutedStub        func(livekit.ParticipantID, *livekit.TrackInfo)
	onTrackUnmutedMutex       sync.RWMutex
	onTrackUnmutedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}
	OnTrackUnpublishedStub        func(livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool, bool)
	onTrackUnpublishedMutex       sync.RWMutex
	onTrackUnpublishedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 livekit.ParticipantIdentity
		arg3 *livekit.TrackInfo
		arg4 bool
		arg5 bool
	}
	OnTrackUnsubscribedStub        func(livekit.ParticipantID, *livekit.TrackInfo, bool)
	onTrackUnsubscribedMutex       sync.RWMutex
	onTrackUnsubscribedArgsForCall []struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 bool
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *FakeParticipantTelemetryListener) OnTrackMaxSubscribedVideoQuality(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo, arg3 mime.MimeType, arg4 livekit.VideoQuality) {
	fake.onTrackMaxSubscribedVideoQualityMutex.Lock()
	fake.onTrackMaxSubscribedVideoQualityArgsForCall = append(fake.onTrackMaxSubscribedVideoQualityArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 mime.MimeType
		arg4 livekit.VideoQuality
	}{arg1, arg2, arg3, arg4})
	stub := fake.OnTrackMaxSubscribedVideoQualityStub
	fake.recordInvocation("OnTrackMaxSubscribedVideoQuality", []interface{}{arg1, arg2, arg3, arg4})
	fake.onTrackMaxSubscribedVideoQualityMutex.Unlock()
	if stub != nil {
		fake.OnTrackMaxSubscribedVideoQualityStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackMaxSubscribedVideoQualityCallCount() int {
	fake.onTrackMaxSubscribedVideoQualityMutex.RLock()
	defer fake.onTrackMaxSubscribedVideoQualityMutex.RUnlock()
	return len(fake.onTrackMaxSubscribedVideoQualityArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackMaxSubscribedVideoQualityCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo, mime.MimeType, livekit.VideoQuality)) {
	fake.onTrackMaxSubscribedVideoQualityMutex.Lock()
	defer fake.onTrackMaxSubscribedVideoQualityMutex.Unlock()
	fake.OnTrackMaxSubscribedVideoQualityStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackMaxSubscribedVideoQualityArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo, mime.MimeType, livekit.VideoQuality) {
	fake.onTrackMaxSubscribedVideoQualityMutex.RLock()
	defer fake.onTrackMaxSubscribedVideoQualityMutex.RUnlock()
	argsForCall := fake.onTrackMaxSubscribedVideoQualityArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
}

func (fake *FakeParticipantTelemetryListener) OnTrackMuted(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo) {
	fake.onTrackMutedMutex.Lock()
	fake.onTrackMutedArgsForCall = append(fake.onTrackMutedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}{arg1, arg2})
	stub := fake.OnTrackMutedStub
	fake.recordInvocation("OnTrackMuted", []interface{}{arg1, arg2})
	fake.onTrackMutedMutex.Unlock()
	if stub != nil {
		fake.OnTrackMutedStub(arg1, arg2)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackMutedCallCount() int {
	fake.onTrackMutedMutex.RLock()
	defer fake.onTrackMutedMutex.RUnlock()
	return len(fake.onTrackMutedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackMutedCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo)) {
	fake.onTrackMutedMutex.Lock()
	defer fake.onTrackMutedMutex.Unlock()
	fake.OnTrackMutedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackMutedArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo) {
	fake.onTrackMutedMutex.RLock()
	defer fake.onTrackMutedMutex.RUnlock()
	argsForCall := fake.onTrackMutedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRTPStats(arg1 livekit.ParticipantID, arg2 livekit.TrackID, arg3 mime.MimeType, arg4 int, arg5 *livekit.RTPStats) {
	fake.onTrackPublishRTPStatsMutex.Lock()
	fake.onTrackPublishRTPStatsArgsForCall = append(fake.onTrackPublishRTPStatsArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 livekit.TrackID
		arg3 mime.MimeType
		arg4 int
		arg5 *livekit.RTPStats
	}{arg1, arg2, arg3, arg4, arg5})
	stub := fake.OnTrackPublishRTPStatsStub
	fake.recordInvocation("OnTrackPublishRTPStats", []interface{}{arg1, arg2, arg3, arg4, arg5})
	fake.onTrackPublishRTPStatsMutex.Unlock()
	if stub != nil {
		fake.OnTrackPublishRTPStatsStub(arg1, arg2, arg3, arg4, arg5)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRTPStatsCallCount() int {
	fake.onTrackPublishRTPStatsMutex.RLock()
	defer fake.onTrackPublishRTPStatsMutex.RUnlock()
	return len(fake.onTrackPublishRTPStatsArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRTPStatsCalls(stub func(livekit.ParticipantID, livekit.TrackID, mime.MimeType, int, *livekit.RTPStats)) {
	fake.onTrackPublishRTPStatsMutex.Lock()
	defer fake.onTrackPublishRTPStatsMutex.Unlock()
	fake.OnTrackPublishRTPStatsStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRTPStatsArgsForCall(i int) (livekit.ParticipantID, livekit.TrackID, mime.MimeType, int, *livekit.RTPStats) {
	fake.onTrackPublishRTPStatsMutex.RLock()
	defer fake.onTrackPublishRTPStatsMutex.RUnlock()
	argsForCall := fake.onTrackPublishRTPStatsArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4, argsForCall.arg5
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRequested(arg1 livekit.ParticipantID, arg2 livekit.ParticipantIdentity, arg3 *livekit.TrackInfo, arg4 bool) {
	fake.onTrackPublishRequestedMutex.Lock()
	fake.onTrackPublishRequestedArgsForCall = append(fake.onTrackPublishRequestedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 livekit.ParticipantIdentity
		arg3 *livekit.TrackInfo
		arg4 bool
	}{arg1, arg2, arg3, arg4})
	stub := fake.OnTrackPublishRequestedStub
	fake.recordInvocation("OnTrackPublishRequested", []interface{}{arg1, arg2, arg3, arg4})
	fake.onTrackPublishRequestedMutex.Unlock()
	if stub != nil {
		fake.OnTrackPublishRequestedStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRequestedCallCount() int {
	fake.onTrackPublishRequestedMutex.RLock()
	defer fake.onTrackPublishRequestedMutex.RUnlock()
	return len(fake.onTrackPublishRequestedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRequestedCalls(stub func(livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool)) {
	fake.onTrackPublishRequestedMutex.Lock()
	defer fake.onTrackPublishRequestedMutex.Unlock()
	fake.OnTrackPublishRequestedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishRequestedArgsForCall(i int) (livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool) {
	fake.onTrackPublishRequestedMutex.RLock()
	defer fake.onTrackPublishRequestedMutex.RUnlock()
	argsForCall := fake.onTrackPublishRequestedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublished(arg1 livekit.ParticipantID, arg2 livekit.ParticipantIdentity, arg3 *livekit.TrackInfo, arg4 bool) {
	fake.onTrackPublishedMutex.Lock()
	fake.onTrackPublishedArgsForCall = append(fake.onTrackPublishedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 livekit.ParticipantIdentity
		arg3 *livekit.TrackInfo
		arg4 bool
	}{arg1, arg2, arg3, arg4})
	stub := fake.OnTrackPublishedStub
	fake.recordInvocation("OnTrackPublished", []interface{}{arg1, arg2, arg3, arg4})
	fake.onTrackPublishedMutex.Unlock()
	if stub != nil {
		fake.OnTrackPublishedStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedCallCount() int {
	fake.onTrackPublishedMutex.RLock()
	defer fake.onTrackPublishedMutex.RUnlock()
	return len(fake.onTrackPublishedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedCalls(stub func(livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool)) {
	fake.onTrackPublishedMutex.Lock()
	defer fake.onTrackPublishedMutex.Unlock()
	fake.OnTrackPublishedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedArgsForCall(i int) (livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool) {
	fake.onTrackPublishedMutex.RLock()
	defer fake.onTrackPublishedMutex.RUnlock()
	argsForCall := fake.onTrackPublishedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedUpdate(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo) {
	fake.onTrackPublishedUpdateMutex.Lock()
	fake.onTrackPublishedUpdateArgsForCall = append(fake.onTrackPublishedUpdateArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}{arg1, arg2})
	stub := fake.OnTrackPublishedUpdateStub
	fake.recordInvocation("OnTrackPublishedUpdate", []interface{}{arg1, arg2})
	fake.onTrackPublishedUpdateMutex.Unlock()
	if stub != nil {
		fake.OnTrackPublishedUpdateStub(arg1, arg2)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedUpdateCallCount() int {
	fake.onTrackPublishedUpdateMutex.RLock()
	defer fake.onTrackPublishedUpdateMutex.RUnlock()
	return len(fake.onTrackPublishedUpdateArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedUpdateCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo)) {
	fake.onTrackPublishedUpdateMutex.Lock()
	defer fake.onTrackPublishedUpdateMutex.Unlock()
	fake.OnTrackPublishedUpdateStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackPublishedUpdateArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo) {
	fake.onTrackPublishedUpdateMutex.RLock()
	defer fake.onTrackPublishedUpdateMutex.RUnlock()
	argsForCall := fake.onTrackPublishedUpdateArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeParticipantTelemetryListener) OnTrackStats(arg1 telemetry.StatsKey, arg2 *livekit.AnalyticsStat) {
	fake.onTrackStatsMutex.Lock()
	fake.onTrackStatsArgsForCall = append(fake.onTrackStatsArgsForCall, struct {
		arg1 telemetry.StatsKey
		arg2 *livekit.AnalyticsStat
	}{arg1, arg2})
	stub := fake.OnTrackStatsStub
	fake.recordInvocation("OnTrackStats", []interface{}{arg1, arg2})
	fake.onTrackStatsMutex.Unlock()
	if stub != nil {
		fake.OnTrackStatsStub(arg1, arg2)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackStatsCallCount() int {
	fake.onTrackStatsMutex.RLock()
	defer fake.onTrackStatsMutex.RUnlock()
	return len(fake.onTrackStatsArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackStatsCalls(stub func(telemetry.StatsKey, *livekit.AnalyticsStat)) {
	fake.onTrackStatsMutex.Lock()
	defer fake.onTrackStatsMutex.Unlock()
	fake.OnTrackStatsStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackStatsArgsForCall(i int) (telemetry.StatsKey, *livekit.AnalyticsStat) {
	fake.onTrackStatsMutex.RLock()
	defer fake.onTrackStatsMutex.RUnlock()
	argsForCall := fake.onTrackStatsArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeFailed(arg1 livekit.ParticipantID, arg2 livekit.TrackID, arg3 error, arg4 bool) {
	fake.onTrackSubscribeFailedMutex.Lock()
	fake.onTrackSubscribeFailedArgsForCall = append(fake.onTrackSubscribeFailedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 livekit.TrackID
		arg3 error
		arg4 bool
	}{arg1, arg2, arg3, arg4})
	stub := fake.OnTrackSubscribeFailedStub
	fake.recordInvocation("OnTrackSubscribeFailed", []interface{}{arg1, arg2, arg3, arg4})
	fake.onTrackSubscribeFailedMutex.Unlock()
	if stub != nil {
		fake.OnTrackSubscribeFailedStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeFailedCallCount() int {
	fake.onTrackSubscribeFailedMutex.RLock()
	defer fake.onTrackSubscribeFailedMutex.RUnlock()
	return len(fake.onTrackSubscribeFailedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeFailedCalls(stub func(livekit.ParticipantID, livekit.TrackID, error, bool)) {
	fake.onTrackSubscribeFailedMutex.Lock()
	defer fake.onTrackSubscribeFailedMutex.Unlock()
	fake.OnTrackSubscribeFailedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeFailedArgsForCall(i int) (livekit.ParticipantID, livekit.TrackID, error, bool) {
	fake.onTrackSubscribeFailedMutex.RLock()
	defer fake.onTrackSubscribeFailedMutex.RUnlock()
	argsForCall := fake.onTrackSubscribeFailedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRTPStats(arg1 livekit.ParticipantID, arg2 livekit.TrackID, arg3 mime.MimeType, arg4 *livekit.RTPStats) {
	fake.onTrackSubscribeRTPStatsMutex.Lock()
	fake.onTrackSubscribeRTPStatsArgsForCall = append(fake.onTrackSubscribeRTPStatsArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 livekit.TrackID
		arg3 mime.MimeType
		arg4 *livekit.RTPStats
	}{arg1, arg2, arg3, arg4})
	stub := fake.OnTrackSubscribeRTPStatsStub
	fake.recordInvocation("OnTrackSubscribeRTPStats", []interface{}{arg1, arg2, arg3, arg4})
	fake.onTrackSubscribeRTPStatsMutex.Unlock()
	if stub != nil {
		fake.OnTrackSubscribeRTPStatsStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRTPStatsCallCount() int {
	fake.onTrackSubscribeRTPStatsMutex.RLock()
	defer fake.onTrackSubscribeRTPStatsMutex.RUnlock()
	return len(fake.onTrackSubscribeRTPStatsArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRTPStatsCalls(stub func(livekit.ParticipantID, livekit.TrackID, mime.MimeType, *livekit.RTPStats)) {
	fake.onTrackSubscribeRTPStatsMutex.Lock()
	defer fake.onTrackSubscribeRTPStatsMutex.Unlock()
	fake.OnTrackSubscribeRTPStatsStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRTPStatsArgsForCall(i int) (livekit.ParticipantID, livekit.TrackID, mime.MimeType, *livekit.RTPStats) {
	fake.onTrackSubscribeRTPStatsMutex.RLock()
	defer fake.onTrackSubscribeRTPStatsMutex.RUnlock()
	argsForCall := fake.onTrackSubscribeRTPStatsArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRequested(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo) {
	fake.onTrackSubscribeRequestedMutex.Lock()
	fake.onTrackSubscribeRequestedArgsForCall = append(fake.onTrackSubscribeRequestedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}{arg1, arg2})
	stub := fake.OnTrackSubscribeRequestedStub
	fake.recordInvocation("OnTrackSubscribeRequested", []interface{}{arg1, arg2})
	fake.onTrackSubscribeRequestedMutex.Unlock()
	if stub != nil {
		fake.OnTrackSubscribeRequestedStub(arg1, arg2)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRequestedCallCount() int {
	fake.onTrackSubscribeRequestedMutex.RLock()
	defer fake.onTrackSubscribeRequestedMutex.RUnlock()
	return len(fake.onTrackSubscribeRequestedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRequestedCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo)) {
	fake.onTrackSubscribeRequestedMutex.Lock()
	defer fake.onTrackSubscribeRequestedMutex.Unlock()
	fake.OnTrackSubscribeRequestedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeRequestedArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo) {
	fake.onTrackSubscribeRequestedMutex.RLock()
	defer fake.onTrackSubscribeRequestedMutex.RUnlock()
	argsForCall := fake.onTrackSubscribeRequestedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeStreamStarted(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo, arg3 time.Duration) {
	fake.onTrackSubscribeStreamStartedMutex.Lock()
	fake.onTrackSubscribeStreamStartedArgsForCall = append(fake.onTrackSubscribeStreamStartedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 time.Duration
	}{arg1, arg2, arg3})
	stub := fake.OnTrackSubscribeStreamStartedStub
	fake.recordInvocation("OnTrackSubscribeStreamStarted", []interface{}{arg1, arg2, arg3})
	fake.onTrackSubscribeStreamStartedMutex.Unlock()
	if stub != nil {
		fake.OnTrackSubscribeStreamStartedStub(arg1, arg2, arg3)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeStreamStartedCallCount() int {
	fake.onTrackSubscribeStreamStartedMutex.RLock()
	defer fake.onTrackSubscribeStreamStartedMutex.RUnlock()
	return len(fake.onTrackSubscribeStreamStartedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeStreamStartedCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo, time.Duration)) {
	fake.onTrackSubscribeStreamStartedMutex.Lock()
	defer fake.onTrackSubscribeStreamStartedMutex.Unlock()
	fake.OnTrackSubscribeStreamStartedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribeStreamStartedArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo, time.Duration) {
	fake.onTrackSubscribeStreamStartedMutex.RLock()
	defer fake.onTrackSubscribeStreamStartedMutex.RUnlock()
	argsForCall := fake.onTrackSubscribeStreamStartedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribed(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo, arg3 *livekit.ParticipantInfo, arg4 bool) {
	fake.onTrackSubscribedMutex.Lock()
	fake.onTrackSubscribedArgsForCall = append(fake.onTrackSubscribedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 *livekit.ParticipantInfo
		arg4 bool
	}{arg1, arg2, arg3, arg4})
	stub := fake.OnTrackSubscribedStub
	fake.recordInvocation("OnTrackSubscribed", []interface{}{arg1, arg2, arg3, arg4})
	fake.onTrackSubscribedMutex.Unlock()
	if stub != nil {
		fake.OnTrackSubscribedStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribedCallCount() int {
	fake.onTrackSubscribedMutex.RLock()
	defer fake.onTrackSubscribedMutex.RUnlock()
	return len(fake.onTrackSubscribedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribedCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo, *livekit.ParticipantInfo, bool)) {
	fake.onTrackSubscribedMutex.Lock()
	defer fake.onTrackSubscribedMutex.Unlock()
	fake.OnTrackSubscribedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackSubscribedArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo, *livekit.ParticipantInfo, bool) {
	fake.onTrackSubscribedMutex.RLock()
	defer fake.onTrackSubscribedMutex.RUnlock()
	argsForCall := fake.onTrackSubscribedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnmuted(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo) {
	fake.onTrackUnmutedMutex.Lock()
	fake.onTrackUnmutedArgsForCall = append(fake.onTrackUnmutedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
	}{arg1, arg2})
	stub := fake.OnTrackUnmutedStub
	fake.recordInvocation("OnTrackUnmuted", []interface{}{arg1, arg2})
	fake.onTrackUnmutedMutex.Unlock()
	if stub != nil {
		fake.OnTrackUnmutedStub(arg1, arg2)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnmutedCallCount() int {
	fake.onTrackUnmutedMutex.RLock()
	defer fake.onTrackUnmutedMutex.RUnlock()
	return len(fake.onTrackUnmutedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnmutedCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo)) {
	fake.onTrackUnmutedMutex.Lock()
	defer fake.onTrackUnmutedMutex.Unlock()
	fake.OnTrackUnmutedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnmutedArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo) {
	fake.onTrackUnmutedMutex.RLock()
	defer fake.onTrackUnmutedMutex.RUnlock()
	argsForCall := fake.onTrackUnmutedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnpublished(arg1 livekit.ParticipantID, arg2 livekit.ParticipantIdentity, arg3 *livekit.TrackInfo, arg4 bool, arg5 bool) {
	fake.onTrackUnpublishedMutex.Lock()
	fake.onTrackUnpublishedArgsForCall = append(fake.onTrackUnpublishedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 livekit.ParticipantIdentity
		arg3 *livekit.TrackInfo
		arg4 bool
		arg5 bool
	}{arg1, arg2, arg3, arg4, arg5})
	stub := fake.OnTrackUnpublishedStub
	fake.recordInvocation("OnTrackUnpublished", []interface{}{arg1, arg2, arg3, arg4, arg5})
	fake.onTrackUnpublishedMutex.Unlock()
	if stub != nil {
		fake.OnTrackUnpublishedStub(arg1, arg2, arg3, arg4, arg5)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnpublishedCallCount() int {
	fake.onTrackUnpublishedMutex.RLock()
	defer fake.onTrackUnpublishedMutex.RUnlock()
	return len(fake.onTrackUnpublishedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnpublishedCalls(stub func(livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool, bool)) {
	fake.onTrackUnpublishedMutex.Lock()
	defer fake.onTrackUnpublishedMutex.Unlock()
	fake.OnTrackUnpublishedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnpublishedArgsForCall(i int) (livekit.ParticipantID, livekit.ParticipantIdentity, *livekit.TrackInfo, bool, bool) {
	fake.onTrackUnpublishedMutex.RLock()
	defer fake.onTrackUnpublishedMutex.RUnlock()
	argsForCall := fake.onTrackUnpublishedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4, argsForCall.arg5
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnsubscribed(arg1 livekit.ParticipantID, arg2 *livekit.TrackInfo, arg3 bool) {
	fake.onTrackUnsubscribedMutex.Lock()
	fake.onTrackUnsubscribedArgsForCall = append(fake.onTrackUnsubscribedArgsForCall, struct {
		arg1 livekit.ParticipantID
		arg2 *livekit.TrackInfo
		arg3 bool
	}{arg1, arg2, arg3})
	stub := fake.OnTrackUnsubscribedStub
	fake.recordInvocation("OnTrackUnsubscribed", []interface{}{arg1, arg2, arg3})
	fake.onTrackUnsubscribedMutex.Unlock()
	if stub != nil {
		fake.OnTrackUnsubscribedStub(arg1, arg2, arg3)
	}
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnsubscribedCallCount() int {
	fake.onTrackUnsubscribedMutex.RLock()
	defer fake.onTrackUnsubscribedMutex.RUnlock()
	return len(fake.onTrackUnsubscribedArgsForCall)
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnsubscribedCalls(stub func(livekit.ParticipantID, *livekit.TrackInfo, bool)) {
	fake.onTrackUnsubscribedMutex.Lock()
	defer fake.onTrackUnsubscribedMutex.Unlock()
	fake.OnTrackUnsubscribedStub = stub
}

func (fake *FakeParticipantTelemetryListener) OnTrackUnsubscribedArgsForCall(i int) (livekit.ParticipantID, *livekit.TrackInfo, bool) {
	fake.onTrackUnsubscribedMutex.RLock()
	defer fake.onTrackUnsubscribedMutex.RUnlock()
	argsForCall := fake.onTrackUnsubscribedArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3
}

func (fake *FakeParticipantTelemetryListener) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	copiedInvocations := map[string][][]interface{}{}
	for key, value := range fake.invocations {
		copiedInvocations[key] = value
	}
	return copiedInvocations
}

func (fake *FakeParticipantTelemetryListener) recordInvocation(key string, args []interface{}) {
	fake.invocationsMutex.Lock()
	defer fake.invocationsMutex.Unlock()
	if fake.invocations == nil {
		fake.invocations = map[string][][]interface{}{}
	}
	if fake.invocations[key] == nil {
		fake.invocations[key] = [][]interface{}{}
	}
	fake.invocations[key] = append(fake.invocations[key], args)
}

var _ types.ParticipantTelemetryListener = new(FakeParticipantTelemetryListener)
