@spatialwalk/avatarkit 1.0.0-beta.35 → 1.0.0-beta.37

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 (235) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +39 -8
  3. package/dist/{StreamingAudioPlayer-eWy8xl8G.js → StreamingAudioPlayer-gV0axCZe.js} +54 -7
  4. package/dist/admin/eslint.config.d.ts +2 -0
  5. package/dist/admin/generated/buf/validate/validate.d.ts +397 -0
  6. package/dist/admin/generated/common/v1/models.d.ts +29 -0
  7. package/dist/admin/generated/console/v1/admin_app.d.ts +77 -0
  8. package/dist/admin/generated/console/v1/admin_auth.d.ts +69 -0
  9. package/dist/admin/generated/console/v1/admin_config.d.ts +157 -0
  10. package/dist/admin/generated/console/v1/admin_user.d.ts +84 -0
  11. package/dist/admin/generated/console/v1/admin_user_character.d.ts +107 -0
  12. package/dist/admin/generated/console/v1/app.d.ts +116 -0
  13. package/dist/admin/generated/console/v1/auth.d.ts +199 -0
  14. package/dist/admin/generated/console/v1/character.d.ts +74 -0
  15. package/dist/admin/generated/console/v1/collection_task.d.ts +183 -0
  16. package/dist/admin/generated/console/v1/console.d.ts +163 -0
  17. package/dist/admin/generated/console/v1/instance_management.d.ts +156 -0
  18. package/dist/admin/generated/console/v1/material.d.ts +180 -0
  19. package/dist/admin/generated/console/v1/pipetemplate.d.ts +106 -0
  20. package/dist/admin/generated/console/v1/task.d.ts +292 -0
  21. package/dist/admin/generated/console/v2/async_processing.d.ts +85 -0
  22. package/dist/admin/generated/google/api/annotations.d.ts +1 -0
  23. package/dist/admin/generated/google/api/http.d.ts +47 -0
  24. package/dist/admin/generated/google/protobuf/any.d.ts +27 -0
  25. package/dist/admin/generated/google/protobuf/descriptor.d.ts +552 -0
  26. package/dist/admin/generated/google/protobuf/duration.d.ts +27 -0
  27. package/dist/admin/generated/google/protobuf/empty.d.ts +25 -0
  28. package/dist/admin/generated/google/protobuf/struct.d.ts +74 -0
  29. package/dist/admin/generated/google/protobuf/timestamp.d.ts +27 -0
  30. package/dist/admin/generated/jsonapi/v1/base.d.ts +108 -0
  31. package/dist/admin/generated/platform/v1/asset_groups.d.ts +204 -0
  32. package/dist/admin/generated/platform/v1/assets.d.ts +141 -0
  33. package/dist/admin/generated/platform/v1/auth.d.ts +79 -0
  34. package/dist/admin/generated/platform/v1/character.d.ts +382 -0
  35. package/dist/admin/generated/platform/v1/character_template.d.ts +124 -0
  36. package/dist/admin/generated/platform/v1/christmas_characters.d.ts +118 -0
  37. package/dist/admin/generated/platform/v1/collection_task.d.ts +60 -0
  38. package/dist/admin/generated/platform/v1/config.d.ts +130 -0
  39. package/dist/admin/generated/platform/v1/configkv.d.ts +105 -0
  40. package/dist/admin/generated/platform/v1/console.d.ts +29 -0
  41. package/dist/admin/generated/platform/v1/instance_management.d.ts +156 -0
  42. package/dist/admin/generated/platform/v1/joi_model_apply.d.ts +100 -0
  43. package/dist/admin/generated/platform/v1/material.d.ts +29 -0
  44. package/dist/admin/generated/platform/v1/model_evaluation.d.ts +100 -0
  45. package/dist/admin/generated/platform/v1/oss.d.ts +53 -0
  46. package/dist/admin/generated/platform/v1/pipetemplate.d.ts +106 -0
  47. package/dist/admin/generated/platform/v1/provider.d.ts +141 -0
  48. package/dist/admin/generated/platform/v1/redeem.d.ts +83 -0
  49. package/dist/admin/generated/platform/v1/sms_send_log.d.ts +95 -0
  50. package/dist/admin/generated/platform/v1/task.d.ts +39 -0
  51. package/dist/admin/generated/platform/v1/user.d.ts +142 -0
  52. package/dist/admin/generated/platform/v1/voice.d.ts +141 -0
  53. package/dist/admin/generated/realtime/v1/auth.d.ts +77 -0
  54. package/dist/admin/generated/realtime/v1/customized.d.ts +60 -0
  55. package/dist/admin/generated/realtime/v1/messages.d.ts +156 -0
  56. package/dist/admin/generated/realtime/v1/realtime.d.ts +67 -0
  57. package/dist/admin/generated/realtime/v1/redeem.d.ts +44 -0
  58. package/dist/admin/generated/realtime/v1/user.d.ts +150 -0
  59. package/dist/admin/generated/realtime/v2/auth.d.ts +68 -0
  60. package/dist/admin/generated/realtime/v2/callback.d.ts +56 -0
  61. package/dist/admin/generated/realtime/v2/joi_avatar.d.ts +204 -0
  62. package/dist/admin/generated/realtime/v2/model_apply.d.ts +138 -0
  63. package/dist/admin/generated/realtime/v2/realtime.d.ts +70 -0
  64. package/dist/admin/generated/realtime/v2/user.d.ts +96 -0
  65. package/dist/admin/openapi-ts.config.d.ts +8 -0
  66. package/dist/admin/src/apis/useAssetApi.d.ts +17 -0
  67. package/dist/admin/src/apis/useAssetGroupApi.d.ts +26 -0
  68. package/dist/admin/src/apis/useCharacterApi.d.ts +21 -0
  69. package/dist/admin/src/apis/useCharacterTemplateApi.d.ts +20 -0
  70. package/dist/admin/src/apis/useChristmasCharactersApi.d.ts +40 -0
  71. package/dist/admin/src/apis/useCollectionTaskApi.d.ts +64 -0
  72. package/dist/admin/src/apis/useConfigApi.d.ts +16 -0
  73. package/dist/admin/src/apis/useConsoleApi.d.ts +24 -0
  74. package/dist/admin/src/apis/useInstanceManagementApi.d.ts +19 -0
  75. package/dist/admin/src/apis/useJoiModelApplyApi.d.ts +11 -0
  76. package/dist/admin/src/apis/useMaterialApi.d.ts +1 -0
  77. package/dist/admin/src/apis/useOssApi.d.ts +15 -0
  78. package/dist/admin/src/apis/usePipelineTemplateApi.d.ts +8 -0
  79. package/dist/admin/src/apis/useProviderApi.d.ts +16 -0
  80. package/dist/admin/src/apis/useRedeemApi.d.ts +5 -0
  81. package/dist/admin/src/apis/useSmsSendLogApi.d.ts +14 -0
  82. package/dist/admin/src/apis/useTaskApi.d.ts +66 -0
  83. package/dist/admin/src/apis/useUserApi.d.ts +17 -0
  84. package/dist/admin/src/apis/useVoiceApi.d.ts +15 -0
  85. package/dist/admin/src/client/client/client.gen.d.ts +2 -0
  86. package/dist/admin/src/client/client/index.d.ts +8 -0
  87. package/dist/admin/src/client/client/types.gen.d.ts +70 -0
  88. package/dist/admin/src/client/client/utils.gen.d.ts +31 -0
  89. package/dist/admin/src/client/client.gen.d.ts +5 -0
  90. package/dist/admin/src/client/core/auth.gen.d.ts +8 -0
  91. package/dist/admin/src/client/core/bodySerializer.gen.d.ts +21 -0
  92. package/dist/admin/src/client/core/params.gen.d.ts +27 -0
  93. package/dist/admin/src/client/core/pathSerializer.gen.d.ts +30 -0
  94. package/dist/admin/src/client/core/queryKeySerializer.gen.d.ts +9 -0
  95. package/dist/admin/src/client/core/serverSentEvents.gen.d.ts +23 -0
  96. package/dist/admin/src/client/core/types.gen.d.ts +32 -0
  97. package/dist/admin/src/client/core/utils.gen.d.ts +19 -0
  98. package/dist/admin/src/client/index.d.ts +2 -0
  99. package/dist/admin/src/client/sdk.gen.d.ts +245 -0
  100. package/dist/admin/src/client/types.gen.d.ts +4009 -0
  101. package/dist/admin/src/client/valibot.gen.d.ts +7814 -0
  102. package/dist/admin/src/components/ui/alert/index.d.ts +8 -0
  103. package/dist/admin/src/components/ui/alert-dialog/index.d.ts +9 -0
  104. package/dist/admin/src/components/ui/avatar/index.d.ts +9 -0
  105. package/dist/admin/src/components/ui/badge/index.d.ts +6 -0
  106. package/dist/admin/src/components/ui/breadcrumb/index.d.ts +7 -0
  107. package/dist/admin/src/components/ui/button/index.d.ts +7 -0
  108. package/dist/admin/src/components/ui/card/index.d.ts +6 -0
  109. package/dist/admin/src/components/ui/checkbox/index.d.ts +1 -0
  110. package/dist/admin/src/components/ui/collapsible/index.d.ts +3 -0
  111. package/dist/admin/src/components/ui/combobox/index.d.ts +9 -0
  112. package/dist/admin/src/components/ui/dialog/index.d.ts +9 -0
  113. package/dist/admin/src/components/ui/dropdown-menu/index.d.ts +15 -0
  114. package/dist/admin/src/components/ui/filter-popover/index.d.ts +1 -0
  115. package/dist/admin/src/components/ui/form/index.d.ts +7 -0
  116. package/dist/admin/src/components/ui/form/injectionKeys.d.ts +2 -0
  117. package/dist/admin/src/components/ui/form/useFormField.d.ts +11 -0
  118. package/dist/admin/src/components/ui/input/index.d.ts +1 -0
  119. package/dist/admin/src/components/ui/label/index.d.ts +1 -0
  120. package/dist/admin/src/components/ui/popover/index.d.ts +4 -0
  121. package/dist/admin/src/components/ui/progress/index.d.ts +1 -0
  122. package/dist/admin/src/components/ui/select/index.d.ts +11 -0
  123. package/dist/admin/src/components/ui/separator/index.d.ts +1 -0
  124. package/dist/admin/src/components/ui/sheet/index.d.ts +13 -0
  125. package/dist/admin/src/components/ui/sidebar/index.d.ts +37 -0
  126. package/dist/admin/src/components/ui/sidebar/utils.d.ts +54 -0
  127. package/dist/admin/src/components/ui/skeleton/index.d.ts +1 -0
  128. package/dist/admin/src/components/ui/slider/index.d.ts +1 -0
  129. package/dist/admin/src/components/ui/switch/index.d.ts +1 -0
  130. package/dist/admin/src/components/ui/tabs/index.d.ts +4 -0
  131. package/dist/admin/src/components/ui/tags-input/index.d.ts +5 -0
  132. package/dist/admin/src/components/ui/textarea/index.d.ts +1 -0
  133. package/dist/admin/src/components/ui/tooltip/index.d.ts +4 -0
  134. package/dist/admin/src/composables/useApi.d.ts +21 -0
  135. package/dist/admin/src/composables/useAppStorage.d.ts +9 -0
  136. package/dist/admin/src/composables/useAssetUpload.d.ts +31 -0
  137. package/dist/admin/src/composables/useCharacterForm.d.ts +139 -0
  138. package/dist/admin/src/composables/useCharacterSettings.d.ts +27 -0
  139. package/dist/admin/src/composables/useCharacterTemplateForm.d.ts +47 -0
  140. package/dist/admin/src/composables/useCollectionTaskFilters.d.ts +12 -0
  141. package/dist/admin/src/composables/useFileUpload.d.ts +26 -0
  142. package/dist/admin/src/composables/useMaterialFilters.d.ts +14 -0
  143. package/dist/admin/src/composables/useModelEvaluation.d.ts +22 -0
  144. package/dist/admin/src/composables/useModelEvaluationWebSocket.d.ts +111 -0
  145. package/dist/admin/src/composables/useModelSettings.d.ts +12 -0
  146. package/dist/admin/src/composables/usePageScrollLock.d.ts +6 -0
  147. package/dist/admin/src/composables/useTaskFilters.d.ts +11 -0
  148. package/dist/admin/src/composables/useTestGroundProviders.d.ts +51 -0
  149. package/dist/admin/src/constants/character.d.ts +4 -0
  150. package/dist/admin/src/constants/collection-task.d.ts +5 -0
  151. package/dist/admin/src/constants/config-previews.d.ts +8 -0
  152. package/dist/admin/src/constants/container.d.ts +1 -0
  153. package/dist/admin/src/constants/links.d.ts +7 -0
  154. package/dist/admin/src/constants/nav.d.ts +17 -0
  155. package/dist/admin/src/constants/providers.d.ts +17 -0
  156. package/dist/admin/src/constants/regions.d.ts +10 -0
  157. package/dist/admin/src/constants/test-ground-voices.d.ts +19 -0
  158. package/dist/admin/src/constants/ui.d.ts +4 -0
  159. package/dist/admin/src/constants/voice.d.ts +12 -0
  160. package/dist/admin/src/constants/volc.d.ts +135 -0
  161. package/dist/admin/src/lib/cos/constants.d.ts +6 -0
  162. package/dist/admin/src/lib/cos/useCosDownload.d.ts +39 -0
  163. package/dist/admin/src/lib/cos/useCosUpload.d.ts +47 -0
  164. package/dist/admin/src/lib/cos/useVideoInfoExtractor.d.ts +12 -0
  165. package/dist/admin/src/lib/cos/utils.d.ts +4 -0
  166. package/dist/admin/src/lib/utils.d.ts +49 -0
  167. package/dist/admin/src/main.d.ts +0 -0
  168. package/dist/admin/src/renderSystem/animation/utils/eventEmitter.d.ts +9 -0
  169. package/dist/admin/src/renderSystem/animation/utils/flameConverter.d.ts +18 -0
  170. package/dist/admin/src/renderSystem/audio/AnimationPlayer.d.ts +31 -0
  171. package/dist/admin/src/renderSystem/audio/StreamingAudioPlayer.d.ts +66 -0
  172. package/dist/admin/src/renderSystem/config/app-config.d.ts +39 -0
  173. package/dist/admin/src/renderSystem/config/constants.d.ts +3 -0
  174. package/dist/admin/src/renderSystem/config/sdk-config-loader.d.ts +5 -0
  175. package/dist/admin/src/renderSystem/core/Avatar.d.ts +8 -0
  176. package/dist/admin/src/renderSystem/core/AvatarController.d.ts +65 -0
  177. package/dist/admin/src/renderSystem/core/AvatarDownloader.d.ts +38 -0
  178. package/dist/admin/src/renderSystem/core/AvatarKit.d.ts +10 -0
  179. package/dist/admin/src/renderSystem/core/AvatarView.d.ts +67 -0
  180. package/dist/admin/src/renderSystem/generated/driveningress/v1/driveningress.d.ts +68 -0
  181. package/dist/admin/src/renderSystem/generated/driveningress/v2/driveningress.d.ts +3 -0
  182. package/dist/admin/src/renderSystem/generated/google/protobuf/struct.d.ts +74 -0
  183. package/dist/admin/src/renderSystem/generated/google/protobuf/timestamp.d.ts +27 -0
  184. package/dist/admin/src/renderSystem/renderer/RenderSystem.d.ts +1 -0
  185. package/dist/admin/src/renderSystem/renderer/covariance.d.ts +1 -0
  186. package/dist/admin/src/renderSystem/renderer/renderer.d.ts +7 -0
  187. package/dist/admin/src/renderSystem/renderer/sortSplats.d.ts +1 -0
  188. package/dist/admin/src/renderSystem/renderer/webgl/reorderData.d.ts +1 -0
  189. package/dist/admin/src/renderSystem/renderer/webgl/webglRenderer.d.ts +27 -0
  190. package/dist/admin/src/renderSystem/renderer/webgpu/webgpuRenderer.d.ts +27 -0
  191. package/dist/admin/src/renderSystem/types/character-settings.d.ts +18 -0
  192. package/dist/admin/src/renderSystem/types/character.d.ts +22 -0
  193. package/dist/admin/src/renderSystem/types/index.d.ts +62 -0
  194. package/dist/admin/src/renderSystem/utils/animation-interpolation.d.ts +7 -0
  195. package/dist/admin/src/renderSystem/utils/conversationId.d.ts +1 -0
  196. package/dist/admin/src/renderSystem/utils/error-utils.d.ts +3 -0
  197. package/dist/admin/src/renderSystem/utils/id-manager.d.ts +12 -0
  198. package/dist/admin/src/renderSystem/utils/logger.d.ts +14 -0
  199. package/dist/admin/src/renderSystem/wasm/avatarCoreAdapter.d.ts +101 -0
  200. package/dist/admin/src/renderSystem/wasm/avatarCoreMemory.d.ts +92 -0
  201. package/dist/admin/src/stores/providers.d.ts +336 -0
  202. package/dist/admin/src/stores/region.d.ts +19 -0
  203. package/dist/admin/src/stores/user.d.ts +112 -0
  204. package/dist/admin/src/types/character-settings.d.ts +18 -0
  205. package/dist/admin/src/types/character.d.ts +117 -0
  206. package/dist/admin/src/types/collection-task.d.ts +11 -0
  207. package/dist/admin/src/types/config.d.ts +36 -0
  208. package/dist/admin/src/types/doubao-voice.d.ts +42 -0
  209. package/dist/admin/src/types/error.d.ts +5 -0
  210. package/dist/admin/src/types/model-settings.d.ts +41 -0
  211. package/dist/admin/src/types/task.d.ts +45 -0
  212. package/dist/admin/src/types/test-ground.d.ts +36 -0
  213. package/dist/admin/src/types/video-material.d.ts +130 -0
  214. package/dist/admin/src/types/voice.d.ts +58 -0
  215. package/dist/admin/src/utils/asset-config-loader.d.ts +10 -0
  216. package/dist/admin/src/utils/collection-task.d.ts +3 -0
  217. package/dist/admin/src/utils/error.d.ts +1 -0
  218. package/dist/admin/src/utils/hash.d.ts +20 -0
  219. package/dist/admin/src/utils/model-settings.d.ts +9 -0
  220. package/dist/admin/src/utils/monad.d.ts +13 -0
  221. package/dist/admin/src/utils/task.d.ts +8 -0
  222. package/dist/admin/unocss.config.d.ts +2 -0
  223. package/dist/admin/vite.config.d.ts +2 -0
  224. package/dist/admin/vue-macros.config.d.ts +2 -0
  225. package/dist/animation/AnimationWebSocketClient.d.ts +3 -0
  226. package/dist/audio/StreamingAudioPlayer.d.ts +4 -0
  227. package/dist/core/AvatarController.d.ts +2 -0
  228. package/dist/generated/common/v1/models.d.ts +29 -0
  229. package/dist/generated/driveningress/v2/driveningress.d.ts +81 -0
  230. package/dist/{index-DgkjYDp2.js → index-DxIr4cus.js} +1355 -215
  231. package/dist/index.js +1 -1
  232. package/dist/renderer/webgpu/webgpuRenderer.d.ts +0 -1
  233. package/dist/types/index.d.ts +10 -1
  234. package/dist/utils/id-manager.d.ts +1 -0
  235. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.0-beta.37] - 2025-12-24
