voice-react-native-sdk 1.6.2-fork.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/LICENSE +206 -0
  2. package/README.md +179 -0
  3. package/android/build.gradle +113 -0
  4. package/android/gradle.properties +29 -0
  5. package/android/src/main/AndroidManifest.xml +30 -0
  6. package/android/src/main/java/com/twiliovoicereactnative/AudioSwitchManager.java +141 -0
  7. package/android/src/main/java/com/twiliovoicereactnative/CallListenerProxy.java +186 -0
  8. package/android/src/main/java/com/twiliovoicereactnative/CallMessageListenerProxy.java +103 -0
  9. package/android/src/main/java/com/twiliovoicereactnative/CallRecordDatabase.java +183 -0
  10. package/android/src/main/java/com/twiliovoicereactnative/CommonConstants.java +195 -0
  11. package/android/src/main/java/com/twiliovoicereactnative/ConfigurationProperties.java +41 -0
  12. package/android/src/main/java/com/twiliovoicereactnative/Constants.java +23 -0
  13. package/android/src/main/java/com/twiliovoicereactnative/ExpoActivityLifecycleListener.java +27 -0
  14. package/android/src/main/java/com/twiliovoicereactnative/ExpoApplicationLifecycleListener.java +14 -0
  15. package/android/src/main/java/com/twiliovoicereactnative/ExpoModule.kt +36 -0
  16. package/android/src/main/java/com/twiliovoicereactnative/ExpoPackage.java +20 -0
  17. package/android/src/main/java/com/twiliovoicereactnative/JSEventEmitter.java +98 -0
  18. package/android/src/main/java/com/twiliovoicereactnative/MediaPlayerManager.java +58 -0
  19. package/android/src/main/java/com/twiliovoicereactnative/NotificationUtility.java +363 -0
  20. package/android/src/main/java/com/twiliovoicereactnative/ReactNativeArgumentsSerializer.java +276 -0
  21. package/android/src/main/java/com/twiliovoicereactnative/SDKLog.java +74 -0
  22. package/android/src/main/java/com/twiliovoicereactnative/StatsListenerProxy.java +178 -0
  23. package/android/src/main/java/com/twiliovoicereactnative/TwilioVoiceReactNativeModule.java +778 -0
  24. package/android/src/main/java/com/twiliovoicereactnative/TwilioVoiceReactNativePackage.java +28 -0
  25. package/android/src/main/java/com/twiliovoicereactnative/VoiceActivityProxy.java +101 -0
  26. package/android/src/main/java/com/twiliovoicereactnative/VoiceApplicationProxy.java +133 -0
  27. package/android/src/main/java/com/twiliovoicereactnative/VoiceFirebaseMessagingService.java +88 -0
  28. package/android/src/main/java/com/twiliovoicereactnative/VoiceService.java +403 -0
  29. package/android/src/main/res/drawable/answered_call_small_icon.png +0 -0
  30. package/android/src/main/res/drawable/ic_launcher_round.png +0 -0
  31. package/android/src/main/res/drawable/ic_launcher_sdk.png +0 -0
  32. package/android/src/main/res/drawable/incoming_call_small_icon.png +0 -0
  33. package/android/src/main/res/drawable/outgoing_call_small_icon.png +0 -0
  34. package/android/src/main/res/raw/disconnect.wav +0 -0
  35. package/android/src/main/res/raw/incoming.wav +0 -0
  36. package/android/src/main/res/raw/outgoing.wav +0 -0
  37. package/android/src/main/res/raw/ringtone.wav +0 -0
  38. package/android/src/main/res/raw/silent.wav +0 -0
  39. package/android/src/main/res/values/colors.xml +11 -0
  40. package/android/src/main/res/values/config.xml +5 -0
  41. package/android/src/main/res/values/dimens.xml +7 -0
  42. package/android/src/main/res/values/strings.xml +25 -0
  43. package/android/src/main/res/values/styles.xml +10 -0
  44. package/android/src/main/res/values-night/colors.xml +11 -0
  45. package/expo-config-plugin/android.js +191 -0
  46. package/expo-config-plugin/ios.js +22 -0
  47. package/expo-module.config.json +6 -0
  48. package/ios/TwilioVoicePushRegistry.h +19 -0
  49. package/ios/TwilioVoicePushRegistry.m +72 -0
  50. package/ios/TwilioVoiceReactNative+CallInvite.m +56 -0
  51. package/ios/TwilioVoiceReactNative+CallKit.m +533 -0
  52. package/ios/TwilioVoiceReactNative+CallMessage.m +81 -0
  53. package/ios/TwilioVoiceReactNative.h +74 -0
  54. package/ios/TwilioVoiceReactNative.m +1046 -0
  55. package/ios/TwilioVoiceReactNative.xcodeproj/project.pbxproj +328 -0
  56. package/ios/TwilioVoiceReactNativeConstants.h +200 -0
  57. package/ios/Utilities/TwilioVoiceStatsReport.h +175 -0
  58. package/lib/commonjs/AudioDevice.js +101 -0
  59. package/lib/commonjs/AudioDevice.js.map +1 -0
  60. package/lib/commonjs/Call.js +765 -0
  61. package/lib/commonjs/Call.js.map +1 -0
  62. package/lib/commonjs/CallInvite.js +452 -0
  63. package/lib/commonjs/CallInvite.js.map +1 -0
  64. package/lib/commonjs/CallMessage/CallMessage.js +54 -0
  65. package/lib/commonjs/CallMessage/CallMessage.js.map +1 -0
  66. package/lib/commonjs/CallMessage/IncomingCallMessage.js +120 -0
  67. package/lib/commonjs/CallMessage/IncomingCallMessage.js.map +1 -0
  68. package/lib/commonjs/CallMessage/OutgoingCallMessage.js +148 -0
  69. package/lib/commonjs/CallMessage/OutgoingCallMessage.js.map +1 -0
  70. package/lib/commonjs/ExpoModule.js +69 -0
  71. package/lib/commonjs/ExpoModule.js.map +1 -0
  72. package/lib/commonjs/Voice.js +611 -0
  73. package/lib/commonjs/Voice.js.map +1 -0
  74. package/lib/commonjs/common.js +26 -0
  75. package/lib/commonjs/common.js.map +1 -0
  76. package/lib/commonjs/constants.js +158 -0
  77. package/lib/commonjs/constants.js.map +1 -0
  78. package/lib/commonjs/error/InvalidArgumentError.js +32 -0
  79. package/lib/commonjs/error/InvalidArgumentError.js.map +1 -0
  80. package/lib/commonjs/error/InvalidStateError.js +33 -0
  81. package/lib/commonjs/error/InvalidStateError.js.map +1 -0
  82. package/lib/commonjs/error/TwilioError.js +38 -0
  83. package/lib/commonjs/error/TwilioError.js.map +1 -0
  84. package/lib/commonjs/error/UnsupportedPlatformError.js +33 -0
  85. package/lib/commonjs/error/UnsupportedPlatformError.js.map +1 -0
  86. package/lib/commonjs/error/generated.js +2343 -0
  87. package/lib/commonjs/error/generated.js.map +1 -0
  88. package/lib/commonjs/error/index.js +112 -0
  89. package/lib/commonjs/error/index.js.map +1 -0
  90. package/lib/commonjs/error/utility.js +37 -0
  91. package/lib/commonjs/error/utility.js.map +1 -0
  92. package/lib/commonjs/index.js +95 -0
  93. package/lib/commonjs/index.js.map +1 -0
  94. package/lib/commonjs/type/AudioDevice.js +6 -0
  95. package/lib/commonjs/type/AudioDevice.js.map +1 -0
  96. package/lib/commonjs/type/Call.js +6 -0
  97. package/lib/commonjs/type/Call.js.map +1 -0
  98. package/lib/commonjs/type/CallInvite.js +6 -0
  99. package/lib/commonjs/type/CallInvite.js.map +1 -0
  100. package/lib/commonjs/type/CallKit.js +30 -0
  101. package/lib/commonjs/type/CallKit.js.map +1 -0
  102. package/lib/commonjs/type/CallMessage.js +6 -0
  103. package/lib/commonjs/type/CallMessage.js.map +1 -0
  104. package/lib/commonjs/type/Error.js +6 -0
  105. package/lib/commonjs/type/Error.js.map +1 -0
  106. package/lib/commonjs/type/NativeModule.js +6 -0
  107. package/lib/commonjs/type/NativeModule.js.map +1 -0
  108. package/lib/commonjs/type/RTCStats.js +29 -0
  109. package/lib/commonjs/type/RTCStats.js.map +1 -0
  110. package/lib/commonjs/type/Voice.js +6 -0
  111. package/lib/commonjs/type/Voice.js.map +1 -0
  112. package/lib/commonjs/type/common.js +2 -0
  113. package/lib/commonjs/type/common.js.map +1 -0
  114. package/lib/module/AudioDevice.js +97 -0
  115. package/lib/module/AudioDevice.js.map +1 -0
  116. package/lib/module/Call.js +766 -0
  117. package/lib/module/Call.js.map +1 -0
  118. package/lib/module/CallInvite.js +450 -0
  119. package/lib/module/CallInvite.js.map +1 -0
  120. package/lib/module/CallMessage/CallMessage.js +51 -0
  121. package/lib/module/CallMessage/CallMessage.js.map +1 -0
  122. package/lib/module/CallMessage/IncomingCallMessage.js +116 -0
  123. package/lib/module/CallMessage/IncomingCallMessage.js.map +1 -0
  124. package/lib/module/CallMessage/OutgoingCallMessage.js +154 -0
  125. package/lib/module/CallMessage/OutgoingCallMessage.js.map +1 -0
  126. package/lib/module/ExpoModule.js +58 -0
  127. package/lib/module/ExpoModule.js.map +1 -0
  128. package/lib/module/Voice.js +598 -0
  129. package/lib/module/Voice.js.map +1 -0
  130. package/lib/module/common.js +11 -0
  131. package/lib/module/common.js.map +1 -0
  132. package/lib/module/constants.js +151 -0
  133. package/lib/module/constants.js.map +1 -0
  134. package/lib/module/error/InvalidArgumentError.js +23 -0
  135. package/lib/module/error/InvalidArgumentError.js.map +1 -0
  136. package/lib/module/error/InvalidStateError.js +24 -0
  137. package/lib/module/error/InvalidStateError.js.map +1 -0
  138. package/lib/module/error/TwilioError.js +29 -0
  139. package/lib/module/error/TwilioError.js.map +1 -0
  140. package/lib/module/error/UnsupportedPlatformError.js +24 -0
  141. package/lib/module/error/UnsupportedPlatformError.js.map +1 -0
  142. package/lib/module/error/generated.js +2315 -0
  143. package/lib/module/error/generated.js.map +1 -0
  144. package/lib/module/error/index.js +6 -0
  145. package/lib/module/error/index.js.map +1 -0
  146. package/lib/module/error/utility.js +27 -0
  147. package/lib/module/error/utility.js.map +1 -0
  148. package/lib/module/index.js +23 -0
  149. package/lib/module/index.js.map +1 -0
  150. package/lib/module/type/AudioDevice.js +2 -0
  151. package/lib/module/type/AudioDevice.js.map +1 -0
  152. package/lib/module/type/Call.js +2 -0
  153. package/lib/module/type/Call.js.map +1 -0
  154. package/lib/module/type/CallInvite.js +2 -0
  155. package/lib/module/type/CallInvite.js.map +1 -0
  156. package/lib/module/type/CallKit.js +22 -0
  157. package/lib/module/type/CallKit.js.map +1 -0
  158. package/lib/module/type/CallMessage.js +2 -0
  159. package/lib/module/type/CallMessage.js.map +1 -0
  160. package/lib/module/type/Error.js +2 -0
  161. package/lib/module/type/Error.js.map +1 -0
  162. package/lib/module/type/NativeModule.js +2 -0
  163. package/lib/module/type/NativeModule.js.map +1 -0
  164. package/lib/module/type/RTCStats.js +21 -0
  165. package/lib/module/type/RTCStats.js.map +1 -0
  166. package/lib/module/type/Voice.js +2 -0
  167. package/lib/module/type/Voice.js.map +1 -0
  168. package/lib/module/type/common.js +2 -0
  169. package/lib/module/type/common.js.map +1 -0
  170. package/lib/typescript/AudioDevice.d.ts +74 -0
  171. package/lib/typescript/Call.d.ts +874 -0
  172. package/lib/typescript/CallInvite.d.ts +484 -0
  173. package/lib/typescript/CallMessage/CallMessage.d.ts +53 -0
  174. package/lib/typescript/CallMessage/IncomingCallMessage.d.ts +75 -0
  175. package/lib/typescript/CallMessage/OutgoingCallMessage.d.ts +198 -0
  176. package/lib/typescript/ExpoModule.d.ts +13 -0
  177. package/lib/typescript/Voice.d.ts +620 -0
  178. package/lib/typescript/common.d.ts +11 -0
  179. package/lib/typescript/constants.d.ts +148 -0
  180. package/lib/typescript/error/InvalidArgumentError.d.ts +11 -0
  181. package/lib/typescript/error/InvalidStateError.d.ts +12 -0
  182. package/lib/typescript/error/TwilioError.d.ts +14 -0
  183. package/lib/typescript/error/UnsupportedPlatformError.d.ts +12 -0
  184. package/lib/typescript/error/generated.d.ts +1558 -0
  185. package/lib/typescript/error/index.d.ts +5 -0
  186. package/lib/typescript/error/utility.d.ts +12 -0
  187. package/lib/typescript/index.d.ts +18 -0
  188. package/lib/typescript/type/AudioDevice.d.ts +15 -0
  189. package/lib/typescript/type/Call.d.ts +59 -0
  190. package/lib/typescript/type/CallInvite.d.ts +40 -0
  191. package/lib/typescript/type/CallKit.d.ts +60 -0
  192. package/lib/typescript/type/CallMessage.d.ts +20 -0
  193. package/lib/typescript/type/Error.d.ts +9 -0
  194. package/lib/typescript/type/NativeModule.d.ts +59 -0
  195. package/lib/typescript/type/RTCStats.d.ts +91 -0
  196. package/lib/typescript/type/Voice.d.ts +16 -0
  197. package/lib/typescript/type/common.d.ts +15 -0
  198. package/package.json +167 -0
  199. package/src/AudioDevice.tsx +88 -0
  200. package/src/Call.tsx +1343 -0
  201. package/src/CallInvite.tsx +757 -0
  202. package/src/CallMessage/CallMessage.ts +83 -0
  203. package/src/CallMessage/IncomingCallMessage.ts +104 -0
  204. package/src/CallMessage/OutgoingCallMessage.ts +308 -0
  205. package/src/ExpoModule.ts +59 -0
  206. package/src/Voice.tsx +1010 -0
  207. package/src/common.ts +16 -0
  208. package/src/constants.ts +193 -0
  209. package/src/error/InvalidArgumentError.ts +19 -0
  210. package/src/error/InvalidStateError.ts +19 -0
  211. package/src/error/TwilioError.ts +22 -0
  212. package/src/error/UnsupportedPlatformError.ts +19 -0
  213. package/src/error/generated.ts +2277 -0
  214. package/src/error/index.ts +18 -0
  215. package/src/error/utility.ts +36 -0
  216. package/src/index.tsx +24 -0
  217. package/src/type/AudioDevice.ts +18 -0
  218. package/src/type/Call.ts +102 -0
  219. package/src/type/CallInvite.ts +59 -0
  220. package/src/type/CallKit.ts +61 -0
  221. package/src/type/CallMessage.ts +31 -0
  222. package/src/type/Error.ts +11 -0
  223. package/src/type/NativeModule.ts +93 -0
  224. package/src/type/RTCStats.ts +99 -0
  225. package/src/type/Voice.ts +31 -0
  226. package/src/type/common.ts +16 -0
  227. package/twilio-voice-react-native.podspec +22 -0
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RTCStats = void 0;
7
+
8
+ /**
9
+ * Types related to WebRTC stats.
10
+ *
11
+ * @public
12
+ */
13
+ let RTCStats;
14
+ exports.RTCStats = RTCStats;
15
+
16
+ (function (_RTCStats) {
17
+ let IceCandidatePairState;
18
+
19
+ (function (IceCandidatePairState) {
20
+ IceCandidatePairState["STATE_FAILED"] = "STATE_FAILED";
21
+ IceCandidatePairState["STATE_FROZEN"] = "STATE_FROZEN";
22
+ IceCandidatePairState["STATE_IN_PROGRESS"] = "STATE_IN_PROGRESS";
23
+ IceCandidatePairState["STATE_SUCCEEDED"] = "STATE_SUCCEEDED";
24
+ IceCandidatePairState["STATE_WAITING"] = "STATE_WAITING";
25
+ })(IceCandidatePairState || (IceCandidatePairState = {}));
26
+
27
+ _RTCStats.IceCandidatePairState = IceCandidatePairState;
28
+ })(RTCStats || (exports.RTCStats = RTCStats = {}));
29
+ //# sourceMappingURL=RTCStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["RTCStats.ts"],"names":["IceCandidatePairState","RTCStats"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;;;;;MAEcA,qB;;aAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;AAAAA,IAAAA,qB;KAAAA,qB,KAAAA,qB;;;GADGC,Q,wBAAAA,Q","sourcesContent":["/**\n * Types related to WebRTC stats.\n *\n * @public\n */\nexport namespace RTCStats {\n export enum IceCandidatePairState {\n STATE_FAILED = 'STATE_FAILED',\n STATE_FROZEN = 'STATE_FROZEN',\n STATE_IN_PROGRESS = 'STATE_IN_PROGRESS',\n STATE_SUCCEEDED = 'STATE_SUCCEEDED',\n STATE_WAITING = 'STATE_WAITING',\n }\n\n export interface IceCandidatePairStats {\n activeCandidatePair: boolean;\n availableIncomingBitrate: number;\n availableOutgoingBitrate: number;\n bytesReceived: number;\n bytesSent: number;\n consentRequestsReceived: number;\n consentRequestsSent: number;\n consentResponsesReceived: number;\n consentResponsesSent: number;\n currentRoundTripTime: number;\n localCandidateId: string;\n localCandidateIp: string;\n nominated: boolean;\n priority: number;\n readable: boolean;\n relayProtocol: string;\n remoteCandidateId: string;\n remoteCandidateIp: string;\n requestsReceieved: number;\n requestsSent: number;\n responsesRecieved: number;\n responsesSent: number;\n retransmissionsReceived: number;\n retransmissionsSent: number;\n state: IceCandidatePairState;\n totalRoundTripTime: number;\n transportId: string;\n writeable: boolean;\n }\n\n export interface IceCandidateStats {\n candidateType: string;\n deleted: boolean;\n ip: string;\n isRemote: boolean;\n port: number;\n priority: number;\n protocol: string;\n transportId: string;\n url: string;\n }\n\n export interface BaseTrackStats {\n codec: string;\n packetsLost: number;\n ssrc: string;\n timestamp: number;\n trackId: string;\n }\n\n export interface LocalTrackStats extends BaseTrackStats {\n bytesSent: number;\n packetsSent: number;\n roundTripTime: number;\n }\n\n export interface LocalAudioTrackStats extends LocalTrackStats {\n audioLevel: number;\n jitter: number;\n }\n\n export interface RemoteTrackStats extends BaseTrackStats {\n bytesRecieved: number;\n packetsReceived: number;\n }\n\n export interface RemoteAudioTrackStats extends RemoteTrackStats {\n audioLevel: number;\n jitter: number;\n mos: number;\n }\n\n /**\n * WebRTC stats report. Contains diagnostics information about\n * `RTCPeerConnection`s and summarizes data for an ongoing call.\n */\n export interface StatsReport {\n iceCandidatePairStats: IceCandidatePairStats[];\n iceCandidateStats: IceCandidateStats[];\n localAudioTrackStats: LocalAudioTrackStats[];\n peerConnectionId: string;\n remoteAudioTrackStats: RemoteAudioTrackStats[];\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=Voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,97 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ /**
4
+ * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio
5
+ * license.
6
+ *
7
+ * See LICENSE in the project root for license information.
8
+ */
9
+ import { NativeModule } from './common';
10
+
11
+ /**
12
+ * Describes audio devices as reported by the native layer and allows the
13
+ * native selection of the described audio device.
14
+ *
15
+ * @remarks
16
+ * To fetch a list of available audio devices and the currently selected audio
17
+ * device, see {@link (Voice:class).getAudioDevices}.
18
+ *
19
+ * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for
20
+ * types used by this class.
21
+ *
22
+ * @public
23
+ */
24
+ export class AudioDevice {
25
+ /**
26
+ * The native-UUID of this object. This is generated by the native layer and
27
+ * is used to associate functionality between the JS and native layers.
28
+ *
29
+ * @internal
30
+ */
31
+
32
+ /**
33
+ * The type of the audio device.
34
+ */
35
+
36
+ /**
37
+ * The name of the audio device.
38
+ */
39
+
40
+ /**
41
+ * Audio device class constructor.
42
+ * @param audioDeviceInformation - A record describing an audio device.
43
+ *
44
+ * @internal
45
+ */
46
+ constructor({
47
+ uuid,
48
+ type,
49
+ name
50
+ }) {
51
+ _defineProperty(this, "uuid", void 0);
52
+
53
+ _defineProperty(this, "type", void 0);
54
+
55
+ _defineProperty(this, "name", void 0);
56
+
57
+ this.uuid = uuid;
58
+ this.type = type;
59
+ this.name = name;
60
+ }
61
+ /**
62
+ * Calling this method will select this audio device as the active audio
63
+ * device.
64
+ * @returns
65
+ * A `Promise` that
66
+ * - Resolves with `void` when the audio device has been successfully
67
+ * selected as the active audio device.
68
+ * - Rejects if the audio device cannot be selected.
69
+ */
70
+
71
+
72
+ select() {
73
+ return NativeModule.voice_selectAudioDevice(this.uuid);
74
+ }
75
+
76
+ }
77
+ /**
78
+ * Contains interfaces and enumerations associated with audio devices.
79
+ *
80
+ * @remarks
81
+ * - See also the {@link (AudioDevice:class) | AudioDevice class}.
82
+ *
83
+ * @public
84
+ */
85
+
86
+ (function (_AudioDevice) {
87
+ let Type;
88
+
89
+ (function (Type) {
90
+ Type["Earpiece"] = "earpiece";
91
+ Type["Speaker"] = "speaker";
92
+ Type["Bluetooth"] = "bluetooth";
93
+ })(Type || (Type = {}));
94
+
95
+ _AudioDevice.Type = Type;
96
+ })(AudioDevice || (AudioDevice = {}));
97
+ //# sourceMappingURL=AudioDevice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["AudioDevice.tsx"],"names":["NativeModule","AudioDevice","constructor","uuid","type","name","select","voice_selectAudioDevice","Type"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,YAAT,QAA6B,UAA7B;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAN,CAAkB;AACvB;AACF;AACA;AACA;AACA;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA;AAAd,GAAD,EAA8C;AAAA;;AAAA;;AAAA;;AACvD,SAAKF,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEC,EAAAA,MAAM,GAAkB;AACtB,WAAON,YAAY,CAACO,uBAAb,CAAqC,KAAKJ,IAA1C,CAAP;AACD;;AA1CsB;AA6CzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;MAMcK,I;;aAAAA,I;AAAAA,IAAAA,I;AAAAA,IAAAA,I;AAAAA,IAAAA,I;KAAAA,I,KAAAA,I;;;GALGP,W,KAAAA,W","sourcesContent":["/**\n * Copyright © 2022 Twilio, Inc. All rights reserved. Licensed under the Twilio\n * license.\n *\n * See LICENSE in the project root for license information.\n */\n\nimport { NativeModule } from './common';\nimport type { NativeAudioDeviceInfo } from './type/AudioDevice';\nimport type { Uuid } from './type/common';\n\n/**\n * Describes audio devices as reported by the native layer and allows the\n * native selection of the described audio device.\n *\n * @remarks\n * To fetch a list of available audio devices and the currently selected audio\n * device, see {@link (Voice:class).getAudioDevices}.\n *\n * - See also the {@link (AudioDevice:namespace) | AudioDevice namespace} for\n * types used by this class.\n *\n * @public\n */\nexport class AudioDevice {\n /**\n * The native-UUID of this object. This is generated by the native layer and\n * is used to associate functionality between the JS and native layers.\n *\n * @internal\n */\n uuid: Uuid;\n\n /**\n * The type of the audio device.\n */\n type: AudioDevice.Type;\n\n /**\n * The name of the audio device.\n */\n name: string;\n\n /**\n * Audio device class constructor.\n * @param audioDeviceInformation - A record describing an audio device.\n *\n * @internal\n */\n constructor({ uuid, type, name }: NativeAudioDeviceInfo) {\n this.uuid = uuid;\n this.type = type;\n this.name = name;\n }\n\n /**\n * Calling this method will select this audio device as the active audio\n * device.\n * @returns\n * A `Promise` that\n * - Resolves with `void` when the audio device has been successfully\n * selected as the active audio device.\n * - Rejects if the audio device cannot be selected.\n */\n select(): Promise<void> {\n return NativeModule.voice_selectAudioDevice(this.uuid);\n }\n}\n\n/**\n * Contains interfaces and enumerations associated with audio devices.\n *\n * @remarks\n * - See also the {@link (AudioDevice:class) | AudioDevice class}.\n *\n * @public\n */\nexport namespace AudioDevice {\n /**\n * Audio device type enumeration. Describes all possible audio device types as\n * reportable by the native layer.\n */\n export enum Type {\n Earpiece = 'earpiece',\n Speaker = 'speaker',\n Bluetooth = 'bluetooth',\n }\n}\n"]}