@everfur/sdk 0.12.0 → 0.13.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 (268) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/README.md +2 -1
  3. package/dist/{Chat-BOG0SXKV.d.cts → Chat.d-DUNTfzqC.d.ts} +170 -8
  4. package/dist/{Chat-CIolBgjJ.d.ts → Chat.d-Dts8u_1a.d.cts} +170 -8
  5. package/dist/{DepthViews-BR6VQ3Ta.d.cts → DepthViews.d-BIp599lz.d.cts} +1 -1
  6. package/dist/{DepthViews-280t3BcQ.d.ts → DepthViews.d-BMU2jFPw.d.cts} +1 -1
  7. package/dist/{DepthViews-DlBuFsgN.d.ts → DepthViews.d-Ce2Zhnrb.d.ts} +1 -1
  8. package/dist/{DepthViews-BTbF_DJY.d.cts → DepthViews.d-CubkMPbU.d.ts} +1 -1
  9. package/dist/{ErrorPolicyPort-10s3HJCt.d.cts → ErrorPolicyPort.d-68yrE3BE.d.ts} +1 -1
  10. package/dist/{ErrorPolicyPort-C3nNSS_j.d.ts → ErrorPolicyPort.d-DirW9hgO.d.cts} +1 -1
  11. package/dist/{EverfurError-DeBqRpQV.d.cts → EverfurError.d-8NHtlgzA.d.cts} +11 -1
  12. package/dist/{EverfurError-DeBqRpQV.d.ts → EverfurError.d-8NHtlgzA.d.ts} +11 -1
  13. package/dist/{EverfurResult-ClPTS0P2.d.ts → EverfurResult.d-BFH-3s6E.d.cts} +1 -1
  14. package/dist/{EverfurResult-COlXj1wq.d.cts → EverfurResult.d-D_-254ZY.d.ts} +1 -1
  15. package/dist/{IntakeMedia-BH0fYDT2.d.cts → IntakeMedia.d-4a89XrP7.d.ts} +1 -1
  16. package/dist/{IntakeMedia-B-_vA9ZB.d.cts → IntakeMedia.d-DGxrhgIW.d.ts} +1 -1
  17. package/dist/{IntakeMedia-CIoTXAWs.d.ts → IntakeMedia.d-DUPR4lVM.d.cts} +1 -1
  18. package/dist/{IntakeMedia-Bavl7E4Z.d.ts → IntakeMedia.d-JJCUvQu7.d.cts} +1 -1
  19. package/dist/LifecyclePort.d-Cr1p33a7.d.cts +23 -0
  20. package/dist/LifecyclePort.d-Cr1p33a7.d.ts +23 -0
  21. package/dist/{PhotoController-vzY5bfY_.d.ts → PhotoController.d-BzCJOE7e.d.cts} +2 -2
  22. package/dist/{PhotoController-3l7MT9jA.d.cts → PhotoController.d-D0XiUUOl.d.ts} +2 -2
  23. package/dist/animations/index.cjs +5 -1
  24. package/dist/animations/index.d.cts +24 -24
  25. package/dist/animations/index.d.ts +24 -24
  26. package/dist/animations/index.js +5 -1
  27. package/dist/{attachments-CGxvnYu4.d.ts → attachments.d-Bp2qbHxn.d.cts} +22 -26
  28. package/dist/{attachments-CWNj1ZkM.d.ts → attachments.d-D1yhJjcZ.d.ts} +4 -4
  29. package/dist/{attachments-waXcJWCp.d.cts → attachments.d-DisnvB9R.d.cts} +4 -4
  30. package/dist/{attachments-B6h4cJU-.d.cts → attachments.d-Djy9z_0Z.d.ts} +22 -26
  31. package/dist/{bookingCopy-CjPKeg75.d.ts → bookingCopy.d-BJF6gd1A.d.ts} +24 -9
  32. package/dist/{bookingCopy-8aEU6ZmR.d.cts → bookingCopy.d-BlBmhAJc.d.cts} +24 -9
  33. package/dist/{branding-DJf4h12Q.d.ts → branding.d-DI8S400y.d.cts} +9 -2
  34. package/dist/{branding-BCfwLj0h.d.cts → branding.d-OIGLbQeM.d.ts} +9 -2
  35. package/dist/{callRoom-BhIdadyV.d.cts → callRoom.d-B1DoYdJe.d.cts} +1 -1
  36. package/dist/{callRoom-B92eH_ij.d.ts → callRoom.d-Dqm1rUqT.d.ts} +1 -1
  37. package/dist/{casesRepository-CGdhvzTu.d.cts → casesRepository.d-CT2LTicS.d.cts} +3 -3
  38. package/dist/{casesRepository-ZG9Sg0e4.d.ts → casesRepository.d-UsWOz9bv.d.ts} +3 -3
  39. package/dist/chat/index.cjs +132 -57
  40. package/dist/chat/index.d.cts +18 -16
  41. package/dist/chat/index.d.ts +18 -16
  42. package/dist/chat/index.js +133 -58
  43. package/dist/client/index.cjs +15 -10
  44. package/dist/client/index.d.cts +19 -18
  45. package/dist/client/index.d.ts +19 -18
  46. package/dist/client/index.js +15 -10
  47. package/dist/{config-B0p6Lygh.d.cts → config.d-BR3DT9ho.d.cts} +3 -3
  48. package/dist/{config-DmFAZJOx.d.ts → config.d-Dy6igYlH.d.ts} +3 -3
  49. package/dist/consent/index.cjs +5 -1
  50. package/dist/consent/index.d.cts +10 -10
  51. package/dist/consent/index.d.ts +10 -10
  52. package/dist/consent/index.js +5 -1
  53. package/dist/{context-BNreNLtL.d.ts → context.d-Cwks0p3C.d.cts} +15 -15
  54. package/dist/{context-BgS2a57J.d.cts → context.d-QcCgguzA.d.ts} +15 -15
  55. package/dist/{copy-DLJriGQS.d.ts → copy.d-CiMn2IIt.d.ts} +6 -6
  56. package/dist/{copy-lWp-Lkv5.d.cts → copy.d-DLJTyRfT.d.cts} +6 -6
  57. package/dist/core/index.cjs +17 -13
  58. package/dist/core/index.d.cts +33 -29
  59. package/dist/core/index.d.ts +33 -29
  60. package/dist/core/index.js +17 -13
  61. package/dist/{depth-BYb3RXoA.d.cts → depth.d-CjPGVPDL.d.cts} +9 -115
  62. package/dist/{depth-COz-sSG5.d.ts → depth.d-OSALbYM7.d.ts} +9 -115
  63. package/dist/{entitlementRepository-D-Lse67w.d.cts → entitlementRepository.d-CVQa1DA1.d.cts} +10 -5
  64. package/dist/{entitlementRepository-CrTOP_-o.d.ts → entitlementRepository.d-Cf3LbTwD.d.ts} +10 -5
  65. package/dist/features.d-fNsGcg0R.d.cts +108 -0
  66. package/dist/features.d-fNsGcg0R.d.ts +108 -0
  67. package/dist/focus.d-DMg2ngHI.d.ts +1178 -0
  68. package/dist/focus.d-az9cqUz3.d.cts +1178 -0
  69. package/dist/health-plan/index.cjs +370 -0
  70. package/dist/health-plan/index.d.cts +251 -0
  71. package/dist/health-plan/index.d.ts +251 -0
  72. package/dist/health-plan/index.js +370 -0
  73. package/dist/idempotency.d-D461_DPD.d.cts +910 -0
  74. package/dist/idempotency.d-WpXx9zQo.d.ts +910 -0
  75. package/dist/{identity-Cw07BKZp.d.ts → identity.d-60LeJt_s.d.cts} +3 -3
  76. package/dist/{identity-DFVGYn1o.d.cts → identity.d-DzTijonw.d.ts} +3 -3
  77. package/dist/index.cjs +141 -66
  78. package/dist/index.d.cts +31 -29
  79. package/dist/index.d.ts +31 -29
  80. package/dist/index.js +142 -67
  81. package/dist/{models-A4A5S7AG.d.cts → models.d-BagXhafD.d.ts} +8 -3
  82. package/dist/{models-CnXY5LuO.d.ts → models.d-BnLm3VAA.d.cts} +8 -3
  83. package/dist/notifications/index.cjs +5 -1
  84. package/dist/notifications/index.d.cts +9 -9
  85. package/dist/notifications/index.d.ts +9 -9
  86. package/dist/notifications/index.js +5 -1
  87. package/dist/optInView.d-CEyHR6PK.d.cts +325 -0
  88. package/dist/optInView.d-acKpV8V2.d.ts +325 -0
  89. package/dist/parse.d-C8CXyS58.d.ts +210 -0
  90. package/dist/parse.d-tEzufgJX.d.cts +210 -0
  91. package/dist/{pets-BYALZTSu.d.ts → pets.d-C_53_fzo.d.ts} +3 -3
  92. package/dist/{pets-CcyPQS-H.d.cts → pets.d-NbJvP_kh.d.cts} +3 -3
  93. package/dist/{petsRepository-B_Q1gFkE.d.cts → petsRepository.d-BuGHymNx.d.ts} +4 -4
  94. package/dist/{petsRepository-518QkPxH.d.ts → petsRepository.d-lp1BHRqM.d.cts} +4 -4
  95. package/dist/photo/index.cjs +6 -2
  96. package/dist/photo/index.d.cts +9 -9
  97. package/dist/photo/index.d.ts +9 -9
  98. package/dist/photo/index.js +6 -2
  99. package/dist/{ports-BN6RHF9W.d.ts → ports.d-BX4f4UsB.d.cts} +14 -1
  100. package/dist/{ports-BN6RHF9W.d.cts → ports.d-BX4f4UsB.d.ts} +14 -1
  101. package/dist/{ports-RuNJmBA-.d.cts → ports.d-CEROoqnA.d.cts} +16 -10
  102. package/dist/{ports-DmQeMArX.d.ts → ports.d-COIyN624.d.ts} +16 -10
  103. package/dist/presentation.d-DMbdad7G.d.cts +90 -0
  104. package/dist/presentation.d-DMbdad7G.d.ts +90 -0
  105. package/dist/records/depth/index.cjs +11 -7
  106. package/dist/records/depth/index.d.cts +14 -12
  107. package/dist/records/depth/index.d.ts +14 -12
  108. package/dist/records/depth/index.js +11 -7
  109. package/dist/records/index.cjs +225 -62
  110. package/dist/records/index.d.cts +159 -20
  111. package/dist/records/index.d.ts +159 -20
  112. package/dist/records/index.js +225 -62
  113. package/dist/recordsAsk.d-C5CGSi3j.d.cts +14 -0
  114. package/dist/recordsAsk.d-C5CGSi3j.d.ts +14 -0
  115. package/dist/{requestFunnel-B9fdXMi5.d.ts → requestFunnel.d-CXUMPw1K.d.ts} +5 -5
  116. package/dist/{requestFunnel-BBjNNwc9.d.cts → requestFunnel.d-DWQQpjFR.d.cts} +5 -5
  117. package/dist/{resolve-D4Ywz5OS.d.ts → resolve.d-jI8FmBj3.d.cts} +3 -3
  118. package/dist/{resolve-D4Ywz5OS.d.cts → resolve.d-jI8FmBj3.d.ts} +3 -3
  119. package/dist/{runtimeTypes-CstDBX8w.d.cts → runtimeTypes.d-4yFNNuYR.d.ts} +20 -13
  120. package/dist/{runtimeTypes-N_K4BVZB.d.ts → runtimeTypes.d-D6N_fhxx.d.cts} +20 -13
  121. package/dist/server/events/index.cjs +7 -3
  122. package/dist/server/events/index.d.cts +51 -9
  123. package/dist/server/events/index.d.ts +51 -9
  124. package/dist/server/events/index.js +7 -3
  125. package/dist/server/index.cjs +12 -6
  126. package/dist/server/index.d.cts +152 -8
  127. package/dist/server/index.d.ts +152 -8
  128. package/dist/server/index.js +12 -6
  129. package/dist/sheetCopy.d-CAhLOxjc.d.cts +4 -0
  130. package/dist/sheetCopy.d-CAhLOxjc.d.ts +4 -0
  131. package/dist/sheetSeam.d-Cviqk89n.d.ts +45 -0
  132. package/dist/sheetSeam.d-DCS3LW8g.d.cts +45 -0
  133. package/dist/shop/index.cjs +262 -0
  134. package/dist/shop/index.d.cts +193 -0
  135. package/dist/shop/index.d.ts +193 -0
  136. package/dist/shop/index.js +262 -0
  137. package/dist/televet/booking/index.cjs +16 -12
  138. package/dist/televet/booking/index.d.cts +36 -22
  139. package/dist/televet/booking/index.d.ts +36 -22
  140. package/dist/televet/booking/index.js +16 -12
  141. package/dist/televet/call/index.d.cts +5 -5
  142. package/dist/televet/call/index.d.ts +5 -5
  143. package/dist/televet/index.cjs +7 -3
  144. package/dist/televet/index.d.cts +12 -12
  145. package/dist/televet/index.d.ts +12 -12
  146. package/dist/televet/index.js +7 -3
  147. package/dist/{televetGlobal-C5dTUACe.d.cts → televetGlobal.d-CC-DrqkQ.d.ts} +7 -2
  148. package/dist/{televetGlobal-CnjrfhT4.d.ts → televetGlobal.d-CKwDCbmN.d.cts} +7 -2
  149. package/dist/testing/index.cjs +7 -3
  150. package/dist/testing/index.d.cts +3 -3
  151. package/dist/testing/index.d.ts +3 -3
  152. package/dist/testing/index.js +7 -3
  153. package/dist/testing/rn/index.cjs +5 -1
  154. package/dist/testing/rn/index.d.cts +23 -22
  155. package/dist/testing/rn/index.d.ts +23 -22
  156. package/dist/testing/rn/index.js +5 -1
  157. package/dist/testing/web/index.cjs +5 -1
  158. package/dist/testing/web/index.d.cts +23 -22
  159. package/dist/testing/web/index.d.ts +23 -22
  160. package/dist/testing/web/index.js +5 -1
  161. package/dist/texting/index.cjs +158 -0
  162. package/dist/texting/index.d.cts +36 -0
  163. package/dist/texting/index.d.ts +36 -0
  164. package/dist/texting/index.js +158 -0
  165. package/dist/threadOptions.d-B1pTMmDF.d.cts +260 -0
  166. package/dist/threadOptions.d-B1pTMmDF.d.ts +260 -0
  167. package/dist/{timelineRows-7yjHyh8i.d.ts → timelineRows.d-BNxgzYRW.d.cts} +1 -1
  168. package/dist/{timelineRows-WvnL-Lds.d.cts → timelineRows.d-CU5GvvLk.d.ts} +1 -1
  169. package/dist/{tokens-DLj8OnLH.d.cts → tokens.d-DarDaV39.d.cts} +10 -2
  170. package/dist/{tokens-DLj8OnLH.d.ts → tokens.d-DarDaV39.d.ts} +10 -2
  171. package/dist/{typeStyle-BxVyF71R.d.ts → typeStyle.d-Bl8pzbBy.d.cts} +2 -2
  172. package/dist/{typeStyle-DJedEu14.d.cts → typeStyle.d-C1HBRAI3.d.ts} +2 -2
  173. package/dist/{uploadTransport-BM_pnEWj.d.cts → uploadTransport.d-CWL7CdWP.d.cts} +1 -1
  174. package/dist/{uploadTransport-C6kGP1Kd.d.ts → uploadTransport.d-EGoUl7gX.d.ts} +1 -1
  175. package/dist/usePresentation.d-D6qsFzBz.d.cts +9 -0
  176. package/dist/usePresentation.d-DuGQe_Do.d.ts +9 -0
  177. package/dist/useRecords.d-Cb-36SF5.d.cts +121 -0
  178. package/dist/useRecords.d-aQTzQZoV.d.ts +121 -0
  179. package/dist/{useRecordsDepth-Bp6L4M5P.d.ts → useRecordsDepth.d-DFcCfiXm.d.ts} +8 -20
  180. package/dist/{useRecordsDepth-DPdAK_81.d.cts → useRecordsDepth.d-sAq2Qkhr.d.cts} +8 -20
  181. package/dist/{useVetVisit-DmWa7lt1.d.ts → useVetVisit.d-BtdwhmgD.d.cts} +15 -4
  182. package/dist/{useVetVisit-PtBjNwZr.d.cts → useVetVisit.d-DoYQimyt.d.ts} +15 -4
  183. package/dist/video/index.cjs +6 -2
  184. package/dist/video/index.d.cts +7 -7
  185. package/dist/video/index.d.ts +7 -7
  186. package/dist/video/index.js +6 -2
  187. package/dist/{view-C6go2uUt.d.ts → view.d-C-SNpDJX.d.ts} +10 -122
  188. package/dist/{view-CiF_HVFQ.d.cts → view.d-Dps5C8-s.d.cts} +10 -122
  189. package/dist/web/consent/index.cjs +5 -1
  190. package/dist/web/consent/index.d.cts +10 -10
  191. package/dist/web/consent/index.d.ts +10 -10
  192. package/dist/web/consent/index.js +5 -1
  193. package/dist/web/health-plan/index.cjs +414 -0
  194. package/dist/web/health-plan/index.d.cts +335 -0
  195. package/dist/web/health-plan/index.d.ts +335 -0
  196. package/dist/web/health-plan/index.js +414 -0
  197. package/dist/web/index.cjs +150 -82
  198. package/dist/web/index.d.cts +152 -38
  199. package/dist/web/index.d.ts +152 -38
  200. package/dist/web/index.js +150 -82
  201. package/dist/web/notifications/index.cjs +16 -3
  202. package/dist/web/notifications/index.d.cts +39 -209
  203. package/dist/web/notifications/index.d.ts +39 -209
  204. package/dist/web/notifications/index.js +16 -3
  205. package/dist/web/records/depth/index.cjs +11 -7
  206. package/dist/web/records/depth/index.d.cts +14 -12
  207. package/dist/web/records/depth/index.d.ts +14 -12
  208. package/dist/web/records/depth/index.js +11 -7
  209. package/dist/web/records/index.cjs +95 -68
  210. package/dist/web/records/index.d.cts +66 -21
  211. package/dist/web/records/index.d.ts +66 -21
  212. package/dist/web/records/index.js +95 -68
  213. package/dist/web/records/upload/index.d.cts +2 -2
  214. package/dist/web/records/upload/index.d.ts +2 -2
  215. package/dist/web/records-sheet/index.cjs +278 -0
  216. package/dist/web/records-sheet/index.d.cts +102 -0
  217. package/dist/web/records-sheet/index.d.ts +102 -0
  218. package/dist/web/records-sheet/index.js +278 -0
  219. package/dist/web/shop/index.cjs +301 -0
  220. package/dist/web/shop/index.d.cts +42 -0
  221. package/dist/web/shop/index.d.ts +42 -0
  222. package/dist/web/shop/index.js +301 -0
  223. package/dist/web/televet/booking/index.cjs +16 -12
  224. package/dist/web/televet/booking/index.d.cts +37 -23
  225. package/dist/web/televet/booking/index.d.ts +37 -23
  226. package/dist/web/televet/booking/index.js +16 -12
  227. package/dist/web/televet/call/index.d.cts +4 -4
  228. package/dist/web/televet/call/index.d.ts +4 -4
  229. package/dist/web/televet/index.cjs +7 -3
  230. package/dist/web/televet/index.d.cts +12 -12
  231. package/dist/web/televet/index.d.ts +12 -12
  232. package/dist/web/televet/index.js +7 -3
  233. package/dist/web/texting/index.cjs +157 -0
  234. package/dist/web/texting/index.d.cts +36 -0
  235. package/dist/web/texting/index.d.ts +36 -0
  236. package/dist/web/texting/index.js +157 -0
  237. package/health-plan/package.json +8 -0
  238. package/package.json +106 -4
  239. package/shop/package.json +8 -0
  240. package/texting/package.json +8 -0
  241. package/web/health-plan/native-blocked.cjs +12 -0
  242. package/web/health-plan/package.json +8 -0
  243. package/web/records-sheet/native-blocked.cjs +12 -0
  244. package/web/records-sheet/package.json +8 -0
  245. package/web/shop/native-blocked.cjs +12 -0
  246. package/web/shop/package.json +8 -0
  247. package/web/texting/native-blocked.cjs +12 -0
  248. package/web/texting/package.json +8 -0
  249. /package/dist/{CameraPort-Cv31Pz7g.d.cts → CameraPort.d-Cv31Pz7g.d.cts} +0 -0
  250. /package/dist/{CameraPort-Cv31Pz7g.d.ts → CameraPort.d-Cv31Pz7g.d.ts} +0 -0
  251. /package/dist/{TelemetryPort-BDNr00hu.d.cts → TelemetryPort.d-BDNr00hu.d.cts} +0 -0
  252. /package/dist/{TelemetryPort-BDNr00hu.d.ts → TelemetryPort.d-BDNr00hu.d.ts} +0 -0
  253. /package/dist/{cacheEpoch-DknKn3S0.d.cts → cacheEpoch.d-DknKn3S0.d.cts} +0 -0
  254. /package/dist/{cacheEpoch-DknKn3S0.d.ts → cacheEpoch.d-DknKn3S0.d.ts} +0 -0
  255. /package/dist/{callCopy-Bw6oZT54.d.cts → callCopy.d-Bw6oZT54.d.cts} +0 -0
  256. /package/dist/{callCopy-Bw6oZT54.d.ts → callCopy.d-Bw6oZT54.d.ts} +0 -0
  257. /package/dist/{ids-B2GAAifq.d.cts → ids.d-B2GAAifq.d.cts} +0 -0
  258. /package/dist/{ids-B2GAAifq.d.ts → ids.d-B2GAAifq.d.ts} +0 -0
  259. /package/dist/{optionalModule-DbJmsq5f.d.cts → optionalModule.d-DbJmsq5f.d.cts} +0 -0
  260. /package/dist/{optionalModule-DbJmsq5f.d.ts → optionalModule.d-DbJmsq5f.d.ts} +0 -0
  261. /package/dist/{profile-CSs1wlXT.d.cts → profile.d-CSs1wlXT.d.cts} +0 -0
  262. /package/dist/{profile-CSs1wlXT.d.ts → profile.d-CSs1wlXT.d.ts} +0 -0
  263. /package/dist/{projection-CeIUsbSk.d.cts → projection.d-CeIUsbSk.d.cts} +0 -0
  264. /package/dist/{projection-CeIUsbSk.d.ts → projection.d-CeIUsbSk.d.ts} +0 -0
  265. /package/dist/{species-BXAIMh7I.d.cts → species.d-BXAIMh7I.d.cts} +0 -0
  266. /package/dist/{species-BXAIMh7I.d.ts → species.d-BXAIMh7I.d.ts} +0 -0
  267. /package/dist/{visitIntent-D7_yVp1I.d.cts → visitIntent.d-D7_yVp1I.d.cts} +0 -0
  268. /package/dist/{visitIntent-D7_yVp1I.d.ts → visitIntent.d-D7_yVp1I.d.ts} +0 -0