9
+
10
+ ### 🐛 Bugfix
11
+ - Various bug fixes and improvements
12
+
13
+ ## [1.0.0-beta.36] - 2025-12-20
14
+
15
+ ### ✨ New Features
16
+ - **Audio Sample Rate Configuration** - Added configurable audio sample rate support in SDK initialization
17
+ - Added `audioFormat` configuration option with `channelCount` (fixed to 1) and `sampleRate` (supports: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz, default: 16000)
18
+ - Audio recording and playback now automatically use the configured sample rate
19
+ - Vanilla demo updated with sample rate dropdown selector for easy testing
20
+
8
21
  ## [1.0.0-beta.35] - 2025-12-16
9
22
 
10
23
  ### 🔄 API Changes
package/README.md CHANGED
@@ -45,6 +45,10 @@ const configuration: Configuration = {
45
45
  // - LogLevel.error: Only error logs
46
46
  // - LogLevel.warning: Warning and error logs
47
47
  // - LogLevel.all: All logs (info, warning, error)
48
+ audioFormat: { // Optional, default is { channelCount: 1, sampleRate: 16000 }
49
+ channelCount: 1, // Fixed to 1 (mono)
50
+ sampleRate: 16000 // Supported: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz
51
+ }
48
52
  }
49
53
 
