@polymorfa/sdk 0.1.0-dev.20260922093854

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 (347) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1881 -0
  3. package/dist/bridge.d.ts +31 -0
  4. package/dist/bridge.d.ts.map +1 -0
  5. package/dist/bridge.js +39 -0
  6. package/dist/bridge.js.map +1 -0
  7. package/dist/calls/api.d.ts +109 -0
  8. package/dist/calls/api.d.ts.map +1 -0
  9. package/dist/calls/api.js +179 -0
  10. package/dist/calls/api.js.map +1 -0
  11. package/dist/calls/call.d.ts +286 -0
  12. package/dist/calls/call.d.ts.map +1 -0
  13. package/dist/calls/call.js +860 -0
  14. package/dist/calls/call.js.map +1 -0
  15. package/dist/calls/client.d.ts +124 -0
  16. package/dist/calls/client.d.ts.map +1 -0
  17. package/dist/calls/client.js +447 -0
  18. package/dist/calls/client.js.map +1 -0
  19. package/dist/calls/diagnostics.d.ts +74 -0
  20. package/dist/calls/diagnostics.d.ts.map +1 -0
  21. package/dist/calls/diagnostics.js +133 -0
  22. package/dist/calls/diagnostics.js.map +1 -0
  23. package/dist/calls/errors.d.ts +37 -0
  24. package/dist/calls/errors.d.ts.map +1 -0
  25. package/dist/calls/errors.js +52 -0
  26. package/dist/calls/errors.js.map +1 -0
  27. package/dist/calls/events.d.ts +15 -0
  28. package/dist/calls/events.d.ts.map +1 -0
  29. package/dist/calls/events.js +34 -0
  30. package/dist/calls/events.js.map +1 -0
  31. package/dist/calls/index.d.ts +6 -0
  32. package/dist/calls/index.d.ts.map +1 -0
  33. package/dist/calls/index.js +7 -0
  34. package/dist/calls/index.js.map +1 -0
  35. package/dist/calls/internal.d.ts +18 -0
  36. package/dist/calls/internal.d.ts.map +1 -0
  37. package/dist/calls/internal.js +18 -0
  38. package/dist/calls/internal.js.map +1 -0
  39. package/dist/calls/lifecycle.d.ts +111 -0
  40. package/dist/calls/lifecycle.d.ts.map +1 -0
  41. package/dist/calls/lifecycle.js +490 -0
  42. package/dist/calls/lifecycle.js.map +1 -0
  43. package/dist/calls/media.d.ts +102 -0
  44. package/dist/calls/media.d.ts.map +1 -0
  45. package/dist/calls/media.js +414 -0
  46. package/dist/calls/media.js.map +1 -0
  47. package/dist/calls/protocol.d.ts +216 -0
  48. package/dist/calls/protocol.d.ts.map +1 -0
  49. package/dist/calls/protocol.js +268 -0
  50. package/dist/calls/protocol.js.map +1 -0
  51. package/dist/calls/token.d.ts +43 -0
  52. package/dist/calls/token.d.ts.map +1 -0
  53. package/dist/calls/token.js +146 -0
  54. package/dist/calls/token.js.map +1 -0
  55. package/dist/client.d.ts +65 -0
  56. package/dist/client.d.ts.map +1 -0
  57. package/dist/client.js +119 -0
  58. package/dist/client.js.map +1 -0
  59. package/dist/credentials.d.ts +50 -0
  60. package/dist/credentials.d.ts.map +1 -0
  61. package/dist/credentials.js +73 -0
  62. package/dist/credentials.js.map +1 -0
  63. package/dist/errors.d.ts +71 -0
  64. package/dist/errors.d.ts.map +1 -0
  65. package/dist/errors.js +129 -0
  66. package/dist/errors.js.map +1 -0
  67. package/dist/index.d.ts +70 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +61 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/media/whatsapp.d.ts +105 -0
  72. package/dist/media/whatsapp.d.ts.map +1 -0
  73. package/dist/media/whatsapp.js +624 -0
  74. package/dist/media/whatsapp.js.map +1 -0
  75. package/dist/messaging/bansafe.d.ts +30 -0
  76. package/dist/messaging/bansafe.d.ts.map +1 -0
  77. package/dist/messaging/bansafe.js +86 -0
  78. package/dist/messaging/bansafe.js.map +1 -0
  79. package/dist/messaging/business.d.ts +35 -0
  80. package/dist/messaging/business.d.ts.map +1 -0
  81. package/dist/messaging/business.js +145 -0
  82. package/dist/messaging/business.js.map +1 -0
  83. package/dist/messaging/calls.d.ts +9 -0
  84. package/dist/messaging/calls.d.ts.map +1 -0
  85. package/dist/messaging/calls.js +16 -0
  86. package/dist/messaging/calls.js.map +1 -0
  87. package/dist/messaging/campaigns.d.ts +19 -0
  88. package/dist/messaging/campaigns.d.ts.map +1 -0
  89. package/dist/messaging/campaigns.js +77 -0
  90. package/dist/messaging/campaigns.js.map +1 -0
  91. package/dist/messaging/channels.d.ts +23 -0
  92. package/dist/messaging/channels.d.ts.map +1 -0
  93. package/dist/messaging/channels.js +104 -0
  94. package/dist/messaging/channels.js.map +1 -0
  95. package/dist/messaging/chats.d.ts +14 -0
  96. package/dist/messaging/chats.d.ts.map +1 -0
  97. package/dist/messaging/chats.js +51 -0
  98. package/dist/messaging/chats.js.map +1 -0
  99. package/dist/messaging/client-tokens.d.ts +15 -0
  100. package/dist/messaging/client-tokens.d.ts.map +1 -0
  101. package/dist/messaging/client-tokens.js +64 -0
  102. package/dist/messaging/client-tokens.js.map +1 -0
  103. package/dist/messaging/client.d.ts +58 -0
  104. package/dist/messaging/client.d.ts.map +1 -0
  105. package/dist/messaging/client.js +100 -0
  106. package/dist/messaging/client.js.map +1 -0
  107. package/dist/messaging/contacts.d.ts +20 -0
  108. package/dist/messaging/contacts.d.ts.map +1 -0
  109. package/dist/messaging/contacts.js +75 -0
  110. package/dist/messaging/contacts.js.map +1 -0
  111. package/dist/messaging/groups.d.ts +34 -0
  112. package/dist/messaging/groups.d.ts.map +1 -0
  113. package/dist/messaging/groups.js +97 -0
  114. package/dist/messaging/groups.js.map +1 -0
  115. package/dist/messaging/identities.d.ts +9 -0
  116. package/dist/messaging/identities.d.ts.map +1 -0
  117. package/dist/messaging/identities.js +21 -0
  118. package/dist/messaging/identities.js.map +1 -0
  119. package/dist/messaging/labels.d.ts +16 -0
  120. package/dist/messaging/labels.d.ts.map +1 -0
  121. package/dist/messaging/labels.js +65 -0
  122. package/dist/messaging/labels.js.map +1 -0
  123. package/dist/messaging/media.d.ts +72 -0
  124. package/dist/messaging/media.d.ts.map +1 -0
  125. package/dist/messaging/media.js +142 -0
  126. package/dist/messaging/media.js.map +1 -0
  127. package/dist/messaging/messages.d.ts +18 -0
  128. package/dist/messaging/messages.d.ts.map +1 -0
  129. package/dist/messaging/messages.js +32 -0
  130. package/dist/messaging/messages.js.map +1 -0
  131. package/dist/messaging/observation-policies.d.ts +10 -0
  132. package/dist/messaging/observation-policies.d.ts.map +1 -0
  133. package/dist/messaging/observation-policies.js +28 -0
  134. package/dist/messaging/observation-policies.js.map +1 -0
  135. package/dist/messaging/onboarding.d.ts +53 -0
  136. package/dist/messaging/onboarding.d.ts.map +1 -0
  137. package/dist/messaging/onboarding.js +69 -0
  138. package/dist/messaging/onboarding.js.map +1 -0
  139. package/dist/messaging/presence.d.ts +12 -0
  140. package/dist/messaging/presence.d.ts.map +1 -0
  141. package/dist/messaging/presence.js +43 -0
  142. package/dist/messaging/presence.js.map +1 -0
  143. package/dist/messaging/privacy.d.ts +11 -0
  144. package/dist/messaging/privacy.d.ts.map +1 -0
  145. package/dist/messaging/privacy.js +34 -0
  146. package/dist/messaging/privacy.js.map +1 -0
  147. package/dist/messaging/profile.d.ts +13 -0
  148. package/dist/messaging/profile.d.ts.map +1 -0
  149. package/dist/messaging/profile.js +49 -0
  150. package/dist/messaging/profile.js.map +1 -0
  151. package/dist/messaging/quick-replies.d.ts +13 -0
  152. package/dist/messaging/quick-replies.d.ts.map +1 -0
  153. package/dist/messaging/quick-replies.js +45 -0
  154. package/dist/messaging/quick-replies.js.map +1 -0
  155. package/dist/messaging/quicklinks.d.ts +69 -0
  156. package/dist/messaging/quicklinks.d.ts.map +1 -0
  157. package/dist/messaging/quicklinks.js +45 -0
  158. package/dist/messaging/quicklinks.js.map +1 -0
  159. package/dist/messaging/session-configuration.d.ts +67 -0
  160. package/dist/messaging/session-configuration.d.ts.map +1 -0
  161. package/dist/messaging/session-configuration.js +2 -0
  162. package/dist/messaging/session-configuration.js.map +1 -0
  163. package/dist/messaging/sessions.d.ts +26 -0
  164. package/dist/messaging/sessions.d.ts.map +1 -0
  165. package/dist/messaging/sessions.js +108 -0
  166. package/dist/messaging/sessions.js.map +1 -0
  167. package/dist/messaging/templates.d.ts +15 -0
  168. package/dist/messaging/templates.d.ts.map +1 -0
  169. package/dist/messaging/templates.js +67 -0
  170. package/dist/messaging/templates.js.map +1 -0
  171. package/dist/messaging/testing-configuration.d.ts +89 -0
  172. package/dist/messaging/testing-configuration.d.ts.map +1 -0
  173. package/dist/messaging/testing-configuration.js +14 -0
  174. package/dist/messaging/testing-configuration.js.map +1 -0
  175. package/dist/messaging/types.d.ts +1793 -0
  176. package/dist/messaging/types.d.ts.map +1 -0
  177. package/dist/messaging/types.js +25 -0
  178. package/dist/messaging/types.js.map +1 -0
  179. package/dist/messaging/users.d.ts +9 -0
  180. package/dist/messaging/users.d.ts.map +1 -0
  181. package/dist/messaging/users.js +15 -0
  182. package/dist/messaging/users.js.map +1 -0
  183. package/dist/messaging/voip.d.ts +51 -0
  184. package/dist/messaging/voip.d.ts.map +1 -0
  185. package/dist/messaging/voip.js +293 -0
  186. package/dist/messaging/voip.js.map +1 -0
  187. package/dist/messaging/webhooks.d.ts +13 -0
  188. package/dist/messaging/webhooks.d.ts.map +1 -0
  189. package/dist/messaging/webhooks.js +48 -0
  190. package/dist/messaging/webhooks.js.map +1 -0
  191. package/dist/node.d.ts +55 -0
  192. package/dist/node.d.ts.map +1 -0
  193. package/dist/node.js +237 -0
  194. package/dist/node.js.map +1 -0
  195. package/dist/pagination.d.ts +24 -0
  196. package/dist/pagination.d.ts.map +1 -0
  197. package/dist/pagination.js +28 -0
  198. package/dist/pagination.js.map +1 -0
  199. package/dist/platform/api-keys.d.ts +10 -0
  200. package/dist/platform/api-keys.d.ts.map +1 -0
  201. package/dist/platform/api-keys.js +22 -0
  202. package/dist/platform/api-keys.js.map +1 -0
  203. package/dist/platform/audiences.d.ts +16 -0
  204. package/dist/platform/audiences.d.ts.map +1 -0
  205. package/dist/platform/audiences.js +46 -0
  206. package/dist/platform/audiences.js.map +1 -0
  207. package/dist/platform/audit-logs.d.ts +9 -0
  208. package/dist/platform/audit-logs.d.ts.map +1 -0
  209. package/dist/platform/audit-logs.js +20 -0
  210. package/dist/platform/audit-logs.js.map +1 -0
  211. package/dist/platform/bansafe.d.ts +24 -0
  212. package/dist/platform/bansafe.d.ts.map +1 -0
  213. package/dist/platform/bansafe.js +70 -0
  214. package/dist/platform/bansafe.js.map +1 -0
  215. package/dist/platform/billing.d.ts +13 -0
  216. package/dist/platform/billing.d.ts.map +1 -0
  217. package/dist/platform/billing.js +27 -0
  218. package/dist/platform/billing.js.map +1 -0
  219. package/dist/platform/campaigns.d.ts +28 -0
  220. package/dist/platform/campaigns.d.ts.map +1 -0
  221. package/dist/platform/campaigns.js +92 -0
  222. package/dist/platform/campaigns.js.map +1 -0
  223. package/dist/platform/customers.d.ts +23 -0
  224. package/dist/platform/customers.d.ts.map +1 -0
  225. package/dist/platform/customers.js +140 -0
  226. package/dist/platform/customers.js.map +1 -0
  227. package/dist/platform/developer-resources.d.ts +101 -0
  228. package/dist/platform/developer-resources.d.ts.map +1 -0
  229. package/dist/platform/developer-resources.js +250 -0
  230. package/dist/platform/developer-resources.js.map +1 -0
  231. package/dist/platform/developer-types.d.ts +378 -0
  232. package/dist/platform/developer-types.d.ts.map +1 -0
  233. package/dist/platform/developer-types.js +2 -0
  234. package/dist/platform/developer-types.js.map +1 -0
  235. package/dist/platform/event-stream.d.ts +114 -0
  236. package/dist/platform/event-stream.d.ts.map +1 -0
  237. package/dist/platform/event-stream.js +308 -0
  238. package/dist/platform/event-stream.js.map +1 -0
  239. package/dist/platform/media.d.ts +13 -0
  240. package/dist/platform/media.d.ts.map +1 -0
  241. package/dist/platform/media.js +33 -0
  242. package/dist/platform/media.js.map +1 -0
  243. package/dist/platform/members.d.ts +9 -0
  244. package/dist/platform/members.d.ts.map +1 -0
  245. package/dist/platform/members.js +15 -0
  246. package/dist/platform/members.js.map +1 -0
  247. package/dist/platform/opt-outs.d.ts +15 -0
  248. package/dist/platform/opt-outs.d.ts.map +1 -0
  249. package/dist/platform/opt-outs.js +36 -0
  250. package/dist/platform/opt-outs.js.map +1 -0
  251. package/dist/platform/organizations.d.ts +9 -0
  252. package/dist/platform/organizations.d.ts.map +1 -0
  253. package/dist/platform/organizations.js +15 -0
  254. package/dist/platform/organizations.js.map +1 -0
  255. package/dist/platform/project-tokens.d.ts +9 -0
  256. package/dist/platform/project-tokens.d.ts.map +1 -0
  257. package/dist/platform/project-tokens.js +16 -0
  258. package/dist/platform/project-tokens.js.map +1 -0
  259. package/dist/platform/projects.d.ts +24 -0
  260. package/dist/platform/projects.d.ts.map +1 -0
  261. package/dist/platform/projects.js +83 -0
  262. package/dist/platform/projects.js.map +1 -0
  263. package/dist/platform/quicklink-settings.d.ts +85 -0
  264. package/dist/platform/quicklink-settings.d.ts.map +1 -0
  265. package/dist/platform/quicklink-settings.js +35 -0
  266. package/dist/platform/quicklink-settings.js.map +1 -0
  267. package/dist/platform/response.d.ts +10 -0
  268. package/dist/platform/response.d.ts.map +1 -0
  269. package/dist/platform/response.js +41 -0
  270. package/dist/platform/response.js.map +1 -0
  271. package/dist/platform/security-incidents.d.ts +10 -0
  272. package/dist/platform/security-incidents.d.ts.map +1 -0
  273. package/dist/platform/security-incidents.js +22 -0
  274. package/dist/platform/security-incidents.js.map +1 -0
  275. package/dist/platform/session-bans.d.ts +13 -0
  276. package/dist/platform/session-bans.d.ts.map +1 -0
  277. package/dist/platform/session-bans.js +21 -0
  278. package/dist/platform/session-bans.js.map +1 -0
  279. package/dist/platform/session-configuration.d.ts +15 -0
  280. package/dist/platform/session-configuration.d.ts.map +1 -0
  281. package/dist/platform/session-configuration.js +36 -0
  282. package/dist/platform/session-configuration.js.map +1 -0
  283. package/dist/platform/sessions.d.ts +26 -0
  284. package/dist/platform/sessions.d.ts.map +1 -0
  285. package/dist/platform/sessions.js +121 -0
  286. package/dist/platform/sessions.js.map +1 -0
  287. package/dist/platform/sip-trunks.d.ts +141 -0
  288. package/dist/platform/sip-trunks.d.ts.map +1 -0
  289. package/dist/platform/sip-trunks.js +140 -0
  290. package/dist/platform/sip-trunks.js.map +1 -0
  291. package/dist/platform/types.d.ts +897 -0
  292. package/dist/platform/types.d.ts.map +1 -0
  293. package/dist/platform/types.js +2 -0
  294. package/dist/platform/types.js.map +1 -0
  295. package/dist/raw.d.ts +26 -0
  296. package/dist/raw.d.ts.map +1 -0
  297. package/dist/raw.js +79 -0
  298. package/dist/raw.js.map +1 -0
  299. package/dist/system.d.ts +37 -0
  300. package/dist/system.d.ts.map +1 -0
  301. package/dist/system.js +45 -0
  302. package/dist/system.js.map +1 -0
  303. package/dist/transport/body.d.ts +6 -0
  304. package/dist/transport/body.d.ts.map +1 -0
  305. package/dist/transport/body.js +33 -0
  306. package/dist/transport/body.js.map +1 -0
  307. package/dist/transport/content-disposition.d.ts +9 -0
  308. package/dist/transport/content-disposition.d.ts.map +1 -0
  309. package/dist/transport/content-disposition.js +107 -0
  310. package/dist/transport/content-disposition.js.map +1 -0
  311. package/dist/transport/http.d.ts +35 -0
  312. package/dist/transport/http.d.ts.map +1 -0
  313. package/dist/transport/http.js +660 -0
  314. package/dist/transport/http.js.map +1 -0
  315. package/dist/transport/idempotency.d.ts +10 -0
  316. package/dist/transport/idempotency.d.ts.map +1 -0
  317. package/dist/transport/idempotency.js +13 -0
  318. package/dist/transport/idempotency.js.map +1 -0
  319. package/dist/transport/retry.d.ts +11 -0
  320. package/dist/transport/retry.d.ts.map +1 -0
  321. package/dist/transport/retry.js +45 -0
  322. package/dist/transport/retry.js.map +1 -0
  323. package/dist/transport/types.d.ts +58 -0
  324. package/dist/transport/types.d.ts.map +1 -0
  325. package/dist/transport/types.js +2 -0
  326. package/dist/transport/types.js.map +1 -0
  327. package/dist/version.d.ts +2 -0
  328. package/dist/version.d.ts.map +1 -0
  329. package/dist/version.js +2 -0
  330. package/dist/version.js.map +1 -0
  331. package/dist/webhooks/events.d.ts +741 -0
  332. package/dist/webhooks/events.d.ts.map +1 -0
  333. package/dist/webhooks/events.js +80 -0
  334. package/dist/webhooks/events.js.map +1 -0
  335. package/dist/webhooks/index.d.ts +4 -0
  336. package/dist/webhooks/index.d.ts.map +1 -0
  337. package/dist/webhooks/index.js +4 -0
  338. package/dist/webhooks/index.js.map +1 -0
  339. package/dist/webhooks/utilities.d.ts +33 -0
  340. package/dist/webhooks/utilities.d.ts.map +1 -0
  341. package/dist/webhooks/utilities.js +67 -0
  342. package/dist/webhooks/utilities.js.map +1 -0
  343. package/dist/webhooks/verify.d.ts +9 -0
  344. package/dist/webhooks/verify.d.ts.map +1 -0
  345. package/dist/webhooks/verify.js +77 -0
  346. package/dist/webhooks/verify.js.map +1 -0
  347. package/package.json +58 -0
