@nadohq/mobile-client 0.65.0 → 0.67.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 (211) hide show
  1. package/README.md +202 -10
  2. package/dist/{MobileClient-CfVZXTcz.cjs → MobileClient-vuI5wlB_.cjs} +303 -21
  3. package/dist/MobileClient-vuI5wlB_.cjs.map +1 -0
  4. package/dist/MobileClient.cjs +1 -1
  5. package/dist/MobileClient.d.cts +175 -20
  6. package/dist/MobileClient.d.cts.map +1 -1
  7. package/dist/MobileClient.d.ts +175 -20
  8. package/dist/MobileClient.d.ts.map +1 -1
  9. package/dist/MobileClient.js +303 -21
  10. package/dist/MobileClient.js.map +1 -1
  11. package/dist/{MobileServerFailureError-BZVwlsMg.d.ts → MobileServerFailureError-BeCCNShj.d.cts} +2 -3
  12. package/dist/MobileServerFailureError-BeCCNShj.d.cts.map +1 -0
  13. package/dist/{MobileServerFailureError-CbtK8kD4.d.cts → MobileServerFailureError-hHv28weI.d.ts} +2 -3
  14. package/dist/MobileServerFailureError-hHv28weI.d.ts.map +1 -0
  15. package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.cts +15 -0
  16. package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.cts.map +1 -0
  17. package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.ts +15 -0
  18. package/dist/MobileUnsupportedNotificationRouteError-DpiNBvvY.d.ts.map +1 -0
  19. package/dist/{buildSignedMobileRequest-C1v0flCR.d.cts → buildSignedMobileRequest-DcEMKU_4.d.cts} +2 -2
  20. package/dist/{buildSignedMobileRequest-C1v0flCR.d.cts.map → buildSignedMobileRequest-DcEMKU_4.d.cts.map} +1 -1
  21. package/dist/{buildSignedMobileRequest-UeeWdYGU.d.ts → buildSignedMobileRequest-DlTMvoXR.d.ts} +2 -2
  22. package/dist/{buildSignedMobileRequest-UeeWdYGU.d.ts.map → buildSignedMobileRequest-DlTMvoXR.d.ts.map} +1 -1
  23. package/dist/{canonicalize-5eeZrkzQ.d.ts → canonicalize-BOZlflI3.d.ts} +2 -2
  24. package/dist/canonicalize-BOZlflI3.d.ts.map +1 -0
  25. package/dist/{canonicalize-CBaZprTo.d.cts → canonicalize-BvCozzvJ.d.cts} +2 -2
  26. package/dist/canonicalize-BvCozzvJ.d.cts.map +1 -0
  27. package/dist/{clientTypes-_mEgzmNs.d.cts → clientTypes-KpHlCDGZ.d.cts} +341 -38
  28. package/dist/clientTypes-KpHlCDGZ.d.cts.map +1 -0
  29. package/dist/{clientTypes-C9dJufxk.d.ts → clientTypes-XRI41VdC.d.ts} +341 -38
  30. package/dist/clientTypes-XRI41VdC.d.ts.map +1 -0
  31. package/dist/dataMappers.cjs +257 -20
  32. package/dist/dataMappers.cjs.map +1 -1
  33. package/dist/dataMappers.d.cts +98 -15
  34. package/dist/dataMappers.d.cts.map +1 -1
  35. package/dist/dataMappers.d.ts +98 -15
  36. package/dist/dataMappers.d.ts.map +1 -1
  37. package/dist/dataMappers.js +242 -20
  38. package/dist/dataMappers.js.map +1 -1
  39. package/dist/{eip712MethodByType-D8jLoxDu.d.cts → eip712MethodByType-DyAmzH7b.d.cts} +2 -2
  40. package/dist/eip712MethodByType-DyAmzH7b.d.cts.map +1 -0
  41. package/dist/{eip712MethodByType-DcUh8h-l.d.ts → eip712MethodByType-qSSAF6i2.d.ts} +2 -2
  42. package/dist/eip712MethodByType-qSSAF6i2.d.ts.map +1 -0
  43. package/dist/feed-BrgkFqP3.d.cts +23 -0
  44. package/dist/feed-BrgkFqP3.d.cts.map +1 -0
  45. package/dist/feed-DcbhLoo1.d.ts +23 -0
  46. package/dist/feed-DcbhLoo1.d.ts.map +1 -0
  47. package/dist/index-BVVgDSdq.d.cts +1 -0
  48. package/dist/index-BVVgDSdq.d.ts +1 -0
  49. package/dist/index.cjs +8 -2
  50. package/dist/index.d.cts +14 -16
  51. package/dist/index.d.ts +14 -16
  52. package/dist/index.js +4 -3
  53. package/dist/{mobileErrorCodes-CmjYEIYm.d.ts → mobileErrorCodes-CdwX6QTO.d.cts} +8 -3
  54. package/dist/mobileErrorCodes-CdwX6QTO.d.cts.map +1 -0
  55. package/dist/{mobileErrorCodes-CmjYEIYm.d.cts → mobileErrorCodes-CdwX6QTO.d.ts} +8 -3
  56. package/dist/mobileErrorCodes-CdwX6QTO.d.ts.map +1 -0
  57. package/dist/{payloadHash-DhHmgRqL.d.cts → payloadHash-BgGSZock.d.cts} +2 -2
  58. package/dist/payloadHash-BgGSZock.d.cts.map +1 -0
  59. package/dist/{payloadHash-E1_8fpLW.d.ts → payloadHash-Bi6upCLQ.d.ts} +2 -2
  60. package/dist/payloadHash-Bi6upCLQ.d.ts.map +1 -0
  61. package/dist/{serverExecuteTypes-BwWGspOg.d.ts → serverExecuteTypes-DuCWe_H_.d.cts} +23 -14
  62. package/dist/serverExecuteTypes-DuCWe_H_.d.cts.map +1 -0
  63. package/dist/{serverExecuteTypes-B-OJok19.d.cts → serverExecuteTypes-usJ6HMJv.d.ts} +23 -14
  64. package/dist/serverExecuteTypes-usJ6HMJv.d.ts.map +1 -0
  65. package/dist/{serverModelTypes-CiA-dy1R.d.ts → serverModelTypes-CTHMNIQS.d.cts} +170 -13
  66. package/dist/serverModelTypes-CTHMNIQS.d.cts.map +1 -0
  67. package/dist/{serverModelTypes-CiA-dy1R.d.cts → serverModelTypes-CTHMNIQS.d.ts} +170 -13
  68. package/dist/serverModelTypes-CTHMNIQS.d.ts.map +1 -0
  69. package/dist/{serverResponseGuards-CShiXpHT.d.ts → serverResponseGuards-CzmldAad.d.cts} +2 -2
  70. package/dist/{serverResponseGuards-BW69PS7O.d.cts.map → serverResponseGuards-CzmldAad.d.cts.map} +1 -1
  71. package/dist/{serverResponseGuards-BW69PS7O.d.cts → serverResponseGuards-Dvkbjp2_.d.ts} +2 -2
  72. package/dist/{serverResponseGuards-CShiXpHT.d.ts.map → serverResponseGuards-Dvkbjp2_.d.ts.map} +1 -1
  73. package/dist/signing/buildSignedMobileRequest.d.cts +1 -1
  74. package/dist/signing/buildSignedMobileRequest.d.ts +1 -1
  75. package/dist/signing/canonicalize.cjs +53 -2
  76. package/dist/signing/canonicalize.cjs.map +1 -1
  77. package/dist/signing/canonicalize.d.cts +1 -1
  78. package/dist/signing/canonicalize.d.ts +1 -1
  79. package/dist/signing/canonicalize.js +53 -2
  80. package/dist/signing/canonicalize.js.map +1 -1
  81. package/dist/signing/eip712MethodByType.cjs +7 -0
  82. package/dist/signing/eip712MethodByType.cjs.map +1 -1
  83. package/dist/signing/eip712MethodByType.d.cts +1 -1
  84. package/dist/signing/eip712MethodByType.d.ts +1 -1
  85. package/dist/signing/eip712MethodByType.js +7 -0
  86. package/dist/signing/eip712MethodByType.js.map +1 -1
  87. package/dist/signing/index.d.cts +5 -5
  88. package/dist/signing/index.d.ts +5 -5
  89. package/dist/signing/payloadHash.cjs +1 -1
  90. package/dist/signing/payloadHash.d.cts +1 -1
  91. package/dist/signing/payloadHash.d.ts +1 -1
  92. package/dist/signing/payloadHash.js +1 -1
  93. package/dist/signing/types.d.cts +1 -1
  94. package/dist/signing/types.d.ts +1 -1
  95. package/dist/types/MobileServerFailureError.d.cts +1 -1
  96. package/dist/types/MobileServerFailureError.d.ts +1 -1
  97. package/dist/types/MobileUnsupportedNotificationRouteError.cjs +19 -0
  98. package/dist/types/MobileUnsupportedNotificationRouteError.cjs.map +1 -0
  99. package/dist/types/MobileUnsupportedNotificationRouteError.d.cts +2 -0
  100. package/dist/types/MobileUnsupportedNotificationRouteError.d.ts +2 -0
  101. package/dist/types/MobileUnsupportedNotificationRouteError.js +18 -0
  102. package/dist/types/MobileUnsupportedNotificationRouteError.js.map +1 -0
  103. package/dist/types/clientTypes.d.cts +2 -2
  104. package/dist/types/clientTypes.d.ts +2 -2
  105. package/dist/types/index.cjs +4 -0
  106. package/dist/types/index.d.cts +8 -9
  107. package/dist/types/index.d.ts +8 -9
  108. package/dist/types/index.js +3 -2
  109. package/dist/types/mobileErrorCodes.cjs +11 -1
  110. package/dist/types/mobileErrorCodes.cjs.map +1 -1
  111. package/dist/types/mobileErrorCodes.d.cts +1 -1
  112. package/dist/types/mobileErrorCodes.d.ts +1 -1
  113. package/dist/types/mobileErrorCodes.js +11 -1
  114. package/dist/types/mobileErrorCodes.js.map +1 -1
  115. package/dist/types/serverBaseTypes.d.cts +1 -1
  116. package/dist/types/serverBaseTypes.d.ts +1 -1
  117. package/dist/types/serverExecuteTypes.d.cts +2 -2
  118. package/dist/types/serverExecuteTypes.d.ts +2 -2
  119. package/dist/types/serverModelTypes.cjs +15 -0
  120. package/dist/types/serverModelTypes.cjs.map +1 -1
  121. package/dist/types/serverModelTypes.d.cts +2 -2
  122. package/dist/types/serverModelTypes.d.ts +2 -2
  123. package/dist/types/serverModelTypes.js +14 -1
  124. package/dist/types/serverModelTypes.js.map +1 -1
  125. package/dist/types/serverQueryTypes.d.cts +2 -2
  126. package/dist/types/serverQueryTypes.d.ts +2 -2
  127. package/dist/types/serverRequestTypes.d.cts +2 -2
  128. package/dist/types/serverRequestTypes.d.ts +2 -2
  129. package/dist/types-CByl_NyJ.d.ts +825 -0
  130. package/dist/types-CByl_NyJ.d.ts.map +1 -0
  131. package/dist/types-CR5iaKR4.d.cts +825 -0
  132. package/dist/types-CR5iaKR4.d.cts.map +1 -0
  133. package/dist/utils/buildMobileFeedImageMultipart.cjs +31 -0
  134. package/dist/utils/buildMobileFeedImageMultipart.cjs.map +1 -0
  135. package/dist/utils/buildMobileFeedImageMultipart.d.cts +15 -0
  136. package/dist/utils/buildMobileFeedImageMultipart.d.cts.map +1 -0
  137. package/dist/utils/buildMobileFeedImageMultipart.d.ts +15 -0
  138. package/dist/utils/buildMobileFeedImageMultipart.d.ts.map +1 -0
  139. package/dist/utils/buildMobileFeedImageMultipart.js +30 -0
  140. package/dist/utils/buildMobileFeedImageMultipart.js.map +1 -0
  141. package/dist/utils/feed.cjs +12 -0
  142. package/dist/utils/feed.cjs.map +1 -1
  143. package/dist/utils/feed.d.cts +2 -2
  144. package/dist/utils/feed.d.ts +2 -2
  145. package/dist/utils/feed.js +11 -1
  146. package/dist/utils/feed.js.map +1 -1
  147. package/dist/utils/index.cjs +3 -1
  148. package/dist/utils/index.d.cts +3 -3
  149. package/dist/utils/index.d.ts +3 -3
  150. package/dist/utils/index.js +2 -2
  151. package/dist/utils/serverResponseGuards.d.cts +1 -1
  152. package/dist/utils/serverResponseGuards.d.ts +1 -1
  153. package/package.json +3 -3
  154. package/src/MobileClient.ts +444 -19
  155. package/src/dataMappers.test.ts +511 -6
  156. package/src/dataMappers.ts +325 -24
  157. package/src/feedImages.test.ts +309 -0
  158. package/src/notifications.test.ts +950 -0
  159. package/src/signing/canonicalize.ts +72 -0
  160. package/src/signing/eip712MethodByType.ts +10 -0
  161. package/src/signing/signing.test.ts +67 -1
  162. package/src/signing/types.ts +55 -9
  163. package/src/socialFeed.test.ts +63 -2
  164. package/src/types/MobileUnsupportedNotificationRouteError.ts +16 -0
  165. package/src/types/clientTypes.ts +427 -36
  166. package/src/types/index.ts +1 -0
  167. package/src/types/mobileErrorCodes.ts +10 -0
  168. package/src/types/serverExecuteTypes.ts +22 -10
  169. package/src/types/serverModelTypes.ts +216 -11
  170. package/src/types/serverQueryTypes.ts +106 -9
  171. package/src/types/serverRequestTypes.ts +114 -17
  172. package/src/utils/buildMobileFeedImageMultipart.test.ts +45 -0
  173. package/src/utils/buildMobileFeedImageMultipart.ts +36 -0
  174. package/src/utils/feed.ts +16 -0
  175. package/dist/MobileClient-CfVZXTcz.cjs.map +0 -1
  176. package/dist/MobileServerFailureError-BZVwlsMg.d.ts.map +0 -1
  177. package/dist/MobileServerFailureError-CbtK8kD4.d.cts.map +0 -1
  178. package/dist/canonicalize-5eeZrkzQ.d.ts.map +0 -1
  179. package/dist/canonicalize-CBaZprTo.d.cts.map +0 -1
  180. package/dist/clientTypes-C9dJufxk.d.ts.map +0 -1
  181. package/dist/clientTypes-_mEgzmNs.d.cts.map +0 -1
  182. package/dist/eip712MethodByType-D8jLoxDu.d.cts.map +0 -1
  183. package/dist/eip712MethodByType-DcUh8h-l.d.ts.map +0 -1
  184. package/dist/feed-DTJlsg8W.d.cts +0 -14
  185. package/dist/feed-DTJlsg8W.d.cts.map +0 -1
  186. package/dist/feed-DTJlsg8W.d.ts +0 -14
  187. package/dist/feed-DTJlsg8W.d.ts.map +0 -1
  188. package/dist/mobileErrorCodes-CmjYEIYm.d.cts.map +0 -1
  189. package/dist/mobileErrorCodes-CmjYEIYm.d.ts.map +0 -1
  190. package/dist/payloadHash-DhHmgRqL.d.cts.map +0 -1
  191. package/dist/payloadHash-E1_8fpLW.d.ts.map +0 -1
  192. package/dist/serverBaseTypes-B5J1_TyC.d.cts +0 -25
  193. package/dist/serverBaseTypes-B5J1_TyC.d.cts.map +0 -1
  194. package/dist/serverBaseTypes-DnLzsdm-.d.ts +0 -25
  195. package/dist/serverBaseTypes-DnLzsdm-.d.ts.map +0 -1
  196. package/dist/serverExecuteTypes-B-OJok19.d.cts.map +0 -1
  197. package/dist/serverExecuteTypes-BwWGspOg.d.ts.map +0 -1
  198. package/dist/serverModelTypes-CiA-dy1R.d.cts.map +0 -1
  199. package/dist/serverModelTypes-CiA-dy1R.d.ts.map +0 -1
  200. package/dist/serverQueryTypes-CJcjLB7n.d.ts +0 -283
  201. package/dist/serverQueryTypes-CJcjLB7n.d.ts.map +0 -1
  202. package/dist/serverQueryTypes-V1f9yE7L.d.cts +0 -283
  203. package/dist/serverQueryTypes-V1f9yE7L.d.cts.map +0 -1
  204. package/dist/serverRequestTypes-CRlkNSu5.d.cts +0 -270
  205. package/dist/serverRequestTypes-CRlkNSu5.d.cts.map +0 -1
  206. package/dist/serverRequestTypes-DZoOhV2o.d.ts +0 -270
  207. package/dist/serverRequestTypes-DZoOhV2o.d.ts.map +0 -1
  208. package/dist/types-BiRmH5Iv.d.cts +0 -108
  209. package/dist/types-BiRmH5Iv.d.cts.map +0 -1
  210. package/dist/types-DoJuq0Ij.d.ts +0 -108
  211. package/dist/types-DoJuq0Ij.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"serverModelTypes.cjs","names":[],"sources":["../../src/types/serverModelTypes.ts"],"sourcesContent":["import { BalanceSide } from '@nadohq/shared';\nimport { Hex } from 'viem';\n\n/**\n * Server-side avatar selection, shared by request mapping and signing.\n */\nexport type MobileServerAvatarSelection =\n | {\n /** Shared catalogue selection. */\n type: 'preset';\n /** Stable catalogue ID. */\n id: string;\n }\n | {\n /** Uploaded image awaiting publication. */\n type: 'upload';\n /** Staging key returned by create_avatar_upload. */\n upload_key: string;\n };\n\n/**\n * Server-owned avatar preset in catalogue order.\n */\nexport interface MobileServerAvatarPreset {\n /** Stable catalogue ID used when selecting this preset. */\n id: string;\n /** Public image URL. */\n avatar_url: string;\n}\n\n/**\n * Platform of a device registered for push notifications.\n */\nexport type MobileNotificationPlatform = 'ios' | 'android';\n\n/**\n * Category of push notification.\n */\nexport type MobileNotificationCategory =\n | 'order_fill'\n | 'order_update'\n | 'liquidation'\n | 'funding'\n | 'product_listing'\n | 'announcement';\n\n/**\n * Server-side identity summary (snake_case): the read-time identity fields the backend attaches to a\n * subaccount wherever it surfaces one alongside other data. Name fields are `null` until the subaccount\n * claims a username, and a rename shows up on the next read without any change to the surrounding record.\n */\nexport interface MobileServerIdentitySummary {\n subaccount: Hex;\n username: string | null;\n display_name: string | null;\n /** Published avatar URL, or null when the account has no saved avatar. */\n avatar_url: string | null;\n}\n\n/**\n * Server-side follow summary (snake_case), nested in a `profiles` entry when the `follow_summary` include is\n * requested. `is_following` is the direct `view_as -> this profile` relationship; every `followed_by` entry\n * satisfies both `view_as -> entry` and `entry -> this profile`, so each one is already familiar to the\n * viewer and carries no `is_following` of its own.\n */\nexport interface MobileServerFollowSummary {\n is_following: boolean;\n /** Exact size of the two-edge intersection, independent of how many previews came back. */\n followed_by_count: number;\n /** Capped at `MOBILE_FOLLOWED_BY_PREVIEW_LIMIT` (2) by the backend; not client-configurable. */\n followed_by: MobileServerIdentitySummary[];\n}\n\n/**\n * Server-side public profile shape (snake_case), shared by the singular `profile` and batched `profiles`\n * queries. Name fields are `null` until the subaccount claims a username; a subaccount with no identity row\n * still yields an entry, with `null` names and `private_mode: false`.\n *\n * The three optional fields are omitted from the wire entirely unless the matching `profiles` include asked\n * for them, which is why they are optional rather than nullable — absent means \"not requested\", not \"none\".\n * The singular `profile` query never returns any of them.\n */\nexport interface MobileServerProfile extends MobileServerIdentitySummary {\n private_mode: boolean;\n /** Plain-text biography, or null when unset. */\n bio: string | null;\n /**\n * Exact count at query time — the backend counts rather than reading a cached counter. Unnamed and private\n * accounts are included: Private Mode hides activity, not relationships. Requires `follow_counts`.\n */\n follower_count?: number;\n following_count?: number;\n /** Requires the `follow_summary` include, and is relative to that include's `view_as`. */\n follow_summary?: MobileServerFollowSummary;\n}\n\n/**\n * Server-side row of a Followers or Following page (snake_case).\n */\nexport interface MobileServerFollowListAccount {\n identity: MobileServerIdentitySummary;\n /**\n * The `view_as` Viewer's relationship to this account, not the listed relationship that put it in the\n * page, so it is `false` on the Viewer's own row. Omitted entirely when the request named no `view_as`,\n * rather than being sent as a misleading `false`.\n */\n is_following?: boolean;\n /** The listed account's own follower count, exact at query time. */\n follower_count: number;\n}\n\n/**\n * Direction of the position a feed trade resulted in — for `closed`, the direction that was closed. This is\n * NOT the execution buy/sell side, which the feed does not expose. Aliases {@link BalanceSide} so the feed's\n * direction values stay in lockstep with the rest of the SDK.\n */\nexport type MobileFeedTradePositionDirection = BalanceSide;\n\n/**\n * Every {@link MobileFeedTradePositionDirection} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_DIRECTIONS = [\n 'long',\n 'short',\n] as const satisfies readonly MobileFeedTradePositionDirection[];\n\n/**\n * Every {@link MobileFeedTradePositionEffect} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_EFFECTS = [\n 'opened',\n 'increased',\n 'reduced',\n 'closed',\n 'flipped',\n] as const;\n\n/**\n * How a feed trade changed the trader's position in the product.\n */\nexport type MobileFeedTradePositionEffect =\n (typeof MOBILE_FEED_TRADE_POSITION_EFFECTS)[number];\n\n/**\n * Position change of a feed trade. Both keys are single words, so the wire and client shapes are identical\n * and this type is shared by {@link MobileServerFeedTrade} and the client-side `MobileFeedTrade`.\n */\nexport interface MobileFeedTradePosition {\n direction: MobileFeedTradePositionDirection;\n effect: MobileFeedTradePositionEffect;\n}\n\n/**\n * Every {@link MobileFeedMarginMode} the feed can report, for callers that need the values at runtime\n * (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_MARGIN_MODES = ['cross', 'isolated'] as const;\n\n/**\n * Margin mode a feed trade was executed under. Shared by the wire and client margin shapes.\n */\nexport type MobileFeedMarginMode = (typeof MOBILE_FEED_MARGIN_MODES)[number];\n\n/**\n * Server-side margin of a feed trade. Branch on `mode` — do not infer isolated state from leverage presence:\n * `estimated_leverage` (a rounded whole-number estimate, not exact submitted leverage) is omitted on `cross`,\n * and also omitted inside `isolated` when no estimate is available.\n */\nexport interface MobileServerFeedMargin {\n mode: MobileFeedMarginMode;\n estimated_leverage?: number;\n}\n\n/**\n * Server-side feed trade shape (snake_case): one row per order digest, enriched at read time with the\n * trader's current identity. Amounts are display-oriented human-unit JSON numbers — do not use them for\n * accounting, order construction, or exact threshold decisions.\n */\nexport interface MobileServerFeedTrade extends MobileServerIdentitySummary {\n /** Order digest this row is keyed by; the stable id clients use to reconcile live pagination. */\n order_digest: Hex;\n product_id: number;\n /** Executed quantity in human units. */\n quantity: number;\n /** Trade notional in whole-dollar human units. */\n notional: number;\n /** Average execution price in human units. */\n average_price: number;\n margin: MobileServerFeedMargin;\n position: MobileFeedTradePosition;\n /** Realized PnL of the trade in human units; can be negative. */\n realized_pnl: number;\n /** Fill time as JavaScript-safe integer Unix milliseconds. */\n filled_at_ms: number;\n}\n\n/**\n * Server-side scope limiting a notification category preference. Scopes are rejected by the backend for the\n * MVP (`scopes` must be empty) but are part of the wire format.\n */\nexport type MobileServerNotificationPreferenceScope =\n | { type: 'subaccount'; subaccount: Hex }\n | { type: 'product'; product_id: number };\n\n/**\n * Server-side per-category notification preference (snake_case).\n */\nexport interface MobileServerNotificationCategoryPreference {\n category: MobileNotificationCategory;\n enabled: boolean;\n scopes: MobileServerNotificationPreferenceScope[];\n}\n\n/**\n * Server-side notification preferences shape (snake_case), used in both the `update_preferences` public\n * execute and the `notification_preferences` public query response.\n */\nexport interface MobileServerNotificationPreferences {\n /** Only `1` is accepted by the backend for the MVP. */\n schema_version: 1;\n categories: MobileServerNotificationCategoryPreference[];\n}\n\n/** Content filters accepted by the six social feed lists. Empty or omitted means all. */\nexport type MobileSocialFeedType =\n | 'open'\n | 'close'\n | 'size_change'\n | 'thoughts'\n | 'analysis'\n | 'comments';\n\n/** Market category used by the social feed. */\nexport type MobileSocialFeedMarketCategory = 'crypto' | 'finance';\n\n/** Qualification tier for an account-level PnL badge. */\nexport type MobileSocialFeedTraderBadgeCode = 'shark' | 'whale';\n\n/** Availability of the current or last successful qualification snapshot. */\nexport type MobileSocialFeedCohortStatus = 'ready' | 'stale';\n\n/** Availability of an author's qualification data. */\nexport type MobileSocialFeedTraderDataStatus =\n | MobileSocialFeedCohortStatus\n | 'unavailable';\n\n/** Category from the authoritative market source. */\nexport type MobileSocialFeedSourceCategory =\n | 'crypto'\n | 'stocks'\n | 'forex'\n | 'commodities';\n\n/** Accounting basis used for position PnL. */\nexport type MobileSocialFeedPnlBasis =\n | 'unrealized_excl_fees_funding'\n | 'realized_incl_fees_funding';\n\n/** Whether position PnL is live or frozen at close. */\nexport type MobileSocialFeedPnlMode = 'live' | 'frozen';\n\n/** Completeness of position PnL accounting. */\nexport type MobileSocialFeedPnlQuality = 'ready' | 'pending' | 'unavailable';\n\n/** Source of the displayed position size and entry price. */\nexport type MobileSocialFeedPositionDisplayBasis =\n | 'current_position'\n | 'closing_snapshot';\n\n/** Current state of a position lifecycle. */\nexport type MobileSocialFeedPositionState = 'open' | 'closed';\n\n/** Completeness of the available position history. */\nexport type MobileSocialFeedHistoryQuality = 'complete' | 'partial';\n\n/** Trading action represented by an ordinary size-change row. */\nexport type MobileSocialFeedTradeSizeChangeAction = 'increased' | 'reduced';\n\n/** Trading action represented by an automatic trade card. */\nexport type MobileSocialFeedTradeCardAction =\n | 'opened'\n | 'closed'\n | MobileSocialFeedTradeSizeChangeAction;\n\n/** Whether a reading session was created for a list or a direct item. */\nexport type MobileSocialFeedReadSessionMode = 'feed' | 'item' | 'position';\n\n/** Kind of feed update target. */\nexport type MobileSocialFeedTargetType = 'item' | 'position';\n\n/** Official account-level 30-day PnL badge, independent of position PnL. */\nexport interface MobileServerSocialFeedTraderBadge {\n /** Qualification tier. */\n code: MobileSocialFeedTraderBadgeCode;\n /** Signed integer in x18 units. */\n pnl_x18: string;\n /** Stable compatibility identifier for the official Portfolio month result. */\n metric_key: 'account_pnl_30d_equity';\n /** PnL window label. */\n window: '30d';\n /** Official source timestamp in Unix milliseconds. */\n source_as_of_ms: number;\n /** Fetch completion timestamp in Unix milliseconds. */\n fetched_at_ms: number;\n /** Qualification snapshot UUID. */\n snapshot_id: string;\n}\n\n/** Public author identity and the selected viewing account's follow state. */\nexport interface MobileServerSocialFeedAuthor extends MobileServerIdentitySummary {\n /** Selected view_as account's follow state; null without a viewing account. */\n is_following: boolean | null;\n /** Null when no qualifying badge is available. */\n trader_badge: MobileServerSocialFeedTraderBadge | null;\n /** Stale means the last successful cohort is used after a refresh failure. */\n trader_data_status: MobileSocialFeedTraderDataStatus;\n}\n\n/** Market metadata from the service's authoritative market source. */\nexport interface MobileServerSocialFeedMarket {\n /** Market product ID. */\n product_id: number;\n /** Market symbol. */\n symbol: string;\n /** Logo URL when available. */\n logo_url: string | null;\n /** Social feed category when known. */\n category: MobileSocialFeedMarketCategory | null;\n /** Original market categories. */\n source_categories: MobileSocialFeedSourceCategory[];\n}\n\n/** Leverage display value; unknown isolated leverage differs from inapplicable cross leverage. */\nexport interface MobileSocialFeedLeverage {\n /** Rounded whole-number string, or null. Never an estimated replacement. */\n value: string | null;\n /** Cross margin uses not_applicable. */\n basis: 'effective' | 'unknown' | 'not_applicable';\n}\n\n/** Position PnL with explicit accounting basis and data quality. */\nexport interface MobileServerSocialFeedPnl {\n /** Signed x18 integer; null means unknown, not zero. */\n amount_x18: string | null;\n /** Open positions exclude fees/funding; closed results include them. */\n basis: MobileSocialFeedPnlBasis;\n /** Closed positions use frozen results. */\n mode: MobileSocialFeedPnlMode;\n /** Source timestamp in Unix milliseconds. */\n as_of_ms: number;\n /** Whether accounting is complete, pending, or unavailable. */\n quality: MobileSocialFeedPnlQuality;\n}\n\n/** Complete mutable position fields delivered together at one version. */\nexport interface MobileServerSocialFeedPositionPatch {\n /** Additional metrics for a position history session, when supplied. */\n current_position?: MobileServerSocialFeedHistoryMetrics;\n /** Position lifecycle UUID. */\n position_id: string;\n /** Positive integer string; compare as integers without Number conversion. */\n position_version: string;\n /** Position state timestamp in Unix milliseconds. */\n state_as_of_ms: number;\n /** Remaining average entry cost, frozen on close; x18 or null. */\n entry_price_x18: string | null;\n /** Basis of the displayed size and entry price. */\n display_basis: MobileSocialFeedPositionDisplayBasis;\n /** Closing snapshot reference time, or null. */\n snapshot_at_ms: number | null;\n /** Absolute quantity in x18 units. */\n quantity_x18: string;\n /** Notional value in x18 units. */\n notional_x18: string;\n /** Current lifecycle state. */\n state: MobileSocialFeedPositionState;\n /** Completeness of the available historical facts. */\n history_quality: MobileSocialFeedHistoryQuality;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Current or closing leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage reference time; null when unknown or inapplicable. */\n leverage_at_ms: number | null;\n /** Current remaining PnL or the closed lifecycle's net result. */\n pnl: MobileServerSocialFeedPnl;\n}\n\n/** Position displayed inside an automatic trade card. */\nexport interface MobileServerSocialFeedPositionCard extends MobileServerSocialFeedPositionPatch {\n /** Market product ID. */\n product_id: number;\n /** Market display metadata. */\n market: MobileServerSocialFeedMarket;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n}\n\n/** Interaction counters and the viewing account's relationship state. */\nexport interface MobileServerSocialFeedInteraction {\n /** Number of likes. */\n like_count: number;\n /** Number of comments. */\n comment_count: number;\n /** Number of recorded views. */\n view_count: number;\n /** Null when no viewing account is selected. */\n liked_by_me: boolean | null;\n}\n\n/** Capability flags for a social feed item. */\nexport interface MobileServerSocialFeedCapabilities {\n /** Whether liking is available. */\n can_like: boolean;\n /** Whether commenting is available. */\n can_comment: boolean;\n /** Whether exposure recording is available. */\n can_record_view: boolean;\n}\n\n/** Comment preview metadata for a social trade card. */\nexport interface MobileServerSocialFeedCommentPreview {\n /** Most recent readable replies. */\n items: MobileServerSocialFeedReply[];\n /** Comment count. */\n total_count: number;\n /** Comment cursor, if available. */\n next_cursor: string | null;\n}\n\n/** Exposure requirements associated with a reading session. */\nexport interface MobileServerSocialFeedViewTracking {\n /** Required visible fraction. */\n min_visible_ratio: number;\n /** Required visible duration in milliseconds. */\n min_duration_ms: number;\n}\n\n/** Coverage of the candidate authors in a qualification snapshot. */\nexport interface MobileServerSocialFeedCohortCoverage {\n /** Coverage domain. */\n scope: 'eligible_content_candidates';\n /** Candidate author count. */\n total_authors: number;\n /** Authors queried for this snapshot. */\n queried_authors: number;\n /** A successful response requires complete coverage. */\n complete: true;\n}\n\n/** Shared qualification snapshot used for Top Traders eligibility and badges. */\nexport interface MobileServerSocialFeedCohort {\n /** Cohort UUID. */\n snapshot_id: string;\n /** Ready or the previous successful snapshot after a refresh failure. */\n status: MobileSocialFeedCohortStatus;\n /** Coverage of all eligible candidate authors. */\n coverage: MobileServerSocialFeedCohortCoverage;\n}\n\n/** Metadata shared by social feed content. */\nexport interface MobileServerSocialFeedItemBase {\n /** Item UUID. */\n id: string;\n /** Whether authored analysis exists. */\n has_analysis: boolean;\n /** Parsed drawing document, or null when no drawing is readable. */\n drawing: MobileServerSocialFeedDrawing | null;\n /** Author identity, badge, and follow perspective. */\n author: MobileServerSocialFeedAuthor;\n /** Creation time in Unix milliseconds. */\n created_at_ms: number;\n /** Sorting time in Unix milliseconds. */\n display_at_ms: number;\n /** Positive integer version string. */\n version: string;\n /** Market metadata. */\n market: MobileServerSocialFeedMarket;\n /** Server capability flags, subject to the corresponding write switches. */\n capabilities: MobileServerSocialFeedCapabilities;\n}\n\n/** Content shared by authored posts and trade cards. */\nexport interface MobileServerSocialFeedContentBase extends MobileServerSocialFeedItemBase {\n /** Card text, empty for automatic cards. */\n text: string;\n /** Mentions in the original, unmodified text. */\n mentions: MobileSocialFeedMention[];\n /** Current or frozen position display. */\n position: MobileServerSocialFeedPositionCard;\n /** Interaction counters. */\n interaction: MobileServerSocialFeedInteraction;\n /** Readable comment preview. */\n comment_preview: MobileServerSocialFeedCommentPreview;\n}\n\n/** Trade card with optional authored text and analysis. */\nexport interface MobileServerSocialFeedTradeCard extends MobileServerSocialFeedContentBase {\n /** Card discriminant. */\n kind: 'trade_card';\n /** Trading action. */\n action: MobileSocialFeedTradeCardAction;\n}\n\n/** Fields shared by size-change and liquidation trade rows. */\nexport interface MobileServerSocialFeedTradeRowBase extends MobileServerSocialFeedItemBase {\n /** Row discriminant. */\n kind: 'trade_row';\n /** Associated lifecycle UUID. */\n position_id: string;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Historical action leverage, not the position's current leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Historical leverage reference time. */\n leverage_at_ms: number | null;\n /** Number of aggregated trades. */\n trade_count: number;\n /** Absolute traded quantity in x18 units. */\n quantity_x18: string;\n /** Actual execution price in x18 units, never an Oracle substitution. */\n average_price_x18: string | null;\n}\n\n/** A size-change row or liquidation row with independently nullable financial facts. */\nexport type MobileServerSocialFeedTradeRow =\n MobileServerSocialFeedTradeRowBase &\n (\n | {\n /** Ordinary size-change action. */\n action: MobileSocialFeedTradeSizeChangeAction;\n /** Executed notional in x18 units. */\n notional_x18: string;\n }\n | {\n /** Liquidation discriminant. */\n action: 'liquidated';\n /** Quantity times event Oracle; null if that Oracle is unknown. */\n notional_x18: string | null;\n /** Entry cost immediately before the event, in x18 units. */\n entry_price_x18: string | null;\n /** Event Oracle used for display and size filtering. */\n liquidation_oracle_price_x18: string | null;\n /** Actual execution price, independent of Oracle. */\n liquidation_execution_price_x18: string | null;\n /** Signed action PnL excluding ordinary fees/funding, or null. */\n realized_pnl_delta_x18: string | null;\n }\n );\n\n/** Discriminated social feed content. */\nexport type MobileServerSocialFeedItem =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedTradeRow\n | MobileServerSocialFeedPost\n | MobileServerSocialFeedReply;\n\n/** Fixed-duration social feed reading session. Credentials and cursors must be returned unchanged. */\nexport interface MobileServerSocialFeedReadSession {\n /** Session identifier. */\n session_id: string;\n /** Feed, item, or full position history session. */\n mode: MobileSocialFeedReadSessionMode;\n /** Fixed expiration time in Unix milliseconds; pagination does not extend it. */\n expires_at_ms: number;\n /** Visibility requirements for explicit exposure reporting. */\n view_tracking: MobileServerSocialFeedViewTracking;\n /** Initial update baseline, distinct from the page cursor. */\n update_cursor: string | null;\n /** Credential for this reading session. Do not log or cache publicly. */\n viewer_token: string;\n}\n\n/** Item delta: omitted means unchanged; explicit null clears a prior value. */\nexport interface MobileServerSocialFeedItemPatch {\n /** Updated reply attachment; null clears it, omission leaves it unchanged. */\n attached_position?: MobileServerSocialFeedPositionCard | null;\n /** Updated reply attachment visibility. */\n attachment_status?: MobileSocialFeedAttachmentStatus;\n /** Current author identity, follow state, and qualification badge. */\n author: MobileServerSocialFeedAuthor;\n /** Target item UUID. */\n item_id: string;\n /** Positive integer version string. */\n version: string;\n /** Updated interaction counters. */\n interaction?: MobileServerSocialFeedInteraction;\n /** Updated display timestamp; does not reorder the current list. */\n display_at_ms: number;\n /** Updated aggregate count. */\n trade_count?: number;\n /** Updated quantity in x18 units. */\n quantity_x18?: string;\n /** Updated notional; liquidation Oracle may be unknown. */\n notional_x18?: string | null;\n /** Updated actual execution price. */\n average_price_x18?: string | null;\n /** Historical liquidation entry cost. */\n entry_price_x18?: string | null;\n /** Updated liquidation Oracle. */\n liquidation_oracle_price_x18?: string | null;\n /** Updated actual liquidation execution price. */\n liquidation_execution_price_x18?: string | null;\n /** Updated signed action PnL. */\n realized_pnl_delta_x18?: string | null;\n /** Updated historical row leverage. */\n leverage?: MobileSocialFeedLeverage;\n /** Updated historical leverage reference time. */\n leverage_at_ms?: number | null;\n}\n\n/** A previously authorized target that can no longer be read; shared by wire and client responses. */\nexport interface MobileSocialFeedUnavailableTarget {\n /** Target kind. */\n type: MobileSocialFeedTargetType;\n /** Target UUID. */\n id: string;\n /** Uniform reason prevents leaking inaccessible content. */\n reason: 'unavailable';\n}\n\n/** Readable state of a reply's position attachment. */\nexport type MobileSocialFeedAttachmentStatus =\n | 'none'\n | 'visible'\n | 'unavailable';\n\n/** Supported chart candle intervals. */\nexport type MobileSocialFeedChartInterval =\n | '1m'\n | '5m'\n | '15m'\n | '1h'\n | '4h'\n | '1d';\n\n/** Position lifecycle action. */\nexport type MobileSocialFeedAction =\n | MobileSocialFeedTradeCardAction\n | 'liquidated';\n\n/** Result of resolving a position command. */\nexport type MobileSocialFeedPositionResolution =\n | 'resolved'\n | 'choose_position'\n | 'no_open_position'\n | 'unknown_market';\n\n/** Resolution of a viewing account's trading targets. */\nexport type MobileSocialFeedTradingResolution =\n | 'no_viewing_account'\n | 'none'\n | 'unique'\n | 'choose_position'\n | 'unavailable';\n\n/** Price source for a historical action marker. */\nexport type MobileSocialFeedActionPriceBasis =\n | 'execution'\n | 'liquidation_oracle';\n\n/** Chart source completeness; wholly unavailable sources fail the request. */\nexport type MobileSocialFeedChartDataQuality = 'ready' | 'partial';\n\n/** Projection state of an order's authoritative action segments. */\nexport type MobileSocialFeedActionResolution = 'ready' | 'pending';\n\n/** Explanation for an empty position command result. */\nexport type MobileSocialFeedPositionResolutionReason =\n | 'no_open_position'\n | 'unknown_market';\n\n/** Reason an action cannot be published. */\nexport type MobileSocialFeedActionUnavailableReason =\n | 'position_closed'\n | 'already_published'\n | 'unavailable';\n\n/** Availability of an estimated liquidation price. */\nexport type MobileSocialFeedLiquidationPriceQuality =\n | MobileSocialFeedPnlQuality\n | 'not_applicable';\n\n/** Presence lifecycle reported by an individual page. */\nexport type MobileSocialFeedPresenceState = 'watching' | 'heartbeat' | 'left';\n\n/** Mention offsets refer to Unicode code points in the original text, not UTF-16 indices. */\nexport interface MobileSocialFeedMention {\n /** Mentioned identity. */\n subaccount: Hex;\n /** Inclusive code point offset. */\n start: number;\n /** Exclusive code point offset. */\n end: number;\n /** Label matching the original text. */\n label: string;\n}\n\n/** Parsed drawing; data is opaque to the SDK and may legitimately be false or zero. */\nexport interface MobileServerSocialFeedDrawing {\n /** Already parsed drawing document; do not JSON.parse again. */\n data: unknown;\n /** Original creation time in milliseconds. */\n created_at_ms: number;\n /** Last update time in milliseconds. */\n updated_at_ms: number;\n}\n\n/** Nonrecursive root-post preview carried by replies. */\nexport interface MobileServerSocialFeedCompactCard {\n /** Root item UUID. */\n id: string;\n /** Root author. */\n author: MobileServerSocialFeedAuthor;\n /** Original text excerpt. */\n text_excerpt: string;\n /** Visible position summary, or null. */\n position: Pick<\n MobileServerSocialFeedPositionCard,\n 'position_id' | 'market' | 'direction' | 'state' | 'notional_x18'\n > | null;\n /** Whether the root has published analysis. */\n has_analysis: boolean;\n}\n\n/** Authored position post, including text-only, drawing-only, and combined content. */\nexport interface MobileServerSocialFeedPost extends MobileServerSocialFeedContentBase {\n /** Post discriminant. */\n kind: 'post';\n}\n\n/** Reply with independently permissioned position attachment and nonrecursive root preview. */\nexport interface MobileServerSocialFeedReply extends MobileServerSocialFeedItemBase {\n /** Reply discriminant. */\n kind: 'reply';\n /** Original text. */\n text: string;\n /** Mentions in the text. */\n mentions: MobileSocialFeedMention[];\n /** Actual root item UUID. */\n root_item_id: string;\n /** Omitted for a direct reply to the root. */\n reply_to_item_id?: string;\n /** Author being replied to, or null. */\n reply_to_author: MobileServerSocialFeedAuthor | null;\n /** Readable attachment; null when absent or unavailable. */\n attached_position: MobileServerSocialFeedPositionCard | null;\n /** Distinguishes an absent attachment from an unreadable one. */\n attachment_status: MobileSocialFeedAttachmentStatus;\n /** Root preview; does not register root exposure. */\n original: MobileServerSocialFeedCompactCard;\n /** Reply interaction state. */\n interaction: MobileServerSocialFeedInteraction;\n}\n\n/** Current eligibility hints; actual writes still recheck the signed author. */\nexport interface MobileServerSocialFeedPublishablePosition {\n /** Candidate position. */\n position: MobileServerSocialFeedPositionCard;\n /** Whether this account can publish. */\n can_publish: boolean;\n /** Whether this account can attach the position to a comment. */\n can_attach_to_comment: boolean;\n /** Whether this account can first add analysis. */\n can_draw_analysis: boolean;\n /** Unavailability explanation, or null. */\n unavailable_reason: string | null;\n}\n\n/** An authoritative lifecycle segment of an order. */\nexport interface MobileServerSocialFeedActionCandidate {\n /** Action UUID. */\n action_id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Current publishing eligibility, not proof of caller ownership. */\n can_publish: boolean;\n /** Publication restriction, or null when eligible. */\n unavailable_reason: MobileSocialFeedActionUnavailableReason | null;\n}\n\n/** Additional history metrics; unavailable values are not zero. */\nexport interface MobileServerSocialFeedHistoryMetrics {\n /** Estimated liquidation price in x18, independent of event Oracle and execution prices. */\n estimated_liquidation_price_x18: string | null;\n /** Availability of the estimated price. */\n liquidation_price_quality: MobileSocialFeedLiquidationPriceQuality;\n /** Source time in milliseconds. */\n liquidation_price_as_of_ms: number | null;\n /** Signed funding amount in x18. */\n funding_pnl_x18: string | null;\n /** Funding availability. */\n funding_quality: MobileSocialFeedPnlQuality;\n /** Funding source time in milliseconds. */\n funding_as_of_ms: number | null;\n}\n\n/** Full position card displayed above its historical timeline. */\nexport interface MobileServerSocialFeedPositionHistoryCard\n extends\n MobileServerSocialFeedPositionCard,\n MobileServerSocialFeedHistoryMetrics {}\n\n/** Persisted action facts, independent of whether a feed item was published. */\nexport interface MobileServerSocialFeedPositionAction {\n /** Action UUID. */\n id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Quantity before the action, in x18. */\n quantity_before_x18: string;\n /** Quantity after the action, in x18. */\n quantity_after_x18: string;\n /** Executed quantity, in x18. */\n executed_quantity_x18: string;\n /** Actual executed notional in x18; may be unknown for liquidation. */\n executed_notional_x18: string | null;\n /** Actual execution price in x18. */\n average_price_x18: string | null;\n /** Entry price before the action, in x18. */\n entry_price_before_x18: string | null;\n /** Liquidation event Oracle price in x18. */\n liquidation_oracle_price_x18: string | null;\n /** Liquidation Oracle-based notional in x18. */\n liquidation_notional_x18: string | null;\n /** Signed realized trading PnL in x18, excluding ordinary fees and funding. */\n realized_pnl_delta_x18: string | null;\n /** Historical effective leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage source time in milliseconds. */\n leverage_at_ms: number | null;\n /** First event time in milliseconds. */\n first_event_at_ms: number;\n /** Last event time in milliseconds. */\n last_event_at_ms: number;\n /** Decimal-string version. */\n version: string;\n}\n\n/** Full published content appearing in a position timeline. */\nexport type MobileServerSocialFeedHistoryTake =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedPost;\n\n/** A historical action or authored take; preserve service ordering. */\nexport type MobileServerSocialFeedTimelineEntry =\n | {\n /** Action entry. */\n kind: 'action';\n /** Full action facts. */\n action: MobileServerSocialFeedPositionAction;\n /** Actually associated feed item, or null. */\n related_item_id: string | null;\n /** Full published trade card, or null. */\n related_take: MobileServerSocialFeedTradeCard | null;\n }\n | {\n /** Published take entry. */\n kind: 'take';\n /** Full published content. */\n item: MobileServerSocialFeedHistoryTake;\n };\n\n/** Trusted trading target; this hint does not authorize trading. */\nexport interface MobileServerSocialFeedTradingTarget {\n /** Lifecycle UUID. */\n position_id: string;\n /** Parent identity. */\n identity_subaccount: Hex;\n /** Actual trading subaccount, possibly isolated. */\n trading_subaccount: Hex;\n /** Market product ID. */\n product_id: number;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Isolated name, or null for cross margin. */\n iso_subaccount_name: string | null;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Source time in milliseconds. */\n state_as_of_ms: number;\n}\n\n/** Viewing-account trading hints, not authenticated permissions. */\nexport interface MobileServerSocialFeedTradingContext {\n /** Market product ID. */\n product_id: number;\n /** Suggested trade direction. */\n suggested_direction: MobileFeedTradePositionDirection;\n /** Resolution of the viewing account's positions. */\n resolution: MobileSocialFeedTradingResolution;\n /** Trusted candidates. */\n candidates: MobileServerSocialFeedTradingTarget[];\n /** Unique candidate, or null. */\n viewer_position_id: string | null;\n /** Whether the selected account has a unique reducible position. */\n can_reduce: boolean;\n}\n\n/** Historical candle; volume is a quantity, not a price. */\nexport interface MobileServerSocialFeedCandle {\n /** Candle start time in milliseconds. */\n timestamp_ms: number;\n /** Open price in x18. */\n open_x18: string;\n /** High price in x18. */\n high_x18: string;\n /** Low price in x18. */\n low_x18: string;\n /** Close price in x18. */\n close_x18: string;\n /** Base asset volume in x18. */\n volume_x18: string;\n}\n\n/** Chart action marker with explicitly identified price basis. */\nexport interface MobileServerSocialFeedActionMarker {\n /** Action UUID. */\n action_id: string;\n /** Event time in milliseconds. */\n timestamp_ms: number;\n /** Price in x18; null does not remove the action. */\n price_x18: string | null;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Direction. */\n direction: MobileFeedTradePositionDirection;\n /** Never substitute actual execution for a liquidation Oracle. */\n price_basis: MobileSocialFeedActionPriceBasis;\n}\n\n/** Counts across the authorized position history. */\nexport interface MobileServerSocialFeedHistorySummary {\n /** Action count. */\n action_count: number;\n /** Published take count. */\n take_count: number;\n}\n\n/** Estimated liquidation price and its source time. */\nexport interface MobileServerSocialFeedEstimatedLiquidationLine {\n /** Estimated price in x18. */\n price_x18: string;\n /** Source time in milliseconds. */\n as_of_ms: number;\n}\n\n/** Half-open chart range, preserved across pages. */\nexport interface MobileServerSocialFeedChartRange {\n /** Inclusive start in milliseconds. */\n from_ms: number;\n /** Exclusive end in milliseconds. */\n to_ms: number;\n}\n"],"mappings":";;;;;;AA0HA,MAAa,wCAAwC,CACnD,QACA,OACF;;;;;AAMA,MAAa,qCAAqC;CAChD;CACA;CACA;CACA;CACA;AACF;;;;;AAqBA,MAAa,2BAA2B,CAAC,SAAS,UAAU"}
