@everfur/sdk 0.5.9 → 0.7.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 (154) hide show
  1. package/CHANGELOG.md +279 -0
  2. package/dist/{BookedScreen-BJPbXLCG.d.ts → BookedScreen-DFJcgf1e.d.ts} +12 -2
  3. package/dist/{BookedScreen-Cnld-jB_.d.cts → BookedScreen-R5X_Zrlh.d.cts} +12 -2
  4. package/dist/{Chat-C9dVhnyt.d.ts → Chat-DZpYH8Uh.d.ts} +4 -4
  5. package/dist/{Chat-WmdRwC3b.d.cts → Chat-bATY4atj.d.cts} +4 -4
  6. package/dist/{DepthViews-CBoI9EYy.d.ts → DepthViews-BpHUbjSY.d.cts} +1 -1
  7. package/dist/{DepthViews-CmxhM8iP.d.ts → DepthViews-C4DC4Kom.d.cts} +1 -1
  8. package/dist/{DepthViews-NPFtO5Kz.d.cts → DepthViews-dLTizxjr.d.ts} +1 -1
  9. package/dist/{DepthViews-DoODlUnQ.d.cts → DepthViews-qBIoA48w.d.ts} +1 -1
  10. package/dist/animations/index.cjs +1 -1
  11. package/dist/animations/index.d.cts +3 -3
  12. package/dist/animations/index.d.ts +3 -3
  13. package/dist/animations/index.js +1 -1
  14. package/dist/{attachments-R2oajKPT.d.ts → attachments-CPRFfoHT.d.ts} +2 -2
  15. package/dist/{attachments-c4mJcIWU.d.cts → attachments-CUOGILir.d.cts} +5 -5
  16. package/dist/{attachments-CuFT1o5q.d.ts → attachments-CXAnZcEg.d.ts} +5 -5
  17. package/dist/{attachments-OaW36D0H.d.cts → attachments-Ce06TWqe.d.cts} +2 -2
  18. package/dist/{bookingCopy-DGQPrisa.d.cts → bookingCopy-BwVopcoV.d.cts} +451 -50
  19. package/dist/{bookingCopy-EtPJ4nME.d.ts → bookingCopy-DFTv9w6J.d.ts} +451 -50
  20. package/dist/{bookingTypes-DCs8mmBb.d.cts → bookingTypes-D4pD3tHs.d.cts} +13 -1
  21. package/dist/{bookingTypes-DCs8mmBb.d.ts → bookingTypes-D4pD3tHs.d.ts} +13 -1
  22. package/dist/{branding-Ry0em51L.d.ts → branding-Bio5MM6g.d.cts} +135 -3
  23. package/dist/{branding-DiaCIJZL.d.cts → branding-ytH4jJq1.d.ts} +135 -3
  24. package/dist/{callCopy-CPe9mbwG.d.cts → callCopy-DHjem0R-.d.cts} +12 -1
  25. package/dist/{callCopy-CPe9mbwG.d.ts → callCopy-DHjem0R-.d.ts} +12 -1
  26. package/dist/{casesRepository-DB5c8AAo.d.cts → casesRepository-CJchNp3x.d.cts} +1 -1
  27. package/dist/{casesRepository-Cu8h8gQK.d.ts → casesRepository-DAVcY3jC.d.ts} +1 -1
  28. package/dist/chat/index.cjs +1 -1
  29. package/dist/chat/index.d.cts +9 -9
  30. package/dist/chat/index.d.ts +9 -9
  31. package/dist/chat/index.js +1 -1
  32. package/dist/client/index.cjs +6 -6
  33. package/dist/client/index.d.cts +10 -10
  34. package/dist/client/index.d.ts +10 -10
  35. package/dist/client/index.js +6 -6
  36. package/dist/{config-DlR_I-0S.d.ts → config-ZxwCylac.d.ts} +1 -1
  37. package/dist/{config-DQFMkaTU.d.cts → config-h5h6TsHL.d.cts} +1 -1
  38. package/dist/consent/index.cjs +1 -1
  39. package/dist/consent/index.d.cts +5 -5
  40. package/dist/consent/index.d.ts +5 -5
  41. package/dist/consent/index.js +1 -1
  42. package/dist/{context-DZEieVJ5.d.cts → context-CtsAgJnc.d.cts} +7 -7
  43. package/dist/{context-CLuquPRB.d.ts → context-DtPIshVA.d.ts} +7 -7
  44. package/dist/{copy-B2DOzSSy.d.cts → copy-CaWaplQc.d.cts} +2 -2
  45. package/dist/{copy-ptTCT5-J.d.ts → copy-Cg89Qoal.d.ts} +2 -2
  46. package/dist/core/index.cjs +9 -9
  47. package/dist/core/index.d.cts +21 -21
  48. package/dist/core/index.d.ts +21 -21
  49. package/dist/core/index.js +9 -9
  50. package/dist/{depth-CtyC7HOF.d.ts → depth-Bo4bAwcn.d.ts} +132 -38
  51. package/dist/{depth-DuOyvthD.d.cts → depth-EXZYEO70.d.cts} +132 -38
  52. package/dist/{entitlementRepository-DlGwxZ1k.d.cts → entitlementRepository-BYtVb1oU.d.cts} +3 -3
  53. package/dist/{entitlementRepository-CAtyh8Xt.d.ts → entitlementRepository-DcbIx8yV.d.ts} +3 -3
  54. package/dist/{identity-D_NR9ucT.d.ts → identity-EC5-apbY.d.ts} +1 -1
  55. package/dist/{identity-BC9AF3y4.d.cts → identity-b5Vp32Vp.d.cts} +1 -1
  56. package/dist/index.cjs +6 -6
  57. package/dist/index.d.cts +17 -17
  58. package/dist/index.d.ts +17 -17
  59. package/dist/index.js +6 -6
  60. package/dist/notifications/index.d.cts +2 -2
  61. package/dist/notifications/index.d.ts +2 -2
  62. package/dist/{pets-DuuNvKTK.d.ts → pets-B_27_agU.d.ts} +1 -1
  63. package/dist/{pets-D7UjvR1A.d.cts → pets-DM8QvKLo.d.cts} +1 -1
  64. package/dist/{petsRepository-llMvpMkp.d.cts → petsRepository-BJsJ4cju.d.cts} +1 -1
  65. package/dist/{petsRepository-C28NKFwy.d.ts → petsRepository-CuYZZaI5.d.ts} +1 -1
  66. package/dist/photo/index.cjs +1 -1
  67. package/dist/photo/index.js +1 -1
  68. package/dist/{ports-Dbw2h_M1.d.cts → ports-ZmJYgd5I.d.cts} +10 -9
  69. package/dist/{ports-s45HNNyc.d.ts → ports-nXHf50_X.d.ts} +10 -9
  70. package/dist/records/depth/index.cjs +2 -2
  71. package/dist/records/depth/index.d.cts +7 -7
  72. package/dist/records/depth/index.d.ts +7 -7
  73. package/dist/records/depth/index.js +2 -2
  74. package/dist/records/index.cjs +3 -3
  75. package/dist/records/index.d.cts +19 -10
  76. package/dist/records/index.d.ts +19 -10
  77. package/dist/records/index.js +3 -3
  78. package/dist/{requestFunnel-D_o7se38.d.cts → requestFunnel-C_cZXhIA.d.cts} +2 -2
  79. package/dist/{requestFunnel-CqwOiZNJ.d.ts → requestFunnel-Ve9BshTB.d.ts} +2 -2
  80. package/dist/{runtimeTypes-DS0RLoKN.d.ts → runtimeTypes-ByKsp8hm.d.ts} +5 -5
  81. package/dist/{runtimeTypes-BNBENMkz.d.cts → runtimeTypes-D155OlBW.d.cts} +5 -5
  82. package/dist/server/events/index.cjs +1 -1
  83. package/dist/server/events/index.d.cts +2 -2
  84. package/dist/server/events/index.d.ts +2 -2
  85. package/dist/server/events/index.js +1 -1
  86. package/dist/server/index.cjs +1 -1
  87. package/dist/server/index.d.cts +3 -3
  88. package/dist/server/index.d.ts +3 -3
  89. package/dist/server/index.js +1 -1
  90. package/dist/televet/booking/index.cjs +4 -1
  91. package/dist/televet/booking/index.d.cts +116 -29
  92. package/dist/televet/booking/index.d.ts +116 -29
  93. package/dist/televet/booking/index.js +4 -1
  94. package/dist/televet/call/index.cjs +1 -1
  95. package/dist/televet/call/index.d.cts +1 -1
  96. package/dist/televet/call/index.d.ts +1 -1
  97. package/dist/televet/call/index.js +1 -1
  98. package/dist/televet/index.cjs +1 -1
  99. package/dist/televet/index.js +1 -1
  100. package/dist/testing/index.cjs +3 -3
  101. package/dist/testing/index.d.cts +1 -1
  102. package/dist/testing/index.d.ts +1 -1
  103. package/dist/testing/index.js +3 -3
  104. package/dist/testing/rn/index.cjs +1 -1
  105. package/dist/testing/rn/index.d.cts +14 -12
  106. package/dist/testing/rn/index.d.ts +14 -12
  107. package/dist/testing/rn/index.js +1 -1
  108. package/dist/testing/web/index.d.cts +9 -9
  109. package/dist/testing/web/index.d.ts +9 -9
  110. package/dist/{timelineRows-B6nCq30k.d.cts → timelineRows-BNF43SXK.d.cts} +1 -1
  111. package/dist/{timelineRows-DacfDpDU.d.ts → timelineRows-DXpjECfA.d.ts} +1 -1
  112. package/dist/{tokens-DOTIxrws.d.cts → tokens-BYtbKwFh.d.cts} +12 -4
  113. package/dist/{tokens-DOTIxrws.d.ts → tokens-BYtbKwFh.d.ts} +12 -4
  114. package/dist/{typeStyle-achxqQ-h.d.cts → typeStyle-BqfwxZH4.d.cts} +2 -2
  115. package/dist/{typeStyle-DROhJNkh.d.ts → typeStyle-DKz02DGU.d.ts} +2 -2
  116. package/dist/{uploadTransport-C1p8FuG8.d.cts → uploadTransport-BM_pnEWj.d.cts} +5 -0
  117. package/dist/{uploadTransport-bZIKBTyK.d.ts → uploadTransport-C6kGP1Kd.d.ts} +5 -0
  118. package/dist/{useRecordsDepth-BLK8W646.d.cts → useRecordsDepth-CARTuHKh.d.cts} +1 -1
  119. package/dist/{useRecordsDepth-C7guUoLc.d.ts → useRecordsDepth-fPSv-GXU.d.ts} +1 -1
  120. package/dist/video/index.cjs +1 -1
  121. package/dist/video/index.js +1 -1
  122. package/dist/{view-BF9oW2GJ.d.cts → view-DGPaVno8.d.cts} +47 -5
  123. package/dist/{view-B6JsD22K.d.ts → view-Dc-JlFkf.d.ts} +47 -5
  124. package/dist/web/consent/index.cjs +1 -1
  125. package/dist/web/consent/index.d.cts +5 -5
  126. package/dist/web/consent/index.d.ts +5 -5
  127. package/dist/web/consent/index.js +1 -1
  128. package/dist/web/index.cjs +7 -7
  129. package/dist/web/index.d.cts +23 -22
  130. package/dist/web/index.d.ts +23 -22
  131. package/dist/web/index.js +7 -7
  132. package/dist/web/notifications/index.d.cts +3 -3
  133. package/dist/web/notifications/index.d.ts +3 -3
  134. package/dist/web/records/depth/index.cjs +2 -2
  135. package/dist/web/records/depth/index.d.cts +7 -7
  136. package/dist/web/records/depth/index.d.ts +7 -7
  137. package/dist/web/records/depth/index.js +2 -2
  138. package/dist/web/records/index.cjs +3 -3
  139. package/dist/web/records/index.d.cts +28 -17
  140. package/dist/web/records/index.d.ts +28 -17
  141. package/dist/web/records/index.js +3 -3
  142. package/dist/web/televet/booking/index.cjs +4 -2
  143. package/dist/web/televet/booking/index.d.cts +228 -90
  144. package/dist/web/televet/booking/index.d.ts +228 -90
  145. package/dist/web/televet/booking/index.js +4 -2
  146. package/dist/web/televet/call/index.cjs +1 -1
  147. package/dist/web/televet/call/index.d.cts +1 -1
  148. package/dist/web/televet/call/index.d.ts +1 -1
  149. package/dist/web/televet/call/index.js +1 -1
  150. package/dist/web/televet/index.cjs +2 -2
  151. package/dist/web/televet/index.d.cts +2 -2
  152. package/dist/web/televet/index.d.ts +2 -2
  153. package/dist/web/televet/index.js +2 -2
  154. package/package.json +1 -1
