@everfur/sdk 0.1.1 → 0.4.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 (219) hide show
  1. package/CHANGELOG.md +703 -4
  2. package/README.md +63 -23
  3. package/consent/package.json +8 -0
  4. package/dist/Chat-BZZ-Py5l.d.ts +128 -0
  5. package/dist/Chat-Dq4fffIO.d.cts +128 -0
  6. package/dist/DepthViews-BG3E25MD.d.ts +16 -0
  7. package/dist/DepthViews-B_hIypI6.d.cts +19 -0
  8. package/dist/DepthViews-CL75jyRA.d.cts +16 -0
  9. package/dist/DepthViews-CkYri51q.d.ts +19 -0
  10. package/dist/ErrorPolicyPort-CNf4uQZP.d.cts +22 -0
  11. package/dist/ErrorPolicyPort-CwbfmxzJ.d.ts +22 -0
  12. package/dist/{EverfurResult-D92-uL82.d.cts → EverfurResult-DN9pL2Ab.d.cts} +11 -10
  13. package/dist/{EverfurResult-D92-uL82.d.ts → EverfurResult-DN9pL2Ab.d.ts} +11 -10
  14. package/dist/{PhotoController-BItt5M7u.d.cts → PhotoController-3l7MT9jA.d.cts} +1 -1
  15. package/dist/{PhotoController-D8zMTdcW.d.ts → PhotoController-vzY5bfY_.d.ts} +1 -1
  16. package/dist/animations/index.cjs +1 -1997
  17. package/dist/animations/index.d.cts +35 -35
  18. package/dist/animations/index.d.ts +35 -35
  19. package/dist/animations/index.js +1 -1972
  20. package/dist/attachments-BorG422I.d.cts +146 -0
  21. package/dist/attachments-BrUWQYNK.d.ts +257 -0
  22. package/dist/attachments-D_SECjr1.d.cts +257 -0
  23. package/dist/attachments-DpldrvIW.d.ts +146 -0
  24. package/dist/bookingCopy-CqtDYvCR.d.ts +732 -0
  25. package/dist/bookingCopy-SREvkG19.d.cts +732 -0
  26. package/dist/branding-CsRdeNwK.d.cts +566 -0
  27. package/dist/branding-CsRdeNwK.d.ts +566 -0
  28. package/dist/callCopy-DoQKG3-L.d.cts +40 -0
  29. package/dist/callCopy-DoQKG3-L.d.ts +40 -0
  30. package/dist/casesRepository-DwtZVsbj.d.cts +51 -0
  31. package/dist/casesRepository-v6QczS9N.d.ts +51 -0
  32. package/dist/chat/index.cjs +1 -1170
  33. package/dist/chat/index.d.cts +32 -53
  34. package/dist/chat/index.d.ts +32 -53
  35. package/dist/chat/index.js +1 -1167
  36. package/dist/client/index.cjs +9 -2315
  37. package/dist/client/index.d.cts +80 -16
  38. package/dist/client/index.d.ts +80 -16
  39. package/dist/client/index.js +9 -2215
  40. package/dist/{config-CiJ0PVBB.d.ts → config--Wu1Umhd.d.cts} +64 -26
  41. package/dist/{config-BSjBdxrZ.d.cts → config-C7eb_IMD.d.ts} +64 -26
  42. package/dist/consent/index.cjs +1 -0
  43. package/dist/consent/index.d.cts +33 -0
  44. package/dist/consent/index.d.ts +33 -0
  45. package/dist/consent/index.js +1 -0
  46. package/dist/context-CL3lyuy1.d.cts +159 -0
  47. package/dist/context-CahAEha8.d.ts +159 -0
  48. package/dist/copy-DdVFDL01.d.ts +198 -0
  49. package/dist/copy-UeUJVk8X.d.cts +198 -0
  50. package/dist/core/index.cjs +13 -3178
  51. package/dist/core/index.d.cts +164 -29
  52. package/dist/core/index.d.ts +164 -29
  53. package/dist/core/index.js +13 -3166
  54. package/dist/depth-D5HwcvKC.d.cts +533 -0
  55. package/dist/depth-DvPwPuT_.d.ts +533 -0
  56. package/dist/entitlementRepository-B7egEdW6.d.ts +43 -0
  57. package/dist/entitlementRepository-BpJ7tiwl.d.cts +43 -0
  58. package/dist/{identity-Brl-lDd6.d.cts → identity-C2-08BZW.d.cts} +20 -7
  59. package/dist/{identity-DK9zORrG.d.ts → identity-CEi9GRFZ.d.ts} +20 -7
  60. package/dist/{ids-CJ1S6adf.d.cts → ids-B2GAAifq.d.cts} +1 -1
  61. package/dist/{ids-CJ1S6adf.d.ts → ids-B2GAAifq.d.ts} +1 -1
  62. package/dist/index.cjs +12 -4494
  63. package/dist/index.d.cts +30 -121
  64. package/dist/index.d.ts +30 -121
  65. package/dist/index.js +12 -4470
  66. package/dist/models-B-Uh2LTf.d.ts +214 -0
  67. package/dist/models-D2EUxPZY.d.cts +214 -0
  68. package/dist/notifications/index.cjs +2 -0
  69. package/dist/notifications/index.d.cts +17 -0
  70. package/dist/notifications/index.d.ts +17 -0
  71. package/dist/notifications/index.js +2 -0
  72. package/dist/optionalModule-DbJmsq5f.d.cts +21 -0
  73. package/dist/optionalModule-DbJmsq5f.d.ts +21 -0
  74. package/dist/pets-DJv2sj2H.d.ts +92 -0
  75. package/dist/pets-JVCXgRgR.d.cts +92 -0
  76. package/dist/petsRepository-B_gKbAzJ.d.cts +142 -0
  77. package/dist/petsRepository-Bk6GDwLs.d.ts +142 -0
  78. package/dist/photo/index.cjs +1 -2189
  79. package/dist/photo/index.d.cts +6 -6
  80. package/dist/photo/index.d.ts +6 -6
  81. package/dist/photo/index.js +1 -2186
  82. package/dist/ports-BN6RHF9W.d.cts +48 -0
  83. package/dist/ports-BN6RHF9W.d.ts +48 -0
  84. package/dist/ports-BY2ph0_y.d.cts +376 -0
  85. package/dist/ports-D7YW8qz9.d.ts +376 -0
  86. package/dist/profile-CSs1wlXT.d.cts +93 -0
  87. package/dist/profile-CSs1wlXT.d.ts +93 -0
  88. package/dist/records/depth/index.cjs +2 -0
  89. package/dist/records/depth/index.d.cts +13 -0
  90. package/dist/records/depth/index.d.ts +13 -0
  91. package/dist/records/depth/index.js +2 -0
  92. package/dist/records/index.cjs +3 -2839
  93. package/dist/records/index.d.cts +137 -203
  94. package/dist/records/index.d.ts +137 -203
  95. package/dist/records/index.js +3 -2833
  96. package/dist/requestFunnel-BjDpqqvm.d.cts +110 -0
  97. package/dist/requestFunnel-DFMGcluw.d.ts +110 -0
  98. package/dist/{resolve-Dq_4_agU.d.ts → resolve-D4Ywz5OS.d.cts} +10 -4
  99. package/dist/{resolve-Dq_4_agU.d.cts → resolve-D4Ywz5OS.d.ts} +10 -4
  100. package/dist/{runtime-Bvr8yqXm.d.cts → runtimeTypes-gZEJu-da.d.cts} +104 -132
  101. package/dist/{runtime-BIYzf9cK.d.ts → runtimeTypes-w5KqBMcs.d.ts} +104 -132
  102. package/dist/server/events/index.cjs +2 -0
  103. package/dist/server/events/index.d.cts +550 -0
  104. package/dist/server/events/index.d.ts +550 -0
  105. package/dist/server/events/index.js +2 -0
  106. package/dist/server/index.cjs +2 -533
  107. package/dist/server/index.d.cts +73 -18
  108. package/dist/server/index.d.ts +73 -18
  109. package/dist/server/index.js +2 -530
  110. package/dist/species-BXAIMh7I.d.cts +9 -0
  111. package/dist/species-BXAIMh7I.d.ts +9 -0
  112. package/dist/televet/booking/index.cjs +1 -0
  113. package/dist/televet/booking/index.d.cts +294 -0
  114. package/dist/televet/booking/index.d.ts +294 -0
  115. package/dist/televet/booking/index.js +1 -0
  116. package/dist/televet/call/index.cjs +1 -0
  117. package/dist/televet/call/index.d.cts +141 -0
  118. package/dist/televet/call/index.d.ts +141 -0
  119. package/dist/televet/call/index.js +1 -0
  120. package/dist/televet/index.cjs +1 -0
  121. package/dist/televet/index.d.cts +142 -0
  122. package/dist/televet/index.d.ts +142 -0
  123. package/dist/televet/index.js +1 -0
  124. package/dist/testing/index.cjs +5 -823
  125. package/dist/testing/index.d.cts +18 -4
  126. package/dist/testing/index.d.ts +18 -4
  127. package/dist/testing/index.js +5 -820
  128. package/dist/testing/rn/index.cjs +1 -449
  129. package/dist/testing/rn/index.d.cts +18 -29
  130. package/dist/testing/rn/index.d.ts +18 -29
  131. package/dist/testing/rn/index.js +1 -444
  132. package/dist/testing/web/index.cjs +1 -0
  133. package/dist/testing/web/index.d.cts +132 -0
  134. package/dist/testing/web/index.d.ts +132 -0
  135. package/dist/testing/web/index.js +1 -0
  136. package/dist/timelineRows-C15jxFFH.d.ts +19 -0
  137. package/dist/timelineRows-odO8g9r2.d.cts +19 -0
  138. package/dist/typeStyle-CKqVYD6L.d.cts +111 -0
  139. package/dist/typeStyle-DmoyacDG.d.ts +111 -0
  140. package/dist/uploadTransport-D0M0T4hN.d.ts +38 -0
  141. package/dist/uploadTransport-DKJHs3Yj.d.cts +38 -0
  142. package/dist/useRecordsDepth-C6rjEaLn.d.cts +237 -0
  143. package/dist/useRecordsDepth-crhBllQK.d.ts +237 -0
  144. package/dist/useVetVisit-Bc84hWUU.d.cts +187 -0
  145. package/dist/useVetVisit-CjmMa896.d.ts +187 -0
  146. package/dist/video/index.cjs +1 -1941
  147. package/dist/video/index.d.cts +4 -4
  148. package/dist/video/index.d.ts +4 -4
  149. package/dist/video/index.js +1 -1938
  150. package/dist/view-Bxwxp4xD.d.ts +310 -0
  151. package/dist/view-DyitEO0m.d.cts +310 -0
  152. package/dist/visitIntent-D7_yVp1I.d.cts +8 -0
  153. package/dist/visitIntent-D7_yVp1I.d.ts +8 -0
  154. package/dist/web/consent/index.cjs +1 -0
  155. package/dist/web/consent/index.d.cts +34 -0
  156. package/dist/web/consent/index.d.ts +34 -0
  157. package/dist/web/consent/index.js +1 -0
  158. package/dist/web/index.cjs +14 -0
  159. package/dist/web/index.d.cts +218 -0
  160. package/dist/web/index.d.ts +218 -0
  161. package/dist/web/index.js +14 -0
  162. package/dist/web/notifications/index.cjs +2 -0
  163. package/dist/web/notifications/index.d.cts +213 -0
  164. package/dist/web/notifications/index.d.ts +213 -0
  165. package/dist/web/notifications/index.js +2 -0
  166. package/dist/web/records/depth/index.cjs +2 -0
  167. package/dist/web/records/depth/index.d.cts +12 -0
  168. package/dist/web/records/depth/index.d.ts +12 -0
  169. package/dist/web/records/depth/index.js +2 -0
  170. package/dist/web/records/index.cjs +4 -0
  171. package/dist/web/records/index.d.cts +285 -0
  172. package/dist/web/records/index.d.ts +285 -0
  173. package/dist/web/records/index.js +4 -0
  174. package/dist/web/televet/booking/index.cjs +1 -0
  175. package/dist/web/televet/booking/index.d.cts +349 -0
  176. package/dist/web/televet/booking/index.d.ts +349 -0
  177. package/dist/web/televet/booking/index.js +1 -0
  178. package/dist/web/televet/call/index.cjs +1 -0
  179. package/dist/web/televet/call/index.d.cts +142 -0
  180. package/dist/web/televet/call/index.d.ts +142 -0
  181. package/dist/web/televet/call/index.js +1 -0
  182. package/dist/web/televet/index.cjs +1 -0
  183. package/dist/web/televet/index.d.cts +136 -0
  184. package/dist/web/televet/index.d.ts +136 -0
  185. package/dist/web/televet/index.js +1 -0
  186. package/notifications/package.json +8 -0
  187. package/package.json +266 -10
  188. package/records/depth/package.json +8 -0
  189. package/server/events/device-blocked.cjs +15 -0
  190. package/server/events/package.json +9 -0
  191. package/televet/booking/package.json +8 -0
  192. package/televet/call/package.json +8 -0
  193. package/televet/package.json +8 -0
  194. package/testing/web/native-blocked.cjs +12 -0
  195. package/testing/web/package.json +8 -0
  196. package/web/consent/native-blocked.cjs +12 -0
  197. package/web/consent/package.json +8 -0
  198. package/web/native-blocked.cjs +12 -0
  199. package/web/notifications/native-blocked.cjs +12 -0
  200. package/web/notifications/package.json +8 -0
  201. package/web/package.json +8 -0
  202. package/web/records/depth/native-blocked.cjs +12 -0
  203. package/web/records/depth/package.json +8 -0
  204. package/web/records/native-blocked.cjs +12 -0
  205. package/web/records/package.json +8 -0
  206. package/web/televet/booking/native-blocked.cjs +12 -0
  207. package/web/televet/booking/package.json +8 -0
  208. package/web/televet/call/native-blocked.cjs +12 -0
  209. package/web/televet/call/package.json +8 -0
  210. package/web/televet/native-blocked.cjs +12 -0
  211. package/web/televet/package.json +8 -0
  212. package/dist/ChatController-CKdBvPj2.d.ts +0 -146
  213. package/dist/ChatController-CpUMvvZf.d.cts +0 -146
  214. package/dist/FilePort-BabWrv7I.d.cts +0 -22
  215. package/dist/FilePort-BabWrv7I.d.ts +0 -22
  216. package/dist/petsRepository-BEGb97M9.d.cts +0 -326
  217. package/dist/petsRepository-Bu18r2kK.d.ts +0 -326
  218. package/dist/requestFunnel-DuUH-kAe.d.cts +0 -28
  219. package/dist/requestFunnel-dio5OmR9.d.ts +0 -28
