@syra.fm/sdk 0.4.0 → 0.5.0

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 (307) hide show
  1. package/lib/commonjs/client.js +268 -0
  2. package/lib/commonjs/client.js.map +1 -0
  3. package/lib/commonjs/errors.js +22 -0
  4. package/lib/commonjs/errors.js.map +1 -0
  5. package/lib/commonjs/index.js +63 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/index.native.js +28 -0
  8. package/lib/commonjs/index.native.js.map +1 -0
  9. package/lib/commonjs/live/assets/icons/spaces-icon.js +42 -0
  10. package/lib/commonjs/live/assets/icons/spaces-icon.js.map +1 -0
  11. package/lib/commonjs/live/assets/icons/syra-icon.js +43 -0
  12. package/lib/commonjs/live/assets/icons/syra-icon.js.map +1 -0
  13. package/lib/commonjs/live/components/AnimatedPulse.js +38 -0
  14. package/lib/commonjs/live/components/AnimatedPulse.js.map +1 -0
  15. package/lib/commonjs/live/components/AnimatedSpeakerRing.js +90 -0
  16. package/lib/commonjs/live/components/AnimatedSpeakerRing.js.map +1 -0
  17. package/lib/commonjs/live/components/CreateRoomSheet.js +688 -0
  18. package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -0
  19. package/lib/commonjs/live/components/InsightsPanel.js +333 -0
  20. package/lib/commonjs/live/components/InsightsPanel.js.map +1 -0
  21. package/lib/commonjs/live/components/LiveRoomSheet.js +1195 -0
  22. package/lib/commonjs/live/components/LiveRoomSheet.js.map +1 -0
  23. package/lib/commonjs/live/components/MiniRoomBar.js +161 -0
  24. package/lib/commonjs/live/components/MiniRoomBar.js.map +1 -0
  25. package/lib/commonjs/live/components/PanelHeader.js +57 -0
  26. package/lib/commonjs/live/components/PanelHeader.js.map +1 -0
  27. package/lib/commonjs/live/components/PodcastStreamPicker.js +1190 -0
  28. package/lib/commonjs/live/components/PodcastStreamPicker.js.map +1 -0
  29. package/lib/commonjs/live/components/RecordingCard.js +192 -0
  30. package/lib/commonjs/live/components/RecordingCard.js.map +1 -0
  31. package/lib/commonjs/live/components/RecordingsPanel.js +304 -0
  32. package/lib/commonjs/live/components/RecordingsPanel.js.map +1 -0
  33. package/lib/commonjs/live/components/RoomCard.js +553 -0
  34. package/lib/commonjs/live/components/RoomCard.js.map +1 -0
  35. package/lib/commonjs/live/components/StreamConfigModal.js +656 -0
  36. package/lib/commonjs/live/components/StreamConfigModal.js.map +1 -0
  37. package/lib/commonjs/live/components/StreamConfigPanel.js +822 -0
  38. package/lib/commonjs/live/components/StreamConfigPanel.js.map +1 -0
  39. package/lib/commonjs/live/context/LiveConfigContext.js +46 -0
  40. package/lib/commonjs/live/context/LiveConfigContext.js.map +1 -0
  41. package/lib/commonjs/live/context/LiveRoomContext.js +195 -0
  42. package/lib/commonjs/live/context/LiveRoomContext.js.map +1 -0
  43. package/lib/commonjs/live/hooks/useActiveSpeakers.js +35 -0
  44. package/lib/commonjs/live/hooks/useActiveSpeakers.js.map +1 -0
  45. package/lib/commonjs/live/hooks/useRoomAudio.js +129 -0
  46. package/lib/commonjs/live/hooks/useRoomAudio.js.map +1 -0
  47. package/lib/commonjs/live/hooks/useRoomConnection.js +177 -0
  48. package/lib/commonjs/live/hooks/useRoomConnection.js.map +1 -0
  49. package/lib/commonjs/live/hooks/useRoomManager.js +37 -0
  50. package/lib/commonjs/live/hooks/useRoomManager.js.map +1 -0
  51. package/lib/commonjs/live/hooks/useRoomUsers.js +52 -0
  52. package/lib/commonjs/live/hooks/useRoomUsers.js.map +1 -0
  53. package/lib/commonjs/live/index.js +310 -0
  54. package/lib/commonjs/live/index.js.map +1 -0
  55. package/lib/commonjs/live/services/livekitService.js +20 -0
  56. package/lib/commonjs/live/services/livekitService.js.map +1 -0
  57. package/lib/commonjs/live/services/spaceSocketService.js +181 -0
  58. package/lib/commonjs/live/services/spaceSocketService.js.map +1 -0
  59. package/lib/commonjs/live/services/spacesService.js +642 -0
  60. package/lib/commonjs/live/services/spacesService.js.map +1 -0
  61. package/lib/commonjs/live/types.js +6 -0
  62. package/lib/commonjs/live/types.js.map +1 -0
  63. package/lib/commonjs/live/validation.js +238 -0
  64. package/lib/commonjs/live/validation.js.map +1 -0
  65. package/lib/commonjs/package.json +1 -0
  66. package/{dist/cjs → lib/commonjs}/schema.js +55 -47
  67. package/lib/commonjs/schema.js.map +1 -0
  68. package/lib/module/client.js +264 -0
  69. package/lib/module/client.js.map +1 -0
  70. package/lib/module/errors.js +17 -0
  71. package/lib/module/errors.js.map +1 -0
  72. package/lib/module/index.js +6 -0
  73. package/lib/module/index.js.map +1 -0
  74. package/lib/module/index.native.js +5 -0
  75. package/lib/module/index.native.js.map +1 -0
  76. package/lib/module/live/assets/icons/spaces-icon.js +34 -0
  77. package/lib/module/live/assets/icons/spaces-icon.js.map +1 -0
  78. package/lib/module/live/assets/icons/syra-icon.js +36 -0
  79. package/lib/module/live/assets/icons/syra-icon.js.map +1 -0
  80. package/lib/module/live/components/AnimatedPulse.js +33 -0
  81. package/lib/module/live/components/AnimatedPulse.js.map +1 -0
  82. package/lib/module/live/components/AnimatedSpeakerRing.js +85 -0
  83. package/lib/module/live/components/AnimatedSpeakerRing.js.map +1 -0
  84. package/lib/module/live/components/CreateRoomSheet.js +682 -0
  85. package/lib/module/live/components/CreateRoomSheet.js.map +1 -0
  86. package/lib/module/live/components/InsightsPanel.js +327 -0
  87. package/lib/module/live/components/InsightsPanel.js.map +1 -0
  88. package/lib/module/live/components/LiveRoomSheet.js +1189 -0
  89. package/lib/module/live/components/LiveRoomSheet.js.map +1 -0
  90. package/lib/module/live/components/MiniRoomBar.js +154 -0
  91. package/lib/module/live/components/MiniRoomBar.js.map +1 -0
  92. package/lib/module/live/components/PanelHeader.js +52 -0
  93. package/lib/module/live/components/PanelHeader.js.map +1 -0
  94. package/lib/module/live/components/PodcastStreamPicker.js +1183 -0
  95. package/lib/module/live/components/PodcastStreamPicker.js.map +1 -0
  96. package/lib/module/live/components/RecordingCard.js +187 -0
  97. package/lib/module/live/components/RecordingCard.js.map +1 -0
  98. package/lib/module/live/components/RecordingsPanel.js +298 -0
  99. package/lib/module/live/components/RecordingsPanel.js.map +1 -0
  100. package/lib/module/live/components/RoomCard.js +548 -0
  101. package/lib/module/live/components/RoomCard.js.map +1 -0
  102. package/lib/module/live/components/StreamConfigModal.js +650 -0
  103. package/lib/module/live/components/StreamConfigModal.js.map +1 -0
  104. package/lib/module/live/components/StreamConfigPanel.js +816 -0
  105. package/lib/module/live/components/StreamConfigPanel.js.map +1 -0
  106. package/lib/module/live/context/LiveConfigContext.js +40 -0
  107. package/lib/module/live/context/LiveConfigContext.js.map +1 -0
  108. package/lib/module/live/context/LiveRoomContext.js +189 -0
  109. package/lib/module/live/context/LiveRoomContext.js.map +1 -0
  110. package/lib/module/live/hooks/useActiveSpeakers.js +31 -0
  111. package/lib/module/live/hooks/useActiveSpeakers.js.map +1 -0
  112. package/lib/module/live/hooks/useRoomAudio.js +125 -0
  113. package/lib/module/live/hooks/useRoomAudio.js.map +1 -0
  114. package/lib/module/live/hooks/useRoomConnection.js +173 -0
  115. package/lib/module/live/hooks/useRoomConnection.js.map +1 -0
  116. package/lib/module/live/hooks/useRoomManager.js +32 -0
  117. package/lib/module/live/hooks/useRoomManager.js.map +1 -0
  118. package/lib/module/live/hooks/useRoomUsers.js +46 -0
  119. package/lib/module/live/hooks/useRoomUsers.js.map +1 -0
  120. package/lib/module/live/index.js +38 -0
  121. package/lib/module/live/index.js.map +1 -0
  122. package/lib/module/live/services/livekitService.js +16 -0
  123. package/lib/module/live/services/livekitService.js.map +1 -0
  124. package/lib/module/live/services/spaceSocketService.js +176 -0
  125. package/lib/module/live/services/spaceSocketService.js.map +1 -0
  126. package/lib/module/live/services/spacesService.js +639 -0
  127. package/lib/module/live/services/spacesService.js.map +1 -0
  128. package/lib/module/live/types.js +4 -0
  129. package/lib/module/live/types.js.map +1 -0
  130. package/lib/module/live/validation.js +229 -0
  131. package/lib/module/live/validation.js.map +1 -0
  132. package/lib/module/package.json +1 -0
  133. package/{dist/esm → lib/module}/schema.js +47 -39
  134. package/lib/module/schema.js.map +1 -0
  135. package/{dist/types → lib/typescript/commonjs}/client.d.ts +1 -0
  136. package/lib/typescript/commonjs/client.d.ts.map +1 -0
  137. package/{dist/types → lib/typescript/commonjs}/errors.d.ts +1 -0
  138. package/lib/typescript/commonjs/errors.d.ts.map +1 -0
  139. package/{dist/types → lib/typescript/commonjs}/index.d.ts +1 -0
  140. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/index.native.d.ts +3 -0
  142. package/lib/typescript/commonjs/index.native.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts +13 -0
  144. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts +13 -0
  146. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts +8 -0
  148. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts +10 -0
  150. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  151. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts +26 -0
  152. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts +11 -0
  154. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts +11 -0
  156. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts +15 -0
  158. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts +10 -0
  160. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts +54 -0
  162. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts +11 -0
  164. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts +12 -0
  166. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/live/components/RoomCard.d.ts +38 -0
  168. package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts +11 -0
  170. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts +13 -0
  172. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts +78 -0
  174. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts +12 -0
  176. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts +3 -0
  178. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts +16 -0
  180. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts +29 -0
  182. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts +11 -0
  184. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts +5 -0
  186. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/live/index.d.ts +24 -0
  188. package/lib/typescript/commonjs/live/index.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/live/services/livekitService.d.ts +7 -0
  190. package/lib/typescript/commonjs/live/services/livekitService.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts +69 -0
  192. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/live/services/spacesService.d.ts +181 -0
  194. package/lib/typescript/commonjs/live/services/spacesService.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/live/types.d.ts +100 -0
  196. package/lib/typescript/commonjs/live/types.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/live/validation.d.ts +658 -0
  198. package/lib/typescript/commonjs/live/validation.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/package.json +1 -0
  200. package/{dist/types → lib/typescript/commonjs}/schema.d.ts +1 -0
  201. package/lib/typescript/commonjs/schema.d.ts.map +1 -0
  202. package/lib/typescript/module/client.d.ts +141 -0
  203. package/lib/typescript/module/client.d.ts.map +1 -0
  204. package/lib/typescript/module/errors.d.ts +9 -0
  205. package/lib/typescript/module/errors.d.ts.map +1 -0
  206. package/lib/typescript/module/index.d.ts +6 -0
  207. package/lib/typescript/module/index.d.ts.map +1 -0
  208. package/lib/typescript/module/index.native.d.ts +3 -0
  209. package/lib/typescript/module/index.native.d.ts.map +1 -0
  210. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts +13 -0
  211. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts.map +1 -0
  212. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts +13 -0
  213. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts.map +1 -0
  214. package/lib/typescript/module/live/components/AnimatedPulse.d.ts +8 -0
  215. package/lib/typescript/module/live/components/AnimatedPulse.d.ts.map +1 -0
  216. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts +10 -0
  217. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  218. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts +26 -0
  219. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts.map +1 -0
  220. package/lib/typescript/module/live/components/InsightsPanel.d.ts +11 -0
  221. package/lib/typescript/module/live/components/InsightsPanel.d.ts.map +1 -0
  222. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts +11 -0
  223. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts.map +1 -0
  224. package/lib/typescript/module/live/components/MiniRoomBar.d.ts +15 -0
  225. package/lib/typescript/module/live/components/MiniRoomBar.d.ts.map +1 -0
  226. package/lib/typescript/module/live/components/PanelHeader.d.ts +10 -0
  227. package/lib/typescript/module/live/components/PanelHeader.d.ts.map +1 -0
  228. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts +54 -0
  229. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts.map +1 -0
  230. package/lib/typescript/module/live/components/RecordingCard.d.ts +11 -0
  231. package/lib/typescript/module/live/components/RecordingCard.d.ts.map +1 -0
  232. package/lib/typescript/module/live/components/RecordingsPanel.d.ts +12 -0
  233. package/lib/typescript/module/live/components/RecordingsPanel.d.ts.map +1 -0
  234. package/lib/typescript/module/live/components/RoomCard.d.ts +38 -0
  235. package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -0
  236. package/lib/typescript/module/live/components/StreamConfigModal.d.ts +11 -0
  237. package/lib/typescript/module/live/components/StreamConfigModal.d.ts.map +1 -0
  238. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts +13 -0
  239. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts.map +1 -0
  240. package/lib/typescript/module/live/context/LiveConfigContext.d.ts +78 -0
  241. package/lib/typescript/module/live/context/LiveConfigContext.d.ts.map +1 -0
  242. package/lib/typescript/module/live/context/LiveRoomContext.d.ts +12 -0
  243. package/lib/typescript/module/live/context/LiveRoomContext.d.ts.map +1 -0
  244. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts +3 -0
  245. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  246. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts +16 -0
  247. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts.map +1 -0
  248. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts +29 -0
  249. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts.map +1 -0
  250. package/lib/typescript/module/live/hooks/useRoomManager.d.ts +11 -0
  251. package/lib/typescript/module/live/hooks/useRoomManager.d.ts.map +1 -0
  252. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts +5 -0
  253. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts.map +1 -0
  254. package/lib/typescript/module/live/index.d.ts +24 -0
  255. package/lib/typescript/module/live/index.d.ts.map +1 -0
  256. package/lib/typescript/module/live/services/livekitService.d.ts +7 -0
  257. package/lib/typescript/module/live/services/livekitService.d.ts.map +1 -0
  258. package/lib/typescript/module/live/services/spaceSocketService.d.ts +69 -0
  259. package/lib/typescript/module/live/services/spaceSocketService.d.ts.map +1 -0
  260. package/lib/typescript/module/live/services/spacesService.d.ts +181 -0
  261. package/lib/typescript/module/live/services/spacesService.d.ts.map +1 -0
  262. package/lib/typescript/module/live/types.d.ts +100 -0
  263. package/lib/typescript/module/live/types.d.ts.map +1 -0
  264. package/lib/typescript/module/live/validation.d.ts +658 -0
  265. package/lib/typescript/module/live/validation.d.ts.map +1 -0
  266. package/lib/typescript/module/package.json +1 -0
  267. package/lib/typescript/module/schema.d.ts +1072 -0
  268. package/lib/typescript/module/schema.d.ts.map +1 -0
  269. package/package.json +133 -21
  270. package/src/index.native.ts +2 -0
  271. package/src/live/assets/icons/spaces-icon.tsx +15 -0
  272. package/src/live/assets/icons/syra-icon.tsx +13 -0
  273. package/src/live/assets/sounds/intro.mp3 +0 -0
  274. package/src/live/components/AnimatedPulse.tsx +52 -0
  275. package/src/live/components/AnimatedSpeakerRing.tsx +101 -0
  276. package/src/live/components/CreateRoomSheet.tsx +654 -0
  277. package/src/live/components/InsightsPanel.tsx +202 -0
  278. package/src/live/components/LiveRoomSheet.tsx +969 -0
  279. package/src/live/components/MiniRoomBar.tsx +166 -0
  280. package/src/live/components/PanelHeader.tsx +36 -0
  281. package/src/live/components/PodcastStreamPicker.tsx +1155 -0
  282. package/src/live/components/RecordingCard.tsx +154 -0
  283. package/src/live/components/RecordingsPanel.tsx +251 -0
  284. package/src/live/components/RoomCard.tsx +494 -0
  285. package/src/live/components/StreamConfigModal.tsx +600 -0
  286. package/src/live/components/StreamConfigPanel.tsx +729 -0
  287. package/src/live/context/LiveConfigContext.tsx +96 -0
  288. package/src/live/context/LiveRoomContext.tsx +235 -0
  289. package/src/live/hooks/useActiveSpeakers.ts +39 -0
  290. package/src/live/hooks/useRoomAudio.ts +103 -0
  291. package/src/live/hooks/useRoomConnection.ts +162 -0
  292. package/src/live/hooks/useRoomManager.ts +17 -0
  293. package/src/live/hooks/useRoomUsers.ts +52 -0
  294. package/src/live/index.ts +92 -0
  295. package/src/live/services/livekitService.ts +11 -0
  296. package/src/live/services/spaceSocketService.ts +136 -0
  297. package/src/live/services/spacesService.ts +692 -0
  298. package/src/live/types.ts +119 -0
  299. package/src/live/validation.ts +279 -0
  300. package/dist/cjs/client.js +0 -244
  301. package/dist/cjs/errors.js +0 -16
  302. package/dist/cjs/index.js +0 -15
  303. package/dist/cjs/package.json +0 -3
  304. package/dist/esm/client.js +0 -240
  305. package/dist/esm/errors.js +0 -12
  306. package/dist/esm/index.js +0 -3
  307. package/dist/esm/package.json +0 -3
