@everfur/sdk 0.1.1 → 0.3.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 (187) hide show
  1. package/CHANGELOG.md +634 -0
  2. package/README.md +58 -23
  3. package/consent/package.json +8 -0
  4. package/dist/Chat-DPUD6dnc.d.cts +128 -0
  5. package/dist/Chat-DwAC2vhB.d.ts +128 -0
  6. package/dist/DepthViews-DNEM96Se.d.ts +16 -0
  7. package/dist/DepthViews-DP0R-DhB.d.cts +19 -0
  8. package/dist/DepthViews-D_3hl4xk.d.ts +19 -0
  9. package/dist/DepthViews-DbFhR4Du.d.cts +16 -0
  10. package/dist/ErrorPolicyPort-CNf4uQZP.d.cts +22 -0
  11. package/dist/ErrorPolicyPort-CwbfmxzJ.d.ts +22 -0
  12. package/dist/{EverfurResult-D92-uL82.d.cts → EverfurResult-DN9pL2Ab.d.cts} +11 -10
  13. package/dist/{EverfurResult-D92-uL82.d.ts → EverfurResult-DN9pL2Ab.d.ts} +11 -10
  14. package/dist/{PhotoController-BItt5M7u.d.cts → PhotoController-3l7MT9jA.d.cts} +1 -1
  15. package/dist/{PhotoController-D8zMTdcW.d.ts → PhotoController-vzY5bfY_.d.ts} +1 -1
  16. package/dist/animations/index.cjs +1 -1997
  17. package/dist/animations/index.d.cts +35 -35
  18. package/dist/animations/index.d.ts +35 -35
  19. package/dist/animations/index.js +1 -1972
  20. package/dist/attachments-5NeobOCd.d.ts +256 -0
  21. package/dist/attachments-Bw3iMQgu.d.ts +146 -0
  22. package/dist/attachments-CQgFrEQ7.d.cts +146 -0
  23. package/dist/attachments-D8T5re7e.d.cts +256 -0
  24. package/dist/casesRepository-ClLv6qMl.d.ts +188 -0
  25. package/dist/casesRepository-DHwtGRYY.d.cts +188 -0
  26. package/dist/chat/index.cjs +1 -1170
  27. package/dist/chat/index.d.cts +31 -53
  28. package/dist/chat/index.d.ts +31 -53
  29. package/dist/chat/index.js +1 -1167
  30. package/dist/client/index.cjs +9 -2315
  31. package/dist/client/index.d.cts +77 -15
  32. package/dist/client/index.d.ts +77 -15
  33. package/dist/client/index.js +9 -2215
  34. package/dist/{config-CiJ0PVBB.d.ts → config-CzTZGlfF.d.cts} +63 -25
  35. package/dist/{config-BSjBdxrZ.d.cts → config-DW60uRb9.d.ts} +63 -25
  36. package/dist/consent/index.cjs +1 -0
  37. package/dist/consent/index.d.cts +33 -0
  38. package/dist/consent/index.d.ts +33 -0
  39. package/dist/consent/index.js +1 -0
  40. package/dist/context-DXhqHlPU.d.ts +159 -0
  41. package/dist/context-XvTzq1tE.d.cts +159 -0
  42. package/dist/copy-Mjoo91aS.d.ts +198 -0
  43. package/dist/copy-bKDNigLb.d.cts +198 -0
  44. package/dist/core/index.cjs +13 -3178
  45. package/dist/core/index.d.cts +58 -12
  46. package/dist/core/index.d.ts +58 -12
  47. package/dist/core/index.js +13 -3166
  48. package/dist/depth-CErXCU8J.d.cts +502 -0
  49. package/dist/depth-DjDcJ6kH.d.ts +502 -0
  50. package/dist/entitlementRepository-DKdXFgTo.d.cts +698 -0
  51. package/dist/entitlementRepository-DSbzuyAW.d.ts +698 -0
  52. package/dist/{identity-DK9zORrG.d.ts → identity-BMx2SUOM.d.ts} +19 -6
  53. package/dist/{identity-Brl-lDd6.d.cts → identity-DI4eVx9S.d.cts} +19 -6
  54. package/dist/{ids-CJ1S6adf.d.cts → ids-B2GAAifq.d.cts} +1 -1
  55. package/dist/{ids-CJ1S6adf.d.ts → ids-B2GAAifq.d.ts} +1 -1
  56. package/dist/index.cjs +12 -4494
  57. package/dist/index.d.cts +29 -121
  58. package/dist/index.d.ts +29 -121
  59. package/dist/index.js +12 -4470
  60. package/dist/models-B-Uh2LTf.d.ts +214 -0
  61. package/dist/models-D2EUxPZY.d.cts +214 -0
  62. package/dist/notifications/index.cjs +2 -0
  63. package/dist/notifications/index.d.cts +17 -0
  64. package/dist/notifications/index.d.ts +17 -0
  65. package/dist/notifications/index.js +2 -0
  66. package/dist/pets-CtQdRpWo.d.ts +92 -0
  67. package/dist/pets-aB8q0JyX.d.cts +92 -0
  68. package/dist/photo/index.cjs +1 -2189
  69. package/dist/photo/index.d.cts +6 -6
  70. package/dist/photo/index.d.ts +6 -6
  71. package/dist/photo/index.js +1 -2186
  72. package/dist/ports-BN6RHF9W.d.cts +48 -0
  73. package/dist/ports-BN6RHF9W.d.ts +48 -0
  74. package/dist/ports-DEBzEhbp.d.cts +386 -0
  75. package/dist/ports-DMolTRzU.d.ts +386 -0
  76. package/dist/profile-CSs1wlXT.d.cts +93 -0
  77. package/dist/profile-CSs1wlXT.d.ts +93 -0
  78. package/dist/records/depth/index.cjs +2 -0
  79. package/dist/records/depth/index.d.cts +13 -0
  80. package/dist/records/depth/index.d.ts +13 -0
  81. package/dist/records/depth/index.js +2 -0
  82. package/dist/records/index.cjs +3 -2839
  83. package/dist/records/index.d.cts +137 -203
  84. package/dist/records/index.d.ts +137 -203
  85. package/dist/records/index.js +3 -2833
  86. package/dist/requestFunnel-CjW7uDuA.d.ts +87 -0
  87. package/dist/requestFunnel-L-BQfi0z.d.cts +87 -0
  88. package/dist/{resolve-Dq_4_agU.d.ts → resolve-D4Ywz5OS.d.cts} +10 -4
  89. package/dist/{resolve-Dq_4_agU.d.cts → resolve-D4Ywz5OS.d.ts} +10 -4
  90. package/dist/{runtime-Bvr8yqXm.d.cts → runtime-B8s-_hv8.d.cts} +121 -59
  91. package/dist/{runtime-BIYzf9cK.d.ts → runtime-BR9ysG0J.d.ts} +121 -59
  92. package/dist/server/events/index.cjs +2 -0
  93. package/dist/server/events/index.d.cts +550 -0
  94. package/dist/server/events/index.d.ts +550 -0
  95. package/dist/server/events/index.js +2 -0
  96. package/dist/server/index.cjs +2 -533
  97. package/dist/server/index.d.cts +73 -18
  98. package/dist/server/index.d.ts +73 -18
  99. package/dist/server/index.js +2 -530
  100. package/dist/species-BXAIMh7I.d.cts +9 -0
  101. package/dist/species-BXAIMh7I.d.ts +9 -0
  102. package/dist/televet/index.cjs +1 -0
  103. package/dist/televet/index.d.cts +60 -0
  104. package/dist/televet/index.d.ts +60 -0
  105. package/dist/televet/index.js +1 -0
  106. package/dist/testing/index.cjs +5 -823
  107. package/dist/testing/index.d.cts +17 -3
  108. package/dist/testing/index.d.ts +17 -3
  109. package/dist/testing/index.js +5 -820
  110. package/dist/testing/rn/index.cjs +1 -449
  111. package/dist/testing/rn/index.d.cts +17 -29
  112. package/dist/testing/rn/index.d.ts +17 -29
  113. package/dist/testing/rn/index.js +1 -444
  114. package/dist/testing/web/index.cjs +1 -0
  115. package/dist/testing/web/index.d.cts +131 -0
  116. package/dist/testing/web/index.d.ts +131 -0
  117. package/dist/testing/web/index.js +1 -0
  118. package/dist/timelineRows-CaohZzXS.d.cts +19 -0
  119. package/dist/timelineRows-DZed6dAM.d.ts +19 -0
  120. package/dist/typeStyle-0TydiZ1w.d.cts +19 -0
  121. package/dist/typeStyle-CWMsoe6b.d.ts +19 -0
  122. package/dist/uploadTransport-D0M0T4hN.d.ts +38 -0
  123. package/dist/uploadTransport-DKJHs3Yj.d.cts +38 -0
  124. package/dist/useRecordsDepth-BHBzJ76R.d.cts +237 -0
  125. package/dist/useRecordsDepth-BU-OhzH6.d.ts +237 -0
  126. package/dist/useVetVisit-Bc84hWUU.d.cts +187 -0
  127. package/dist/useVetVisit-CjmMa896.d.ts +187 -0
  128. package/dist/video/index.cjs +1 -1941
  129. package/dist/video/index.d.cts +4 -4
  130. package/dist/video/index.d.ts +4 -4
  131. package/dist/video/index.js +1 -1938
  132. package/dist/view-C3qPIXGX.d.cts +310 -0
  133. package/dist/view-DtSPYpKa.d.ts +310 -0
  134. package/dist/visitIntent-D7_yVp1I.d.cts +8 -0
  135. package/dist/visitIntent-D7_yVp1I.d.ts +8 -0
  136. package/dist/web/consent/index.cjs +1 -0
  137. package/dist/web/consent/index.d.cts +34 -0
  138. package/dist/web/consent/index.d.ts +34 -0
  139. package/dist/web/consent/index.js +1 -0
  140. package/dist/web/index.cjs +14 -0
  141. package/dist/web/index.d.cts +217 -0
  142. package/dist/web/index.d.ts +217 -0
  143. package/dist/web/index.js +14 -0
  144. package/dist/web/notifications/index.cjs +2 -0
  145. package/dist/web/notifications/index.d.cts +213 -0
  146. package/dist/web/notifications/index.d.ts +213 -0
  147. package/dist/web/notifications/index.js +2 -0
  148. package/dist/web/records/depth/index.cjs +2 -0
  149. package/dist/web/records/depth/index.d.cts +12 -0
  150. package/dist/web/records/depth/index.d.ts +12 -0
  151. package/dist/web/records/depth/index.js +2 -0
  152. package/dist/web/records/index.cjs +4 -0
  153. package/dist/web/records/index.d.cts +194 -0
  154. package/dist/web/records/index.d.ts +194 -0
  155. package/dist/web/records/index.js +4 -0
  156. package/dist/web/televet/index.cjs +1 -0
  157. package/dist/web/televet/index.d.cts +50 -0
  158. package/dist/web/televet/index.d.ts +50 -0
  159. package/dist/web/televet/index.js +1 -0
  160. package/notifications/package.json +8 -0
  161. package/package.json +197 -9
  162. package/records/depth/package.json +8 -0
  163. package/server/events/device-blocked.cjs +15 -0
  164. package/server/events/package.json +9 -0
  165. package/televet/package.json +8 -0
  166. package/testing/web/native-blocked.cjs +12 -0
  167. package/testing/web/package.json +8 -0
  168. package/web/consent/native-blocked.cjs +12 -0
  169. package/web/consent/package.json +8 -0
  170. package/web/native-blocked.cjs +12 -0
  171. package/web/notifications/native-blocked.cjs +12 -0
  172. package/web/notifications/package.json +8 -0
  173. package/web/package.json +8 -0
  174. package/web/records/depth/native-blocked.cjs +12 -0
  175. package/web/records/depth/package.json +8 -0
  176. package/web/records/native-blocked.cjs +12 -0
  177. package/web/records/package.json +8 -0
  178. package/web/televet/native-blocked.cjs +12 -0
  179. package/web/televet/package.json +8 -0
  180. package/dist/ChatController-CKdBvPj2.d.ts +0 -146
  181. package/dist/ChatController-CpUMvvZf.d.cts +0 -146
  182. package/dist/FilePort-BabWrv7I.d.cts +0 -22
  183. package/dist/FilePort-BabWrv7I.d.ts +0 -22
  184. package/dist/petsRepository-BEGb97M9.d.cts +0 -326
  185. package/dist/petsRepository-Bu18r2kK.d.ts +0 -326
  186. package/dist/requestFunnel-DuUH-kAe.d.cts +0 -28
  187. package/dist/requestFunnel-dio5OmR9.d.ts +0 -28