@@ -1,59 +1,38 @@
1
- import { f as EverfurError, E as EverfurResult } from '../EverfurResult-D92-uL82.cjs';
2
- import { a as ConversationId, b as ResponseId, P as PetRef } from '../ids-CJ1S6adf.cjs';
3
- import { e as ChatStatus, c as ChatMessage } from '../ChatController-CpUMvvZf.cjs';
4
- import { ReactNode } from 'react';
5
- import { StyleProp, ViewStyle } from 'react-native';
6
- import '../requestFunnel-DuUH-kAe.cjs';
7
- import '../config-BSjBdxrZ.cjs';
8
- import '../identity-Brl-lDd6.cjs';
1
+ export { C as ChatFeedbackReason, a as ChatFeedbackReasonOption, b as ChatSentiment, E as EverfurChatDraftStore, L as LifecyclePort, U as UrgencyDisplayLevel, c as UseChatAttachmentsOptions, d as UseChatAttachmentsState, e as UseEverfurChatState, f as UseEverfurPetsState, u as useChatAttachments, g as useEverfurChat, h as useEverfurPets } from '../attachments-D_SECjr1.cjs';
2
+ export { A as AttachmentSource, E as EverfurChat, a as EverfurChatAttachments, b as EverfurChatProps, R as RenderVetAction } from '../Chat-Dq4fffIO.cjs';
3
+ import { U as UploadTransport } from '../ports-BN6RHF9W.cjs';
4
+ export { C as ChatCheckin, a as ChatCheckinTarget, b as ChatConversation, c as ChatConversationListOptions, d as ChatConversationPage, e as ChatFeedbackReceipt, f as ChatFeedbackType, g as ChatHistoryOptions, h as ChatMessagePage } from '../ports-BY2ph0_y.cjs';
5
+ export { C as CheckinAnswer, a as CheckinOutcome, W as WatchCase } from '../casesRepository-DwtZVsbj.cjs';
6
+ export { P as EverfurChatPet, W as WidgetPet } from '../petsRepository-B_gKbAzJ.cjs';
7
+ export { A as AttachmentError, a as AttachmentErrorCode, b as AttachmentOutcome, c as AttachmentQueue, d as AttachmentState, e as AttachmentStatus } from '../attachments-BorG422I.cjs';
8
+ import '../EverfurResult-DN9pL2Ab.cjs';
9
+ import '../ids-B2GAAifq.cjs';
10
+ import '../config--Wu1Umhd.cjs';
11
+ import 'react';
12
+ import 'react-native';
13
+ import '../identity-C2-08BZW.cjs';
14
+ import '../requestFunnel-BjDpqqvm.cjs';
15
+ import '../ErrorPolicyPort-CNf4uQZP.cjs';
9
16
  import '../TelemetryPort-BDNr00hu.cjs';