@@ -0,0 +1,286 @@
1
+ import type { CallsApi } from "./api.js";
2
+ import { type CallReportClient } from "./diagnostics.js";
3
+ import { CallsError } from "./errors.js";
4
+ import { Emitter } from "./events.js";
5
+ import { MediaSocket, type MediaSocketOptions, type MediaVideoSource } from "./media.js";
6
+ import { type MediaControlFrame, type Participant, type VideoFrame } from "./protocol.js";
7
+ export type CallDirection = "inbound" | "outbound";
8
+ /**
9
+ * `incoming` — ringing, or answered by another participant and open to join ·
10
+ * `ringing` — we placed it, remote not yet answered · `connecting` — accepted,
11
+ * media not yet attached · `connected` — media flowing · `reconnecting` —
12
+ * media dropped and is being reattached with the same connection id ·
13
+ * `ended` — terminal for this client.
14
+ */
15
+ export type CallState = "incoming" | "ringing" | "connecting" | "connected" | "reconnecting" | "ended";
16
+ /**
17
+ * `hangup` — this client ended the call for everyone · `left` — this client
18
+ * left; the call may continue for others · `claimed` — another participant
19
+ * claimed the call.
20
+ */
21
+ export type CallEndReason = "hangup" | "left" | "claimed" | "remote_hangup" | "rejected" | "missed" | "busy" | "timeout" | "connection_failed" | "pod_lost" | "capacity" | "unknown";
22
+ /** Who answered the call, and whether they claimed it. */
23
+ export interface CallClaim {
24
+ readonly answered: boolean;
25
+ readonly answeredBy?: string;
26
+ readonly exclusive: boolean;
27
+ /** Another participant claimed the call: stop ringing and do not decline it. */
28
+ readonly claimedByOther: boolean;
29
+ /** The call is answered without a claim and this client can join it. */
30
+ readonly canJoin: boolean;
31
+ }
32
+ export interface AnswerOptions {
33
+ /**
34
+ * Claim the call so nobody else can answer or join it. Default `false`:
35
+ * other participants keep ringing and can join.
36
+ */
37
+ readonly exclusive?: boolean;
38
+ /** Send video. Defaults to whether the call offered video. */
39
+ readonly video?: boolean;
40
+ }
41
+ /**
42
+ * One remote participant's video in a call. `id` identifies the video within
43
+ * the call; frames carry it as `source`.
44
+ */
45
+ export interface CallVideoSource {
46
+ readonly id: number;
47
+ /** Display label: the participant's number or ID, or the other connection's participant reference. */
48
+ readonly label: string;
49
+ /** The WhatsApp participant sending this video. */
50
+ readonly participant?: Participant;
51
+ /** Another application connection sending this video. */
52
+ readonly connectionId?: string;
53
+ /** Participant reference (`client:<id>` or `server:<name>`) of that connection, when known. */
54
+ readonly connectionParticipant?: string;
55
+ }
56
+ /** One received encoded video frame (H.264, Annex-B access unit). */
57
+ export interface CallVideoFrame {
58
+ /** `id` of the {@link CallVideoSource} that sent it. */
59
+ readonly source: number;
60
+ readonly keyframe: boolean;
61
+ /** Capture timestamp in microseconds. */
62
+ readonly timestampUs: number;
63
+ readonly data: Uint8Array;
64
+ }
65
+ /**
66
+ * One encoded video frame to send (H.264, Annex-B access unit). Include the
67
+ * decoder configuration (SPS/PPS) with every keyframe.
68
+ */
69
+ export interface OutgoingVideoFrame {
70
+ readonly keyframe: boolean;
71
+ /** Capture timestamp in microseconds. */
72
+ readonly timestampUs: number;
73
+ readonly data: Uint8Array;
74
+ }
75
+ type AudioEvents = {
76
+ data: [Int16Array];
77
+ };
78
+ type VideoEvents = {
79
+ /** A received frame; `frame.source` names its {@link CallVideoSource}. */
80
+ frame: [CallVideoFrame];
81
+ source: [CallVideoSource];
82
+ sourceRemoved: [id: number];
83
+ /** Send a keyframe with decoder configuration on the next write. */
84
+ keyframeRequest: [];
85
+ };
86
+ /**
87
+ * The call's merged audio as signed 16-bit mono PCM samples at
88
+ * {@link sampleRate}: `on("data")` is the call → you, `write()` is you → the call.
89
+ */
90
+ export declare class AudioTrack extends Emitter<AudioEvents> {
91
+ #private;
92
+ constructor(sampleRate: number);
93
+ /** s16le mono PCM rate both directions use. Final once the call is connected. */
94
+ get sampleRate(): number;
95
+ /** Push s16le mono PCM at {@link sampleRate}. Returns false when no media is attached. */
96
+ write(pcm: Int16Array): boolean;
97
+ /** @internal */
98
+ _attach(socket: MediaSocket | undefined, sampleRate?: number): void;
99
+ /** @internal */
100
+ _push(pcm: Int16Array): void;
101
+ /** @internal */
102
+ _detach(): void;
103
+ }
104
+ /**
105
+ * The call's video: one outgoing H.264 stream, and one received stream per
106
+ * remote participant. Streams are separate; nothing is composed.
107
+ */
108
+ export declare class VideoTrack extends Emitter<VideoEvents> {
109
+ #private;
110
+ /** Remote participant videos by `id`. */
111
+ get sources(): ReadonlyMap<number, CallVideoSource>;
112
+ /** Send one encoded frame. Returns false when no media is attached. */
113
+ write(frame: OutgoingVideoFrame): boolean;
114
+ /** @internal */
115
+ _attach(socket: MediaSocket | undefined): void;
116
+ /** @internal */
117
+ _frame(frame: VideoFrame): void;
118
+ /** @internal */
119
+ _source(source: MediaVideoSource): void;
120
+ /** @internal */
121
+ _sourceRemoved(handle: number): void;
122
+ /** @internal */
123
+ _clearSources(): void;
124
+ /** @internal */
125
+ _keyframeRequest(): void;
126
+ /** @internal */
127
+ _detach(): void;
128
+ }
129
+ type CallEvents = {
130
+ state: [CallState, previous: CallState];
131
+ connected: [];
132
+ ended: [reason: CallEndReason];
133
+ /** Answer or claim information changed. */
134
+ claim: [CallClaim];
135
+ /** The platform reported different capabilities (on `call.accepted`). */
136
+ capabilities: [CallCapabilities];
137
+ participantJoined: [Participant];
138
+ participantLeft: [participantId: string, reason: string | undefined];
139
+ participantState: [Participant];
140
+ error: [CallsError];
141
+ };
142
+ /**
143
+ * What a call supports, as reported by the platform. Defaults allow video and
144
+ * invitations when the platform does not report capabilities.
145
+ */
146
+ export interface CallCapabilities {
147
+ /** The call can carry video. */
148
+ readonly video: boolean;
149
+ /** More participants can be invited into the call. */
150
+ readonly invite: boolean;
151
+ }
152
+ export declare const DEFAULT_CALL_CAPABILITIES: CallCapabilities;
153
+ /**
154
+ * Read platform-reported capabilities, keeping `fallback` (the defaults
155
+ * unless given) for absent or malformed fields.
156
+ */
157
+ export declare function capabilitiesFrom(value: unknown, fallback?: CallCapabilities): CallCapabilities;
158
+ export interface CallInit {
159
+ readonly id: string;
160
+ readonly session: string;
161
+ readonly direction: CallDirection;
162
+ /** The other party as the platform presents it: number or public ID. */
163
+ readonly peer: string;
164
+ readonly video: boolean;
165
+ /** Platform-reported capabilities. */
166
+ readonly capabilities?: CallCapabilities;
167
+ readonly api: CallsApi;
168
+ readonly media: Omit<MediaSocketOptions, "api" | "callId" | "connectionId" | "participant" | "refreshToken">;
169
+ /** External media is owned by a browser/WebRTC adapter, which calls mediaConnected(). */
170
+ readonly mediaMode?: "socket" | "external";
171
+ /** Participant name for server credentials. */
172
+ readonly participant?: string;
173
+ /** Participant reference of this client, when known. */
174
+ readonly self?: () => string | undefined;
175
+ /** Media connection id; generated when omitted. */
176
+ readonly connectionId?: string;
177
+ /** Media reattach attempts after an unexpected drop. Default 3. */
178
+ readonly reconnectAttempts?: number;
179
+ readonly now?: () => number;
180
+ /** An outbound call this client placed with `exclusive: true`. */
181
+ readonly exclusive?: boolean;
182
+ /**
183
+ * Report this connection's media errors and reconnect count through
184
+ * `api.report`, naming this client. Socket media only; external media
185
+ * adapters report for themselves.
186
+ */
187
+ readonly diagnostics?: CallReportClient;
188
+ }
189
+ /**
190
+ * One call. Created by the client for every inbound `call.received` and every
191
+ * successful `place()`. Lifecycle transitions arrive from the client's socket;
192
+ * media arrives on this call's own connection once accepted.
193
+ */
194
+ export declare class Call extends Emitter<CallEvents> {
195
+ #private;
196
+ readonly id: string;
197
+ readonly session: string;
198
+ readonly direction: CallDirection;
199
+ readonly peer: string;
200
+ /** True when the call offered video and the call can carry it. */
201
+ get hasVideo(): boolean;
202
+ /**
203
+ * What this call supports. An outbound call starts with the defaults and
204
+ * takes the platform's report from `call.accepted` (`capabilities` event).
205
+ */
206
+ get capabilities(): CallCapabilities;
207
+ /** This client's media connection id; reused on reconnect. */
208
+ readonly connectionId: string;
209
+ readonly audio: AudioTrack;
210
+ readonly video: VideoTrack;
211
+ constructor(init: CallInit);
212
+ get state(): CallState;
213
+ get ended(): boolean;
214
+ get endReason(): CallEndReason | undefined;
215
+ get startedAt(): number;
216
+ get connectedAt(): number | undefined;
217
+ /** Seconds of connected time; frozen at the end so a retained call stops counting. */
218
+ get duration(): number;
219
+ get endedAt(): number | undefined;
220
+ get participants(): readonly Participant[];
221
+ /** Answer and claim state, as last reported by the platform. */
222
+ get claim(): CallClaim;
223
+ /**
224
+ * @internal This client holds the claim: its own exclusive answer, or a
225
+ * placement with `exclusive: true`. Media adapters end such a call, rather
226
+ * than leave it, when its media fails.
227
+ */
228
+ get _claimedBySelf(): boolean;
229
+ get claimedByOther(): boolean;
230
+ get canJoin(): boolean;
231
+ /**
232
+ * Answer a ringing call and attach media. With `exclusive: true` the call
233
+ * is claimed: other participants stop ringing and cannot join. Resolves
234
+ * once media is connected (after acceptance for external media). Rejects
235
+ * with {@link CallClaimedError} when another participant claimed the call;
236
+ * the call then stays visible as `claimedByOther`.
237
+ */
238
+ answer(options?: AnswerOptions): Promise<void>;
239
+ /**
240
+ * Join a call another participant answered without claiming it. Never
241
+ * claims. Rejects with {@link CallClaimedError} when the call is claimed.
242
+ */
243
+ join(options?: {
244
+ readonly video?: boolean;
245
+ }): Promise<void>;
246
+ /**
247
+ * Decline a ringing call. This ends the call for every participant, so
248
+ * applications decide when to call it; the client never declines on its own.
249
+ */
250
+ reject(): Promise<void>;
251
+ /**
252
+ * Leave the call: close this client's media connection. The call continues
253
+ * for everyone else. On a call this client never joined, only local
254
+ * tracking stops.
255
+ */
256
+ leave(): Promise<void>;
257
+ /** End the call for every participant. Idempotent. */
258
+ end(): Promise<void>;
259
+ /** Invite another party, turning a 1:1 call into a group call. */
260
+ addParticipant(to: string): Promise<Participant>;
261
+ /**
262
+ * @internal `call.accepted` arrived. For an outbound call the remote party
263
+ * answered; for an inbound call it names who answered and whether they
264
+ * claimed it.
265
+ */
266
+ _remoteAccepted(claim?: {
267
+ readonly answeredBy?: string;
268
+ readonly exclusive?: boolean;
269
+ /** Reported capabilities; absent keeps the current ones. */
270
+ readonly capabilities?: CallCapabilities;
271
+ }): Promise<void>;
272
+ /** @internal The platform reported the call over. */
273
+ _remoteEnded(reason: CallEndReason): void;
274
+ /** @internal Apply a validated participant update from either transport. */
275
+ _remoteParticipant(frame: ParticipantControlFrame): void;
276
+ /**
277
+ * @internal Media owned by another Polymorfa package connected. An outbound
278
+ * call still waits for the remote party to accept. Socket media ignores this.
279
+ */
280
+ mediaConnected(): void;
281
+ }
282
+ type ParticipantControlFrame = Extract<MediaControlFrame, {
283
+ type: "participant_joined" | "participant_state" | "participant_left";
284
+ }>;
285
+ export {};
286
+ //# sourceMappingURL=call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../calls/src/call.ts"],"names":[],"mappings":"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"}