50
54
  await AvatarSDK.initialize('your-app-id', configuration)
@@ -68,8 +72,8 @@ const avatarView = new AvatarView(avatar, container)
68
72
  // 4. Start real-time communication (SDK mode only)
69
73
  await avatarView.avatarController.start()
70
74
 
71
- // 5. Send audio data (SDK mode, must be 16kHz mono PCM16 format)
72
- const audioData = new ArrayBuffer(1024) // Example: 16kHz PCM16 audio data
75
+ // 5. Send audio data (SDK mode, must be mono PCM16 format matching configured sample rate)
76
+ const audioData = new ArrayBuffer(1024) // Example: PCM16 audio data at configured sample rate
73
77
  avatarView.avatarController.send(audioData, false) // Send audio data
74
78
  avatarView.avatarController.send(audioData, true) // end=true marks the end of current conversation round
75
79
  ```
@@ -190,23 +194,37 @@ RenderSystem → WebGPU/WebGL → Canvas rendering
190
194
 
191
195
  ### Audio Format Requirements
192
196
 
193
- **⚠️ Important:** The SDK requires audio data to be in **16kHz mono PCM16** format:
197
+ **⚠️ Important:** The SDK requires audio data to be in **mono PCM16** format:
194
198
 
195
- - **Sample Rate**: 16kHz (16000 Hz) - This is a backend requirement
196
- - **Channels**: Mono (single channel)
199
+ - **Sample Rate**: Configurable via `audioFormat.sampleRate` in SDK initialization (default: 16000 Hz)
200
+ - Supported sample rates: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz
201
+ - The configured sample rate will be used for both audio recording and playback
202
+ - **Channels**: Mono (single channel) - Fixed to 1 channel
197
203
  - **Format**: PCM16 (16-bit signed integer, little-endian)
198
204
  - **Byte Order**: Little-endian
199
205
 
200
206
  **Audio Data Format:**
201
207
  - Each sample is 2 bytes (16-bit)
202
208
  - Audio data should be provided as `ArrayBuffer` or `Uint8Array`
203
- - For example: 1 second of audio = 16000 samples × 2 bytes = 32000 bytes
209
+ - For example, with 16kHz sample rate: 1 second of audio = 16000 samples × 2 bytes = 32000 bytes
210
+ - For 48kHz sample rate: 1 second of audio = 48000 samples × 2 bytes = 96000 bytes
204
211
 
205
212
  **Resampling:**
206
- - If your audio source is at a different sample rate (e.g., 24kHz, 48kHz), you must resample it to 16kHz before sending to the SDK
213
+ - If your audio source is at a different sample rate, you must resample it to match the configured sample rate before sending to the SDK
207
214
  - For high-quality resampling, we recommend using Web Audio API's `OfflineAudioContext` with anti-aliasing filtering
208
215
  - See example projects for resampling implementation
209
216
 
217
+ **Configuration Example:**
218
+ ```typescript
219
+ const configuration: Configuration = {
220
+ environment: Environment.cn,
221
+ audioFormat: {
222
+ channelCount: 1, // Fixed to 1 (mono)
223
+ sampleRate: 48000 // Choose from: 8000, 16000, 22050, 24000, 32000, 44100, 48000
224
+ }
225
+ }
226
+ ```
227
+
210
228
  ## 📚 API Reference
211
229
 
212
230
  ### AvatarSDK
@@ -431,6 +449,12 @@ interface Configuration {
431
449
  environment: Environment
432
450
  drivingServiceMode?: DrivingServiceMode // Optional, default is 'sdk' (SDK mode)
433
451
  logLevel?: LogLevel // Optional, default is 'off' (no logs)
452
+ audioFormat?: AudioFormat // Optional, default is { channelCount: 1, sampleRate: 16000 }
453
+ }
454
+
455
+ interface AudioFormat {
456
+ readonly channelCount: 1 // Fixed to 1 (mono)
457
+ readonly sampleRate: number // Supported: 8000, 16000, 22050, 24000, 32000, 44100, 48000 Hz, default: 16000
434
458
  }
435
459
  ```