@@ -0,0 +1,335 @@
1
+ import { ReactNode, CSSProperties } from 'react';
2
+ import { C as CapabilityDecision } from '../../resolve.d-jI8FmBj3.cjs';
3
+ import { E as EverfurError } from '../../EverfurError.d-8NHtlgzA.cjs';
4
+ export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError.d-8NHtlgzA.cjs';
5
+ import { P as PetRef } from '../../ids.d-B2GAAifq.cjs';
6
+ export { B as Brand, C as ConversationId, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids.d-B2GAAifq.cjs';
7
+ import { b as HealthPlanFocusDesign, H as HealthPlanFocusCopy, aL as HealthPlanFocusClassNames, a as HealthPlanFocusIcon, c as HealthPlanItem, d as HealthPlanSubscription, e as HealthPlanOneBoxOrder, f as HealthPlanSubscriptionRepository, g as HealthPlanPageRepository, h as HealthPlanShopOrder, i as HealthPlanCheckoutProvider, j as HealthPlanPriceFormat, k as HealthPlanLayoutProps, aM as HealthPlanEmptyCopy, l as HealthPlanCardOptions, m as HealthPlanImageVariant, n as HealthPlanReasonVariant, o as HealthPlanCart, ak as HealthPlanSubscriptionQuote, a8 as HealthPlanPagePet, a5 as HealthPlanPage } from '../../focus.d-az9cqUz3.cjs';
8
+ export { E as EverfurHealthPlanOptions, p as EverfurHealthPlanState, q as EverfurHealthPlanStatus, r as HEALTH_PLAN_COPY, s as HEALTH_PLAN_COPY_PLACEHOLDERS, t as HEALTH_PLAN_FOCUS_COPY, u as HEALTH_PLAN_LAYOUT_DEFAULTS, v as HEALTH_PLAN_REASON_KINDS, w as HEALTH_PLAN_REASON_LABELS, x as HEALTH_PLAN_TEMPLATES, y as HealthPlan, z as HealthPlanAddButtonSize, A as HealthPlanAddedVariant, B as HealthPlanCardShadow, C as HealthPlanCartBarPlacement, D as HealthPlanCartBarVisibility, F as HealthPlanCartCheckoutRequest, G as HealthPlanCartDock, I as HealthPlanCartScope, J as HealthPlanCartScopeProps, K as HealthPlanCategoryVariant, L as HealthPlanCheckoutItem, M as HealthPlanCheckoutRefusal, N as HealthPlanCheckoutRequest, O as HealthPlanCheckoutSession, P as HealthPlanCheckoutState, Q as HealthPlanCheckoutStatus, R as HealthPlanController, S as HealthPlanFocusExtra, aN as HealthPlanFocusPart, T as HealthPlanFocusPrices, U as HealthPlanFocusReasonRow, V as HealthPlanFocusReview, W as HealthPlanFocusSign, X as HealthPlanFocusStep, Y as HealthPlanFocusWait, Z as HealthPlanFontWeight, _ as HealthPlanHeaderContext, $ as HealthPlanOneBoxOffer, a0 as HealthPlanOneBoxOrderPage, a1 as HealthPlanOneBoxOrderPageOptions, a2 as HealthPlanOrderStatus, a3 as HealthPlanOrderTracking, a4 as HealthPlanOrderTrackingStatus, a6 as HealthPlanPageContext, a7 as HealthPlanPageOptions, a9 as HealthPlanPagePhase, aa as HealthPlanPageState, aO as HealthPlanPetWords, ab as HealthPlanPhase, ac as HealthPlanPurchase, ad as HealthPlanReason, ae as HealthPlanReasonKind, af as HealthPlanRepository, ag as HealthPlanRepositoryDeps, ah as HealthPlanRuntime, ai as HealthPlanShadow, aj as HealthPlanSnapshot, al as HealthPlanSubscriptionRenewal, am as HealthPlanSubscriptionStatus, an as HealthPlanSubscriptionStep, ao as HealthPlanSubscriptionSupply, ap as HealthPlanTrackStep, aq as createHealthPlanPageRepository, ar as createHealthPlanPageRepositoryOver, as as createHealthPlanRepository, at as createHealthPlanRepositoryOver, aP as createHealthPlanSubscriptionRepository, aQ as createHealthPlanSubscriptionRepositoryOver, au as formatHealthPlanDay, av as formatHealthPlanPrice, aw as formatHealthPlanPriceWith, ax as healthPlanCart, ay as healthPlanCheckoutRefusal, az as healthPlanCheckoutSessionFromWire, aA as healthPlanCheckoutStateFromWire, aR as healthPlanFocusCopyFor, aB as healthPlanFocusDesignFromWire, aC as healthPlanFromWire, aS as healthPlanOneBoxOrderFromWire, aT as healthPlanOneBoxOrderPageFromWire, aU as healthPlanOrderTrackingFromWire, aD as healthPlanPageFromWire, aV as healthPlanPetWords, aW as healthPlanSubscriptionFromWire, aX as healthPlanSubscriptionQuoteFromWire, aE as isHealthPlanSessionRequired, aY as isHealthPlanSubscriptionUnavailable, aF as showHealthPlanCartBar, aG as useEverfurHealthPlan, aH as useEverfurHealthPlanRepository, aI as useHealthPlanCartDock, aJ as useHealthPlanPage, aK as useHealthPlanPageRepository } from '../../focus.d-az9cqUz3.cjs';
9
+ import { L as LifecyclePort } from '../../LifecyclePort.d-Cr1p33a7.cjs';
10
+ import { E as EverfurResult } from '../../EverfurResult.d-BFH-3s6E.cjs';
11
+ import { i as EverfurPresentationInput } from '../../presentation.d-DMbdad7G.cjs';
12
+ export { E as EverfurChatAnswerStyle, a as EverfurChatComposerPlaceholder, b as EverfurChatComposerStyle, c as EverfurChatHistoryBarSetting, d as EverfurChatHistoryStyle, e as EverfurChatSendButtonSetting, f as EverfurChatTopCardSetting, g as EverfurHealthPlanLayout, h as EverfurPresentation, j as EverfurSafetyDisclaimerPlacement } from '../../presentation.d-DMbdad7G.cjs';
13
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-60LeJt_s.cjs';
14
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-BR3DT9ho.cjs';
15
+ export { E as ErrorPolicyPort } from '../../ErrorPolicyPort.d-DirW9hgO.cjs';
16
+ export { u as useEverfurPresentation } from '../../usePresentation.d-D6qsFzBz.cjs';
17
+ import { E as EverfurChatTopCard } from '../../threadOptions.d-B1pTMmDF.cjs';
18
+ import '../../requestFunnel.d-DWQQpjFR.cjs';
19
+
20
+ /** Which overlay the focus layout has open, for a host that dims its own chrome under it. */
21
+ type HealthPlanFocusOverlay = 'checkout' | 'manage' | 'started' | 'cart' | 'cartCheckout' | 'placed' | 'orders' | 'order' | 'weight' | null;
22
+ /** Which layer `overlayContainer` is asked for: the checkout and manage sheets, the started screen, the toast. */
23
+ type HealthPlanFocusLayer = 'sheet' | 'started' | 'toast';
24
+ /** Handed to `onOverlayChange`, so a host's own back control can close what is open. */
25
+ interface HealthPlanFocusOverlayControls {
26
+ /** Closes everything the layout has open. */
27
+ readonly close: () => void;
28
+ /** Closes the top screen or sheet only (a header's back). Absent before the shop: `close`. */
29
+ readonly back?: () => void;
30
+ /** The title for the host's header over a pushed screen ("Cart", "Order placed"); absent over a sheet. */
31
+ readonly title?: string;
32
+ /** True for a full screen (no bottom tabs under it): the cart, the order placed, the started screen. */
33
+ readonly full?: boolean;
34
+ }
35
+ /** The focus layout's options. Passing them to `EverfurHealthPlan` (`focus={...}`) opts the page in. */
36
+ interface HealthPlanFocusOptions {
37
+ /**
38
+ * Your content for the layout. Omit it and `EverfurHealthPlan` reads the pet's plan page from Everfur (built from
39
+ * vet-approved templates and the pet's own facts) and draws that, with the page's checkout setting.
40
+ */
41
+ readonly design?: HealthPlanFocusDesign;
42
+ /** Your words over the SDK's buying words, on top of `design.copy`. Works with the backend page too. */
43
+ readonly copy?: Partial<HealthPlanFocusCopy>;
44
+ readonly classNames?: HealthPlanFocusClassNames;
45
+ /** Draw an icon your way (an `<svg><use href="#i-check"/></svg>` from your sprite). */
46
+ readonly renderIcon?: (icon: HealthPlanFocusIcon, className?: string) => ReactNode;
47
+ /** False never reads the subscription quote: the buy button is the one-time handoff only. Default true. */
48
+ readonly subscriptions?: boolean;
49
+ /**
50
+ * Where the checkout sheet, the started screen and the toast mount, asked per layer (a sheet over your whole
51
+ * frame, the started screen under your own header). Null or absent: `document.body`.
52
+ */
53
+ readonly overlayContainer?: (layer: HealthPlanFocusLayer) => HTMLElement | null;
54
+ /** A one-time buy handed to your checkout (no quote, or no one-box offer). Omit it and `onCheckout([item])` is called instead. */
55
+ readonly onBuy?: (item: HealthPlanItem) => void;
56
+ /** The "Why this product?" link. Omit it and the link is not drawn. */
57
+ readonly onMore?: (item: HealthPlanItem) => void;
58
+ /** One of `design.extras` was added (or taken back). Local state; the host runs its own cart. Omit it and the extras are not drawn. */
59
+ readonly onExtra?: (key: string, added: boolean) => void;
60
+ /** The checkup questions were added to (or taken off) the next visit. Local state; the host persists it. */
61
+ readonly onAddToVisit?: (added: boolean, questions: readonly string[]) => void;
62
+ readonly onOverlayChange?: (overlay: HealthPlanFocusOverlay, controls: HealthPlanFocusOverlayControls) => void;
63
+ /** A subscription changed (started, skipped, interval, cancelled), with the server's new state. */
64
+ readonly onSubscriptionChange?: (subscription: HealthPlanSubscription) => void;
65
+ /** A one-box order was recorded, with the server's order. */
66
+ readonly onOneBoxOrder?: (order: HealthPlanOneBoxOrder) => void;
67
+ /** Number and date locale. Defaults to the platform's. */
68
+ readonly locale?: string;
69
+ /** A repository of your own (a stub backend, tests). */
70
+ readonly subscriptionRepository?: HealthPlanSubscriptionRepository;
71
+ /**
72
+ * How the member leaves for Everfur's Stripe Checkout (`checkout: everfur_stripe` only). Defaults to
73
+ * `window.location.assign(url)`; a page inside a frame passes its own (the top window's).
74
+ */
75
+ readonly navigate?: (url: string) => void;
76
+ /** The plan page and checkout repository of your own (a stub backend, tests). */
77
+ readonly pageRepository?: HealthPlanPageRepository;
78
+ /**
79
+ * True turns Buy into Add to cart and draws the cart, its checkout, the orders and an order. Default: on when the
80
+ * checkout is Everfur's (`everfur_stripe`), off for a partner's own checkout. `shop: false` turns it off with
81
+ * Everfur's checkout too: Buy and Subscribe then go straight to Stripe Checkout.
82
+ */
83
+ readonly shop?: boolean;
84
+ /**
85
+ * True when Everfur texts the member the tracking number once it ships: the "tracking comes by text" lines are drawn.
86
+ * `EverfurHealthPlan` sets it from the plan page (`tracking_texts_enabled`). Default false: never promised.
87
+ */
88
+ readonly trackingTexts?: boolean;
89
+ /**
90
+ * The pet's sex, for "her" / "his" in the buying words; absent or null uses the pet's name ("Georgia's"), else
91
+ * "your pet". `EverfurHealthPlan` sets it from the plan page; a host design passes its own.
92
+ */
93
+ readonly petSex?: 'female' | 'male' | null;
94
+ /** The unit the weight sheet takes: `lb` (the default) or `kg`. */
95
+ readonly weightUnit?: 'lb' | 'kg';
96
+ /** The partner's own orders for this pet (its kits, its tests), listed after Everfur's. The partner's data, drawn as given. */
97
+ readonly shopOrders?: readonly HealthPlanShopOrder[];
98
+ /** "Get help with this order". Omit it and the link is not drawn. */
99
+ readonly onOrderHelp?: (orderKey: string) => void;
100
+ /**
101
+ * False: the pet's weight is unknown, so the dose is replaced by a row that asks for it. `EverfurHealthPlan` sets it
102
+ * from the plan page; a host design passes its own. Absent: the dose is drawn.
103
+ */
104
+ readonly weightKnown?: boolean;
105
+ /** Save the weight your way (a demo pet). Omit it and the pet's profile is updated (`updatePet`, `weightKg`). */
106
+ readonly onSaveWeight?: (weightKg: number, pounds: number) => Promise<EverfurResult<unknown>>;
107
+ /** The weight was saved; `EverfurHealthPlan` re-reads the plan page with it. */
108
+ readonly onWeightSaved?: (weightKg: number) => void;
109
+ /**
110
+ * True with `onConnectRecords`: the row that asks for the pet's vet records is drawn under the checkup.
111
+ * `EverfurHealthPlan` derives it from the pet's records read when you pass `onConnectRecords` and leave this out.
112
+ */
113
+ readonly recordsMissing?: boolean;
114
+ readonly onConnectRecords?: () => void;
115
+ /** The waiting card's button (`design.wait.action`). */
116
+ readonly onWaitAction?: () => void;
117
+ }
118
+ interface HealthPlanFocusProps extends Omit<HealthPlanFocusOptions, 'design'> {
119
+ readonly design: HealthPlanFocusDesign;
120
+ /** Whose checkout Buy and Subscribe run. `partner` (the default) is the handoff; `everfur_stripe` redirects to Stripe. */
121
+ readonly checkout?: HealthPlanCheckoutProvider;
122
+ readonly item: HealthPlanItem;
123
+ /** The pet's other plan items, drawn under the pick in plan order, each with its own buy. `EverfurHealthPlan` passes the plan's items minus the pick. */
124
+ readonly others?: readonly HealthPlanItem[];
125
+ /** True to draw each other item's category (the backend `category`) above its name, as `showCategory` does on the list cards. Default false. */
126
+ readonly showCategory?: boolean;
127
+ /**
128
+ * The plan's re-read signals, so the subscription state (the subscribed line, Manage, Subscribe) is read again with
129
+ * it: a foreground past the stale window, quietly. `EverfurHealthPlan` passes its own. Absent, the quote is read
130
+ * once.
131
+ */
132
+ readonly lifecycle?: LifecyclePort | null;
133
+ /** Change it to re-read the subscription state now, quietly. `EverfurHealthPlan` passes its `refreshKey`. */
134
+ readonly refreshKey?: string | number;
135
+ readonly petRef: PetRef;
136
+ readonly petName: string | null;
137
+ readonly onCheckout?: (items: readonly HealthPlanItem[]) => void;
138
+ readonly priceFormat?: HealthPlanPriceFormat;
139
+ readonly style?: CSSProperties;
140
+ readonly className?: string;
141
+ }
142
+ /** The focus layout over one plan item. `EverfurHealthPlan` mounts it; a partner can mount it over the hook too. */
143
+ declare function HealthPlanFocus(props: HealthPlanFocusProps): ReactNode;
144
+
145
+ interface EverfurHealthPlanProps extends HealthPlanLayoutProps {
146
+ /** The pet whose plan to show. Omit it and the provider's active pet is used. */
147
+ readonly petRef?: PetRef | null;
148
+ /** Called with the cart's items when the member presses checkout. Omit it and no checkout control is drawn. */
149
+ readonly onCheckout?: (items: readonly HealthPlanItem[]) => void;
150
+ /** Your own wording for a refused read. The retry control stays the SDK's. */
151
+ readonly renderNotice?: (error: EverfurError) => ReactNode;
152
+ /** What to show when the `healthPlan` capability is off. Defaults to the gate's own off state. */
153
+ readonly renderDisabled?: (decision: CapabilityDecision) => ReactNode;
154
+ readonly style?: CSSProperties;
155
+ readonly className?: string;
156
+ /**
157
+ * The focus layout's content: one issue, the free tips first, one product sized for the pet (subscribe or one
158
+ * box), the pet's other plan items after it (each with its own one-box buy), the signs to watch with the checkup
159
+ * questions, and your other offers. The words come from `focus.design`.
160
+ * It is drawn while the layout setting `healthPlanLayout` resolves to `focus_plan` (your `presentation` prop, else
161
+ * your console's render_hints.branding.presentation `health_plan_layout`), with or without these options (none:
162
+ * Everfur's plan page with the SDK's defaults); otherwise the page keeps the product grid. Signed out, loading,
163
+ * refused and empty states draw exactly as without it.
164
+ *
165
+ * Without `focus.design` the content is Everfur's plan page for the pet (`GET .../plan/page`), read again on a pet
166
+ * change: loading while it reads, the empty state when the page is null, the retry notice when it is refused. The
167
+ * page also says whose checkout runs Buy and Subscribe (`everfur_stripe` redirects to Stripe Checkout; `partner`
168
+ * keeps the `onBuy` / `onCheckout` handoff).
169
+ */
170
+ readonly focus?: HealthPlanFocusOptions;
171
+ /**
172
+ * The layout setting, `healthPlanLayout` (`standard` or `focus_plan`). Your value wins over the console's unless the
173
+ * console locks it. Absent everywhere, `standard`.
174
+ */
175
+ readonly presentation?: Pick<EverfurPresentationInput, 'healthPlanLayout'>;
176
+ /**
177
+ * When the plan is read again on its own: coming back to the page after more than a minute re-reads it quietly
178
+ * (the plan stays on screen), so a change made in another tab shows: the plan, the page and, in the focus layout,
179
+ * the subscription state (a subscription started elsewhere). Absent, Everfur uses the browser's own
180
+ * signal (the page becoming visible again; see `createBrowserLifecycle`). Pass your own port, or `null` to turn
181
+ * the re-read off.
182
+ */
183
+ readonly lifecycle?: LifecyclePort | null;
184
+ /** Change it to re-read the plan (and, in the focus layout, the subscription state) now, quietly (for example after your checkout completed). */
185
+ readonly refreshKey?: string | number;
186
+ /**
187
+ * Whether this pet has a plan to show: true once the plan (or its page) draws, false when the pet has none and the
188
+ * empty state has no words to draw (Q1: the page then draws nothing; hide your Health Plan tab for that pet).
189
+ * Not called while loading or after a refused read.
190
+ */
191
+ readonly onAvailability?: (available: boolean, petRef: PetRef | null) => void;
192
+ /** The empty state's Ask button (drawn only when `emptyAsk` has words). */
193
+ readonly onAsk?: () => void;
194
+ /** Your words for the empty state, over the SDK's (empty until Raph writes them: then nothing is drawn). */
195
+ readonly emptyCopy?: Partial<HealthPlanEmptyCopy>;
196
+ }
197
+ /** One pet's Health Plan on a web page. Mount it under the `EverfurProvider` from "@everfur/sdk/web". */
198
+ declare function EverfurHealthPlan(props: EverfurHealthPlanProps): ReactNode;
199
+
200
+ interface HealthPlanItemCardProps extends HealthPlanCardOptions {
201
+ readonly item: HealthPlanItem;
202
+ /** Called with the answer the member asked for: `true` to add, `false` to remove. A throw is swallowed. */
203
+ readonly onToggle?: (inPlan: boolean) => void;
204
+ /** True while this item's add or remove is in flight. */
205
+ readonly pending?: boolean;
206
+ /** This item's last refused write, shown under the control. */
207
+ readonly error?: EverfurError | null;
208
+ /** `'wide'` (default): a full-width picture above the name. `'thumbnail'`: a square picture beside the name. */
209
+ readonly imageVariant?: HealthPlanImageVariant;
210
+ /** `'pills'` (default): filled reason chips. `'rows'`: a mono label column and the reason text, no fill. */
211
+ readonly reasonVariant?: HealthPlanReasonVariant;
212
+ /** How the price reads (locale, and whether a whole amount drops its zero cents). */
213
+ readonly priceFormat?: HealthPlanPriceFormat;
214
+ /** Your own node at the foot of the card, above the control (a study card, a repeat switch). A throw draws nothing. */
215
+ readonly renderFooter?: (item: HealthPlanItem) => ReactNode;
216
+ readonly style?: CSSProperties;
217
+ readonly className?: string;
218
+ }
219
+ /** One Health Plan product as a card, with its reasons and its add / remove control. */
220
+ declare function HealthPlanItemCard(props: HealthPlanItemCardProps): ReactNode;
221
+
222
+ interface HealthPlanCartBarProps {
223
+ readonly cart: HealthPlanCart;
224
+ /** Called with the items in the cart when the member presses checkout. A throw is swallowed. */
225
+ readonly onCheckout?: (items: readonly HealthPlanItem[]) => void;
226
+ /** True while any add or remove is in flight; checkout waits for the cart to settle. */
227
+ readonly busy?: boolean;
228
+ /** How the subtotal reads (locale, and whether a whole amount drops its zero cents). */
229
+ readonly priceFormat?: HealthPlanPriceFormat;
230
+ readonly style?: CSSProperties;
231
+ readonly className?: string;
232
+ }
233
+ /** The cart bar of a Health Plan. */
234
+ declare function HealthPlanCartBar(props: HealthPlanCartBarProps): ReactNode;
235
+
236
+ interface HealthPlanTopRiskProps {
237
+ /** The line over the sentence ("Her top risk"). */
238
+ readonly kicker: string;
239
+ /** The one sentence ("Georgia's top disease risk is IVDD, a back problem, so she should start a Health Plan for it."). */
240
+ readonly sentence: string;
241
+ /** The button's words ("Start her Health Plan"). */
242
+ readonly action: string;
243
+ readonly onOpenPlan: () => void;
244
+ /** A modifier for the dot (`risk` by default), read as `classNames['dot:<kind>']`. */
245
+ readonly kind?: string;
246
+ /** Classes per element (`card`, `kicker`, `dot`, `dot:<kind>`, `sentence`, `button`); a class drops that element's inline default. */
247
+ readonly classNames?: Readonly<Record<string, string | undefined>>;
248
+ readonly style?: CSSProperties;
249
+ }
250
+ /** The top-risk sentence with its way into the Health Plan. */
251
+ declare function HealthPlanTopRisk(props: HealthPlanTopRiskProps): ReactNode;
252
+
253
+ type HealthPlanSubscriptionPhase = 'idle' | 'loading' | 'unavailable' | 'failed' | 'ready';
254
+ interface HealthPlanSubscriptionOptions {
255
+ readonly petRef: PetRef | null;
256
+ readonly productId: string | null;
257
+ /** False skips every read (a host that has not opted in). Defaults to true. */
258
+ readonly enabled?: boolean;
259
+ /** A repository of your own (tests, a stub backend). Defaults to the one over the provider's runtime. */
260
+ readonly repository?: HealthPlanSubscriptionRepository;
261
+ /** Coming back to the foreground re-reads a quote shown for more than a minute, quietly. Absent, it does not. */
262
+ readonly lifecycle?: LifecyclePort | null;
263
+ /** Change it to re-read the quote now, quietly (for example after your checkout completed). */
264
+ readonly refreshKey?: string | number;
265
+ }
266
+ interface HealthPlanSubscriptionState {
267
+ readonly phase: HealthPlanSubscriptionPhase;
268
+ readonly quote: HealthPlanSubscriptionQuote | null;
269
+ /** The member's row for this pet and product (active or cancelled), or null. */
270
+ readonly subscription: HealthPlanSubscription | null;
271
+ /** A write is in flight. */
272
+ readonly busy: boolean;
273
+ /** The last refused read or write, or null. */
274
+ readonly error: EverfurError | null;
275
+ /** Each write settles the server's new state, or the refusal (a write before the quote is ready is refused). */
276
+ subscribe(intervalDays: number): Promise<EverfurResult<HealthPlanSubscription>>;
277
+ changeInterval(intervalDays: number): Promise<EverfurResult<HealthPlanSubscription>>;
278
+ skip(): Promise<EverfurResult<HealthPlanSubscription>>;
279
+ cancel(): Promise<EverfurResult<HealthPlanSubscription>>;
280
+ restart(intervalDays?: number): Promise<EverfurResult<HealthPlanSubscription>>;
281
+ /** Buy one box (no renewal), then re-read the quote: a one-box order spends the first-box offer. */
282
+ buyOneBox(tapKey?: string): Promise<EverfurResult<HealthPlanOneBoxOrder>>;
283
+ refresh(): Promise<void>;
284
+ }
285
+ /** The subscription repository bound to the runtime under your provider. */
286
+ declare function useHealthPlanSubscriptionRepository(): HealthPlanSubscriptionRepository;
287
+ /** One product's subscription for one pet. `EverfurHealthPlan` with `layout="focus"` paints it. */
288
+ declare function useHealthPlanSubscription(options: HealthPlanSubscriptionOptions): HealthPlanSubscriptionState;
289
+
290
+ /** The page's focus, as the copy functions receive it. */
291
+ type HealthPlanTopCardFocus = NonNullable<HealthPlanFocusDesign['focus']>;
292
+ /** Who the card is about: the page's pet and the possessive its words use ("her", "his", "Georgia's"), or null. */
293
+ interface HealthPlanTopCardPet {
294
+ readonly pet: HealthPlanPagePet;
295
+ readonly possessive: string | null;
296
+ }
297
+ /** The card's own words. Defaults: Raph's v3 design (`HEALTH_PLAN_TOP_CARD_COPY`). */
298
+ interface HealthPlanTopCardCopy {
299
+ /** The plan button ("See her Health Plan"); null draws none. */
300
+ readonly action: (who: HealthPlanTopCardPet) => string | null;
301
+ /** The question link ("What does it mean?"). */
302
+ readonly ask: string;
303
+ /** What the link sends to the chat: the risk line's lead, then the link's words. */
304
+ readonly askPrompt: (focus: HealthPlanTopCardFocus, ask: string) => string;
305
+ /** The close control's accessible name ("Close her focus"); null or blank names it with the chat's plain "Close". */
306
+ readonly close: (who: HealthPlanTopCardPet) => string | null;
307
+ }
308
+ declare const HEALTH_PLAN_TOP_CARD_COPY: HealthPlanTopCardCopy;
309
+ /**
310
+ * "her" for a female, "his" for a male, "Georgia's" for a named pet of unknown sex, else null. The sex is read
311
+ * leniently (any case, surrounding spaces), so a host-shaped page that says "Female" still reads as her.
312
+ */
313
+ declare function healthPlanPossessive(pet: HealthPlanPagePet): string | null;
314
+ interface HealthPlanTopCardOptions {
315
+ /** Opens the pet's Health Plan (your tab or screen). Absent, the card has no plan button (the chat's own card). */
316
+ readonly onOpenPlan?: (() => void) | undefined;
317
+ readonly copy?: Partial<HealthPlanTopCardCopy>;
318
+ readonly classNames?: EverfurChatTopCard['classNames'];
319
+ readonly renderIcon?: (icon: 'close') => ReactNode;
320
+ }
321
+ /** The top card for a page, or undefined when the page has no focus to show. Pure. */
322
+ declare function healthPlanTopCard(page: HealthPlanPage | null, options: HealthPlanTopCardOptions): EverfurChatTopCard | undefined;
323
+ interface UseHealthPlanTopCardOptions extends HealthPlanTopCardOptions {
324
+ readonly petRef: PetRef | null;
325
+ /** False skips the page read (and the card). Defaults to true. */
326
+ readonly enabled?: boolean;
327
+ }
328
+ /**
329
+ * The chat's top card for one pet, from its Health Plan page; undefined while the page loads, on a refused read, or
330
+ * when the page has no focus. Keep `onOpenPlan`, `copy`, `classNames` and `renderIcon` stable (module constants or
331
+ * memoised), so the card is rebuilt only when the page changes.
332
+ */
333
+ declare function useHealthPlanTopCard(options: UseHealthPlanTopCardOptions): EverfurChatTopCard | undefined;
334
+
335
+ export { EverfurChatTopCard, EverfurError, EverfurHealthPlan, type EverfurHealthPlanProps, EverfurPresentationInput, EverfurResult, HEALTH_PLAN_TOP_CARD_COPY, HealthPlanCardOptions, HealthPlanCart, HealthPlanCartBar, type HealthPlanCartBarProps, HealthPlanCheckoutProvider, HealthPlanEmptyCopy, HealthPlanFocus, HealthPlanFocusClassNames, HealthPlanFocusCopy, HealthPlanFocusDesign, HealthPlanFocusIcon, type HealthPlanFocusLayer, type HealthPlanFocusOptions, type HealthPlanFocusOverlay, type HealthPlanFocusOverlayControls, type HealthPlanFocusProps, HealthPlanImageVariant, HealthPlanItem, HealthPlanItemCard, type HealthPlanItemCardProps, HealthPlanLayoutProps, HealthPlanOneBoxOrder, HealthPlanPage, HealthPlanPagePet, HealthPlanPageRepository, HealthPlanPriceFormat, HealthPlanReasonVariant, HealthPlanShopOrder, HealthPlanSubscription, type HealthPlanSubscriptionOptions, type HealthPlanSubscriptionPhase, HealthPlanSubscriptionQuote, HealthPlanSubscriptionRepository, type HealthPlanSubscriptionState, type HealthPlanTopCardCopy, type HealthPlanTopCardFocus, type HealthPlanTopCardOptions, type HealthPlanTopCardPet, HealthPlanTopRisk, type HealthPlanTopRiskProps, LifecyclePort, PetRef, type UseHealthPlanTopCardOptions, healthPlanPossessive, healthPlanTopCard, useHealthPlanSubscription, useHealthPlanSubscriptionRepository, useHealthPlanTopCard };