@@ -1,5 +1,75 @@
1
- import { E as EverfurResult } from '../EverfurResult-D92-uL82.cjs';
2
- import { a as FetchLike } from '../config-BSjBdxrZ.cjs';
1
+ import { c as EverfurResult } from '../EverfurResult-DN9pL2Ab.cjs';
2
+ import { j as FetchLike } from '../config-CzTZGlfF.cjs';
3
+ import { P as PartnerServerClient } from '../pets-aB8q0JyX.cjs';
4
+ export { a as PartnerPet, b as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets-aB8q0JyX.cjs';
5
+ export { b as PetActivityLevel, c as PetAllergy, d as PetAllergySeverity, e as PetBirthDatePrecision, f as PetCondition, a as PetHealthProfile, P as PetHealthProfileInput, g as PetIndoorOutdoor, h as PetMedication, i as PetSex } from '../profile-CSs1wlXT.cjs';
6
+ export { C as CanonicalPetSpecies, c as canonicalPetSpecies } from '../species-BXAIMh7I.cjs';
7
+
8
+ /**
9
+ * Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
10
+ *
11
+ * Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
12
+ * through that the server then rejected or silently reinterpreted:
13
+ *
14
+ * - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
15
+ * fails REQUIRED even though it is three characters here.
16
+ * - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
17
+ * trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
18
+ * user's data.
19
+ * - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
20
+ * is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
21
+ */
22
+ declare function assertValidUserRef(raw: string): string;
23
+
24
+ /** The consent you collected for this address. `partner_attested` is the one method in this version. */
25
+ interface PartnerMemberEmailConsent {
26
+ /** When the member agreed: an ISO 8601 instant, or a Date. Not in the future (the route allows five minutes of skew). */
27
+ readonly givenAt: string | Date;
28
+ readonly method: 'partner_attested';
29
+ /** The version of your consent text the member agreed to (1 to 64 characters). Never minted by Everfur. */
30
+ readonly version: string;
31
+ }
32
+ interface SetPartnerMemberNotificationProfileInput {
33
+ /** Your stable member id; the session mint's user_ref rule (1 to 128 characters, no '@', printable). */
34
+ readonly userRef: string;
35
+ /** The member's address. Everfur normalises it (trimmed, lowercased) and stores it with its hash; it is never echoed. */
36
+ readonly email: string;
37
+ readonly consent: PartnerMemberEmailConsent;
38
+ }
39
+ /** The consent stamp as Everfur stored it. */
40
+ interface PartnerMemberEmailConsentRecord {
41
+ /** ISO 8601. */
42
+ readonly givenAt: string;
43
+ readonly method: string;
44
+ readonly version: string;
45
+ }
46
+ /** A member's notification profile, MASKED: the address never comes back. */
47
+ interface PartnerMemberNotificationProfile {
48
+ readonly userRef: string;
49
+ /** The stored address in its masked form (`o***@example.com`), or null when none is on file. */
50
+ readonly emailMasked: string | null;
51
+ readonly consent: PartnerMemberEmailConsentRecord | null;
52
+ /** ISO 8601, or null: set by a later verification flow, never by this route. */
53
+ readonly emailVerifiedAt: string | null;
54
+ /** The member's own switches (`PUT /widget/v1/me/notification-preferences` from the SDK). */
55
+ readonly pushEnabled: boolean;
56
+ readonly emailEnabled: boolean;
57
+ /** ISO 8601, or null: set by the one-click unsubscribe link in Everfur's mail, cleared by a new stamp. */
58
+ readonly unsubscribedAt: string | null;
59
+ /** How many of this member's devices are registered for push. */
60
+ readonly activeDevices: number;
61
+ /** ISO 8601. */
62
+ readonly updatedAt: string;
63
+ }
64
+ /**
65
+ * Supply (or replace) a member's email with its consent stamp. Creates the member on first use.
66
+ *
67
+ * Settles to an `EverfurResult` for HTTP and network failures (`validationFailed` with `reasonCode` `consent_required`,
68
+ * `email_invalid` or `consent_invalid`; the not-found error while the routes are dark; `accessDenied` for a restricted
69
+ * key without `pets.profile.update`; `rateLimited`; `serviceUnavailable` mid-erasure). Throws `EverfurConfigError` for
70
+ * a request that can never be accepted: a malformed key, `userRef`, address or consent.
71
+ */
72
+ declare function setPartnerMemberNotificationProfile(client: PartnerServerClient, input: SetPartnerMemberNotificationProfileInput): Promise<EverfurResult<PartnerMemberNotificationProfile>>;
3
73
 
4
74
  interface MintSessionParams {
5
75
  /** env-derived base URL (resolveApiBaseUrl output), no trailing slash. */
@@ -29,20 +99,5 @@ interface SessionMint {
29
99
  * partner backend's helper for a TokenProvider implementation; it is not called on a device.
30
100
  */
31
101
  declare function mintPartnerSession(params: MintSessionParams): Promise<EverfurResult<SessionMint>>;
32
- /**
33
- * Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
34
- *
35
- * Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
36
- * through that the server then rejected or silently reinterpreted:
37
- *
38
- * - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
39
- * fails REQUIRED even though it is three characters here.
40
- * - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
41
- * trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
42
- * user's data.
43
- * - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
44
- * is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
45
- */
46
- declare function assertValidUserRef(raw: string): string;
47
102
 
48
- export { type MintSessionParams, type SessionMint, assertValidUserRef, mintPartnerSession };
103
+ export { type MintSessionParams, type PartnerMemberEmailConsent, type PartnerMemberEmailConsentRecord, type PartnerMemberNotificationProfile, PartnerServerClient, type SessionMint, type SetPartnerMemberNotificationProfileInput, assertValidUserRef, mintPartnerSession, setPartnerMemberNotificationProfile };
@@ -1,5 +1,75 @@
1
- import { E as EverfurResult } from '../EverfurResult-D92-uL82.js';
2
- import { a as FetchLike } from '../config-CiJ0PVBB.js';
1
+ import { c as EverfurResult } from '../EverfurResult-DN9pL2Ab.js';
2
+ import { j as FetchLike } from '../config-DW60uRb9.js';
3
+ import { P as PartnerServerClient } from '../pets-CtQdRpWo.js';
4
+ export { a as PartnerPet, b as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets-CtQdRpWo.js';
5
+ export { b as PetActivityLevel, c as PetAllergy, d as PetAllergySeverity, e as PetBirthDatePrecision, f as PetCondition, a as PetHealthProfile, P as PetHealthProfileInput, g as PetIndoorOutdoor, h as PetMedication, i as PetSex } from '../profile-CSs1wlXT.js';
6
+ export { C as CanonicalPetSpecies, c as canonicalPetSpecies } from '../species-BXAIMh7I.js';
7
+
8
+ /**
9
+ * Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
10
+ *
11
+ * Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
12
+ * through that the server then rejected or silently reinterpreted:
13
+ *
14
+ * - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
15
+ * fails REQUIRED even though it is three characters here.
16
+ * - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
17
+ * trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
18
+ * user's data.
19
+ * - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
20
+ * is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
21
+ */
22
+ declare function assertValidUserRef(raw: string): string;
23
+
24
+ /** The consent you collected for this address. `partner_attested` is the one method in this version. */
25
+ interface PartnerMemberEmailConsent {
26
+ /** When the member agreed: an ISO 8601 instant, or a Date. Not in the future (the route allows five minutes of skew). */
27
+ readonly givenAt: string | Date;
28
+ readonly method: 'partner_attested';
29
+ /** The version of your consent text the member agreed to (1 to 64 characters). Never minted by Everfur. */
30
+ readonly version: string;
31
+ }
32
+ interface SetPartnerMemberNotificationProfileInput {
33
+ /** Your stable member id; the session mint's user_ref rule (1 to 128 characters, no '@', printable). */
34
+ readonly userRef: string;
35
+ /** The member's address. Everfur normalises it (trimmed, lowercased) and stores it with its hash; it is never echoed. */
36
+ readonly email: string;
37
+ readonly consent: PartnerMemberEmailConsent;
38
+ }
39
+ /** The consent stamp as Everfur stored it. */
40
+ interface PartnerMemberEmailConsentRecord {
41
+ /** ISO 8601. */
42
+ readonly givenAt: string;
43
+ readonly method: string;
44
+ readonly version: string;
45
+ }
46
+ /** A member's notification profile, MASKED: the address never comes back. */
47
+ interface PartnerMemberNotificationProfile {
48
+ readonly userRef: string;
49
+ /** The stored address in its masked form (`o***@example.com`), or null when none is on file. */
50
+ readonly emailMasked: string | null;
51
+ readonly consent: PartnerMemberEmailConsentRecord | null;
52
+ /** ISO 8601, or null: set by a later verification flow, never by this route. */
53
+ readonly emailVerifiedAt: string | null;
54
+ /** The member's own switches (`PUT /widget/v1/me/notification-preferences` from the SDK). */
55
+ readonly pushEnabled: boolean;
56
+ readonly emailEnabled: boolean;
57
+ /** ISO 8601, or null: set by the one-click unsubscribe link in Everfur's mail, cleared by a new stamp. */
58
+ readonly unsubscribedAt: string | null;
59
+ /** How many of this member's devices are registered for push. */
60
+ readonly activeDevices: number;
61
+ /** ISO 8601. */
62
+ readonly updatedAt: string;
63
+ }
64
+ /**
65
+ * Supply (or replace) a member's email with its consent stamp. Creates the member on first use.
66
+ *
67
+ * Settles to an `EverfurResult` for HTTP and network failures (`validationFailed` with `reasonCode` `consent_required`,
68
+ * `email_invalid` or `consent_invalid`; the not-found error while the routes are dark; `accessDenied` for a restricted
69
+ * key without `pets.profile.update`; `rateLimited`; `serviceUnavailable` mid-erasure). Throws `EverfurConfigError` for
70
+ * a request that can never be accepted: a malformed key, `userRef`, address or consent.
71
+ */
72
+ declare function setPartnerMemberNotificationProfile(client: PartnerServerClient, input: SetPartnerMemberNotificationProfileInput): Promise<EverfurResult<PartnerMemberNotificationProfile>>;
3
73
 
4
74
  interface MintSessionParams {
5
75
  /** env-derived base URL (resolveApiBaseUrl output), no trailing slash. */
@@ -29,20 +99,5 @@ interface SessionMint {
29
99
  * partner backend's helper for a TokenProvider implementation; it is not called on a device.
30
100
  */
31
101
  declare function mintPartnerSession(params: MintSessionParams): Promise<EverfurResult<SessionMint>>;
32
- /**
33
- * Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
34
- *
35
- * Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
36
- * through that the server then rejected or silently reinterpreted:
37
- *
38
- * - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
39
- * fails REQUIRED even though it is three characters here.
40
- * - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
41
- * trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
42
- * user's data.
43
- * - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
44
- * is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
45
- */
46
- declare function assertValidUserRef(raw: string): string;
47
102
 
48
- export { type MintSessionParams, type SessionMint, assertValidUserRef, mintPartnerSession };
103
+ export { type MintSessionParams, type PartnerMemberEmailConsent, type PartnerMemberEmailConsentRecord, type PartnerMemberNotificationProfile, PartnerServerClient, type SessionMint, type SetPartnerMemberNotificationProfileInput, assertValidUserRef, mintPartnerSession, setPartnerMemberNotificationProfile };