436
460
 
@@ -459,6 +483,11 @@ enum LogLevel {
459
483
  - `LogLevel.error`: Only error logs
460
484
  - `LogLevel.warning`: Warning and error logs
461
485
  - `LogLevel.all`: All logs (info, warning, error)
486
+ - `audioFormat`: Configures audio sample rate and channel count
487
+ - `channelCount`: Fixed to 1 (mono channel)
488
+ - `sampleRate`: Audio sample rate in Hz (default: 16000)
489
+ - Supported values: 8000, 16000, 22050, 24000, 32000, 44100, 48000
490
+ - The configured sample rate will be used for both audio recording and playback
462
491
  - `sessionToken`: Set separately via `AvatarSDK.setSessionToken()`, not in Configuration
463
492
 
464
493
  ```typescript
@@ -500,13 +529,15 @@ enum ConnectionState {
500
529
  ```typescript
501
530
  enum ConversationState {
502
531
  idle = 'idle', // Idle state (breathing animation)
503
- playing = 'playing' // Playing state (active conversation)
532
+ playing = 'playing', // Playing state (active conversation)
533
+ pausing = 'pausing' // Pausing state (paused during playback)
504
534
  }
505
535
  ```
506
536
 
507
537
  **State Description:**
508
538
  - `idle`: Avatar is in idle state (breathing animation), waiting for conversation to start
509
539
  - `playing`: Avatar is playing conversation content (including during transition animations)
540
+ - `pausing`: Avatar playback is paused (e.g., when `end=false` and waiting for more audio data)
510
541
 
511
542
  **Note:** During transition animations, the target state is notified immediately:
512
543
  - When transitioning from `idle` to `playing`, the `playing` state is notified immediately
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { A as APP_CONFIG, e as errorToMessage, l as logEvent, a as logger } from "./index-DgkjYDp2.js";
4
+ import { A as APP_CONFIG, e as errorToMessage, l as logEvent, a as logger } from "./index-DxIr4cus.js";
5
5
  class StreamingAudioPlayer {
6
6
  constructor(options) {
7
7
  __publicField(this, "audioContext", null);
@@ -17,9 +17,13 @@ class StreamingAudioPlayer {
17
17
  __publicField(this, "isPlaying", false);
18
18
  __publicField(this, "isPaused", false);
19
19
  __publicField(this, "autoStartEnabled", true);
20
+ __publicField(this, "autoContinue", false);
20
21
  __publicField(this, "audioChunks", []);
21
22
  __publicField(this, "scheduledChunks", 0);
22
23
  __publicField(this, "activeSources", /* @__PURE__ */ new Set());
24
+ __publicField(this, "lastScheduledChunkEndTime", 0);
25
+ __publicField(this, "lastGetCurrentTimeLog", 0);
26
+ __publicField(this, "scheduledChunkInfo", []);
23
27
  __publicField(this, "gainNode", null);
24
28
  __publicField(this, "volume", 1);
25
29
  __publicField(this, "onEndedCallback");
@@ -70,6 +74,13 @@ class StreamingAudioPlayer {
70
74
  isPlaying: this.isPlaying,
71
75
  scheduledChunks: this.scheduledChunks
72
76
  });
77
+ if (this.autoContinue && this.isPaused) {
78
+ this.log("[StreamingAudioPlayer] autoContinue=true, auto-resuming playback");
79
+ this.autoContinue = false;
80
+ this.resume().catch((err) => {
81
+ logger.errorWithError("Failed to auto-resume playback:", err);
82
+ });
83
+ }
73
84
  if (!this.isPlaying && this.autoStartEnabled && this.audioChunks.length > 0) {
74
85
  this.log("[StreamingAudioPlayer] Auto-starting playback from addChunk");
75
86
  this.startPlayback();
@@ -88,6 +99,7 @@ class StreamingAudioPlayer {
88
99
  this.pausedTimeOffset = 0;
89
100
  this.pausedAt = 0;
90
101
  this.pausedAudioContextTime = 0;
102
+ this.autoContinue = false;
91
103
  this.log("Starting new session", {
92
104
  chunks: audioChunks.length
93
105
  });
@@ -107,6 +119,9 @@ class StreamingAudioPlayer {
107
119
  this.isPlaying = true;
108
120
  this.sessionStartTime = this.audioContext.currentTime;
109
121
  this.scheduledTime = this.sessionStartTime;
122
+ this.lastScheduledChunkEndTime = 0;
123
+ this.scheduledChunkInfo = [];
124
+ this.autoContinue = false;
110
125
  this.log("[StreamingAudioPlayer] Starting playback", {
111
126
  sessionStartTime: this.sessionStartTime,
112
127
  bufferedChunks: this.audioChunks.length,
@@ -155,16 +170,30 @@ class StreamingAudioPlayer {
155
170
  const source = this.audioContext.createBufferSource();
156
171
  source.buffer = audioBuffer;
157
172
  source.connect(this.gainNode);
158
- source.start(this.scheduledTime);
173
+ const chunkStartTime = this.scheduledTime;
174
+ source.start(chunkStartTime);
175
+ const actualStartTime = Math.max(chunkStartTime, this.audioContext.currentTime);
176
+ this.scheduledChunkInfo.push({
177
+ startTime: actualStartTime,
178
+ duration: audioBuffer.duration
179
+ });
159
180
  this.activeSources.add(source);
160
181
  source.onended = () => {
161
182
  this.activeSources.delete(source);
162
- if (isLast && this.activeSources.size === 0) {
163
- this.log("Last audio chunk ended, marking playback as ended");
164
- this.markEnded();
183
+ if (this.activeSources.size === 0) {
184
+ const lastChunk = this.audioChunks[this.scheduledChunks - 1];
185
+ if (lastChunk && !lastChunk.isLast) {
186
+ this.log("All audio chunks ended but end=false, pausing and setting autoContinue");
187
+ this.autoContinue = true;
188
+ this.pause();
189
+ } else if (isLast) {
190
+ this.log("Last audio chunk ended, marking playback as ended");
191
+ this.markEnded();
192
+ }
165
193
  }
166
194
  };
167
195
  this.scheduledTime += audioBuffer.duration;
196
+ this.lastScheduledChunkEndTime = this.scheduledTime - this.sessionStartTime - this.pausedTimeOffset;
168
197
  this.scheduledChunks++;
169
198
  this.log(`[StreamingAudioPlayer] Scheduled chunk ${chunkIndex + 1}/${this.audioChunks.length}`, {
170
199
  startTime: this.scheduledTime - audioBuffer.duration,
@@ -225,8 +254,24 @@ class StreamingAudioPlayer {
225
254
  return this.pausedAt;
226
255
  }
227
256
  const currentAudioTime = this.audioContext.currentTime;
228
- const elapsed = currentAudioTime - this.sessionStartTime - this.pausedTimeOffset;
229
- return Math.max(0, elapsed);
257
+ if (this.activeSources.size === 0 && this.scheduledChunks > 0) {
258
+ return Math.max(0, this.lastScheduledChunkEndTime);
259
+ }
260
+ let totalPlayedDuration = 0;
261
+ for (let i = 0; i < this.scheduledChunkInfo.length; i++) {
262
+ const chunkInfo = this.scheduledChunkInfo[i];
263
+ const chunkEndTime = chunkInfo.startTime + chunkInfo.duration;
264
+ if (currentAudioTime < chunkInfo.startTime) {
265
+ break;
266
+ } else if (chunkEndTime <= currentAudioTime) {
267
+ totalPlayedDuration += chunkInfo.duration;
268
+ } else {
269
+ const playedTime = currentAudioTime - chunkInfo.startTime;
270
+ totalPlayedDuration += playedTime;
271
+ break;
272
+ }
273
+ }
274
+ return Math.max(0, totalPlayedDuration);
230
275
  }
231
276
  pause() {
232
277
  if (!this.isPlaying || this.isPaused || !this.audioContext) {
@@ -251,6 +296,7 @@ class StreamingAudioPlayer {
251
296
  if (!this.isPaused || !this.audioContext || !this.isPlaying) {
252
297
  return;
253
298
  }
299
+ this.autoContinue = false;
254
300
  if (this.audioContext.state === "suspended") {
255
301
  try {
256
302
  await this.audioContext.resume();
@@ -300,6 +346,7 @@ class StreamingAudioPlayer {
300
346
  this.activeSources.clear();
301
347
  this.audioChunks = [];
302
348
  this.scheduledChunks = 0;
349
+ this.autoContinue = false;
303
350
  this.log("[StreamingAudioPlayer] Playback stopped, state reset");
304
351
  }
305
352
  setAutoStart(enabled) {
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,397 @@
1
+ import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
2
+ import { FieldDescriptorProto_Type } from '../../google/protobuf/descriptor';
3
+ import { Duration } from '../../google/protobuf/duration';
4
+ import { Timestamp } from '../../google/protobuf/timestamp';
5
+ export declare const protobufPackage = "buf.validate";
6
+
7
+ export declare enum Ignore {
8
+
9
+ IGNORE_UNSPECIFIED = 0,
10
+
11
+ IGNORE_IF_UNPOPULATED = 1,
12
+
13
+ IGNORE_IF_DEFAULT_VALUE = 2,
14
+
15
+ IGNORE_ALWAYS = 3,
16
+ UNRECOGNIZED = -1
17
+ }
18
+ export declare function ignoreFromJSON(object: any): Ignore;
19
+ export declare function ignoreToJSON(object: Ignore): string;
20
+
21
+ export declare enum KnownRegex {
22
+ KNOWN_REGEX_UNSPECIFIED = 0,
23
+
24
+ KNOWN_REGEX_HTTP_HEADER_NAME = 1,
25
+
26
+ KNOWN_REGEX_HTTP_HEADER_VALUE = 2,
27
+ UNRECOGNIZED = -1
28
+ }
29
+ export declare function knownRegexFromJSON(object: any): KnownRegex;
30
+ export declare function knownRegexToJSON(object: KnownRegex): string;
31
+
32
+ export interface Rule {
33
+ id?: string | undefined;
34
+ message?: string | undefined;
35
+ expression?: string | undefined;
36
+ }
37
+
38
+ export interface MessageRules {
39
+ disabled?: boolean | undefined;
40
+ cel: Rule[];
41
+ }
42
+
43
+ export interface OneofRules {
44
+ required?: boolean | undefined;
45
+ }
46
+
47
+ export interface FieldRules {
48
+ cel: Rule[];
49
+ required?: boolean | undefined;
50
+ ignore?: Ignore | undefined;
51
+ float?: FloatRules | undefined;
52
+ double?: DoubleRules | undefined;
53
+ int32?: Int32Rules | undefined;
54
+ int64?: Int64Rules | undefined;
55
+ uint32?: UInt32Rules | undefined;
56
+ uint64?: UInt64Rules | undefined;
57
+ sint32?: SInt32Rules | undefined;
58
+ sint64?: SInt64Rules | undefined;
59
+ fixed32?: Fixed32Rules | undefined;
60
+ fixed64?: Fixed64Rules | undefined;
61
+ sfixed32?: SFixed32Rules | undefined;
62
+ sfixed64?: SFixed64Rules | undefined;
63
+ bool?: BoolRules | undefined;
64
+ string?: StringRules | undefined;
65
+ bytes?: BytesRules | undefined;
66
+ enum?: EnumRules | undefined;
67
+ repeated?: RepeatedRules | undefined;
68
+ map?: MapRules | undefined;
69
+ any?: AnyRules | undefined;
70
+ duration?: DurationRules | undefined;
71
+ timestamp?: TimestampRules | undefined;
72
+ }
73
+
74
+ export interface PredefinedRules {
75
+ cel: Rule[];
76
+ }
77
+
78
+ export interface FloatRules {
79
+ const?: number | undefined;
80
+ lt?: number | undefined;
81
+ lte?: number | undefined;
82
+ gt?: number | undefined;
83
+ gte?: number | undefined;
84
+ in: number[];
85
+ notIn: number[];
86
+ finite?: boolean | undefined;
87
+ example: number[];
88
+ }
89
+
90
+ export interface DoubleRules {
91
+ const?: number | undefined;
92
+ lt?: number | undefined;
93
+ lte?: number | undefined;
94
+ gt?: number | undefined;
95
+ gte?: number | undefined;
96
+ in: number[];
97
+ notIn: number[];
98
+ finite?: boolean | undefined;
99
+ example: number[];
100
+ }
101
+
102
+ export interface Int32Rules {
103
+ const?: number | undefined;
104
+ lt?: number | undefined;
105
+ lte?: number | undefined;
106
+ gt?: number | undefined;
107
+ gte?: number | undefined;
108
+ in: number[];
109
+ notIn: number[];
110
+ example: number[];
111
+ }
112
+
113
+ export interface Int64Rules {
114
+ const?: string | undefined;
115
+ lt?: string | undefined;
116
+ lte?: string | undefined;
117
+ gt?: string | undefined;
118
+ gte?: string | undefined;
119
+ in: string[];
120
+ notIn: string[];
121
+ example: string[];
122
+ }
123
+
124
+ export interface UInt32Rules {
125
+ const?: number | undefined;
126
+ lt?: number | undefined;
127
+ lte?: number | undefined;
128
+ gt?: number | undefined;
129
+ gte?: number | undefined;
130
+ in: number[];
131
+ notIn: number[];
132
+ example: number[];
133
+ }
134
+
135
+ export interface UInt64Rules {
136
+ const?: string | undefined;
137
+ lt?: string | undefined;
138
+ lte?: string | undefined;
139
+ gt?: string | undefined;
140
+ gte?: string | undefined;
141
+ in: string[];
142
+ notIn: string[];
143
+ example: string[];
144
+ }
145
+
146
+ export interface SInt32Rules {
147
+ const?: number | undefined;
148
+ lt?: number | undefined;
149
+ lte?: number | undefined;
150
+ gt?: number | undefined;
151
+ gte?: number | undefined;
152
+ in: number[];
153
+ notIn: number[];
154
+ example: number[];
155
+ }
156
+
157
+ export interface SInt64Rules {
158
+ const?: string | undefined;
159
+ lt?: string | undefined;
160
+ lte?: string | undefined;
161
+ gt?: string | undefined;
162
+ gte?: string | undefined;
163
+ in: string[];
164
+ notIn: string[];
165
+ example: string[];
166
+ }
167
+
168
+ export interface Fixed32Rules {
169
+ const?: number | undefined;
170
+ lt?: number | undefined;
171
+ lte?: number | undefined;
172
+ gt?: number | undefined;
173
+ gte?: number | undefined;
174
+ in: number[];
175
+ notIn: number[];
176
+ example: number[];
177
+ }
178
+
179
+ export interface Fixed64Rules {
180
+ const?: string | undefined;
181
+ lt?: string | undefined;
182
+ lte?: string | undefined;
183
+ gt?: string | undefined;
184
+ gte?: string | undefined;
185
+ in: string[];
186
+ notIn: string[];
187
+ example: string[];
188
+ }
189
+
190
+ export interface SFixed32Rules {
191
+ const?: number | undefined;
192
+ lt?: number | undefined;
193
+ lte?: number | undefined;
194
+ gt?: number | undefined;
195
+ gte?: number | undefined;
196
+ in: number[];
197
+ notIn: number[];
198
+ example: number[];
199
+ }
200
+
201
+ export interface SFixed64Rules {
202
+ const?: string | undefined;
203
+ lt?: string | undefined;
204
+ lte?: string | undefined;
205
+ gt?: string | undefined;
206
+ gte?: string | undefined;
207
+ in: string[];
208
+ notIn: string[];
209
+ example: string[];
210
+ }
211
+
212
+ export interface BoolRules {
213
+ const?: boolean | undefined;
214
+ example: boolean[];
215
+ }
216
+
217
+ export interface StringRules {
218
+ const?: string | undefined;
219
+ len?: string | undefined;
220
+ minLen?: string | undefined;
221
+ maxLen?: string | undefined;
222
+ lenBytes?: string | undefined;
223
+ minBytes?: string | undefined;
224
+ maxBytes?: string | undefined;
225
+ pattern?: string | undefined;
226
+ prefix?: string | undefined;
227
+ suffix?: string | undefined;
228
+ contains?: string | undefined;
229
+ notContains?: string | undefined;
230
+ in: string[];
231
+ notIn: string[];
232
+ email?: boolean | undefined;
233
+ hostname?: boolean | undefined;
234
+ ip?: boolean | undefined;
235
+ ipv4?: boolean | undefined;
236
+ ipv6?: boolean | undefined;
237
+ uri?: boolean | undefined;
238
+ uriRef?: boolean | undefined;
239
+ address?: boolean | undefined;
240
+ uuid?: boolean | undefined;
241
+ tuuid?: boolean | undefined;
242
+ ipWithPrefixlen?: boolean | undefined;
243
+ ipv4WithPrefixlen?: boolean | undefined;
244
+ ipv6WithPrefixlen?: boolean | undefined;
245
+ ipPrefix?: boolean | undefined;
246
+ ipv4Prefix?: boolean | undefined;
247
+ ipv6Prefix?: boolean | undefined;
248
+ hostAndPort?: boolean | undefined;
249
+ wellKnownRegex?: KnownRegex | undefined;
250
+ strict?: boolean | undefined;
251
+ example: string[];
252
+ }
253
+
254
+ export interface BytesRules {
255
+ const?: Uint8Array | undefined;
256
+ len?: string | undefined;
257
+ minLen?: string | undefined;
258
+ maxLen?: string | undefined;
259
+ pattern?: string | undefined;
260
+ prefix?: Uint8Array | undefined;
261
+ suffix?: Uint8Array | undefined;
262
+ contains?: Uint8Array | undefined;
263
+ in: Uint8Array[];
264
+ notIn: Uint8Array[];
265
+ ip?: boolean | undefined;
266
+ ipv4?: boolean | undefined;
267
+ ipv6?: boolean | undefined;
268
+ example: Uint8Array[];
269
+ }
270
+
271
+ export interface EnumRules {
272
+ const?: number | undefined;
273
+ definedOnly?: boolean | undefined;
274
+ in: number[];
275
+ notIn: number[];
276
+ example: number[];
277
+ }
278
+
279
+ export interface RepeatedRules {
280
+ minItems?: string | undefined;
281
+ maxItems?: string | undefined;
282
+ unique?: boolean | undefined;
283
+ items?: FieldRules | undefined;
284
+ }
285
+
286
+ export interface MapRules {
287
+ minPairs?: string | undefined;
288
+ maxPairs?: string | undefined;
289
+ keys?: FieldRules | undefined;
290
+ values?: FieldRules | undefined;
291
+ }
292
+
293
+ export interface AnyRules {
294
+ in: string[];
295
+ notIn: string[];
296
+ }
297
+
298
+ export interface DurationRules {
299
+ const?: Duration | undefined;
300
+ lt?: Duration | undefined;
301
+ lte?: Duration | undefined;
302
+ gt?: Duration | undefined;
303
+ gte?: Duration | undefined;
304
+ in: Duration[];
305
+ notIn: Duration[];
306
+ example: Duration[];
307
+ }
308
+
309
+ export interface TimestampRules {
310
+ const?: Timestamp | undefined;
311
+ lt?: Timestamp | undefined;
312
+ lte?: Timestamp | undefined;
313
+ ltNow?: boolean | undefined;
314
+ gt?: Timestamp | undefined;
315
+ gte?: Timestamp | undefined;
316
+ gtNow?: boolean | undefined;
317
+ within?: Duration | undefined;
318
+ example: Timestamp[];
319
+ }
320
+
321
+ export interface Violations {
322
+ violations: Violation[];
323
+ }
324
+
325
+ export interface Violation {
326
+ field?: FieldPath | undefined;
327
+ rule?: FieldPath | undefined;
328
+ ruleId?: string | undefined;
329
+ message?: string | undefined;
330
+ forKey?: boolean | undefined;
331
+ }
332
+
333
+ export interface FieldPath {
334
+ elements: FieldPathElement[];
335
+ }
336
+
337
+ export interface FieldPathElement {
338
+ fieldNumber?: number | undefined;
339
+ fieldName?: string | undefined;
340
+ fieldType?: FieldDescriptorProto_Type | undefined;
341
+ keyType?: FieldDescriptorProto_Type | undefined;
342
+ valueType?: FieldDescriptorProto_Type | undefined;
343
+ index?: string | undefined;
344
+ boolKey?: boolean | undefined;
345
+ intKey?: string | undefined;
346
+ uintKey?: string | undefined;
347
+ stringKey?: string | undefined;
348
+ }
349
+ export declare const Rule: MessageFns<Rule>;
350
+ export declare const MessageRules: MessageFns<MessageRules>;
351
+ export declare const OneofRules: MessageFns<OneofRules>;
352
+ export declare const FieldRules: MessageFns<FieldRules>;
353
+ export declare const PredefinedRules: MessageFns<PredefinedRules>;
354
+ export declare const FloatRules: MessageFns<FloatRules>;
355
+ export declare const DoubleRules: MessageFns<DoubleRules>;
356
+ export declare const Int32Rules: MessageFns<Int32Rules>;
357
+ export declare const Int64Rules: MessageFns<Int64Rules>;
358
+ export declare const UInt32Rules: MessageFns<UInt32Rules>;
359
+ export declare const UInt64Rules: MessageFns<UInt64Rules>;
360
+ export declare const SInt32Rules: MessageFns<SInt32Rules>;
361
+ export declare const SInt64Rules: MessageFns<SInt64Rules>;
362
+ export declare const Fixed32Rules: MessageFns<Fixed32Rules>;
363
+ export declare const Fixed64Rules: MessageFns<Fixed64Rules>;
364
+ export declare const SFixed32Rules: MessageFns<SFixed32Rules>;
365
+ export declare const SFixed64Rules: MessageFns<SFixed64Rules>;
366
+ export declare const BoolRules: MessageFns<BoolRules>;
367
+ export declare const StringRules: MessageFns<StringRules>;
368
+ export declare const BytesRules: MessageFns<BytesRules>;
369
+ export declare const EnumRules: MessageFns<EnumRules>;
370
+ export declare const RepeatedRules: MessageFns<RepeatedRules>;
371
+ export declare const MapRules: MessageFns<MapRules>;
372
+ export declare const AnyRules: MessageFns<AnyRules>;
373
+ export declare const DurationRules: MessageFns<DurationRules>;
374
+ export declare const TimestampRules: MessageFns<TimestampRules>;
375
+ export declare const Violations: MessageFns<Violations>;
376
+ export declare const Violation: MessageFns<Violation>;
377
+ export declare const FieldPath: MessageFns<FieldPath>;
378
+ export declare const FieldPathElement: MessageFns<FieldPathElement>;
379
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
380
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
381
+ [K in keyof T]?: DeepPartial<T[K]>;
382
+ } : Partial<T>;
383
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
384
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
385
+ [K in keyof P]: Exact<P[K], I[K]>;
386
+ } & {
387
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
388
+ };
389
+ export interface MessageFns<T> {
390
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
391
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
392
+ fromJSON(object: any): T;
393
+ toJSON(message: T): unknown;
394
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
395
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
396
+ }
397
+ export {};
@@ -0,0 +1,29 @@
1
+ import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
2
+ export declare const protobufPackage = "common.v1";
3
+
4
+ export interface CustomAnimation {
5
+ key: string;
6
+ pbUrl: string;
7
+ wavUrl: string;
8
+ remark: string;
9
+ }
10
+ export declare const CustomAnimation: MessageFns<CustomAnimation>;
11
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
12
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
13
+ [K in keyof T]?: DeepPartial<T[K]>;
14
+ } : Partial<T>;
15
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
16
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
17
+ [K in keyof P]: Exact<P[K], I[K]>;
18
+ } & {
19
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
20
+ };
21
+ export interface MessageFns<T> {
22
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
23
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
24
+ fromJSON(object: any): T;
25
+ toJSON(message: T): unknown;
26
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
27
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
28
+ }
29
+ export {};