1
+ {"version":3,"file":"serverModelTypes.cjs","names":[],"sources":["../../src/types/serverModelTypes.ts"],"sourcesContent":["import { BalanceSide } from '@nadohq/shared';\nimport { Hex } from 'viem';\n\n/**\n * Server-side avatar selection, shared by request mapping and signing.\n */\nexport type MobileServerAvatarSelection =\n | {\n /** Shared catalogue selection. */\n type: 'preset';\n /** Stable catalogue ID. */\n id: string;\n }\n | {\n /** Uploaded image awaiting publication. */\n type: 'upload';\n /** Staging key returned by create_avatar_upload. */\n upload_key: string;\n };\n\n/**\n * Server-owned avatar preset in catalogue order.\n */\nexport interface MobileServerAvatarPreset {\n /** Stable catalogue ID used when selecting this preset. */\n id: string;\n /** Public image URL. */\n avatar_url: string;\n}\n\n/**\n * Platform of a device registered for push notifications.\n */\nexport type MobileNotificationPlatform = 'ios' | 'android';\n\n/**\n * Notification types supported by the v2 payload protocol.\n */\nexport type MobileNotificationTypeId =\n | 'new_follower'\n | 'followed_you_back'\n | 'order_fill'\n | 'order_update'\n | 'liquidation'\n | 'trader_opened'\n | 'trader_closed'\n | 'position_milestone'\n | 'market_movement'\n | 'trader_streak'\n | 'account_drama'\n | 'weekly_digest';\n\n/**\n * Named navigation destinations supported by notification payloads.\n */\nexport type MobileNotificationRouteName = MobileServerNotificationRoute['name'];\n\n/** Position milestone options supported by notification settings. */\nexport const MOBILE_NOTIFICATION_POSITION_THRESHOLDS = [10, 25, 50] as const;\n\n/** Minimum trade-size options, in whole USD, supported by notification settings. */\nexport const MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD = [\n 0, 100, 1000, 10000,\n] as const;\n\n/** Supported notification position milestone threshold. */\nexport type MobileNotificationPositionThreshold =\n (typeof MOBILE_NOTIFICATION_POSITION_THRESHOLDS)[number];\n\n/** Supported notification minimum trade size, in whole USD. */\nexport type MobileNotificationMinTradeSizeUsd =\n (typeof MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD)[number];\n\n/** Supported product analytics interaction. */\nexport type MobileProductEventName =\n | 'notif_opened'\n | 'market_viewed'\n | 'chart_opened'\n | 'search';\n\n/**\n * Category of push notification.\n */\nexport type MobileNotificationCategory =\n | 'order_fill'\n | 'order_update'\n | 'liquidation'\n | 'funding'\n | 'product_listing'\n | 'announcement';\n\n/**\n * Server-side identity summary (snake_case): the read-time identity fields the backend attaches to a\n * subaccount wherever it surfaces one alongside other data. Name fields are `null` until the subaccount\n * claims a username, and a rename shows up on the next read without any change to the surrounding record.\n */\nexport interface MobileServerIdentitySummary {\n subaccount: Hex;\n username: string | null;\n display_name: string | null;\n /** Published avatar URL, or null when the account has no saved avatar. */\n avatar_url: string | null;\n}\n\n/**\n * Server-side follow summary (snake_case), nested in a `profiles` entry when the `follow_summary` include is\n * requested. `is_following` is the direct `view_as -> this profile` relationship; every `followed_by` entry\n * satisfies both `view_as -> entry` and `entry -> this profile`, so each one is already familiar to the\n * viewer and carries no `is_following` of its own.\n */\nexport interface MobileServerFollowSummary {\n is_following: boolean;\n /** Exact size of the two-edge intersection, independent of how many previews came back. */\n followed_by_count: number;\n /** Capped at `MOBILE_FOLLOWED_BY_PREVIEW_LIMIT` (2) by the backend; not client-configurable. */\n followed_by: MobileServerIdentitySummary[];\n}\n\n/**\n * Server-side public profile shape (snake_case), shared by the singular `profile` and batched `profiles`\n * queries. Name fields are `null` until the subaccount claims a username; a subaccount with no identity row\n * still yields an entry, with `null` names and `private_mode: false`.\n *\n * The three optional fields are omitted from the wire entirely unless the matching `profiles` include asked\n * for them, which is why they are optional rather than nullable — absent means \"not requested\", not \"none\".\n * The singular `profile` query never returns any of them.\n */\nexport interface MobileServerProfile extends MobileServerIdentitySummary {\n private_mode: boolean;\n /** Plain-text biography, or null when unset. */\n bio: string | null;\n /**\n * Exact count at query time — the backend counts rather than reading a cached counter. Unnamed and private\n * accounts are included: Private Mode hides activity, not relationships. Requires `follow_counts`.\n */\n follower_count?: number;\n following_count?: number;\n /** Requires the `follow_summary` include, and is relative to that include's `view_as`. */\n follow_summary?: MobileServerFollowSummary;\n}\n\n/**\n * Server-side row of a Followers or Following page (snake_case).\n */\nexport interface MobileServerFollowListAccount {\n identity: MobileServerIdentitySummary;\n /**\n * The `view_as` Viewer's relationship to this account, not the listed relationship that put it in the\n * page, so it is `false` on the Viewer's own row. Omitted entirely when the request named no `view_as`,\n * rather than being sent as a misleading `false`.\n */\n is_following?: boolean;\n /** The listed account's own follower count, exact at query time. */\n follower_count: number;\n}\n\n/**\n * Direction of the position a feed trade resulted in — for `closed`, the direction that was closed. This is\n * NOT the execution buy/sell side, which the feed does not expose. Aliases {@link BalanceSide} so the feed's\n * direction values stay in lockstep with the rest of the SDK.\n */\nexport type MobileFeedTradePositionDirection = BalanceSide;\n\n/**\n * Every {@link MobileFeedTradePositionDirection} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_DIRECTIONS = [\n 'long',\n 'short',\n] as const satisfies readonly MobileFeedTradePositionDirection[];\n\n/**\n * Every {@link MobileFeedTradePositionEffect} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_EFFECTS = [\n 'opened',\n 'increased',\n 'reduced',\n 'closed',\n 'flipped',\n] as const;\n\n/**\n * How a feed trade changed the trader's position in the product.\n */\nexport type MobileFeedTradePositionEffect =\n (typeof MOBILE_FEED_TRADE_POSITION_EFFECTS)[number];\n\n/**\n * Position change of a feed trade. Both keys are single words, so the wire and client shapes are identical\n * and this type is shared by {@link MobileServerFeedTrade} and the client-side `MobileFeedTrade`.\n */\nexport interface MobileFeedTradePosition {\n direction: MobileFeedTradePositionDirection;\n effect: MobileFeedTradePositionEffect;\n}\n\n/**\n * Every {@link MobileFeedMarginMode} the feed can report, for callers that need the values at runtime\n * (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_MARGIN_MODES = ['cross', 'isolated'] as const;\n\n/**\n * Margin mode a feed trade was executed under. Shared by the wire and client margin shapes.\n */\nexport type MobileFeedMarginMode = (typeof MOBILE_FEED_MARGIN_MODES)[number];\n\n/**\n * Server-side margin of a feed trade. Branch on `mode` — do not infer isolated state from leverage presence:\n * `estimated_leverage` (a rounded whole-number estimate, not exact submitted leverage) is omitted on `cross`,\n * and also omitted inside `isolated` when no estimate is available.\n */\nexport interface MobileServerFeedMargin {\n mode: MobileFeedMarginMode;\n estimated_leverage?: number;\n}\n\n/**\n * Server-side feed trade shape (snake_case): one row per order digest, enriched at read time with the\n * trader's current identity. Amounts are display-oriented human-unit JSON numbers — do not use them for\n * accounting, order construction, or exact threshold decisions.\n */\nexport interface MobileServerFeedTrade extends MobileServerIdentitySummary {\n /** Order digest this row is keyed by; the stable id clients use to reconcile live pagination. */\n order_digest: Hex;\n product_id: number;\n /** Executed quantity in human units. */\n quantity: number;\n /** Trade notional in whole-dollar human units. */\n notional: number;\n /** Average execution price in human units. */\n average_price: number;\n margin: MobileServerFeedMargin;\n position: MobileFeedTradePosition;\n /** Realized PnL of the trade in human units; can be negative. */\n realized_pnl: number;\n /** Fill time as JavaScript-safe integer Unix milliseconds. */\n filled_at_ms: number;\n}\n\n/**\n * Server-side scope limiting a notification category preference. Scopes are rejected by the backend for the\n * MVP (`scopes` must be empty) but are part of the wire format.\n */\nexport type MobileServerNotificationPreferenceScope =\n | { type: 'subaccount'; subaccount: Hex }\n | { type: 'product'; product_id: number };\n\n/**\n * Server-side per-category notification preference (snake_case).\n */\nexport interface MobileServerNotificationCategoryPreference {\n category: MobileNotificationCategory;\n enabled: boolean;\n scopes: MobileServerNotificationPreferenceScope[];\n}\n\n/**\n * Server-side notification preferences shape (snake_case), used in both the `update_preferences` public\n * execute and the `notification_preferences` public query response.\n */\nexport interface MobileServerNotificationPreferences {\n /** Only `1` is accepted by the backend for the MVP. */\n schema_version: 1;\n categories: MobileServerNotificationCategoryPreference[];\n}\n\n/**\n * Stored push-device metadata shared by registration requests and token ownership responses.\n */\nexport interface MobileServerNotificationDeviceMetadata {\n /** Device operating system. */\n platform: MobileNotificationPlatform;\n /** Locale tag, or null when absent; at most 35 UTF-8 bytes. */\n locale: string | null;\n /** App version, or null when absent; at most 64 UTF-8 bytes. */\n app_version: string | null;\n}\n\n/**\n * Device capabilities shared by v2 registration and v1/v2 registration queries.\n */\nexport interface MobileServerNotificationCapabilities {\n /** Exactly one supported payload version. */\n payload_versions: [1] | [2];\n /** Supported subset of the registered notification types. */\n type_ids: MobileNotificationTypeId[];\n /** Supported subset of the named destinations. */\n routes: MobileNotificationRouteName[];\n}\n\n/**\n * Server-side wallet settings; all fields are required on replacement.\n */\nexport interface MobileServerNotificationSettings {\n /** Own position milestones and the initial weekly digest. */\n my_positions: boolean;\n /** One to three unique values; the minimum selects the starting milestone tier. */\n position_thresholds: MobileNotificationPositionThreshold[];\n /** Combined order fill/update switch; does not control liquidation notifications. */\n my_orders: boolean;\n /** Ordinary followed-trader notifications; enabled bells override this switch. */\n following_trades: boolean;\n /** Notifications about posts by followed traders. */\n following_posts: boolean;\n /** Minimum trade size for trade notifications, in whole USD. */\n min_trade_size_usd: MobileNotificationMinTradeSizeUsd;\n /** New followers and follow-backs. */\n new_followers: boolean;\n /** Maps to the legacy announcement preference. */\n announcements: boolean;\n /** Opt-in trader streak and account drama discovery notifications. */\n discovery: boolean;\n}\n\n/**\n * Server-side allowlisted destination; notification data must never be interpreted as an arbitrary URL.\n */\nexport type MobileServerNotificationRoute =\n | {\n /** Public profile destination. */\n name: 'profile';\n /** Profile subaccount as bytes32. */\n subaccount: Hex;\n }\n | {\n /** Market destination. */\n name: 'market';\n /** Positive product ID. */\n product_id: number;\n }\n | {\n /** Own portfolio destination. */\n name: 'portfolio';\n };\n\n/**\n * Server-side v2 push/inbox navigation data, not a complete historical trade or notification body.\n */\nexport interface MobileServerNotificationPayloadV2 {\n /** Payload protocol version. */\n payload_version: 2;\n /** Logical notification UUID, used for click deduplication. */\n notification_id: string;\n /** Intended wallet; private navigation must wait for this wallet to connect. */\n recipient_wallet: Hex;\n /** Registered notification type. */\n type_id: MobileNotificationTypeId;\n /** Supported template version. */\n template_version: 1;\n /** Named destination and its parameters. */\n route: MobileServerNotificationRoute;\n}\n\n/**\n * Server-side accepted logical notification; does not prove device delivery or read status.\n */\nexport interface MobileServerNotificationInboxItem {\n /** Logical notification UUID. */\n notification_id: string;\n /** Registered notification type. */\n type_id: MobileNotificationTypeId;\n /** Navigation data, without title, body, or read state. */\n data: MobileServerNotificationPayloadV2;\n /** Intent acceptance time in milliseconds. */\n created_at: number;\n /** Backend-computed trade attribution. */\n trade_within_24h: boolean;\n}\n\n/**\n * Server-side product analytics event; unused nullable fields must be explicitly null.\n */\nexport interface MobileServerProductEvent {\n /** Stable event UUID; reuse across retries. */\n client_event_id: string;\n /** Supported interaction; notif_opened is not a read-state mutation. */\n event_name: MobileProductEventName;\n /** Required for notif_opened and owned by the signing wallet; otherwise null. */\n notification_id: string | null;\n /** Actual event time in milliseconds, within the past 7 days or next 5 minutes. */\n occurred_at: number;\n /** Required for market_viewed/chart_opened; otherwise null. */\n product_id: number | null;\n /** Required for search, nonblank and at most 80 Unicode characters; otherwise null. */\n query: string | null;\n}\n\n/** Content filters accepted by the six social feed lists. Empty or omitted means all. */\nexport type MobileSocialFeedType =\n | 'open'\n | 'close'\n | 'size_change'\n | 'thoughts'\n | 'analysis'\n | 'comments';\n\n/** Market category used by the social feed. */\nexport type MobileSocialFeedMarketCategory = 'crypto' | 'finance';\n\n/** Qualification tier for an account-level PnL badge. */\nexport type MobileSocialFeedTraderBadgeCode = 'shark' | 'whale';\n\n/** Availability of the current or last successful qualification snapshot. */\nexport type MobileSocialFeedCohortStatus = 'ready' | 'stale';\n\n/** Availability of an author's qualification data. */\nexport type MobileSocialFeedTraderDataStatus =\n | MobileSocialFeedCohortStatus\n | 'unavailable';\n\n/** Category from the authoritative market source. */\nexport type MobileSocialFeedSourceCategory =\n | 'crypto'\n | 'stocks'\n | 'forex'\n | 'commodities';\n\n/** Accounting basis used for position PnL. */\nexport type MobileSocialFeedPnlBasis =\n | 'unrealized_excl_fees_funding'\n | 'realized_incl_fees_funding';\n\n/** Whether position PnL is live or frozen at close. */\nexport type MobileSocialFeedPnlMode = 'live' | 'frozen';\n\n/** Completeness of position PnL accounting. */\nexport type MobileSocialFeedPnlQuality = 'ready' | 'pending' | 'unavailable';\n\n/** Source of the displayed position size and entry price. */\nexport type MobileSocialFeedPositionDisplayBasis =\n | 'current_position'\n | 'closing_snapshot';\n\n/** Current state of a position lifecycle. */\nexport type MobileSocialFeedPositionState = 'open' | 'closed';\n\n/** Completeness of the available position history. */\nexport type MobileSocialFeedHistoryQuality = 'complete' | 'partial';\n\n/** Trading action represented by an ordinary size-change row. */\nexport type MobileSocialFeedTradeSizeChangeAction = 'increased' | 'reduced';\n\n/** Trading action represented by an automatic trade card. */\nexport type MobileSocialFeedTradeCardAction =\n | 'opened'\n | 'closed'\n | MobileSocialFeedTradeSizeChangeAction;\n\n/** Whether a reading session was created for a list or a direct item. */\nexport type MobileSocialFeedReadSessionMode = 'feed' | 'item' | 'position';\n\n/** Kind of feed update target. */\nexport type MobileSocialFeedTargetType = 'item' | 'position';\n\n/** Official account-level 30-day PnL badge, independent of position PnL. */\nexport interface MobileServerSocialFeedTraderBadge {\n /** Qualification tier. */\n code: MobileSocialFeedTraderBadgeCode;\n /** Signed integer in x18 units. */\n pnl_x18: string;\n /** Stable compatibility identifier for the official Portfolio month result. */\n metric_key: 'account_pnl_30d_equity';\n /** PnL window label. */\n window: '30d';\n /** Official source timestamp in Unix milliseconds. */\n source_as_of_ms: number;\n /** Fetch completion timestamp in Unix milliseconds. */\n fetched_at_ms: number;\n /** Qualification snapshot UUID. */\n snapshot_id: string;\n}\n\n/** Public author identity and the selected viewing account's follow state. */\nexport interface MobileServerSocialFeedAuthor extends MobileServerIdentitySummary {\n /** Selected view_as account's follow state; null without a viewing account. */\n is_following: boolean | null;\n /** Null when no qualifying badge is available. */\n trader_badge: MobileServerSocialFeedTraderBadge | null;\n /** Stale means the last successful cohort is used after a refresh failure. */\n trader_data_status: MobileSocialFeedTraderDataStatus;\n}\n\n/** Market metadata from the service's authoritative market source. */\nexport interface MobileServerSocialFeedMarket {\n /** Market product ID. */\n product_id: number;\n /** Market symbol. */\n symbol: string;\n /** Logo URL when available. */\n logo_url: string | null;\n /** Social feed category when known. */\n category: MobileSocialFeedMarketCategory | null;\n /** Original market categories. */\n source_categories: MobileSocialFeedSourceCategory[];\n}\n\n/** Leverage display value; unknown isolated leverage differs from inapplicable cross leverage. */\nexport interface MobileSocialFeedLeverage {\n /** Rounded whole-number string, or null. Never an estimated replacement. */\n value: string | null;\n /** Cross margin uses not_applicable. */\n basis: 'effective' | 'unknown' | 'not_applicable';\n}\n\n/** Position PnL with explicit accounting basis and data quality. */\nexport interface MobileServerSocialFeedPnl {\n /** Signed x18 integer; null means unknown, not zero. */\n amount_x18: string | null;\n /** Open positions exclude fees/funding; closed results include them. */\n basis: MobileSocialFeedPnlBasis;\n /** Closed positions use frozen results. */\n mode: MobileSocialFeedPnlMode;\n /** Source timestamp in Unix milliseconds. */\n as_of_ms: number;\n /** Whether accounting is complete, pending, or unavailable. */\n quality: MobileSocialFeedPnlQuality;\n}\n\n/** Complete mutable position fields delivered together at one version. */\nexport interface MobileServerSocialFeedPositionPatch {\n /** Additional metrics for a position history session, when supplied. */\n current_position?: MobileServerSocialFeedHistoryMetrics;\n /** Position lifecycle UUID. */\n position_id: string;\n /** Positive integer string; compare as integers without Number conversion. */\n position_version: string;\n /** Position state timestamp in Unix milliseconds. */\n state_as_of_ms: number;\n /** Remaining average entry cost, frozen on close; x18 or null. */\n entry_price_x18: string | null;\n /** Basis of the displayed size and entry price. */\n display_basis: MobileSocialFeedPositionDisplayBasis;\n /** Closing snapshot reference time, or null. */\n snapshot_at_ms: number | null;\n /** Absolute quantity in x18 units. */\n quantity_x18: string;\n /** Notional value in x18 units. */\n notional_x18: string;\n /** Current lifecycle state. */\n state: MobileSocialFeedPositionState;\n /** Completeness of the available historical facts. */\n history_quality: MobileSocialFeedHistoryQuality;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Current or closing leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage reference time; null when unknown or inapplicable. */\n leverage_at_ms: number | null;\n /** Current remaining PnL or the closed lifecycle's net result. */\n pnl: MobileServerSocialFeedPnl;\n}\n\n/** Position displayed inside an automatic trade card. */\nexport interface MobileServerSocialFeedPositionCard extends MobileServerSocialFeedPositionPatch {\n /** Market product ID. */\n product_id: number;\n /** Market display metadata. */\n market: MobileServerSocialFeedMarket;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n}\n\n/** Interaction counters and the viewing account's relationship state. */\nexport interface MobileServerSocialFeedInteraction {\n /** Number of likes. */\n like_count: number;\n /** Number of comments. */\n comment_count: number;\n /** Number of recorded views. */\n view_count: number;\n /** Null when no viewing account is selected. */\n liked_by_me: boolean | null;\n}\n\n/** Capability flags for a social feed item. */\nexport interface MobileServerSocialFeedCapabilities {\n /** Whether liking is available. */\n can_like: boolean;\n /** Whether commenting is available. */\n can_comment: boolean;\n /** Whether exposure recording is available. */\n can_record_view: boolean;\n}\n\n/** Comment preview metadata for a social trade card. */\nexport interface MobileServerSocialFeedCommentPreview {\n /** Most recent readable replies. */\n items: MobileServerSocialFeedReply[];\n /** Comment count. */\n total_count: number;\n /** Opens the first complete group page in the same snapshot; do not prepend preview items. */\n next_cursor: string | null;\n}\n\n/** Uploaded feed image metadata; bytes are fetched separately with the reading session. */\nexport interface MobileServerSocialFeedUploadedImage {\n /** Image UUID. */\n image_id: string;\n /** Backend path for the original image bytes. */\n url: string;\n /** Display-orientation width in pixels. */\n width: number;\n /** Display-orientation height in pixels. */\n height: number;\n /** Detected content type. */\n content_type: 'image/jpeg' | 'image/png';\n /** Original file size in bytes. */\n byte_size: number;\n /** Always-present thumbnail (longest edge ≤ 512, never upscaled). */\n thumbnail: MobileServerSocialFeedImageThumbnail;\n}\n\n/** External image loaded directly from its URL without Mobile session headers. */\nexport interface MobileServerSocialFeedExternalImage {\n /** Original HTTP/HTTPS URL; no upload metadata or thumbnail is provided. */\n url: string;\n}\n\n/** Uploaded image metadata or an external URL; uploaded images precede external images. */\nexport type MobileServerSocialFeedImage =\n | MobileServerSocialFeedUploadedImage\n | MobileServerSocialFeedExternalImage;\n\n/** Thumbnail metadata for an uploaded feed image. */\nexport interface MobileServerSocialFeedImageThumbnail {\n /** Backend path for the thumbnail bytes. */\n url: string;\n /** Thumbnail width in pixels. */\n width: number;\n /** Thumbnail height in pixels. */\n height: number;\n}\n\n/** Coverage of the candidate authors in a qualification snapshot. */\nexport interface MobileServerSocialFeedCohortCoverage {\n /** Coverage domain. */\n scope: 'eligible_content_candidates';\n /** Candidate author count. */\n total_authors: number;\n /** Authors queried for this snapshot. */\n queried_authors: number;\n /** A successful response requires complete coverage. */\n complete: true;\n}\n\n/** Shared qualification snapshot used for Top Traders eligibility and badges. */\nexport interface MobileServerSocialFeedCohort {\n /** Cohort UUID. */\n snapshot_id: string;\n /** Ready or the previous successful snapshot after a refresh failure. */\n status: MobileSocialFeedCohortStatus;\n /** Coverage of all eligible candidate authors. */\n coverage: MobileServerSocialFeedCohortCoverage;\n}\n\n/** Metadata shared by social feed content. */\nexport interface MobileServerSocialFeedItemBase {\n /** Item UUID. */\n id: string;\n /** Whether authored analysis exists. */\n has_analysis: boolean;\n /** Parsed drawing document, or null when no drawing is readable. */\n drawing: MobileServerSocialFeedDrawing | null;\n /** Author identity, badge, and follow perspective. */\n author: MobileServerSocialFeedAuthor;\n /** Creation time in Unix milliseconds. */\n created_at_ms: number;\n /** Sorting time in Unix milliseconds. */\n display_at_ms: number;\n /** Positive integer version string. */\n version: string;\n /** Market metadata. */\n market: MobileServerSocialFeedMarket;\n /** Server capability flags, subject to the corresponding write switches. */\n capabilities: MobileServerSocialFeedCapabilities;\n}\n\n/** Content shared by authored posts and trade cards. */\nexport interface MobileServerSocialFeedContentBase extends MobileServerSocialFeedItemBase {\n /** Bound images in display order; empty when none. */\n images: MobileServerSocialFeedImage[];\n /** Card text, empty for automatic cards. */\n text: string;\n /** Mentions in the original, unmodified text. */\n mentions: MobileSocialFeedMention[];\n /** Current or frozen position display. */\n position: MobileServerSocialFeedPositionCard;\n /** Interaction counters. */\n interaction: MobileServerSocialFeedInteraction;\n /** Readable comment preview. */\n comment_preview: MobileServerSocialFeedCommentPreview;\n}\n\n/** Trade card with optional authored text and analysis. */\nexport interface MobileServerSocialFeedTradeCard extends MobileServerSocialFeedContentBase {\n /** Card discriminant. */\n kind: 'trade_card';\n /** Trading action. */\n action: MobileSocialFeedTradeCardAction;\n}\n\n/** Fields shared by size-change and liquidation trade rows. */\nexport interface MobileServerSocialFeedTradeRowBase extends MobileServerSocialFeedItemBase {\n /** Row discriminant. */\n kind: 'trade_row';\n /** Associated lifecycle UUID. */\n position_id: string;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Historical action leverage, not the position's current leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Historical leverage reference time. */\n leverage_at_ms: number | null;\n /** Number of aggregated trades. */\n trade_count: number;\n /** Absolute traded quantity in x18 units. */\n quantity_x18: string;\n /** Actual execution price in x18 units, never an Oracle substitution. */\n average_price_x18: string | null;\n}\n\n/** A size-change row or liquidation row with independently nullable financial facts. */\nexport type MobileServerSocialFeedTradeRow =\n MobileServerSocialFeedTradeRowBase &\n (\n | {\n /** Ordinary size-change action. */\n action: MobileSocialFeedTradeSizeChangeAction;\n /** Executed notional in x18 units. */\n notional_x18: string;\n }\n | {\n /** Liquidation discriminant. */\n action: 'liquidated';\n /** Quantity times event Oracle; null if that Oracle is unknown. */\n notional_x18: string | null;\n /** Entry cost immediately before the event, in x18 units. */\n entry_price_x18: string | null;\n /** Event Oracle used for display and size filtering. */\n liquidation_oracle_price_x18: string | null;\n /** Actual execution price, independent of Oracle. */\n liquidation_execution_price_x18: string | null;\n /** Signed action PnL excluding ordinary fees/funding, or null. */\n realized_pnl_delta_x18: string | null;\n }\n );\n\n/** Discriminated social feed content. */\nexport type MobileServerSocialFeedItem =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedTradeRow\n | MobileServerSocialFeedPost\n | MobileServerSocialFeedReply;\n\n/** Idle-renewed social feed reading session. Credentials and cursors must be returned unchanged. */\nexport interface MobileServerSocialFeedReadSession {\n /** Session identifier. */\n session_id: string;\n /** Feed, item, or full position history session. */\n mode: MobileSocialFeedReadSessionMode;\n /** Current idle expiration in Unix milliseconds; legitimate session requests renew it. */\n expires_at_ms: number;\n /** Initial update baseline, distinct from the page cursor. */\n update_cursor: string | null;\n /** Credential for this reading session. Do not log or cache publicly. */\n viewer_token: string;\n}\n\n/** Item delta: omitted means unchanged; explicit null clears a prior value. */\nexport interface MobileServerSocialFeedItemPatch {\n /** Updated reply attachment; null clears it, omission leaves it unchanged. */\n attached_position?: MobileServerSocialFeedPositionCard | null;\n /** Updated reply attachment visibility. */\n attachment_status?: MobileSocialFeedAttachmentStatus;\n /** Current author identity, follow state, and qualification badge. */\n author: MobileServerSocialFeedAuthor;\n /** Target item UUID. */\n item_id: string;\n /** Positive integer version string. */\n version: string;\n /** Updated interaction counters. */\n interaction?: MobileServerSocialFeedInteraction;\n /** Updated display timestamp; does not reorder the current list. */\n display_at_ms: number;\n /** Updated aggregate count. */\n trade_count?: number;\n /** Updated quantity in x18 units. */\n quantity_x18?: string;\n /** Updated notional; liquidation Oracle may be unknown. */\n notional_x18?: string | null;\n /** Updated actual execution price. */\n average_price_x18?: string | null;\n /** Historical liquidation entry cost. */\n entry_price_x18?: string | null;\n /** Updated liquidation Oracle. */\n liquidation_oracle_price_x18?: string | null;\n /** Updated actual liquidation execution price. */\n liquidation_execution_price_x18?: string | null;\n /** Updated signed action PnL. */\n realized_pnl_delta_x18?: string | null;\n /** Updated historical row leverage. */\n leverage?: MobileSocialFeedLeverage;\n /** Updated historical leverage reference time. */\n leverage_at_ms?: number | null;\n}\n\n/** A previously authorized target that can no longer be read; shared by wire and client responses. */\nexport interface MobileSocialFeedUnavailableTarget {\n /** Target kind. */\n type: MobileSocialFeedTargetType;\n /** Target UUID. */\n id: string;\n /** Uniform reason prevents leaking inaccessible content. */\n reason: 'unavailable';\n}\n\n/** Readable state of a reply's position attachment. */\nexport type MobileSocialFeedAttachmentStatus =\n | 'none'\n | 'visible'\n | 'unavailable';\n\n/** Supported chart candle intervals. */\nexport type MobileSocialFeedChartInterval =\n | '1m'\n | '5m'\n | '15m'\n | '1h'\n | '4h'\n | '1d';\n\n/** Position lifecycle action. */\nexport type MobileSocialFeedAction =\n | MobileSocialFeedTradeCardAction\n | 'liquidated';\n\n/** Result of resolving a position command. */\nexport type MobileSocialFeedPositionResolution =\n | 'resolved'\n | 'choose_position'\n | 'no_open_position'\n | 'unknown_market';\n\n/** Resolution of a viewing account's trading targets. */\nexport type MobileSocialFeedTradingResolution =\n | 'no_viewing_account'\n | 'none'\n | 'unique'\n | 'choose_position'\n | 'unavailable';\n\n/** Price source for a historical action marker. */\nexport type MobileSocialFeedActionPriceBasis =\n | 'execution'\n | 'liquidation_oracle';\n\n/** Chart source completeness; wholly unavailable sources fail the request. */\nexport type MobileSocialFeedChartDataQuality = 'ready' | 'partial';\n\n/** Projection state of an order's authoritative action segments. */\nexport type MobileSocialFeedActionResolution = 'ready' | 'pending';\n\n/** Explanation for an empty position command result. */\nexport type MobileSocialFeedPositionResolutionReason =\n | 'no_open_position'\n | 'unknown_market';\n\n/** Reason an action cannot be published. */\nexport type MobileSocialFeedActionUnavailableReason =\n | 'position_closed'\n | 'already_published'\n | 'unavailable';\n\n/** Availability of an estimated liquidation price. */\nexport type MobileSocialFeedLiquidationPriceQuality =\n | MobileSocialFeedPnlQuality\n | 'not_applicable';\n\n/** Presence lifecycle reported by an individual page. */\nexport type MobileSocialFeedPresenceState = 'watching' | 'heartbeat' | 'left';\n\n/** Mention offsets refer to Unicode code points in the original text, not UTF-16 indices. */\nexport interface MobileSocialFeedMention {\n /** Mentioned identity. */\n subaccount: Hex;\n /** Inclusive code point offset. */\n start: number;\n /** Exclusive code point offset. */\n end: number;\n /** Label matching the original text. */\n label: string;\n}\n\n/** Parsed drawing; data is opaque to the SDK and may legitimately be false or zero. */\nexport interface MobileServerSocialFeedDrawing {\n /** Already parsed drawing document; do not JSON.parse again. */\n data: unknown;\n /** Original creation time in milliseconds. */\n created_at_ms: number;\n /** Last update time in milliseconds. */\n updated_at_ms: number;\n}\n\n/** Nonrecursive root-post preview carried by replies. */\nexport interface MobileServerSocialFeedCompactCard {\n /** Root item UUID. */\n id: string;\n /** Root author. */\n author: MobileServerSocialFeedAuthor;\n /** Original text excerpt. */\n text_excerpt: string;\n /** Visible position summary, or null. */\n position: Pick<\n MobileServerSocialFeedPositionCard,\n 'position_id' | 'market' | 'direction' | 'state' | 'notional_x18'\n > | null;\n /** Whether the root has published analysis. */\n has_analysis: boolean;\n}\n\n/** Authored position post, including text-only, drawing-only, and combined content. */\nexport interface MobileServerSocialFeedPost extends MobileServerSocialFeedContentBase {\n /** Post discriminant. */\n kind: 'post';\n}\n\n/** Reply with independently permissioned position attachment and nonrecursive root preview. */\nexport interface MobileServerSocialFeedReply extends MobileServerSocialFeedItemBase {\n /** Reply discriminant. */\n kind: 'reply';\n /** Bound images in display order; empty when none. */\n images: MobileServerSocialFeedImage[];\n /** Original text. */\n text: string;\n /** Mentions in the text. */\n mentions: MobileSocialFeedMention[];\n /** Actual root item UUID. */\n root_item_id: string;\n /** Omitted for a direct reply to the root. */\n reply_to_item_id?: string;\n /** Author being replied to, or null. */\n reply_to_author: MobileServerSocialFeedAuthor | null;\n /** Readable attachment; null when absent or unavailable. */\n attached_position: MobileServerSocialFeedPositionCard | null;\n /** Distinguishes an absent attachment from an unreadable one. */\n attachment_status: MobileSocialFeedAttachmentStatus;\n /** Root preview; does not register root exposure. */\n original: MobileServerSocialFeedCompactCard;\n /** Reply interaction state. */\n interaction: MobileServerSocialFeedInteraction;\n}\n\n/** Top-level comment and all readable descendants from the same thread snapshot. */\nexport interface MobileServerSocialFeedCommentGroup extends MobileServerSocialFeedReply {\n /** Flat descendants in creation-time, depth, then UUID order; empty when none. */\n replies: MobileServerSocialFeedReply[];\n}\n\n/** Current eligibility hints; actual writes still recheck the signed author. */\nexport interface MobileServerSocialFeedPublishablePosition {\n /** Candidate position. */\n position: MobileServerSocialFeedPositionCard;\n /** Whether this account can publish. */\n can_publish: boolean;\n /** Whether this account can attach the position to a comment. */\n can_attach_to_comment: boolean;\n /** Whether this account can first add analysis. */\n can_draw_analysis: boolean;\n /** Unavailability explanation, or null. */\n unavailable_reason: string | null;\n}\n\n/** An authoritative lifecycle segment of an order. */\nexport interface MobileServerSocialFeedActionCandidate {\n /** Action UUID. */\n action_id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Current publishing eligibility, not proof of caller ownership. */\n can_publish: boolean;\n /** Publication restriction, or null when eligible. */\n unavailable_reason: MobileSocialFeedActionUnavailableReason | null;\n}\n\n/** Additional history metrics; unavailable values are not zero. */\nexport interface MobileServerSocialFeedHistoryMetrics {\n /** Estimated liquidation price in x18, independent of event Oracle and execution prices. */\n estimated_liquidation_price_x18: string | null;\n /** Availability of the estimated price. */\n liquidation_price_quality: MobileSocialFeedLiquidationPriceQuality;\n /** Source time in milliseconds. */\n liquidation_price_as_of_ms: number | null;\n /** Signed funding amount in x18. */\n funding_pnl_x18: string | null;\n /** Funding availability. */\n funding_quality: MobileSocialFeedPnlQuality;\n /** Funding source time in milliseconds. */\n funding_as_of_ms: number | null;\n}\n\n/** Full position card displayed above its historical timeline. */\nexport interface MobileServerSocialFeedPositionHistoryCard\n extends\n MobileServerSocialFeedPositionCard,\n MobileServerSocialFeedHistoryMetrics {}\n\n/** Persisted action facts, independent of whether a feed item was published. */\nexport interface MobileServerSocialFeedPositionAction {\n /** Action UUID. */\n id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Quantity before the action, in x18. */\n quantity_before_x18: string;\n /** Quantity after the action, in x18. */\n quantity_after_x18: string;\n /** Executed quantity, in x18. */\n executed_quantity_x18: string;\n /** Actual executed notional in x18; may be unknown for liquidation. */\n executed_notional_x18: string | null;\n /** Actual execution price in x18. */\n average_price_x18: string | null;\n /** Entry price before the action, in x18. */\n entry_price_before_x18: string | null;\n /** Liquidation event Oracle price in x18. */\n liquidation_oracle_price_x18: string | null;\n /** Liquidation Oracle-based notional in x18. */\n liquidation_notional_x18: string | null;\n /** Signed realized trading PnL in x18, excluding ordinary fees and funding. */\n realized_pnl_delta_x18: string | null;\n /** Historical effective leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage source time in milliseconds. */\n leverage_at_ms: number | null;\n /** First event time in milliseconds. */\n first_event_at_ms: number;\n /** Last event time in milliseconds. */\n last_event_at_ms: number;\n /** Decimal-string version. */\n version: string;\n}\n\n/** Full published content appearing in a position timeline. */\nexport type MobileServerSocialFeedHistoryTake =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedPost;\n\n/** A historical action or authored take; preserve service ordering. */\nexport type MobileServerSocialFeedTimelineEntry =\n | {\n /** Action entry. */\n kind: 'action';\n /** Full action facts. */\n action: MobileServerSocialFeedPositionAction;\n /** Actually associated feed item, or null. */\n related_item_id: string | null;\n /** Full published trade card, or null. */\n related_take: MobileServerSocialFeedTradeCard | null;\n }\n | {\n /** Published take entry. */\n kind: 'take';\n /** Full published content. */\n item: MobileServerSocialFeedHistoryTake;\n };\n\n/** Trusted trading target; this hint does not authorize trading. */\nexport interface MobileServerSocialFeedTradingTarget {\n /** Lifecycle UUID. */\n position_id: string;\n /** Parent identity. */\n identity_subaccount: Hex;\n /** Actual trading subaccount, possibly isolated. */\n trading_subaccount: Hex;\n /** Market product ID. */\n product_id: number;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Isolated name, or null for cross margin. */\n iso_subaccount_name: string | null;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Source time in milliseconds. */\n state_as_of_ms: number;\n}\n\n/** Viewing-account trading hints, not authenticated permissions. */\nexport interface MobileServerSocialFeedTradingContext {\n /** Market product ID. */\n product_id: number;\n /** Suggested trade direction. */\n suggested_direction: MobileFeedTradePositionDirection;\n /** Resolution of the viewing account's positions. */\n resolution: MobileSocialFeedTradingResolution;\n /** Trusted candidates. */\n candidates: MobileServerSocialFeedTradingTarget[];\n /** Unique candidate, or null. */\n viewer_position_id: string | null;\n /** Whether the selected account has a unique reducible position. */\n can_reduce: boolean;\n}\n\n/** Historical candle; volume is a quantity, not a price. */\nexport interface MobileServerSocialFeedCandle {\n /** Candle start time in milliseconds. */\n timestamp_ms: number;\n /** Open price in x18. */\n open_x18: string;\n /** High price in x18. */\n high_x18: string;\n /** Low price in x18. */\n low_x18: string;\n /** Close price in x18. */\n close_x18: string;\n /** Base asset volume in x18. */\n volume_x18: string;\n}\n\n/** Chart action marker with explicitly identified price basis. */\nexport interface MobileServerSocialFeedActionMarker {\n /** Action UUID. */\n action_id: string;\n /** Event time in milliseconds. */\n timestamp_ms: number;\n /** Price in x18; null does not remove the action. */\n price_x18: string | null;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Direction. */\n direction: MobileFeedTradePositionDirection;\n /** Never substitute actual execution for a liquidation Oracle. */\n price_basis: MobileSocialFeedActionPriceBasis;\n}\n\n/** Counts across the authorized position history. */\nexport interface MobileServerSocialFeedHistorySummary {\n /** Action count. */\n action_count: number;\n /** Published take count. */\n take_count: number;\n}\n\n/** Estimated liquidation price and its source time. */\nexport interface MobileServerSocialFeedEstimatedLiquidationLine {\n /** Estimated price in x18. */\n price_x18: string;\n /** Source time in milliseconds. */\n as_of_ms: number;\n}\n\n/** Half-open chart range, preserved across pages. */\nexport interface MobileServerSocialFeedChartRange {\n /** Inclusive start in milliseconds. */\n from_ms: number;\n /** Exclusive end in milliseconds. */\n to_ms: number;\n}\n"],"mappings":";;;AA0DA,MAAa,0CAA0C;CAAC;CAAI;CAAI;AAAE;;AAGlE,MAAa,0CAA0C;CACrD;CAAG;CAAK;CAAM;AAChB;;;;;AAwGA,MAAa,wCAAwC,CACnD,QACA,OACF;;;;;AAMA,MAAa,qCAAqC;CAChD;CACA;CACA;CACA;CACA;AACF;;;;;AAqBA,MAAa,2BAA2B,CAAC,SAAS,UAAU"}
@@ -1,2 +1,2 @@
1
- import { $ as MobileServerSocialFeedTradeRow, A as MobileServerSocialFeedCompactCard, At as MobileSocialFeedTradeSizeChangeAction, B as MobileServerSocialFeedItemPatch, C as MobileServerSocialFeedAuthor, Ct as MobileSocialFeedPositionResolutionReason, D as MobileServerSocialFeedCohort, Dt as MobileSocialFeedSourceCategory, E as MobileServerSocialFeedChartRange, Et as MobileSocialFeedReadSessionMode, F as MobileServerSocialFeedHistorySummary, Ft as MobileSocialFeedUnavailableTarget, G as MobileServerSocialFeedPositionHistoryCard, H as MobileServerSocialFeedPnl, I as MobileServerSocialFeedHistoryTake, J as MobileServerSocialFeedPublishablePosition, K as MobileServerSocialFeedPositionPatch, L as MobileServerSocialFeedInteraction, M as MobileServerSocialFeedDrawing, Mt as MobileSocialFeedTraderDataStatus, N as MobileServerSocialFeedEstimatedLiquidationLine, Nt as MobileSocialFeedTradingResolution, O as MobileServerSocialFeedCohortCoverage, Ot as MobileSocialFeedTargetType, P as MobileServerSocialFeedHistoryMetrics, Pt as MobileSocialFeedType, Q as MobileServerSocialFeedTradeCard, R as MobileServerSocialFeedItem, S as MobileServerSocialFeedActionMarker, St as MobileSocialFeedPositionResolution, T as MobileServerSocialFeedCapabilities, Tt as MobileSocialFeedPresenceState, U as MobileServerSocialFeedPositionAction, V as MobileServerSocialFeedMarket, W as MobileServerSocialFeedPositionCard, X as MobileServerSocialFeedReply, Y as MobileServerSocialFeedReadSession, Z as MobileServerSocialFeedTimelineEntry, _ as MobileServerNotificationCategoryPreference, _t as MobileSocialFeedMention, a as MobileFeedTradePosition, at as MobileSocialFeedAction, b as MobileServerProfile, bt as MobileSocialFeedPnlQuality, c as MobileNotificationCategory, ct as MobileSocialFeedActionUnavailableReason, d as MobileServerAvatarSelection, dt as MobileSocialFeedChartInterval, et as MobileServerSocialFeedTradeRowBase, f as MobileServerFeedMargin, ft as MobileSocialFeedCohortStatus, g as MobileServerIdentitySummary, gt as MobileSocialFeedMarketCategory, h as MobileServerFollowSummary, ht as MobileSocialFeedLiquidationPriceQuality, i as MobileFeedMarginMode, it as MobileServerSocialFeedViewTracking, j as MobileServerSocialFeedContentBase, jt as MobileSocialFeedTraderBadgeCode, k as MobileServerSocialFeedCommentPreview, kt as MobileSocialFeedTradeCardAction, l as MobileNotificationPlatform, lt as MobileSocialFeedAttachmentStatus, m as MobileServerFollowListAccount, mt as MobileSocialFeedLeverage, n as MOBILE_FEED_TRADE_POSITION_DIRECTIONS, nt as MobileServerSocialFeedTradingContext, o as MobileFeedTradePositionDirection, ot as MobileSocialFeedActionPriceBasis, p as MobileServerFeedTrade, pt as MobileSocialFeedHistoryQuality, q as MobileServerSocialFeedPost, r as MOBILE_FEED_TRADE_POSITION_EFFECTS, rt as MobileServerSocialFeedTradingTarget, s as MobileFeedTradePositionEffect, st as MobileSocialFeedActionResolution, t as MOBILE_FEED_MARGIN_MODES, tt as MobileServerSocialFeedTraderBadge, u as MobileServerAvatarPreset, ut as MobileSocialFeedChartDataQuality, v as MobileServerNotificationPreferenceScope, vt as MobileSocialFeedPnlBasis, w as MobileServerSocialFeedCandle, wt as MobileSocialFeedPositionState, x as MobileServerSocialFeedActionCandidate, xt as MobileSocialFeedPositionDisplayBasis, y as MobileServerNotificationPreferences, yt as MobileSocialFeedPnlMode, z as MobileServerSocialFeedItemBase } from "../serverModelTypes-CiA-dy1R.cjs";
2
- export { MOBILE_FEED_MARGIN_MODES, MOBILE_FEED_TRADE_POSITION_DIRECTIONS, MOBILE_FEED_TRADE_POSITION_EFFECTS, MobileFeedMarginMode, MobileFeedTradePosition, MobileFeedTradePositionDirection, MobileFeedTradePositionEffect, MobileNotificationCategory, MobileNotificationPlatform, MobileServerAvatarPreset, MobileServerAvatarSelection, MobileServerFeedMargin, MobileServerFeedTrade, MobileServerFollowListAccount, MobileServerFollowSummary, MobileServerIdentitySummary, MobileServerNotificationCategoryPreference, MobileServerNotificationPreferenceScope, MobileServerNotificationPreferences, MobileServerProfile, MobileServerSocialFeedActionCandidate, MobileServerSocialFeedActionMarker, MobileServerSocialFeedAuthor, MobileServerSocialFeedCandle, MobileServerSocialFeedCapabilities, MobileServerSocialFeedChartRange, MobileServerSocialFeedCohort, MobileServerSocialFeedCohortCoverage, MobileServerSocialFeedCommentPreview, MobileServerSocialFeedCompactCard, MobileServerSocialFeedContentBase, MobileServerSocialFeedDrawing, MobileServerSocialFeedEstimatedLiquidationLine, MobileServerSocialFeedHistoryMetrics, MobileServerSocialFeedHistorySummary, MobileServerSocialFeedHistoryTake, MobileServerSocialFeedInteraction, MobileServerSocialFeedItem, MobileServerSocialFeedItemBase, MobileServerSocialFeedItemPatch, MobileServerSocialFeedMarket, MobileServerSocialFeedPnl, MobileServerSocialFeedPositionAction, MobileServerSocialFeedPositionCard, MobileServerSocialFeedPositionHistoryCard, MobileServerSocialFeedPositionPatch, MobileServerSocialFeedPost, MobileServerSocialFeedPublishablePosition, MobileServerSocialFeedReadSession, MobileServerSocialFeedReply, MobileServerSocialFeedTimelineEntry, MobileServerSocialFeedTradeCard, MobileServerSocialFeedTradeRow, MobileServerSocialFeedTradeRowBase, MobileServerSocialFeedTraderBadge, MobileServerSocialFeedTradingContext, MobileServerSocialFeedTradingTarget, MobileServerSocialFeedViewTracking, MobileSocialFeedAction, MobileSocialFeedActionPriceBasis, MobileSocialFeedActionResolution, MobileSocialFeedActionUnavailableReason, MobileSocialFeedAttachmentStatus, MobileSocialFeedChartDataQuality, MobileSocialFeedChartInterval, MobileSocialFeedCohortStatus, MobileSocialFeedHistoryQuality, MobileSocialFeedLeverage, MobileSocialFeedLiquidationPriceQuality, MobileSocialFeedMarketCategory, MobileSocialFeedMention, MobileSocialFeedPnlBasis, MobileSocialFeedPnlMode, MobileSocialFeedPnlQuality, MobileSocialFeedPositionDisplayBasis, MobileSocialFeedPositionResolution, MobileSocialFeedPositionResolutionReason, MobileSocialFeedPositionState, MobileSocialFeedPresenceState, MobileSocialFeedReadSessionMode, MobileSocialFeedSourceCategory, MobileSocialFeedTargetType, MobileSocialFeedTradeCardAction, MobileSocialFeedTradeSizeChangeAction, MobileSocialFeedTraderBadgeCode, MobileSocialFeedTraderDataStatus, MobileSocialFeedTradingResolution, MobileSocialFeedType, MobileSocialFeedUnavailableTarget };
1
+ import { $ as MobileServerSocialFeedImage, $t as MobileSocialFeedUnavailableTarget, A as MobileServerNotificationPreferences, At as MobileSocialFeedCohortStatus, B as MobileServerSocialFeedChartRange, Bt as MobileSocialFeedPositionResolution, C as MobileServerIdentitySummary, Ct as MobileSocialFeedAction, D as MobileServerNotificationInboxItem, Dt as MobileSocialFeedAttachmentStatus, E as MobileServerNotificationDeviceMetadata, Et as MobileSocialFeedActionUnavailableReason, F as MobileServerSocialFeedActionCandidate, Ft as MobileSocialFeedMention, G as MobileServerSocialFeedCompactCard, Gt as MobileSocialFeedSourceCategory, H as MobileServerSocialFeedCohortCoverage, Ht as MobileSocialFeedPositionState, I as MobileServerSocialFeedActionMarker, It as MobileSocialFeedPnlBasis, J as MobileServerSocialFeedEstimatedLiquidationLine, Jt as MobileSocialFeedTradeSizeChangeAction, K as MobileServerSocialFeedContentBase, Kt as MobileSocialFeedTargetType, L as MobileServerSocialFeedAuthor, Lt as MobileSocialFeedPnlMode, M as MobileServerNotificationSettings, Mt as MobileSocialFeedLeverage, N as MobileServerProductEvent, Nt as MobileSocialFeedLiquidationPriceQuality, O as MobileServerNotificationPayloadV2, Ot as MobileSocialFeedChartDataQuality, P as MobileServerProfile, Pt as MobileSocialFeedMarketCategory, Q as MobileServerSocialFeedHistoryTake, Qt as MobileSocialFeedType, R as MobileServerSocialFeedCandle, Rt as MobileSocialFeedPnlQuality, S as MobileServerFollowSummary, St as MobileServerSocialFeedUploadedImage, T as MobileServerNotificationCategoryPreference, Tt as MobileSocialFeedActionResolution, U as MobileServerSocialFeedCommentGroup, Ut as MobileSocialFeedPresenceState, V as MobileServerSocialFeedCohort, Vt as MobileSocialFeedPositionResolutionReason, W as MobileServerSocialFeedCommentPreview, Wt as MobileSocialFeedReadSessionMode, X as MobileServerSocialFeedHistoryMetrics, Xt as MobileSocialFeedTraderDataStatus, Y as MobileServerSocialFeedExternalImage, Yt as MobileSocialFeedTraderBadgeCode, Z as MobileServerSocialFeedHistorySummary, Zt as MobileSocialFeedTradingResolution, _ as MobileServerAvatarPreset, _t as MobileServerSocialFeedTradeRow, a as MOBILE_NOTIFICATION_POSITION_THRESHOLDS, at as MobileServerSocialFeedMarket, b as MobileServerFeedTrade, bt as MobileServerSocialFeedTradingContext, c as MobileFeedTradePositionDirection, ct as MobileServerSocialFeedPositionCard, d as MobileNotificationMinTradeSizeUsd, dt as MobileServerSocialFeedPost, et as MobileServerSocialFeedImageThumbnail, f as MobileNotificationPlatform, ft as MobileServerSocialFeedPublishablePosition, g as MobileProductEventName, gt as MobileServerSocialFeedTradeCard, h as MobileNotificationTypeId, ht as MobileServerSocialFeedTimelineEntry, i as MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD, it as MobileServerSocialFeedItemPatch, j as MobileServerNotificationRoute, jt as MobileSocialFeedHistoryQuality, k as MobileServerNotificationPreferenceScope, kt as MobileSocialFeedChartInterval, l as MobileFeedTradePositionEffect, lt as MobileServerSocialFeedPositionHistoryCard, m as MobileNotificationRouteName, mt as MobileServerSocialFeedReply, n as MOBILE_FEED_TRADE_POSITION_DIRECTIONS, nt as MobileServerSocialFeedItem, o as MobileFeedMarginMode, ot as MobileServerSocialFeedPnl, p as MobileNotificationPositionThreshold, pt as MobileServerSocialFeedReadSession, q as MobileServerSocialFeedDrawing, qt as MobileSocialFeedTradeCardAction, r as MOBILE_FEED_TRADE_POSITION_EFFECTS, rt as MobileServerSocialFeedItemBase, s as MobileFeedTradePosition, st as MobileServerSocialFeedPositionAction, t as MOBILE_FEED_MARGIN_MODES, tt as MobileServerSocialFeedInteraction, u as MobileNotificationCategory, ut as MobileServerSocialFeedPositionPatch, v as MobileServerAvatarSelection, vt as MobileServerSocialFeedTradeRowBase, w as MobileServerNotificationCapabilities, wt as MobileSocialFeedActionPriceBasis, x as MobileServerFollowListAccount, xt as MobileServerSocialFeedTradingTarget, y as MobileServerFeedMargin, yt as MobileServerSocialFeedTraderBadge, z as MobileServerSocialFeedCapabilities, zt as MobileSocialFeedPositionDisplayBasis } from "../serverModelTypes-CTHMNIQS.cjs";
2
+ export { MOBILE_FEED_MARGIN_MODES, MOBILE_FEED_TRADE_POSITION_DIRECTIONS, MOBILE_FEED_TRADE_POSITION_EFFECTS, MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD, MOBILE_NOTIFICATION_POSITION_THRESHOLDS, MobileFeedMarginMode, MobileFeedTradePosition, MobileFeedTradePositionDirection, MobileFeedTradePositionEffect, MobileNotificationCategory, MobileNotificationMinTradeSizeUsd, MobileNotificationPlatform, MobileNotificationPositionThreshold, MobileNotificationRouteName, MobileNotificationTypeId, MobileProductEventName, MobileServerAvatarPreset, MobileServerAvatarSelection, MobileServerFeedMargin, MobileServerFeedTrade, MobileServerFollowListAccount, MobileServerFollowSummary, MobileServerIdentitySummary, MobileServerNotificationCapabilities, MobileServerNotificationCategoryPreference, MobileServerNotificationDeviceMetadata, MobileServerNotificationInboxItem, MobileServerNotificationPayloadV2, MobileServerNotificationPreferenceScope, MobileServerNotificationPreferences, MobileServerNotificationRoute, MobileServerNotificationSettings, MobileServerProductEvent, MobileServerProfile, MobileServerSocialFeedActionCandidate, MobileServerSocialFeedActionMarker, MobileServerSocialFeedAuthor, MobileServerSocialFeedCandle, MobileServerSocialFeedCapabilities, MobileServerSocialFeedChartRange, MobileServerSocialFeedCohort, MobileServerSocialFeedCohortCoverage, MobileServerSocialFeedCommentGroup, MobileServerSocialFeedCommentPreview, MobileServerSocialFeedCompactCard, MobileServerSocialFeedContentBase, MobileServerSocialFeedDrawing, MobileServerSocialFeedEstimatedLiquidationLine, MobileServerSocialFeedExternalImage, MobileServerSocialFeedHistoryMetrics, MobileServerSocialFeedHistorySummary, MobileServerSocialFeedHistoryTake, MobileServerSocialFeedImage, MobileServerSocialFeedImageThumbnail, MobileServerSocialFeedInteraction, MobileServerSocialFeedItem, MobileServerSocialFeedItemBase, MobileServerSocialFeedItemPatch, MobileServerSocialFeedMarket, MobileServerSocialFeedPnl, MobileServerSocialFeedPositionAction, MobileServerSocialFeedPositionCard, MobileServerSocialFeedPositionHistoryCard, MobileServerSocialFeedPositionPatch, MobileServerSocialFeedPost, MobileServerSocialFeedPublishablePosition, MobileServerSocialFeedReadSession, MobileServerSocialFeedReply, MobileServerSocialFeedTimelineEntry, MobileServerSocialFeedTradeCard, MobileServerSocialFeedTradeRow, MobileServerSocialFeedTradeRowBase, MobileServerSocialFeedTraderBadge, MobileServerSocialFeedTradingContext, MobileServerSocialFeedTradingTarget, MobileServerSocialFeedUploadedImage, MobileSocialFeedAction, MobileSocialFeedActionPriceBasis, MobileSocialFeedActionResolution, MobileSocialFeedActionUnavailableReason, MobileSocialFeedAttachmentStatus, MobileSocialFeedChartDataQuality, MobileSocialFeedChartInterval, MobileSocialFeedCohortStatus, MobileSocialFeedHistoryQuality, MobileSocialFeedLeverage, MobileSocialFeedLiquidationPriceQuality, MobileSocialFeedMarketCategory, MobileSocialFeedMention, MobileSocialFeedPnlBasis, MobileSocialFeedPnlMode, MobileSocialFeedPnlQuality, MobileSocialFeedPositionDisplayBasis, MobileSocialFeedPositionResolution, MobileSocialFeedPositionResolutionReason, MobileSocialFeedPositionState, MobileSocialFeedPresenceState, MobileSocialFeedReadSessionMode, MobileSocialFeedSourceCategory, MobileSocialFeedTargetType, MobileSocialFeedTradeCardAction, MobileSocialFeedTradeSizeChangeAction, MobileSocialFeedTraderBadgeCode, MobileSocialFeedTraderDataStatus, MobileSocialFeedTradingResolution, MobileSocialFeedType, MobileSocialFeedUnavailableTarget };
@@ -1,2 +1,2 @@
1
- import { $ as MobileServerSocialFeedTradeRow, A as MobileServerSocialFeedCompactCard, At as MobileSocialFeedTradeSizeChangeAction, B as MobileServerSocialFeedItemPatch, C as MobileServerSocialFeedAuthor, Ct as MobileSocialFeedPositionResolutionReason, D as MobileServerSocialFeedCohort, Dt as MobileSocialFeedSourceCategory, E as MobileServerSocialFeedChartRange, Et as MobileSocialFeedReadSessionMode, F as MobileServerSocialFeedHistorySummary, Ft as MobileSocialFeedUnavailableTarget, G as MobileServerSocialFeedPositionHistoryCard, H as MobileServerSocialFeedPnl, I as MobileServerSocialFeedHistoryTake, J as MobileServerSocialFeedPublishablePosition, K as MobileServerSocialFeedPositionPatch, L as MobileServerSocialFeedInteraction, M as MobileServerSocialFeedDrawing, Mt as MobileSocialFeedTraderDataStatus, N as MobileServerSocialFeedEstimatedLiquidationLine, Nt as MobileSocialFeedTradingResolution, O as MobileServerSocialFeedCohortCoverage, Ot as MobileSocialFeedTargetType, P as MobileServerSocialFeedHistoryMetrics, Pt as MobileSocialFeedType, Q as MobileServerSocialFeedTradeCard, R as MobileServerSocialFeedItem, S as MobileServerSocialFeedActionMarker, St as MobileSocialFeedPositionResolution, T as MobileServerSocialFeedCapabilities, Tt as MobileSocialFeedPresenceState, U as MobileServerSocialFeedPositionAction, V as MobileServerSocialFeedMarket, W as MobileServerSocialFeedPositionCard, X as MobileServerSocialFeedReply, Y as MobileServerSocialFeedReadSession, Z as MobileServerSocialFeedTimelineEntry, _ as MobileServerNotificationCategoryPreference, _t as MobileSocialFeedMention, a as MobileFeedTradePosition, at as MobileSocialFeedAction, b as MobileServerProfile, bt as MobileSocialFeedPnlQuality, c as MobileNotificationCategory, ct as MobileSocialFeedActionUnavailableReason, d as MobileServerAvatarSelection, dt as MobileSocialFeedChartInterval, et as MobileServerSocialFeedTradeRowBase, f as MobileServerFeedMargin, ft as MobileSocialFeedCohortStatus, g as MobileServerIdentitySummary, gt as MobileSocialFeedMarketCategory, h as MobileServerFollowSummary, ht as MobileSocialFeedLiquidationPriceQuality, i as MobileFeedMarginMode, it as MobileServerSocialFeedViewTracking, j as MobileServerSocialFeedContentBase, jt as MobileSocialFeedTraderBadgeCode, k as MobileServerSocialFeedCommentPreview, kt as MobileSocialFeedTradeCardAction, l as MobileNotificationPlatform, lt as MobileSocialFeedAttachmentStatus, m as MobileServerFollowListAccount, mt as MobileSocialFeedLeverage, n as MOBILE_FEED_TRADE_POSITION_DIRECTIONS, nt as MobileServerSocialFeedTradingContext, o as MobileFeedTradePositionDirection, ot as MobileSocialFeedActionPriceBasis, p as MobileServerFeedTrade, pt as MobileSocialFeedHistoryQuality, q as MobileServerSocialFeedPost, r as MOBILE_FEED_TRADE_POSITION_EFFECTS, rt as MobileServerSocialFeedTradingTarget, s as MobileFeedTradePositionEffect, st as MobileSocialFeedActionResolution, t as MOBILE_FEED_MARGIN_MODES, tt as MobileServerSocialFeedTraderBadge, u as MobileServerAvatarPreset, ut as MobileSocialFeedChartDataQuality, v as MobileServerNotificationPreferenceScope, vt as MobileSocialFeedPnlBasis, w as MobileServerSocialFeedCandle, wt as MobileSocialFeedPositionState, x as MobileServerSocialFeedActionCandidate, xt as MobileSocialFeedPositionDisplayBasis, y as MobileServerNotificationPreferences, yt as MobileSocialFeedPnlMode, z as MobileServerSocialFeedItemBase } from "../serverModelTypes-CiA-dy1R.js";
2
- export { MOBILE_FEED_MARGIN_MODES, MOBILE_FEED_TRADE_POSITION_DIRECTIONS, MOBILE_FEED_TRADE_POSITION_EFFECTS, MobileFeedMarginMode, MobileFeedTradePosition, MobileFeedTradePositionDirection, MobileFeedTradePositionEffect, MobileNotificationCategory, MobileNotificationPlatform, MobileServerAvatarPreset, MobileServerAvatarSelection, MobileServerFeedMargin, MobileServerFeedTrade, MobileServerFollowListAccount, MobileServerFollowSummary, MobileServerIdentitySummary, MobileServerNotificationCategoryPreference, MobileServerNotificationPreferenceScope, MobileServerNotificationPreferences, MobileServerProfile, MobileServerSocialFeedActionCandidate, MobileServerSocialFeedActionMarker, MobileServerSocialFeedAuthor, MobileServerSocialFeedCandle, MobileServerSocialFeedCapabilities, MobileServerSocialFeedChartRange, MobileServerSocialFeedCohort, MobileServerSocialFeedCohortCoverage, MobileServerSocialFeedCommentPreview, MobileServerSocialFeedCompactCard, MobileServerSocialFeedContentBase, MobileServerSocialFeedDrawing, MobileServerSocialFeedEstimatedLiquidationLine, MobileServerSocialFeedHistoryMetrics, MobileServerSocialFeedHistorySummary, MobileServerSocialFeedHistoryTake, MobileServerSocialFeedInteraction, MobileServerSocialFeedItem, MobileServerSocialFeedItemBase, MobileServerSocialFeedItemPatch, MobileServerSocialFeedMarket, MobileServerSocialFeedPnl, MobileServerSocialFeedPositionAction, MobileServerSocialFeedPositionCard, MobileServerSocialFeedPositionHistoryCard, MobileServerSocialFeedPositionPatch, MobileServerSocialFeedPost, MobileServerSocialFeedPublishablePosition, MobileServerSocialFeedReadSession, MobileServerSocialFeedReply, MobileServerSocialFeedTimelineEntry, MobileServerSocialFeedTradeCard, MobileServerSocialFeedTradeRow, MobileServerSocialFeedTradeRowBase, MobileServerSocialFeedTraderBadge, MobileServerSocialFeedTradingContext, MobileServerSocialFeedTradingTarget, MobileServerSocialFeedViewTracking, MobileSocialFeedAction, MobileSocialFeedActionPriceBasis, MobileSocialFeedActionResolution, MobileSocialFeedActionUnavailableReason, MobileSocialFeedAttachmentStatus, MobileSocialFeedChartDataQuality, MobileSocialFeedChartInterval, MobileSocialFeedCohortStatus, MobileSocialFeedHistoryQuality, MobileSocialFeedLeverage, MobileSocialFeedLiquidationPriceQuality, MobileSocialFeedMarketCategory, MobileSocialFeedMention, MobileSocialFeedPnlBasis, MobileSocialFeedPnlMode, MobileSocialFeedPnlQuality, MobileSocialFeedPositionDisplayBasis, MobileSocialFeedPositionResolution, MobileSocialFeedPositionResolutionReason, MobileSocialFeedPositionState, MobileSocialFeedPresenceState, MobileSocialFeedReadSessionMode, MobileSocialFeedSourceCategory, MobileSocialFeedTargetType, MobileSocialFeedTradeCardAction, MobileSocialFeedTradeSizeChangeAction, MobileSocialFeedTraderBadgeCode, MobileSocialFeedTraderDataStatus, MobileSocialFeedTradingResolution, MobileSocialFeedType, MobileSocialFeedUnavailableTarget };
1
+ import { $ as MobileServerSocialFeedImage, $t as MobileSocialFeedUnavailableTarget, A as MobileServerNotificationPreferences, At as MobileSocialFeedCohortStatus, B as MobileServerSocialFeedChartRange, Bt as MobileSocialFeedPositionResolution, C as MobileServerIdentitySummary, Ct as MobileSocialFeedAction, D as MobileServerNotificationInboxItem, Dt as MobileSocialFeedAttachmentStatus, E as MobileServerNotificationDeviceMetadata, Et as MobileSocialFeedActionUnavailableReason, F as MobileServerSocialFeedActionCandidate, Ft as MobileSocialFeedMention, G as MobileServerSocialFeedCompactCard, Gt as MobileSocialFeedSourceCategory, H as MobileServerSocialFeedCohortCoverage, Ht as MobileSocialFeedPositionState, I as MobileServerSocialFeedActionMarker, It as MobileSocialFeedPnlBasis, J as MobileServerSocialFeedEstimatedLiquidationLine, Jt as MobileSocialFeedTradeSizeChangeAction, K as MobileServerSocialFeedContentBase, Kt as MobileSocialFeedTargetType, L as MobileServerSocialFeedAuthor, Lt as MobileSocialFeedPnlMode, M as MobileServerNotificationSettings, Mt as MobileSocialFeedLeverage, N as MobileServerProductEvent, Nt as MobileSocialFeedLiquidationPriceQuality, O as MobileServerNotificationPayloadV2, Ot as MobileSocialFeedChartDataQuality, P as MobileServerProfile, Pt as MobileSocialFeedMarketCategory, Q as MobileServerSocialFeedHistoryTake, Qt as MobileSocialFeedType, R as MobileServerSocialFeedCandle, Rt as MobileSocialFeedPnlQuality, S as MobileServerFollowSummary, St as MobileServerSocialFeedUploadedImage, T as MobileServerNotificationCategoryPreference, Tt as MobileSocialFeedActionResolution, U as MobileServerSocialFeedCommentGroup, Ut as MobileSocialFeedPresenceState, V as MobileServerSocialFeedCohort, Vt as MobileSocialFeedPositionResolutionReason, W as MobileServerSocialFeedCommentPreview, Wt as MobileSocialFeedReadSessionMode, X as MobileServerSocialFeedHistoryMetrics, Xt as MobileSocialFeedTraderDataStatus, Y as MobileServerSocialFeedExternalImage, Yt as MobileSocialFeedTraderBadgeCode, Z as MobileServerSocialFeedHistorySummary, Zt as MobileSocialFeedTradingResolution, _ as MobileServerAvatarPreset, _t as MobileServerSocialFeedTradeRow, a as MOBILE_NOTIFICATION_POSITION_THRESHOLDS, at as MobileServerSocialFeedMarket, b as MobileServerFeedTrade, bt as MobileServerSocialFeedTradingContext, c as MobileFeedTradePositionDirection, ct as MobileServerSocialFeedPositionCard, d as MobileNotificationMinTradeSizeUsd, dt as MobileServerSocialFeedPost, et as MobileServerSocialFeedImageThumbnail, f as MobileNotificationPlatform, ft as MobileServerSocialFeedPublishablePosition, g as MobileProductEventName, gt as MobileServerSocialFeedTradeCard, h as MobileNotificationTypeId, ht as MobileServerSocialFeedTimelineEntry, i as MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD, it as MobileServerSocialFeedItemPatch, j as MobileServerNotificationRoute, jt as MobileSocialFeedHistoryQuality, k as MobileServerNotificationPreferenceScope, kt as MobileSocialFeedChartInterval, l as MobileFeedTradePositionEffect, lt as MobileServerSocialFeedPositionHistoryCard, m as MobileNotificationRouteName, mt as MobileServerSocialFeedReply, n as MOBILE_FEED_TRADE_POSITION_DIRECTIONS, nt as MobileServerSocialFeedItem, o as MobileFeedMarginMode, ot as MobileServerSocialFeedPnl, p as MobileNotificationPositionThreshold, pt as MobileServerSocialFeedReadSession, q as MobileServerSocialFeedDrawing, qt as MobileSocialFeedTradeCardAction, r as MOBILE_FEED_TRADE_POSITION_EFFECTS, rt as MobileServerSocialFeedItemBase, s as MobileFeedTradePosition, st as MobileServerSocialFeedPositionAction, t as MOBILE_FEED_MARGIN_MODES, tt as MobileServerSocialFeedInteraction, u as MobileNotificationCategory, ut as MobileServerSocialFeedPositionPatch, v as MobileServerAvatarSelection, vt as MobileServerSocialFeedTradeRowBase, w as MobileServerNotificationCapabilities, wt as MobileSocialFeedActionPriceBasis, x as MobileServerFollowListAccount, xt as MobileServerSocialFeedTradingTarget, y as MobileServerFeedMargin, yt as MobileServerSocialFeedTraderBadge, z as MobileServerSocialFeedCapabilities, zt as MobileSocialFeedPositionDisplayBasis } from "../serverModelTypes-CTHMNIQS.js";
2
+ export { MOBILE_FEED_MARGIN_MODES, MOBILE_FEED_TRADE_POSITION_DIRECTIONS, MOBILE_FEED_TRADE_POSITION_EFFECTS, MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD, MOBILE_NOTIFICATION_POSITION_THRESHOLDS, MobileFeedMarginMode, MobileFeedTradePosition, MobileFeedTradePositionDirection, MobileFeedTradePositionEffect, MobileNotificationCategory, MobileNotificationMinTradeSizeUsd, MobileNotificationPlatform, MobileNotificationPositionThreshold, MobileNotificationRouteName, MobileNotificationTypeId, MobileProductEventName, MobileServerAvatarPreset, MobileServerAvatarSelection, MobileServerFeedMargin, MobileServerFeedTrade, MobileServerFollowListAccount, MobileServerFollowSummary, MobileServerIdentitySummary, MobileServerNotificationCapabilities, MobileServerNotificationCategoryPreference, MobileServerNotificationDeviceMetadata, MobileServerNotificationInboxItem, MobileServerNotificationPayloadV2, MobileServerNotificationPreferenceScope, MobileServerNotificationPreferences, MobileServerNotificationRoute, MobileServerNotificationSettings, MobileServerProductEvent, MobileServerProfile, MobileServerSocialFeedActionCandidate, MobileServerSocialFeedActionMarker, MobileServerSocialFeedAuthor, MobileServerSocialFeedCandle, MobileServerSocialFeedCapabilities, MobileServerSocialFeedChartRange, MobileServerSocialFeedCohort, MobileServerSocialFeedCohortCoverage, MobileServerSocialFeedCommentGroup, MobileServerSocialFeedCommentPreview, MobileServerSocialFeedCompactCard, MobileServerSocialFeedContentBase, MobileServerSocialFeedDrawing, MobileServerSocialFeedEstimatedLiquidationLine, MobileServerSocialFeedExternalImage, MobileServerSocialFeedHistoryMetrics, MobileServerSocialFeedHistorySummary, MobileServerSocialFeedHistoryTake, MobileServerSocialFeedImage, MobileServerSocialFeedImageThumbnail, MobileServerSocialFeedInteraction, MobileServerSocialFeedItem, MobileServerSocialFeedItemBase, MobileServerSocialFeedItemPatch, MobileServerSocialFeedMarket, MobileServerSocialFeedPnl, MobileServerSocialFeedPositionAction, MobileServerSocialFeedPositionCard, MobileServerSocialFeedPositionHistoryCard, MobileServerSocialFeedPositionPatch, MobileServerSocialFeedPost, MobileServerSocialFeedPublishablePosition, MobileServerSocialFeedReadSession, MobileServerSocialFeedReply, MobileServerSocialFeedTimelineEntry, MobileServerSocialFeedTradeCard, MobileServerSocialFeedTradeRow, MobileServerSocialFeedTradeRowBase, MobileServerSocialFeedTraderBadge, MobileServerSocialFeedTradingContext, MobileServerSocialFeedTradingTarget, MobileServerSocialFeedUploadedImage, MobileSocialFeedAction, MobileSocialFeedActionPriceBasis, MobileSocialFeedActionResolution, MobileSocialFeedActionUnavailableReason, MobileSocialFeedAttachmentStatus, MobileSocialFeedChartDataQuality, MobileSocialFeedChartInterval, MobileSocialFeedCohortStatus, MobileSocialFeedHistoryQuality, MobileSocialFeedLeverage, MobileSocialFeedLiquidationPriceQuality, MobileSocialFeedMarketCategory, MobileSocialFeedMention, MobileSocialFeedPnlBasis, MobileSocialFeedPnlMode, MobileSocialFeedPnlQuality, MobileSocialFeedPositionDisplayBasis, MobileSocialFeedPositionResolution, MobileSocialFeedPositionResolutionReason, MobileSocialFeedPositionState, MobileSocialFeedPresenceState, MobileSocialFeedReadSessionMode, MobileSocialFeedSourceCategory, MobileSocialFeedTargetType, MobileSocialFeedTradeCardAction, MobileSocialFeedTradeSizeChangeAction, MobileSocialFeedTraderBadgeCode, MobileSocialFeedTraderDataStatus, MobileSocialFeedTradingResolution, MobileSocialFeedType, MobileSocialFeedUnavailableTarget };
@@ -1,4 +1,17 @@
1
1
  //#region src/types/serverModelTypes.ts