@@ -2,20 +2,20 @@ import { ReactNode, ComponentType, ReactElement } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
3
  import { P as PetRef } from '../../ids-B2GAAifq.cjs';
4
4
  export { B as Brand, _ as __brand } from '../../ids-B2GAAifq.cjs';
5
- import { T as TelevetEmptyRosterCause, a as TelevetStateInterestAction$1, b as TelevetMediaShortfall, c as TelevetBookingStep, d as TelevetBookingController, e as TelevetTriageRead, f as TelevetStateInterestWrite } from '../../bookingCopy-DGQPrisa.cjs';
6
- export { C as CONSULT_MINUTES, N as NO_MEDIA_SHORTFALL, g as TELEVET_BOOKING_BASE, h as TELEVET_BOOKING_COPY, i as TELEVET_BOOKING_STEPS, j as TELEVET_CONSULT_PAGE_LIMIT, k as TELEVET_JOIN_CLOSES_MINUTES_AFTER, l as TELEVET_JOIN_OPENS_MINUTES_BEFORE, m as TelevetBookingAction, n as TelevetBookingContext, o as TelevetBookingControllerDeps, p as TelevetBookingCopy, q as TelevetBookingDraft, r as TelevetBookingFailure, s as TelevetBookingRefusal, t as TelevetBookingState, u as TelevetEarlyTriage, v as TelevetEmptyRosterView, w as TelevetJoinReadiness, x as TelevetJoinState, y as TelevetMediaRefusal, z as TelevetRead, A as TelevetStateInterestReason, B as TelevetTriageVerdict, D as TelevetWrite, E as attestation, F as canConfirm, G as canManageTelevetVisit, H as createTelevetBookingController, I as currentStep, J as emptyTelevetDraft, K as formatVisitRange, L as formatWhen, M as formatWhenWithDay, O as hasPreviousStep, P as initialTelevetBookingState, Q as isHoldExpired, R as isMediaShortfallEmpty, S as isSkipped, U as isTelevetBookingCopyReady, V as mediaShortfallFromUnsentPicks, W as splitTelevetVisits, X as televetBookingKey, Y as televetBookingReducer, Z as televetBookingRefusal, _ as televetCancelCall, $ as televetConsultCall, a0 as televetEmptyRosterCause, a1 as televetEmptyRosterView, a2 as televetHoldCall, a3 as televetJoinCall, a4 as televetJoinOpensAtMs, a5 as televetJoinReadiness, a6 as televetMediaShortfallLines, a7 as televetRescheduleCall, a8 as useEarlyTriage, a9 as useStateInterest, aa as useTelevetBookConsult, ab as useTelevetBookingAvailable, ac as useTelevetBookingController, ad as useTelevetBookingEntitlement, ae as useTelevetCancellationPolicy, af as useTelevetClinicians, ag as useTelevetHoldSlot, ah as useTelevetJoin, ai as useTelevetNextSlot, aj as useTelevetRescheduleConsult, ak as useTelevetSlots, al as useTelevetStatePolicy, am as validateBookingBody, an as withUnsentPicks } from '../../bookingCopy-DGQPrisa.cjs';
7
- import { T as TelevetConsult, h as TelevetCancelReceipt, e as TelevetSlot } from '../../bookingTypes-DCs8mmBb.cjs';
8
- export { i as CANCELLATION_POLICY_VERSION_MAX, j as CANCEL_REASON_MAX, k as CONSULT_KINDS, l as CONSULT_STATUSES, m as ConsultKind, C as ConsultStatus, M as MEDIA_REFS_MAX, R as REASON_TEXT_MAX, n as TERMINAL_CONSULT_STATUSES, g as TelevetBookingBody, b as TelevetBookingEntitlement, c as TelevetCancellationPolicy, d as TelevetClinician, f as TelevetSlotHold, a as TelevetStatePolicy, o as isWellFormedStateCode } from '../../bookingTypes-DCs8mmBb.cjs';
5
+ import { T as TelevetEmptyRosterCause, a as TelevetStateInterestAction$1, b as TelevetMediaShortfall, c as TelevetBookingStep, d as TelevetBookingContext, e as TelevetBookingController, f as TelevetTriageRead, g as TelevetStateInterestWrite, h as TelevetVetThreadTarget, i as TelevetDayPeriod } from '../../bookingCopy-BwVopcoV.cjs';
6
+ export { C as CONSULT_MINUTES, N as NO_MEDIA_SHORTFALL, j as TELEVET_BOOKING_BASE, k as TELEVET_BOOKING_COPY, l as TELEVET_BOOKING_STEPS, m as TELEVET_CONSULT_PAGE_LIMIT, n as TELEVET_JOIN_CLOSES_MINUTES_AFTER, o as TELEVET_JOIN_OPENS_MINUTES_BEFORE, p as TELEVET_MESSAGE_THREADS_PATH, q as TelevetAttachmentMeta, r as TelevetAttachmentPolicy, s as TelevetBookingAction, t as TelevetBookingControllerDeps, u as TelevetBookingCopy, v as TelevetBookingDraft, w as TelevetBookingFailure, x as TelevetBookingRefusal, y as TelevetBookingState, z as TelevetEarlyTriage, A as TelevetEmptyRosterView, B as TelevetJoinReadiness, D as TelevetJoinState, E as TelevetMediaRefusal, F as TelevetRead, G as TelevetStateInterestReason, H as TelevetWrite, U as UseVetThreadOptions, V as VET_MESSAGES_COPY, I as VET_MESSAGE_CONTENT_MAX, J as VET_MESSAGE_PAGE_DEFAULT, K as VET_MESSAGE_PAGE_MAX, L as VetMessage, M as VetMessagePage, O as VetMessageRole, P as VetMessagesAvailability, Q as VetSendFailure, R as VetThread, S as VetThreadState, W as VetThreadsState, X as VisitSummary, Y as VisitSummaryMedication, Z as VisitSummaryState, _ as attestation, $ as canConfirm, a0 as canManageTelevetVisit, a1 as createTelevetBookingController, a2 as currentStep, a3 as emptyTelevetDraft, a4 as formatVisitRange, a5 as formatWhen, a6 as formatWhenWithDay, a7 as hasPreviousStep, a8 as initialTelevetBookingState, a9 as isHoldExpired, aa as isMediaShortfallEmpty, ab as isSkipped, ac as isTelevetBookingCopyReady, ad as isVetMessagesDark, ae as isVetThreadVetFirst, af as mediaShortfallFromUnsentPicks, ag as splitTelevetVisits, ah as televetBookingKey, ai as televetBookingReducer, aj as televetBookingRefusal, ak as televetCancelCall, al as televetConsultCall, am as televetEmptyRosterCause, an as televetEmptyRosterView, ao as televetHoldCall, ap as televetJoinCall, aq as televetJoinOpensAtMs, ar as televetJoinReadiness, as as televetMediaShortfallLines, at as televetRescheduleCall, au as televetThreadMessagesCall, av as televetThreadReadCall, aw as televetVisitSummaryCall, ax as useEarlyTriage, ay as useStateInterest, az as useTelevetBookConsult, aA as useTelevetBookingAvailable, aB as useTelevetBookingController, aC as useTelevetBookingEntitlement, aD as useTelevetCancellationPolicy, aE as useTelevetClinicians, aF as useTelevetHoldSlot, aG as useTelevetJoin, aH as useTelevetNextSlot, aI as useTelevetRescheduleConsult, aJ as useTelevetSlots, aK as useTelevetStatePolicy, aL as useVetThread, aM as useVetThreads, aN as useVisitSummary, aO as validateBookingBody, aP as vetThreadPetRef, aQ as withUnsentPicks } from '../../bookingCopy-BwVopcoV.cjs';
7
+ import { T as TelevetConsult, a as TelevetCancelReceipt, b as TelevetSlot } from '../../bookingTypes-D4pD3tHs.cjs';
8
+ export { C as CANCELLATION_POLICY_VERSION_MAX, c as CANCEL_REASON_MAX, d as CONSULT_KINDS, e as CONSULT_STATUSES, f as ConsultKind, g as ConsultStatus, M as MEDIA_REFS_MAX, R as REASON_TEXT_MAX, h as TERMINAL_CONSULT_STATUSES, i as TelevetBookingBody, j as TelevetBookingEntitlement, k as TelevetCancellationPolicy, l as TelevetClinician, m as TelevetSlotHold, n as TelevetStatePolicy, o as TelevetTriageVerdict, p as isWellFormedStateCode } from '../../bookingTypes-D4pD3tHs.cjs';
9
9
  import { V as VetVisitIntent } from '../../visitIntent-D7_yVp1I.cjs';