17
+ import '../profile-CSs1wlXT.cjs';
10
18
 
11
- /**
12
- * Headless chat state. `isBootstrapping` is a deliberate superset of the SPEC-10 §7.4 minimum: the
13
- * controller snapshot carries it (§7.1) and the prebuilt component maps it to the Loading state.
14
- */
15
- interface UseEverfurChatState {
16
- readonly status: ChatStatus;
17
- readonly messages: ReadonlyArray<ChatMessage>;
18
- readonly conversationId: ConversationId | null;
19
- readonly error: EverfurError | null;
20
- readonly isStreaming: boolean;
21
- readonly isBootstrapping: boolean;
22
- /**
23
- * Backend-owned suggested-prompt strings (flattened + de-duplicated) from the chat bootstrap. Empty until the
24
- * bootstrap resolves and empty when the backend returns none; the prebuilt component renders them as the
25
- * tappable "Follow up questions" list, each string a ready-to-send message.
26
- */
27
- readonly suggestedPrompts: ReadonlyArray<string>;
28
- /**
29
- * Optimistic; the blank user bubble is removed on a pre-first-delta failure (controller-owned). Drives the
30
- * controller stream to completion and settles: `ok(responseId)` on a completed turn (the id is null when
31
- * the terminal `done` frame carried no message id), or `err` with the terminal EverfurError.
32
- */
33
- send(text: string): Promise<EverfurResult<ResponseId | null>>;
34
- /** Re-sends the last turn with the SAME idempotency key; no duplicate user bubble (§7.4). */
35
- retryLast(): Promise<EverfurResult<ResponseId | null>>;
36
- /** Aborts the in-flight stream; not an error. */
37
- stop(): void;
38
- }
39
- /**
40
- * @throws {EverfurConfigError} kind 'not-initialized' if called outside an EverfurProvider.
41
- * Auto-disposes its controller reference on unmount.
42
- */
43
- declare function useEverfurChat(opts?: {
44
- readonly petRef?: PetRef;
45
- readonly conversationId?: ConversationId;
46
- }): UseEverfurChatState;
47
-
48
- interface EverfurChatProps {
49
- readonly petRef?: PetRef;
50
- readonly conversationId?: ConversationId;
51
- readonly style?: StyleProp<ViewStyle>;
19
+ /** The subset of `fetch` this adapter calls. */
20
+ type RnChatUploadFetch = (url: string, init: {
21
+ readonly method: 'POST';
22
+ readonly body: FormData;
23
+ readonly credentials: 'omit';
24
+ readonly signal?: AbortSignal;
25
+ }) => Promise<{
26
+ readonly ok: boolean;
27
+ }>;
28
+ interface RnChatAttachmentTransportOptions {
29
+ /** Test seam: the fetch to use. Defaults to the global `fetch`. A host has no reason to set it. */
30
+ readonly fetch?: RnChatUploadFetch;
52
31
  }
53
32
  /**
54
- * Entitlement-gated, four-state chat surface. Entitlement-OFF renders the CapabilityGate OffState;
55
- * otherwise the body maps the controller snapshot to exactly one deliberate state.
33
+ * Create the React Native chat attachment transport. `EverfurChat` builds one itself when the host passes
34
+ * `attachments`; a host composing its own composer over `useChatAttachments` passes it as `transport`.
56
35
  */
57
- declare function EverfurChat(props: EverfurChatProps): ReactNode;
36
+ declare function createRnChatAttachmentTransport(options?: RnChatAttachmentTransportOptions): UploadTransport;
58
37
 
59
- export { EverfurChat, type EverfurChatProps, type UseEverfurChatState, useEverfurChat };
38
+ export { type RnChatAttachmentTransportOptions, createRnChatAttachmentTransport };
@@ -1,59 +1,38 @@
1
- import { f as EverfurError, E as EverfurResult } from '../EverfurResult-D92-uL82.js';
2
- import { a as ConversationId, b as ResponseId, P as PetRef } from '../ids-CJ1S6adf.js';
3
- import { e as ChatStatus, c as ChatMessage } from '../ChatController-CKdBvPj2.js';
4
- import { ReactNode } from 'react';
5
- import { StyleProp, ViewStyle } from 'react-native';
6
- import '../requestFunnel-dio5OmR9.js';
7
- import '../config-CiJ0PVBB.js';
8
- import '../identity-DK9zORrG.js';
1
+ export { C as ChatFeedbackReason, a as ChatFeedbackReasonOption, b as ChatSentiment, E as EverfurChatDraftStore, L as LifecyclePort, U as UrgencyDisplayLevel, c as UseChatAttachmentsOptions, d as UseChatAttachmentsState, e as UseEverfurChatState, f as UseEverfurPetsState, u as useChatAttachments, g as useEverfurChat, h as useEverfurPets } from '../attachments-BrUWQYNK.js';
2
+ export { A as AttachmentSource, E as EverfurChat, a as EverfurChatAttachments, b as EverfurChatProps, R as RenderVetAction } from '../Chat-BZZ-Py5l.js';
3
+ import { U as UploadTransport } from '../ports-BN6RHF9W.js';
4
+ export { C as ChatCheckin, a as ChatCheckinTarget, b as ChatConversation, c as ChatConversationListOptions, d as ChatConversationPage, e as ChatFeedbackReceipt, f as ChatFeedbackType, g as ChatHistoryOptions, h as ChatMessagePage } from '../ports-D7YW8qz9.js';
5
+ export { C as CheckinAnswer, a as CheckinOutcome, W as WatchCase } from '../casesRepository-v6QczS9N.js';
6
+ export { P as EverfurChatPet, W as WidgetPet } from '../petsRepository-Bk6GDwLs.js';
7
+ export { A as AttachmentError, a as AttachmentErrorCode, b as AttachmentOutcome, c as AttachmentQueue, d as AttachmentState, e as AttachmentStatus } from '../attachments-DpldrvIW.js';
8
+ import '../EverfurResult-DN9pL2Ab.js';
9
+ import '../ids-B2GAAifq.js';
10
+ import '../config-C7eb_IMD.js';
11
+ import 'react';
12
+ import 'react-native';
13
+ import '../identity-CEi9GRFZ.js';
14
+ import '../requestFunnel-DFMGcluw.js';
15
+ import '../ErrorPolicyPort-CwbfmxzJ.js';
9
16
  import '../TelemetryPort-BDNr00hu.js';
17
+ import '../profile-CSs1wlXT.js';
10
18
 
11
- /**
12
- * Headless chat state. `isBootstrapping` is a deliberate superset of the SPEC-10 §7.4 minimum: the
13
- * controller snapshot carries it (§7.1) and the prebuilt component maps it to the Loading state.
14
- */
15
- interface UseEverfurChatState {
16
- readonly status: ChatStatus;
17
- readonly messages: ReadonlyArray<ChatMessage>;
18
- readonly conversationId: ConversationId | null;
19
- readonly error: EverfurError | null;
20
- readonly isStreaming: boolean;
21
- readonly isBootstrapping: boolean;
22
- /**
23
- * Backend-owned suggested-prompt strings (flattened + de-duplicated) from the chat bootstrap. Empty until the
24
- * bootstrap resolves and empty when the backend returns none; the prebuilt component renders them as the
25
- * tappable "Follow up questions" list, each string a ready-to-send message.
26
- */
27
- readonly suggestedPrompts: ReadonlyArray<string>;
28
- /**
29
- * Optimistic; the blank user bubble is removed on a pre-first-delta failure (controller-owned). Drives the
30
- * controller stream to completion and settles: `ok(responseId)` on a completed turn (the id is null when
31
- * the terminal `done` frame carried no message id), or `err` with the terminal EverfurError.
32
- */
33
- send(text: string): Promise<EverfurResult<ResponseId | null>>;
34
- /** Re-sends the last turn with the SAME idempotency key; no duplicate user bubble (§7.4). */
35
- retryLast(): Promise<EverfurResult<ResponseId | null>>;
36
- /** Aborts the in-flight stream; not an error. */
37
- stop(): void;
38
- }
39
- /**
40
- * @throws {EverfurConfigError} kind 'not-initialized' if called outside an EverfurProvider.
41
- * Auto-disposes its controller reference on unmount.
42
- */
43
- declare function useEverfurChat(opts?: {
44
- readonly petRef?: PetRef;
45
- readonly conversationId?: ConversationId;
46
- }): UseEverfurChatState;
47
-
48
- interface EverfurChatProps {
49
- readonly petRef?: PetRef;
50
- readonly conversationId?: ConversationId;
51
- readonly style?: StyleProp<ViewStyle>;
19
+ /** The subset of `fetch` this adapter calls. */
20
+ type RnChatUploadFetch = (url: string, init: {
21
+ readonly method: 'POST';
22
+ readonly body: FormData;
23
+ readonly credentials: 'omit';
24
+ readonly signal?: AbortSignal;
25
+ }) => Promise<{
26
+ readonly ok: boolean;
27
+ }>;
28
+ interface RnChatAttachmentTransportOptions {
29
+ /** Test seam: the fetch to use. Defaults to the global `fetch`. A host has no reason to set it. */
30
+ readonly fetch?: RnChatUploadFetch;
52
31
  }
53
32
  /**
54
- * Entitlement-gated, four-state chat surface. Entitlement-OFF renders the CapabilityGate OffState;
55
- * otherwise the body maps the controller snapshot to exactly one deliberate state.
33
+ * Create the React Native chat attachment transport. `EverfurChat` builds one itself when the host passes
34
+ * `attachments`; a host composing its own composer over `useChatAttachments` passes it as `transport`.
56
35
  */
57
- declare function EverfurChat(props: EverfurChatProps): ReactNode;
36
+ declare function createRnChatAttachmentTransport(options?: RnChatAttachmentTransportOptions): UploadTransport;
58
37
 
59
- export { EverfurChat, type EverfurChatProps, type UseEverfurChatState, useEverfurChat };
38
+ export { type RnChatAttachmentTransportOptions, createRnChatAttachmentTransport };