2
+ /** Position milestone options supported by notification settings. */
3
+ const MOBILE_NOTIFICATION_POSITION_THRESHOLDS = [
4
+ 10,
5
+ 25,
6
+ 50
7
+ ];
8
+ /** Minimum trade-size options, in whole USD, supported by notification settings. */
9
+ const MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD = [
10
+ 0,
11
+ 100,
12
+ 1e3,
13
+ 1e4
14
+ ];
2
15
  /**
3
16
  * Every {@link MobileFeedTradePositionDirection} the feed can report, for callers that need the values at
4
17
  * runtime (validation, filters, UI enumeration).
@@ -21,6 +34,6 @@ const MOBILE_FEED_TRADE_POSITION_EFFECTS = [
21
34
  */
22
35
  const MOBILE_FEED_MARGIN_MODES = ["cross", "isolated"];
23
36
  //#endregion
24
- export { MOBILE_FEED_MARGIN_MODES, MOBILE_FEED_TRADE_POSITION_DIRECTIONS, MOBILE_FEED_TRADE_POSITION_EFFECTS };
37
+ export { MOBILE_FEED_MARGIN_MODES, MOBILE_FEED_TRADE_POSITION_DIRECTIONS, MOBILE_FEED_TRADE_POSITION_EFFECTS, MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD, MOBILE_NOTIFICATION_POSITION_THRESHOLDS };
25
38
 