@@ -0,0 +1,1072 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Minimal, self-contained schemas for the public Syra API response shapes this
4
+ * SDK consumes. Intentionally NOT shared with the Syra backend's internal
5
+ * types — the SDK validates only the fields it returns, and tolerantly strips
6
+ * everything else (Zod object schemas drop unknown keys by default), so the API
7
+ * can evolve without breaking external consumers.
8
+ */
9
+ /** A single artwork variant. The backend serializes `url` as `/api/images/:id`. */
10
+ export declare const coverArtVariantSchema: z.ZodObject<{
11
+ id: z.ZodOptional<z.ZodString>;
12
+ url: z.ZodString;
13
+ width: z.ZodOptional<z.ZodNumber>;
14
+ height: z.ZodOptional<z.ZodNumber>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ url: string;
17
+ id?: string | undefined;
18
+ width?: number | undefined;
19
+ height?: number | undefined;
20
+ }, {
21
+ url: string;
22
+ id?: string | undefined;
23
+ width?: number | undefined;
24
+ height?: number | undefined;
25
+ }>;
26
+ export type CoverArtVariant = z.infer<typeof coverArtVariantSchema>;
27
+ /** Named artwork variants keyed by size. */
28
+ export declare const coverArtSizesSchema: z.ZodObject<{
29
+ small: z.ZodOptional<z.ZodObject<{
30
+ id: z.ZodOptional<z.ZodString>;
31
+ url: z.ZodString;
32
+ width: z.ZodOptional<z.ZodNumber>;
33
+ height: z.ZodOptional<z.ZodNumber>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ url: string;
36
+ id?: string | undefined;
37
+ width?: number | undefined;
38
+ height?: number | undefined;
39
+ }, {
40
+ url: string;
41
+ id?: string | undefined;
42
+ width?: number | undefined;
43
+ height?: number | undefined;
44
+ }>>;
45
+ medium: z.ZodOptional<z.ZodObject<{
46
+ id: z.ZodOptional<z.ZodString>;
47
+ url: z.ZodString;
48
+ width: z.ZodOptional<z.ZodNumber>;
49
+ height: z.ZodOptional<z.ZodNumber>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ url: string;
52
+ id?: string | undefined;
53
+ width?: number | undefined;
54
+ height?: number | undefined;
55
+ }, {
56
+ url: string;
57
+ id?: string | undefined;
58
+ width?: number | undefined;
59
+ height?: number | undefined;
60
+ }>>;
61
+ large: z.ZodOptional<z.ZodObject<{
62
+ id: z.ZodOptional<z.ZodString>;
63
+ url: z.ZodString;
64
+ width: z.ZodOptional<z.ZodNumber>;
65
+ height: z.ZodOptional<z.ZodNumber>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ url: string;
68
+ id?: string | undefined;
69
+ width?: number | undefined;
70
+ height?: number | undefined;
71
+ }, {
72
+ url: string;
73
+ id?: string | undefined;
74
+ width?: number | undefined;
75
+ height?: number | undefined;
76
+ }>>;
77
+ xlarge: z.ZodOptional<z.ZodObject<{
78
+ id: z.ZodOptional<z.ZodString>;
79
+ url: z.ZodString;
80
+ width: z.ZodOptional<z.ZodNumber>;
81
+ height: z.ZodOptional<z.ZodNumber>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ url: string;
84
+ id?: string | undefined;
85
+ width?: number | undefined;
86
+ height?: number | undefined;
87
+ }, {
88
+ url: string;
89
+ id?: string | undefined;
90
+ width?: number | undefined;
91
+ height?: number | undefined;
92
+ }>>;
93
+ xxlarge: z.ZodOptional<z.ZodObject<{
94
+ id: z.ZodOptional<z.ZodString>;
95
+ url: z.ZodString;
96
+ width: z.ZodOptional<z.ZodNumber>;
97
+ height: z.ZodOptional<z.ZodNumber>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ url: string;
100
+ id?: string | undefined;
101
+ width?: number | undefined;
102
+ height?: number | undefined;
103
+ }, {
104
+ url: string;
105
+ id?: string | undefined;
106
+ width?: number | undefined;
107
+ height?: number | undefined;
108
+ }>>;
109
+ original: z.ZodOptional<z.ZodObject<{
110
+ id: z.ZodOptional<z.ZodString>;
111
+ url: z.ZodString;
112
+ width: z.ZodOptional<z.ZodNumber>;
113
+ height: z.ZodOptional<z.ZodNumber>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ url: string;
116
+ id?: string | undefined;
117
+ width?: number | undefined;
118
+ height?: number | undefined;
119
+ }, {
120
+ url: string;
121
+ id?: string | undefined;
122
+ width?: number | undefined;
123
+ height?: number | undefined;
124
+ }>>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ small?: {
127
+ url: string;
128
+ id?: string | undefined;
129
+ width?: number | undefined;
130
+ height?: number | undefined;
131
+ } | undefined;
132
+ medium?: {
133
+ url: string;
134
+ id?: string | undefined;
135
+ width?: number | undefined;
136
+ height?: number | undefined;
137
+ } | undefined;
138
+ large?: {
139
+ url: string;
140
+ id?: string | undefined;
141
+ width?: number | undefined;
142
+ height?: number | undefined;
143
+ } | undefined;
144
+ xlarge?: {
145
+ url: string;
146
+ id?: string | undefined;
147
+ width?: number | undefined;
148
+ height?: number | undefined;
149
+ } | undefined;
150
+ xxlarge?: {
151
+ url: string;
152
+ id?: string | undefined;
153
+ width?: number | undefined;
154
+ height?: number | undefined;
155
+ } | undefined;
156
+ original?: {
157
+ url: string;
158
+ id?: string | undefined;
159
+ width?: number | undefined;
160
+ height?: number | undefined;
161
+ } | undefined;
162
+ }, {
163
+ small?: {
164
+ url: string;
165
+ id?: string | undefined;
166
+ width?: number | undefined;
167
+ height?: number | undefined;
168
+ } | undefined;
169
+ medium?: {
170
+ url: string;
171
+ id?: string | undefined;
172
+ width?: number | undefined;
173
+ height?: number | undefined;
174
+ } | undefined;
175
+ large?: {
176
+ url: string;
177
+ id?: string | undefined;
178
+ width?: number | undefined;
179
+ height?: number | undefined;
180
+ } | undefined;
181
+ xlarge?: {
182
+ url: string;
183
+ id?: string | undefined;
184
+ width?: number | undefined;
185
+ height?: number | undefined;
186
+ } | undefined;
187
+ xxlarge?: {
188
+ url: string;
189
+ id?: string | undefined;
190
+ width?: number | undefined;
191
+ height?: number | undefined;
192
+ } | undefined;
193
+ original?: {
194
+ url: string;
195
+ id?: string | undefined;
196
+ width?: number | undefined;
197
+ height?: number | undefined;
198
+ } | undefined;
199
+ }>;
200
+ export type CoverArtSizes = z.infer<typeof coverArtSizesSchema>;
201
+ /** Artwork size name. */
202
+ export type ArtworkSize = keyof CoverArtSizes;
203
+ /**
204
+ * The summary view of a track returned by the public catalog endpoints — just
205
+ * enough to render a song row and play its preview.
206
+ */
207
+ export declare const trackSummarySchema: z.ZodObject<{
208
+ id: z.ZodString;
209
+ title: z.ZodString;
210
+ artistId: z.ZodOptional<z.ZodString>;
211
+ artistName: z.ZodString;
212
+ albumId: z.ZodOptional<z.ZodString>;
213
+ albumName: z.ZodOptional<z.ZodString>;
214
+ duration: z.ZodNumber;
215
+ coverArt: z.ZodOptional<z.ZodString>;
216
+ coverArtSizes: z.ZodOptional<z.ZodObject<{
217
+ small: z.ZodOptional<z.ZodObject<{
218
+ id: z.ZodOptional<z.ZodString>;
219
+ url: z.ZodString;
220
+ width: z.ZodOptional<z.ZodNumber>;
221
+ height: z.ZodOptional<z.ZodNumber>;
222
+ }, "strip", z.ZodTypeAny, {
223
+ url: string;
224
+ id?: string | undefined;
225
+ width?: number | undefined;
226
+ height?: number | undefined;
227
+ }, {
228
+ url: string;
229
+ id?: string | undefined;
230
+ width?: number | undefined;
231
+ height?: number | undefined;
232
+ }>>;
233
+ medium: z.ZodOptional<z.ZodObject<{
234
+ id: z.ZodOptional<z.ZodString>;
235
+ url: z.ZodString;
236
+ width: z.ZodOptional<z.ZodNumber>;
237
+ height: z.ZodOptional<z.ZodNumber>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ url: string;
240
+ id?: string | undefined;
241
+ width?: number | undefined;
242
+ height?: number | undefined;
243
+ }, {
244
+ url: string;
245
+ id?: string | undefined;
246
+ width?: number | undefined;
247
+ height?: number | undefined;
248
+ }>>;
249
+ large: z.ZodOptional<z.ZodObject<{
250
+ id: z.ZodOptional<z.ZodString>;
251
+ url: z.ZodString;
252
+ width: z.ZodOptional<z.ZodNumber>;
253
+ height: z.ZodOptional<z.ZodNumber>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ url: string;
256
+ id?: string | undefined;
257
+ width?: number | undefined;
258
+ height?: number | undefined;
259
+ }, {
260
+ url: string;
261
+ id?: string | undefined;
262
+ width?: number | undefined;
263
+ height?: number | undefined;
264
+ }>>;
265
+ xlarge: z.ZodOptional<z.ZodObject<{
266
+ id: z.ZodOptional<z.ZodString>;
267
+ url: z.ZodString;
268
+ width: z.ZodOptional<z.ZodNumber>;
269
+ height: z.ZodOptional<z.ZodNumber>;
270
+ }, "strip", z.ZodTypeAny, {
271
+ url: string;
272
+ id?: string | undefined;
273
+ width?: number | undefined;
274
+ height?: number | undefined;
275
+ }, {
276
+ url: string;
277
+ id?: string | undefined;
278
+ width?: number | undefined;
279
+ height?: number | undefined;
280
+ }>>;
281
+ xxlarge: z.ZodOptional<z.ZodObject<{
282
+ id: z.ZodOptional<z.ZodString>;
283
+ url: z.ZodString;
284
+ width: z.ZodOptional<z.ZodNumber>;
285
+ height: z.ZodOptional<z.ZodNumber>;
286
+ }, "strip", z.ZodTypeAny, {
287
+ url: string;
288
+ id?: string | undefined;
289
+ width?: number | undefined;
290
+ height?: number | undefined;
291
+ }, {
292
+ url: string;
293
+ id?: string | undefined;
294
+ width?: number | undefined;
295
+ height?: number | undefined;
296
+ }>>;
297
+ original: z.ZodOptional<z.ZodObject<{
298
+ id: z.ZodOptional<z.ZodString>;
299
+ url: z.ZodString;
300
+ width: z.ZodOptional<z.ZodNumber>;
301
+ height: z.ZodOptional<z.ZodNumber>;
302
+ }, "strip", z.ZodTypeAny, {
303
+ url: string;
304
+ id?: string | undefined;
305
+ width?: number | undefined;
306
+ height?: number | undefined;
307
+ }, {
308
+ url: string;
309
+ id?: string | undefined;
310
+ width?: number | undefined;
311
+ height?: number | undefined;
312
+ }>>;
313
+ }, "strip", z.ZodTypeAny, {
314
+ small?: {
315
+ url: string;
316
+ id?: string | undefined;
317
+ width?: number | undefined;
318
+ height?: number | undefined;
319
+ } | undefined;
320
+ medium?: {
321
+ url: string;
322
+ id?: string | undefined;
323
+ width?: number | undefined;
324
+ height?: number | undefined;
325
+ } | undefined;
326
+ large?: {
327
+ url: string;
328
+ id?: string | undefined;
329
+ width?: number | undefined;
330
+ height?: number | undefined;
331
+ } | undefined;
332
+ xlarge?: {
333
+ url: string;
334
+ id?: string | undefined;
335
+ width?: number | undefined;
336
+ height?: number | undefined;
337
+ } | undefined;
338
+ xxlarge?: {
339
+ url: string;
340
+ id?: string | undefined;
341
+ width?: number | undefined;
342
+ height?: number | undefined;
343
+ } | undefined;
344
+ original?: {
345
+ url: string;
346
+ id?: string | undefined;
347
+ width?: number | undefined;
348
+ height?: number | undefined;
349
+ } | undefined;
350
+ }, {
351
+ small?: {
352
+ url: string;
353
+ id?: string | undefined;
354
+ width?: number | undefined;
355
+ height?: number | undefined;
356
+ } | undefined;
357
+ medium?: {
358
+ url: string;
359
+ id?: string | undefined;
360
+ width?: number | undefined;
361
+ height?: number | undefined;
362
+ } | undefined;
363
+ large?: {
364
+ url: string;
365
+ id?: string | undefined;
366
+ width?: number | undefined;
367
+ height?: number | undefined;
368
+ } | undefined;
369
+ xlarge?: {
370
+ url: string;
371
+ id?: string | undefined;
372
+ width?: number | undefined;
373
+ height?: number | undefined;
374
+ } | undefined;
375
+ xxlarge?: {
376
+ url: string;
377
+ id?: string | undefined;
378
+ width?: number | undefined;
379
+ height?: number | undefined;
380
+ } | undefined;
381
+ original?: {
382
+ url: string;
383
+ id?: string | undefined;
384
+ width?: number | undefined;
385
+ height?: number | undefined;
386
+ } | undefined;
387
+ }>>;
388
+ previewAvailable: z.ZodOptional<z.ZodBoolean>;
389
+ }, "strip", z.ZodTypeAny, {
390
+ id: string;
391
+ title: string;
392
+ artistName: string;
393
+ duration: number;
394
+ artistId?: string | undefined;
395
+ albumId?: string | undefined;
396
+ albumName?: string | undefined;
397
+ coverArt?: string | undefined;
398
+ coverArtSizes?: {
399
+ small?: {
400
+ url: string;
401
+ id?: string | undefined;
402
+ width?: number | undefined;
403
+ height?: number | undefined;
404
+ } | undefined;
405
+ medium?: {
406
+ url: string;
407
+ id?: string | undefined;
408
+ width?: number | undefined;
409
+ height?: number | undefined;
410
+ } | undefined;
411
+ large?: {
412
+ url: string;
413
+ id?: string | undefined;
414
+ width?: number | undefined;
415
+ height?: number | undefined;
416
+ } | undefined;
417
+ xlarge?: {
418
+ url: string;
419
+ id?: string | undefined;
420
+ width?: number | undefined;
421
+ height?: number | undefined;
422
+ } | undefined;
423
+ xxlarge?: {
424
+ url: string;
425
+ id?: string | undefined;
426
+ width?: number | undefined;
427
+ height?: number | undefined;
428
+ } | undefined;
429
+ original?: {
430
+ url: string;
431
+ id?: string | undefined;
432
+ width?: number | undefined;
433
+ height?: number | undefined;
434
+ } | undefined;
435
+ } | undefined;
436
+ previewAvailable?: boolean | undefined;
437
+ }, {
438
+ id: string;
439
+ title: string;
440
+ artistName: string;
441
+ duration: number;
442
+ artistId?: string | undefined;
443
+ albumId?: string | undefined;
444
+ albumName?: string | undefined;
445
+ coverArt?: string | undefined;
446
+ coverArtSizes?: {
447
+ small?: {
448
+ url: string;
449
+ id?: string | undefined;
450
+ width?: number | undefined;
451
+ height?: number | undefined;
452
+ } | undefined;
453
+ medium?: {
454
+ url: string;
455
+ id?: string | undefined;
456
+ width?: number | undefined;
457
+ height?: number | undefined;
458
+ } | undefined;
459
+ large?: {
460
+ url: string;
461
+ id?: string | undefined;
462
+ width?: number | undefined;
463
+ height?: number | undefined;
464
+ } | undefined;
465
+ xlarge?: {
466
+ url: string;
467
+ id?: string | undefined;
468
+ width?: number | undefined;
469
+ height?: number | undefined;
470
+ } | undefined;
471
+ xxlarge?: {
472
+ url: string;
473
+ id?: string | undefined;
474
+ width?: number | undefined;
475
+ height?: number | undefined;
476
+ } | undefined;
477
+ original?: {
478
+ url: string;
479
+ id?: string | undefined;
480
+ width?: number | undefined;
481
+ height?: number | undefined;
482
+ } | undefined;
483
+ } | undefined;
484
+ previewAvailable?: boolean | undefined;
485
+ }>;
486
+ export type TrackSummary = z.infer<typeof trackSummarySchema>;
487
+ /**
488
+ * The summary view of a podcast SHOW returned by the public podcast endpoints
489
+ * (`GET /api/podcasts/search`, `GET /api/podcasts/:id`) — just enough to render
490
+ * a show card and deep-link into the Syra app.
491
+ *
492
+ * Artwork mirrors tracks: `image` is the re-hosted Syra image id (resolved via
493
+ * `/api/images/:id`); `imageSizes` is the multi-resolution variant set (each
494
+ * variant `url` is `/api/images/:id`); `imageSourceUrl` keeps the original
495
+ * external artwork URL as an absolute fallback when re-hosting has not run yet.
496
+ */
497
+ export declare const podcastSummarySchema: z.ZodObject<{
498
+ id: z.ZodString;
499
+ title: z.ZodString;
500
+ author: z.ZodOptional<z.ZodString>;
501
+ description: z.ZodOptional<z.ZodString>;
502
+ image: z.ZodOptional<z.ZodString>;
503
+ imageSizes: z.ZodOptional<z.ZodObject<{
504
+ small: z.ZodOptional<z.ZodObject<{
505
+ id: z.ZodOptional<z.ZodString>;
506
+ url: z.ZodString;
507
+ width: z.ZodOptional<z.ZodNumber>;
508
+ height: z.ZodOptional<z.ZodNumber>;
509
+ }, "strip", z.ZodTypeAny, {
510
+ url: string;
511
+ id?: string | undefined;
512
+ width?: number | undefined;
513
+ height?: number | undefined;
514
+ }, {
515
+ url: string;
516
+ id?: string | undefined;
517
+ width?: number | undefined;
518
+ height?: number | undefined;
519
+ }>>;
520
+ medium: z.ZodOptional<z.ZodObject<{
521
+ id: z.ZodOptional<z.ZodString>;
522
+ url: z.ZodString;
523
+ width: z.ZodOptional<z.ZodNumber>;
524
+ height: z.ZodOptional<z.ZodNumber>;
525
+ }, "strip", z.ZodTypeAny, {
526
+ url: string;
527
+ id?: string | undefined;
528
+ width?: number | undefined;
529
+ height?: number | undefined;
530
+ }, {
531
+ url: string;
532
+ id?: string | undefined;
533
+ width?: number | undefined;
534
+ height?: number | undefined;
535
+ }>>;
536
+ large: z.ZodOptional<z.ZodObject<{
537
+ id: z.ZodOptional<z.ZodString>;
538
+ url: z.ZodString;
539
+ width: z.ZodOptional<z.ZodNumber>;
540
+ height: z.ZodOptional<z.ZodNumber>;
541
+ }, "strip", z.ZodTypeAny, {
542
+ url: string;
543
+ id?: string | undefined;
544
+ width?: number | undefined;
545
+ height?: number | undefined;
546
+ }, {
547
+ url: string;
548
+ id?: string | undefined;
549
+ width?: number | undefined;
550
+ height?: number | undefined;
551
+ }>>;
552
+ xlarge: z.ZodOptional<z.ZodObject<{
553
+ id: z.ZodOptional<z.ZodString>;
554
+ url: z.ZodString;
555
+ width: z.ZodOptional<z.ZodNumber>;
556
+ height: z.ZodOptional<z.ZodNumber>;
557
+ }, "strip", z.ZodTypeAny, {
558
+ url: string;
559
+ id?: string | undefined;
560
+ width?: number | undefined;
561
+ height?: number | undefined;
562
+ }, {
563
+ url: string;
564
+ id?: string | undefined;
565
+ width?: number | undefined;
566
+ height?: number | undefined;
567
+ }>>;
568
+ xxlarge: z.ZodOptional<z.ZodObject<{
569
+ id: z.ZodOptional<z.ZodString>;
570
+ url: z.ZodString;
571
+ width: z.ZodOptional<z.ZodNumber>;
572
+ height: z.ZodOptional<z.ZodNumber>;
573
+ }, "strip", z.ZodTypeAny, {
574
+ url: string;
575
+ id?: string | undefined;
576
+ width?: number | undefined;
577
+ height?: number | undefined;
578
+ }, {
579
+ url: string;
580
+ id?: string | undefined;
581
+ width?: number | undefined;
582
+ height?: number | undefined;
583
+ }>>;
584
+ original: z.ZodOptional<z.ZodObject<{
585
+ id: z.ZodOptional<z.ZodString>;
586
+ url: z.ZodString;
587
+ width: z.ZodOptional<z.ZodNumber>;
588
+ height: z.ZodOptional<z.ZodNumber>;
589
+ }, "strip", z.ZodTypeAny, {
590
+ url: string;
591
+ id?: string | undefined;
592
+ width?: number | undefined;
593
+ height?: number | undefined;
594
+ }, {
595
+ url: string;
596
+ id?: string | undefined;
597
+ width?: number | undefined;
598
+ height?: number | undefined;
599
+ }>>;
600
+ }, "strip", z.ZodTypeAny, {
601
+ small?: {
602
+ url: string;
603
+ id?: string | undefined;
604
+ width?: number | undefined;
605
+ height?: number | undefined;
606
+ } | undefined;
607
+ medium?: {
608
+ url: string;
609
+ id?: string | undefined;
610
+ width?: number | undefined;
611
+ height?: number | undefined;
612
+ } | undefined;
613
+ large?: {
614
+ url: string;
615
+ id?: string | undefined;
616
+ width?: number | undefined;
617
+ height?: number | undefined;
618
+ } | undefined;
619
+ xlarge?: {
620
+ url: string;
621
+ id?: string | undefined;
622
+ width?: number | undefined;
623
+ height?: number | undefined;
624
+ } | undefined;
625
+ xxlarge?: {
626
+ url: string;
627
+ id?: string | undefined;
628
+ width?: number | undefined;
629
+ height?: number | undefined;
630
+ } | undefined;
631
+ original?: {
632
+ url: string;
633
+ id?: string | undefined;
634
+ width?: number | undefined;
635
+ height?: number | undefined;
636
+ } | undefined;
637
+ }, {
638
+ small?: {
639
+ url: string;
640
+ id?: string | undefined;
641
+ width?: number | undefined;
642
+ height?: number | undefined;
643
+ } | undefined;
644
+ medium?: {
645
+ url: string;
646
+ id?: string | undefined;
647
+ width?: number | undefined;
648
+ height?: number | undefined;
649
+ } | undefined;
650
+ large?: {
651
+ url: string;
652
+ id?: string | undefined;
653
+ width?: number | undefined;
654
+ height?: number | undefined;
655
+ } | undefined;
656
+ xlarge?: {
657
+ url: string;
658
+ id?: string | undefined;
659
+ width?: number | undefined;
660
+ height?: number | undefined;
661
+ } | undefined;
662
+ xxlarge?: {
663
+ url: string;
664
+ id?: string | undefined;
665
+ width?: number | undefined;
666
+ height?: number | undefined;
667
+ } | undefined;
668
+ original?: {
669
+ url: string;
670
+ id?: string | undefined;
671
+ width?: number | undefined;
672
+ height?: number | undefined;
673
+ } | undefined;
674
+ }>>;
675
+ imageSourceUrl: z.ZodOptional<z.ZodString>;
676
+ }, "strip", z.ZodTypeAny, {
677
+ id: string;
678
+ title: string;
679
+ author?: string | undefined;
680
+ description?: string | undefined;
681
+ image?: string | undefined;
682
+ imageSizes?: {
683
+ small?: {
684
+ url: string;
685
+ id?: string | undefined;
686
+ width?: number | undefined;
687
+ height?: number | undefined;
688
+ } | undefined;
689
+ medium?: {
690
+ url: string;
691
+ id?: string | undefined;
692
+ width?: number | undefined;
693
+ height?: number | undefined;
694
+ } | undefined;
695
+ large?: {
696
+ url: string;
697
+ id?: string | undefined;
698
+ width?: number | undefined;
699
+ height?: number | undefined;
700
+ } | undefined;
701
+ xlarge?: {
702
+ url: string;
703
+ id?: string | undefined;
704
+ width?: number | undefined;
705
+ height?: number | undefined;
706
+ } | undefined;
707
+ xxlarge?: {
708
+ url: string;
709
+ id?: string | undefined;
710
+ width?: number | undefined;
711
+ height?: number | undefined;
712
+ } | undefined;
713
+ original?: {
714
+ url: string;
715
+ id?: string | undefined;
716
+ width?: number | undefined;
717
+ height?: number | undefined;
718
+ } | undefined;
719
+ } | undefined;
720
+ imageSourceUrl?: string | undefined;
721
+ }, {
722
+ id: string;
723
+ title: string;
724
+ author?: string | undefined;
725
+ description?: string | undefined;
726
+ image?: string | undefined;
727
+ imageSizes?: {
728
+ small?: {
729
+ url: string;
730
+ id?: string | undefined;
731
+ width?: number | undefined;
732
+ height?: number | undefined;
733
+ } | undefined;
734
+ medium?: {
735
+ url: string;
736
+ id?: string | undefined;
737
+ width?: number | undefined;
738
+ height?: number | undefined;
739
+ } | undefined;
740
+ large?: {
741
+ url: string;
742
+ id?: string | undefined;
743
+ width?: number | undefined;
744
+ height?: number | undefined;
745
+ } | undefined;
746
+ xlarge?: {
747
+ url: string;
748
+ id?: string | undefined;
749
+ width?: number | undefined;
750
+ height?: number | undefined;
751
+ } | undefined;
752
+ xxlarge?: {
753
+ url: string;
754
+ id?: string | undefined;
755
+ width?: number | undefined;
756
+ height?: number | undefined;
757
+ } | undefined;
758
+ original?: {
759
+ url: string;
760
+ id?: string | undefined;
761
+ width?: number | undefined;
762
+ height?: number | undefined;
763
+ } | undefined;
764
+ } | undefined;
765
+ imageSourceUrl?: string | undefined;
766
+ }>;
767
+ export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
768
+ /**
769
+ * The summary view of a podcast EPISODE returned by the public podcast endpoints
770
+ * (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
771
+ * list an episode and stream its audio.
772
+ *
773
+ * `enclosureUrl` is the direct audio file URL (e.g.
774
+ * `https://api.fastcast.ai/audio/<guid>.mp3`) and is REQUIRED: an episode with
775
+ * no enclosure is unplayable, so a row missing it is treated as malformed and
776
+ * dropped rather than surfaced as a dead entry. `enclosureType` /
777
+ * `enclosureLength` describe that file (MIME type and byte length); `duration`
778
+ * is the runtime in seconds and `pubDate` the ISO publish timestamp.
779
+ *
780
+ * Artwork mirrors the podcast SHOW: `image` is the re-hosted Syra image id
781
+ * (resolved via `/api/images/:id`); `imageSizes` is the multi-resolution variant
782
+ * set (each variant `url` is `/api/images/:id`); `imageSourceUrl` keeps the
783
+ * original external artwork URL as an absolute fallback when re-hosting has not
784
+ * run yet.
785
+ */
786
+ export declare const episodeSummarySchema: z.ZodObject<{
787
+ id: z.ZodString;
788
+ podcastId: z.ZodString;
789
+ title: z.ZodString;
790
+ description: z.ZodOptional<z.ZodString>;
791
+ enclosureUrl: z.ZodString;
792
+ enclosureType: z.ZodOptional<z.ZodString>;
793
+ enclosureLength: z.ZodOptional<z.ZodNumber>;
794
+ duration: z.ZodOptional<z.ZodNumber>;
795
+ pubDate: z.ZodOptional<z.ZodString>;
796
+ image: z.ZodOptional<z.ZodString>;
797
+ imageSizes: z.ZodOptional<z.ZodObject<{
798
+ small: z.ZodOptional<z.ZodObject<{
799
+ id: z.ZodOptional<z.ZodString>;
800
+ url: z.ZodString;
801
+ width: z.ZodOptional<z.ZodNumber>;
802
+ height: z.ZodOptional<z.ZodNumber>;
803
+ }, "strip", z.ZodTypeAny, {
804
+ url: string;
805
+ id?: string | undefined;
806
+ width?: number | undefined;
807
+ height?: number | undefined;
808
+ }, {
809
+ url: string;
810
+ id?: string | undefined;
811
+ width?: number | undefined;
812
+ height?: number | undefined;
813
+ }>>;
814
+ medium: z.ZodOptional<z.ZodObject<{
815
+ id: z.ZodOptional<z.ZodString>;
816
+ url: z.ZodString;
817
+ width: z.ZodOptional<z.ZodNumber>;
818
+ height: z.ZodOptional<z.ZodNumber>;
819
+ }, "strip", z.ZodTypeAny, {
820
+ url: string;
821
+ id?: string | undefined;
822
+ width?: number | undefined;
823
+ height?: number | undefined;
824
+ }, {
825
+ url: string;
826
+ id?: string | undefined;
827
+ width?: number | undefined;
828
+ height?: number | undefined;
829
+ }>>;
830
+ large: z.ZodOptional<z.ZodObject<{
831
+ id: z.ZodOptional<z.ZodString>;
832
+ url: z.ZodString;
833
+ width: z.ZodOptional<z.ZodNumber>;
834
+ height: z.ZodOptional<z.ZodNumber>;
835
+ }, "strip", z.ZodTypeAny, {
836
+ url: string;
837
+ id?: string | undefined;
838
+ width?: number | undefined;
839
+ height?: number | undefined;
840
+ }, {
841
+ url: string;
842
+ id?: string | undefined;
843
+ width?: number | undefined;
844
+ height?: number | undefined;
845
+ }>>;
846
+ xlarge: z.ZodOptional<z.ZodObject<{
847
+ id: z.ZodOptional<z.ZodString>;
848
+ url: z.ZodString;
849
+ width: z.ZodOptional<z.ZodNumber>;
850
+ height: z.ZodOptional<z.ZodNumber>;
851
+ }, "strip", z.ZodTypeAny, {
852
+ url: string;
853
+ id?: string | undefined;
854
+ width?: number | undefined;
855
+ height?: number | undefined;
856
+ }, {
857
+ url: string;
858
+ id?: string | undefined;
859
+ width?: number | undefined;
860
+ height?: number | undefined;
861
+ }>>;
862
+ xxlarge: z.ZodOptional<z.ZodObject<{
863
+ id: z.ZodOptional<z.ZodString>;
864
+ url: z.ZodString;
865
+ width: z.ZodOptional<z.ZodNumber>;
866
+ height: z.ZodOptional<z.ZodNumber>;
867
+ }, "strip", z.ZodTypeAny, {
868
+ url: string;
869
+ id?: string | undefined;
870
+ width?: number | undefined;
871
+ height?: number | undefined;
872
+ }, {
873
+ url: string;
874
+ id?: string | undefined;
875
+ width?: number | undefined;
876
+ height?: number | undefined;
877
+ }>>;
878
+ original: z.ZodOptional<z.ZodObject<{
879
+ id: z.ZodOptional<z.ZodString>;
880
+ url: z.ZodString;
881
+ width: z.ZodOptional<z.ZodNumber>;
882
+ height: z.ZodOptional<z.ZodNumber>;
883
+ }, "strip", z.ZodTypeAny, {
884
+ url: string;
885
+ id?: string | undefined;
886
+ width?: number | undefined;
887
+ height?: number | undefined;
888
+ }, {
889
+ url: string;
890
+ id?: string | undefined;
891
+ width?: number | undefined;
892
+ height?: number | undefined;
893
+ }>>;
894
+ }, "strip", z.ZodTypeAny, {
895
+ small?: {
896
+ url: string;
897
+ id?: string | undefined;
898
+ width?: number | undefined;
899
+ height?: number | undefined;
900
+ } | undefined;
901
+ medium?: {
902
+ url: string;
903
+ id?: string | undefined;
904
+ width?: number | undefined;
905
+ height?: number | undefined;
906
+ } | undefined;
907
+ large?: {
908
+ url: string;
909
+ id?: string | undefined;
910
+ width?: number | undefined;
911
+ height?: number | undefined;
912
+ } | undefined;
913
+ xlarge?: {
914
+ url: string;
915
+ id?: string | undefined;
916
+ width?: number | undefined;
917
+ height?: number | undefined;
918
+ } | undefined;
919
+ xxlarge?: {
920
+ url: string;
921
+ id?: string | undefined;
922
+ width?: number | undefined;
923
+ height?: number | undefined;
924
+ } | undefined;
925
+ original?: {
926
+ url: string;
927
+ id?: string | undefined;
928
+ width?: number | undefined;
929
+ height?: number | undefined;
930
+ } | undefined;
931
+ }, {
932
+ small?: {
933
+ url: string;
934
+ id?: string | undefined;
935
+ width?: number | undefined;
936
+ height?: number | undefined;
937
+ } | undefined;
938
+ medium?: {
939
+ url: string;
940
+ id?: string | undefined;
941
+ width?: number | undefined;
942
+ height?: number | undefined;
943
+ } | undefined;
944
+ large?: {
945
+ url: string;
946
+ id?: string | undefined;
947
+ width?: number | undefined;
948
+ height?: number | undefined;
949
+ } | undefined;
950
+ xlarge?: {
951
+ url: string;
952
+ id?: string | undefined;
953
+ width?: number | undefined;
954
+ height?: number | undefined;
955
+ } | undefined;
956
+ xxlarge?: {
957
+ url: string;
958
+ id?: string | undefined;
959
+ width?: number | undefined;
960
+ height?: number | undefined;
961
+ } | undefined;
962
+ original?: {
963
+ url: string;
964
+ id?: string | undefined;
965
+ width?: number | undefined;
966
+ height?: number | undefined;
967
+ } | undefined;
968
+ }>>;
969
+ imageSourceUrl: z.ZodOptional<z.ZodString>;
970
+ }, "strip", z.ZodTypeAny, {
971
+ id: string;
972
+ title: string;
973
+ podcastId: string;
974
+ enclosureUrl: string;
975
+ duration?: number | undefined;
976
+ description?: string | undefined;
977
+ image?: string | undefined;
978
+ imageSizes?: {
979
+ small?: {
980
+ url: string;
981
+ id?: string | undefined;
982
+ width?: number | undefined;
983
+ height?: number | undefined;
984
+ } | undefined;
985
+ medium?: {
986
+ url: string;
987
+ id?: string | undefined;
988
+ width?: number | undefined;
989
+ height?: number | undefined;
990
+ } | undefined;
991
+ large?: {
992
+ url: string;
993
+ id?: string | undefined;
994
+ width?: number | undefined;
995
+ height?: number | undefined;
996
+ } | undefined;
997
+ xlarge?: {
998
+ url: string;
999
+ id?: string | undefined;
1000
+ width?: number | undefined;
1001
+ height?: number | undefined;
1002
+ } | undefined;
1003
+ xxlarge?: {
1004
+ url: string;
1005
+ id?: string | undefined;
1006
+ width?: number | undefined;
1007
+ height?: number | undefined;
1008
+ } | undefined;
1009
+ original?: {
1010
+ url: string;
1011
+ id?: string | undefined;
1012
+ width?: number | undefined;
1013
+ height?: number | undefined;
1014
+ } | undefined;
1015
+ } | undefined;
1016
+ imageSourceUrl?: string | undefined;
1017
+ enclosureType?: string | undefined;
1018
+ enclosureLength?: number | undefined;
1019
+ pubDate?: string | undefined;
1020
+ }, {
1021
+ id: string;
1022
+ title: string;
1023
+ podcastId: string;
1024
+ enclosureUrl: string;
1025
+ duration?: number | undefined;
1026
+ description?: string | undefined;
1027
+ image?: string | undefined;
1028
+ imageSizes?: {
1029
+ small?: {
1030
+ url: string;
1031
+ id?: string | undefined;
1032
+ width?: number | undefined;
1033
+ height?: number | undefined;
1034
+ } | undefined;
1035
+ medium?: {
1036
+ url: string;
1037
+ id?: string | undefined;
1038
+ width?: number | undefined;
1039
+ height?: number | undefined;
1040
+ } | undefined;
1041
+ large?: {
1042
+ url: string;
1043
+ id?: string | undefined;
1044
+ width?: number | undefined;
1045
+ height?: number | undefined;
1046
+ } | undefined;
1047
+ xlarge?: {
1048
+ url: string;
1049
+ id?: string | undefined;
1050
+ width?: number | undefined;
1051
+ height?: number | undefined;
1052
+ } | undefined;
1053
+ xxlarge?: {
1054
+ url: string;
1055
+ id?: string | undefined;
1056
+ width?: number | undefined;
1057
+ height?: number | undefined;
1058
+ } | undefined;
1059
+ original?: {
1060
+ url: string;
1061
+ id?: string | undefined;
1062
+ width?: number | undefined;
1063
+ height?: number | undefined;
1064
+ } | undefined;
1065
+ } | undefined;
1066
+ imageSourceUrl?: string | undefined;
1067
+ enclosureType?: string | undefined;
1068
+ enclosureLength?: number | undefined;
1069
+ pubDate?: string | undefined;
1070
+ }>;
1071
+ export type EpisodeSummary = z.infer<typeof episodeSummarySchema>;
1072
+ //# sourceMappingURL=schema.d.ts.map