sarvam-conv-ai-sdk 0.0.6 → 0.0.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AA2BjB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAgB;gBAEjB,OAAO,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,iBAAiB,CAAC;QAC1B,cAAc,CAAC,EAAE,mBAAmB,CAAC;QACrC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,kBAAkB,GAAG,iBAAiB,KACxC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB;IA4CD;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,YAAY,CAAC,WAAW,EAAE,MAAM,EAEnC;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;OAEG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxD;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C;;OAEG;IACH,YAAY,IAAI,OAAO,GAAG,MAAM;IAIhC;;OAEG;IACH,YAAY,IAAI,IAAI,IAAI;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE;IAI7C;;OAEG;IACH,WAAW,IAAI,IAAI,IAAI;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE;CAG5C;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,kBAAkB,GAAG,iBAAiB,KACxC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACA,OAAO,CAAC,iBAAiB,CAAC,CAgB5B"}
@@ -8,18 +8,42 @@
8
8
  import { VoiceAgent } from "./modules/voice-agent";
9
9
  import { TextAgent } from "./modules/text-agent";
10
10
  import { InteractionType } from "./types";
11
+ /**
12
+ * Create audio interface based on platform
13
+ */
14
+ function createAudioInterfaceForPlatform(platform) {
15
+ if (platform === "react-native") {
16
+ try {
17
+ // Dynamically import React Native audio interface
18
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
19
+ const { RNAudioInterface } = require("./interfaces/react-native");
20
+ console.log("ConversationAgent: Creating RNAudioInterface for react-native platform");
21
+ return new RNAudioInterface();
22
+ }
23
+ catch (error) {
24
+ console.error("Failed to create RNAudioInterface:", error);
25
+ throw new Error("Failed to create React Native audio interface. " +
26
+ "Make sure react-native-audio-api is installed. " +
27
+ `Error: ${error instanceof Error ? error.message : String(error)}`);
28
+ }
29
+ }
30
+ return undefined;
31
+ }
11
32
  export class ConversationAgent {
12
33
  agent;
13
34
  constructor(options) {
14
35
  const interactionType = options.config.interaction_type;
15
36
  const baseUrl = options.baseUrl || "https://apps.sarvam.ai/api/app-runtime/";
37
+ // Auto-create audio interface for react-native platform if not provided
38
+ const audioInterface = options.audioInterface ||
39
+ (interactionType === InteractionType.CALL ? createAudioInterfaceForPlatform(options.platform) : undefined);
16
40
  // Factory logic: decide which agent to instantiate based on interaction_type
17
41
  if (interactionType === InteractionType.CALL) {
18
42
  // Create VoiceAgent for voice/call interactions
19
43
  this.agent = new VoiceAgent({
20
44
  apiKey: options.apiKey,
21
45
  config: options.config,
22
- audioInterface: options.audioInterface,
46
+ audioInterface: audioInterface,
23
47
  audioCallback: options.audioCallback,
24
48
  eventCallback: options.eventCallback,
25
49
  startCallback: options.startCallback,
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAuB,eAAe,EAAY,MAAM,SAAS,CAAC;AAWzE,MAAM,OAAO,iBAAiB;IACpB,KAAK,CAAgB;IAE7B,YAAY,OAaX;QACC,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACxD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,yCAAyC,CAAC;QAE/D,6EAA6E;QAC7E,IAAI,eAAe,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YAC7C,gDAAgD;YAChD,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO;aACR,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,eAAe,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YACpD,8CAA8C;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO;aACR,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,iCAAiC,eAAe,IAAI;gBAClD,wBAAwB,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IACjC,CAAC;IAED,IAAI,YAAY,CAAC,WAAmB;QAClC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,WAAW,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAgB;QACnC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,SAAqB;QACnC,IAAI,IAAI,CAAC,KAAK,YAAY,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,KAAK,YAAY,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,YAAY,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,YAAY,SAAS,CAAC;IACzC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAyB,EACzB,MAAc,EACd,OAWC;IAED,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC;QAClC,MAAM;QACN,MAAM;QACN,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;KAC5B,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
@@ -2,65 +2,45 @@
2
2
  * React Native audio interface implementation for Sarvam Conversational AI SDK.
3
3
  *
4
4
  * This interface provides audio input/output capabilities for React Native applications
5
- * using native audio libraries.
5
+ * using react-native-audio-api for both microphone capture and audio playback.
6
6
  *
7
- * Required peer dependencies for bare React Native:
8
- * - react-native-audio-recorder-player
9
- * - react-native-fs
10
- * - react-native-sound
7
+ * Required peer dependency:
8
+ * - react-native-audio-api (requires React Native 0.75+)
11
9
  *
12
10
  * Install with:
13
- * npm install react-native-audio-recorder-player react-native-fs react-native-sound
11
+ * npm install react-native-audio-api
14
12
  *
15
13
  * For iOS, also run: cd ios && pod install
16
14
  */
17
15
  import { AsyncAudioInterface, AudioData } from "../types";
18
16
  /**
19
- * React Native Audio Interface for capturing microphone input and playing audio output.
20
- * Uses react-native-audio-recorder-player for recording and react-native-sound for playback.
17
+ * React Native Audio Interface using react-native-audio-api.
18
+ * Provides real-time microphone capture and low-latency audio playback.
21
19
  *
22
20
  * Features:
23
- * - Microphone capture with configurable sample rate
24
- * - Audio buffering for smooth playback
25
- * - Playback with seamless chunk transitions
21
+ * - Real-time microphone capture with configurable sample rate
22
+ * - Low-latency audio playback using Web Audio API compatible interface
23
+ * - Seamless chunk scheduling for gap-free playback
26
24
  * - Interrupt support for stopping ongoing playback
27
25
  */
28
26
  export declare class RNAudioInterface implements AsyncAudioInterface {
29
- private audioRecorderPlayer;
30
- private sound;
31
- private nextSound;
32
- private nextSoundTempFile;
27
+ private audioContext;
28
+ private recorder;
33
29
  private inputCallback;
34
30
  private isRunning;
35
- private audioQueue;
36
- private isPlaying;
31
+ private nextPlaybackTime;
32
+ private playbackQueue;
33
+ private readonly BUFFER_THRESHOLD;
37
34
  private sampleRate;
38
- private recordingInterval;
39
- private tempAudioFiles;
40
- private isPreparingNext;
41
- private audioBuffer;
42
- private lastBufferTime;
43
- private bufferTimeout;
44
- private hasScheduledNext;
45
- private currentRecordingPath;
46
- private lastReadPosition;
47
- private AudioRecorderPlayerClass;
48
- private SoundClass;
49
- private RNFS;
50
- private Platform;
51
- private PermissionsAndroid;
52
- private readonly OVERLAP_MS;
53
- private readonly MIN_BUFFER_SIZE;
54
- private readonly BUFFER_FLUSH_DELAY_MS;
35
+ private bufferSize;
36
+ private AudioContextClass;
37
+ private AudioRecorderClass;
55
38
  /**
56
39
  * Create a new React Native audio interface
57
40
  * @param sampleRate - Target sample rate for audio capture (default: 16000 Hz)
41
+ * @param bufferSize - Buffer size for audio capture (default: 512)
58
42
  */
59
- constructor(sampleRate?: number);
60
- /**
61
- * Request audio recording permissions.
62
- */
63
- private requestPermissions;
43
+ constructor(sampleRate?: number, bufferSize?: number);
64
44
  /**
65
45
  * Start capturing audio from the microphone
66
46
  * @param inputCallback - Callback to receive audio chunks
@@ -70,9 +50,13 @@ export declare class RNAudioInterface implements AsyncAudioInterface {
70
50
  * Stop capturing audio and clean up resources
71
51
  */
72
52
  stop(): Promise<void>;
53
+ /**
54
+ * Convert Int16 PCM audio data to Float32 format
55
+ * Creates a fresh copy to avoid React Native Buffer pool issues
56
+ */
57
+ private int16ToFloat32;
73
58
  /**
74
59
  * Output audio to the speakers
75
- * Buffers small chunks together for smoother playback with reduced gaps.
76
60
  * @param audio - Audio data in 16-bit PCM mono format
77
61
  * @param sampleRate - Sample rate of the audio (default: 16000 Hz)
78
62
  */
@@ -81,53 +65,5 @@ export declare class RNAudioInterface implements AsyncAudioInterface {
81
65
  * Interrupt and stop all ongoing audio playback
82
66
  */
83
67
  interrupt(): void;
84
- /**
85
- * Flush buffered audio chunks to the playback queue.
86
- */
87
- private flushAudioBuffer;
88
- /**
89
- * Process the audio queue for playback with pre-loading for seamless transitions.
90
- */
91
- private processAudioQueue;
92
- /**
93
- * Play a sound file using react-native-sound.
94
- */
95
- private playSound;
96
- /**
97
- * Start the next prepared chunk (overlap technique).
98
- */
99
- private startNextChunk;
100
- /**
101
- * Pre-load the next audio chunk for seamless playback.
102
- */
103
- private prepareNextChunk;
104
- /**
105
- * Read audio file and extract PCM data.
106
- */
107
- private readAudioFile;
108
- /**
109
- * Convert base64 string to binary string.
110
- */
111
- private base64ToBinary;
112
- /**
113
- * Create a complete WAV file from PCM data.
114
- */
115
- private createWavFile;
116
- /**
117
- * Write a string to a DataView.
118
- */
119
- private writeString;
120
- /**
121
- * Convert ArrayBuffer to base64 string.
122
- */
123
- private arrayBufferToBase64;
124
- /**
125
- * Clean up a single temporary audio file.
126
- */
127
- private cleanupTempFile;
128
- /**
129
- * Clean up all temporary audio files.
130
- */
131
- private cleanupAllTempFiles;
132
68
  }
133
69
  //# sourceMappingURL=react-native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../src/interfaces/react-native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAa1D;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,aAAa,CAA8E;IACnG,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,kBAAkB,CAAM;IAGhC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAE5C;;;OAGG;gBACS,UAAU,GAAE,MAAc;IA0CtC;;OAEG;YACW,kBAAkB;IA+BhC;;;OAGG;IACG,KAAK,CACT,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC;IAsEhB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE3B;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCzE;;OAEG;IACH,SAAS,IAAI,IAAI;IAgDjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;YACW,iBAAiB;IAsD/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAqDjB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8CtB;;OAEG;YACW,gBAAgB;IAyD9B;;OAEG;YACW,aAAa;IAgC3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwCrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;YACW,eAAe;IAa7B;;OAEG;YACW,mBAAmB;CAalC"}
1
+ {"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../src/interfaces/react-native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM1D;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,aAAa,CAEL;IAChB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IACxC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,kBAAkB,CAAM;IAEhC;;;;OAIG;gBACS,UAAU,GAAE,MAAoB,EAAE,UAAU,GAAE,MAAoB;IAqB9E;;;OAGG;IACG,KAAK,CACT,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC;IA4DhB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DzE;;OAEG;IACH,SAAS,IAAI,IAAI;CAalB"}