10
10
  import { E as EverfurTelevetFlowRequest } from '../../televetGlobal-CEk0_cW9.cjs';
11
11
  export { b as VetCallCredential, c as VetCallJoinRefusal, d as VetCallLimits, p as parseVetCallCredential, v as vetCallJoinReason, e as vetCallJoinRefusal } from '../../callRoom-B_EqaUzx.cjs';
12
12
  export { E as EverfurError, a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError-DmELDpXp.cjs';
13
13
  export { E as EverfurResult } from '../../EverfurResult-ZtH-YV1h.cjs';
14
- export { W as WidgetPet } from '../../petsRepository-llMvpMkp.cjs';
15
- import '../../requestFunnel-D_o7se38.cjs';
14
+ export { W as WidgetPet } from '../../petsRepository-BJsJ4cju.cjs';
15
+ import '../../requestFunnel-C_cZXhIA.cjs';
16
16
  import '../../ErrorPolicyPort-D6CybiqJ.cjs';
17
- import '../../config-DQFMkaTU.cjs';
18
- import '../../identity-BC9AF3y4.cjs';
17
+ import '../../config-h5h6TsHL.cjs';
18
+ import '../../identity-b5Vp32Vp.cjs';
19
19
  import '../../TelemetryPort-BDNr00hu.cjs';
20
20
  import '../../profile-CSs1wlXT.cjs';
21
21
 
@@ -42,10 +42,10 @@ interface TelevetPrimaryVet {
42
42
  readonly dial?: (() => void) | undefined;
43
43
  }
44
44
  /**
45
- * THE EXIT ROWS, on both places the warning is drawn: in place of Describe and at Confirm. The consumer mobile
46
- * screen's order (TelevetEarlyEmergency.tsx:73-75 and :91): find an emergency vet, then the pet's own clinic.
47
- * Poison control is NOT here, which is the mobile app's own decision (its fee line is a claim about a third
48
- * party's charge, served there as a versioned document); the web port shows it because the web app does.
45
+ * THE EXIT ROWS, on both places the warning is drawn: in place of Describe and at Confirm, in the artifacts' order
46
+ * (`vet-book-emergency`): find an emergency vet (only with the host's own locator), ASPCA Animal Poison Control
47
+ * (dialled from its own number), then the pet's own clinic (only when the host holds it). One white box of rows
48
+ * split by hairlines, inside the panel's alert wash.
49
49
  */
50
50
  declare function TelevetEmergencyExits({ petName, primaryVet, onFindEmergencyVet, }: {
51
51
  readonly petName?: string | null | undefined;
@@ -196,8 +196,18 @@ interface TelevetBookedScreenProps {
196
196
  * join promise is withheld rather than printed on a hope.
197
197
  */
198
198
  readonly canJoinInApp?: boolean;
199
+ /**
200
+ * Did the owner share the pet's records with the vet on the review? Only then may step 02 say the records go
201
+ * to the vet ahead of the call; otherwise it keeps the deck's own summary line.
202
+ */
203
+ readonly sharedRecords?: boolean | undefined;
204
+ /**
205
+ * Did exactly one PHOTO go with this booking, and did the consult keep it? Only then may step 02 say the photo
206
+ * goes to the vet (the artifact's photo form). Defaults to false.
207
+ */
208
+ readonly sentPhoto?: boolean | undefined;
199
209
  }
200
- declare function TelevetBookedScreen({ consult, petName, onDone, onAddToCalendar, canJoinInApp, }: TelevetBookedScreenProps): ReactNode;
210
+ declare function TelevetBookedScreen({ consult, petName, onDone, onAddToCalendar, canJoinInApp, sharedRecords, sentPhoto, }: TelevetBookedScreenProps): ReactNode;
201
211
 
202
212
  /**
203
213
  * The host's own discard confirmation.
@@ -229,8 +239,19 @@ interface TelevetBookingChromeProps {
229
239
  readonly onBack: () => void;
230
240
  readonly onClose: () => void;
231
241
  readonly onConfirmDiscard?: TelevetDiscardConfirm | undefined;
242
+ /**
243
+ * Is the host's early emergency warning up in place of Describe? It counts as the emergency step it stands
244
+ * for, so the bar does not step backwards while it is on screen.
245
+ */
246
+ readonly triageOpen?: boolean | undefined;
247
+ /**
248
+ * The household the flow runs for, as the step reducer reads it. The bar counts only the steps it leaves on
249
+ * screen, so a one-pet household reads "Step 1 of 7" over seven segments on its first step. Absent, the bar
250
+ * counts the artifacts' eight.
251
+ */
252
+ readonly stepContext?: TelevetBookingContext | undefined;
232
253
  }
233
- declare function TelevetBookingChrome({ step, furthestIndex, title, canGoBack, isDirty, onBack, onClose, onConfirmDiscard, }: TelevetBookingChromeProps): ReactNode;
254
+ declare function TelevetBookingChrome({ step, furthestIndex, title, canGoBack, isDirty, onBack, onClose, onConfirmDiscard, triageOpen, stepContext, }: TelevetBookingChromeProps): ReactNode;
234
255
  /**
235
256
  * The back control's spoken label.
236
257
  *
@@ -262,8 +283,14 @@ interface TelevetIntakeMediaProps {
262
283
  readonly onChange: (next: readonly TelevetIntakeMediaItem[]) => void;
263
284
  /** Absent, the row renders nothing at all. There is no disabled Add control. */
264
285
  readonly onPickMedia?: TelevetMediaPicker | undefined;
286
+ /**
287
+ * A line under the row, or nothing. The booking passes the artifact's "Optional. A close-up in good light
288
+ * helps." only once the televet presign has answered, because the advice is true only when a photo can reach
289
+ * the vet. Absent, nothing is drawn.
290
+ */
291
+ readonly meta?: string | null | undefined;
265
292
  }
266
- declare function TelevetIntakeMedia({ media, onChange, onPickMedia }: TelevetIntakeMediaProps): ReactNode;
293
+ declare function TelevetIntakeMedia({ media, onChange, onPickMedia, meta }: TelevetIntakeMediaProps): ReactNode;
267
294
 
268
295
  /** What the host can tell us about a location it could not resolve, so the right card renders. */
269
296
  type TelevetLocationStatus = 'unknown' | 'blocked' | 'unavailable';
@@ -292,14 +319,15 @@ interface EverfurTelevetBookingProps {
292
319
  /**
293
320
  * THE EMERGENCY TRIAGE READ, asked after Describe rather than only at Confirm.
294
321
  *
295
- * ABSENT MEANS NO EARLY QUESTION, and the flow behaves exactly as it did before: straight from the
296
- * description to the vet, with the server's own `emergency_ack_required` refusal still waiting at Confirm.
297
- * That is not a degraded mode, it is the consumer app's own rule for a triage read that could not answer
298
- * (`useEarlyTriage`): a failed pre-read costs the member the screen's early position, never the check.
322
+ * ABSENT MEANS THE CONTROLLER'S OWN READ: `POST /widget/v1/televet/consults/triage`, the booking's own
323
+ * classifier, served dark behind `partner.televet_early_triage_enabled`. Where that route is dark (or the
324
+ * controller has no `triage`), the flow behaves exactly as it did before: straight from the description to
325
+ * the vet, with the server's own `emergency_ack_required` refusal still waiting at Confirm. That is the
326
+ * consumer app's own rule for a triage read that could not answer (`useEarlyTriage`): a failed pre-read costs
327
+ * the member the screen's early position, never the check.
299
328
  *
300
- * IT IS A SEAM BECAUSE `POST /widget/v1/televet/consults/triage` IS NOT SERVED. Verified on EFBackend main
301
- * on 2026-09-22 against the route decorators under services/api/app/domains/partner_televet. A partner
302
- * whose own stack can classify free text may wire it; nothing here invents a verdict.
329
+ * GIVEN, IT WINS over the controller's read. A partner whose own stack classifies free text may wire it;
330
+ * nothing here invents a verdict.
303
331
  */
304
332
  readonly onTriageReason?: TelevetTriageRead;
305
333
  /**
@@ -373,6 +401,16 @@ type TelevetScreen =
373
401
  readonly name: 'visit';
374
402
  readonly visitRef: string;
375
403
  readonly intent: VetVisitIntent | null;
404
+ }
405
+ /** The member's thread with the vet about one pet (EFBackend #1809). */
406
+ | {
407
+ readonly name: 'thread';
408
+ readonly target: TelevetVetThreadTarget;
409
+ }
410
+ /** The vet's approved summary of a finished visit (EFBackend #1809). */
411
+ | {
412
+ readonly name: 'summary';
413
+ readonly consult: TelevetConsult;
376
414
  };
377
415
  /**
378
416
  * The screen a request opens on: the visit it names, or the landing (the visits when one is ahead, otherwise
@@ -407,8 +445,9 @@ interface EverfurTelevetProps {
407
445
  */
408
446
  readonly onFindEmergencyVet?: () => void;
409
447
  /**
410
- * The emergency question asked after Describe. Absent, the question is asked at Confirm by the server, as
411
- * it is today: the partner plane serves no triage route. See `EverfurTelevetBooking`.
448
+ * The emergency question asked after Describe. Absent, the controller's own
449
+ * `POST /widget/v1/televet/consults/triage` is asked instead, and where that route is dark the server asks at
450
+ * Confirm. See `EverfurTelevetBooking`.
412
451
  */
413
452
  readonly onTriageReason?: TelevetTriageRead;
414
453
  /**
@@ -471,11 +510,15 @@ interface TelevetVisitsScreenProps {
471
510
  readonly onBack: () => void;
472
511
  /** Bumped by the flow after a booking, a move, a cancel or a call, so the list is read again. */
473
512
  readonly revision?: number | undefined;
513
+ /** Open the member's thread with the vet about one pet. Absent, or while the routes are dark, no Messages card. */
514
+ readonly onOpenThread?: ((target: TelevetVetThreadTarget) => void) | undefined;
515
+ /** Open a finished visit's summary. Absent, or while the routes are dark, a finished row opens nothing. */
516
+ readonly onOpenSummary?: ((consult: TelevetConsult) => void) | undefined;
474
517
  /** Injected by tests, so the split can sit on either side of a window. */
475
518
  readonly nowMs?: number | undefined;
476
519
  readonly style?: StyleProp<ViewStyle>;
477
520
  }
478
- declare function TelevetVisitsScreen({ controller: injected, onOpenVisit, onBook, onBack, revision, nowMs, style, }: TelevetVisitsScreenProps): ReactNode;
521
+ declare function TelevetVisitsScreen({ controller: injected, onOpenVisit, onBook, onBack, revision, onOpenThread, onOpenSummary, nowMs, style, }: TelevetVisitsScreenProps): ReactNode;
479
522
 
480
523
  interface TelevetConsultScreenProps {
481
524
  /** The visit, as the list that opened it read it. Re-read on mount; shown while the re-read is in flight. */
@@ -491,11 +534,48 @@ interface TelevetConsultScreenProps {
491
534
  readonly onBack: () => void;
492
535
  /** Bumped by the flow after a move or a call, so the visit is read again. */
493
536
  readonly revision?: number | undefined;
537
+ /**
538
+ * Open the member's thread with this visit's vet (the waiting room's "Running late? Message {vet}", T127, drawn
539
+ * here because this is the screen with Join, where the member is before the call). Absent, or while the thread
540
+ * routes are dark (EFBackend #1809, `partner.televet_messages_enabled`), the link is not drawn.
541
+ */
542
+ readonly onMessageVet?: ((target: TelevetVetThreadTarget) => void) | undefined;
494
543
  /** Injected by tests. Left undefined in the app so the screen uses a clock that moves. */
495
544
  readonly nowMs?: number | undefined;
496
545
  readonly style?: StyleProp<ViewStyle>;
497
546
  }
498
- declare function TelevetConsultScreen({ consult: opened, controller: injected, onJoin, onReschedule, onCancelled, onBack, revision, nowMs, style, }: TelevetConsultScreenProps): ReactNode;
547
+ declare function TelevetConsultScreen({ consult: opened, controller: injected, onJoin, onReschedule, onCancelled, onBack, revision, onMessageVet, nowMs, style, }: TelevetConsultScreenProps): ReactNode;
548
+
549
+ interface TelevetVetThreadScreenProps {
550
+ /** The partner's reference for the pet the thread is about. */
551
+ readonly petRef: string;
552
+ /** The pet's roster name, for the title. */
553
+ readonly petName?: string | null | undefined;
554
+ /** The vet's served name, when the screen that opened the thread knows it. Otherwise read from the thread. */
555
+ readonly vetName?: string | null | undefined;
556
+ /** What the thread list said (`VetThread.ownerCanStart`). */
557
+ readonly ownerCanStart?: boolean | undefined;
558
+ /** Host/test seam: inject a booking controller instead of building one from the provider's session. */
559
+ readonly controller?: TelevetBookingController | undefined;
560
+ /** Back to the screen under the thread. */
561
+ readonly onBack: () => void;
562
+ readonly style?: StyleProp<ViewStyle>;
563
+ }
564
+ declare function TelevetVetThreadScreen({ petRef, petName, vetName, ownerCanStart, controller: injected, onBack, style, }: TelevetVetThreadScreenProps): ReactNode;
565
+
566
+ interface TelevetVisitSummaryScreenProps {
567
+ /** The finished visit whose summary this is. */
568
+ readonly consult: TelevetConsult;
569
+ /** Host/test seam: inject a booking controller instead of building one from the provider's session. */
570
+ readonly controller?: TelevetBookingController | undefined;
571
+ readonly onBack: () => void;
572
+ /** Open the member's thread with this vet. Absent, or when the roster cannot name the pet, it is omitted. */
573
+ readonly onMessageVet?: ((target: TelevetVetThreadTarget) => void) | undefined;
574
+ /** Start a booking. Absent, "Book a follow-up" is omitted. */
575
+ readonly onBook?: (() => void) | undefined;
576
+ readonly style?: StyleProp<ViewStyle>;
577
+ }
578
+ declare function TelevetVisitSummaryScreen({ consult, controller: injected, onBack, onMessageVet, onBook, style, }: TelevetVisitSummaryScreenProps): ReactNode;
499
579
 
500
580
  interface EverfurTelevetRescheduleProps {
501
581
  /** The consult being moved. Null while the host is still loading it. */
@@ -546,15 +626,22 @@ interface TelevetSlotPickerProps {
546
626
  readonly ListHeaderComponent?: ComponentType | ReactElement | null;
547
627
  readonly rowTestIdPrefix?: string;
548
628
  readonly testID?: string;
629
+ /**
630
+ * The owner-approved artifacts' slot groups (`vet-book-time`: "Morning", "Afternoon", "Evening"). Given, the
631
+ * day's times are drawn under those three labels; absent, as one grid. Copy, so the caller passes the deck's.
632
+ */
633
+ readonly periodLabels?: Readonly<Record<TelevetDayPeriod, string>> | undefined;
549
634
  }
550
- declare function TelevetSlotPicker({ slots, busySlotId, onPick, selectedSlot, ListHeaderComponent, rowTestIdPrefix, testID, }: TelevetSlotPickerProps): ReactNode;
635
+ declare function TelevetSlotPicker({ slots, busySlotId, onPick, selectedSlot, ListHeaderComponent, rowTestIdPrefix, testID, periodLabels, }: TelevetSlotPickerProps): ReactNode;
551
636
 
552
637
  /** One "label ... value" row in the summary card. */
553
- declare function TelevetSummaryRow({ label, value, last, testID, }: {
638
+ declare function TelevetSummaryRow({ label, value, last, action, testID, }: {
554
639
  readonly label: string;
555
640
  readonly value: string;
556
641
  /** The last row draws no divider, so the card does not end on a line. */
557
642
  readonly last?: boolean;
643
+ /** A control at the row's end (the review's "Change" on When). */
644
+ readonly action?: ReactNode;
558
645
  readonly testID?: string;
559
646
  }): ReactNode;
560
647
  /**
@@ -577,4 +664,4 @@ declare function TelevetSummaryCard({ children, testID }: {
577
664
  readonly testID?: string;
578
665
  }): ReactNode;
579
666
 
580
- export { BACK_LABEL, EverfurTelevet, EverfurTelevetBooking, type EverfurTelevetBookingProps, EverfurTelevetFlow, EverfurTelevetFlowRequest, EverfurTelevetModal, type EverfurTelevetModalProps, type EverfurTelevetProps, EverfurTelevetReschedule, type EverfurTelevetRescheduleProps, PetRef, TelevetBookedScreen, type TelevetBookedScreenProps, TelevetBookingChrome, type TelevetBookingChromeProps, TelevetBookingController, TelevetBookingStep, type TelevetCalendarEvent, type TelevetCalendarWriter, TelevetCancelReceipt, TelevetClinicianEmptyState, type TelevetClinicianEmptyStateProps, TelevetConsentCheckbox, TelevetConsult, TelevetConsultScreen, type TelevetConsultScreenProps, type TelevetDay, TelevetDayStrip, type TelevetDayStripProps, type TelevetDiscardConfirm, TelevetEarlyEmergency, type TelevetEarlyEmergencyProps, TelevetEmergencyExits, TelevetEmptyRosterCause, TelevetEntitlementInterestState, type TelevetEntitlementInterestStateProps, TelevetIntakeMedia, type TelevetIntakeMediaItem, type TelevetIntakeMediaProps, TelevetJoinScreen, type TelevetJoinScreenProps, type TelevetLocationStatus, TelevetMediaDropNotice, type TelevetMediaDropNoticeProps, type TelevetMediaPicker, TelevetMediaShortfall, type TelevetPrimaryVet, type TelevetScreen, TelevetSlot, TelevetSlotPicker, type TelevetSlotPickerProps, TelevetStateInterestAction, type TelevetStateInterestActionProps, TelevetStateInterestAction$1 as TelevetStateInterestLifecycle, TelevetStateInterestWrite, TelevetSummaryCard, TelevetSummaryRow, TelevetTriageRead, TelevetVisitsScreen, type TelevetVisitsScreenProps, VetVisitIntent, televetConsultCalendarKey, televetDaysFromSlots, televetScreenForRequest };
667
+ export { BACK_LABEL, EverfurTelevet, EverfurTelevetBooking, type EverfurTelevetBookingProps, EverfurTelevetFlow, EverfurTelevetFlowRequest, EverfurTelevetModal, type EverfurTelevetModalProps, type EverfurTelevetProps, EverfurTelevetReschedule, type EverfurTelevetRescheduleProps, PetRef, TelevetBookedScreen, type TelevetBookedScreenProps, TelevetBookingChrome, type TelevetBookingChromeProps, TelevetBookingContext, TelevetBookingController, TelevetBookingStep, type TelevetCalendarEvent, type TelevetCalendarWriter, TelevetCancelReceipt, TelevetClinicianEmptyState, type TelevetClinicianEmptyStateProps, TelevetConsentCheckbox, TelevetConsult, TelevetConsultScreen, type TelevetConsultScreenProps, type TelevetDay, TelevetDayStrip, type TelevetDayStripProps, type TelevetDiscardConfirm, TelevetEarlyEmergency, type TelevetEarlyEmergencyProps, TelevetEmergencyExits, TelevetEmptyRosterCause, TelevetEntitlementInterestState, type TelevetEntitlementInterestStateProps, TelevetIntakeMedia, type TelevetIntakeMediaItem, type TelevetIntakeMediaProps, TelevetJoinScreen, type TelevetJoinScreenProps, type TelevetLocationStatus, TelevetMediaDropNotice, type TelevetMediaDropNoticeProps, type TelevetMediaPicker, TelevetMediaShortfall, type TelevetPrimaryVet, type TelevetScreen, TelevetSlot, TelevetSlotPicker, type TelevetSlotPickerProps, TelevetStateInterestAction, type TelevetStateInterestActionProps, TelevetStateInterestAction$1 as TelevetStateInterestLifecycle, TelevetStateInterestWrite, TelevetSummaryCard, TelevetSummaryRow, TelevetTriageRead, TelevetVetThreadScreen, type TelevetVetThreadScreenProps, TelevetVetThreadTarget, TelevetVisitSummaryScreen, type TelevetVisitSummaryScreenProps, TelevetVisitsScreen, type TelevetVisitsScreenProps, VetVisitIntent, televetConsultCalendarKey, televetDaysFromSlots, televetScreenForRequest };
@@ -2,20 +2,20 @@ import { ReactNode, ComponentType, ReactElement } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
3
  import { P as PetRef } from '../../ids-B2GAAifq.js';
4
4
  export { B as Brand, _ as __brand } from '../../ids-B2GAAifq.js';
5
- import { T as TelevetEmptyRosterCause, a as TelevetStateInterestAction$1, b as TelevetMediaShortfall, c as TelevetBookingStep, d as TelevetBookingController, e as TelevetTriageRead, f as TelevetStateInterestWrite } from '../../bookingCopy-EtPJ4nME.js';
6
- export { C as CONSULT_MINUTES, N as NO_MEDIA_SHORTFALL, g as TELEVET_BOOKING_BASE, h as TELEVET_BOOKING_COPY, i as TELEVET_BOOKING_STEPS, j as TELEVET_CONSULT_PAGE_LIMIT, k as TELEVET_JOIN_CLOSES_MINUTES_AFTER, l as TELEVET_JOIN_OPENS_MINUTES_BEFORE, m as TelevetBookingAction, n as TelevetBookingContext, o as TelevetBookingControllerDeps, p as TelevetBookingCopy, q as TelevetBookingDraft, r as TelevetBookingFailure, s as TelevetBookingRefusal, t as TelevetBookingState, u as TelevetEarlyTriage, v as TelevetEmptyRosterView, w as TelevetJoinReadiness, x as TelevetJoinState, y as TelevetMediaRefusal, z as TelevetRead, A as TelevetStateInterestReason, B as TelevetTriageVerdict, D as TelevetWrite, E as attestation, F as canConfirm, G as canManageTelevetVisit, H as createTelevetBookingController, I as currentStep, J as emptyTelevetDraft, K as formatVisitRange, L as formatWhen, M as formatWhenWithDay, O as hasPreviousStep, P as initialTelevetBookingState, Q as isHoldExpired, R as isMediaShortfallEmpty, S as isSkipped, U as isTelevetBookingCopyReady, V as mediaShortfallFromUnsentPicks, W as splitTelevetVisits, X as televetBookingKey, Y as televetBookingReducer, Z as televetBookingRefusal, _ as televetCancelCall, $ as televetConsultCall, a0 as televetEmptyRosterCause, a1 as televetEmptyRosterView, a2 as televetHoldCall, a3 as televetJoinCall, a4 as televetJoinOpensAtMs, a5 as televetJoinReadiness, a6 as televetMediaShortfallLines, a7 as televetRescheduleCall, a8 as useEarlyTriage, a9 as useStateInterest, aa as useTelevetBookConsult, ab as useTelevetBookingAvailable, ac as useTelevetBookingController, ad as useTelevetBookingEntitlement, ae as useTelevetCancellationPolicy, af as useTelevetClinicians, ag as useTelevetHoldSlot, ah as useTelevetJoin, ai as useTelevetNextSlot, aj as useTelevetRescheduleConsult, ak as useTelevetSlots, al as useTelevetStatePolicy, am as validateBookingBody, an as withUnsentPicks } from '../../bookingCopy-EtPJ4nME.js';
7
- import { T as TelevetConsult, h as TelevetCancelReceipt, e as TelevetSlot } from '../../bookingTypes-DCs8mmBb.js';
8
- export { i as CANCELLATION_POLICY_VERSION_MAX, j as CANCEL_REASON_MAX, k as CONSULT_KINDS, l as CONSULT_STATUSES, m as ConsultKind, C as ConsultStatus, M as MEDIA_REFS_MAX, R as REASON_TEXT_MAX, n as TERMINAL_CONSULT_STATUSES, g as TelevetBookingBody, b as TelevetBookingEntitlement, c as TelevetCancellationPolicy, d as TelevetClinician, f as TelevetSlotHold, a as TelevetStatePolicy, o as isWellFormedStateCode } from '../../bookingTypes-DCs8mmBb.js';
5
+ import { T as TelevetEmptyRosterCause, a as TelevetStateInterestAction$1, b as TelevetMediaShortfall, c as TelevetBookingStep, d as TelevetBookingContext, e as TelevetBookingController, f as TelevetTriageRead, g as TelevetStateInterestWrite, h as TelevetVetThreadTarget, i as TelevetDayPeriod } from '../../bookingCopy-DFTv9w6J.js';
6
+ export { C as CONSULT_MINUTES, N as NO_MEDIA_SHORTFALL, j as TELEVET_BOOKING_BASE, k as TELEVET_BOOKING_COPY, l as TELEVET_BOOKING_STEPS, m as TELEVET_CONSULT_PAGE_LIMIT, n as TELEVET_JOIN_CLOSES_MINUTES_AFTER, o as TELEVET_JOIN_OPENS_MINUTES_BEFORE, p as TELEVET_MESSAGE_THREADS_PATH, q as TelevetAttachmentMeta, r as TelevetAttachmentPolicy, s as TelevetBookingAction, t as TelevetBookingControllerDeps, u as TelevetBookingCopy, v as TelevetBookingDraft, w as TelevetBookingFailure, x as TelevetBookingRefusal, y as TelevetBookingState, z as TelevetEarlyTriage, A as TelevetEmptyRosterView, B as TelevetJoinReadiness, D as TelevetJoinState, E as TelevetMediaRefusal, F as TelevetRead, G as TelevetStateInterestReason, H as TelevetWrite, U as UseVetThreadOptions, V as VET_MESSAGES_COPY, I as VET_MESSAGE_CONTENT_MAX, J as VET_MESSAGE_PAGE_DEFAULT, K as VET_MESSAGE_PAGE_MAX, L as VetMessage, M as VetMessagePage, O as VetMessageRole, P as VetMessagesAvailability, Q as VetSendFailure, R as VetThread, S as VetThreadState, W as VetThreadsState, X as VisitSummary, Y as VisitSummaryMedication, Z as VisitSummaryState, _ as attestation, $ as canConfirm, a0 as canManageTelevetVisit, a1 as createTelevetBookingController, a2 as currentStep, a3 as emptyTelevetDraft, a4 as formatVisitRange, a5 as formatWhen, a6 as formatWhenWithDay, a7 as hasPreviousStep, a8 as initialTelevetBookingState, a9 as isHoldExpired, aa as isMediaShortfallEmpty, ab as isSkipped, ac as isTelevetBookingCopyReady, ad as isVetMessagesDark, ae as isVetThreadVetFirst, af as mediaShortfallFromUnsentPicks, ag as splitTelevetVisits, ah as televetBookingKey, ai as televetBookingReducer, aj as televetBookingRefusal, ak as televetCancelCall, al as televetConsultCall, am as televetEmptyRosterCause, an as televetEmptyRosterView, ao as televetHoldCall, ap as televetJoinCall, aq as televetJoinOpensAtMs, ar as televetJoinReadiness, as as televetMediaShortfallLines, at as televetRescheduleCall, au as televetThreadMessagesCall, av as televetThreadReadCall, aw as televetVisitSummaryCall, ax as useEarlyTriage, ay as useStateInterest, az as useTelevetBookConsult, aA as useTelevetBookingAvailable, aB as useTelevetBookingController, aC as useTelevetBookingEntitlement, aD as useTelevetCancellationPolicy, aE as useTelevetClinicians, aF as useTelevetHoldSlot, aG as useTelevetJoin, aH as useTelevetNextSlot, aI as useTelevetRescheduleConsult, aJ as useTelevetSlots, aK as useTelevetStatePolicy, aL as useVetThread, aM as useVetThreads, aN as useVisitSummary, aO as validateBookingBody, aP as vetThreadPetRef, aQ as withUnsentPicks } from '../../bookingCopy-DFTv9w6J.js';
7
+ import { T as TelevetConsult, a as TelevetCancelReceipt, b as TelevetSlot } from '../../bookingTypes-D4pD3tHs.js';
8
+ export { C as CANCELLATION_POLICY_VERSION_MAX, c as CANCEL_REASON_MAX, d as CONSULT_KINDS, e as CONSULT_STATUSES, f as ConsultKind, g as ConsultStatus, M as MEDIA_REFS_MAX, R as REASON_TEXT_MAX, h as TERMINAL_CONSULT_STATUSES, i as TelevetBookingBody, j as TelevetBookingEntitlement, k as TelevetCancellationPolicy, l as TelevetClinician, m as TelevetSlotHold, n as TelevetStatePolicy, o as TelevetTriageVerdict, p as isWellFormedStateCode } from '../../bookingTypes-D4pD3tHs.js';
9
9
  import { V as VetVisitIntent } from '../../visitIntent-D7_yVp1I.js';
10
10
  import { E as EverfurTelevetFlowRequest } from '../../televetGlobal-Cs9Wbqsy.js';
11
11
  export { b as VetCallCredential, c as VetCallJoinRefusal, d as VetCallLimits, p as parseVetCallCredential, v as vetCallJoinReason, e as vetCallJoinRefusal } from '../../callRoom-7wrE3RP2.js';
12
12
  export { E as EverfurError, a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError-DmELDpXp.js';
13
13
  export { E as EverfurResult } from '../../EverfurResult-SGvHKsCB.js';
14
- export { W as WidgetPet } from '../../petsRepository-C28NKFwy.js';
15
- import '../../requestFunnel-CqwOiZNJ.js';
14
+ export { W as WidgetPet } from '../../petsRepository-CuYZZaI5.js';
15
+ import '../../requestFunnel-Ve9BshTB.js';
16
16
  import '../../ErrorPolicyPort-D22LUVrK.js';
17
- import '../../config-DlR_I-0S.js';
18
- import '../../identity-D_NR9ucT.js';
17
+ import '../../config-ZxwCylac.js';
18
+ import '../../identity-EC5-apbY.js';
19
19
  import '../../TelemetryPort-BDNr00hu.js';
20
20
  import '../../profile-CSs1wlXT.js';
21
21
 
@@ -42,10 +42,10 @@ interface TelevetPrimaryVet {
42
42
  readonly dial?: (() => void) | undefined;
43
43
  }
44
44
  /**
45
- * THE EXIT ROWS, on both places the warning is drawn: in place of Describe and at Confirm. The consumer mobile
46
- * screen's order (TelevetEarlyEmergency.tsx:73-75 and :91): find an emergency vet, then the pet's own clinic.
47
- * Poison control is NOT here, which is the mobile app's own decision (its fee line is a claim about a third
48
- * party's charge, served there as a versioned document); the web port shows it because the web app does.
45
+ * THE EXIT ROWS, on both places the warning is drawn: in place of Describe and at Confirm, in the artifacts' order
46
+ * (`vet-book-emergency`): find an emergency vet (only with the host's own locator), ASPCA Animal Poison Control
47
+ * (dialled from its own number), then the pet's own clinic (only when the host holds it). One white box of rows
48
+ * split by hairlines, inside the panel's alert wash.
49
49
  */
50
50
  declare function TelevetEmergencyExits({ petName, primaryVet, onFindEmergencyVet, }: {
51
51
  readonly petName?: string | null | undefined;
@@ -196,8 +196,18 @@ interface TelevetBookedScreenProps {
196
196
  * join promise is withheld rather than printed on a hope.
197
197
  */
198
198
  readonly canJoinInApp?: boolean;
199
+ /**
200
+ * Did the owner share the pet's records with the vet on the review? Only then may step 02 say the records go
201
+ * to the vet ahead of the call; otherwise it keeps the deck's own summary line.
202
+ */
203
+ readonly sharedRecords?: boolean | undefined;
204
+ /**
205
+ * Did exactly one PHOTO go with this booking, and did the consult keep it? Only then may step 02 say the photo
206
+ * goes to the vet (the artifact's photo form). Defaults to false.
207
+ */
208
+ readonly sentPhoto?: boolean | undefined;
199
209
  }
200
- declare function TelevetBookedScreen({ consult, petName, onDone, onAddToCalendar, canJoinInApp, }: TelevetBookedScreenProps): ReactNode;
210
+ declare function TelevetBookedScreen({ consult, petName, onDone, onAddToCalendar, canJoinInApp, sharedRecords, sentPhoto, }: TelevetBookedScreenProps): ReactNode;
201
211
 
202
212
  /**
203
213
  * The host's own discard confirmation.
@@ -229,8 +239,19 @@ interface TelevetBookingChromeProps {
229
239
  readonly onBack: () => void;
230
240
  readonly onClose: () => void;
231
241
  readonly onConfirmDiscard?: TelevetDiscardConfirm | undefined;
242
+ /**
243
+ * Is the host's early emergency warning up in place of Describe? It counts as the emergency step it stands
244
+ * for, so the bar does not step backwards while it is on screen.
245
+ */
246
+ readonly triageOpen?: boolean | undefined;
247
+ /**
248
+ * The household the flow runs for, as the step reducer reads it. The bar counts only the steps it leaves on
249
+ * screen, so a one-pet household reads "Step 1 of 7" over seven segments on its first step. Absent, the bar
250
+ * counts the artifacts' eight.
251
+ */
252
+ readonly stepContext?: TelevetBookingContext | undefined;
232
253
  }
233
- declare function TelevetBookingChrome({ step, furthestIndex, title, canGoBack, isDirty, onBack, onClose, onConfirmDiscard, }: TelevetBookingChromeProps): ReactNode;
254
+ declare function TelevetBookingChrome({ step, furthestIndex, title, canGoBack, isDirty, onBack, onClose, onConfirmDiscard, triageOpen, stepContext, }: TelevetBookingChromeProps): ReactNode;
234
255
  /**
235
256
  * The back control's spoken label.
236
257
  *
@@ -262,8 +283,14 @@ interface TelevetIntakeMediaProps {
262
283
  readonly onChange: (next: readonly TelevetIntakeMediaItem[]) => void;
263
284
  /** Absent, the row renders nothing at all. There is no disabled Add control. */
264
285
  readonly onPickMedia?: TelevetMediaPicker | undefined;
286
+ /**
287
+ * A line under the row, or nothing. The booking passes the artifact's "Optional. A close-up in good light
288
+ * helps." only once the televet presign has answered, because the advice is true only when a photo can reach
289
+ * the vet. Absent, nothing is drawn.
290
+ */
291
+ readonly meta?: string | null | undefined;
265
292
  }
266
- declare function TelevetIntakeMedia({ media, onChange, onPickMedia }: TelevetIntakeMediaProps): ReactNode;
293
+ declare function TelevetIntakeMedia({ media, onChange, onPickMedia, meta }: TelevetIntakeMediaProps): ReactNode;
267
294
 
268
295
  /** What the host can tell us about a location it could not resolve, so the right card renders. */
269
296
  type TelevetLocationStatus = 'unknown' | 'blocked' | 'unavailable';
@@ -292,14 +319,15 @@ interface EverfurTelevetBookingProps {
292
319
  /**
293
320
  * THE EMERGENCY TRIAGE READ, asked after Describe rather than only at Confirm.
294
321
  *
295
- * ABSENT MEANS NO EARLY QUESTION, and the flow behaves exactly as it did before: straight from the
296
- * description to the vet, with the server's own `emergency_ack_required` refusal still waiting at Confirm.
297
- * That is not a degraded mode, it is the consumer app's own rule for a triage read that could not answer
298
- * (`useEarlyTriage`): a failed pre-read costs the member the screen's early position, never the check.
322
+ * ABSENT MEANS THE CONTROLLER'S OWN READ: `POST /widget/v1/televet/consults/triage`, the booking's own
323
+ * classifier, served dark behind `partner.televet_early_triage_enabled`. Where that route is dark (or the
324
+ * controller has no `triage`), the flow behaves exactly as it did before: straight from the description to
325
+ * the vet, with the server's own `emergency_ack_required` refusal still waiting at Confirm. That is the
326
+ * consumer app's own rule for a triage read that could not answer (`useEarlyTriage`): a failed pre-read costs
327
+ * the member the screen's early position, never the check.
299
328
  *
300
- * IT IS A SEAM BECAUSE `POST /widget/v1/televet/consults/triage` IS NOT SERVED. Verified on EFBackend main
301
- * on 2026-09-22 against the route decorators under services/api/app/domains/partner_televet. A partner
302
- * whose own stack can classify free text may wire it; nothing here invents a verdict.
329
+ * GIVEN, IT WINS over the controller's read. A partner whose own stack classifies free text may wire it;
330
+ * nothing here invents a verdict.
303
331
  */
304
332
  readonly onTriageReason?: TelevetTriageRead;
305
333
  /**
@@ -373,6 +401,16 @@ type TelevetScreen =
373
401
  readonly name: 'visit';
374
402
  readonly visitRef: string;
375
403
  readonly intent: VetVisitIntent | null;
404
+ }
405
+ /** The member's thread with the vet about one pet (EFBackend #1809). */
406
+ | {
407
+ readonly name: 'thread';
408
+ readonly target: TelevetVetThreadTarget;
409
+ }
410
+ /** The vet's approved summary of a finished visit (EFBackend #1809). */
411
+ | {
412
+ readonly name: 'summary';
413
+ readonly consult: TelevetConsult;
376
414
  };
377
415
  /**
378
416
  * The screen a request opens on: the visit it names, or the landing (the visits when one is ahead, otherwise
@@ -407,8 +445,9 @@ interface EverfurTelevetProps {
407
445
  */
408
446
  readonly onFindEmergencyVet?: () => void;
409
447
  /**
410
- * The emergency question asked after Describe. Absent, the question is asked at Confirm by the server, as
411
- * it is today: the partner plane serves no triage route. See `EverfurTelevetBooking`.
448
+ * The emergency question asked after Describe. Absent, the controller's own
449
+ * `POST /widget/v1/televet/consults/triage` is asked instead, and where that route is dark the server asks at
450
+ * Confirm. See `EverfurTelevetBooking`.
412
451
  */
413
452
  readonly onTriageReason?: TelevetTriageRead;
414
453
  /**
@@ -471,11 +510,15 @@ interface TelevetVisitsScreenProps {
471
510
  readonly onBack: () => void;
472
511
  /** Bumped by the flow after a booking, a move, a cancel or a call, so the list is read again. */
473
512
  readonly revision?: number | undefined;
513
+ /** Open the member's thread with the vet about one pet. Absent, or while the routes are dark, no Messages card. */
514
+ readonly onOpenThread?: ((target: TelevetVetThreadTarget) => void) | undefined;
515
+ /** Open a finished visit's summary. Absent, or while the routes are dark, a finished row opens nothing. */
516
+ readonly onOpenSummary?: ((consult: TelevetConsult) => void) | undefined;
474
517
  /** Injected by tests, so the split can sit on either side of a window. */
475
518
  readonly nowMs?: number | undefined;
476
519
  readonly style?: StyleProp<ViewStyle>;
477
520
  }
478
- declare function TelevetVisitsScreen({ controller: injected, onOpenVisit, onBook, onBack, revision, nowMs, style, }: TelevetVisitsScreenProps): ReactNode;
521
+ declare function TelevetVisitsScreen({ controller: injected, onOpenVisit, onBook, onBack, revision, onOpenThread, onOpenSummary, nowMs, style, }: TelevetVisitsScreenProps): ReactNode;
479
522
 
480
523
  interface TelevetConsultScreenProps {
481
524
  /** The visit, as the list that opened it read it. Re-read on mount; shown while the re-read is in flight. */
@@ -491,11 +534,48 @@ interface TelevetConsultScreenProps {
491
534
  readonly onBack: () => void;
492
535
  /** Bumped by the flow after a move or a call, so the visit is read again. */
493
536
  readonly revision?: number | undefined;
537
+ /**
538
+ * Open the member's thread with this visit's vet (the waiting room's "Running late? Message {vet}", T127, drawn
539
+ * here because this is the screen with Join, where the member is before the call). Absent, or while the thread
540
+ * routes are dark (EFBackend #1809, `partner.televet_messages_enabled`), the link is not drawn.
541
+ */
542
+ readonly onMessageVet?: ((target: TelevetVetThreadTarget) => void) | undefined;
494
543
  /** Injected by tests. Left undefined in the app so the screen uses a clock that moves. */
495
544
  readonly nowMs?: number | undefined;
496
545
  readonly style?: StyleProp<ViewStyle>;
497
546
  }
498
- declare function TelevetConsultScreen({ consult: opened, controller: injected, onJoin, onReschedule, onCancelled, onBack, revision, nowMs, style, }: TelevetConsultScreenProps): ReactNode;
547
+ declare function TelevetConsultScreen({ consult: opened, controller: injected, onJoin, onReschedule, onCancelled, onBack, revision, onMessageVet, nowMs, style, }: TelevetConsultScreenProps): ReactNode;
548
+
549
+ interface TelevetVetThreadScreenProps {
550
+ /** The partner's reference for the pet the thread is about. */
551
+ readonly petRef: string;
552
+ /** The pet's roster name, for the title. */
553
+ readonly petName?: string | null | undefined;
554
+ /** The vet's served name, when the screen that opened the thread knows it. Otherwise read from the thread. */
555
+ readonly vetName?: string | null | undefined;
556
+ /** What the thread list said (`VetThread.ownerCanStart`). */
557
+ readonly ownerCanStart?: boolean | undefined;
558
+ /** Host/test seam: inject a booking controller instead of building one from the provider's session. */
559
+ readonly controller?: TelevetBookingController | undefined;
560
+ /** Back to the screen under the thread. */
561
+ readonly onBack: () => void;
562
+ readonly style?: StyleProp<ViewStyle>;
563
+ }
564
+ declare function TelevetVetThreadScreen({ petRef, petName, vetName, ownerCanStart, controller: injected, onBack, style, }: TelevetVetThreadScreenProps): ReactNode;
565
+
566
+ interface TelevetVisitSummaryScreenProps {
567
+ /** The finished visit whose summary this is. */
568
+ readonly consult: TelevetConsult;
569
+ /** Host/test seam: inject a booking controller instead of building one from the provider's session. */
570
+ readonly controller?: TelevetBookingController | undefined;
571
+ readonly onBack: () => void;
572
+ /** Open the member's thread with this vet. Absent, or when the roster cannot name the pet, it is omitted. */
573
+ readonly onMessageVet?: ((target: TelevetVetThreadTarget) => void) | undefined;
574
+ /** Start a booking. Absent, "Book a follow-up" is omitted. */
575
+ readonly onBook?: (() => void) | undefined;
576
+ readonly style?: StyleProp<ViewStyle>;
577
+ }
578
+ declare function TelevetVisitSummaryScreen({ consult, controller: injected, onBack, onMessageVet, onBook, style, }: TelevetVisitSummaryScreenProps): ReactNode;
499
579
 
500
580
  interface EverfurTelevetRescheduleProps {
501
581
  /** The consult being moved. Null while the host is still loading it. */
@@ -546,15 +626,22 @@ interface TelevetSlotPickerProps {
546
626
  readonly ListHeaderComponent?: ComponentType | ReactElement | null;
547
627
  readonly rowTestIdPrefix?: string;
548
628
  readonly testID?: string;
629
+ /**
630
+ * The owner-approved artifacts' slot groups (`vet-book-time`: "Morning", "Afternoon", "Evening"). Given, the
631
+ * day's times are drawn under those three labels; absent, as one grid. Copy, so the caller passes the deck's.
632
+ */
633
+ readonly periodLabels?: Readonly<Record<TelevetDayPeriod, string>> | undefined;
549
634
  }
550
- declare function TelevetSlotPicker({ slots, busySlotId, onPick, selectedSlot, ListHeaderComponent, rowTestIdPrefix, testID, }: TelevetSlotPickerProps): ReactNode;
635
+ declare function TelevetSlotPicker({ slots, busySlotId, onPick, selectedSlot, ListHeaderComponent, rowTestIdPrefix, testID, periodLabels, }: TelevetSlotPickerProps): ReactNode;
551
636
 
552
637
  /** One "label ... value" row in the summary card. */
553
- declare function TelevetSummaryRow({ label, value, last, testID, }: {
638
+ declare function TelevetSummaryRow({ label, value, last, action, testID, }: {
554
639
  readonly label: string;
555
640
  readonly value: string;
556
641
  /** The last row draws no divider, so the card does not end on a line. */
557
642
  readonly last?: boolean;
643
+ /** A control at the row's end (the review's "Change" on When). */
644
+ readonly action?: ReactNode;
558
645
  readonly testID?: string;
559
646
  }): ReactNode;
560
647
  /**
@@ -577,4 +664,4 @@ declare function TelevetSummaryCard({ children, testID }: {
577
664
  readonly testID?: string;
578
665
  }): ReactNode;
579
666
 
580
- export { BACK_LABEL, EverfurTelevet, EverfurTelevetBooking, type EverfurTelevetBookingProps, EverfurTelevetFlow, EverfurTelevetFlowRequest, EverfurTelevetModal, type EverfurTelevetModalProps, type EverfurTelevetProps, EverfurTelevetReschedule, type EverfurTelevetRescheduleProps, PetRef, TelevetBookedScreen, type TelevetBookedScreenProps, TelevetBookingChrome, type TelevetBookingChromeProps, TelevetBookingController, TelevetBookingStep, type TelevetCalendarEvent, type TelevetCalendarWriter, TelevetCancelReceipt, TelevetClinicianEmptyState, type TelevetClinicianEmptyStateProps, TelevetConsentCheckbox, TelevetConsult, TelevetConsultScreen, type TelevetConsultScreenProps, type TelevetDay, TelevetDayStrip, type TelevetDayStripProps, type TelevetDiscardConfirm, TelevetEarlyEmergency, type TelevetEarlyEmergencyProps, TelevetEmergencyExits, TelevetEmptyRosterCause, TelevetEntitlementInterestState, type TelevetEntitlementInterestStateProps, TelevetIntakeMedia, type TelevetIntakeMediaItem, type TelevetIntakeMediaProps, TelevetJoinScreen, type TelevetJoinScreenProps, type TelevetLocationStatus, TelevetMediaDropNotice, type TelevetMediaDropNoticeProps, type TelevetMediaPicker, TelevetMediaShortfall, type TelevetPrimaryVet, type TelevetScreen, TelevetSlot, TelevetSlotPicker, type TelevetSlotPickerProps, TelevetStateInterestAction, type TelevetStateInterestActionProps, TelevetStateInterestAction$1 as TelevetStateInterestLifecycle, TelevetStateInterestWrite, TelevetSummaryCard, TelevetSummaryRow, TelevetTriageRead, TelevetVisitsScreen, type TelevetVisitsScreenProps, VetVisitIntent, televetConsultCalendarKey, televetDaysFromSlots, televetScreenForRequest };
667
+ export { BACK_LABEL, EverfurTelevet, EverfurTelevetBooking, type EverfurTelevetBookingProps, EverfurTelevetFlow, EverfurTelevetFlowRequest, EverfurTelevetModal, type EverfurTelevetModalProps, type EverfurTelevetProps, EverfurTelevetReschedule, type EverfurTelevetRescheduleProps, PetRef, TelevetBookedScreen, type TelevetBookedScreenProps, TelevetBookingChrome, type TelevetBookingChromeProps, TelevetBookingContext, TelevetBookingController, TelevetBookingStep, type TelevetCalendarEvent, type TelevetCalendarWriter, TelevetCancelReceipt, TelevetClinicianEmptyState, type TelevetClinicianEmptyStateProps, TelevetConsentCheckbox, TelevetConsult, TelevetConsultScreen, type TelevetConsultScreenProps, type TelevetDay, TelevetDayStrip, type TelevetDayStripProps, type TelevetDiscardConfirm, TelevetEarlyEmergency, type TelevetEarlyEmergencyProps, TelevetEmergencyExits, TelevetEmptyRosterCause, TelevetEntitlementInterestState, type TelevetEntitlementInterestStateProps, TelevetIntakeMedia, type TelevetIntakeMediaItem, type TelevetIntakeMediaProps, TelevetJoinScreen, type TelevetJoinScreenProps, type TelevetLocationStatus, TelevetMediaDropNotice, type TelevetMediaDropNoticeProps, type TelevetMediaPicker, TelevetMediaShortfall, type TelevetPrimaryVet, type TelevetScreen, TelevetSlot, TelevetSlotPicker, type TelevetSlotPickerProps, TelevetStateInterestAction, type TelevetStateInterestActionProps, TelevetStateInterestAction$1 as TelevetStateInterestLifecycle, TelevetStateInterestWrite, TelevetSummaryCard, TelevetSummaryRow, TelevetTriageRead, TelevetVetThreadScreen, type TelevetVetThreadScreenProps, TelevetVetThreadTarget, TelevetVisitSummaryScreen, type TelevetVisitSummaryScreenProps, TelevetVisitsScreen, type TelevetVisitsScreenProps, VetVisitIntent, televetConsultCalendarKey, televetDaysFromSlots, televetScreenForRequest };