26
39
  //# sourceMappingURL=serverModelTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverModelTypes.js","names":[],"sources":["../../src/types/serverModelTypes.ts"],"sourcesContent":["import { BalanceSide } from '@nadohq/shared';\nimport { Hex } from 'viem';\n\n/**\n * Server-side avatar selection, shared by request mapping and signing.\n */\nexport type MobileServerAvatarSelection =\n | {\n /** Shared catalogue selection. */\n type: 'preset';\n /** Stable catalogue ID. */\n id: string;\n }\n | {\n /** Uploaded image awaiting publication. */\n type: 'upload';\n /** Staging key returned by create_avatar_upload. */\n upload_key: string;\n };\n\n/**\n * Server-owned avatar preset in catalogue order.\n */\nexport interface MobileServerAvatarPreset {\n /** Stable catalogue ID used when selecting this preset. */\n id: string;\n /** Public image URL. */\n avatar_url: string;\n}\n\n/**\n * Platform of a device registered for push notifications.\n */\nexport type MobileNotificationPlatform = 'ios' | 'android';\n\n/**\n * Category of push notification.\n */\nexport type MobileNotificationCategory =\n | 'order_fill'\n | 'order_update'\n | 'liquidation'\n | 'funding'\n | 'product_listing'\n | 'announcement';\n\n/**\n * Server-side identity summary (snake_case): the read-time identity fields the backend attaches to a\n * subaccount wherever it surfaces one alongside other data. Name fields are `null` until the subaccount\n * claims a username, and a rename shows up on the next read without any change to the surrounding record.\n */\nexport interface MobileServerIdentitySummary {\n subaccount: Hex;\n username: string | null;\n display_name: string | null;\n /** Published avatar URL, or null when the account has no saved avatar. */\n avatar_url: string | null;\n}\n\n/**\n * Server-side follow summary (snake_case), nested in a `profiles` entry when the `follow_summary` include is\n * requested. `is_following` is the direct `view_as -> this profile` relationship; every `followed_by` entry\n * satisfies both `view_as -> entry` and `entry -> this profile`, so each one is already familiar to the\n * viewer and carries no `is_following` of its own.\n */\nexport interface MobileServerFollowSummary {\n is_following: boolean;\n /** Exact size of the two-edge intersection, independent of how many previews came back. */\n followed_by_count: number;\n /** Capped at `MOBILE_FOLLOWED_BY_PREVIEW_LIMIT` (2) by the backend; not client-configurable. */\n followed_by: MobileServerIdentitySummary[];\n}\n\n/**\n * Server-side public profile shape (snake_case), shared by the singular `profile` and batched `profiles`\n * queries. Name fields are `null` until the subaccount claims a username; a subaccount with no identity row\n * still yields an entry, with `null` names and `private_mode: false`.\n *\n * The three optional fields are omitted from the wire entirely unless the matching `profiles` include asked\n * for them, which is why they are optional rather than nullable — absent means \"not requested\", not \"none\".\n * The singular `profile` query never returns any of them.\n */\nexport interface MobileServerProfile extends MobileServerIdentitySummary {\n private_mode: boolean;\n /** Plain-text biography, or null when unset. */\n bio: string | null;\n /**\n * Exact count at query time — the backend counts rather than reading a cached counter. Unnamed and private\n * accounts are included: Private Mode hides activity, not relationships. Requires `follow_counts`.\n */\n follower_count?: number;\n following_count?: number;\n /** Requires the `follow_summary` include, and is relative to that include's `view_as`. */\n follow_summary?: MobileServerFollowSummary;\n}\n\n/**\n * Server-side row of a Followers or Following page (snake_case).\n */\nexport interface MobileServerFollowListAccount {\n identity: MobileServerIdentitySummary;\n /**\n * The `view_as` Viewer's relationship to this account, not the listed relationship that put it in the\n * page, so it is `false` on the Viewer's own row. Omitted entirely when the request named no `view_as`,\n * rather than being sent as a misleading `false`.\n */\n is_following?: boolean;\n /** The listed account's own follower count, exact at query time. */\n follower_count: number;\n}\n\n/**\n * Direction of the position a feed trade resulted in — for `closed`, the direction that was closed. This is\n * NOT the execution buy/sell side, which the feed does not expose. Aliases {@link BalanceSide} so the feed's\n * direction values stay in lockstep with the rest of the SDK.\n */\nexport type MobileFeedTradePositionDirection = BalanceSide;\n\n/**\n * Every {@link MobileFeedTradePositionDirection} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_DIRECTIONS = [\n 'long',\n 'short',\n] as const satisfies readonly MobileFeedTradePositionDirection[];\n\n/**\n * Every {@link MobileFeedTradePositionEffect} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_EFFECTS = [\n 'opened',\n 'increased',\n 'reduced',\n 'closed',\n 'flipped',\n] as const;\n\n/**\n * How a feed trade changed the trader's position in the product.\n */\nexport type MobileFeedTradePositionEffect =\n (typeof MOBILE_FEED_TRADE_POSITION_EFFECTS)[number];\n\n/**\n * Position change of a feed trade. Both keys are single words, so the wire and client shapes are identical\n * and this type is shared by {@link MobileServerFeedTrade} and the client-side `MobileFeedTrade`.\n */\nexport interface MobileFeedTradePosition {\n direction: MobileFeedTradePositionDirection;\n effect: MobileFeedTradePositionEffect;\n}\n\n/**\n * Every {@link MobileFeedMarginMode} the feed can report, for callers that need the values at runtime\n * (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_MARGIN_MODES = ['cross', 'isolated'] as const;\n\n/**\n * Margin mode a feed trade was executed under. Shared by the wire and client margin shapes.\n */\nexport type MobileFeedMarginMode = (typeof MOBILE_FEED_MARGIN_MODES)[number];\n\n/**\n * Server-side margin of a feed trade. Branch on `mode` — do not infer isolated state from leverage presence:\n * `estimated_leverage` (a rounded whole-number estimate, not exact submitted leverage) is omitted on `cross`,\n * and also omitted inside `isolated` when no estimate is available.\n */\nexport interface MobileServerFeedMargin {\n mode: MobileFeedMarginMode;\n estimated_leverage?: number;\n}\n\n/**\n * Server-side feed trade shape (snake_case): one row per order digest, enriched at read time with the\n * trader's current identity. Amounts are display-oriented human-unit JSON numbers — do not use them for\n * accounting, order construction, or exact threshold decisions.\n */\nexport interface MobileServerFeedTrade extends MobileServerIdentitySummary {\n /** Order digest this row is keyed by; the stable id clients use to reconcile live pagination. */\n order_digest: Hex;\n product_id: number;\n /** Executed quantity in human units. */\n quantity: number;\n /** Trade notional in whole-dollar human units. */\n notional: number;\n /** Average execution price in human units. */\n average_price: number;\n margin: MobileServerFeedMargin;\n position: MobileFeedTradePosition;\n /** Realized PnL of the trade in human units; can be negative. */\n realized_pnl: number;\n /** Fill time as JavaScript-safe integer Unix milliseconds. */\n filled_at_ms: number;\n}\n\n/**\n * Server-side scope limiting a notification category preference. Scopes are rejected by the backend for the\n * MVP (`scopes` must be empty) but are part of the wire format.\n */\nexport type MobileServerNotificationPreferenceScope =\n | { type: 'subaccount'; subaccount: Hex }\n | { type: 'product'; product_id: number };\n\n/**\n * Server-side per-category notification preference (snake_case).\n */\nexport interface MobileServerNotificationCategoryPreference {\n category: MobileNotificationCategory;\n enabled: boolean;\n scopes: MobileServerNotificationPreferenceScope[];\n}\n\n/**\n * Server-side notification preferences shape (snake_case), used in both the `update_preferences` public\n * execute and the `notification_preferences` public query response.\n */\nexport interface MobileServerNotificationPreferences {\n /** Only `1` is accepted by the backend for the MVP. */\n schema_version: 1;\n categories: MobileServerNotificationCategoryPreference[];\n}\n\n/** Content filters accepted by the six social feed lists. Empty or omitted means all. */\nexport type MobileSocialFeedType =\n | 'open'\n | 'close'\n | 'size_change'\n | 'thoughts'\n | 'analysis'\n | 'comments';\n\n/** Market category used by the social feed. */\nexport type MobileSocialFeedMarketCategory = 'crypto' | 'finance';\n\n/** Qualification tier for an account-level PnL badge. */\nexport type MobileSocialFeedTraderBadgeCode = 'shark' | 'whale';\n\n/** Availability of the current or last successful qualification snapshot. */\nexport type MobileSocialFeedCohortStatus = 'ready' | 'stale';\n\n/** Availability of an author's qualification data. */\nexport type MobileSocialFeedTraderDataStatus =\n | MobileSocialFeedCohortStatus\n | 'unavailable';\n\n/** Category from the authoritative market source. */\nexport type MobileSocialFeedSourceCategory =\n | 'crypto'\n | 'stocks'\n | 'forex'\n | 'commodities';\n\n/** Accounting basis used for position PnL. */\nexport type MobileSocialFeedPnlBasis =\n | 'unrealized_excl_fees_funding'\n | 'realized_incl_fees_funding';\n\n/** Whether position PnL is live or frozen at close. */\nexport type MobileSocialFeedPnlMode = 'live' | 'frozen';\n\n/** Completeness of position PnL accounting. */\nexport type MobileSocialFeedPnlQuality = 'ready' | 'pending' | 'unavailable';\n\n/** Source of the displayed position size and entry price. */\nexport type MobileSocialFeedPositionDisplayBasis =\n | 'current_position'\n | 'closing_snapshot';\n\n/** Current state of a position lifecycle. */\nexport type MobileSocialFeedPositionState = 'open' | 'closed';\n\n/** Completeness of the available position history. */\nexport type MobileSocialFeedHistoryQuality = 'complete' | 'partial';\n\n/** Trading action represented by an ordinary size-change row. */\nexport type MobileSocialFeedTradeSizeChangeAction = 'increased' | 'reduced';\n\n/** Trading action represented by an automatic trade card. */\nexport type MobileSocialFeedTradeCardAction =\n | 'opened'\n | 'closed'\n | MobileSocialFeedTradeSizeChangeAction;\n\n/** Whether a reading session was created for a list or a direct item. */\nexport type MobileSocialFeedReadSessionMode = 'feed' | 'item' | 'position';\n\n/** Kind of feed update target. */\nexport type MobileSocialFeedTargetType = 'item' | 'position';\n\n/** Official account-level 30-day PnL badge, independent of position PnL. */\nexport interface MobileServerSocialFeedTraderBadge {\n /** Qualification tier. */\n code: MobileSocialFeedTraderBadgeCode;\n /** Signed integer in x18 units. */\n pnl_x18: string;\n /** Stable compatibility identifier for the official Portfolio month result. */\n metric_key: 'account_pnl_30d_equity';\n /** PnL window label. */\n window: '30d';\n /** Official source timestamp in Unix milliseconds. */\n source_as_of_ms: number;\n /** Fetch completion timestamp in Unix milliseconds. */\n fetched_at_ms: number;\n /** Qualification snapshot UUID. */\n snapshot_id: string;\n}\n\n/** Public author identity and the selected viewing account's follow state. */\nexport interface MobileServerSocialFeedAuthor extends MobileServerIdentitySummary {\n /** Selected view_as account's follow state; null without a viewing account. */\n is_following: boolean | null;\n /** Null when no qualifying badge is available. */\n trader_badge: MobileServerSocialFeedTraderBadge | null;\n /** Stale means the last successful cohort is used after a refresh failure. */\n trader_data_status: MobileSocialFeedTraderDataStatus;\n}\n\n/** Market metadata from the service's authoritative market source. */\nexport interface MobileServerSocialFeedMarket {\n /** Market product ID. */\n product_id: number;\n /** Market symbol. */\n symbol: string;\n /** Logo URL when available. */\n logo_url: string | null;\n /** Social feed category when known. */\n category: MobileSocialFeedMarketCategory | null;\n /** Original market categories. */\n source_categories: MobileSocialFeedSourceCategory[];\n}\n\n/** Leverage display value; unknown isolated leverage differs from inapplicable cross leverage. */\nexport interface MobileSocialFeedLeverage {\n /** Rounded whole-number string, or null. Never an estimated replacement. */\n value: string | null;\n /** Cross margin uses not_applicable. */\n basis: 'effective' | 'unknown' | 'not_applicable';\n}\n\n/** Position PnL with explicit accounting basis and data quality. */\nexport interface MobileServerSocialFeedPnl {\n /** Signed x18 integer; null means unknown, not zero. */\n amount_x18: string | null;\n /** Open positions exclude fees/funding; closed results include them. */\n basis: MobileSocialFeedPnlBasis;\n /** Closed positions use frozen results. */\n mode: MobileSocialFeedPnlMode;\n /** Source timestamp in Unix milliseconds. */\n as_of_ms: number;\n /** Whether accounting is complete, pending, or unavailable. */\n quality: MobileSocialFeedPnlQuality;\n}\n\n/** Complete mutable position fields delivered together at one version. */\nexport interface MobileServerSocialFeedPositionPatch {\n /** Additional metrics for a position history session, when supplied. */\n current_position?: MobileServerSocialFeedHistoryMetrics;\n /** Position lifecycle UUID. */\n position_id: string;\n /** Positive integer string; compare as integers without Number conversion. */\n position_version: string;\n /** Position state timestamp in Unix milliseconds. */\n state_as_of_ms: number;\n /** Remaining average entry cost, frozen on close; x18 or null. */\n entry_price_x18: string | null;\n /** Basis of the displayed size and entry price. */\n display_basis: MobileSocialFeedPositionDisplayBasis;\n /** Closing snapshot reference time, or null. */\n snapshot_at_ms: number | null;\n /** Absolute quantity in x18 units. */\n quantity_x18: string;\n /** Notional value in x18 units. */\n notional_x18: string;\n /** Current lifecycle state. */\n state: MobileSocialFeedPositionState;\n /** Completeness of the available historical facts. */\n history_quality: MobileSocialFeedHistoryQuality;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Current or closing leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage reference time; null when unknown or inapplicable. */\n leverage_at_ms: number | null;\n /** Current remaining PnL or the closed lifecycle's net result. */\n pnl: MobileServerSocialFeedPnl;\n}\n\n/** Position displayed inside an automatic trade card. */\nexport interface MobileServerSocialFeedPositionCard extends MobileServerSocialFeedPositionPatch {\n /** Market product ID. */\n product_id: number;\n /** Market display metadata. */\n market: MobileServerSocialFeedMarket;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n}\n\n/** Interaction counters and the viewing account's relationship state. */\nexport interface MobileServerSocialFeedInteraction {\n /** Number of likes. */\n like_count: number;\n /** Number of comments. */\n comment_count: number;\n /** Number of recorded views. */\n view_count: number;\n /** Null when no viewing account is selected. */\n liked_by_me: boolean | null;\n}\n\n/** Capability flags for a social feed item. */\nexport interface MobileServerSocialFeedCapabilities {\n /** Whether liking is available. */\n can_like: boolean;\n /** Whether commenting is available. */\n can_comment: boolean;\n /** Whether exposure recording is available. */\n can_record_view: boolean;\n}\n\n/** Comment preview metadata for a social trade card. */\nexport interface MobileServerSocialFeedCommentPreview {\n /** Most recent readable replies. */\n items: MobileServerSocialFeedReply[];\n /** Comment count. */\n total_count: number;\n /** Comment cursor, if available. */\n next_cursor: string | null;\n}\n\n/** Exposure requirements associated with a reading session. */\nexport interface MobileServerSocialFeedViewTracking {\n /** Required visible fraction. */\n min_visible_ratio: number;\n /** Required visible duration in milliseconds. */\n min_duration_ms: number;\n}\n\n/** Coverage of the candidate authors in a qualification snapshot. */\nexport interface MobileServerSocialFeedCohortCoverage {\n /** Coverage domain. */\n scope: 'eligible_content_candidates';\n /** Candidate author count. */\n total_authors: number;\n /** Authors queried for this snapshot. */\n queried_authors: number;\n /** A successful response requires complete coverage. */\n complete: true;\n}\n\n/** Shared qualification snapshot used for Top Traders eligibility and badges. */\nexport interface MobileServerSocialFeedCohort {\n /** Cohort UUID. */\n snapshot_id: string;\n /** Ready or the previous successful snapshot after a refresh failure. */\n status: MobileSocialFeedCohortStatus;\n /** Coverage of all eligible candidate authors. */\n coverage: MobileServerSocialFeedCohortCoverage;\n}\n\n/** Metadata shared by social feed content. */\nexport interface MobileServerSocialFeedItemBase {\n /** Item UUID. */\n id: string;\n /** Whether authored analysis exists. */\n has_analysis: boolean;\n /** Parsed drawing document, or null when no drawing is readable. */\n drawing: MobileServerSocialFeedDrawing | null;\n /** Author identity, badge, and follow perspective. */\n author: MobileServerSocialFeedAuthor;\n /** Creation time in Unix milliseconds. */\n created_at_ms: number;\n /** Sorting time in Unix milliseconds. */\n display_at_ms: number;\n /** Positive integer version string. */\n version: string;\n /** Market metadata. */\n market: MobileServerSocialFeedMarket;\n /** Server capability flags, subject to the corresponding write switches. */\n capabilities: MobileServerSocialFeedCapabilities;\n}\n\n/** Content shared by authored posts and trade cards. */\nexport interface MobileServerSocialFeedContentBase extends MobileServerSocialFeedItemBase {\n /** Card text, empty for automatic cards. */\n text: string;\n /** Mentions in the original, unmodified text. */\n mentions: MobileSocialFeedMention[];\n /** Current or frozen position display. */\n position: MobileServerSocialFeedPositionCard;\n /** Interaction counters. */\n interaction: MobileServerSocialFeedInteraction;\n /** Readable comment preview. */\n comment_preview: MobileServerSocialFeedCommentPreview;\n}\n\n/** Trade card with optional authored text and analysis. */\nexport interface MobileServerSocialFeedTradeCard extends MobileServerSocialFeedContentBase {\n /** Card discriminant. */\n kind: 'trade_card';\n /** Trading action. */\n action: MobileSocialFeedTradeCardAction;\n}\n\n/** Fields shared by size-change and liquidation trade rows. */\nexport interface MobileServerSocialFeedTradeRowBase extends MobileServerSocialFeedItemBase {\n /** Row discriminant. */\n kind: 'trade_row';\n /** Associated lifecycle UUID. */\n position_id: string;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Historical action leverage, not the position's current leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Historical leverage reference time. */\n leverage_at_ms: number | null;\n /** Number of aggregated trades. */\n trade_count: number;\n /** Absolute traded quantity in x18 units. */\n quantity_x18: string;\n /** Actual execution price in x18 units, never an Oracle substitution. */\n average_price_x18: string | null;\n}\n\n/** A size-change row or liquidation row with independently nullable financial facts. */\nexport type MobileServerSocialFeedTradeRow =\n MobileServerSocialFeedTradeRowBase &\n (\n | {\n /** Ordinary size-change action. */\n action: MobileSocialFeedTradeSizeChangeAction;\n /** Executed notional in x18 units. */\n notional_x18: string;\n }\n | {\n /** Liquidation discriminant. */\n action: 'liquidated';\n /** Quantity times event Oracle; null if that Oracle is unknown. */\n notional_x18: string | null;\n /** Entry cost immediately before the event, in x18 units. */\n entry_price_x18: string | null;\n /** Event Oracle used for display and size filtering. */\n liquidation_oracle_price_x18: string | null;\n /** Actual execution price, independent of Oracle. */\n liquidation_execution_price_x18: string | null;\n /** Signed action PnL excluding ordinary fees/funding, or null. */\n realized_pnl_delta_x18: string | null;\n }\n );\n\n/** Discriminated social feed content. */\nexport type MobileServerSocialFeedItem =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedTradeRow\n | MobileServerSocialFeedPost\n | MobileServerSocialFeedReply;\n\n/** Fixed-duration social feed reading session. Credentials and cursors must be returned unchanged. */\nexport interface MobileServerSocialFeedReadSession {\n /** Session identifier. */\n session_id: string;\n /** Feed, item, or full position history session. */\n mode: MobileSocialFeedReadSessionMode;\n /** Fixed expiration time in Unix milliseconds; pagination does not extend it. */\n expires_at_ms: number;\n /** Visibility requirements for explicit exposure reporting. */\n view_tracking: MobileServerSocialFeedViewTracking;\n /** Initial update baseline, distinct from the page cursor. */\n update_cursor: string | null;\n /** Credential for this reading session. Do not log or cache publicly. */\n viewer_token: string;\n}\n\n/** Item delta: omitted means unchanged; explicit null clears a prior value. */\nexport interface MobileServerSocialFeedItemPatch {\n /** Updated reply attachment; null clears it, omission leaves it unchanged. */\n attached_position?: MobileServerSocialFeedPositionCard | null;\n /** Updated reply attachment visibility. */\n attachment_status?: MobileSocialFeedAttachmentStatus;\n /** Current author identity, follow state, and qualification badge. */\n author: MobileServerSocialFeedAuthor;\n /** Target item UUID. */\n item_id: string;\n /** Positive integer version string. */\n version: string;\n /** Updated interaction counters. */\n interaction?: MobileServerSocialFeedInteraction;\n /** Updated display timestamp; does not reorder the current list. */\n display_at_ms: number;\n /** Updated aggregate count. */\n trade_count?: number;\n /** Updated quantity in x18 units. */\n quantity_x18?: string;\n /** Updated notional; liquidation Oracle may be unknown. */\n notional_x18?: string | null;\n /** Updated actual execution price. */\n average_price_x18?: string | null;\n /** Historical liquidation entry cost. */\n entry_price_x18?: string | null;\n /** Updated liquidation Oracle. */\n liquidation_oracle_price_x18?: string | null;\n /** Updated actual liquidation execution price. */\n liquidation_execution_price_x18?: string | null;\n /** Updated signed action PnL. */\n realized_pnl_delta_x18?: string | null;\n /** Updated historical row leverage. */\n leverage?: MobileSocialFeedLeverage;\n /** Updated historical leverage reference time. */\n leverage_at_ms?: number | null;\n}\n\n/** A previously authorized target that can no longer be read; shared by wire and client responses. */\nexport interface MobileSocialFeedUnavailableTarget {\n /** Target kind. */\n type: MobileSocialFeedTargetType;\n /** Target UUID. */\n id: string;\n /** Uniform reason prevents leaking inaccessible content. */\n reason: 'unavailable';\n}\n\n/** Readable state of a reply's position attachment. */\nexport type MobileSocialFeedAttachmentStatus =\n | 'none'\n | 'visible'\n | 'unavailable';\n\n/** Supported chart candle intervals. */\nexport type MobileSocialFeedChartInterval =\n | '1m'\n | '5m'\n | '15m'\n | '1h'\n | '4h'\n | '1d';\n\n/** Position lifecycle action. */\nexport type MobileSocialFeedAction =\n | MobileSocialFeedTradeCardAction\n | 'liquidated';\n\n/** Result of resolving a position command. */\nexport type MobileSocialFeedPositionResolution =\n | 'resolved'\n | 'choose_position'\n | 'no_open_position'\n | 'unknown_market';\n\n/** Resolution of a viewing account's trading targets. */\nexport type MobileSocialFeedTradingResolution =\n | 'no_viewing_account'\n | 'none'\n | 'unique'\n | 'choose_position'\n | 'unavailable';\n\n/** Price source for a historical action marker. */\nexport type MobileSocialFeedActionPriceBasis =\n | 'execution'\n | 'liquidation_oracle';\n\n/** Chart source completeness; wholly unavailable sources fail the request. */\nexport type MobileSocialFeedChartDataQuality = 'ready' | 'partial';\n\n/** Projection state of an order's authoritative action segments. */\nexport type MobileSocialFeedActionResolution = 'ready' | 'pending';\n\n/** Explanation for an empty position command result. */\nexport type MobileSocialFeedPositionResolutionReason =\n | 'no_open_position'\n | 'unknown_market';\n\n/** Reason an action cannot be published. */\nexport type MobileSocialFeedActionUnavailableReason =\n | 'position_closed'\n | 'already_published'\n | 'unavailable';\n\n/** Availability of an estimated liquidation price. */\nexport type MobileSocialFeedLiquidationPriceQuality =\n | MobileSocialFeedPnlQuality\n | 'not_applicable';\n\n/** Presence lifecycle reported by an individual page. */\nexport type MobileSocialFeedPresenceState = 'watching' | 'heartbeat' | 'left';\n\n/** Mention offsets refer to Unicode code points in the original text, not UTF-16 indices. */\nexport interface MobileSocialFeedMention {\n /** Mentioned identity. */\n subaccount: Hex;\n /** Inclusive code point offset. */\n start: number;\n /** Exclusive code point offset. */\n end: number;\n /** Label matching the original text. */\n label: string;\n}\n\n/** Parsed drawing; data is opaque to the SDK and may legitimately be false or zero. */\nexport interface MobileServerSocialFeedDrawing {\n /** Already parsed drawing document; do not JSON.parse again. */\n data: unknown;\n /** Original creation time in milliseconds. */\n created_at_ms: number;\n /** Last update time in milliseconds. */\n updated_at_ms: number;\n}\n\n/** Nonrecursive root-post preview carried by replies. */\nexport interface MobileServerSocialFeedCompactCard {\n /** Root item UUID. */\n id: string;\n /** Root author. */\n author: MobileServerSocialFeedAuthor;\n /** Original text excerpt. */\n text_excerpt: string;\n /** Visible position summary, or null. */\n position: Pick<\n MobileServerSocialFeedPositionCard,\n 'position_id' | 'market' | 'direction' | 'state' | 'notional_x18'\n > | null;\n /** Whether the root has published analysis. */\n has_analysis: boolean;\n}\n\n/** Authored position post, including text-only, drawing-only, and combined content. */\nexport interface MobileServerSocialFeedPost extends MobileServerSocialFeedContentBase {\n /** Post discriminant. */\n kind: 'post';\n}\n\n/** Reply with independently permissioned position attachment and nonrecursive root preview. */\nexport interface MobileServerSocialFeedReply extends MobileServerSocialFeedItemBase {\n /** Reply discriminant. */\n kind: 'reply';\n /** Original text. */\n text: string;\n /** Mentions in the text. */\n mentions: MobileSocialFeedMention[];\n /** Actual root item UUID. */\n root_item_id: string;\n /** Omitted for a direct reply to the root. */\n reply_to_item_id?: string;\n /** Author being replied to, or null. */\n reply_to_author: MobileServerSocialFeedAuthor | null;\n /** Readable attachment; null when absent or unavailable. */\n attached_position: MobileServerSocialFeedPositionCard | null;\n /** Distinguishes an absent attachment from an unreadable one. */\n attachment_status: MobileSocialFeedAttachmentStatus;\n /** Root preview; does not register root exposure. */\n original: MobileServerSocialFeedCompactCard;\n /** Reply interaction state. */\n interaction: MobileServerSocialFeedInteraction;\n}\n\n/** Current eligibility hints; actual writes still recheck the signed author. */\nexport interface MobileServerSocialFeedPublishablePosition {\n /** Candidate position. */\n position: MobileServerSocialFeedPositionCard;\n /** Whether this account can publish. */\n can_publish: boolean;\n /** Whether this account can attach the position to a comment. */\n can_attach_to_comment: boolean;\n /** Whether this account can first add analysis. */\n can_draw_analysis: boolean;\n /** Unavailability explanation, or null. */\n unavailable_reason: string | null;\n}\n\n/** An authoritative lifecycle segment of an order. */\nexport interface MobileServerSocialFeedActionCandidate {\n /** Action UUID. */\n action_id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Current publishing eligibility, not proof of caller ownership. */\n can_publish: boolean;\n /** Publication restriction, or null when eligible. */\n unavailable_reason: MobileSocialFeedActionUnavailableReason | null;\n}\n\n/** Additional history metrics; unavailable values are not zero. */\nexport interface MobileServerSocialFeedHistoryMetrics {\n /** Estimated liquidation price in x18, independent of event Oracle and execution prices. */\n estimated_liquidation_price_x18: string | null;\n /** Availability of the estimated price. */\n liquidation_price_quality: MobileSocialFeedLiquidationPriceQuality;\n /** Source time in milliseconds. */\n liquidation_price_as_of_ms: number | null;\n /** Signed funding amount in x18. */\n funding_pnl_x18: string | null;\n /** Funding availability. */\n funding_quality: MobileSocialFeedPnlQuality;\n /** Funding source time in milliseconds. */\n funding_as_of_ms: number | null;\n}\n\n/** Full position card displayed above its historical timeline. */\nexport interface MobileServerSocialFeedPositionHistoryCard\n extends\n MobileServerSocialFeedPositionCard,\n MobileServerSocialFeedHistoryMetrics {}\n\n/** Persisted action facts, independent of whether a feed item was published. */\nexport interface MobileServerSocialFeedPositionAction {\n /** Action UUID. */\n id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Quantity before the action, in x18. */\n quantity_before_x18: string;\n /** Quantity after the action, in x18. */\n quantity_after_x18: string;\n /** Executed quantity, in x18. */\n executed_quantity_x18: string;\n /** Actual executed notional in x18; may be unknown for liquidation. */\n executed_notional_x18: string | null;\n /** Actual execution price in x18. */\n average_price_x18: string | null;\n /** Entry price before the action, in x18. */\n entry_price_before_x18: string | null;\n /** Liquidation event Oracle price in x18. */\n liquidation_oracle_price_x18: string | null;\n /** Liquidation Oracle-based notional in x18. */\n liquidation_notional_x18: string | null;\n /** Signed realized trading PnL in x18, excluding ordinary fees and funding. */\n realized_pnl_delta_x18: string | null;\n /** Historical effective leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage source time in milliseconds. */\n leverage_at_ms: number | null;\n /** First event time in milliseconds. */\n first_event_at_ms: number;\n /** Last event time in milliseconds. */\n last_event_at_ms: number;\n /** Decimal-string version. */\n version: string;\n}\n\n/** Full published content appearing in a position timeline. */\nexport type MobileServerSocialFeedHistoryTake =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedPost;\n\n/** A historical action or authored take; preserve service ordering. */\nexport type MobileServerSocialFeedTimelineEntry =\n | {\n /** Action entry. */\n kind: 'action';\n /** Full action facts. */\n action: MobileServerSocialFeedPositionAction;\n /** Actually associated feed item, or null. */\n related_item_id: string | null;\n /** Full published trade card, or null. */\n related_take: MobileServerSocialFeedTradeCard | null;\n }\n | {\n /** Published take entry. */\n kind: 'take';\n /** Full published content. */\n item: MobileServerSocialFeedHistoryTake;\n };\n\n/** Trusted trading target; this hint does not authorize trading. */\nexport interface MobileServerSocialFeedTradingTarget {\n /** Lifecycle UUID. */\n position_id: string;\n /** Parent identity. */\n identity_subaccount: Hex;\n /** Actual trading subaccount, possibly isolated. */\n trading_subaccount: Hex;\n /** Market product ID. */\n product_id: number;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Isolated name, or null for cross margin. */\n iso_subaccount_name: string | null;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Source time in milliseconds. */\n state_as_of_ms: number;\n}\n\n/** Viewing-account trading hints, not authenticated permissions. */\nexport interface MobileServerSocialFeedTradingContext {\n /** Market product ID. */\n product_id: number;\n /** Suggested trade direction. */\n suggested_direction: MobileFeedTradePositionDirection;\n /** Resolution of the viewing account's positions. */\n resolution: MobileSocialFeedTradingResolution;\n /** Trusted candidates. */\n candidates: MobileServerSocialFeedTradingTarget[];\n /** Unique candidate, or null. */\n viewer_position_id: string | null;\n /** Whether the selected account has a unique reducible position. */\n can_reduce: boolean;\n}\n\n/** Historical candle; volume is a quantity, not a price. */\nexport interface MobileServerSocialFeedCandle {\n /** Candle start time in milliseconds. */\n timestamp_ms: number;\n /** Open price in x18. */\n open_x18: string;\n /** High price in x18. */\n high_x18: string;\n /** Low price in x18. */\n low_x18: string;\n /** Close price in x18. */\n close_x18: string;\n /** Base asset volume in x18. */\n volume_x18: string;\n}\n\n/** Chart action marker with explicitly identified price basis. */\nexport interface MobileServerSocialFeedActionMarker {\n /** Action UUID. */\n action_id: string;\n /** Event time in milliseconds. */\n timestamp_ms: number;\n /** Price in x18; null does not remove the action. */\n price_x18: string | null;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Direction. */\n direction: MobileFeedTradePositionDirection;\n /** Never substitute actual execution for a liquidation Oracle. */\n price_basis: MobileSocialFeedActionPriceBasis;\n}\n\n/** Counts across the authorized position history. */\nexport interface MobileServerSocialFeedHistorySummary {\n /** Action count. */\n action_count: number;\n /** Published take count. */\n take_count: number;\n}\n\n/** Estimated liquidation price and its source time. */\nexport interface MobileServerSocialFeedEstimatedLiquidationLine {\n /** Estimated price in x18. */\n price_x18: string;\n /** Source time in milliseconds. */\n as_of_ms: number;\n}\n\n/** Half-open chart range, preserved across pages. */\nexport interface MobileServerSocialFeedChartRange {\n /** Inclusive start in milliseconds. */\n from_ms: number;\n /** Exclusive end in milliseconds. */\n to_ms: number;\n}\n"],"mappings":";;;;;AA0HA,MAAa,wCAAwC,CACnD,QACA,OACF;;;;;AAMA,MAAa,qCAAqC;CAChD;CACA;CACA;CACA;CACA;AACF;;;;;AAqBA,MAAa,2BAA2B,CAAC,SAAS,UAAU"}
