// require('react-native-callstats/csio-polyfill');
// import callstats from 'react-native-callstats/callstats';
// import config from '@src/utils/config';
// import { store } from '@src/store/store';
// import { Transport } from 'mediasoup-client/lib/Transport';
// import { RTCPeerConnection } from 'react-native-webrtc';
// let TURN_SERVERS = null
// const FALLBACK_ICE_SERVERS = [
// 	{
// 		urls: 'turn:turn.dyte.in:443?transport=tcp',
// 		username: 'dyte',
// 		credential: 'dytein',
// 		credentialType: 'password',
// 	},
// 	{
// 		urls: 'turn:turn.dyte.in:3478?transport=udp',
// 		username: 'dyte',
// 		credential: 'dytein',
// 		credentialType: 'password',
// 	},
// ]
// export const getICEServers = async () => {
// 	if (TURN_SERVERS === null) {
// 		try {
// 			const userAuthToken = store.getState().participant.authToken;
// 			const iceserverReq = await fetch(`${config.apiBase}/iceservers`, {
// 				method: 'GET',
// 				headers: {
// 					authorization: `Bearer ${userAuthToken}`,
// 				},
// 			});
// 			const parsedResponse = await iceserverReq.json();
// 			if (parsedResponse.success) {
// 				TURN_SERVERS = parsedResponse.iceServers;
// 			} else return FALLBACK_ICE_SERVERS;
// 		} catch {
// 			return FALLBACK_ICE_SERVERS;
// 		}
// 	}
// 	return TURN_SERVERS;
// };
// const APP_ID = '300446535';
// const APP_SECRET = 'YT4AnmBaS/NX:GDvk0tXvt2T46UTB9U9xUlf2648kB1mAp9zvY6GdCvI=';
// class CallStats {
// 	stats: any;
// 	sendTransport: Transport;
// 	recvTransport: Transport;
// 	roomURL: string;
// 	peerId: string;
// 	backend: any;
// 	public initialize(peerId: string, userDisplayName: string) {
// 		this.backend = new callstats();
// 		const localUser = {
// 			userName: userDisplayName || 'anonymous',
// 			aliasName: "759183-eed0-4432-b7ec-d36c28da3c44",
// 		};
// 		this.backend.initialize(
// 			APP_ID,
// 			APP_SECRET,
// 			localUser,
// 			(csStatus, csMsg) => {
// 				console.log(`Initializing Status: ${csStatus} msg: ${csMsg}`);
// 			},
// 			(stats) => {
// 			},
// 			{
// 				disablePrecalltest: false,
// 			},
// 		);
// 	}
// 	public setRoomName(roomName: string) {
// 		this.roomURL = roomName;
// 	}
// 	public configureSendTransport(sendTransport: Transport) {
// 		if (!this.backend) return;
// 		this.sendTransport = sendTransport;
// 		const fabricAttributes = {
// 			remoteEndpointType: this.backend.endpointType.server,
// 			fabricTransmissionDirection: this.backend.transmissionDirection.sendonly,
// 		};
// 		this.backend.addNewFabric(
// 			(this.sendTransport as any)._handler._pc,
// 			this.roomURL,
// 			this.backend.fabricUsage.multiplex,
// 			this.roomURL,
// 			fabricAttributes,
// 			(err, msg) => {
// 				// console.log(`Monitoring status: ${err} msg: ${msg}`);
// 			},
// 		);
// 	}
// 	public configureRecvTransport(recvTransport: Transport) {
// 		if (!this.backend) return;
// 		this.recvTransport = recvTransport;
// 		const fabricAttributes = {
// 			remoteEndpointType: this.backend.endpointType.server,
// 			fabricTransmissionDirection: this.backend.transmissionDirection.recvonly,
// 		};
// 		this.backend.addNewFabric(
// 			(this.recvTransport as any)._handler._pc,
// 			this.roomURL,
// 			this.backend.fabricUsage.multiplex,
// 			this.roomURL,
// 			fabricAttributes,
// 			(err, msg) => {
// 				// console.log(`Monitoring status: ${err} msg: ${msg}`);
// 			},
// 		);
// 	}
// 	private sendEvent(pc: RTCPeerConnection, event: any, eventData: any = {}) {
// 		if (!this.backend) return;
// 		this.backend.sendFabricEvent(
// 			pc,
// 			event,
// 			this.roomURL,
// 			eventData,
// 		);
// 	}
// 	public audioOff() {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.audioMute,
// 		);
// 	}
// 	public audioOn() {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.audioUnmute,
// 		);
// 	}
// 	public videoOff() {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.videoPause,
// 		);
// 	}
// 	public videoOn() {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.videoResume,
// 		);
// 	}
// 	public callEnded() {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.fabricTerminated,
// 		);
// 	}
// 	public screenShareStart(ssrc: number) {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.screenShareStart,
// 			{
// 				ssrc,
// 			},
// 		);
// 	}
// 	public screenShareStop(ssrc: number) {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.screenShareStop,
// 			{
// 				ssrc,
// 			},
// 		);
// 	}
// 	public activeSpeaker(peerId: string) {
// 		if (!this.backend || !this.sendTransport) return;
// 		if (peerId !== this.peerId) {
// 			return;
// 		}
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.dominantSpeaker,
// 		);
// 	}
// 	public switchDevice(deviceData: { deviceList: any[] }) {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.sendEvent(
// 			(this.sendTransport as any)._handler._pc,
// 			this.backend.fabricEvent.activeDeviceList,
// 			deviceData,
// 		);
// 	}
// 	public addSendStream(ssrc: number) {
// 		if (!this.backend || !this.sendTransport) return;
// 		this.backend.associateMstWithUserID(
// 			(this.sendTransport as any)._handler._pc,
// 			this.peerId,
// 			this.roomURL,
// 			ssrc,
// 			'label',
// 		);
// 	}
// 	public addRecvStream(peerId: string, ssrc: number) {
// 		if (!this.backend || !this.recvTransport) return;
// 		this.backend.associateMstWithUserID(
// 			(this.recvTransport as any)._handler._pc,
// 			peerId,
// 			this.roomURL,
// 			ssrc,
// 			'label',
// 		);
// 	}
// 	public async startPreCallTest(interval?: number) {
// 		if (!this.backend) return;
// 		const ICE_SERVERS = await getICEServers();
// 		this.backend.startPrecallTests(ICE_SERVERS, interval || 30);
// 	}
// 	// eslint-disable-next-line class-methods-use-this
// 	public onPreCallTestResults(fx: Function) {
// 		if (!this.backend) return;
// 		this.backend.on('preCallTestResults', fx);
// 	}
// }
// const stats = new CallStats();
// export default stats;
//# sourceMappingURL=callStats.js.map