1
+ {"version":3,"file":"serverModelTypes.js","names":[],"sources":["../../src/types/serverModelTypes.ts"],"sourcesContent":["import { BalanceSide } from '@nadohq/shared';\nimport { Hex } from 'viem';\n\n/**\n * Server-side avatar selection, shared by request mapping and signing.\n */\nexport type MobileServerAvatarSelection =\n | {\n /** Shared catalogue selection. */\n type: 'preset';\n /** Stable catalogue ID. */\n id: string;\n }\n | {\n /** Uploaded image awaiting publication. */\n type: 'upload';\n /** Staging key returned by create_avatar_upload. */\n upload_key: string;\n };\n\n/**\n * Server-owned avatar preset in catalogue order.\n */\nexport interface MobileServerAvatarPreset {\n /** Stable catalogue ID used when selecting this preset. */\n id: string;\n /** Public image URL. */\n avatar_url: string;\n}\n\n/**\n * Platform of a device registered for push notifications.\n */\nexport type MobileNotificationPlatform = 'ios' | 'android';\n\n/**\n * Notification types supported by the v2 payload protocol.\n */\nexport type MobileNotificationTypeId =\n | 'new_follower'\n | 'followed_you_back'\n | 'order_fill'\n | 'order_update'\n | 'liquidation'\n | 'trader_opened'\n | 'trader_closed'\n | 'position_milestone'\n | 'market_movement'\n | 'trader_streak'\n | 'account_drama'\n | 'weekly_digest';\n\n/**\n * Named navigation destinations supported by notification payloads.\n */\nexport type MobileNotificationRouteName = MobileServerNotificationRoute['name'];\n\n/** Position milestone options supported by notification settings. */\nexport const MOBILE_NOTIFICATION_POSITION_THRESHOLDS = [10, 25, 50] as const;\n\n/** Minimum trade-size options, in whole USD, supported by notification settings. */\nexport const MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD = [\n 0, 100, 1000, 10000,\n] as const;\n\n/** Supported notification position milestone threshold. */\nexport type MobileNotificationPositionThreshold =\n (typeof MOBILE_NOTIFICATION_POSITION_THRESHOLDS)[number];\n\n/** Supported notification minimum trade size, in whole USD. */\nexport type MobileNotificationMinTradeSizeUsd =\n (typeof MOBILE_NOTIFICATION_MIN_TRADE_SIZES_USD)[number];\n\n/** Supported product analytics interaction. */\nexport type MobileProductEventName =\n | 'notif_opened'\n | 'market_viewed'\n | 'chart_opened'\n | 'search';\n\n/**\n * Category of push notification.\n */\nexport type MobileNotificationCategory =\n | 'order_fill'\n | 'order_update'\n | 'liquidation'\n | 'funding'\n | 'product_listing'\n | 'announcement';\n\n/**\n * Server-side identity summary (snake_case): the read-time identity fields the backend attaches to a\n * subaccount wherever it surfaces one alongside other data. Name fields are `null` until the subaccount\n * claims a username, and a rename shows up on the next read without any change to the surrounding record.\n */\nexport interface MobileServerIdentitySummary {\n subaccount: Hex;\n username: string | null;\n display_name: string | null;\n /** Published avatar URL, or null when the account has no saved avatar. */\n avatar_url: string | null;\n}\n\n/**\n * Server-side follow summary (snake_case), nested in a `profiles` entry when the `follow_summary` include is\n * requested. `is_following` is the direct `view_as -> this profile` relationship; every `followed_by` entry\n * satisfies both `view_as -> entry` and `entry -> this profile`, so each one is already familiar to the\n * viewer and carries no `is_following` of its own.\n */\nexport interface MobileServerFollowSummary {\n is_following: boolean;\n /** Exact size of the two-edge intersection, independent of how many previews came back. */\n followed_by_count: number;\n /** Capped at `MOBILE_FOLLOWED_BY_PREVIEW_LIMIT` (2) by the backend; not client-configurable. */\n followed_by: MobileServerIdentitySummary[];\n}\n\n/**\n * Server-side public profile shape (snake_case), shared by the singular `profile` and batched `profiles`\n * queries. Name fields are `null` until the subaccount claims a username; a subaccount with no identity row\n * still yields an entry, with `null` names and `private_mode: false`.\n *\n * The three optional fields are omitted from the wire entirely unless the matching `profiles` include asked\n * for them, which is why they are optional rather than nullable — absent means \"not requested\", not \"none\".\n * The singular `profile` query never returns any of them.\n */\nexport interface MobileServerProfile extends MobileServerIdentitySummary {\n private_mode: boolean;\n /** Plain-text biography, or null when unset. */\n bio: string | null;\n /**\n * Exact count at query time — the backend counts rather than reading a cached counter. Unnamed and private\n * accounts are included: Private Mode hides activity, not relationships. Requires `follow_counts`.\n */\n follower_count?: number;\n following_count?: number;\n /** Requires the `follow_summary` include, and is relative to that include's `view_as`. */\n follow_summary?: MobileServerFollowSummary;\n}\n\n/**\n * Server-side row of a Followers or Following page (snake_case).\n */\nexport interface MobileServerFollowListAccount {\n identity: MobileServerIdentitySummary;\n /**\n * The `view_as` Viewer's relationship to this account, not the listed relationship that put it in the\n * page, so it is `false` on the Viewer's own row. Omitted entirely when the request named no `view_as`,\n * rather than being sent as a misleading `false`.\n */\n is_following?: boolean;\n /** The listed account's own follower count, exact at query time. */\n follower_count: number;\n}\n\n/**\n * Direction of the position a feed trade resulted in — for `closed`, the direction that was closed. This is\n * NOT the execution buy/sell side, which the feed does not expose. Aliases {@link BalanceSide} so the feed's\n * direction values stay in lockstep with the rest of the SDK.\n */\nexport type MobileFeedTradePositionDirection = BalanceSide;\n\n/**\n * Every {@link MobileFeedTradePositionDirection} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_DIRECTIONS = [\n 'long',\n 'short',\n] as const satisfies readonly MobileFeedTradePositionDirection[];\n\n/**\n * Every {@link MobileFeedTradePositionEffect} the feed can report, for callers that need the values at\n * runtime (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_TRADE_POSITION_EFFECTS = [\n 'opened',\n 'increased',\n 'reduced',\n 'closed',\n 'flipped',\n] as const;\n\n/**\n * How a feed trade changed the trader's position in the product.\n */\nexport type MobileFeedTradePositionEffect =\n (typeof MOBILE_FEED_TRADE_POSITION_EFFECTS)[number];\n\n/**\n * Position change of a feed trade. Both keys are single words, so the wire and client shapes are identical\n * and this type is shared by {@link MobileServerFeedTrade} and the client-side `MobileFeedTrade`.\n */\nexport interface MobileFeedTradePosition {\n direction: MobileFeedTradePositionDirection;\n effect: MobileFeedTradePositionEffect;\n}\n\n/**\n * Every {@link MobileFeedMarginMode} the feed can report, for callers that need the values at runtime\n * (validation, filters, UI enumeration).\n */\nexport const MOBILE_FEED_MARGIN_MODES = ['cross', 'isolated'] as const;\n\n/**\n * Margin mode a feed trade was executed under. Shared by the wire and client margin shapes.\n */\nexport type MobileFeedMarginMode = (typeof MOBILE_FEED_MARGIN_MODES)[number];\n\n/**\n * Server-side margin of a feed trade. Branch on `mode` — do not infer isolated state from leverage presence:\n * `estimated_leverage` (a rounded whole-number estimate, not exact submitted leverage) is omitted on `cross`,\n * and also omitted inside `isolated` when no estimate is available.\n */\nexport interface MobileServerFeedMargin {\n mode: MobileFeedMarginMode;\n estimated_leverage?: number;\n}\n\n/**\n * Server-side feed trade shape (snake_case): one row per order digest, enriched at read time with the\n * trader's current identity. Amounts are display-oriented human-unit JSON numbers — do not use them for\n * accounting, order construction, or exact threshold decisions.\n */\nexport interface MobileServerFeedTrade extends MobileServerIdentitySummary {\n /** Order digest this row is keyed by; the stable id clients use to reconcile live pagination. */\n order_digest: Hex;\n product_id: number;\n /** Executed quantity in human units. */\n quantity: number;\n /** Trade notional in whole-dollar human units. */\n notional: number;\n /** Average execution price in human units. */\n average_price: number;\n margin: MobileServerFeedMargin;\n position: MobileFeedTradePosition;\n /** Realized PnL of the trade in human units; can be negative. */\n realized_pnl: number;\n /** Fill time as JavaScript-safe integer Unix milliseconds. */\n filled_at_ms: number;\n}\n\n/**\n * Server-side scope limiting a notification category preference. Scopes are rejected by the backend for the\n * MVP (`scopes` must be empty) but are part of the wire format.\n */\nexport type MobileServerNotificationPreferenceScope =\n | { type: 'subaccount'; subaccount: Hex }\n | { type: 'product'; product_id: number };\n\n/**\n * Server-side per-category notification preference (snake_case).\n */\nexport interface MobileServerNotificationCategoryPreference {\n category: MobileNotificationCategory;\n enabled: boolean;\n scopes: MobileServerNotificationPreferenceScope[];\n}\n\n/**\n * Server-side notification preferences shape (snake_case), used in both the `update_preferences` public\n * execute and the `notification_preferences` public query response.\n */\nexport interface MobileServerNotificationPreferences {\n /** Only `1` is accepted by the backend for the MVP. */\n schema_version: 1;\n categories: MobileServerNotificationCategoryPreference[];\n}\n\n/**\n * Stored push-device metadata shared by registration requests and token ownership responses.\n */\nexport interface MobileServerNotificationDeviceMetadata {\n /** Device operating system. */\n platform: MobileNotificationPlatform;\n /** Locale tag, or null when absent; at most 35 UTF-8 bytes. */\n locale: string | null;\n /** App version, or null when absent; at most 64 UTF-8 bytes. */\n app_version: string | null;\n}\n\n/**\n * Device capabilities shared by v2 registration and v1/v2 registration queries.\n */\nexport interface MobileServerNotificationCapabilities {\n /** Exactly one supported payload version. */\n payload_versions: [1] | [2];\n /** Supported subset of the registered notification types. */\n type_ids: MobileNotificationTypeId[];\n /** Supported subset of the named destinations. */\n routes: MobileNotificationRouteName[];\n}\n\n/**\n * Server-side wallet settings; all fields are required on replacement.\n */\nexport interface MobileServerNotificationSettings {\n /** Own position milestones and the initial weekly digest. */\n my_positions: boolean;\n /** One to three unique values; the minimum selects the starting milestone tier. */\n position_thresholds: MobileNotificationPositionThreshold[];\n /** Combined order fill/update switch; does not control liquidation notifications. */\n my_orders: boolean;\n /** Ordinary followed-trader notifications; enabled bells override this switch. */\n following_trades: boolean;\n /** Notifications about posts by followed traders. */\n following_posts: boolean;\n /** Minimum trade size for trade notifications, in whole USD. */\n min_trade_size_usd: MobileNotificationMinTradeSizeUsd;\n /** New followers and follow-backs. */\n new_followers: boolean;\n /** Maps to the legacy announcement preference. */\n announcements: boolean;\n /** Opt-in trader streak and account drama discovery notifications. */\n discovery: boolean;\n}\n\n/**\n * Server-side allowlisted destination; notification data must never be interpreted as an arbitrary URL.\n */\nexport type MobileServerNotificationRoute =\n | {\n /** Public profile destination. */\n name: 'profile';\n /** Profile subaccount as bytes32. */\n subaccount: Hex;\n }\n | {\n /** Market destination. */\n name: 'market';\n /** Positive product ID. */\n product_id: number;\n }\n | {\n /** Own portfolio destination. */\n name: 'portfolio';\n };\n\n/**\n * Server-side v2 push/inbox navigation data, not a complete historical trade or notification body.\n */\nexport interface MobileServerNotificationPayloadV2 {\n /** Payload protocol version. */\n payload_version: 2;\n /** Logical notification UUID, used for click deduplication. */\n notification_id: string;\n /** Intended wallet; private navigation must wait for this wallet to connect. */\n recipient_wallet: Hex;\n /** Registered notification type. */\n type_id: MobileNotificationTypeId;\n /** Supported template version. */\n template_version: 1;\n /** Named destination and its parameters. */\n route: MobileServerNotificationRoute;\n}\n\n/**\n * Server-side accepted logical notification; does not prove device delivery or read status.\n */\nexport interface MobileServerNotificationInboxItem {\n /** Logical notification UUID. */\n notification_id: string;\n /** Registered notification type. */\n type_id: MobileNotificationTypeId;\n /** Navigation data, without title, body, or read state. */\n data: MobileServerNotificationPayloadV2;\n /** Intent acceptance time in milliseconds. */\n created_at: number;\n /** Backend-computed trade attribution. */\n trade_within_24h: boolean;\n}\n\n/**\n * Server-side product analytics event; unused nullable fields must be explicitly null.\n */\nexport interface MobileServerProductEvent {\n /** Stable event UUID; reuse across retries. */\n client_event_id: string;\n /** Supported interaction; notif_opened is not a read-state mutation. */\n event_name: MobileProductEventName;\n /** Required for notif_opened and owned by the signing wallet; otherwise null. */\n notification_id: string | null;\n /** Actual event time in milliseconds, within the past 7 days or next 5 minutes. */\n occurred_at: number;\n /** Required for market_viewed/chart_opened; otherwise null. */\n product_id: number | null;\n /** Required for search, nonblank and at most 80 Unicode characters; otherwise null. */\n query: string | null;\n}\n\n/** Content filters accepted by the six social feed lists. Empty or omitted means all. */\nexport type MobileSocialFeedType =\n | 'open'\n | 'close'\n | 'size_change'\n | 'thoughts'\n | 'analysis'\n | 'comments';\n\n/** Market category used by the social feed. */\nexport type MobileSocialFeedMarketCategory = 'crypto' | 'finance';\n\n/** Qualification tier for an account-level PnL badge. */\nexport type MobileSocialFeedTraderBadgeCode = 'shark' | 'whale';\n\n/** Availability of the current or last successful qualification snapshot. */\nexport type MobileSocialFeedCohortStatus = 'ready' | 'stale';\n\n/** Availability of an author's qualification data. */\nexport type MobileSocialFeedTraderDataStatus =\n | MobileSocialFeedCohortStatus\n | 'unavailable';\n\n/** Category from the authoritative market source. */\nexport type MobileSocialFeedSourceCategory =\n | 'crypto'\n | 'stocks'\n | 'forex'\n | 'commodities';\n\n/** Accounting basis used for position PnL. */\nexport type MobileSocialFeedPnlBasis =\n | 'unrealized_excl_fees_funding'\n | 'realized_incl_fees_funding';\n\n/** Whether position PnL is live or frozen at close. */\nexport type MobileSocialFeedPnlMode = 'live' | 'frozen';\n\n/** Completeness of position PnL accounting. */\nexport type MobileSocialFeedPnlQuality = 'ready' | 'pending' | 'unavailable';\n\n/** Source of the displayed position size and entry price. */\nexport type MobileSocialFeedPositionDisplayBasis =\n | 'current_position'\n | 'closing_snapshot';\n\n/** Current state of a position lifecycle. */\nexport type MobileSocialFeedPositionState = 'open' | 'closed';\n\n/** Completeness of the available position history. */\nexport type MobileSocialFeedHistoryQuality = 'complete' | 'partial';\n\n/** Trading action represented by an ordinary size-change row. */\nexport type MobileSocialFeedTradeSizeChangeAction = 'increased' | 'reduced';\n\n/** Trading action represented by an automatic trade card. */\nexport type MobileSocialFeedTradeCardAction =\n | 'opened'\n | 'closed'\n | MobileSocialFeedTradeSizeChangeAction;\n\n/** Whether a reading session was created for a list or a direct item. */\nexport type MobileSocialFeedReadSessionMode = 'feed' | 'item' | 'position';\n\n/** Kind of feed update target. */\nexport type MobileSocialFeedTargetType = 'item' | 'position';\n\n/** Official account-level 30-day PnL badge, independent of position PnL. */\nexport interface MobileServerSocialFeedTraderBadge {\n /** Qualification tier. */\n code: MobileSocialFeedTraderBadgeCode;\n /** Signed integer in x18 units. */\n pnl_x18: string;\n /** Stable compatibility identifier for the official Portfolio month result. */\n metric_key: 'account_pnl_30d_equity';\n /** PnL window label. */\n window: '30d';\n /** Official source timestamp in Unix milliseconds. */\n source_as_of_ms: number;\n /** Fetch completion timestamp in Unix milliseconds. */\n fetched_at_ms: number;\n /** Qualification snapshot UUID. */\n snapshot_id: string;\n}\n\n/** Public author identity and the selected viewing account's follow state. */\nexport interface MobileServerSocialFeedAuthor extends MobileServerIdentitySummary {\n /** Selected view_as account's follow state; null without a viewing account. */\n is_following: boolean | null;\n /** Null when no qualifying badge is available. */\n trader_badge: MobileServerSocialFeedTraderBadge | null;\n /** Stale means the last successful cohort is used after a refresh failure. */\n trader_data_status: MobileSocialFeedTraderDataStatus;\n}\n\n/** Market metadata from the service's authoritative market source. */\nexport interface MobileServerSocialFeedMarket {\n /** Market product ID. */\n product_id: number;\n /** Market symbol. */\n symbol: string;\n /** Logo URL when available. */\n logo_url: string | null;\n /** Social feed category when known. */\n category: MobileSocialFeedMarketCategory | null;\n /** Original market categories. */\n source_categories: MobileSocialFeedSourceCategory[];\n}\n\n/** Leverage display value; unknown isolated leverage differs from inapplicable cross leverage. */\nexport interface MobileSocialFeedLeverage {\n /** Rounded whole-number string, or null. Never an estimated replacement. */\n value: string | null;\n /** Cross margin uses not_applicable. */\n basis: 'effective' | 'unknown' | 'not_applicable';\n}\n\n/** Position PnL with explicit accounting basis and data quality. */\nexport interface MobileServerSocialFeedPnl {\n /** Signed x18 integer; null means unknown, not zero. */\n amount_x18: string | null;\n /** Open positions exclude fees/funding; closed results include them. */\n basis: MobileSocialFeedPnlBasis;\n /** Closed positions use frozen results. */\n mode: MobileSocialFeedPnlMode;\n /** Source timestamp in Unix milliseconds. */\n as_of_ms: number;\n /** Whether accounting is complete, pending, or unavailable. */\n quality: MobileSocialFeedPnlQuality;\n}\n\n/** Complete mutable position fields delivered together at one version. */\nexport interface MobileServerSocialFeedPositionPatch {\n /** Additional metrics for a position history session, when supplied. */\n current_position?: MobileServerSocialFeedHistoryMetrics;\n /** Position lifecycle UUID. */\n position_id: string;\n /** Positive integer string; compare as integers without Number conversion. */\n position_version: string;\n /** Position state timestamp in Unix milliseconds. */\n state_as_of_ms: number;\n /** Remaining average entry cost, frozen on close; x18 or null. */\n entry_price_x18: string | null;\n /** Basis of the displayed size and entry price. */\n display_basis: MobileSocialFeedPositionDisplayBasis;\n /** Closing snapshot reference time, or null. */\n snapshot_at_ms: number | null;\n /** Absolute quantity in x18 units. */\n quantity_x18: string;\n /** Notional value in x18 units. */\n notional_x18: string;\n /** Current lifecycle state. */\n state: MobileSocialFeedPositionState;\n /** Completeness of the available historical facts. */\n history_quality: MobileSocialFeedHistoryQuality;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Current or closing leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage reference time; null when unknown or inapplicable. */\n leverage_at_ms: number | null;\n /** Current remaining PnL or the closed lifecycle's net result. */\n pnl: MobileServerSocialFeedPnl;\n}\n\n/** Position displayed inside an automatic trade card. */\nexport interface MobileServerSocialFeedPositionCard extends MobileServerSocialFeedPositionPatch {\n /** Market product ID. */\n product_id: number;\n /** Market display metadata. */\n market: MobileServerSocialFeedMarket;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n}\n\n/** Interaction counters and the viewing account's relationship state. */\nexport interface MobileServerSocialFeedInteraction {\n /** Number of likes. */\n like_count: number;\n /** Number of comments. */\n comment_count: number;\n /** Number of recorded views. */\n view_count: number;\n /** Null when no viewing account is selected. */\n liked_by_me: boolean | null;\n}\n\n/** Capability flags for a social feed item. */\nexport interface MobileServerSocialFeedCapabilities {\n /** Whether liking is available. */\n can_like: boolean;\n /** Whether commenting is available. */\n can_comment: boolean;\n /** Whether exposure recording is available. */\n can_record_view: boolean;\n}\n\n/** Comment preview metadata for a social trade card. */\nexport interface MobileServerSocialFeedCommentPreview {\n /** Most recent readable replies. */\n items: MobileServerSocialFeedReply[];\n /** Comment count. */\n total_count: number;\n /** Opens the first complete group page in the same snapshot; do not prepend preview items. */\n next_cursor: string | null;\n}\n\n/** Uploaded feed image metadata; bytes are fetched separately with the reading session. */\nexport interface MobileServerSocialFeedUploadedImage {\n /** Image UUID. */\n image_id: string;\n /** Backend path for the original image bytes. */\n url: string;\n /** Display-orientation width in pixels. */\n width: number;\n /** Display-orientation height in pixels. */\n height: number;\n /** Detected content type. */\n content_type: 'image/jpeg' | 'image/png';\n /** Original file size in bytes. */\n byte_size: number;\n /** Always-present thumbnail (longest edge ≤ 512, never upscaled). */\n thumbnail: MobileServerSocialFeedImageThumbnail;\n}\n\n/** External image loaded directly from its URL without Mobile session headers. */\nexport interface MobileServerSocialFeedExternalImage {\n /** Original HTTP/HTTPS URL; no upload metadata or thumbnail is provided. */\n url: string;\n}\n\n/** Uploaded image metadata or an external URL; uploaded images precede external images. */\nexport type MobileServerSocialFeedImage =\n | MobileServerSocialFeedUploadedImage\n | MobileServerSocialFeedExternalImage;\n\n/** Thumbnail metadata for an uploaded feed image. */\nexport interface MobileServerSocialFeedImageThumbnail {\n /** Backend path for the thumbnail bytes. */\n url: string;\n /** Thumbnail width in pixels. */\n width: number;\n /** Thumbnail height in pixels. */\n height: number;\n}\n\n/** Coverage of the candidate authors in a qualification snapshot. */\nexport interface MobileServerSocialFeedCohortCoverage {\n /** Coverage domain. */\n scope: 'eligible_content_candidates';\n /** Candidate author count. */\n total_authors: number;\n /** Authors queried for this snapshot. */\n queried_authors: number;\n /** A successful response requires complete coverage. */\n complete: true;\n}\n\n/** Shared qualification snapshot used for Top Traders eligibility and badges. */\nexport interface MobileServerSocialFeedCohort {\n /** Cohort UUID. */\n snapshot_id: string;\n /** Ready or the previous successful snapshot after a refresh failure. */\n status: MobileSocialFeedCohortStatus;\n /** Coverage of all eligible candidate authors. */\n coverage: MobileServerSocialFeedCohortCoverage;\n}\n\n/** Metadata shared by social feed content. */\nexport interface MobileServerSocialFeedItemBase {\n /** Item UUID. */\n id: string;\n /** Whether authored analysis exists. */\n has_analysis: boolean;\n /** Parsed drawing document, or null when no drawing is readable. */\n drawing: MobileServerSocialFeedDrawing | null;\n /** Author identity, badge, and follow perspective. */\n author: MobileServerSocialFeedAuthor;\n /** Creation time in Unix milliseconds. */\n created_at_ms: number;\n /** Sorting time in Unix milliseconds. */\n display_at_ms: number;\n /** Positive integer version string. */\n version: string;\n /** Market metadata. */\n market: MobileServerSocialFeedMarket;\n /** Server capability flags, subject to the corresponding write switches. */\n capabilities: MobileServerSocialFeedCapabilities;\n}\n\n/** Content shared by authored posts and trade cards. */\nexport interface MobileServerSocialFeedContentBase extends MobileServerSocialFeedItemBase {\n /** Bound images in display order; empty when none. */\n images: MobileServerSocialFeedImage[];\n /** Card text, empty for automatic cards. */\n text: string;\n /** Mentions in the original, unmodified text. */\n mentions: MobileSocialFeedMention[];\n /** Current or frozen position display. */\n position: MobileServerSocialFeedPositionCard;\n /** Interaction counters. */\n interaction: MobileServerSocialFeedInteraction;\n /** Readable comment preview. */\n comment_preview: MobileServerSocialFeedCommentPreview;\n}\n\n/** Trade card with optional authored text and analysis. */\nexport interface MobileServerSocialFeedTradeCard extends MobileServerSocialFeedContentBase {\n /** Card discriminant. */\n kind: 'trade_card';\n /** Trading action. */\n action: MobileSocialFeedTradeCardAction;\n}\n\n/** Fields shared by size-change and liquidation trade rows. */\nexport interface MobileServerSocialFeedTradeRowBase extends MobileServerSocialFeedItemBase {\n /** Row discriminant. */\n kind: 'trade_row';\n /** Associated lifecycle UUID. */\n position_id: string;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Historical action leverage, not the position's current leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Historical leverage reference time. */\n leverage_at_ms: number | null;\n /** Number of aggregated trades. */\n trade_count: number;\n /** Absolute traded quantity in x18 units. */\n quantity_x18: string;\n /** Actual execution price in x18 units, never an Oracle substitution. */\n average_price_x18: string | null;\n}\n\n/** A size-change row or liquidation row with independently nullable financial facts. */\nexport type MobileServerSocialFeedTradeRow =\n MobileServerSocialFeedTradeRowBase &\n (\n | {\n /** Ordinary size-change action. */\n action: MobileSocialFeedTradeSizeChangeAction;\n /** Executed notional in x18 units. */\n notional_x18: string;\n }\n | {\n /** Liquidation discriminant. */\n action: 'liquidated';\n /** Quantity times event Oracle; null if that Oracle is unknown. */\n notional_x18: string | null;\n /** Entry cost immediately before the event, in x18 units. */\n entry_price_x18: string | null;\n /** Event Oracle used for display and size filtering. */\n liquidation_oracle_price_x18: string | null;\n /** Actual execution price, independent of Oracle. */\n liquidation_execution_price_x18: string | null;\n /** Signed action PnL excluding ordinary fees/funding, or null. */\n realized_pnl_delta_x18: string | null;\n }\n );\n\n/** Discriminated social feed content. */\nexport type MobileServerSocialFeedItem =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedTradeRow\n | MobileServerSocialFeedPost\n | MobileServerSocialFeedReply;\n\n/** Idle-renewed social feed reading session. Credentials and cursors must be returned unchanged. */\nexport interface MobileServerSocialFeedReadSession {\n /** Session identifier. */\n session_id: string;\n /** Feed, item, or full position history session. */\n mode: MobileSocialFeedReadSessionMode;\n /** Current idle expiration in Unix milliseconds; legitimate session requests renew it. */\n expires_at_ms: number;\n /** Initial update baseline, distinct from the page cursor. */\n update_cursor: string | null;\n /** Credential for this reading session. Do not log or cache publicly. */\n viewer_token: string;\n}\n\n/** Item delta: omitted means unchanged; explicit null clears a prior value. */\nexport interface MobileServerSocialFeedItemPatch {\n /** Updated reply attachment; null clears it, omission leaves it unchanged. */\n attached_position?: MobileServerSocialFeedPositionCard | null;\n /** Updated reply attachment visibility. */\n attachment_status?: MobileSocialFeedAttachmentStatus;\n /** Current author identity, follow state, and qualification badge. */\n author: MobileServerSocialFeedAuthor;\n /** Target item UUID. */\n item_id: string;\n /** Positive integer version string. */\n version: string;\n /** Updated interaction counters. */\n interaction?: MobileServerSocialFeedInteraction;\n /** Updated display timestamp; does not reorder the current list. */\n display_at_ms: number;\n /** Updated aggregate count. */\n trade_count?: number;\n /** Updated quantity in x18 units. */\n quantity_x18?: string;\n /** Updated notional; liquidation Oracle may be unknown. */\n notional_x18?: string | null;\n /** Updated actual execution price. */\n average_price_x18?: string | null;\n /** Historical liquidation entry cost. */\n entry_price_x18?: string | null;\n /** Updated liquidation Oracle. */\n liquidation_oracle_price_x18?: string | null;\n /** Updated actual liquidation execution price. */\n liquidation_execution_price_x18?: string | null;\n /** Updated signed action PnL. */\n realized_pnl_delta_x18?: string | null;\n /** Updated historical row leverage. */\n leverage?: MobileSocialFeedLeverage;\n /** Updated historical leverage reference time. */\n leverage_at_ms?: number | null;\n}\n\n/** A previously authorized target that can no longer be read; shared by wire and client responses. */\nexport interface MobileSocialFeedUnavailableTarget {\n /** Target kind. */\n type: MobileSocialFeedTargetType;\n /** Target UUID. */\n id: string;\n /** Uniform reason prevents leaking inaccessible content. */\n reason: 'unavailable';\n}\n\n/** Readable state of a reply's position attachment. */\nexport type MobileSocialFeedAttachmentStatus =\n | 'none'\n | 'visible'\n | 'unavailable';\n\n/** Supported chart candle intervals. */\nexport type MobileSocialFeedChartInterval =\n | '1m'\n | '5m'\n | '15m'\n | '1h'\n | '4h'\n | '1d';\n\n/** Position lifecycle action. */\nexport type MobileSocialFeedAction =\n | MobileSocialFeedTradeCardAction\n | 'liquidated';\n\n/** Result of resolving a position command. */\nexport type MobileSocialFeedPositionResolution =\n | 'resolved'\n | 'choose_position'\n | 'no_open_position'\n | 'unknown_market';\n\n/** Resolution of a viewing account's trading targets. */\nexport type MobileSocialFeedTradingResolution =\n | 'no_viewing_account'\n | 'none'\n | 'unique'\n | 'choose_position'\n | 'unavailable';\n\n/** Price source for a historical action marker. */\nexport type MobileSocialFeedActionPriceBasis =\n | 'execution'\n | 'liquidation_oracle';\n\n/** Chart source completeness; wholly unavailable sources fail the request. */\nexport type MobileSocialFeedChartDataQuality = 'ready' | 'partial';\n\n/** Projection state of an order's authoritative action segments. */\nexport type MobileSocialFeedActionResolution = 'ready' | 'pending';\n\n/** Explanation for an empty position command result. */\nexport type MobileSocialFeedPositionResolutionReason =\n | 'no_open_position'\n | 'unknown_market';\n\n/** Reason an action cannot be published. */\nexport type MobileSocialFeedActionUnavailableReason =\n | 'position_closed'\n | 'already_published'\n | 'unavailable';\n\n/** Availability of an estimated liquidation price. */\nexport type MobileSocialFeedLiquidationPriceQuality =\n | MobileSocialFeedPnlQuality\n | 'not_applicable';\n\n/** Presence lifecycle reported by an individual page. */\nexport type MobileSocialFeedPresenceState = 'watching' | 'heartbeat' | 'left';\n\n/** Mention offsets refer to Unicode code points in the original text, not UTF-16 indices. */\nexport interface MobileSocialFeedMention {\n /** Mentioned identity. */\n subaccount: Hex;\n /** Inclusive code point offset. */\n start: number;\n /** Exclusive code point offset. */\n end: number;\n /** Label matching the original text. */\n label: string;\n}\n\n/** Parsed drawing; data is opaque to the SDK and may legitimately be false or zero. */\nexport interface MobileServerSocialFeedDrawing {\n /** Already parsed drawing document; do not JSON.parse again. */\n data: unknown;\n /** Original creation time in milliseconds. */\n created_at_ms: number;\n /** Last update time in milliseconds. */\n updated_at_ms: number;\n}\n\n/** Nonrecursive root-post preview carried by replies. */\nexport interface MobileServerSocialFeedCompactCard {\n /** Root item UUID. */\n id: string;\n /** Root author. */\n author: MobileServerSocialFeedAuthor;\n /** Original text excerpt. */\n text_excerpt: string;\n /** Visible position summary, or null. */\n position: Pick<\n MobileServerSocialFeedPositionCard,\n 'position_id' | 'market' | 'direction' | 'state' | 'notional_x18'\n > | null;\n /** Whether the root has published analysis. */\n has_analysis: boolean;\n}\n\n/** Authored position post, including text-only, drawing-only, and combined content. */\nexport interface MobileServerSocialFeedPost extends MobileServerSocialFeedContentBase {\n /** Post discriminant. */\n kind: 'post';\n}\n\n/** Reply with independently permissioned position attachment and nonrecursive root preview. */\nexport interface MobileServerSocialFeedReply extends MobileServerSocialFeedItemBase {\n /** Reply discriminant. */\n kind: 'reply';\n /** Bound images in display order; empty when none. */\n images: MobileServerSocialFeedImage[];\n /** Original text. */\n text: string;\n /** Mentions in the text. */\n mentions: MobileSocialFeedMention[];\n /** Actual root item UUID. */\n root_item_id: string;\n /** Omitted for a direct reply to the root. */\n reply_to_item_id?: string;\n /** Author being replied to, or null. */\n reply_to_author: MobileServerSocialFeedAuthor | null;\n /** Readable attachment; null when absent or unavailable. */\n attached_position: MobileServerSocialFeedPositionCard | null;\n /** Distinguishes an absent attachment from an unreadable one. */\n attachment_status: MobileSocialFeedAttachmentStatus;\n /** Root preview; does not register root exposure. */\n original: MobileServerSocialFeedCompactCard;\n /** Reply interaction state. */\n interaction: MobileServerSocialFeedInteraction;\n}\n\n/** Top-level comment and all readable descendants from the same thread snapshot. */\nexport interface MobileServerSocialFeedCommentGroup extends MobileServerSocialFeedReply {\n /** Flat descendants in creation-time, depth, then UUID order; empty when none. */\n replies: MobileServerSocialFeedReply[];\n}\n\n/** Current eligibility hints; actual writes still recheck the signed author. */\nexport interface MobileServerSocialFeedPublishablePosition {\n /** Candidate position. */\n position: MobileServerSocialFeedPositionCard;\n /** Whether this account can publish. */\n can_publish: boolean;\n /** Whether this account can attach the position to a comment. */\n can_attach_to_comment: boolean;\n /** Whether this account can first add analysis. */\n can_draw_analysis: boolean;\n /** Unavailability explanation, or null. */\n unavailable_reason: string | null;\n}\n\n/** An authoritative lifecycle segment of an order. */\nexport interface MobileServerSocialFeedActionCandidate {\n /** Action UUID. */\n action_id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Current publishing eligibility, not proof of caller ownership. */\n can_publish: boolean;\n /** Publication restriction, or null when eligible. */\n unavailable_reason: MobileSocialFeedActionUnavailableReason | null;\n}\n\n/** Additional history metrics; unavailable values are not zero. */\nexport interface MobileServerSocialFeedHistoryMetrics {\n /** Estimated liquidation price in x18, independent of event Oracle and execution prices. */\n estimated_liquidation_price_x18: string | null;\n /** Availability of the estimated price. */\n liquidation_price_quality: MobileSocialFeedLiquidationPriceQuality;\n /** Source time in milliseconds. */\n liquidation_price_as_of_ms: number | null;\n /** Signed funding amount in x18. */\n funding_pnl_x18: string | null;\n /** Funding availability. */\n funding_quality: MobileSocialFeedPnlQuality;\n /** Funding source time in milliseconds. */\n funding_as_of_ms: number | null;\n}\n\n/** Full position card displayed above its historical timeline. */\nexport interface MobileServerSocialFeedPositionHistoryCard\n extends\n MobileServerSocialFeedPositionCard,\n MobileServerSocialFeedHistoryMetrics {}\n\n/** Persisted action facts, independent of whether a feed item was published. */\nexport interface MobileServerSocialFeedPositionAction {\n /** Action UUID. */\n id: string;\n /** Lifecycle UUID. */\n position_id: string;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Historical margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Quantity before the action, in x18. */\n quantity_before_x18: string;\n /** Quantity after the action, in x18. */\n quantity_after_x18: string;\n /** Executed quantity, in x18. */\n executed_quantity_x18: string;\n /** Actual executed notional in x18; may be unknown for liquidation. */\n executed_notional_x18: string | null;\n /** Actual execution price in x18. */\n average_price_x18: string | null;\n /** Entry price before the action, in x18. */\n entry_price_before_x18: string | null;\n /** Liquidation event Oracle price in x18. */\n liquidation_oracle_price_x18: string | null;\n /** Liquidation Oracle-based notional in x18. */\n liquidation_notional_x18: string | null;\n /** Signed realized trading PnL in x18, excluding ordinary fees and funding. */\n realized_pnl_delta_x18: string | null;\n /** Historical effective leverage. */\n leverage: MobileSocialFeedLeverage;\n /** Leverage source time in milliseconds. */\n leverage_at_ms: number | null;\n /** First event time in milliseconds. */\n first_event_at_ms: number;\n /** Last event time in milliseconds. */\n last_event_at_ms: number;\n /** Decimal-string version. */\n version: string;\n}\n\n/** Full published content appearing in a position timeline. */\nexport type MobileServerSocialFeedHistoryTake =\n | MobileServerSocialFeedTradeCard\n | MobileServerSocialFeedPost;\n\n/** A historical action or authored take; preserve service ordering. */\nexport type MobileServerSocialFeedTimelineEntry =\n | {\n /** Action entry. */\n kind: 'action';\n /** Full action facts. */\n action: MobileServerSocialFeedPositionAction;\n /** Actually associated feed item, or null. */\n related_item_id: string | null;\n /** Full published trade card, or null. */\n related_take: MobileServerSocialFeedTradeCard | null;\n }\n | {\n /** Published take entry. */\n kind: 'take';\n /** Full published content. */\n item: MobileServerSocialFeedHistoryTake;\n };\n\n/** Trusted trading target; this hint does not authorize trading. */\nexport interface MobileServerSocialFeedTradingTarget {\n /** Lifecycle UUID. */\n position_id: string;\n /** Parent identity. */\n identity_subaccount: Hex;\n /** Actual trading subaccount, possibly isolated. */\n trading_subaccount: Hex;\n /** Market product ID. */\n product_id: number;\n /** Margin mode. */\n margin_mode: MobileFeedMarginMode;\n /** Isolated name, or null for cross margin. */\n iso_subaccount_name: string | null;\n /** Position direction. */\n direction: MobileFeedTradePositionDirection;\n /** Source time in milliseconds. */\n state_as_of_ms: number;\n}\n\n/** Viewing-account trading hints, not authenticated permissions. */\nexport interface MobileServerSocialFeedTradingContext {\n /** Market product ID. */\n product_id: number;\n /** Suggested trade direction. */\n suggested_direction: MobileFeedTradePositionDirection;\n /** Resolution of the viewing account's positions. */\n resolution: MobileSocialFeedTradingResolution;\n /** Trusted candidates. */\n candidates: MobileServerSocialFeedTradingTarget[];\n /** Unique candidate, or null. */\n viewer_position_id: string | null;\n /** Whether the selected account has a unique reducible position. */\n can_reduce: boolean;\n}\n\n/** Historical candle; volume is a quantity, not a price. */\nexport interface MobileServerSocialFeedCandle {\n /** Candle start time in milliseconds. */\n timestamp_ms: number;\n /** Open price in x18. */\n open_x18: string;\n /** High price in x18. */\n high_x18: string;\n /** Low price in x18. */\n low_x18: string;\n /** Close price in x18. */\n close_x18: string;\n /** Base asset volume in x18. */\n volume_x18: string;\n}\n\n/** Chart action marker with explicitly identified price basis. */\nexport interface MobileServerSocialFeedActionMarker {\n /** Action UUID. */\n action_id: string;\n /** Event time in milliseconds. */\n timestamp_ms: number;\n /** Price in x18; null does not remove the action. */\n price_x18: string | null;\n /** Lifecycle action. */\n action: MobileSocialFeedAction;\n /** Direction. */\n direction: MobileFeedTradePositionDirection;\n /** Never substitute actual execution for a liquidation Oracle. */\n price_basis: MobileSocialFeedActionPriceBasis;\n}\n\n/** Counts across the authorized position history. */\nexport interface MobileServerSocialFeedHistorySummary {\n /** Action count. */\n action_count: number;\n /** Published take count. */\n take_count: number;\n}\n\n/** Estimated liquidation price and its source time. */\nexport interface MobileServerSocialFeedEstimatedLiquidationLine {\n /** Estimated price in x18. */\n price_x18: string;\n /** Source time in milliseconds. */\n as_of_ms: number;\n}\n\n/** Half-open chart range, preserved across pages. */\nexport interface MobileServerSocialFeedChartRange {\n /** Inclusive start in milliseconds. */\n from_ms: number;\n /** Exclusive end in milliseconds. */\n to_ms: number;\n}\n"],"mappings":";;AA0DA,MAAa,0CAA0C;CAAC;CAAI;CAAI;AAAE;;AAGlE,MAAa,0CAA0C;CACrD;CAAG;CAAK;CAAM;AAChB;;;;;AAwGA,MAAa,wCAAwC,CACnD,QACA,OACF;;;;;AAMA,MAAa,qCAAqC;CAChD;CACA;CACA;CACA;CACA;AACF;;;;;AAqBA,MAAa,2BAA2B,CAAC,SAAS,UAAU"}
@@ -1,2 +1,2 @@
1
- import { C as MobileServerSocialFeedWatchersResponse, S as MobileServerSocialFeedUpdatesResponse, _ as MobileServerSocialFeedPositionResolutionResponse, a as MobileServerProfilesResponse, b as MobileServerSocialFeedResponse, c as MobileServerPublicQuerySuccessResponse, d as MobileServerSocialFeedActionResolutionResponse, f as MobileServerSocialFeedCommentsResponse, g as MobileServerSocialFeedPositionHistoryResponse, h as MobileServerSocialFeedPositionChartResponse, i as MobileServerNotificationPreferencesResponse, l as MobileServerRegisteredWalletResponse, m as MobileServerSocialFeedItemResponse, n as MobileServerFeedResponse, o as MobileServerPublicQueryRequest, p as MobileServerSocialFeedDrawingResponse, r as MobileServerFollowListResponse, s as MobileServerPublicQueryResponseByType, t as MobileServerAvatarPresetsResponse, u as MobileServerSearchProfilesResponse, v as MobileServerSocialFeedPositionsResponse, w as MobileServerUsernameAvailabilityResponse, x as MobileServerSocialFeedTopTradersResponse, y as MobileServerSocialFeedRankedResponse } from "../serverQueryTypes-V1f9yE7L.cjs";
2
- export { MobileServerAvatarPresetsResponse, MobileServerFeedResponse, MobileServerFollowListResponse, MobileServerNotificationPreferencesResponse, MobileServerProfilesResponse, MobileServerPublicQueryRequest, MobileServerPublicQueryResponseByType, MobileServerPublicQuerySuccessResponse, MobileServerRegisteredWalletResponse, MobileServerSearchProfilesResponse, MobileServerSocialFeedActionResolutionResponse, MobileServerSocialFeedCommentsResponse, MobileServerSocialFeedDrawingResponse, MobileServerSocialFeedItemResponse, MobileServerSocialFeedPositionChartResponse, MobileServerSocialFeedPositionHistoryResponse, MobileServerSocialFeedPositionResolutionResponse, MobileServerSocialFeedPositionsResponse, MobileServerSocialFeedRankedResponse, MobileServerSocialFeedResponse, MobileServerSocialFeedTopTradersResponse, MobileServerSocialFeedUpdatesResponse, MobileServerSocialFeedWatchersResponse, MobileServerUsernameAvailabilityResponse };
1
+ import { $ as MobileServerSocialFeedWatchersResponse, A as MobileServerNotificationSubscriptionsResponse, B as MobileServerSocialFeedCommentsResponse, C as MobileServerAvatarPresetsResponse, D as MobileServerNotificationPreferencesResponse, E as MobileServerNotificationInboxV2Response, F as MobileServerRegisteredWalletResponse, G as MobileServerSocialFeedPositionResolutionResponse, H as MobileServerSocialFeedItemResponse, I as MobileServerSearchProfilesResponse, J as MobileServerSocialFeedPositionsResponse, K as MobileServerSocialFeedPositionThought, L as MobileServerSignedQueryResponseByType, M as MobileServerPublicQueryRequest, N as MobileServerPublicQueryResponseByType, O as MobileServerNotificationRegistrationV2Response, P as MobileServerPublicQuerySuccessResponse, Q as MobileServerSocialFeedUpdatesResponse, R as MobileServerSignedQuerySuccessResponse, T as MobileServerFollowListResponse, U as MobileServerSocialFeedPositionChartResponse, V as MobileServerSocialFeedDrawingResponse, W as MobileServerSocialFeedPositionHistoryResponse, X as MobileServerSocialFeedResponse, Y as MobileServerSocialFeedRankedResponse, Z as MobileServerSocialFeedTopTradersResponse, et as MobileServerUsernameAvailabilityResponse, j as MobileServerProfilesResponse, k as MobileServerNotificationSettingsV2Response, q as MobileServerSocialFeedPositionThoughtsResponse, w as MobileServerFeedResponse, z as MobileServerSocialFeedActionResolutionResponse } from "../types-CR5iaKR4.cjs";
2
+ export { MobileServerAvatarPresetsResponse, MobileServerFeedResponse, MobileServerFollowListResponse, MobileServerNotificationInboxV2Response, MobileServerNotificationPreferencesResponse, MobileServerNotificationRegistrationV2Response, MobileServerNotificationSettingsV2Response, MobileServerNotificationSubscriptionsResponse, MobileServerProfilesResponse, MobileServerPublicQueryRequest, MobileServerPublicQueryResponseByType, MobileServerPublicQuerySuccessResponse, MobileServerRegisteredWalletResponse, MobileServerSearchProfilesResponse, MobileServerSignedQueryResponseByType, MobileServerSignedQuerySuccessResponse, MobileServerSocialFeedActionResolutionResponse, MobileServerSocialFeedCommentsResponse, MobileServerSocialFeedDrawingResponse, MobileServerSocialFeedItemResponse, MobileServerSocialFeedPositionChartResponse, MobileServerSocialFeedPositionHistoryResponse, MobileServerSocialFeedPositionResolutionResponse, MobileServerSocialFeedPositionThought, MobileServerSocialFeedPositionThoughtsResponse, MobileServerSocialFeedPositionsResponse, MobileServerSocialFeedRankedResponse, MobileServerSocialFeedResponse, MobileServerSocialFeedTopTradersResponse, MobileServerSocialFeedUpdatesResponse, MobileServerSocialFeedWatchersResponse, MobileServerUsernameAvailabilityResponse };
@@ -1,2 +1,2 @@
1
- import { C as MobileServerSocialFeedWatchersResponse, S as MobileServerSocialFeedUpdatesResponse, _ as MobileServerSocialFeedPositionResolutionResponse, a as MobileServerProfilesResponse, b as MobileServerSocialFeedResponse, c as MobileServerPublicQuerySuccessResponse, d as MobileServerSocialFeedActionResolutionResponse, f as MobileServerSocialFeedCommentsResponse, g as MobileServerSocialFeedPositionHistoryResponse, h as MobileServerSocialFeedPositionChartResponse, i as MobileServerNotificationPreferencesResponse, l as MobileServerRegisteredWalletResponse, m as MobileServerSocialFeedItemResponse, n as MobileServerFeedResponse, o as MobileServerPublicQueryRequest, p as MobileServerSocialFeedDrawingResponse, r as MobileServerFollowListResponse, s as MobileServerPublicQueryResponseByType, t as MobileServerAvatarPresetsResponse, u as MobileServerSearchProfilesResponse, v as MobileServerSocialFeedPositionsResponse, w as MobileServerUsernameAvailabilityResponse, x as MobileServerSocialFeedTopTradersResponse, y as MobileServerSocialFeedRankedResponse } from "../serverQueryTypes-CJcjLB7n.js";
2
- export { MobileServerAvatarPresetsResponse, MobileServerFeedResponse, MobileServerFollowListResponse, MobileServerNotificationPreferencesResponse, MobileServerProfilesResponse, MobileServerPublicQueryRequest, MobileServerPublicQueryResponseByType, MobileServerPublicQuerySuccessResponse, MobileServerRegisteredWalletResponse, MobileServerSearchProfilesResponse, MobileServerSocialFeedActionResolutionResponse, MobileServerSocialFeedCommentsResponse, MobileServerSocialFeedDrawingResponse, MobileServerSocialFeedItemResponse, MobileServerSocialFeedPositionChartResponse, MobileServerSocialFeedPositionHistoryResponse, MobileServerSocialFeedPositionResolutionResponse, MobileServerSocialFeedPositionsResponse, MobileServerSocialFeedRankedResponse, MobileServerSocialFeedResponse, MobileServerSocialFeedTopTradersResponse, MobileServerSocialFeedUpdatesResponse, MobileServerSocialFeedWatchersResponse, MobileServerUsernameAvailabilityResponse };
1
+ import { $ as MobileServerSocialFeedWatchersResponse, A as MobileServerNotificationSubscriptionsResponse, B as MobileServerSocialFeedCommentsResponse, C as MobileServerAvatarPresetsResponse, D as MobileServerNotificationPreferencesResponse, E as MobileServerNotificationInboxV2Response, F as MobileServerRegisteredWalletResponse, G as MobileServerSocialFeedPositionResolutionResponse, H as MobileServerSocialFeedItemResponse, I as MobileServerSearchProfilesResponse, J as MobileServerSocialFeedPositionsResponse, K as MobileServerSocialFeedPositionThought, L as MobileServerSignedQueryResponseByType, M as MobileServerPublicQueryRequest, N as MobileServerPublicQueryResponseByType, O as MobileServerNotificationRegistrationV2Response, P as MobileServerPublicQuerySuccessResponse, Q as MobileServerSocialFeedUpdatesResponse, R as MobileServerSignedQuerySuccessResponse, T as MobileServerFollowListResponse, U as MobileServerSocialFeedPositionChartResponse, V as MobileServerSocialFeedDrawingResponse, W as MobileServerSocialFeedPositionHistoryResponse, X as MobileServerSocialFeedResponse, Y as MobileServerSocialFeedRankedResponse, Z as MobileServerSocialFeedTopTradersResponse, et as MobileServerUsernameAvailabilityResponse, j as MobileServerProfilesResponse, k as MobileServerNotificationSettingsV2Response, q as MobileServerSocialFeedPositionThoughtsResponse, w as MobileServerFeedResponse, z as MobileServerSocialFeedActionResolutionResponse } from "../types-CByl_NyJ.js";
2
+ export { MobileServerAvatarPresetsResponse, MobileServerFeedResponse, MobileServerFollowListResponse, MobileServerNotificationInboxV2Response, MobileServerNotificationPreferencesResponse, MobileServerNotificationRegistrationV2Response, MobileServerNotificationSettingsV2Response, MobileServerNotificationSubscriptionsResponse, MobileServerProfilesResponse, MobileServerPublicQueryRequest, MobileServerPublicQueryResponseByType, MobileServerPublicQuerySuccessResponse, MobileServerRegisteredWalletResponse, MobileServerSearchProfilesResponse, MobileServerSignedQueryResponseByType, MobileServerSignedQuerySuccessResponse, MobileServerSocialFeedActionResolutionResponse, MobileServerSocialFeedCommentsResponse, MobileServerSocialFeedDrawingResponse, MobileServerSocialFeedItemResponse, MobileServerSocialFeedPositionChartResponse, MobileServerSocialFeedPositionHistoryResponse, MobileServerSocialFeedPositionResolutionResponse, MobileServerSocialFeedPositionThought, MobileServerSocialFeedPositionThoughtsResponse, MobileServerSocialFeedPositionsResponse, MobileServerSocialFeedRankedResponse, MobileServerSocialFeedResponse, MobileServerSocialFeedTopTradersResponse, MobileServerSocialFeedUpdatesResponse, MobileServerSocialFeedWatchersResponse, MobileServerUsernameAvailabilityResponse };
@@ -1,2 +1,2 @@
1
- import { a as MobileServerPublicExecuteRequestType, c as MobileServerRequestType, d as MobileServerSocialFeedListParams, f as MobileServerSocialFeedReadParams, i as MobileServerPublicExecuteRequestByType, l as MobileServerSearchProfilesRequest, n as MobileServerFollowListRequest, o as MobileServerPublicQueryRequestByType, r as MobileServerProfilesInclude, s as MobileServerPublicQueryRequestType, t as MobileServerExecuteRequestType, u as MobileServerSocialFeedCategorizedParams } from "../serverRequestTypes-CRlkNSu5.cjs";
2
- export { MobileServerExecuteRequestType, MobileServerFollowListRequest, MobileServerProfilesInclude, MobileServerPublicExecuteRequestByType, MobileServerPublicExecuteRequestType, MobileServerPublicQueryRequestByType, MobileServerPublicQueryRequestType, MobileServerRequestType, MobileServerSearchProfilesRequest, MobileServerSocialFeedCategorizedParams, MobileServerSocialFeedListParams, MobileServerSocialFeedReadParams };
1
+ import { S as MobileServerWithExpoTokenParams, _ as MobileServerSearchProfilesRequest, b as MobileServerSocialFeedListParams, c as MobileServerNotificationSubscriptionsUpdate, d as MobileServerPublicExecuteRequestType, f as MobileServerPublicQueryRequestByType, g as MobileServerRequestType, h as MobileServerRegisterExpoTokenV2Params, l as MobileServerProfilesInclude, m as MobileServerRegisterExpoTokenParams, o as MobileServerExecuteRequestType, p as MobileServerPublicQueryRequestType, s as MobileServerFollowListRequest, u as MobileServerPublicExecuteRequestByType, v as MobileServerSignedQueryRequestType, x as MobileServerSocialFeedReadParams, y as MobileServerSocialFeedCategorizedParams } from "../types-CR5iaKR4.cjs";
2
+ export { MobileServerExecuteRequestType, MobileServerFollowListRequest, MobileServerNotificationSubscriptionsUpdate, MobileServerProfilesInclude, MobileServerPublicExecuteRequestByType, MobileServerPublicExecuteRequestType, MobileServerPublicQueryRequestByType, MobileServerPublicQueryRequestType, MobileServerRegisterExpoTokenParams, MobileServerRegisterExpoTokenV2Params, MobileServerRequestType, MobileServerSearchProfilesRequest, MobileServerSignedQueryRequestType, MobileServerSocialFeedCategorizedParams, MobileServerSocialFeedListParams, MobileServerSocialFeedReadParams, MobileServerWithExpoTokenParams };
@@ -1,2 +1,2 @@
1
- import { a as MobileServerPublicExecuteRequestType, c as MobileServerRequestType, d as MobileServerSocialFeedListParams, f as MobileServerSocialFeedReadParams, i as MobileServerPublicExecuteRequestByType, l as MobileServerSearchProfilesRequest, n as MobileServerFollowListRequest, o as MobileServerPublicQueryRequestByType, r as MobileServerProfilesInclude, s as MobileServerPublicQueryRequestType, t as MobileServerExecuteRequestType, u as MobileServerSocialFeedCategorizedParams } from "../serverRequestTypes-DZoOhV2o.js";
2
- export { MobileServerExecuteRequestType, MobileServerFollowListRequest, MobileServerProfilesInclude, MobileServerPublicExecuteRequestByType, MobileServerPublicExecuteRequestType, MobileServerPublicQueryRequestByType, MobileServerPublicQueryRequestType, MobileServerRequestType, MobileServerSearchProfilesRequest, MobileServerSocialFeedCategorizedParams, MobileServerSocialFeedListParams, MobileServerSocialFeedReadParams };
1
+ import { S as MobileServerWithExpoTokenParams, _ as MobileServerSearchProfilesRequest, b as MobileServerSocialFeedListParams, c as MobileServerNotificationSubscriptionsUpdate, d as MobileServerPublicExecuteRequestType, f as MobileServerPublicQueryRequestByType, g as MobileServerRequestType, h as MobileServerRegisterExpoTokenV2Params, l as MobileServerProfilesInclude, m as MobileServerRegisterExpoTokenParams, o as MobileServerExecuteRequestType, p as MobileServerPublicQueryRequestType, s as MobileServerFollowListRequest, u as MobileServerPublicExecuteRequestByType, v as MobileServerSignedQueryRequestType, x as MobileServerSocialFeedReadParams, y as MobileServerSocialFeedCategorizedParams } from "../types-CByl_NyJ.js";
2
+ export { MobileServerExecuteRequestType, MobileServerFollowListRequest, MobileServerNotificationSubscriptionsUpdate, MobileServerProfilesInclude, MobileServerPublicExecuteRequestByType, MobileServerPublicExecuteRequestType, MobileServerPublicQueryRequestByType, MobileServerPublicQueryRequestType, MobileServerRegisterExpoTokenParams, MobileServerRegisterExpoTokenV2Params, MobileServerRequestType, MobileServerSearchProfilesRequest, MobileServerSignedQueryRequestType, MobileServerSocialFeedCategorizedParams, MobileServerSocialFeedListParams, MobileServerSocialFeedReadParams, MobileServerWithExpoTokenParams };