@mmzaini/starling-sdk 0.1.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 (625) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/attachments.d.cts +3 -0
  4. package/dist/attachments.d.ts +3 -0
  5. package/dist/auth/oauth.d.cts +59 -0
  6. package/dist/auth/oauth.d.ts +59 -0
  7. package/dist/auth/signing.d.cts +27 -0
  8. package/dist/auth/signing.d.ts +27 -0
  9. package/dist/client.d.cts +15 -0
  10. package/dist/client.d.ts +15 -0
  11. package/dist/generated/BaseClient.d.cts +55 -0
  12. package/dist/generated/BaseClient.d.ts +55 -0
  13. package/dist/generated/Client.d.cts +77 -0
  14. package/dist/generated/Client.d.ts +77 -0
  15. package/dist/generated/api/index.d.cts +2 -0
  16. package/dist/generated/api/index.d.ts +2 -0
  17. package/dist/generated/api/resources/accountHolder/client/Client.d.cts +43 -0
  18. package/dist/generated/api/resources/accountHolder/client/Client.d.ts +43 -0
  19. package/dist/generated/api/resources/accountHolder/client/index.d.cts +1 -0
  20. package/dist/generated/api/resources/accountHolder/client/index.d.ts +1 -0
  21. package/dist/generated/api/resources/accountHolder/exports.d.cts +2 -0
  22. package/dist/generated/api/resources/accountHolder/exports.d.ts +2 -0
  23. package/dist/generated/api/resources/accountHolder/index.d.cts +1 -0
  24. package/dist/generated/api/resources/accountHolder/index.d.ts +1 -0
  25. package/dist/generated/api/resources/accounts/client/Client.d.cts +116 -0
  26. package/dist/generated/api/resources/accounts/client/Client.d.ts +116 -0
  27. package/dist/generated/api/resources/accounts/client/index.d.cts +1 -0
  28. package/dist/generated/api/resources/accounts/client/index.d.ts +1 -0
  29. package/dist/generated/api/resources/accounts/client/requests/ConfirmFundsAccountsRequest.d.cts +13 -0
  30. package/dist/generated/api/resources/accounts/client/requests/ConfirmFundsAccountsRequest.d.ts +13 -0
  31. package/dist/generated/api/resources/accounts/client/requests/ExportFeedAccountsRequest.d.cts +5 -0
  32. package/dist/generated/api/resources/accounts/client/requests/ExportFeedAccountsRequest.d.ts +5 -0
  33. package/dist/generated/api/resources/accounts/client/requests/GetBalanceAccountsRequest.d.cts +10 -0
  34. package/dist/generated/api/resources/accounts/client/requests/GetBalanceAccountsRequest.d.ts +10 -0
  35. package/dist/generated/api/resources/accounts/client/requests/GetIdentifiersAccountsRequest.d.cts +10 -0
  36. package/dist/generated/api/resources/accounts/client/requests/GetIdentifiersAccountsRequest.d.ts +10 -0
  37. package/dist/generated/api/resources/accounts/client/requests/index.d.cts +4 -0
  38. package/dist/generated/api/resources/accounts/client/requests/index.d.ts +4 -0
  39. package/dist/generated/api/resources/accounts/exports.d.cts +2 -0
  40. package/dist/generated/api/resources/accounts/exports.d.ts +2 -0
  41. package/dist/generated/api/resources/accounts/index.d.cts +1 -0
  42. package/dist/generated/api/resources/accounts/index.d.ts +1 -0
  43. package/dist/generated/api/resources/addresses/client/Client.d.cts +50 -0
  44. package/dist/generated/api/resources/addresses/client/Client.d.ts +50 -0
  45. package/dist/generated/api/resources/addresses/client/index.d.cts +1 -0
  46. package/dist/generated/api/resources/addresses/client/index.d.ts +1 -0
  47. package/dist/generated/api/resources/addresses/client/requests/AddressUpdateRequest.d.cts +25 -0
  48. package/dist/generated/api/resources/addresses/client/requests/AddressUpdateRequest.d.ts +25 -0
  49. package/dist/generated/api/resources/addresses/client/requests/index.d.cts +1 -0
  50. package/dist/generated/api/resources/addresses/client/requests/index.d.ts +1 -0
  51. package/dist/generated/api/resources/addresses/exports.d.cts +2 -0
  52. package/dist/generated/api/resources/addresses/exports.d.ts +2 -0
  53. package/dist/generated/api/resources/addresses/index.d.cts +1 -0
  54. package/dist/generated/api/resources/addresses/index.d.ts +1 -0
  55. package/dist/generated/api/resources/business/client/Client.d.cts +58 -0
  56. package/dist/generated/api/resources/business/client/Client.d.ts +58 -0
  57. package/dist/generated/api/resources/business/client/index.d.cts +1 -0
  58. package/dist/generated/api/resources/business/client/index.d.ts +1 -0
  59. package/dist/generated/api/resources/business/exports.d.cts +2 -0
  60. package/dist/generated/api/resources/business/exports.d.ts +2 -0
  61. package/dist/generated/api/resources/business/index.d.cts +1 -0
  62. package/dist/generated/api/resources/business/index.d.ts +1 -0
  63. package/dist/generated/api/resources/cards/client/Client.d.cts +181 -0
  64. package/dist/generated/api/resources/cards/client/Client.d.ts +181 -0
  65. package/dist/generated/api/resources/cards/client/index.d.cts +1 -0
  66. package/dist/generated/api/resources/cards/client/index.d.ts +1 -0
  67. package/dist/generated/api/resources/cards/client/requests/SetAtmEnabledCardsRequest.d.cts +12 -0
  68. package/dist/generated/api/resources/cards/client/requests/SetAtmEnabledCardsRequest.d.ts +12 -0
  69. package/dist/generated/api/resources/cards/client/requests/SetCurrencySwitchEnabledCardsRequest.d.cts +14 -0
  70. package/dist/generated/api/resources/cards/client/requests/SetCurrencySwitchEnabledCardsRequest.d.ts +14 -0
  71. package/dist/generated/api/resources/cards/client/requests/SetEnabledCardsRequest.d.cts +12 -0
  72. package/dist/generated/api/resources/cards/client/requests/SetEnabledCardsRequest.d.ts +12 -0
  73. package/dist/generated/api/resources/cards/client/requests/SetGamblingEnabledCardsRequest.d.cts +12 -0
  74. package/dist/generated/api/resources/cards/client/requests/SetGamblingEnabledCardsRequest.d.ts +12 -0
  75. package/dist/generated/api/resources/cards/client/requests/SetMagStripeEnabledCardsRequest.d.cts +12 -0
  76. package/dist/generated/api/resources/cards/client/requests/SetMagStripeEnabledCardsRequest.d.ts +12 -0
  77. package/dist/generated/api/resources/cards/client/requests/SetMobileWalletEnabledCardsRequest.d.cts +12 -0
  78. package/dist/generated/api/resources/cards/client/requests/SetMobileWalletEnabledCardsRequest.d.ts +12 -0
  79. package/dist/generated/api/resources/cards/client/requests/SetOnlineEnabledCardsRequest.d.cts +12 -0
  80. package/dist/generated/api/resources/cards/client/requests/SetOnlineEnabledCardsRequest.d.ts +12 -0
  81. package/dist/generated/api/resources/cards/client/requests/SetPosEnabledCardsRequest.d.cts +12 -0
  82. package/dist/generated/api/resources/cards/client/requests/SetPosEnabledCardsRequest.d.ts +12 -0
  83. package/dist/generated/api/resources/cards/client/requests/index.d.cts +8 -0
  84. package/dist/generated/api/resources/cards/client/requests/index.d.ts +8 -0
  85. package/dist/generated/api/resources/cards/exports.d.cts +2 -0
  86. package/dist/generated/api/resources/cards/exports.d.ts +2 -0
  87. package/dist/generated/api/resources/cards/index.d.cts +1 -0
  88. package/dist/generated/api/resources/cards/index.d.ts +1 -0
  89. package/dist/generated/api/resources/directDebits/client/Client.d.cts +101 -0
  90. package/dist/generated/api/resources/directDebits/client/Client.d.ts +101 -0
  91. package/dist/generated/api/resources/directDebits/client/index.d.cts +1 -0
  92. package/dist/generated/api/resources/directDebits/client/index.d.ts +1 -0
  93. package/dist/generated/api/resources/directDebits/client/requests/CancelDirectDebitsRequest.d.cts +10 -0
  94. package/dist/generated/api/resources/directDebits/client/requests/CancelDirectDebitsRequest.d.ts +10 -0
  95. package/dist/generated/api/resources/directDebits/client/requests/GetDirectDebitsRequest.d.cts +10 -0
  96. package/dist/generated/api/resources/directDebits/client/requests/GetDirectDebitsRequest.d.ts +10 -0
  97. package/dist/generated/api/resources/directDebits/client/requests/ListForAccountDirectDebitsRequest.d.cts +10 -0
  98. package/dist/generated/api/resources/directDebits/client/requests/ListForAccountDirectDebitsRequest.d.ts +10 -0
  99. package/dist/generated/api/resources/directDebits/client/requests/ListPaymentsDirectDebitsRequest.d.cts +13 -0
  100. package/dist/generated/api/resources/directDebits/client/requests/ListPaymentsDirectDebitsRequest.d.ts +13 -0
  101. package/dist/generated/api/resources/directDebits/client/requests/index.d.cts +4 -0
  102. package/dist/generated/api/resources/directDebits/client/requests/index.d.ts +4 -0
  103. package/dist/generated/api/resources/directDebits/exports.d.cts +2 -0
  104. package/dist/generated/api/resources/directDebits/exports.d.ts +2 -0
  105. package/dist/generated/api/resources/directDebits/index.d.cts +1 -0
  106. package/dist/generated/api/resources/directDebits/index.d.ts +1 -0
  107. package/dist/generated/api/resources/feed/client/Client.d.cts +316 -0
  108. package/dist/generated/api/resources/feed/client/Client.d.ts +316 -0
  109. package/dist/generated/api/resources/feed/client/index.d.cts +1 -0
  110. package/dist/generated/api/resources/feed/client/index.d.ts +1 -0
  111. package/dist/generated/api/resources/feed/client/requests/DownloadAttachmentFeedRequest.d.cts +10 -0
  112. package/dist/generated/api/resources/feed/client/requests/DownloadAttachmentFeedRequest.d.ts +10 -0
  113. package/dist/generated/api/resources/feed/client/requests/GetFeedRequest.d.cts +16 -0
  114. package/dist/generated/api/resources/feed/client/requests/GetFeedRequest.d.ts +16 -0
  115. package/dist/generated/api/resources/feed/client/requests/GetMastercardDetailsFeedRequest.d.cts +16 -0
  116. package/dist/generated/api/resources/feed/client/requests/GetMastercardDetailsFeedRequest.d.ts +16 -0
  117. package/dist/generated/api/resources/feed/client/requests/GetReceiptFeedRequest.d.cts +16 -0
  118. package/dist/generated/api/resources/feed/client/requests/GetReceiptFeedRequest.d.ts +16 -0
  119. package/dist/generated/api/resources/feed/client/requests/ListAttachmentsFeedRequest.d.cts +16 -0
  120. package/dist/generated/api/resources/feed/client/requests/ListAttachmentsFeedRequest.d.ts +16 -0
  121. package/dist/generated/api/resources/feed/client/requests/ListBetweenFeedRequest.d.cts +19 -0
  122. package/dist/generated/api/resources/feed/client/requests/ListBetweenFeedRequest.d.ts +19 -0
  123. package/dist/generated/api/resources/feed/client/requests/ListChangesFeedRequest.d.cts +16 -0
  124. package/dist/generated/api/resources/feed/client/requests/ListChangesFeedRequest.d.ts +16 -0
  125. package/dist/generated/api/resources/feed/client/requests/ListPageFeedRequest.d.cts +25 -0
  126. package/dist/generated/api/resources/feed/client/requests/ListPageFeedRequest.d.ts +25 -0
  127. package/dist/generated/api/resources/feed/client/requests/ListReceiptsFeedRequest.d.cts +16 -0
  128. package/dist/generated/api/resources/feed/client/requests/ListReceiptsFeedRequest.d.ts +16 -0
  129. package/dist/generated/api/resources/feed/client/requests/ListSettledBetweenFeedRequest.d.cts +16 -0
  130. package/dist/generated/api/resources/feed/client/requests/ListSettledBetweenFeedRequest.d.ts +16 -0
  131. package/dist/generated/api/resources/feed/client/requests/PutReceiptFeedRequest.d.cts +38 -0
  132. package/dist/generated/api/resources/feed/client/requests/PutReceiptFeedRequest.d.ts +38 -0
  133. package/dist/generated/api/resources/feed/client/requests/UpdateSpendingCategory.d.cts +181 -0
  134. package/dist/generated/api/resources/feed/client/requests/UpdateSpendingCategory.d.ts +181 -0
  135. package/dist/generated/api/resources/feed/client/requests/UserNoteWrapper.d.cts +18 -0
  136. package/dist/generated/api/resources/feed/client/requests/UserNoteWrapper.d.ts +18 -0
  137. package/dist/generated/api/resources/feed/client/requests/index.d.cts +13 -0
  138. package/dist/generated/api/resources/feed/client/requests/index.d.ts +13 -0
  139. package/dist/generated/api/resources/feed/exports.d.cts +2 -0
  140. package/dist/generated/api/resources/feed/exports.d.ts +2 -0
  141. package/dist/generated/api/resources/feed/index.d.cts +2 -0
  142. package/dist/generated/api/resources/feed/index.d.ts +2 -0
  143. package/dist/generated/api/resources/feed/types/ListPageFeedRequestPageToFetch.d.cts +5 -0
  144. package/dist/generated/api/resources/feed/types/ListPageFeedRequestPageToFetch.d.ts +5 -0
  145. package/dist/generated/api/resources/feed/types/index.d.cts +1 -0
  146. package/dist/generated/api/resources/feed/types/index.d.ts +1 -0
  147. package/dist/generated/api/resources/identity/client/Client.d.cts +58 -0
  148. package/dist/generated/api/resources/identity/client/Client.d.ts +58 -0
  149. package/dist/generated/api/resources/identity/client/index.d.cts +1 -0
  150. package/dist/generated/api/resources/identity/client/index.d.ts +1 -0
  151. package/dist/generated/api/resources/identity/exports.d.cts +2 -0
  152. package/dist/generated/api/resources/identity/exports.d.ts +2 -0
  153. package/dist/generated/api/resources/identity/index.d.cts +1 -0
  154. package/dist/generated/api/resources/identity/index.d.ts +1 -0
  155. package/dist/generated/api/resources/index.d.cts +31 -0
  156. package/dist/generated/api/resources/index.d.ts +31 -0
  157. package/dist/generated/api/resources/individual/client/Client.d.cts +46 -0
  158. package/dist/generated/api/resources/individual/client/Client.d.ts +46 -0
  159. package/dist/generated/api/resources/individual/client/index.d.cts +1 -0
  160. package/dist/generated/api/resources/individual/client/index.d.ts +1 -0
  161. package/dist/generated/api/resources/individual/client/requests/UpdateEmailRequest.d.cts +10 -0
  162. package/dist/generated/api/resources/individual/client/requests/UpdateEmailRequest.d.ts +10 -0
  163. package/dist/generated/api/resources/individual/client/requests/index.d.cts +1 -0
  164. package/dist/generated/api/resources/individual/client/requests/index.d.ts +1 -0
  165. package/dist/generated/api/resources/individual/exports.d.cts +2 -0
  166. package/dist/generated/api/resources/individual/exports.d.ts +2 -0
  167. package/dist/generated/api/resources/individual/index.d.cts +1 -0
  168. package/dist/generated/api/resources/individual/index.d.ts +1 -0
  169. package/dist/generated/api/resources/jointAccount/client/Client.d.cts +28 -0
  170. package/dist/generated/api/resources/jointAccount/client/Client.d.ts +28 -0
  171. package/dist/generated/api/resources/jointAccount/client/index.d.cts +1 -0
  172. package/dist/generated/api/resources/jointAccount/client/index.d.ts +1 -0
  173. package/dist/generated/api/resources/jointAccount/exports.d.cts +2 -0
  174. package/dist/generated/api/resources/jointAccount/exports.d.ts +2 -0
  175. package/dist/generated/api/resources/jointAccount/index.d.cts +1 -0
  176. package/dist/generated/api/resources/jointAccount/index.d.ts +1 -0
  177. package/dist/generated/api/resources/payees/client/Client.d.cts +195 -0
  178. package/dist/generated/api/resources/payees/client/Client.d.ts +195 -0
  179. package/dist/generated/api/resources/payees/client/index.d.cts +1 -0
  180. package/dist/generated/api/resources/payees/client/index.d.ts +1 -0
  181. package/dist/generated/api/resources/payees/client/requests/AddAccountPayeesRequest.d.cts +31 -0
  182. package/dist/generated/api/resources/payees/client/requests/AddAccountPayeesRequest.d.ts +31 -0
  183. package/dist/generated/api/resources/payees/client/requests/DeleteAccountPayeesRequest.d.cts +13 -0
  184. package/dist/generated/api/resources/payees/client/requests/DeleteAccountPayeesRequest.d.ts +13 -0
  185. package/dist/generated/api/resources/payees/client/requests/DeletePayeesRequest.d.cts +10 -0
  186. package/dist/generated/api/resources/payees/client/requests/DeletePayeesRequest.d.ts +10 -0
  187. package/dist/generated/api/resources/payees/client/requests/DownloadImagePayeesRequest.d.cts +4 -0
  188. package/dist/generated/api/resources/payees/client/requests/DownloadImagePayeesRequest.d.ts +4 -0
  189. package/dist/generated/api/resources/payees/client/requests/GetPayeesRequest.d.cts +10 -0
  190. package/dist/generated/api/resources/payees/client/requests/GetPayeesRequest.d.ts +10 -0
  191. package/dist/generated/api/resources/payees/client/requests/ListPaymentsPayeesRequest.d.cts +16 -0
  192. package/dist/generated/api/resources/payees/client/requests/ListPaymentsPayeesRequest.d.ts +16 -0
  193. package/dist/generated/api/resources/payees/client/requests/ListScheduledPaymentsPayeesRequest.d.cts +13 -0
  194. package/dist/generated/api/resources/payees/client/requests/ListScheduledPaymentsPayeesRequest.d.ts +13 -0
  195. package/dist/generated/api/resources/payees/client/requests/UpdatePayeesRequest.d.cts +30 -0
  196. package/dist/generated/api/resources/payees/client/requests/UpdatePayeesRequest.d.ts +30 -0
  197. package/dist/generated/api/resources/payees/client/requests/index.d.cts +8 -0
  198. package/dist/generated/api/resources/payees/client/requests/index.d.ts +8 -0
  199. package/dist/generated/api/resources/payees/exports.d.cts +2 -0
  200. package/dist/generated/api/resources/payees/exports.d.ts +2 -0
  201. package/dist/generated/api/resources/payees/index.d.cts +1 -0
  202. package/dist/generated/api/resources/payees/index.d.ts +1 -0
  203. package/dist/generated/api/resources/payments/client/Client.d.cts +251 -0
  204. package/dist/generated/api/resources/payments/client/Client.d.ts +251 -0
  205. package/dist/generated/api/resources/payments/client/index.d.cts +1 -0
  206. package/dist/generated/api/resources/payments/client/index.d.ts +1 -0
  207. package/dist/generated/api/resources/payments/client/requests/CancelStandingOrderPaymentsRequest.d.cts +16 -0
  208. package/dist/generated/api/resources/payments/client/requests/CancelStandingOrderPaymentsRequest.d.ts +16 -0
  209. package/dist/generated/api/resources/payments/client/requests/CreateStandingOrderRequest.d.cts +195 -0
  210. package/dist/generated/api/resources/payments/client/requests/CreateStandingOrderRequest.d.ts +195 -0
  211. package/dist/generated/api/resources/payments/client/requests/GetOrderPaymentsRequest.d.cts +10 -0
  212. package/dist/generated/api/resources/payments/client/requests/GetOrderPaymentsRequest.d.ts +10 -0
  213. package/dist/generated/api/resources/payments/client/requests/GetStandingOrderPaymentsRequest.d.cts +16 -0
  214. package/dist/generated/api/resources/payments/client/requests/GetStandingOrderPaymentsRequest.d.ts +16 -0
  215. package/dist/generated/api/resources/payments/client/requests/InstructLocalPaymentRequest.d.cts +190 -0
  216. package/dist/generated/api/resources/payments/client/requests/InstructLocalPaymentRequest.d.ts +190 -0
  217. package/dist/generated/api/resources/payments/client/requests/ListOrderPaymentsPaymentsRequest.d.cts +10 -0
  218. package/dist/generated/api/resources/payments/client/requests/ListOrderPaymentsPaymentsRequest.d.ts +10 -0
  219. package/dist/generated/api/resources/payments/client/requests/ListStandingOrdersPaymentsRequest.d.cts +13 -0
  220. package/dist/generated/api/resources/payments/client/requests/ListStandingOrdersPaymentsRequest.d.ts +13 -0
  221. package/dist/generated/api/resources/payments/client/requests/ListUpcomingDatesPaymentsRequest.d.cts +18 -0
  222. package/dist/generated/api/resources/payments/client/requests/ListUpcomingDatesPaymentsRequest.d.ts +18 -0
  223. package/dist/generated/api/resources/payments/client/requests/UpdateStandingOrderRequest.d.cts +195 -0
  224. package/dist/generated/api/resources/payments/client/requests/UpdateStandingOrderRequest.d.ts +195 -0
  225. package/dist/generated/api/resources/payments/client/requests/index.d.cts +9 -0
  226. package/dist/generated/api/resources/payments/client/requests/index.d.ts +9 -0
  227. package/dist/generated/api/resources/payments/exports.d.cts +2 -0
  228. package/dist/generated/api/resources/payments/exports.d.ts +2 -0
  229. package/dist/generated/api/resources/payments/index.d.cts +1 -0
  230. package/dist/generated/api/resources/payments/index.d.ts +1 -0
  231. package/dist/generated/api/resources/profileImage/client/Client.d.cts +55 -0
  232. package/dist/generated/api/resources/profileImage/client/Client.d.ts +55 -0
  233. package/dist/generated/api/resources/profileImage/client/index.d.cts +1 -0
  234. package/dist/generated/api/resources/profileImage/client/index.d.ts +1 -0
  235. package/dist/generated/api/resources/profileImage/client/requests/DeleteProfileImageRequest.d.cts +10 -0
  236. package/dist/generated/api/resources/profileImage/client/requests/DeleteProfileImageRequest.d.ts +10 -0
  237. package/dist/generated/api/resources/profileImage/client/requests/DownloadProfileImageRequest.d.cts +4 -0
  238. package/dist/generated/api/resources/profileImage/client/requests/DownloadProfileImageRequest.d.ts +4 -0
  239. package/dist/generated/api/resources/profileImage/client/requests/index.d.cts +2 -0
  240. package/dist/generated/api/resources/profileImage/client/requests/index.d.ts +2 -0
  241. package/dist/generated/api/resources/profileImage/exports.d.cts +2 -0
  242. package/dist/generated/api/resources/profileImage/exports.d.ts +2 -0
  243. package/dist/generated/api/resources/profileImage/index.d.cts +1 -0
  244. package/dist/generated/api/resources/profileImage/index.d.ts +1 -0
  245. package/dist/generated/api/resources/roundUp/client/Client.d.cts +69 -0
  246. package/dist/generated/api/resources/roundUp/client/Client.d.ts +69 -0
  247. package/dist/generated/api/resources/roundUp/client/index.d.cts +1 -0
  248. package/dist/generated/api/resources/roundUp/client/index.d.ts +1 -0
  249. package/dist/generated/api/resources/roundUp/client/requests/DeleteRoundUpRequest.d.cts +9 -0
  250. package/dist/generated/api/resources/roundUp/client/requests/DeleteRoundUpRequest.d.ts +9 -0
  251. package/dist/generated/api/resources/roundUp/client/requests/GetRoundUpRequest.d.cts +10 -0
  252. package/dist/generated/api/resources/roundUp/client/requests/GetRoundUpRequest.d.ts +10 -0
  253. package/dist/generated/api/resources/roundUp/client/requests/RoundUpGoalPayload.d.cts +16 -0
  254. package/dist/generated/api/resources/roundUp/client/requests/RoundUpGoalPayload.d.ts +16 -0
  255. package/dist/generated/api/resources/roundUp/client/requests/index.d.cts +3 -0
  256. package/dist/generated/api/resources/roundUp/client/requests/index.d.ts +3 -0
  257. package/dist/generated/api/resources/roundUp/exports.d.cts +2 -0
  258. package/dist/generated/api/resources/roundUp/exports.d.ts +2 -0
  259. package/dist/generated/api/resources/roundUp/index.d.cts +1 -0
  260. package/dist/generated/api/resources/roundUp/index.d.ts +1 -0
  261. package/dist/generated/api/resources/savingsGoals/client/Client.d.cts +242 -0
  262. package/dist/generated/api/resources/savingsGoals/client/Client.d.ts +242 -0
  263. package/dist/generated/api/resources/savingsGoals/client/index.d.cts +1 -0
  264. package/dist/generated/api/resources/savingsGoals/client/index.d.ts +1 -0
  265. package/dist/generated/api/resources/savingsGoals/client/requests/CreateSavingsGoalsRequest.d.cts +20 -0
  266. package/dist/generated/api/resources/savingsGoals/client/requests/CreateSavingsGoalsRequest.d.ts +20 -0
  267. package/dist/generated/api/resources/savingsGoals/client/requests/DeleteRecurringTransferSavingsGoalsRequest.d.cts +13 -0
  268. package/dist/generated/api/resources/savingsGoals/client/requests/DeleteRecurringTransferSavingsGoalsRequest.d.ts +13 -0
  269. package/dist/generated/api/resources/savingsGoals/client/requests/DeleteSavingsGoalsRequest.d.cts +13 -0
  270. package/dist/generated/api/resources/savingsGoals/client/requests/DeleteSavingsGoalsRequest.d.ts +13 -0
  271. package/dist/generated/api/resources/savingsGoals/client/requests/DownloadPhotoSavingsGoalsRequest.d.cts +13 -0
  272. package/dist/generated/api/resources/savingsGoals/client/requests/DownloadPhotoSavingsGoalsRequest.d.ts +13 -0
  273. package/dist/generated/api/resources/savingsGoals/client/requests/GetRecurringTransferSavingsGoalsRequest.d.cts +13 -0
  274. package/dist/generated/api/resources/savingsGoals/client/requests/GetRecurringTransferSavingsGoalsRequest.d.ts +13 -0
  275. package/dist/generated/api/resources/savingsGoals/client/requests/GetSavingsGoalsRequest.d.cts +13 -0
  276. package/dist/generated/api/resources/savingsGoals/client/requests/GetSavingsGoalsRequest.d.ts +13 -0
  277. package/dist/generated/api/resources/savingsGoals/client/requests/ListSavingsGoalsRequest.d.cts +10 -0
  278. package/dist/generated/api/resources/savingsGoals/client/requests/ListSavingsGoalsRequest.d.ts +10 -0
  279. package/dist/generated/api/resources/savingsGoals/client/requests/ScheduledSavingsPaymentRequestV2.d.cts +28 -0
  280. package/dist/generated/api/resources/savingsGoals/client/requests/ScheduledSavingsPaymentRequestV2.d.ts +28 -0
  281. package/dist/generated/api/resources/savingsGoals/client/requests/TopUpRequestV2.d.cts +24 -0
  282. package/dist/generated/api/resources/savingsGoals/client/requests/TopUpRequestV2.d.ts +24 -0
  283. package/dist/generated/api/resources/savingsGoals/client/requests/UpdateSavingsGoalsRequest.d.cts +23 -0
  284. package/dist/generated/api/resources/savingsGoals/client/requests/UpdateSavingsGoalsRequest.d.ts +23 -0
  285. package/dist/generated/api/resources/savingsGoals/client/requests/WithdrawalRequestV2.d.cts +24 -0
  286. package/dist/generated/api/resources/savingsGoals/client/requests/WithdrawalRequestV2.d.ts +24 -0
  287. package/dist/generated/api/resources/savingsGoals/client/requests/index.d.cts +11 -0
  288. package/dist/generated/api/resources/savingsGoals/client/requests/index.d.ts +11 -0
  289. package/dist/generated/api/resources/savingsGoals/exports.d.cts +2 -0
  290. package/dist/generated/api/resources/savingsGoals/exports.d.ts +2 -0
  291. package/dist/generated/api/resources/savingsGoals/index.d.cts +1 -0
  292. package/dist/generated/api/resources/savingsGoals/index.d.ts +1 -0
  293. package/dist/generated/api/resources/settleUp/client/Client.d.cts +28 -0
  294. package/dist/generated/api/resources/settleUp/client/Client.d.ts +28 -0
  295. package/dist/generated/api/resources/settleUp/client/index.d.cts +1 -0
  296. package/dist/generated/api/resources/settleUp/client/index.d.ts +1 -0
  297. package/dist/generated/api/resources/settleUp/exports.d.cts +2 -0
  298. package/dist/generated/api/resources/settleUp/exports.d.ts +2 -0
  299. package/dist/generated/api/resources/settleUp/index.d.cts +1 -0
  300. package/dist/generated/api/resources/settleUp/index.d.ts +1 -0
  301. package/dist/generated/api/resources/soleTrader/client/Client.d.cts +28 -0
  302. package/dist/generated/api/resources/soleTrader/client/Client.d.ts +28 -0
  303. package/dist/generated/api/resources/soleTrader/client/index.d.cts +1 -0
  304. package/dist/generated/api/resources/soleTrader/client/index.d.ts +1 -0
  305. package/dist/generated/api/resources/soleTrader/exports.d.cts +2 -0
  306. package/dist/generated/api/resources/soleTrader/exports.d.ts +2 -0
  307. package/dist/generated/api/resources/soleTrader/index.d.cts +1 -0
  308. package/dist/generated/api/resources/soleTrader/index.d.ts +1 -0
  309. package/dist/generated/api/resources/spaces/client/Client.d.cts +69 -0
  310. package/dist/generated/api/resources/spaces/client/Client.d.ts +69 -0
  311. package/dist/generated/api/resources/spaces/client/index.d.cts +1 -0
  312. package/dist/generated/api/resources/spaces/client/index.d.ts +1 -0
  313. package/dist/generated/api/resources/spaces/client/requests/DownloadPhotoSpacesRequest.d.cts +13 -0
  314. package/dist/generated/api/resources/spaces/client/requests/DownloadPhotoSpacesRequest.d.ts +13 -0
  315. package/dist/generated/api/resources/spaces/client/requests/GetSpendingSpaceSpacesRequest.d.cts +13 -0
  316. package/dist/generated/api/resources/spaces/client/requests/GetSpendingSpaceSpacesRequest.d.ts +13 -0
  317. package/dist/generated/api/resources/spaces/client/requests/ListSpacesRequest.d.cts +10 -0
  318. package/dist/generated/api/resources/spaces/client/requests/ListSpacesRequest.d.ts +10 -0
  319. package/dist/generated/api/resources/spaces/client/requests/index.d.cts +3 -0
  320. package/dist/generated/api/resources/spaces/client/requests/index.d.ts +3 -0
  321. package/dist/generated/api/resources/spaces/exports.d.cts +2 -0
  322. package/dist/generated/api/resources/spaces/exports.d.ts +2 -0
  323. package/dist/generated/api/resources/spaces/index.d.cts +1 -0
  324. package/dist/generated/api/resources/spaces/index.d.ts +1 -0
  325. package/dist/generated/api/types/AccountHolder.d.cts +17 -0
  326. package/dist/generated/api/types/AccountHolder.d.ts +17 -0
  327. package/dist/generated/api/types/AccountHolderName.d.cts +6 -0
  328. package/dist/generated/api/types/AccountHolderName.d.ts +6 -0
  329. package/dist/generated/api/types/AccountIdentifier.d.cts +20 -0
  330. package/dist/generated/api/types/AccountIdentifier.d.ts +20 -0
  331. package/dist/generated/api/types/AccountIdentifiers.d.cts +15 -0
  332. package/dist/generated/api/types/AccountIdentifiers.d.ts +15 -0
  333. package/dist/generated/api/types/AccountV2.d.cts +214 -0
  334. package/dist/generated/api/types/AccountV2.d.ts +214 -0
  335. package/dist/generated/api/types/Accounts.d.cts +7 -0
  336. package/dist/generated/api/types/Accounts.d.ts +7 -0
  337. package/dist/generated/api/types/AddressV2.d.cts +12 -0
  338. package/dist/generated/api/types/AddressV2.d.ts +12 -0
  339. package/dist/generated/api/types/AddressesV2.d.cts +8 -0
  340. package/dist/generated/api/types/AddressesV2.d.ts +8 -0
  341. package/dist/generated/api/types/AssociatedFeedRoundUp.d.cts +9 -0
  342. package/dist/generated/api/types/AssociatedFeedRoundUp.d.ts +9 -0
  343. package/dist/generated/api/types/BalanceV2.d.cts +13 -0
  344. package/dist/generated/api/types/BalanceV2.d.ts +13 -0
  345. package/dist/generated/api/types/BatchPaymentDetails.d.cts +16 -0
  346. package/dist/generated/api/types/BatchPaymentDetails.d.ts +16 -0
  347. package/dist/generated/api/types/Business.d.cts +12 -0
  348. package/dist/generated/api/types/Business.d.ts +12 -0
  349. package/dist/generated/api/types/Card.d.cts +23 -0
  350. package/dist/generated/api/types/Card.d.ts +23 -0
  351. package/dist/generated/api/types/Cards.d.cts +7 -0
  352. package/dist/generated/api/types/Cards.d.ts +7 -0
  353. package/dist/generated/api/types/CategoryDescription.d.cts +9 -0
  354. package/dist/generated/api/types/CategoryDescription.d.ts +9 -0
  355. package/dist/generated/api/types/ConfirmationOfFundsResponse.d.cts +6 -0
  356. package/dist/generated/api/types/ConfirmationOfFundsResponse.d.ts +6 -0
  357. package/dist/generated/api/types/ConsentInformation.d.cts +4 -0
  358. package/dist/generated/api/types/ConsentInformation.d.ts +4 -0
  359. package/dist/generated/api/types/CreateOrUpdateSavingsGoalResponseV2.d.cts +9 -0
  360. package/dist/generated/api/types/CreateOrUpdateSavingsGoalResponseV2.d.ts +9 -0
  361. package/dist/generated/api/types/CreateStandingOrderResponse.d.cts +7 -0
  362. package/dist/generated/api/types/CreateStandingOrderResponse.d.ts +7 -0
  363. package/dist/generated/api/types/CurrencyAndAmount.d.cts +9 -0
  364. package/dist/generated/api/types/CurrencyAndAmount.d.ts +9 -0
  365. package/dist/generated/api/types/CurrencyFlag.d.cts +7 -0
  366. package/dist/generated/api/types/CurrencyFlag.d.ts +7 -0
  367. package/dist/generated/api/types/DirectDebitMandateV2.d.cts +33 -0
  368. package/dist/generated/api/types/DirectDebitMandateV2.d.ts +33 -0
  369. package/dist/generated/api/types/DirectDebitMandatesV2.d.cts +7 -0
  370. package/dist/generated/api/types/DirectDebitMandatesV2.d.ts +7 -0
  371. package/dist/generated/api/types/DirectDebitPayment.d.cts +9 -0
  372. package/dist/generated/api/types/DirectDebitPayment.d.ts +9 -0
  373. package/dist/generated/api/types/DirectDebitPaymentsResponse.d.cts +8 -0
  374. package/dist/generated/api/types/DirectDebitPaymentsResponse.d.ts +8 -0
  375. package/dist/generated/api/types/Enabling.d.cts +3 -0
  376. package/dist/generated/api/types/Enabling.d.ts +3 -0
  377. package/dist/generated/api/types/ErrorDetail.d.cts +7 -0
  378. package/dist/generated/api/types/ErrorDetail.d.ts +7 -0
  379. package/dist/generated/api/types/ErrorResponse.d.cts +8 -0
  380. package/dist/generated/api/types/ErrorResponse.d.ts +8 -0
  381. package/dist/generated/api/types/FeedItem.d.cts +608 -0
  382. package/dist/generated/api/types/FeedItem.d.ts +608 -0
  383. package/dist/generated/api/types/FeedItemAttachment.d.cts +18 -0
  384. package/dist/generated/api/types/FeedItemAttachment.d.ts +18 -0
  385. package/dist/generated/api/types/FeedItemAttachments.d.cts +4 -0
  386. package/dist/generated/api/types/FeedItemAttachments.d.ts +4 -0
  387. package/dist/generated/api/types/FeedItems.d.cts +7 -0
  388. package/dist/generated/api/types/FeedItems.d.ts +7 -0
  389. package/dist/generated/api/types/IdentityV2.d.cts +12 -0
  390. package/dist/generated/api/types/IdentityV2.d.ts +12 -0
  391. package/dist/generated/api/types/Individual.d.cts +11 -0
  392. package/dist/generated/api/types/Individual.d.ts +11 -0
  393. package/dist/generated/api/types/InstructLocalPaymentResponse.d.cts +7 -0
  394. package/dist/generated/api/types/InstructLocalPaymentResponse.d.ts +7 -0
  395. package/dist/generated/api/types/JointAccount.d.cts +9 -0
  396. package/dist/generated/api/types/JointAccount.d.ts +9 -0
  397. package/dist/generated/api/types/LastPayment.d.cts +8 -0
  398. package/dist/generated/api/types/LastPayment.d.ts +8 -0
  399. package/dist/generated/api/types/Links.d.cts +9 -0
  400. package/dist/generated/api/types/Links.d.ts +9 -0
  401. package/dist/generated/api/types/LocalTime.d.cts +6 -0
  402. package/dist/generated/api/types/LocalTime.d.ts +6 -0
  403. package/dist/generated/api/types/MastercardFeedItem.d.cts +8 -0
  404. package/dist/generated/api/types/MastercardFeedItem.d.ts +8 -0
  405. package/dist/generated/api/types/NextPaymentDatesResponse.d.cts +6 -0
  406. package/dist/generated/api/types/NextPaymentDatesResponse.d.ts +6 -0
  407. package/dist/generated/api/types/PaginatedFeedItems.d.cts +8 -0
  408. package/dist/generated/api/types/PaginatedFeedItems.d.ts +8 -0
  409. package/dist/generated/api/types/Payee.d.cts +34 -0
  410. package/dist/generated/api/types/Payee.d.ts +34 -0
  411. package/dist/generated/api/types/PayeeAccount.d.cts +321 -0
  412. package/dist/generated/api/types/PayeeAccount.d.ts +321 -0
  413. package/dist/generated/api/types/PayeeAccountCreationRequest.d.cts +32 -0
  414. package/dist/generated/api/types/PayeeAccountCreationRequest.d.ts +32 -0
  415. package/dist/generated/api/types/PayeeAccountCreationResponse.d.cts +11 -0
  416. package/dist/generated/api/types/PayeeAccountCreationResponse.d.ts +11 -0
  417. package/dist/generated/api/types/PayeeCreationRequest.d.cts +30 -0
  418. package/dist/generated/api/types/PayeeCreationRequest.d.ts +30 -0
  419. package/dist/generated/api/types/PayeeCreationResponse.d.cts +11 -0
  420. package/dist/generated/api/types/PayeeCreationResponse.d.ts +11 -0
  421. package/dist/generated/api/types/PayeePayment.d.cts +176 -0
  422. package/dist/generated/api/types/PayeePayment.d.ts +176 -0
  423. package/dist/generated/api/types/Payees.d.cts +7 -0
  424. package/dist/generated/api/types/Payees.d.ts +7 -0
  425. package/dist/generated/api/types/PaymentOrderPayment.d.cts +22 -0
  426. package/dist/generated/api/types/PaymentOrderPayment.d.ts +22 -0
  427. package/dist/generated/api/types/PaymentOrderPaymentsResponse.d.cts +7 -0
  428. package/dist/generated/api/types/PaymentOrderPaymentsResponse.d.ts +7 -0
  429. package/dist/generated/api/types/PaymentOrderV2.d.cts +177 -0
  430. package/dist/generated/api/types/PaymentOrderV2.d.ts +177 -0
  431. package/dist/generated/api/types/PaymentRecipient.d.cts +29 -0
  432. package/dist/generated/api/types/PaymentRecipient.d.ts +29 -0
  433. package/dist/generated/api/types/PaymentStatusDetails.d.cts +30 -0
  434. package/dist/generated/api/types/PaymentStatusDetails.d.ts +30 -0
  435. package/dist/generated/api/types/Payments.d.cts +7 -0
  436. package/dist/generated/api/types/Payments.d.ts +7 -0
  437. package/dist/generated/api/types/Receipt.d.cts +221 -0
  438. package/dist/generated/api/types/Receipt.d.ts +221 -0
  439. package/dist/generated/api/types/ReceiptCreationResponse.d.cts +7 -0
  440. package/dist/generated/api/types/ReceiptCreationResponse.d.ts +7 -0
  441. package/dist/generated/api/types/ReceiptItem.d.cts +25 -0
  442. package/dist/generated/api/types/ReceiptItem.d.ts +25 -0
  443. package/dist/generated/api/types/ReceiptMerchant.d.cts +12 -0
  444. package/dist/generated/api/types/ReceiptMerchant.d.ts +12 -0
  445. package/dist/generated/api/types/ReceiptNote.d.cts +9 -0
  446. package/dist/generated/api/types/ReceiptNote.d.ts +9 -0
  447. package/dist/generated/api/types/ReceiptPaymentMethod.d.cts +5 -0
  448. package/dist/generated/api/types/ReceiptPaymentMethod.d.ts +5 -0
  449. package/dist/generated/api/types/ReceiptSubItem.d.cts +7 -0
  450. package/dist/generated/api/types/ReceiptSubItem.d.ts +7 -0
  451. package/dist/generated/api/types/ReceiptTaxDetail.d.cts +206 -0
  452. package/dist/generated/api/types/ReceiptTaxDetail.d.ts +206 -0
  453. package/dist/generated/api/types/RecurrenceRule.d.cts +54 -0
  454. package/dist/generated/api/types/RecurrenceRule.d.ts +54 -0
  455. package/dist/generated/api/types/RecurrenceRuleV2.d.cts +33 -0
  456. package/dist/generated/api/types/RecurrenceRuleV2.d.ts +33 -0
  457. package/dist/generated/api/types/RoundUpGoalDetails.d.cts +7 -0
  458. package/dist/generated/api/types/RoundUpGoalDetails.d.ts +7 -0
  459. package/dist/generated/api/types/RoundUpGoalResponse.d.cts +6 -0
  460. package/dist/generated/api/types/RoundUpGoalResponse.d.ts +6 -0
  461. package/dist/generated/api/types/SavingsGoalOrdered.d.cts +30 -0
  462. package/dist/generated/api/types/SavingsGoalOrdered.d.ts +30 -0
  463. package/dist/generated/api/types/SavingsGoalPhotoV2.d.cts +7 -0
  464. package/dist/generated/api/types/SavingsGoalPhotoV2.d.ts +7 -0
  465. package/dist/generated/api/types/SavingsGoalRequestV2.d.cts +13 -0
  466. package/dist/generated/api/types/SavingsGoalRequestV2.d.ts +13 -0
  467. package/dist/generated/api/types/SavingsGoalTransferResponseV2.d.cts +9 -0
  468. package/dist/generated/api/types/SavingsGoalTransferResponseV2.d.ts +9 -0
  469. package/dist/generated/api/types/SavingsGoalV2.d.cts +28 -0
  470. package/dist/generated/api/types/SavingsGoalV2.d.ts +28 -0
  471. package/dist/generated/api/types/SavingsGoalsV2.d.cts +7 -0
  472. package/dist/generated/api/types/SavingsGoalsV2.d.ts +7 -0
  473. package/dist/generated/api/types/ScheduledPayment.d.cts +199 -0
  474. package/dist/generated/api/types/ScheduledPayment.d.ts +199 -0
  475. package/dist/generated/api/types/ScheduledPaymentResponse.d.cts +5 -0
  476. package/dist/generated/api/types/ScheduledPaymentResponse.d.ts +5 -0
  477. package/dist/generated/api/types/ScheduledSavingsPaymentV2.d.cts +14 -0
  478. package/dist/generated/api/types/ScheduledSavingsPaymentV2.d.ts +14 -0
  479. package/dist/generated/api/types/SettleUpProfile.d.cts +16 -0
  480. package/dist/generated/api/types/SettleUpProfile.d.ts +16 -0
  481. package/dist/generated/api/types/SignedCurrencyAndAmount.d.cts +6 -0
  482. package/dist/generated/api/types/SignedCurrencyAndAmount.d.ts +6 -0
  483. package/dist/generated/api/types/SoleTrader.d.cts +513 -0
  484. package/dist/generated/api/types/SoleTrader.d.ts +513 -0
  485. package/dist/generated/api/types/SpacePhoto.d.cts +7 -0
  486. package/dist/generated/api/types/SpacePhoto.d.ts +7 -0
  487. package/dist/generated/api/types/Spaces.d.cts +8 -0
  488. package/dist/generated/api/types/Spaces.d.ts +8 -0
  489. package/dist/generated/api/types/SpendingSpace.d.cts +41 -0
  490. package/dist/generated/api/types/SpendingSpace.d.ts +41 -0
  491. package/dist/generated/api/types/StandingOrder.d.cts +186 -0
  492. package/dist/generated/api/types/StandingOrder.d.ts +186 -0
  493. package/dist/generated/api/types/StandingOrderRecurrence.d.cts +25 -0
  494. package/dist/generated/api/types/StandingOrderRecurrence.d.ts +25 -0
  495. package/dist/generated/api/types/StandingOrdersResponse.d.cts +7 -0
  496. package/dist/generated/api/types/StandingOrdersResponse.d.ts +7 -0
  497. package/dist/generated/api/types/UpdateStandingOrderResponse.d.cts +7 -0
  498. package/dist/generated/api/types/UpdateStandingOrderResponse.d.ts +7 -0
  499. package/dist/generated/api/types/index.d.cts +87 -0
  500. package/dist/generated/api/types/index.d.ts +87 -0
  501. package/dist/generated/auth/BearerAuthProvider.d.cts +20 -0
  502. package/dist/generated/auth/BearerAuthProvider.d.ts +20 -0
  503. package/dist/generated/auth/index.d.cts +1 -0
  504. package/dist/generated/auth/index.d.ts +1 -0
  505. package/dist/generated/core/auth/AuthProvider.d.cts +8 -0
  506. package/dist/generated/core/auth/AuthProvider.d.ts +8 -0
  507. package/dist/generated/core/auth/AuthRequest.d.cts +9 -0
  508. package/dist/generated/core/auth/AuthRequest.d.ts +9 -0
  509. package/dist/generated/core/auth/BasicAuth.d.cts +8 -0
  510. package/dist/generated/core/auth/BasicAuth.d.ts +8 -0
  511. package/dist/generated/core/auth/BearerToken.d.cts +7 -0
  512. package/dist/generated/core/auth/BearerToken.d.ts +7 -0
  513. package/dist/generated/core/auth/NoOpAuthProvider.d.cts +5 -0
  514. package/dist/generated/core/auth/NoOpAuthProvider.d.ts +5 -0
  515. package/dist/generated/core/auth/index.d.cts +5 -0
  516. package/dist/generated/core/auth/index.d.ts +5 -0
  517. package/dist/generated/core/base64.d.cts +2 -0
  518. package/dist/generated/core/base64.d.ts +2 -0
  519. package/dist/generated/core/exports.d.cts +2 -0
  520. package/dist/generated/core/exports.d.ts +2 -0
  521. package/dist/generated/core/fetcher/APIResponse.d.cts +20 -0
  522. package/dist/generated/core/fetcher/APIResponse.d.ts +20 -0
  523. package/dist/generated/core/fetcher/BinaryResponse.d.cts +19 -0
  524. package/dist/generated/core/fetcher/BinaryResponse.d.ts +19 -0
  525. package/dist/generated/core/fetcher/EndpointMetadata.d.cts +13 -0
  526. package/dist/generated/core/fetcher/EndpointMetadata.d.ts +13 -0
  527. package/dist/generated/core/fetcher/EndpointSupplier.d.cts +12 -0
  528. package/dist/generated/core/fetcher/EndpointSupplier.d.ts +12 -0
  529. package/dist/generated/core/fetcher/Fetcher.d.cts +56 -0
  530. package/dist/generated/core/fetcher/Fetcher.d.ts +56 -0
  531. package/dist/generated/core/fetcher/Headers.d.cts +2 -0
  532. package/dist/generated/core/fetcher/Headers.d.ts +2 -0
  533. package/dist/generated/core/fetcher/HttpResponsePromise.d.cts +58 -0
  534. package/dist/generated/core/fetcher/HttpResponsePromise.d.ts +58 -0
  535. package/dist/generated/core/fetcher/RawResponse.d.cts +29 -0
  536. package/dist/generated/core/fetcher/RawResponse.d.ts +29 -0
  537. package/dist/generated/core/fetcher/Supplier.d.cts +4 -0
  538. package/dist/generated/core/fetcher/Supplier.d.ts +4 -0
  539. package/dist/generated/core/fetcher/createRequestUrl.d.cts +1 -0
  540. package/dist/generated/core/fetcher/createRequestUrl.d.ts +1 -0
  541. package/dist/generated/core/fetcher/getErrorResponseBody.d.cts +1 -0
  542. package/dist/generated/core/fetcher/getErrorResponseBody.d.ts +1 -0
  543. package/dist/generated/core/fetcher/getFetchFn.d.cts +1 -0
  544. package/dist/generated/core/fetcher/getFetchFn.d.ts +1 -0
  545. package/dist/generated/core/fetcher/getHeader.d.cts +1 -0
  546. package/dist/generated/core/fetcher/getHeader.d.ts +1 -0
  547. package/dist/generated/core/fetcher/getRequestBody.d.cts +7 -0
  548. package/dist/generated/core/fetcher/getRequestBody.d.ts +7 -0
  549. package/dist/generated/core/fetcher/getResponseBody.d.cts +6 -0
  550. package/dist/generated/core/fetcher/getResponseBody.d.ts +6 -0
  551. package/dist/generated/core/fetcher/index.d.cts +13 -0
  552. package/dist/generated/core/fetcher/index.d.ts +13 -0
  553. package/dist/generated/core/fetcher/makePassthroughRequest.d.cts +49 -0
  554. package/dist/generated/core/fetcher/makePassthroughRequest.d.ts +49 -0
  555. package/dist/generated/core/fetcher/makeRequest.d.cts +6 -0
  556. package/dist/generated/core/fetcher/makeRequest.d.ts +6 -0
  557. package/dist/generated/core/fetcher/redactUrl.d.cts +2 -0
  558. package/dist/generated/core/fetcher/redactUrl.d.ts +2 -0
  559. package/dist/generated/core/fetcher/requestWithRetries.d.cts +1 -0
  560. package/dist/generated/core/fetcher/requestWithRetries.d.ts +1 -0
  561. package/dist/generated/core/fetcher/signals.d.cts +5 -0
  562. package/dist/generated/core/fetcher/signals.d.ts +5 -0
  563. package/dist/generated/core/file/exports.d.cts +1 -0
  564. package/dist/generated/core/file/exports.d.ts +1 -0
  565. package/dist/generated/core/file/file.d.cts +10 -0
  566. package/dist/generated/core/file/file.d.ts +10 -0
  567. package/dist/generated/core/file/index.d.cts +2 -0
  568. package/dist/generated/core/file/index.d.ts +2 -0
  569. package/dist/generated/core/file/types.d.cts +66 -0
  570. package/dist/generated/core/file/types.d.ts +66 -0
  571. package/dist/generated/core/headers.d.cts +2 -0
  572. package/dist/generated/core/headers.d.ts +2 -0
  573. package/dist/generated/core/index.d.cts +7 -0
  574. package/dist/generated/core/index.d.ts +7 -0
  575. package/dist/generated/core/json.d.cts +15 -0
  576. package/dist/generated/core/json.d.ts +15 -0
  577. package/dist/generated/core/logging/exports.d.cts +18 -0
  578. package/dist/generated/core/logging/exports.d.ts +18 -0
  579. package/dist/generated/core/logging/index.d.cts +1 -0
  580. package/dist/generated/core/logging/index.d.ts +1 -0
  581. package/dist/generated/core/logging/logger.d.cts +126 -0
  582. package/dist/generated/core/logging/logger.d.ts +126 -0
  583. package/dist/generated/core/requestBody.d.cts +12 -0
  584. package/dist/generated/core/requestBody.d.ts +12 -0
  585. package/dist/generated/core/runtime/index.d.cts +1 -0
  586. package/dist/generated/core/runtime/index.d.ts +1 -0
  587. package/dist/generated/core/runtime/runtime.d.cts +28 -0
  588. package/dist/generated/core/runtime/runtime.d.ts +28 -0
  589. package/dist/generated/core/url/QueryStringBuilder.d.cts +47 -0
  590. package/dist/generated/core/url/QueryStringBuilder.d.ts +47 -0
  591. package/dist/generated/core/url/encodePathParam.d.cts +1 -0
  592. package/dist/generated/core/url/encodePathParam.d.ts +1 -0
  593. package/dist/generated/core/url/index.d.cts +4 -0
  594. package/dist/generated/core/url/index.d.ts +4 -0
  595. package/dist/generated/core/url/join.d.cts +1 -0
  596. package/dist/generated/core/url/join.d.ts +1 -0
  597. package/dist/generated/core/url/qs.d.cts +7 -0
  598. package/dist/generated/core/url/qs.d.ts +7 -0
  599. package/dist/generated/environments.d.cts +5 -0
  600. package/dist/generated/environments.d.ts +5 -0
  601. package/dist/generated/errors/StarlingError.d.cts +15 -0
  602. package/dist/generated/errors/StarlingError.d.ts +15 -0
  603. package/dist/generated/errors/StarlingTimeoutError.d.cts +6 -0
  604. package/dist/generated/errors/StarlingTimeoutError.d.ts +6 -0
  605. package/dist/generated/errors/handleNonStatusCodeError.d.cts +2 -0
  606. package/dist/generated/errors/handleNonStatusCodeError.d.ts +2 -0
  607. package/dist/generated/errors/index.d.cts +2 -0
  608. package/dist/generated/errors/index.d.ts +2 -0
  609. package/dist/generated/exports.d.cts +1 -0
  610. package/dist/generated/exports.d.ts +1 -0
  611. package/dist/generated/index.d.cts +6 -0
  612. package/dist/generated/index.d.ts +6 -0
  613. package/dist/index.cjs +11273 -0
  614. package/dist/index.cjs.map +1 -0
  615. package/dist/index.d.cts +6 -0
  616. package/dist/index.d.ts +6 -0
  617. package/dist/index.js +11227 -0
  618. package/dist/index.js.map +1 -0
  619. package/dist/metadata/signed-routes.d.cts +19 -0
  620. package/dist/metadata/signed-routes.d.ts +19 -0
  621. package/dist/pagination.d.cts +12 -0
  622. package/dist/pagination.d.ts +12 -0
  623. package/dist/transport.d.cts +3 -0
  624. package/dist/transport.d.ts +3 -0
  625. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/generated/api/index.ts","../src/generated/api/resources/accountHolder/index.ts","../src/generated/api/resources/accounts/index.ts","../src/generated/api/resources/addresses/index.ts","../src/generated/api/resources/business/index.ts","../src/generated/api/resources/cards/index.ts","../src/generated/api/resources/directDebits/index.ts","../src/generated/api/resources/feed/client/requests/UpdateSpendingCategory.ts","../src/generated/api/resources/feed/index.ts","../src/generated/api/resources/feed/types/ListPageFeedRequestPageToFetch.ts","../src/generated/api/resources/identity/index.ts","../src/generated/api/resources/individual/index.ts","../src/generated/api/resources/jointAccount/index.ts","../src/generated/api/resources/payees/index.ts","../src/generated/api/resources/payments/client/requests/CreateStandingOrderRequest.ts","../src/generated/api/resources/payments/client/requests/InstructLocalPaymentRequest.ts","../src/generated/api/resources/payments/client/requests/UpdateStandingOrderRequest.ts","../src/generated/api/resources/payments/index.ts","../src/generated/api/resources/profileImage/index.ts","../src/generated/api/resources/roundUp/index.ts","../src/generated/api/resources/savingsGoals/index.ts","../src/generated/api/resources/settleUp/index.ts","../src/generated/api/resources/soleTrader/index.ts","../src/generated/api/resources/spaces/index.ts","../src/generated/api/types/AccountHolder.ts","../src/generated/api/types/AccountIdentifier.ts","../src/generated/api/types/AccountV2.ts","../src/generated/api/types/BatchPaymentDetails.ts","../src/generated/api/types/DirectDebitMandateV2.ts","../src/generated/api/types/FeedItem.ts","../src/generated/api/types/FeedItemAttachment.ts","../src/generated/api/types/Payee.ts","../src/generated/api/types/PayeeAccount.ts","../src/generated/api/types/PayeeAccountCreationRequest.ts","../src/generated/api/types/PayeeCreationRequest.ts","../src/generated/api/types/PayeePayment.ts","../src/generated/api/types/PaymentOrderV2.ts","../src/generated/api/types/PaymentRecipient.ts","../src/generated/api/types/PaymentStatusDetails.ts","../src/generated/api/types/Receipt.ts","../src/generated/api/types/ReceiptItem.ts","../src/generated/api/types/ReceiptTaxDetail.ts","../src/generated/api/types/RecurrenceRule.ts","../src/generated/api/types/RecurrenceRuleV2.ts","../src/generated/api/types/SavingsGoalOrdered.ts","../src/generated/api/types/SavingsGoalV2.ts","../src/generated/api/types/ScheduledPayment.ts","../src/generated/api/types/SettleUpProfile.ts","../src/generated/api/types/SoleTrader.ts","../src/generated/api/types/SpendingSpace.ts","../src/generated/api/types/StandingOrder.ts","../src/generated/api/types/StandingOrderRecurrence.ts","../src/generated/core/auth/AuthProvider.ts","../src/generated/core/auth/NoOpAuthProvider.ts","../src/generated/core/fetcher/EndpointSupplier.ts","../src/generated/core/json.ts","../src/generated/core/logging/logger.ts","../src/generated/core/url/qs.ts","../src/generated/core/fetcher/createRequestUrl.ts","../src/generated/core/fetcher/BinaryResponse.ts","../src/generated/core/fetcher/getResponseBody.ts","../src/generated/core/fetcher/getErrorResponseBody.ts","../src/generated/core/fetcher/getFetchFn.ts","../src/generated/core/fetcher/getRequestBody.ts","../src/generated/core/fetcher/Headers.ts","../src/generated/core/fetcher/signals.ts","../src/generated/core/fetcher/makeRequest.ts","../src/generated/core/fetcher/RawResponse.ts","../src/generated/core/fetcher/redactUrl.ts","../src/generated/core/fetcher/requestWithRetries.ts","../src/generated/core/fetcher/Fetcher.ts","../src/generated/core/fetcher/HttpResponsePromise.ts","../src/generated/core/url/join.ts","../src/generated/core/fetcher/Supplier.ts","../src/generated/core/fetcher/makePassthroughRequest.ts","../src/generated/core/file/index.ts","../src/generated/core/file/file.ts","../src/generated/core/logging/index.ts","../src/generated/core/runtime/runtime.ts","../src/generated/core/url/index.ts","../src/generated/core/url/encodePathParam.ts","../src/generated/core/url/QueryStringBuilder.ts","../src/generated/errors/StarlingError.ts","../src/generated/errors/StarlingTimeoutError.ts","../src/generated/auth/BearerAuthProvider.ts","../src/generated/core/headers.ts","../src/generated/BaseClient.ts","../src/generated/environments.ts","../src/generated/errors/handleNonStatusCodeError.ts","../src/generated/api/resources/accountHolder/client/Client.ts","../src/generated/api/resources/accounts/client/Client.ts","../src/generated/core/requestBody.ts","../src/generated/api/resources/addresses/client/Client.ts","../src/generated/api/resources/business/client/Client.ts","../src/generated/api/resources/cards/client/Client.ts","../src/generated/api/resources/directDebits/client/Client.ts","../src/generated/api/resources/feed/client/Client.ts","../src/generated/api/resources/identity/client/Client.ts","../src/generated/api/resources/individual/client/Client.ts","../src/generated/api/resources/jointAccount/client/Client.ts","../src/generated/api/resources/payees/client/Client.ts","../src/generated/api/resources/payments/client/Client.ts","../src/generated/api/resources/profileImage/client/Client.ts","../src/generated/api/resources/roundUp/client/Client.ts","../src/generated/api/resources/savingsGoals/client/Client.ts","../src/generated/api/resources/settleUp/client/Client.ts","../src/generated/api/resources/soleTrader/client/Client.ts","../src/generated/api/resources/spaces/client/Client.ts","../src/generated/Client.ts","../src/generated/core/logging/exports.ts","../src/auth/oauth.ts","../src/auth/signing.ts","../src/transport.ts","../src/metadata/signed-routes.ts","../src/client.ts","../src/pagination.ts","../src/attachments.ts"],"sourcesContent":["export * from \"./generated/index.js\";\nexport * from \"./auth/oauth.js\";\nexport * from \"./auth/signing.js\";\nexport { StarlingClient, type StarlingClientOptions } from \"./client.js\";\nexport * from \"./pagination.js\";\nexport * from \"./attachments.js\";\n","export * from \"./resources/index.js\";\nexport * from \"./types/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * @example\n * {\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * spendingCategory: \"BIKE\"\n * }\n */\nexport interface UpdateSpendingCategory {\n /** Account uid */\n accountUid: string;\n /** Category uid */\n categoryUid: string;\n /** Feed item uid */\n feedItemUid: string;\n /** The category of a transaction */\n spendingCategory: UpdateSpendingCategory.SpendingCategory;\n permanentSpendingCategoryUpdate?: boolean;\n previousSpendingCategoryReferencesUpdate?: boolean;\n}\n\nexport namespace UpdateSpendingCategory {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","export * from \"./client/index.js\";\nexport * from \"./types/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const ListPageFeedRequestPageToFetch = {\n Next: \"NEXT\",\n Previous: \"PREVIOUS\",\n} as const;\nexport type ListPageFeedRequestPageToFetch =\n (typeof ListPageFeedRequestPageToFetch)[keyof typeof ListPageFeedRequestPageToFetch];\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../../../../index.js\";\n\n/**\n * @example\n * {\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * externalIdentifier: \"a unique identifier to ensure idempotency\",\n * reference: \"Monthly Expenses\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * },\n * standingOrderRecurrence: {\n * startDate: \"2019-09-23\",\n * frequency: \"DAILY\"\n * }\n * }\n */\nexport interface CreateStandingOrderRequest {\n /** Account uid */\n accountUid: string;\n /** Category uid */\n categoryUid: string;\n /** External identifier for the standing order request */\n externalIdentifier: string;\n /** The desired payment recipient. Either paymentRecipient or destinationPayeeAccountUid must be present */\n destinationPayeeAccountUid?: string;\n paymentRecipient?: Starling.PaymentRecipient;\n /** The payment reference */\n reference: string;\n amount: Starling.CurrencyAndAmount;\n standingOrderRecurrence: Starling.StandingOrderRecurrence;\n /** The category of a transaction */\n spendingCategory?: CreateStandingOrderRequest.SpendingCategory;\n}\n\nexport namespace CreateStandingOrderRequest {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../../../../index.js\";\n\n/**\n * @example\n * {\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * externalIdentifier: \"Unique identifier to ensure idempotency\",\n * reference: \"December Expenses\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * }\n * }\n */\nexport interface InstructLocalPaymentRequest {\n /** Account uid */\n accountUid: string;\n /** Category uid */\n categoryUid: string;\n /** Identifier for the payment request, generated by you. Must be unique for each payment request you create */\n externalIdentifier: string;\n /** The desired payment recipient. Either paymentRecipient or destinationPayeeAccountUid must be present */\n destinationPayeeAccountUid?: string;\n paymentRecipient?: Starling.PaymentRecipient;\n /** The payment reference. The 35 character limit applies to SEPA payments (Euro accounts). For FPS payments (GBP accounts), the limit is 18 characters */\n reference: string;\n amount: Starling.CurrencyAndAmount;\n /** The category of a transaction */\n spendingCategory?: InstructLocalPaymentRequest.SpendingCategory;\n}\n\nexport namespace InstructLocalPaymentRequest {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../../../../index.js\";\n\n/**\n * @example\n * {\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUidPathParam: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUid: \"33443344-3344-3344-3344-334433443344\",\n * reference: \"Payment reference\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * },\n * standingOrderRecurrence: {\n * startDate: \"2019-09-23\",\n * frequency: \"DAILY\"\n * }\n * }\n */\nexport interface UpdateStandingOrderRequest {\n /** Account uid */\n accountUid: string;\n /** Category uid */\n categoryUid: string;\n /** Payment order uid */\n paymentOrderUidPathParam: string;\n /** UID of this payment order */\n paymentOrderUid: string;\n /** The payment reference */\n reference: string;\n amount: Starling.CurrencyAndAmount;\n standingOrderRecurrence: Starling.StandingOrderRecurrence;\n /** The category of a transaction */\n spendingCategory?: UpdateStandingOrderRequest.SpendingCategory;\n}\n\nexport namespace UpdateStandingOrderRequest {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","export * from \"./client/index.js\";\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Information about the account holder type\n */\nexport interface AccountHolder {\n accountHolderUid?: string | undefined;\n accountHolderType?: AccountHolder.AccountHolderType | undefined;\n}\n\nexport namespace AccountHolder {\n export const AccountHolderType = {\n Individual: \"INDIVIDUAL\",\n Business: \"BUSINESS\",\n SoleTrader: \"SOLE_TRADER\",\n Joint: \"JOINT\",\n BankingAsAService: \"BANKING_AS_A_SERVICE\",\n } as const;\n export type AccountHolderType = (typeof AccountHolderType)[keyof typeof AccountHolderType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Bank and account identifiers for a particular identifier type\n */\nexport interface AccountIdentifier {\n /** The type of account identifier */\n identifierType?: AccountIdentifier.IdentifierType | undefined;\n /** Identifier to uniquely identify the bank, e.g. a sort code or BIC */\n bankIdentifier?: string | undefined;\n /** Identifier to uniquely identify the account at the bank, e.g. an account number or IBAN */\n accountIdentifier?: string | undefined;\n}\n\nexport namespace AccountIdentifier {\n /** The type of account identifier */\n export const IdentifierType = {\n SortCode: \"SORT_CODE\",\n IbanBic: \"IBAN_BIC\",\n AbaAch: \"ABA_ACH\",\n } as const;\n export type IdentifierType = (typeof IdentifierType)[keyof typeof IdentifierType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Bank account details\n */\nexport interface AccountV2 {\n accountUid?: string | undefined;\n accountType?: AccountV2.AccountType | undefined;\n defaultCategory?: string | undefined;\n currency?: AccountV2.Currency | undefined;\n createdAt?: string | undefined;\n name?: string | undefined;\n}\n\nexport namespace AccountV2 {\n export const AccountType = {\n Primary: \"PRIMARY\",\n Additional: \"ADDITIONAL\",\n Loan: \"LOAN\",\n FixedTermDeposit: \"FIXED_TERM_DEPOSIT\",\n Savings: \"SAVINGS\",\n } as const;\n export type AccountType = (typeof AccountType)[keyof typeof AccountType];\n export const Currency = {\n Undefined: \"UNDEFINED\",\n Aed: \"AED\",\n Afn: \"AFN\",\n All: \"ALL\",\n Amd: \"AMD\",\n Ang: \"ANG\",\n Aoa: \"AOA\",\n Ars: \"ARS\",\n Aud: \"AUD\",\n Awg: \"AWG\",\n Azn: \"AZN\",\n Bam: \"BAM\",\n Bbd: \"BBD\",\n Bdt: \"BDT\",\n Bgn: \"BGN\",\n Bhd: \"BHD\",\n Bif: \"BIF\",\n Bmd: \"BMD\",\n Bnd: \"BND\",\n Bob: \"BOB\",\n Bov: \"BOV\",\n Brl: \"BRL\",\n Bsd: \"BSD\",\n Btn: \"BTN\",\n Bwp: \"BWP\",\n Byn: \"BYN\",\n Byr: \"BYR\",\n Bzd: \"BZD\",\n Cad: \"CAD\",\n Cdf: \"CDF\",\n Che: \"CHE\",\n Chf: \"CHF\",\n Chw: \"CHW\",\n Clf: \"CLF\",\n Clp: \"CLP\",\n Cny: \"CNY\",\n Cop: \"COP\",\n Cou: \"COU\",\n Crc: \"CRC\",\n Cuc: \"CUC\",\n Cup: \"CUP\",\n Cve: \"CVE\",\n Czk: \"CZK\",\n Djf: \"DJF\",\n Dkk: \"DKK\",\n Dop: \"DOP\",\n Dzd: \"DZD\",\n Egp: \"EGP\",\n Ern: \"ERN\",\n Etb: \"ETB\",\n Eur: \"EUR\",\n Fjd: \"FJD\",\n Fkp: \"FKP\",\n Gbp: \"GBP\",\n Gel: \"GEL\",\n Ghs: \"GHS\",\n Gip: \"GIP\",\n Gmd: \"GMD\",\n Gnf: \"GNF\",\n Gtq: \"GTQ\",\n Gyd: \"GYD\",\n Hkd: \"HKD\",\n Hnl: \"HNL\",\n Hrk: \"HRK\",\n Htg: \"HTG\",\n Huf: \"HUF\",\n Idr: \"IDR\",\n Ils: \"ILS\",\n Inr: \"INR\",\n Iqd: \"IQD\",\n Irr: \"IRR\",\n Isk: \"ISK\",\n Jmd: \"JMD\",\n Jod: \"JOD\",\n Jpy: \"JPY\",\n Kes: \"KES\",\n Kgs: \"KGS\",\n Khr: \"KHR\",\n Kmf: \"KMF\",\n Kpw: \"KPW\",\n Krw: \"KRW\",\n Kwd: \"KWD\",\n Kyd: \"KYD\",\n Kzt: \"KZT\",\n Lak: \"LAK\",\n Lbp: \"LBP\",\n Lkr: \"LKR\",\n Lrd: \"LRD\",\n Lsl: \"LSL\",\n Ltl: \"LTL\",\n Lyd: \"LYD\",\n Mad: \"MAD\",\n Mdl: \"MDL\",\n Mga: \"MGA\",\n Mkd: \"MKD\",\n Mmk: \"MMK\",\n Mnt: \"MNT\",\n Mop: \"MOP\",\n Mro: \"MRO\",\n Mru: \"MRU\",\n Mur: \"MUR\",\n Mvr: \"MVR\",\n Mwk: \"MWK\",\n Mxn: \"MXN\",\n Mxv: \"MXV\",\n Myr: \"MYR\",\n Mzn: \"MZN\",\n Nad: \"NAD\",\n Ngn: \"NGN\",\n Nio: \"NIO\",\n Nok: \"NOK\",\n Npr: \"NPR\",\n Nzd: \"NZD\",\n Omr: \"OMR\",\n Pab: \"PAB\",\n Pen: \"PEN\",\n Pgk: \"PGK\",\n Php: \"PHP\",\n Pkr: \"PKR\",\n Pln: \"PLN\",\n Pyg: \"PYG\",\n Qar: \"QAR\",\n Ron: \"RON\",\n Rsd: \"RSD\",\n Rub: \"RUB\",\n Rur: \"RUR\",\n Rwf: \"RWF\",\n Sar: \"SAR\",\n Sbd: \"SBD\",\n Scr: \"SCR\",\n Sdg: \"SDG\",\n Sek: \"SEK\",\n Sgd: \"SGD\",\n Shp: \"SHP\",\n Sll: \"SLL\",\n Sle: \"SLE\",\n Sos: \"SOS\",\n Srd: \"SRD\",\n Ssp: \"SSP\",\n Std: \"STD\",\n Stn: \"STN\",\n Svc: \"SVC\",\n Swl: \"SWL\",\n Syp: \"SYP\",\n Szl: \"SZL\",\n Thb: \"THB\",\n Tjs: \"TJS\",\n Tmt: \"TMT\",\n Tnd: \"TND\",\n Top: \"TOP\",\n Try: \"TRY\",\n Ttd: \"TTD\",\n Twd: \"TWD\",\n Tzs: \"TZS\",\n Uah: \"UAH\",\n Ugx: \"UGX\",\n Usd: \"USD\",\n Usn: \"USN\",\n Uss: \"USS\",\n Uyi: \"UYI\",\n Uyu: \"UYU\",\n Uzs: \"UZS\",\n Vef: \"VEF\",\n Ves: \"VES\",\n Vnd: \"VND\",\n Vuv: \"VUV\",\n Wst: \"WST\",\n Xaf: \"XAF\",\n Xag: \"XAG\",\n Xau: \"XAU\",\n Xba: \"XBA\",\n Xbb: \"XBB\",\n Xbc: \"XBC\",\n Xbd: \"XBD\",\n Xcd: \"XCD\",\n Xcg: \"XCG\",\n Xdr: \"XDR\",\n Xof: \"XOF\",\n Xpd: \"XPD\",\n Xpf: \"XPF\",\n Xpt: \"XPT\",\n Xsu: \"XSU\",\n Xts: \"XTS\",\n Xua: \"XUA\",\n Xxx: \"XXX\",\n Yer: \"YER\",\n Zar: \"ZAR\",\n Zmw: \"ZMW\",\n Zwl: \"ZWL\",\n Zwg: \"ZWG\",\n } as const;\n export type Currency = (typeof Currency)[keyof typeof Currency];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * The details of the batch payment this is part of, if it is\n */\nexport interface BatchPaymentDetails {\n /** The unique identifier for the batch payment */\n batchPaymentUid?: string | undefined;\n /** The type of the batch payment itself */\n batchPaymentType?: BatchPaymentDetails.BatchPaymentType | undefined;\n}\n\nexport namespace BatchPaymentDetails {\n /** The type of the batch payment itself */\n export const BatchPaymentType = {\n BulkPayment: \"BULK_PAYMENT\",\n } as const;\n export type BatchPaymentType = (typeof BatchPaymentType)[keyof typeof BatchPaymentType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Single mandate\n */\nexport interface DirectDebitMandateV2 {\n uid?: string | undefined;\n reference?: string | undefined;\n status?: DirectDebitMandateV2.Status | undefined;\n source?: DirectDebitMandateV2.Source | undefined;\n created?: string | undefined;\n cancelled?: string | undefined;\n nextDate?: string | undefined;\n lastDate?: string | undefined;\n originatorName?: string | undefined;\n originatorUid?: string | undefined;\n merchantUid?: string | undefined;\n lastPayment?: (Starling.LastPayment | null) | undefined;\n accountUid?: string | undefined;\n categoryUid?: string | undefined;\n}\n\nexport namespace DirectDebitMandateV2 {\n export const Status = {\n Cancelled: \"CANCELLED\",\n Live: \"LIVE\",\n PendingCas: \"PENDING_CAS\",\n } as const;\n export type Status = (typeof Status)[keyof typeof Status];\n export const Source = {\n Electronic: \"ELECTRONIC\",\n Paper: \"PAPER\",\n } as const;\n export type Source = (typeof Source)[keyof typeof Source];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * An item from the account holders's transaction feed\n */\nexport interface FeedItem {\n /** Unique identifier for this item */\n feedItemUid?: string | undefined;\n /** The category on which the transaction happened */\n categoryUid?: string | undefined;\n amount?: Starling.CurrencyAndAmount | undefined;\n sourceAmount?: Starling.CurrencyAndAmount | undefined;\n /** Was this an inbound or outbound transaction */\n direction?: FeedItem.Direction | undefined;\n /** The time the transaction was last updated at */\n updatedAt?: string | undefined;\n /** The time of the transaction */\n transactionTime?: string | undefined;\n /** The time the transaction settled */\n settlementTime?: string | undefined;\n retryAllocationUntilTime?: string | undefined;\n /** The source of a transaction */\n source?: FeedItem.Source | undefined;\n /** The source subtype of the transaction */\n sourceSubType?: FeedItem.SourceSubType | undefined;\n /** The status of a transaction */\n status?: FeedItem.Status | undefined;\n /** The application user that made the transaction */\n transactingApplicationUserUid?: string | undefined;\n /** The type of counter party for a transaction */\n counterPartyType?: FeedItem.CounterPartyType | undefined;\n /** The unique identifier for the counter party. eg for MERCHANT this will be the merchant uid, for PAYEE this will be the payee uid */\n counterPartyUid?: string | undefined;\n /** The name of the counter party */\n counterPartyName?: string | undefined;\n /** An identifier for the counter party sub entity. eg for MERCHANT this will be the merchant location uid, for PAYEE this will be the payee account uid */\n counterPartySubEntityUid?: string | undefined;\n /** A name for the counter party sub entity, for PAYEE this will be the name set for the payee account */\n counterPartySubEntityName?: string | undefined;\n /** An external identifier for the sub entity, for PAYEE this will be the sort code of the account */\n counterPartySubEntityIdentifier?: string | undefined;\n /** An external sub identifier for the sub entity, for PAYEE this will be the account number of the account */\n counterPartySubEntitySubIdentifier?: string | undefined;\n exchangeRate?: number | undefined;\n totalFees?: number | undefined;\n totalFeeAmount?: Starling.CurrencyAndAmount | undefined;\n /** The reference for the transaction */\n reference?: string | undefined;\n /** The country in which the transaction took place. ISO 3166-1 alpha-2 */\n country?: FeedItem.Country | undefined;\n /** The category of a transaction */\n spendingCategory?: FeedItem.SpendingCategory | undefined;\n /** The user-provided transaction note */\n userNote?: string | undefined;\n roundUp?: Starling.AssociatedFeedRoundUp | undefined;\n /** Attachment present */\n hasAttachment?: boolean | undefined;\n /** Receipt present */\n hasReceipt?: boolean | undefined;\n batchPaymentDetails?: Starling.BatchPaymentDetails | undefined;\n}\n\nexport namespace FeedItem {\n /** Was this an inbound or outbound transaction */\n export const Direction = {\n In: \"IN\",\n Out: \"OUT\",\n } as const;\n export type Direction = (typeof Direction)[keyof typeof Direction];\n /** The source of a transaction */\n export const Source = {\n BritishBusinessBankFees: \"BRITISH_BUSINESS_BANK_FEES\",\n CardFeeCharge: \"CARD_FEE_CHARGE\",\n CashDeposit: \"CASH_DEPOSIT\",\n CashDepositCharge: \"CASH_DEPOSIT_CHARGE\",\n CashWithdrawal: \"CASH_WITHDRAWAL\",\n CashWithdrawalCharge: \"CASH_WITHDRAWAL_CHARGE\",\n Chaps: \"CHAPS\",\n Cheque: \"CHEQUE\",\n CicsCheque: \"CICS_CHEQUE\",\n CurrencyCloud: \"CURRENCY_CLOUD\",\n DirectCredit: \"DIRECT_CREDIT\",\n DirectDebit: \"DIRECT_DEBIT\",\n DirectDebitDispute: \"DIRECT_DEBIT_DISPUTE\",\n InternalTransfer: \"INTERNAL_TRANSFER\",\n MasterCard: \"MASTER_CARD\",\n MastercardMoneysend: \"MASTERCARD_MONEYSEND\",\n MastercardChargeback: \"MASTERCARD_CHARGEBACK\",\n MissedPaymentFee: \"MISSED_PAYMENT_FEE\",\n FasterPaymentsIn: \"FASTER_PAYMENTS_IN\",\n FasterPaymentsOut: \"FASTER_PAYMENTS_OUT\",\n FasterPaymentsReversal: \"FASTER_PAYMENTS_REVERSAL\",\n StripeFunding: \"STRIPE_FUNDING\",\n InterestPayment: \"INTEREST_PAYMENT\",\n NostroDeposit: \"NOSTRO_DEPOSIT\",\n Overdraft: \"OVERDRAFT\",\n OverdraftInterestWaived: \"OVERDRAFT_INTEREST_WAIVED\",\n FasterPaymentsRefund: \"FASTER_PAYMENTS_REFUND\",\n StarlingPayStripe: \"STARLING_PAY_STRIPE\",\n OnUsPayMe: \"ON_US_PAY_ME\",\n LoanPrincipalPayment: \"LOAN_PRINCIPAL_PAYMENT\",\n LoanRepayment: \"LOAN_REPAYMENT\",\n LoanOverpayment: \"LOAN_OVERPAYMENT\",\n LoanLatePayment: \"LOAN_LATE_PAYMENT\",\n LoanFeePayment: \"LOAN_FEE_PAYMENT\",\n LoanInterestCharge: \"LOAN_INTEREST_CHARGE\",\n SepaCreditTransfer: \"SEPA_CREDIT_TRANSFER\",\n SepaDirectDebit: \"SEPA_DIRECT_DEBIT\",\n Target2CustomerPayment: \"TARGET2_CUSTOMER_PAYMENT\",\n FxTransfer: \"FX_TRANSFER\",\n IssPayment: \"ISS_PAYMENT\",\n StarlingPayment: \"STARLING_PAYMENT\",\n SubscriptionCharge: \"SUBSCRIPTION_CHARGE\",\n OverdraftFee: \"OVERDRAFT_FEE\",\n WithheldTax: \"WITHHELD_TAX\",\n ErrorsAndOmissions: \"ERRORS_AND_OMISSIONS\",\n InterestV2Payment: \"INTEREST_V2_PAYMENT\",\n } as const;\n export type Source = (typeof Source)[keyof typeof Source];\n /** The source subtype of the transaction */\n export const SourceSubType = {\n Contactless: \"CONTACTLESS\",\n MagneticStrip: \"MAGNETIC_STRIP\",\n ManualKeyEntry: \"MANUAL_KEY_ENTRY\",\n ChipAndPin: \"CHIP_AND_PIN\",\n Online: \"ONLINE\",\n Atm: \"ATM\",\n CreditAuth: \"CREDIT_AUTH\",\n ApplePay: \"APPLE_PAY\",\n ApplePayOnline: \"APPLE_PAY_ONLINE\",\n AndroidPay: \"ANDROID_PAY\",\n AndroidPayOnline: \"ANDROID_PAY_ONLINE\",\n FitbitPay: \"FITBIT_PAY\",\n GarminPay: \"GARMIN_PAY\",\n SamsungPay: \"SAMSUNG_PAY\",\n ClickToPay: \"CLICK_TO_PAY\",\n OtherWallet: \"OTHER_WALLET\",\n CardSubscription: \"CARD_SUBSCRIPTION\",\n NotApplicable: \"NOT_APPLICABLE\",\n Unknown: \"UNKNOWN\",\n Deposit: \"DEPOSIT\",\n Overdraft: \"OVERDRAFT\",\n SettleUp: \"SETTLE_UP\",\n Nearby: \"NEARBY\",\n TransferSameCurrency: \"TRANSFER_SAME_CURRENCY\",\n NewCard: \"NEW_CARD\",\n NewCardOverseas: \"NEW_CARD_OVERSEAS\",\n } as const;\n export type SourceSubType = (typeof SourceSubType)[keyof typeof SourceSubType];\n /** The status of a transaction */\n export const Status = {\n Upcoming: \"UPCOMING\",\n UpcomingCancelled: \"UPCOMING_CANCELLED\",\n Pending: \"PENDING\",\n Reversed: \"REVERSED\",\n Settled: \"SETTLED\",\n Declined: \"DECLINED\",\n Refunded: \"REFUNDED\",\n Retrying: \"RETRYING\",\n AccountCheck: \"ACCOUNT_CHECK\",\n } as const;\n export type Status = (typeof Status)[keyof typeof Status];\n /** The type of counter party for a transaction */\n export const CounterPartyType = {\n Category: \"CATEGORY\",\n Cheque: \"CHEQUE\",\n Customer: \"CUSTOMER\",\n Payee: \"PAYEE\",\n Merchant: \"MERCHANT\",\n Sender: \"SENDER\",\n Starling: \"STARLING\",\n Loan: \"LOAN\",\n } as const;\n export type CounterPartyType = (typeof CounterPartyType)[keyof typeof CounterPartyType];\n /** The country in which the transaction took place. ISO 3166-1 alpha-2 */\n export const Country = {\n Undefined: \"UNDEFINED\",\n Ac: \"AC\",\n Ad: \"AD\",\n Ae: \"AE\",\n Af: \"AF\",\n Ag: \"AG\",\n Ai: \"AI\",\n Al: \"AL\",\n Am: \"AM\",\n An: \"AN\",\n Ao: \"AO\",\n Aq: \"AQ\",\n Ar: \"AR\",\n As: \"AS\",\n At: \"AT\",\n Au: \"AU\",\n Aw: \"AW\",\n Ax: \"AX\",\n Az: \"AZ\",\n Ba: \"BA\",\n Bb: \"BB\",\n Bd: \"BD\",\n Be: \"BE\",\n Bf: \"BF\",\n Bg: \"BG\",\n Bh: \"BH\",\n Bi: \"BI\",\n Bj: \"BJ\",\n Bl: \"BL\",\n Bm: \"BM\",\n Bn: \"BN\",\n Bo: \"BO\",\n Bq: \"BQ\",\n Br: \"BR\",\n Bs: \"BS\",\n Bt: \"BT\",\n Bu: \"BU\",\n Bv: \"BV\",\n Bw: \"BW\",\n By: \"BY\",\n Bz: \"BZ\",\n Ca: \"CA\",\n Cc: \"CC\",\n Cd: \"CD\",\n Cf: \"CF\",\n Cg: \"CG\",\n Ch: \"CH\",\n Ci: \"CI\",\n Ck: \"CK\",\n Cl: \"CL\",\n Cm: \"CM\",\n Cn: \"CN\",\n Co: \"CO\",\n Cp: \"CP\",\n Cr: \"CR\",\n Cs: \"CS\",\n Cu: \"CU\",\n Cv: \"CV\",\n Cw: \"CW\",\n Cx: \"CX\",\n Cy: \"CY\",\n Cz: \"CZ\",\n De: \"DE\",\n Dg: \"DG\",\n Dj: \"DJ\",\n Dk: \"DK\",\n Dm: \"DM\",\n Do: \"DO\",\n Dz: \"DZ\",\n Ea: \"EA\",\n Ec: \"EC\",\n Ee: \"EE\",\n Eg: \"EG\",\n Eh: \"EH\",\n Er: \"ER\",\n Es: \"ES\",\n Et: \"ET\",\n Eu: \"EU\",\n Ez: \"EZ\",\n Fi: \"FI\",\n Fj: \"FJ\",\n Fk: \"FK\",\n Fm: \"FM\",\n Fo: \"FO\",\n Fr: \"FR\",\n Fx: \"FX\",\n Ga: \"GA\",\n Gb: \"GB\",\n Gd: \"GD\",\n Ge: \"GE\",\n Gf: \"GF\",\n Gg: \"GG\",\n Gh: \"GH\",\n Gi: \"GI\",\n Gl: \"GL\",\n Gm: \"GM\",\n Gn: \"GN\",\n Gp: \"GP\",\n Gq: \"GQ\",\n Gr: \"GR\",\n Gs: \"GS\",\n Gt: \"GT\",\n Gu: \"GU\",\n Gw: \"GW\",\n Gy: \"GY\",\n Hk: \"HK\",\n Hm: \"HM\",\n Hn: \"HN\",\n Hr: \"HR\",\n Ht: \"HT\",\n Hu: \"HU\",\n Ic: \"IC\",\n Id: \"ID\",\n Ie: \"IE\",\n Il: \"IL\",\n Im: \"IM\",\n In: \"IN\",\n Io: \"IO\",\n Iq: \"IQ\",\n Ir: \"IR\",\n Is: \"IS\",\n It: \"IT\",\n Je: \"JE\",\n Jm: \"JM\",\n Jo: \"JO\",\n Jp: \"JP\",\n Ke: \"KE\",\n Kg: \"KG\",\n Kh: \"KH\",\n Ki: \"KI\",\n Km: \"KM\",\n Kn: \"KN\",\n Kp: \"KP\",\n Kr: \"KR\",\n Kw: \"KW\",\n Ky: \"KY\",\n Kz: \"KZ\",\n La: \"LA\",\n Lb: \"LB\",\n Lc: \"LC\",\n Li: \"LI\",\n Lk: \"LK\",\n Lr: \"LR\",\n Ls: \"LS\",\n Lt: \"LT\",\n Lu: \"LU\",\n Lv: \"LV\",\n Ly: \"LY\",\n Ma: \"MA\",\n Mc: \"MC\",\n Md: \"MD\",\n Me: \"ME\",\n Mf: \"MF\",\n Mg: \"MG\",\n Mh: \"MH\",\n Mk: \"MK\",\n Ml: \"ML\",\n Mm: \"MM\",\n Mn: \"MN\",\n Mo: \"MO\",\n Mp: \"MP\",\n Mq: \"MQ\",\n Mr: \"MR\",\n Ms: \"MS\",\n Mt: \"MT\",\n Mu: \"MU\",\n Mv: \"MV\",\n Mw: \"MW\",\n Mx: \"MX\",\n My: \"MY\",\n Mz: \"MZ\",\n Na: \"NA\",\n Nc: \"NC\",\n Ne: \"NE\",\n Nf: \"NF\",\n Ng: \"NG\",\n Ni: \"NI\",\n Nl: \"NL\",\n No: \"NO\",\n Np: \"NP\",\n Nr: \"NR\",\n Nt: \"NT\",\n Nu: \"NU\",\n Nz: \"NZ\",\n Om: \"OM\",\n Pa: \"PA\",\n Pe: \"PE\",\n Pf: \"PF\",\n Pg: \"PG\",\n Ph: \"PH\",\n Pk: \"PK\",\n Pl: \"PL\",\n Pm: \"PM\",\n Pn: \"PN\",\n Pr: \"PR\",\n Ps: \"PS\",\n Pt: \"PT\",\n Pw: \"PW\",\n Py: \"PY\",\n Qa: \"QA\",\n Re: \"RE\",\n Ro: \"RO\",\n Rs: \"RS\",\n Ru: \"RU\",\n Rw: \"RW\",\n Sa: \"SA\",\n Sb: \"SB\",\n Sc: \"SC\",\n Sd: \"SD\",\n Se: \"SE\",\n Sf: \"SF\",\n Sg: \"SG\",\n Sh: \"SH\",\n Si: \"SI\",\n Sj: \"SJ\",\n Sk: \"SK\",\n Sl: \"SL\",\n Sm: \"SM\",\n Sn: \"SN\",\n So: \"SO\",\n Sr: \"SR\",\n Ss: \"SS\",\n St: \"ST\",\n Su: \"SU\",\n Sv: \"SV\",\n Sx: \"SX\",\n Sy: \"SY\",\n Sz: \"SZ\",\n Ta: \"TA\",\n Tc: \"TC\",\n Td: \"TD\",\n Tf: \"TF\",\n Tg: \"TG\",\n Th: \"TH\",\n Tj: \"TJ\",\n Tk: \"TK\",\n Tl: \"TL\",\n Tm: \"TM\",\n Tn: \"TN\",\n To: \"TO\",\n Tp: \"TP\",\n Tr: \"TR\",\n Tt: \"TT\",\n Tv: \"TV\",\n Tw: \"TW\",\n Tz: \"TZ\",\n Ua: \"UA\",\n Ug: \"UG\",\n Uk: \"UK\",\n Um: \"UM\",\n Us: \"US\",\n Uy: \"UY\",\n Uz: \"UZ\",\n Va: \"VA\",\n Vc: \"VC\",\n Ve: \"VE\",\n Vg: \"VG\",\n Vi: \"VI\",\n Vn: \"VN\",\n Vu: \"VU\",\n Wf: \"WF\",\n Ws: \"WS\",\n Xi: \"XI\",\n Xu: \"XU\",\n Xk: \"XK\",\n Xx: \"XX\",\n Ye: \"YE\",\n Yt: \"YT\",\n Yu: \"YU\",\n Za: \"ZA\",\n Zm: \"ZM\",\n Zr: \"ZR\",\n Zw: \"ZW\",\n } as const;\n export type Country = (typeof Country)[keyof typeof Country];\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport interface FeedItemAttachment {\n feedItemUid?: string | undefined;\n feedItemAttachmentUid?: string | undefined;\n attachmentType?: FeedItemAttachment.AttachmentType | undefined;\n feedItemAttachmentType?: FeedItemAttachment.FeedItemAttachmentType | undefined;\n}\n\nexport namespace FeedItemAttachment {\n export const AttachmentType = {\n ImagePdf: \"image, pdf\",\n } as const;\n export type AttachmentType = (typeof AttachmentType)[keyof typeof AttachmentType];\n export const FeedItemAttachmentType = {\n Image: \"IMAGE\",\n Pdf: \"PDF\",\n ImagePdf: \"IMAGE, PDF\",\n } as const;\n export type FeedItemAttachmentType = (typeof FeedItemAttachmentType)[keyof typeof FeedItemAttachmentType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * A saved payee\n */\nexport interface Payee {\n /** The uid of this payee */\n payeeUid: string;\n /** Name */\n payeeName: string;\n /** Phone number */\n phoneNumber?: string | undefined;\n /** INDIVIDUAL */\n payeeType: Payee.PayeeType;\n /** First name */\n firstName?: string | undefined;\n /** Middle name */\n middleName?: string | undefined;\n /** Last name */\n lastName?: string | undefined;\n /** Business name */\n businessName?: string | undefined;\n /** Date of birth */\n dateOfBirth?: string | undefined;\n /** Accounts for this payee */\n accounts?: Starling.PayeeAccount[] | undefined;\n}\n\nexport namespace Payee {\n /** INDIVIDUAL */\n export const PayeeType = {\n Business: \"BUSINESS\",\n Individual: \"INDIVIDUAL\",\n } as const;\n export type PayeeType = (typeof PayeeType)[keyof typeof PayeeType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * An account of a payee\n */\nexport interface PayeeAccount {\n /** The uid of this payee account */\n payeeAccountUid: string;\n /** The channel through which the payee was added */\n payeeChannelType: PayeeAccount.PayeeChannelType;\n /** Account description */\n description: string;\n /** Is this the default account for the owning payee */\n defaultAccount?: boolean | undefined;\n /** The country code for the account (ISO 3166-1 alpha-2) */\n countryCode: PayeeAccount.CountryCode;\n /** The account identifier */\n accountIdentifier?: string | undefined;\n /** The bank identifier */\n bankIdentifier?: string | undefined;\n /** The bank identifier type */\n bankIdentifierType?: PayeeAccount.BankIdentifierType | undefined;\n /** Secondary reference data (SRD), if applicable */\n secondaryIdentifier?: string | undefined;\n lastReferences?: string[] | undefined;\n}\n\nexport namespace PayeeAccount {\n /** The channel through which the payee was added */\n export const PayeeChannelType = {\n BankAccount: \"BANK_ACCOUNT\",\n SettleUp: \"SETTLE_UP\",\n Nearby: \"NEARBY\",\n } as const;\n export type PayeeChannelType = (typeof PayeeChannelType)[keyof typeof PayeeChannelType];\n /** The country code for the account (ISO 3166-1 alpha-2) */\n export const CountryCode = {\n Undefined: \"UNDEFINED\",\n Ac: \"AC\",\n Ad: \"AD\",\n Ae: \"AE\",\n Af: \"AF\",\n Ag: \"AG\",\n Ai: \"AI\",\n Al: \"AL\",\n Am: \"AM\",\n An: \"AN\",\n Ao: \"AO\",\n Aq: \"AQ\",\n Ar: \"AR\",\n As: \"AS\",\n At: \"AT\",\n Au: \"AU\",\n Aw: \"AW\",\n Ax: \"AX\",\n Az: \"AZ\",\n Ba: \"BA\",\n Bb: \"BB\",\n Bd: \"BD\",\n Be: \"BE\",\n Bf: \"BF\",\n Bg: \"BG\",\n Bh: \"BH\",\n Bi: \"BI\",\n Bj: \"BJ\",\n Bl: \"BL\",\n Bm: \"BM\",\n Bn: \"BN\",\n Bo: \"BO\",\n Bq: \"BQ\",\n Br: \"BR\",\n Bs: \"BS\",\n Bt: \"BT\",\n Bu: \"BU\",\n Bv: \"BV\",\n Bw: \"BW\",\n By: \"BY\",\n Bz: \"BZ\",\n Ca: \"CA\",\n Cc: \"CC\",\n Cd: \"CD\",\n Cf: \"CF\",\n Cg: \"CG\",\n Ch: \"CH\",\n Ci: \"CI\",\n Ck: \"CK\",\n Cl: \"CL\",\n Cm: \"CM\",\n Cn: \"CN\",\n Co: \"CO\",\n Cp: \"CP\",\n Cr: \"CR\",\n Cs: \"CS\",\n Cu: \"CU\",\n Cv: \"CV\",\n Cw: \"CW\",\n Cx: \"CX\",\n Cy: \"CY\",\n Cz: \"CZ\",\n De: \"DE\",\n Dg: \"DG\",\n Dj: \"DJ\",\n Dk: \"DK\",\n Dm: \"DM\",\n Do: \"DO\",\n Dz: \"DZ\",\n Ea: \"EA\",\n Ec: \"EC\",\n Ee: \"EE\",\n Eg: \"EG\",\n Eh: \"EH\",\n Er: \"ER\",\n Es: \"ES\",\n Et: \"ET\",\n Eu: \"EU\",\n Ez: \"EZ\",\n Fi: \"FI\",\n Fj: \"FJ\",\n Fk: \"FK\",\n Fm: \"FM\",\n Fo: \"FO\",\n Fr: \"FR\",\n Fx: \"FX\",\n Ga: \"GA\",\n Gb: \"GB\",\n Gd: \"GD\",\n Ge: \"GE\",\n Gf: \"GF\",\n Gg: \"GG\",\n Gh: \"GH\",\n Gi: \"GI\",\n Gl: \"GL\",\n Gm: \"GM\",\n Gn: \"GN\",\n Gp: \"GP\",\n Gq: \"GQ\",\n Gr: \"GR\",\n Gs: \"GS\",\n Gt: \"GT\",\n Gu: \"GU\",\n Gw: \"GW\",\n Gy: \"GY\",\n Hk: \"HK\",\n Hm: \"HM\",\n Hn: \"HN\",\n Hr: \"HR\",\n Ht: \"HT\",\n Hu: \"HU\",\n Ic: \"IC\",\n Id: \"ID\",\n Ie: \"IE\",\n Il: \"IL\",\n Im: \"IM\",\n In: \"IN\",\n Io: \"IO\",\n Iq: \"IQ\",\n Ir: \"IR\",\n Is: \"IS\",\n It: \"IT\",\n Je: \"JE\",\n Jm: \"JM\",\n Jo: \"JO\",\n Jp: \"JP\",\n Ke: \"KE\",\n Kg: \"KG\",\n Kh: \"KH\",\n Ki: \"KI\",\n Km: \"KM\",\n Kn: \"KN\",\n Kp: \"KP\",\n Kr: \"KR\",\n Kw: \"KW\",\n Ky: \"KY\",\n Kz: \"KZ\",\n La: \"LA\",\n Lb: \"LB\",\n Lc: \"LC\",\n Li: \"LI\",\n Lk: \"LK\",\n Lr: \"LR\",\n Ls: \"LS\",\n Lt: \"LT\",\n Lu: \"LU\",\n Lv: \"LV\",\n Ly: \"LY\",\n Ma: \"MA\",\n Mc: \"MC\",\n Md: \"MD\",\n Me: \"ME\",\n Mf: \"MF\",\n Mg: \"MG\",\n Mh: \"MH\",\n Mk: \"MK\",\n Ml: \"ML\",\n Mm: \"MM\",\n Mn: \"MN\",\n Mo: \"MO\",\n Mp: \"MP\",\n Mq: \"MQ\",\n Mr: \"MR\",\n Ms: \"MS\",\n Mt: \"MT\",\n Mu: \"MU\",\n Mv: \"MV\",\n Mw: \"MW\",\n Mx: \"MX\",\n My: \"MY\",\n Mz: \"MZ\",\n Na: \"NA\",\n Nc: \"NC\",\n Ne: \"NE\",\n Nf: \"NF\",\n Ng: \"NG\",\n Ni: \"NI\",\n Nl: \"NL\",\n No: \"NO\",\n Np: \"NP\",\n Nr: \"NR\",\n Nt: \"NT\",\n Nu: \"NU\",\n Nz: \"NZ\",\n Om: \"OM\",\n Pa: \"PA\",\n Pe: \"PE\",\n Pf: \"PF\",\n Pg: \"PG\",\n Ph: \"PH\",\n Pk: \"PK\",\n Pl: \"PL\",\n Pm: \"PM\",\n Pn: \"PN\",\n Pr: \"PR\",\n Ps: \"PS\",\n Pt: \"PT\",\n Pw: \"PW\",\n Py: \"PY\",\n Qa: \"QA\",\n Re: \"RE\",\n Ro: \"RO\",\n Rs: \"RS\",\n Ru: \"RU\",\n Rw: \"RW\",\n Sa: \"SA\",\n Sb: \"SB\",\n Sc: \"SC\",\n Sd: \"SD\",\n Se: \"SE\",\n Sf: \"SF\",\n Sg: \"SG\",\n Sh: \"SH\",\n Si: \"SI\",\n Sj: \"SJ\",\n Sk: \"SK\",\n Sl: \"SL\",\n Sm: \"SM\",\n Sn: \"SN\",\n So: \"SO\",\n Sr: \"SR\",\n Ss: \"SS\",\n St: \"ST\",\n Su: \"SU\",\n Sv: \"SV\",\n Sx: \"SX\",\n Sy: \"SY\",\n Sz: \"SZ\",\n Ta: \"TA\",\n Tc: \"TC\",\n Td: \"TD\",\n Tf: \"TF\",\n Tg: \"TG\",\n Th: \"TH\",\n Tj: \"TJ\",\n Tk: \"TK\",\n Tl: \"TL\",\n Tm: \"TM\",\n Tn: \"TN\",\n To: \"TO\",\n Tp: \"TP\",\n Tr: \"TR\",\n Tt: \"TT\",\n Tv: \"TV\",\n Tw: \"TW\",\n Tz: \"TZ\",\n Ua: \"UA\",\n Ug: \"UG\",\n Uk: \"UK\",\n Um: \"UM\",\n Us: \"US\",\n Uy: \"UY\",\n Uz: \"UZ\",\n Va: \"VA\",\n Vc: \"VC\",\n Ve: \"VE\",\n Vg: \"VG\",\n Vi: \"VI\",\n Vn: \"VN\",\n Vu: \"VU\",\n Wf: \"WF\",\n Ws: \"WS\",\n Xi: \"XI\",\n Xu: \"XU\",\n Xk: \"XK\",\n Xx: \"XX\",\n Ye: \"YE\",\n Yt: \"YT\",\n Yu: \"YU\",\n Za: \"ZA\",\n Zm: \"ZM\",\n Zr: \"ZR\",\n Zw: \"ZW\",\n } as const;\n export type CountryCode = (typeof CountryCode)[keyof typeof CountryCode];\n /** The bank identifier type */\n export const BankIdentifierType = {\n SortCode: \"SORT_CODE\",\n Swift: \"SWIFT\",\n Iban: \"IBAN\",\n Aba: \"ABA\",\n AbaWire: \"ABA_WIRE\",\n AbaAch: \"ABA_ACH\",\n Bsb: \"BSB\",\n } as const;\n export type BankIdentifierType = (typeof BankIdentifierType)[keyof typeof BankIdentifierType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Request to create a payee account\n */\nexport interface PayeeAccountCreationRequest {\n /** Account description */\n description: string;\n /** Is this the default account for the owning payee */\n defaultAccount: boolean;\n /** The country code for the account (ISO 3166-1 alpha-2) */\n countryCode: string;\n /** The account identifier */\n accountIdentifier: string;\n /** The bank identifier */\n bankIdentifier: string;\n /** The bank identifier type */\n bankIdentifierType: PayeeAccountCreationRequest.BankIdentifierType;\n /** Secondary reference data (SRD), if applicable */\n secondaryIdentifier?: string | undefined;\n}\n\nexport namespace PayeeAccountCreationRequest {\n /** The bank identifier type */\n export const BankIdentifierType = {\n SortCode: \"SORT_CODE\",\n Swift: \"SWIFT\",\n Iban: \"IBAN\",\n Aba: \"ABA\",\n AbaWire: \"ABA_WIRE\",\n AbaAch: \"ABA_ACH\",\n Bsb: \"BSB\",\n } as const;\n export type BankIdentifierType = (typeof BankIdentifierType)[keyof typeof BankIdentifierType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Request to create a payee\n */\nexport interface PayeeCreationRequest {\n /** Name */\n payeeName: string;\n /** Phone number */\n phoneNumber?: string | undefined;\n payeeType: PayeeCreationRequest.PayeeType;\n /** First name */\n firstName?: string | undefined;\n /** Middle name */\n middleName?: string | undefined;\n /** Last name */\n lastName?: string | undefined;\n /** Business name */\n businessName?: string | undefined;\n /** Date of birth for this payee */\n dateOfBirth?: string | undefined;\n /** List of accounts for this payee */\n accounts?: Starling.PayeeAccountCreationRequest[] | undefined;\n}\n\nexport namespace PayeeCreationRequest {\n export const PayeeType = {\n Business: \"BUSINESS\",\n Individual: \"INDIVIDUAL\",\n } as const;\n export type PayeeType = (typeof PayeeType)[keyof typeof PayeeType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * A sent payment\n */\nexport interface PayeePayment {\n /** Unique identifier of the payment */\n paymentUid?: string | undefined;\n amount?: Starling.CurrencyAndAmount | undefined;\n /** Payment reference */\n reference?: string | undefined;\n /** Date when payment was created */\n createdAt?: string | undefined;\n /** The category of a transaction */\n spendingCategory?: PayeePayment.SpendingCategory | undefined;\n paymentAmount?: Starling.CurrencyAndAmount | undefined;\n}\n\nexport namespace PayeePayment {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Response object for payment order queries\n */\nexport interface PaymentOrderV2 {\n /** UID of this payment order */\n paymentOrderUid: string;\n amount: Starling.CurrencyAndAmount;\n /** The reference set by the payer */\n reference: string;\n /** The ID of the payee receiving this payment */\n payeeUid: string;\n /** The account ID of the payee account receiving this payment */\n payeeAccountUid: string;\n /** The category of a transaction */\n spendingCategory?: (PaymentOrderV2.SpendingCategory | null) | undefined;\n}\n\nexport namespace PaymentOrderV2 {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * The desired payment recipient. Either paymentRecipient or destinationPayeeAccountUid must be present\n */\nexport interface PaymentRecipient {\n payeeName: string;\n payeeType: PaymentRecipient.PayeeType;\n /** The country code for the account (ISO 3166-1 alpha-2) */\n countryCode: string;\n accountIdentifier: string;\n bankIdentifier: string;\n bankIdentifierType: PaymentRecipient.BankIdentifierType;\n}\n\nexport namespace PaymentRecipient {\n export const PayeeType = {\n Business: \"BUSINESS\",\n Individual: \"INDIVIDUAL\",\n } as const;\n export type PayeeType = (typeof PayeeType)[keyof typeof PayeeType];\n export const BankIdentifierType = {\n SortCode: \"SORT_CODE\",\n Swift: \"SWIFT\",\n Iban: \"IBAN\",\n Aba: \"ABA\",\n AbaWire: \"ABA_WIRE\",\n AbaAch: \"ABA_ACH\",\n Bsb: \"BSB\",\n } as const;\n export type BankIdentifierType = (typeof BankIdentifierType)[keyof typeof BankIdentifierType];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Status details of a payment\n */\nexport interface PaymentStatusDetails {\n paymentStatus?: PaymentStatusDetails.PaymentStatus | undefined;\n description?: PaymentStatusDetails.Description | undefined;\n}\n\nexport namespace PaymentStatusDetails {\n export const PaymentStatus = {\n Accepted: \"ACCEPTED\",\n Rejected: \"REJECTED\",\n Pending: \"PENDING\",\n } as const;\n export type PaymentStatus = (typeof PaymentStatus)[keyof typeof PaymentStatus];\n export const Description = {\n Accepted: \"ACCEPTED\",\n QualifiedAcceptWithinTwoHours: \"QUALIFIED_ACCEPT_WITHIN_TWO_HOURS\",\n QualifiedAcceptUnspecifiedDay: \"QUALIFIED_ACCEPT_UNSPECIFIED_DAY\",\n QualifiedAcceptSameDay: \"QUALIFIED_ACCEPT_SAME_DAY\",\n QualifiedAcceptNextCalendarDay: \"QUALIFIED_ACCEPT_NEXT_CALENDAR_DAY\",\n QualifiedAcceptNextWorkingDay: \"QUALIFIED_ACCEPT_NEXT_WORKING_DAY\",\n QualifiedAcceptAfterNextWorkingDay: \"QUALIFIED_ACCEPT_AFTER_NEXT_WORKING_DAY\",\n DestinationAccountInvalid: \"DESTINATION_ACCOUNT_INVALID\",\n DestinationAccountNameMismatch: \"DESTINATION_ACCOUNT_NAME_MISMATCH\",\n ReferenceInformationIncorrect: \"REFERENCE_INFORMATION_INCORRECT\",\n DestinationAccountUnavailable: \"DESTINATION_ACCOUNT_UNAVAILABLE\",\n Pending: \"PENDING\",\n } as const;\n export type Description = (typeof Description)[keyof typeof Description];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Transaction receipt\n */\nexport interface Receipt {\n receiptUid?: string | undefined;\n feedItemUid?: string | undefined;\n metadataSource: Receipt.MetadataSource;\n receiptIdentifier: string;\n totalAmount: number;\n receiptMerchant: Starling.ReceiptMerchant;\n /** ISO-4217 3 character currency code */\n currencyCode?: Receipt.CurrencyCode | undefined;\n items: Starling.ReceiptItem[];\n notes?: Starling.ReceiptNote[] | undefined;\n taxDetails?: Starling.ReceiptTaxDetail[] | undefined;\n paymentMethods: Starling.ReceiptPaymentMethod[];\n providerName?: string | undefined;\n}\n\nexport namespace Receipt {\n export const MetadataSource = {\n Customer: \"CUSTOMER\",\n Starling: \"STARLING\",\n Partner: \"PARTNER\",\n } as const;\n export type MetadataSource = (typeof MetadataSource)[keyof typeof MetadataSource];\n /** ISO-4217 3 character currency code */\n export const CurrencyCode = {\n Undefined: \"UNDEFINED\",\n Aed: \"AED\",\n Afn: \"AFN\",\n All: \"ALL\",\n Amd: \"AMD\",\n Ang: \"ANG\",\n Aoa: \"AOA\",\n Ars: \"ARS\",\n Aud: \"AUD\",\n Awg: \"AWG\",\n Azn: \"AZN\",\n Bam: \"BAM\",\n Bbd: \"BBD\",\n Bdt: \"BDT\",\n Bgn: \"BGN\",\n Bhd: \"BHD\",\n Bif: \"BIF\",\n Bmd: \"BMD\",\n Bnd: \"BND\",\n Bob: \"BOB\",\n Bov: \"BOV\",\n Brl: \"BRL\",\n Bsd: \"BSD\",\n Btn: \"BTN\",\n Bwp: \"BWP\",\n Byn: \"BYN\",\n Byr: \"BYR\",\n Bzd: \"BZD\",\n Cad: \"CAD\",\n Cdf: \"CDF\",\n Che: \"CHE\",\n Chf: \"CHF\",\n Chw: \"CHW\",\n Clf: \"CLF\",\n Clp: \"CLP\",\n Cny: \"CNY\",\n Cop: \"COP\",\n Cou: \"COU\",\n Crc: \"CRC\",\n Cuc: \"CUC\",\n Cup: \"CUP\",\n Cve: \"CVE\",\n Czk: \"CZK\",\n Djf: \"DJF\",\n Dkk: \"DKK\",\n Dop: \"DOP\",\n Dzd: \"DZD\",\n Egp: \"EGP\",\n Ern: \"ERN\",\n Etb: \"ETB\",\n Eur: \"EUR\",\n Fjd: \"FJD\",\n Fkp: \"FKP\",\n Gbp: \"GBP\",\n Gel: \"GEL\",\n Ghs: \"GHS\",\n Gip: \"GIP\",\n Gmd: \"GMD\",\n Gnf: \"GNF\",\n Gtq: \"GTQ\",\n Gyd: \"GYD\",\n Hkd: \"HKD\",\n Hnl: \"HNL\",\n Hrk: \"HRK\",\n Htg: \"HTG\",\n Huf: \"HUF\",\n Idr: \"IDR\",\n Ils: \"ILS\",\n Inr: \"INR\",\n Iqd: \"IQD\",\n Irr: \"IRR\",\n Isk: \"ISK\",\n Jmd: \"JMD\",\n Jod: \"JOD\",\n Jpy: \"JPY\",\n Kes: \"KES\",\n Kgs: \"KGS\",\n Khr: \"KHR\",\n Kmf: \"KMF\",\n Kpw: \"KPW\",\n Krw: \"KRW\",\n Kwd: \"KWD\",\n Kyd: \"KYD\",\n Kzt: \"KZT\",\n Lak: \"LAK\",\n Lbp: \"LBP\",\n Lkr: \"LKR\",\n Lrd: \"LRD\",\n Lsl: \"LSL\",\n Ltl: \"LTL\",\n Lyd: \"LYD\",\n Mad: \"MAD\",\n Mdl: \"MDL\",\n Mga: \"MGA\",\n Mkd: \"MKD\",\n Mmk: \"MMK\",\n Mnt: \"MNT\",\n Mop: \"MOP\",\n Mro: \"MRO\",\n Mru: \"MRU\",\n Mur: \"MUR\",\n Mvr: \"MVR\",\n Mwk: \"MWK\",\n Mxn: \"MXN\",\n Mxv: \"MXV\",\n Myr: \"MYR\",\n Mzn: \"MZN\",\n Nad: \"NAD\",\n Ngn: \"NGN\",\n Nio: \"NIO\",\n Nok: \"NOK\",\n Npr: \"NPR\",\n Nzd: \"NZD\",\n Omr: \"OMR\",\n Pab: \"PAB\",\n Pen: \"PEN\",\n Pgk: \"PGK\",\n Php: \"PHP\",\n Pkr: \"PKR\",\n Pln: \"PLN\",\n Pyg: \"PYG\",\n Qar: \"QAR\",\n Ron: \"RON\",\n Rsd: \"RSD\",\n Rub: \"RUB\",\n Rur: \"RUR\",\n Rwf: \"RWF\",\n Sar: \"SAR\",\n Sbd: \"SBD\",\n Scr: \"SCR\",\n Sdg: \"SDG\",\n Sek: \"SEK\",\n Sgd: \"SGD\",\n Shp: \"SHP\",\n Sll: \"SLL\",\n Sle: \"SLE\",\n Sos: \"SOS\",\n Srd: \"SRD\",\n Ssp: \"SSP\",\n Std: \"STD\",\n Stn: \"STN\",\n Svc: \"SVC\",\n Swl: \"SWL\",\n Syp: \"SYP\",\n Szl: \"SZL\",\n Thb: \"THB\",\n Tjs: \"TJS\",\n Tmt: \"TMT\",\n Tnd: \"TND\",\n Top: \"TOP\",\n Try: \"TRY\",\n Ttd: \"TTD\",\n Twd: \"TWD\",\n Tzs: \"TZS\",\n Uah: \"UAH\",\n Ugx: \"UGX\",\n Usd: \"USD\",\n Usn: \"USN\",\n Uss: \"USS\",\n Uyi: \"UYI\",\n Uyu: \"UYU\",\n Uzs: \"UZS\",\n Vef: \"VEF\",\n Ves: \"VES\",\n Vnd: \"VND\",\n Vuv: \"VUV\",\n Wst: \"WST\",\n Xaf: \"XAF\",\n Xag: \"XAG\",\n Xau: \"XAU\",\n Xba: \"XBA\",\n Xbb: \"XBB\",\n Xbc: \"XBC\",\n Xbd: \"XBD\",\n Xcd: \"XCD\",\n Xcg: \"XCG\",\n Xdr: \"XDR\",\n Xof: \"XOF\",\n Xpd: \"XPD\",\n Xpf: \"XPF\",\n Xpt: \"XPT\",\n Xsu: \"XSU\",\n Xts: \"XTS\",\n Xua: \"XUA\",\n Xxx: \"XXX\",\n Yer: \"YER\",\n Zar: \"ZAR\",\n Zmw: \"ZMW\",\n Zwl: \"ZWL\",\n Zwg: \"ZWG\",\n } as const;\n export type CurrencyCode = (typeof CurrencyCode)[keyof typeof CurrencyCode];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\nexport interface ReceiptItem {\n receiptItemUid?: string | undefined;\n description: string;\n quantity?: number | undefined;\n amount?: number | undefined;\n tax?: number | undefined;\n url?: string | undefined;\n /** The time the receipt item was created */\n creationTime?: string | undefined;\n /** Type of receipt item. It can be PURCHASE, SERVICE_FEE, GRATUITY or null */\n type?: ReceiptItem.Type | undefined;\n notes?: string[] | undefined;\n subItems?: Starling.ReceiptSubItem[] | undefined;\n}\n\nexport namespace ReceiptItem {\n /** Type of receipt item. It can be PURCHASE, SERVICE_FEE, GRATUITY or null */\n export const Type = {\n Purchase: \"PURCHASE\",\n ServiceFee: \"SERVICE_FEE\",\n Gratuity: \"GRATUITY\",\n BalanceAdjustment: \"BALANCE_ADJUSTMENT\",\n } as const;\n export type Type = (typeof Type)[keyof typeof Type];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Tax detail associated with a receipt\n */\nexport interface ReceiptTaxDetail {\n receiptTaxDetailUid?: string | undefined;\n taxName: string;\n taxValue: number;\n taxCurrencyCode: ReceiptTaxDetail.TaxCurrencyCode;\n /** The time the tax detail was created */\n creationTime?: string | undefined;\n}\n\nexport namespace ReceiptTaxDetail {\n export const TaxCurrencyCode = {\n Undefined: \"UNDEFINED\",\n Aed: \"AED\",\n Afn: \"AFN\",\n All: \"ALL\",\n Amd: \"AMD\",\n Ang: \"ANG\",\n Aoa: \"AOA\",\n Ars: \"ARS\",\n Aud: \"AUD\",\n Awg: \"AWG\",\n Azn: \"AZN\",\n Bam: \"BAM\",\n Bbd: \"BBD\",\n Bdt: \"BDT\",\n Bgn: \"BGN\",\n Bhd: \"BHD\",\n Bif: \"BIF\",\n Bmd: \"BMD\",\n Bnd: \"BND\",\n Bob: \"BOB\",\n Bov: \"BOV\",\n Brl: \"BRL\",\n Bsd: \"BSD\",\n Btn: \"BTN\",\n Bwp: \"BWP\",\n Byn: \"BYN\",\n Byr: \"BYR\",\n Bzd: \"BZD\",\n Cad: \"CAD\",\n Cdf: \"CDF\",\n Che: \"CHE\",\n Chf: \"CHF\",\n Chw: \"CHW\",\n Clf: \"CLF\",\n Clp: \"CLP\",\n Cny: \"CNY\",\n Cop: \"COP\",\n Cou: \"COU\",\n Crc: \"CRC\",\n Cuc: \"CUC\",\n Cup: \"CUP\",\n Cve: \"CVE\",\n Czk: \"CZK\",\n Djf: \"DJF\",\n Dkk: \"DKK\",\n Dop: \"DOP\",\n Dzd: \"DZD\",\n Egp: \"EGP\",\n Ern: \"ERN\",\n Etb: \"ETB\",\n Eur: \"EUR\",\n Fjd: \"FJD\",\n Fkp: \"FKP\",\n Gbp: \"GBP\",\n Gel: \"GEL\",\n Ghs: \"GHS\",\n Gip: \"GIP\",\n Gmd: \"GMD\",\n Gnf: \"GNF\",\n Gtq: \"GTQ\",\n Gyd: \"GYD\",\n Hkd: \"HKD\",\n Hnl: \"HNL\",\n Hrk: \"HRK\",\n Htg: \"HTG\",\n Huf: \"HUF\",\n Idr: \"IDR\",\n Ils: \"ILS\",\n Inr: \"INR\",\n Iqd: \"IQD\",\n Irr: \"IRR\",\n Isk: \"ISK\",\n Jmd: \"JMD\",\n Jod: \"JOD\",\n Jpy: \"JPY\",\n Kes: \"KES\",\n Kgs: \"KGS\",\n Khr: \"KHR\",\n Kmf: \"KMF\",\n Kpw: \"KPW\",\n Krw: \"KRW\",\n Kwd: \"KWD\",\n Kyd: \"KYD\",\n Kzt: \"KZT\",\n Lak: \"LAK\",\n Lbp: \"LBP\",\n Lkr: \"LKR\",\n Lrd: \"LRD\",\n Lsl: \"LSL\",\n Ltl: \"LTL\",\n Lyd: \"LYD\",\n Mad: \"MAD\",\n Mdl: \"MDL\",\n Mga: \"MGA\",\n Mkd: \"MKD\",\n Mmk: \"MMK\",\n Mnt: \"MNT\",\n Mop: \"MOP\",\n Mro: \"MRO\",\n Mru: \"MRU\",\n Mur: \"MUR\",\n Mvr: \"MVR\",\n Mwk: \"MWK\",\n Mxn: \"MXN\",\n Mxv: \"MXV\",\n Myr: \"MYR\",\n Mzn: \"MZN\",\n Nad: \"NAD\",\n Ngn: \"NGN\",\n Nio: \"NIO\",\n Nok: \"NOK\",\n Npr: \"NPR\",\n Nzd: \"NZD\",\n Omr: \"OMR\",\n Pab: \"PAB\",\n Pen: \"PEN\",\n Pgk: \"PGK\",\n Php: \"PHP\",\n Pkr: \"PKR\",\n Pln: \"PLN\",\n Pyg: \"PYG\",\n Qar: \"QAR\",\n Ron: \"RON\",\n Rsd: \"RSD\",\n Rub: \"RUB\",\n Rur: \"RUR\",\n Rwf: \"RWF\",\n Sar: \"SAR\",\n Sbd: \"SBD\",\n Scr: \"SCR\",\n Sdg: \"SDG\",\n Sek: \"SEK\",\n Sgd: \"SGD\",\n Shp: \"SHP\",\n Sll: \"SLL\",\n Sle: \"SLE\",\n Sos: \"SOS\",\n Srd: \"SRD\",\n Ssp: \"SSP\",\n Std: \"STD\",\n Stn: \"STN\",\n Svc: \"SVC\",\n Swl: \"SWL\",\n Syp: \"SYP\",\n Szl: \"SZL\",\n Thb: \"THB\",\n Tjs: \"TJS\",\n Tmt: \"TMT\",\n Tnd: \"TND\",\n Top: \"TOP\",\n Try: \"TRY\",\n Ttd: \"TTD\",\n Twd: \"TWD\",\n Tzs: \"TZS\",\n Uah: \"UAH\",\n Ugx: \"UGX\",\n Usd: \"USD\",\n Usn: \"USN\",\n Uss: \"USS\",\n Uyi: \"UYI\",\n Uyu: \"UYU\",\n Uzs: \"UZS\",\n Vef: \"VEF\",\n Ves: \"VES\",\n Vnd: \"VND\",\n Vuv: \"VUV\",\n Wst: \"WST\",\n Xaf: \"XAF\",\n Xag: \"XAG\",\n Xau: \"XAU\",\n Xba: \"XBA\",\n Xbb: \"XBB\",\n Xbc: \"XBC\",\n Xbd: \"XBD\",\n Xcd: \"XCD\",\n Xcg: \"XCG\",\n Xdr: \"XDR\",\n Xof: \"XOF\",\n Xpd: \"XPD\",\n Xpf: \"XPF\",\n Xpt: \"XPT\",\n Xsu: \"XSU\",\n Xts: \"XTS\",\n Xua: \"XUA\",\n Xxx: \"XXX\",\n Yer: \"YER\",\n Zar: \"ZAR\",\n Zmw: \"ZMW\",\n Zwl: \"ZWL\",\n Zwg: \"ZWG\",\n } as const;\n export type TaxCurrencyCode = (typeof TaxCurrencyCode)[keyof typeof TaxCurrencyCode];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * How often is the payment made\n */\nexport interface RecurrenceRule {\n startDate: string;\n frequency: RecurrenceRule.Frequency;\n interval?: number | undefined;\n count?: number | undefined;\n untilDate?: string | undefined;\n weekStart?: RecurrenceRule.WeekStart | undefined;\n days?: RecurrenceRule.Days.Item[] | undefined;\n monthDay?: number | undefined;\n monthWeek?: number | undefined;\n}\n\nexport namespace RecurrenceRule {\n export const Frequency = {\n Secondly: \"SECONDLY\",\n Minutely: \"MINUTELY\",\n Hourly: \"HOURLY\",\n Daily: \"DAILY\",\n Weekly: \"WEEKLY\",\n Monthly: \"MONTHLY\",\n Yearly: \"YEARLY\",\n Millennialy: \"MILLENNIALY\",\n WorkingDaily: \"WORKING_DAILY\",\n ScottishQuarterly: \"SCOTTISH_QUARTERLY\",\n EnglishQuarterly: \"ENGLISH_QUARTERLY\",\n ReceivedQuarterly: \"RECEIVED_QUARTERLY\",\n } as const;\n export type Frequency = (typeof Frequency)[keyof typeof Frequency];\n export const WeekStart = {\n Monday: \"MONDAY\",\n Tuesday: \"TUESDAY\",\n Wednesday: \"WEDNESDAY\",\n Thursday: \"THURSDAY\",\n Friday: \"FRIDAY\",\n Saturday: \"SATURDAY\",\n Sunday: \"SUNDAY\",\n } as const;\n export type WeekStart = (typeof WeekStart)[keyof typeof WeekStart];\n export type Days = Days.Item[];\n\n export namespace Days {\n export const Item = {\n Monday: \"MONDAY\",\n Tuesday: \"TUESDAY\",\n Wednesday: \"WEDNESDAY\",\n Thursday: \"THURSDAY\",\n Friday: \"FRIDAY\",\n Saturday: \"SATURDAY\",\n Sunday: \"SUNDAY\",\n } as const;\n export type Item = (typeof Item)[keyof typeof Item];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * The schedule definition\n */\nexport interface RecurrenceRuleV2 {\n startDate: string;\n frequency: RecurrenceRuleV2.Frequency;\n interval?: (number | null) | undefined;\n count?: (number | null) | undefined;\n untilDate?: string | undefined;\n days?: ((RecurrenceRuleV2.Days.Item | null)[] | null) | undefined;\n}\n\nexport namespace RecurrenceRuleV2 {\n export const Frequency = {\n Daily: \"DAILY\",\n Weekly: \"WEEKLY\",\n Monthly: \"MONTHLY\",\n Yearly: \"YEARLY\",\n } as const;\n export type Frequency = (typeof Frequency)[keyof typeof Frequency];\n export type Days = Days.Item[];\n\n export namespace Days {\n export const Item = {\n Monday: \"MONDAY\",\n Tuesday: \"TUESDAY\",\n Wednesday: \"WEDNESDAY\",\n Thursday: \"THURSDAY\",\n Friday: \"FRIDAY\",\n Saturday: \"SATURDAY\",\n Sunday: \"SUNDAY\",\n } as const;\n export type Item = (typeof Item)[keyof typeof Item];\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * A goal defined by an account holder to hold savings\n */\nexport interface SavingsGoalOrdered {\n /** Unique identifier of the savings goal */\n savingsGoalUid: string;\n /** Name of the savings goal */\n name: string;\n target?: Starling.CurrencyAndAmount | undefined;\n totalSaved: Starling.CurrencyAndAmount;\n /** Percentage of target currently deposited in the savings goal */\n savedPercentage?: number | undefined;\n /** Sort Order */\n sortOrder?: number | undefined;\n /** The state of the savings goal */\n state: SavingsGoalOrdered.State;\n}\n\nexport namespace SavingsGoalOrdered {\n /** The state of the savings goal */\n export const State = {\n Creating: \"CREATING\",\n Active: \"ACTIVE\",\n Archiving: \"ARCHIVING\",\n Archived: \"ARCHIVED\",\n Restoring: \"RESTORING\",\n Pending: \"PENDING\",\n } as const;\n export type State = (typeof State)[keyof typeof State];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * A goal defined by an account holder to hold savings\n */\nexport interface SavingsGoalV2 {\n /** Unique identifier of the savings goal */\n savingsGoalUid: string;\n /** Name of the savings goal */\n name: string;\n target?: Starling.CurrencyAndAmount | undefined;\n totalSaved: Starling.CurrencyAndAmount;\n /** Percentage of target currently deposited in the savings goal */\n savedPercentage?: number | undefined;\n /** The state of the savings goal */\n state: SavingsGoalV2.State;\n}\n\nexport namespace SavingsGoalV2 {\n /** The state of the savings goal */\n export const State = {\n Creating: \"CREATING\",\n Active: \"ACTIVE\",\n Archiving: \"ARCHIVING\",\n Archived: \"ARCHIVED\",\n Restoring: \"RESTORING\",\n Pending: \"PENDING\",\n } as const;\n export type State = (typeof State)[keyof typeof State];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Response object for scheduled payments queries\n */\nexport interface ScheduledPayment {\n /** Unique identifier for account holder */\n accountHolderUid?: string | undefined;\n /** Unique identifier of the scheduled payment order */\n paymentOrderUid?: string | undefined;\n /** Unique identifier of the category from which the payment will be taken */\n categoryUid?: string | undefined;\n nextPaymentAmount?: Starling.CurrencyAndAmount | undefined;\n /** Payment order reference */\n reference?: string | undefined;\n /** Unique identifier of the payee */\n payeeUid?: string | undefined;\n /** Unique identifier of the payee account */\n payeeAccountUid?: string | undefined;\n /** Recipient name */\n recipientName?: (string | null) | undefined;\n recurrenceRule?: Starling.RecurrenceRule | undefined;\n /** Date when the payment order has been created */\n startDate?: string | undefined;\n /** Date of the next payment order */\n nextDate?: string | undefined;\n /** Date when payment order ends */\n endDate?: string | undefined;\n /** Payment type */\n paymentType?: ScheduledPayment.PaymentType | undefined;\n /** The category of a transaction */\n spendingCategory?: ScheduledPayment.SpendingCategory | undefined;\n}\n\nexport namespace ScheduledPayment {\n /** Payment type */\n export const PaymentType = {\n DirectDebit: \"DIRECT_DEBIT\",\n StandingOrder: \"STANDING_ORDER\",\n InternalTransfer: \"INTERNAL_TRANSFER\",\n } as const;\n export type PaymentType = (typeof PaymentType)[keyof typeof PaymentType];\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport interface SettleUpProfile {\n /** Status */\n status: SettleUpProfile.Status;\n starlingPayLink?: string | undefined;\n /** Settle Up link */\n settleUpLink: string;\n}\n\nexport namespace SettleUpProfile {\n /** Status */\n export const Status = {\n Active: \"ACTIVE\",\n Inactive: \"INACTIVE\",\n Closed: \"CLOSED\",\n } as const;\n export type Status = (typeof Status)[keyof typeof Status];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Response object contain sole trader business details\n */\nexport interface SoleTrader {\n /** Trading as name */\n tradingAsName?: string | undefined;\n /** Business category */\n businessCategory?: SoleTrader.BusinessCategory | undefined;\n /** Business subcategory */\n businessSubCategory?: SoleTrader.BusinessSubCategory | undefined;\n /** Business category description */\n businessCategoryDescriptions?: Starling.CategoryDescription[] | undefined;\n /** Business subcategory description */\n businessSubCategoryDescriptions?: Starling.CategoryDescription[] | undefined;\n}\n\nexport namespace SoleTrader {\n /** Business category */\n export const BusinessCategory = {\n NotProvided: \"NOT_PROVIDED\",\n ArtsCraftsAndCollectibles: \"ARTS_CRAFTS_AND_COLLECTIBLES\",\n Baby: \"BABY\",\n BeautyAndFragrances: \"BEAUTY_AND_FRAGRANCES\",\n BooksAndMagazines: \"BOOKS_AND_MAGAZINES\",\n BusinessToBusiness: \"BUSINESS_TO_BUSINESS\",\n ClothingAccessoriesAndShoes: \"CLOTHING_ACCESSORIES_AND_SHOES\",\n ComputersAccessoriesAndServices: \"COMPUTERS_ACCESSORIES_AND_SERVICES\",\n Education: \"EDUCATION\",\n ElectronicsAndTelecom: \"ELECTRONICS_AND_TELECOM\",\n EntertainmentAndMedia: \"ENTERTAINMENT_AND_MEDIA\",\n FinancialServicesAndProducts: \"FINANCIAL_SERVICES_AND_PRODUCTS\",\n FoodRetailAndService: \"FOOD_RETAIL_AND_SERVICE\",\n GiftsAndFlowers: \"GIFTS_AND_FLOWERS\",\n HealthAndPersonalCare: \"HEALTH_AND_PERSONAL_CARE\",\n HomeAndGarden: \"HOME_AND_GARDEN\",\n Nonprofit: \"NONPROFIT\",\n PetsAndAnimals: \"PETS_AND_ANIMALS\",\n ReligionAndSpiritualityForProfit: \"RELIGION_AND_SPIRITUALITY_FOR_PROFIT\",\n RetailNotElsewhereClassified: \"RETAIL_NOT_ELSEWHERE_CLASSIFIED\",\n ServicesOther: \"SERVICES_OTHER\",\n SportsAndOutdoors: \"SPORTS_AND_OUTDOORS\",\n ToysAndHobbies: \"TOYS_AND_HOBBIES\",\n Travel: \"TRAVEL\",\n VehicleServiceAndAccessories: \"VEHICLE_SERVICE_AND_ACCESSORIES\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n RetailBarsAndRestaurants: \"RETAIL_BARS_AND_RESTAURANTS\",\n EntertainmentAndTravel: \"ENTERTAINMENT_AND_TRAVEL\",\n HealthAndSocialCare: \"HEALTH_AND_SOCIAL_CARE\",\n TransportAndVehicles: \"TRANSPORT_AND_VEHICLES\",\n ConstructionTradesAndCleaning: \"CONSTRUCTION_TRADES_AND_CLEANING\",\n Property: \"PROPERTY\",\n ExerciseAndFitness: \"EXERCISE_AND_FITNESS\",\n EducationAndSkills: \"EDUCATION_AND_SKILLS\",\n NonProfit: \"NON_PROFIT\",\n ManufacturingRndAndAgriculture: \"MANUFACTURING_RND_AND_AGRICULTURE\",\n } as const;\n export type BusinessCategory = (typeof BusinessCategory)[keyof typeof BusinessCategory];\n /** Business subcategory */\n export const BusinessSubCategory = {\n NotProvided: \"NOT_PROVIDED\",\n ArtAndCraftSupplies: \"ART_AND_CRAFT_SUPPLIES\",\n ArtDealersAndGalleries: \"ART_DEALERS_AND_GALLERIES\",\n CameraAndPhotographicSupplies: \"CAMERA_AND_PHOTOGRAPHIC_SUPPLIES\",\n DigitalArt: \"DIGITAL_ART\",\n Memorabilia: \"MEMORABILIA\",\n SewingNeedleworkAndFabrics: \"SEWING_NEEDLEWORK_AND_FABRICS\",\n StampAndCoin: \"STAMP_AND_COIN\",\n StationaryPrintingAndWritingPaper: \"STATIONARY_PRINTING_AND_WRITING_PAPER\",\n VintageAndCollectibles: \"VINTAGE_AND_COLLECTIBLES\",\n Clothing: \"CLOTHING\",\n Furniture: \"FURNITURE\",\n BabyProductsOther: \"BABY_PRODUCTS_OTHER\",\n SafetyAndHealth: \"SAFETY_AND_HEALTH\",\n BathAndBody: \"BATH_AND_BODY\",\n FragrancesAndPerfumes: \"FRAGRANCES_AND_PERFUMES\",\n MakeupAndCosmetics: \"MAKEUP_AND_COSMETICS\",\n AudioBooks: \"AUDIO_BOOKS\",\n DigitalContent: \"DIGITAL_CONTENT\",\n EducationalAndTextbooks: \"EDUCATIONAL_AND_TEXTBOOKS\",\n FictionAndNonfiction: \"FICTION_AND_NONFICTION\",\n Magazines: \"MAGAZINES\",\n BooksPublishingAndPrinting: \"BOOKS_PUBLISHING_AND_PRINTING\",\n RareAndUsedBooks: \"RARE_AND_USED_BOOKS\",\n Accounting: \"ACCOUNTING\",\n Advertising: \"ADVERTISING\",\n Agricultural: \"AGRICULTURAL\",\n ArchitecturalEngineeringAndSurveyingServices: \"ARCHITECTURAL_ENGINEERING_AND_SURVEYING_SERVICES\",\n ChemicalsAndAlliedProducts: \"CHEMICALS_AND_ALLIED_PRODUCTS\",\n CommercialPhotographyArtAndGraphics: \"COMMERCIAL_PHOTOGRAPHY_ART_AND_GRAPHICS\",\n Construction: \"CONSTRUCTION\",\n ConsultingServices: \"CONSULTING_SERVICES\",\n EducationalServices: \"EDUCATIONAL_SERVICES\",\n EquipmentRentalsAndLeasingServices: \"EQUIPMENT_RENTALS_AND_LEASING_SERVICES\",\n EquipmentRepairServices: \"EQUIPMENT_REPAIR_SERVICES\",\n HiringServices: \"HIRING_SERVICES\",\n IndustrialAndManufacturingSupplies: \"INDUSTRIAL_AND_MANUFACTURING_SUPPLIES\",\n MailingLists: \"MAILING_LISTS\",\n Marketing: \"MARKETING\",\n MultilevelMarketing: \"MULTILEVEL_MARKETING\",\n OfficeAndCommercialFurniture: \"OFFICE_AND_COMMERCIAL_FURNITURE\",\n OfficeSuppliesAndEquipment: \"OFFICE_SUPPLIES_AND_EQUIPMENT\",\n PublishingAndPrinting: \"PUBLISHING_AND_PRINTING\",\n QuickCopyAndReproductionServices: \"QUICK_COPY_AND_REPRODUCTION_SERVICES\",\n ShippingAndPacking: \"SHIPPING_AND_PACKING\",\n StenographicAndSecretarialSupportServices: \"STENOGRAPHIC_AND_SECRETARIAL_SUPPORT_SERVICES\",\n Wholesale: \"WHOLESALE\",\n ChildrensClothing: \"CHILDRENS_CLOTHING\",\n MensClothing: \"MENS_CLOTHING\",\n WomensClothing: \"WOMENS_CLOTHING\",\n Shoes: \"SHOES\",\n MilitaryAndCivilServiceUniforms: \"MILITARY_AND_CIVIL_SERVICE_UNIFORMS\",\n Accessories: \"ACCESSORIES\",\n RetailFineJewelryAndWatches: \"RETAIL_FINE_JEWELRY_AND_WATCHES\",\n WholesalePreciousStonesAndMetals: \"WHOLESALE_PRECIOUS_STONES_AND_METALS\",\n FashionJewellery: \"FASHION_JEWELLERY\",\n ComputerAndDataProcessingServices: \"COMPUTER_AND_DATA_PROCESSING_SERVICES\",\n DesktopsLaptopsAndNotebooks: \"DESKTOPS_LAPTOPS_AND_NOTEBOOKS\",\n ComputerDigitalContent: \"COMPUTER_DIGITAL_CONTENT\",\n EcommerceServices: \"ECOMMERCE_SERVICES\",\n MaintenanceAndRepairServices: \"MAINTENANCE_AND_REPAIR_SERVICES\",\n MonitorsAndProjectors: \"MONITORS_AND_PROJECTORS\",\n Networking: \"NETWORKING\",\n OnlineGaming: \"ONLINE_GAMING\",\n PartsAndAccessories: \"PARTS_AND_ACCESSORIES\",\n Peripherals: \"PERIPHERALS\",\n Software: \"SOFTWARE\",\n TrainingServices: \"TRAINING_SERVICES\",\n WebHostingAndDesign: \"WEB_HOSTING_AND_DESIGN\",\n BusinessAndSecretarialSchools: \"BUSINESS_AND_SECRETARIAL_SCHOOLS\",\n ChildDaycareServices: \"CHILD_DAYCARE_SERVICES\",\n DanceHallsStudiosAndSchools: \"DANCE_HALLS_STUDIOS_AND_SCHOOLS\",\n VocationalAndTradeSchools: \"VOCATIONAL_AND_TRADE_SCHOOLS\",\n CamerasCamcordersAndEquipment: \"CAMERAS_CAMCORDERS_AND_EQUIPMENT\",\n CellPhonesPdasAndPagers: \"CELL_PHONES_PDAS_AND_PAGERS\",\n GeneralElectronicAccessories: \"GENERAL_ELECTRONIC_ACCESSORIES\",\n HomeAudio: \"HOME_AUDIO\",\n HomeElectronics: \"HOME_ELECTRONICS\",\n SecurityAndSurveillance: \"SECURITY_AND_SURVEILLANCE\",\n TelecommunicationEquipmentAndSales: \"TELECOMMUNICATION_EQUIPMENT_AND_SALES\",\n TelecommunicationServices: \"TELECOMMUNICATION_SERVICES\",\n TelephoneCards: \"TELEPHONE_CARDS\",\n EntertainmentMemorabilia: \"ENTERTAINMENT_MEMORABILIA\",\n MovieTickets: \"MOVIE_TICKETS\",\n MoviesDvdsVideotapes: \"MOVIES_DVDS_VIDEOTAPES\",\n MusicCdsCassettesAndAlbums: \"MUSIC_CDS_CASSETTES_AND_ALBUMS\",\n CableSatelliteAndOtherPayTvAndRadio: \"CABLE_SATELLITE_AND_OTHER_PAY_TV_AND_RADIO\",\n ConcertTickets: \"CONCERT_TICKETS\",\n TheaterTickets: \"THEATER_TICKETS\",\n ToysAndGames: \"TOYS_AND_GAMES\",\n EntertainmentDigitalContent: \"ENTERTAINMENT_DIGITAL_CONTENT\",\n Entertainers: \"ENTERTAINERS\",\n OnlineGames: \"ONLINE_GAMES\",\n VideoGamesAndSystems: \"VIDEO_GAMES_AND_SYSTEMS\",\n FinancialAccounting: \"FINANCIAL_ACCOUNTING\",\n DebtCounselingService: \"DEBT_COUNSELING_SERVICE\",\n FinancialAndInvestmentAdvice: \"FINANCIAL_AND_INVESTMENT_ADVICE\",\n RentalPropertyManagement: \"RENTAL_PROPERTY_MANAGEMENT\",\n AlcoholicBeverages: \"ALCOHOLIC_BEVERAGES\",\n CateringServices: \"CATERING_SERVICES\",\n CoffeeAndTea: \"COFFEE_AND_TEA\",\n GourmetFoods: \"GOURMET_FOODS\",\n SpecialtyAndMiscellaneousFoodStores: \"SPECIALTY_AND_MISCELLANEOUS_FOOD_STORES\",\n Restaurant: \"RESTAURANT\",\n Tobacco: \"TOBACCO\",\n VitaminsAndSupplements: \"VITAMINS_AND_SUPPLEMENTS\",\n Florist: \"FLORIST\",\n GiftCardNoveltyAndSouvenirShops: \"GIFT_CARD_NOVELTY_AND_SOUVENIR_SHOPS\",\n GiftsGourmetFoods: \"GIFTS_GOURMET_FOODS\",\n NurseryPlantsAndFlowers: \"NURSERY_PLANTS_AND_FLOWERS\",\n PartySupplies: \"PARTY_SUPPLIES\",\n DentalCare: \"DENTAL_CARE\",\n MedicalCare: \"MEDICAL_CARE\",\n MedicalEquipmentAndSupplies: \"MEDICAL_EQUIPMENT_AND_SUPPLIES\",\n VisionCare: \"VISION_CARE\",\n HealthVitaminsAndSupplements: \"HEALTH_VITAMINS_AND_SUPPLEMENTS\",\n Appliances: \"APPLIANCES\",\n HomeArtDealersAndGalleries: \"HOME_ART_DEALERS_AND_GALLERIES\",\n BedAndBath: \"BED_AND_BATH\",\n ConstructionMaterial: \"CONSTRUCTION_MATERIAL\",\n DraperyWindowCoveringAndUpholstery: \"DRAPERY_WINDOW_COVERING_AND_UPHOLSTERY\",\n ExterminatingAndDisinfectingServices: \"EXTERMINATING_AND_DISINFECTING_SERVICES\",\n FireplaceAndFireplaceScreens: \"FIREPLACE_AND_FIREPLACE_SCREENS\",\n HomeFurniture: \"HOME_FURNITURE\",\n GardenSupplies: \"GARDEN_SUPPLIES\",\n GlassPaintAndWallpaper: \"GLASS_PAINT_AND_WALLPAPER\",\n HardwareAndTools: \"HARDWARE_AND_TOOLS\",\n HomeDecor: \"HOME_DECOR\",\n Housewares: \"HOUSEWARES\",\n Kitchenware: \"KITCHENWARE\",\n Landscaping: \"LANDSCAPING\",\n RugsAndCarpets: \"RUGS_AND_CARPETS\",\n SecurityAndSurveillanceEquipment: \"SECURITY_AND_SURVEILLANCE_EQUIPMENT\",\n SwimmingPoolsAndSpas: \"SWIMMING_POOLS_AND_SPAS\",\n Charity: \"CHARITY\",\n Political: \"POLITICAL\",\n Religious: \"RELIGIOUS\",\n Other: \"OTHER\",\n Personal: \"PERSONAL\",\n Educational: \"EDUCATIONAL\",\n MedicationAndSupplements: \"MEDICATION_AND_SUPPLEMENTS\",\n PetShopsPetFoodAndSupplies: \"PET_SHOPS_PET_FOOD_AND_SUPPLIES\",\n SpecialtyOrRarePets: \"SPECIALTY_OR_RARE_PETS\",\n VeterinaryServices: \"VETERINARY_SERVICES\",\n MembershipServices: \"MEMBERSHIP_SERVICES\",\n Merchandise: \"MERCHANDISE\",\n ServicesNotElsewhereClassified: \"SERVICES_NOT_ELSEWHERE_CLASSIFIED\",\n RetailChemicalsAndAlliedProducts: \"RETAIL_CHEMICALS_AND_ALLIED_PRODUCTS\",\n DepartmentStore: \"DEPARTMENT_STORE\",\n DiscountStore: \"DISCOUNT_STORE\",\n DurableGoods: \"DURABLE_GOODS\",\n NondurableGoods: \"NONDURABLE_GOODS\",\n UsedAndSecondhandStore: \"USED_AND_SECONDHAND_STORE\",\n VarietyStore: \"VARIETY_STORE\",\n ServicesAdvertising: \"SERVICES_ADVERTISING\",\n ShoppingServicesAndBuyingClubs: \"SHOPPING_SERVICES_AND_BUYING_CLUBS\",\n CareerServices: \"CAREER_SERVICES\",\n Carpentry: \"CARPENTRY\",\n ChildCareServices: \"CHILD_CARE_SERVICES\",\n CleaningAndMaintenance: \"CLEANING_AND_MAINTENANCE\",\n CommercialPhotography: \"COMMERCIAL_PHOTOGRAPHY\",\n ServicesComputerAndDataProcessingServices: \"SERVICES_COMPUTER_AND_DATA_PROCESSING_SERVICES\",\n ComputerNetworkServices: \"COMPUTER_NETWORK_SERVICES\",\n ServicesConsultingServices: \"SERVICES_CONSULTING_SERVICES\",\n CounselingServices: \"COUNSELING_SERVICES\",\n CourierServices: \"COURIER_SERVICES\",\n ServicesDentalCare: \"SERVICES_DENTAL_CARE\",\n ServicesEcommerceServices: \"SERVICES_ECOMMERCE_SERVICES\",\n ElectricalAndSmallApplianceRepair: \"ELECTRICAL_AND_SMALL_APPLIANCE_REPAIR\",\n Entertainment: \"ENTERTAINMENT\",\n EquipmentRentalAndLeasingServices: \"EQUIPMENT_RENTAL_AND_LEASING_SERVICES\",\n EventAndWeddingPlanning: \"EVENT_AND_WEDDING_PLANNING\",\n GeneralContractors: \"GENERAL_CONTRACTORS\",\n GraphicAndCommercialDesign: \"GRAPHIC_AND_COMMERCIAL_DESIGN\",\n HealthAndBeautySpas: \"HEALTH_AND_BEAUTY_SPAS\",\n IdsLicensesAndPassports: \"IDS_LICENSES_AND_PASSPORTS\",\n ImportingAndExporting: \"IMPORTING_AND_EXPORTING\",\n InformationRetrievalServices: \"INFORMATION_RETRIEVAL_SERVICES\",\n LandscapingAndHorticultural: \"LANDSCAPING_AND_HORTICULTURAL\",\n LegalServicesAndAttorneys: \"LEGAL_SERVICES_AND_ATTORNEYS\",\n LocalDeliveryService: \"LOCAL_DELIVERY_SERVICE\",\n ServicesMedicalCare: \"SERVICES_MEDICAL_CARE\",\n MembershipClubsAndOrganizations: \"MEMBERSHIP_CLUBS_AND_ORGANIZATIONS\",\n ServicesMiscPublishingAndPrinting: \"SERVICES_MISC_PUBLISHING_AND_PRINTING\",\n MovingAndStorage: \"MOVING_AND_STORAGE\",\n Photofinishing: \"PHOTOFINISHING\",\n PhotographicStudiosPortraits: \"PHOTOGRAPHIC_STUDIOS__PORTRAITS\",\n ProtectiveAndSecurityServices: \"PROTECTIVE_AND_SECURITY_SERVICES\",\n ServicesQuickCopyAndReproductionServices: \"SERVICES_QUICK_COPY_AND_REPRODUCTION_SERVICES\",\n RadioTelevisionAndStereoRepair: \"RADIO_TELEVISION_AND_STEREO_REPAIR\",\n RealEstateAgent: \"REAL_ESTATE_AGENT_\",\n ServicesRentalPropertyManagement: \"SERVICES_RENTAL_PROPERTY_MANAGEMENT\",\n ReupholsteryAndFurnitureRepair: \"REUPHOLSTERY_AND_FURNITURE_REPAIR\",\n ServicesServicesNotElsewhereClassified: \"SERVICES_SERVICES_NOT_ELSEWHERE_CLASSIFIED\",\n ServicesShippingAndPacking: \"SERVICES_SHIPPING_AND_PACKING\",\n SwimmingPoolServices: \"SWIMMING_POOL_SERVICES\",\n TailorsAndAlterations: \"TAILORS_AND_ALTERATIONS\",\n TelecommunicationService: \"TELECOMMUNICATION_SERVICE\",\n Utilities: \"UTILITIES\",\n ServicesVisionCare: \"SERVICES_VISION_CARE\",\n WatchClockAndJewelryRepair: \"WATCH_CLOCK_AND_JEWELRY_REPAIR\",\n AthleticShoes: \"ATHLETIC_SHOES\",\n BicycleShopServiceAndRepair: \"BICYCLE_SHOP_SERVICE_AND_REPAIR\",\n BoatingSailingAndAccessories: \"BOATING_SAILING_AND_ACCESSORIES\",\n CampingAndOutdoors: \"CAMPING_AND_OUTDOORS\",\n SportsDanceHallsStudiosAndSchools: \"SPORTS_DANCE_HALLS_STUDIOS_AND_SCHOOLS\",\n ExerciseAndFitness: \"EXERCISE_AND_FITNESS\",\n FanGearAndMemorabilia: \"FAN_GEAR_AND_MEMORABILIA\",\n Hunting: \"HUNTING\",\n MartialArtsWeapons: \"MARTIAL_ARTS_WEAPONS\",\n SportGamesAndToys: \"SPORT_GAMES_AND_TOYS\",\n SportingEquipment: \"SPORTING_EQUIPMENT\",\n SportsSwimmingPoolsAndSpas: \"SPORTS_SWIMMING_POOLS_AND_SPAS\",\n ArtsAndCrafts: \"ARTS_AND_CRAFTS\",\n HobbiesCameraAndPhotographicSupplies: \"HOBBIES_CAMERA_AND_PHOTOGRAPHIC_SUPPLIES\",\n HobbyToyAndGameShops: \"HOBBY_TOY_AND_GAME_SHOPS\",\n HobbiesMemorabilia: \"HOBBIES_MEMORABILIA\",\n MusicStoreInstrumentsAndSheetMusic: \"MUSIC_STORE__INSTRUMENTS_AND_SHEET_MUSIC\",\n HobbiesStampAndCoin: \"HOBBIES_STAMP_AND_COIN\",\n HobbiesStationaryPrintingAndWritingPaper: \"HOBBIES_STATIONARY_PRINTING_AND_WRITING_PAPER\",\n HobbiesVintageAndCollectibles: \"HOBBIES_VINTAGE_AND_COLLECTIBLES\",\n HobbiesVideoGamesAndSystems: \"HOBBIES_VIDEO_GAMES_AND_SYSTEMS\",\n Airline: \"AIRLINE\",\n AutoRental: \"AUTO_RENTAL\",\n BusLine: \"BUS_LINE\",\n Cruises: \"CRUISES\",\n LodgingAndAccommodations: \"LODGING_AND_ACCOMMODATIONS\",\n LuggageAndLeatherGoods: \"LUGGAGE_AND_LEATHER_GOODS\",\n RecreationalServices: \"RECREATIONAL_SERVICES\",\n SportingAndRecreationCamps: \"SPORTING_AND_RECREATION_CAMPS\",\n TaxicabsAndLimousines: \"TAXICABS_AND_LIMOUSINES\",\n Timeshares: \"TIMESHARES\",\n Tours: \"TOURS\",\n TrailerParksOrCampgrounds: \"TRAILER_PARKS_OR_CAMPGROUNDS\",\n TransportationServicesOther: \"TRANSPORTATION_SERVICES__OTHER\",\n TravelAgency: \"TRAVEL_AGENCY\",\n NewPartsAndSuppliesMotorVehicle: \"NEW_PARTS_AND_SUPPLIES__MOTOR_VEHICLE\",\n UsedPartsMotorVehicle: \"USED_PARTS__MOTOR_VEHICLE\",\n AudioAndVideo: \"AUDIO_AND_VIDEO\",\n AutoBodyRepairAndPaint: \"AUTO_BODY_REPAIR_AND_PAINT\",\n ServicesAutoRental: \"SERVICES_AUTO_RENTAL\",\n AutoService: \"AUTO_SERVICE\",\n AutomotiveTireSupplyAndService: \"AUTOMOTIVE_TIRE_SUPPLY_AND_SERVICE\",\n BoatRentalAndLeases: \"BOAT_RENTAL_AND_LEASES\",\n CarWash: \"CAR_WASH\",\n MotorHomeAndRecreationalVehicleRental: \"MOTOR_HOME_AND_RECREATIONAL_VEHICLE_RENTAL\",\n ToolsAndEquipment: \"TOOLS_AND_EQUIPMENT\",\n TowingService: \"TOWING_SERVICE\",\n TruckAndUtilityTrailerRental: \"TRUCK_AND_UTILITY_TRAILER_RENTAL\",\n VehicleAccessories: \"VEHICLE_ACCESSORIES\",\n Cleaning: \"CLEANING\",\n Decorating: \"DECORATING\",\n Electrician: \"ELECTRICIAN\",\n Plumber: \"PLUMBER\",\n GasAndHeating: \"GAS_AND_HEATING\",\n CarpentryTrade: \"CARPENTRY_TRADE\",\n Roofing: \"ROOFING\",\n GardeningAndTreeSurgery: \"GARDENING_AND_TREE_SURGERY\",\n GeneralContractor: \"GENERAL_CONTRACTOR\",\n ConstructionSupplier: \"CONSTRUCTION_SUPPLIER\",\n WasteAndRecycling: \"WASTE_AND_RECYCLING\",\n ScrapMetal: \"SCRAP_METAL\",\n SiteAndBuildingManagement: \"SITE_AND_BUILDING_MANAGEMENT\",\n PestControl: \"PEST_CONTROL\",\n ConstructionTradesAndCleaningOther: \"CONSTRUCTION_TRADES_AND_CLEANING_OTHER\",\n PersonalTutor: \"PERSONAL_TUTOR\",\n MusicTeachers: \"MUSIC_TEACHERS\",\n ProfessionalTrainer: \"PROFESSIONAL_TRAINER\",\n PublicSpeaking: \"PUBLIC_SPEAKING\",\n Nursery: \"NURSERY\",\n Childminder: \"CHILDMINDER\",\n NannyOrAuPair: \"NANNY_OR_AU_PAIR\",\n ChildrensActivities: \"CHILDRENS_ACTIVITIES\",\n StudentRecruitment: \"STUDENT_RECRUITMENT\",\n StudentSupport: \"STUDENT_SUPPORT\",\n SchoolsCollegesAndTraining: \"SCHOOLS_COLLEGES_AND_TRAINING\",\n EducationAndSkillsOther: \"EDUCATION_AND_SKILLS_OTHER\",\n DigitalContentOrGames: \"DIGITAL_CONTENT_OR_GAMES\",\n VideoProduction: \"VIDEO_PRODUCTION\",\n Influencer: \"INFLUENCER\",\n PromotionAndPublishing: \"PROMOTION_AND_PUBLISHING\",\n Catering: \"CATERING\",\n EntertainersAndDjs: \"ENTERTAINERS_AND_DJS\",\n EventsAndWeddings: \"EVENTS_AND_WEDDINGS\",\n EventsProducts: \"EVENTS_PRODUCTS\",\n EventsStaffingAndServices: \"EVENTS_STAFFING_AND_SERVICES\",\n TravelAgent: \"TRAVEL_AGENT\",\n TourGuide: \"TOUR_GUIDE\",\n LodgingAndAccommodation: \"LODGING_AND_ACCOMMODATION\",\n TvAndRadio: \"TV_AND_RADIO\",\n MusicianOrGroups: \"MUSICIAN_OR_GROUPS\",\n EntertainmentAndTravelOther: \"ENTERTAINMENT_AND_TRAVEL_OTHER\",\n PersonalTrainer: \"PERSONAL_TRAINER\",\n SportsCoach: \"SPORTS_COACH\",\n SportsClub: \"SPORTS_CLUB\",\n SportsAndFitnessVenue: \"SPORTS_AND_FITNESS_VENUE\",\n GymOperator: \"GYM_OPERATOR\",\n ClassInstructor: \"CLASS_INSTRUCTOR\",\n ExerciseAndFitnessOther: \"EXERCISE_AND_FITNESS_OTHER\",\n DoctorNurseOrMidwife: \"DOCTOR_NURSE_OR_MIDWIFE\",\n Pharmacy: \"PHARMACY\",\n PersonalAndSocialCare: \"PERSONAL_AND_SOCIAL_CARE\",\n Physiotherapist: \"PHYSIOTHERAPIST\",\n NutritionAndDiet: \"NUTRITION_AND_DIET\",\n MentalHealthAndCounselling: \"MENTAL_HEALTH_AND_COUNSELLING\",\n MedicalEquipmentAndSuppliers: \"MEDICAL_EQUIPMENT_AND_SUPPLIERS\",\n Dental: \"DENTAL\",\n Optician: \"OPTICIAN\",\n OtherMedicalTherapy: \"OTHER_MEDICAL_THERAPY\",\n ChiropractorOrOsteopath: \"CHIROPRACTOR_OR_OSTEOPATH\",\n Podiatrist: \"PODIATRIST\",\n ComplimentaryAndAlternativeMedicine: \"COMPLIMENTARY_AND_ALTERNATIVE_MEDICINE\",\n HealthAndSocialCareOther: \"HEALTH_AND_SOCIAL_CARE_OTHER\",\n Manufacturing: \"MANUFACTURING\",\n IndustrialEngineer: \"INDUSTRIAL_ENGINEER\",\n FoodOrDrinkProduction: \"FOOD_OR_DRINK_PRODUCTION\",\n ResearchAndDevelopment: \"RESEARCH_AND_DEVELOPMENT\",\n LivestockFarming: \"LIVESTOCK_FARMING\",\n CropFarming: \"CROP_FARMING\",\n HorticultureOrPlantNursery: \"HORTICULTURE_OR_PLANT_NURSERY\",\n Forestry: \"FORESTRY\",\n Veterinary: \"VETERINARY\",\n SupplierToAgricultureOrIndustry: \"SUPPLIER_TO_AGRICULTURE_OR_INDUSTRY\",\n Equestrian: \"EQUESTRIAN\",\n AnimalCare: \"ANIMAL_CARE\",\n ArmsManufacturer: \"ARMS_MANUFACTURER\",\n Mining: \"MINING\",\n OilAndGas: \"OIL_AND_GAS\",\n Coal: \"COAL\",\n CommercialFishing: \"COMMERCIAL_FISHING\",\n ManufacturingRndAndAgricultureOther: \"MANUFACTURING_RND_AND_AGRICULTURE_OTHER\",\n Animals: \"ANIMALS\",\n ArtsCultureAndHumanities: \"ARTS_CULTURE_AND_HUMANITIES\",\n CommunityDevelopment: \"COMMUNITY_DEVELOPMENT\",\n Education: \"EDUCATION\",\n Environment: \"ENVIRONMENT\",\n HealthAndDisease: \"HEALTH_AND_DISEASE\",\n HumanAndCivilRights: \"HUMAN_AND_CIVIL_RIGHTS\",\n ChildrenYouthAndFamily: \"CHILDREN_YOUTH_AND_FAMILY\",\n Homelessness: \"HOMELESSNESS\",\n International: \"INTERNATIONAL\",\n ResearchAndPublicPolicy: \"RESEARCH_AND_PUBLIC_POLICY\",\n Religion: \"RELIGION\",\n PoliticalParty: \"POLITICAL_PARTY\",\n NonProfitOther: \"NON_PROFIT_OTHER\",\n ArchitectStructuralEngineerOrSurveyor: \"ARCHITECT_STRUCTURAL_ENGINEER_OR_SURVEYOR\",\n AccountancyAndBookkeeping: \"ACCOUNTANCY_AND_BOOKKEEPING\",\n BusinessServices: \"BUSINESS_SERVICES\",\n FinancialOrInvestmentAdvice: \"FINANCIAL_OR_INVESTMENT_ADVICE\",\n MortgageBrokers: \"MORTGAGE_BROKERS\",\n SoftwareAndIt: \"SOFTWARE_AND_IT\",\n WebsiteDevelopment: \"WEBSITE_DEVELOPMENT\",\n ManagementConsultancy: \"MANAGEMENT_CONSULTANCY\",\n ProjectManagement: \"PROJECT_MANAGEMENT\",\n MarketingAdvertisingAndDesign: \"MARKETING_ADVERTISING_AND_DESIGN\",\n GraphicDesignAndIllustration: \"GRAPHIC_DESIGN_AND_ILLUSTRATION\",\n InteriorDesign: \"INTERIOR_DESIGN\",\n RecruitmentAndHiring: \"RECRUITMENT_AND_HIRING\",\n Legal: \"LEGAL\",\n Photography: \"PHOTOGRAPHY\",\n Security: \"SECURITY\",\n ProbateEstateManagement: \"PROBATE_ESTATE_MANAGEMENT\",\n PayrollProvider: \"PAYROLL_PROVIDER\",\n InsolvencyPractitioner: \"INSOLVENCY_PRACTITIONER\",\n TrustAndCompanyService: \"TRUST_AND_COMPANY_SERVICE\",\n ProfessionalServicesOther: \"PROFESSIONAL_SERVICES_OTHER\",\n RetailDepositTaker: \"RETAIL_DEPOSIT_TAKER\",\n DebtManagement: \"DEBT_MANAGEMENT\",\n DebtCollector: \"DEBT_COLLECTOR\",\n AssetFinance: \"ASSET_FINANCE\",\n BuyNowPayLater: \"BUY_NOW_PAY_LATER\",\n PeerToPeerLending: \"PEER_TO_PEER_LENDING\",\n PayDayLender: \"PAY_DAY_LENDER\",\n PawnBroker: \"PAWN_BROKER\",\n CreditCards: \"CREDIT_CARDS\",\n TermLoans: \"TERM_LOANS\",\n MortgageLender: \"MORTGAGE_LENDER\",\n ClaimsManagement: \"CLAIMS_MANAGEMENT\",\n EmoneyPrepaid: \"EMONEY_PREPAID\",\n Insurance: \"INSURANCE\",\n PensionProvider: \"PENSION_PROVIDER\",\n CreditReferenceAgency: \"CREDIT_REFERENCE_AGENCY\",\n CurrencyExchange: \"CURRENCY_EXCHANGE\",\n CryptoExchange: \"CRYPTO_EXCHANGE\",\n CommodityExchange: \"COMMODITY_EXCHANGE\",\n MoneyTransfer: \"MONEY_TRANSFER\",\n InvestmentBank: \"INVESTMENT_BANK\",\n FundManager: \"FUND_MANAGER\",\n FundManagement: \"FUND_MANAGEMENT\",\n InternationalFinance: \"INTERNATIONAL_FINANCE\",\n MerchantBanking: \"MERCHANT_BANKING\",\n MarketMaker: \"MARKET_MAKER\",\n ShareTrading: \"SHARE_TRADING\",\n EquitiesTrading: \"EQUITIES_TRADING\",\n DerivativesTrading: \"DERIVATIVES_TRADING\",\n FxTrading: \"FX_TRADING\",\n InvestmentManagement: \"INVESTMENT_MANAGEMENT\",\n AssetManagement: \"ASSET_MANAGEMENT\",\n InvestmentDealArrangements: \"INVESTMENT_DEAL_ARRANGEMENTS\",\n BearerShares: \"BEARER_SHARES\",\n PropertyOwner: \"PROPERTY_OWNER\",\n PropertyInvestor: \"PROPERTY_INVESTOR\",\n PropertyInvestmentFund: \"PROPERTY_INVESTMENT_FUND\",\n ResidentsAssociation: \"RESIDENTS_ASSOCIATION\",\n LeaseholdOrFreehold: \"LEASEHOLD_OR_FREEHOLD\",\n HolidayOrShortTermLets: \"HOLIDAY_OR_SHORT_TERM_LETS\",\n PropertyRedevelopment: \"PROPERTY_REDEVELOPMENT\",\n EstateAgent: \"ESTATE_AGENT\",\n PropertyManagement: \"PROPERTY_MANAGEMENT\",\n Storage: \"STORAGE\",\n PropertyOther: \"PROPERTY_OTHER\",\n RestaurantOrCafe: \"RESTAURANT_OR_CAFE\",\n Takeaway: \"TAKEAWAY\",\n StreetFoodOrMarketStall: \"STREET_FOOD_OR_MARKET_STALL\",\n Retail: \"RETAIL\",\n Wholesaling: \"WHOLESALING\",\n Salons: \"SALONS\",\n NailParlour: \"NAIL_PARLOUR\",\n TattooParlour: \"TATTOO_PARLOUR\",\n AtHomeServices: \"AT_HOME_SERVICES\",\n LicensedRetail: \"LICENSED_RETAIL\",\n LicensedFoodVenue: \"LICENSED_FOOD_VENUE\",\n NewsagentsConvenienceStores: \"NEWSAGENTS_CONVENIENCE_STORES\",\n MobilePhoneSales: \"MOBILE_PHONE_SALES\",\n ImportExport: \"IMPORT_EXPORT\",\n AuctionHouse: \"AUCTION_HOUSE\",\n FirearmsMilitaryGoods: \"FIREARMS_MILITARY_GOODS\",\n GamblingBetting: \"GAMBLING_BETTING\",\n JewelleryPreciousStonesOrMetals: \"JEWELLERY_PRECIOUS_STONES_OR_METALS\",\n AntiqueArtDealer: \"ANTIQUE_ART_DEALER\",\n DatingEscortServices: \"DATING_ESCORT_SERVICES\",\n AdultIndustry: \"ADULT_INDUSTRY\",\n IllegalOrUnlicensedDrugs: \"ILLEGAL_OR_UNLICENSED_DRUGS\",\n Dropshipping: \"DROPSHIPPING\",\n RetailBarsAndRestaurantsOther: \"RETAIL_BARS_AND_RESTAURANTS_OTHER\",\n HgvOrBusOrCoachDriver: \"HGV_OR_BUS_OR_COACH_DRIVER\",\n TaxiOrPrivateHireDriver: \"TAXI_OR_PRIVATE_HIRE_DRIVER\",\n TrainDriver: \"TRAIN_DRIVER\",\n OtherProfessionalDriver: \"OTHER_PROFESSIONAL_DRIVER\",\n HomeDeliveryAndCourierFirms: \"HOME_DELIVERY_AND_COURIER_FIRMS\",\n HaulageFirms: \"HAULAGE_FIRMS\",\n TaxiOrPrivateHireOperator: \"TAXI_OR_PRIVATE_HIRE_OPERATOR\",\n MinibusOrCoachOperator: \"MINIBUS_OR_COACH_OPERATOR\",\n VehicleRepairAndMaintenance: \"VEHICLE_REPAIR_AND_MAINTENANCE\",\n NewCarsOrVehicleSales: \"NEW_CARS_OR_VEHICLE_SALES\",\n VehicleRental: \"VEHICLE_RENTAL\",\n BicycleShops: \"BICYCLE_SHOPS\",\n UsedCarOrVehicleSales: \"USED_CAR_OR_VEHICLE_SALES\",\n VehicleParts: \"VEHICLE_PARTS\",\n CarWashing: \"CAR_WASHING\",\n TransportAndVehiclesOther: \"TRANSPORT_AND_VEHICLES_OTHER\",\n } as const;\n export type BusinessSubCategory = (typeof BusinessSubCategory)[keyof typeof BusinessSubCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\nexport interface SpendingSpace {\n /** SpendingSpaceUid */\n spaceUid: string;\n /** Name of the space */\n name: string;\n balance: Starling.CurrencyAndAmount;\n /** Card Association Uid */\n cardAssociationUid?: string | undefined;\n /** Sort Order */\n sortOrder?: number | undefined;\n /** Spending Space Type. From 2026-10-19, SHOPPING, CHILDCARE and HELPING_OUT are replaced by CONNECTED, and YOUNG_PERSON is replaced by U16. SPARE_CARD, CHILDCARE_V2 and SHOPPING_V2 are removed on the same date (not currently returned). EXPENSE is unaffected. */\n spendingSpaceType: SpendingSpace.SpendingSpaceType;\n /** The state of the spending space */\n state: SpendingSpace.State;\n}\n\nexport namespace SpendingSpace {\n /** Spending Space Type. From 2026-10-19, SHOPPING, CHILDCARE and HELPING_OUT are replaced by CONNECTED, and YOUNG_PERSON is replaced by U16. SPARE_CARD, CHILDCARE_V2 and SHOPPING_V2 are removed on the same date (not currently returned). EXPENSE is unaffected. */\n export const SpendingSpaceType = {\n Shopping: \"SHOPPING\",\n Childcare: \"CHILDCARE\",\n HelpingOut: \"HELPING_OUT\",\n YoungPerson: \"YOUNG_PERSON\",\n Expense: \"EXPENSE\",\n SpareCard: \"SPARE_CARD\",\n ChildcareV2: \"CHILDCARE_V2\",\n ShoppingV2: \"SHOPPING_V2\",\n Spare: \"SPARE\",\n } as const;\n export type SpendingSpaceType = (typeof SpendingSpaceType)[keyof typeof SpendingSpaceType];\n /** The state of the spending space */\n export const State = {\n Creating: \"CREATING\",\n Active: \"ACTIVE\",\n Archiving: \"ARCHIVING\",\n Archived: \"ARCHIVED\",\n Restoring: \"RESTORING\",\n Pending: \"PENDING\",\n } as const;\n export type State = (typeof State)[keyof typeof State];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as Starling from \"../index.js\";\n\n/**\n * Response object for standing order queries\n */\nexport interface StandingOrder {\n /** UID of this payment order */\n paymentOrderUid?: string | undefined;\n amount?: Starling.CurrencyAndAmount | undefined;\n /** The reference set by the payer */\n reference?: string | undefined;\n /** The ID of the payee receiving the payments */\n payeeUid?: string | undefined;\n /** The account ID of the payee account receiving the payments */\n payeeAccountUid?: string | undefined;\n standingOrderRecurrence?: Starling.StandingOrderRecurrence | undefined;\n /** Date on which the next standing order payment will be made */\n nextDate?: string | undefined;\n /** The time the standing order is cancelled at */\n cancelledAt?: string | undefined;\n /** The time the standing order is updated at */\n updatedAt?: string | undefined;\n /** The category of a transaction */\n spendingCategory?: (StandingOrder.SpendingCategory | null) | undefined;\n /** The category ID of the category from which the payment will be sent */\n categoryUid?: string | undefined;\n}\n\nexport namespace StandingOrder {\n /** The category of a transaction */\n export const SpendingCategory = {\n Bike: \"BIKE\",\n BillsAndServices: \"BILLS_AND_SERVICES\",\n BucketList: \"BUCKET_LIST\",\n Car: \"CAR\",\n Cash: \"CASH\",\n Celebration: \"CELEBRATION\",\n Charity: \"CHARITY\",\n Children: \"CHILDREN\",\n Clothes: \"CLOTHES\",\n Coffee: \"COFFEE\",\n DebtRepayment: \"DEBT_REPAYMENT\",\n Diy: \"DIY\",\n Drinks: \"DRINKS\",\n EatingOut: \"EATING_OUT\",\n Education: \"EDUCATION\",\n Emergency: \"EMERGENCY\",\n Entertainment: \"ENTERTAINMENT\",\n EssentialSpend: \"ESSENTIAL_SPEND\",\n Expenses: \"EXPENSES\",\n Family: \"FAMILY\",\n Fitness: \"FITNESS\",\n Fuel: \"FUEL\",\n Gambling: \"GAMBLING\",\n Gaming: \"GAMING\",\n Garden: \"GARDEN\",\n General: \"GENERAL\",\n Gifts: \"GIFTS\",\n Groceries: \"GROCERIES\",\n Hobby: \"HOBBY\",\n Holidays: \"HOLIDAYS\",\n Home: \"HOME\",\n ImpulseBuy: \"IMPULSE_BUY\",\n Income: \"INCOME\",\n Insurance: \"INSURANCE\",\n Investments: \"INVESTMENTS\",\n Lifestyle: \"LIFESTYLE\",\n MaintenanceAndRepairs: \"MAINTENANCE_AND_REPAIRS\",\n Medical: \"MEDICAL\",\n Mortgage: \"MORTGAGE\",\n NonEssentialSpend: \"NON_ESSENTIAL_SPEND\",\n Payments: \"PAYMENTS\",\n PersonalCare: \"PERSONAL_CARE\",\n PersonalTransfers: \"PERSONAL_TRANSFERS\",\n Pets: \"PETS\",\n Projects: \"PROJECTS\",\n Relationships: \"RELATIONSHIPS\",\n Rent: \"RENT\",\n Saving: \"SAVING\",\n Shopping: \"SHOPPING\",\n Subscriptions: \"SUBSCRIPTIONS\",\n Takeaway: \"TAKEAWAY\",\n Taxi: \"TAXI\",\n Transport: \"TRANSPORT\",\n Treats: \"TREATS\",\n Wedding: \"WEDDING\",\n Wellbeing: \"WELLBEING\",\n None: \"NONE\",\n Revenue: \"REVENUE\",\n OtherIncome: \"OTHER_INCOME\",\n ClientRefunds: \"CLIENT_REFUNDS\",\n Inventory: \"INVENTORY\",\n Staff: \"STAFF\",\n Travel: \"TRAVEL\",\n Workplace: \"WORKPLACE\",\n RepairsAndMaintenance: \"REPAIRS_AND_MAINTENANCE\",\n Admin: \"ADMIN\",\n Marketing: \"MARKETING\",\n BusinessEntertainment: \"BUSINESS_ENTERTAINMENT\",\n InterestPayments: \"INTEREST_PAYMENTS\",\n BankCharges: \"BANK_CHARGES\",\n Other: \"OTHER\",\n FoodAndDrink: \"FOOD_AND_DRINK\",\n Equipment: \"EQUIPMENT\",\n ProfessionalServices: \"PROFESSIONAL_SERVICES\",\n PhoneAndInternet: \"PHONE_AND_INTERNET\",\n Vehicles: \"VEHICLES\",\n DirectorsWages: \"DIRECTORS_WAGES\",\n Vat: \"VAT\",\n CorporationTax: \"CORPORATION_TAX\",\n SelfAssessmentTax: \"SELF_ASSESSMENT_TAX\",\n InvestmentCapital: \"INVESTMENT_CAPITAL\",\n Transfers: \"TRANSFERS\",\n LoanPrincipal: \"LOAN_PRINCIPAL\",\n Personal: \"PERSONAL\",\n Dividends: \"DIVIDENDS\",\n MoneyOwedFromClients: \"MONEY_OWED_FROM_CLIENTS\",\n ConsultancyFees: \"CONSULTANCY_FEES\",\n OfficeAndPostageCosts: \"OFFICE_AND_POSTAGE_COSTS\",\n Training: \"TRAINING\",\n EmployeeBenefits: \"EMPLOYEE_BENEFITS\",\n AccountancyFees: \"ACCOUNTANCY_FEES\",\n ImportVat: \"IMPORT_VAT\",\n CategoriseLater: \"CATEGORISE_LATER\",\n SoftwareAndSubscriptions: \"SOFTWARE_AND_SUBSCRIPTIONS\",\n ExchangeRateChanges: \"EXCHANGE_RATE_CHANGES\",\n EmployeePensions: \"EMPLOYEE_PENSIONS\",\n StaffTaxes: \"STAFF_TAXES\",\n Software: \"SOFTWARE\",\n EquipmentHire: \"EQUIPMENT_HIRE\",\n CapitalIntroduced: \"CAPITAL_INTRODUCED\",\n Donations: \"DONATIONS\",\n PensionContributions: \"PENSION_CONTRIBUTIONS\",\n PersonalWithdrawals: \"PERSONAL_WITHDRAWALS\",\n CreditCardRepayments: \"CREDIT_CARD_REPAYMENTS\",\n TaxPotSavings: \"TAX_POT_SAVINGS\",\n Grants: \"GRANTS\",\n ReimbursedExpenses: \"REIMBURSED_EXPENSES\",\n VehiclePurchases: \"VEHICLE_PURCHASES\",\n RentalIncome: \"RENTAL_INCOME\",\n RentalServices: \"RENTAL_SERVICES\",\n ResidentialPropertyFinanceCosts: \"RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n NonResidentialPropertyFinanceCosts: \"NON_RESIDENTIAL_PROPERTY_FINANCE_COSTS\",\n AgentManagementAndLegalFees: \"AGENT_MANAGEMENT_AND_LEGAL_FEES\",\n RentPaidByYou: \"RENT_PAID_BY_YOU\",\n CouncilTaxPaidByYou: \"COUNCIL_TAX_PAID_BY_YOU\",\n OtherRatesPaidByYou: \"OTHER_RATES_PAID_BY_YOU\",\n UtilitiesPaidByYou: \"UTILITIES_PAID_BY_YOU\",\n RentalInsurance: \"RENTAL_INSURANCE\",\n ReplacingDamagedFurnishingsAndAppliances: \"REPLACING_DAMAGED_FURNISHINGS_AND_APPLIANCES\",\n GardeningCleaningAndOtherServices: \"GARDENING_CLEANING_AND_OTHER_SERVICES\",\n Advertising: \"ADVERTISING\",\n MileageAndOtherTravelCosts: \"MILEAGE_AND_OTHER_TRAVEL_COSTS\",\n OtherAllowableCosts: \"OTHER_ALLOWABLE_COSTS\",\n MortgageCapitalRepayments: \"MORTGAGE_CAPITAL_REPAYMENTS\",\n PropertyUpgrades: \"PROPERTY_UPGRADES\",\n RentalRepairsAndMaintenance: \"RENTAL_REPAIRS_AND_MAINTENANCE\",\n DisposalOfAssets: \"DISPOSAL_OF_ASSETS\",\n CostOfSales: \"COST_OF_SALES\",\n EmployeeAndEmployerPensions: \"EMPLOYEE_AND_EMPLOYER_PENSIONS\",\n PayeAndNi: \"PAYE_AND_NI\",\n PenaltiesAndFines: \"PENALTIES_AND_FINES\",\n ComputerHardware: \"COMPUTER_HARDWARE\",\n Buildings: \"BUILDINGS\",\n FurnitureAndEquipment: \"FURNITURE_AND_EQUIPMENT\",\n IntangibleAssets: \"INTANGIBLE_ASSETS\",\n MoneyOwedToTheBusiness: \"MONEY_OWED_TO_THE_BUSINESS\",\n Stock: \"STOCK\",\n MoneyOwedToSuppliers: \"MONEY_OWED_TO_SUPPLIERS\",\n OwedToPayeAndNi: \"OWED_TO_PAYE_AND_NI\",\n CorporationTaxOwed: \"CORPORATION_TAX_OWED\",\n DirectorsLoan: \"DIRECTORS_LOAN\",\n MoneyOwedToOthers: \"MONEY_OWED_TO_OTHERS\",\n PensionContributionsOwed: \"PENSION_CONTRIBUTIONS_OWED\",\n MoneyOwedToEmployees: \"MONEY_OWED_TO_EMPLOYEES\",\n VehicleAndFuelCosts: \"VEHICLE_AND_FUEL_COSTS\",\n InterestGained: \"INTEREST_GAINED\",\n Utilities: \"UTILITIES\",\n EmployeeEntertaining: \"EMPLOYEE_ENTERTAINING\",\n PlatformFees: \"PLATFORM_FEES\",\n ShareCapitalOutstanding: \"SHARE_CAPITAL_OUTSTANDING\",\n CapitalisedCosts: \"CAPITALISED_COSTS\",\n CharitableDonations: \"CHARITABLE_DONATIONS\",\n SharePremium: \"SHARE_PREMIUM\",\n Multiple: \"MULTIPLE\",\n } as const;\n export type SpendingCategory = (typeof SpendingCategory)[keyof typeof SpendingCategory];\n}\n","// This file was auto-generated by Fern from our API Definition.\n\n/**\n * Recurrence rules of a standing order\n */\nexport interface StandingOrderRecurrence {\n /** Date that the first standing order payment should be made */\n startDate: string;\n /** Frequency of which payments should be made */\n frequency: StandingOrderRecurrence.Frequency;\n /** Interval of specified frequency on which payments should be made */\n interval?: (number | null) | undefined;\n /** Number of payments that should be made before standing order is stopped */\n count?: (number | null) | undefined;\n /** Date on which to stop standing order */\n untilDate?: string | undefined;\n}\n\nexport namespace StandingOrderRecurrence {\n /** Frequency of which payments should be made */\n export const Frequency = {\n Daily: \"DAILY\",\n Weekly: \"WEEKLY\",\n Monthly: \"MONTHLY\",\n Yearly: \"YEARLY\",\n } as const;\n export type Frequency = (typeof Frequency)[keyof typeof Frequency];\n}\n","import type { EndpointMetadata } from \"../fetcher/EndpointMetadata.js\";\nimport type { AuthRequest } from \"./AuthRequest.js\";\n\nexport interface AuthProvider {\n getAuthRequest(arg?: { endpointMetadata?: EndpointMetadata }): Promise<AuthRequest>;\n}\n\nexport function isAuthProvider(value: unknown): value is AuthProvider {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"getAuthRequest\" in value &&\n typeof value.getAuthRequest === \"function\"\n );\n}\n","import type { AuthProvider } from \"./AuthProvider.js\";\nimport type { AuthRequest } from \"./AuthRequest.js\";\n\nexport class NoOpAuthProvider implements AuthProvider {\n public getAuthRequest(): Promise<AuthRequest> {\n return Promise.resolve({ headers: {} });\n }\n}\n","import type { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport type { Supplier } from \"./Supplier.js\";\n\ntype EndpointSupplierFn<T> = (arg: { endpointMetadata?: EndpointMetadata }) => T | Promise<T>;\nexport type EndpointSupplier<T> = Supplier<T> | EndpointSupplierFn<T>;\nexport const EndpointSupplier = {\n get: async <T>(supplier: EndpointSupplier<T>, arg: { endpointMetadata?: EndpointMetadata }): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as EndpointSupplierFn<T>)(arg);\n } else {\n return supplier;\n }\n },\n};\n","/**\n * Serialize a value to JSON\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @returns JSON string\n */\nexport const toJson = (\n value: unknown,\n replacer?: (this: unknown, key: string, value: unknown) => unknown,\n space?: string | number,\n): string => {\n return JSON.stringify(value, replacer, space);\n};\n\n/**\n * Parse JSON string to object, array, or other type\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.\n * @returns Parsed object, array, or other type\n */\nexport function fromJson<T = unknown>(\n text: string,\n reviver?: (this: unknown, key: string, value: unknown) => unknown,\n): T {\n return JSON.parse(text, reviver);\n}\n","export const LogLevel = {\n Debug: \"debug\",\n Info: \"info\",\n Warn: \"warn\",\n Error: \"error\",\n} as const;\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\nconst logLevelMap: Record<LogLevel, number> = {\n [LogLevel.Debug]: 1,\n [LogLevel.Info]: 2,\n [LogLevel.Warn]: 3,\n [LogLevel.Error]: 4,\n};\n\nexport interface ILogger {\n /**\n * Logs a debug message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n debug(message: string, ...args: unknown[]): void;\n /**\n * Logs an info message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n info(message: string, ...args: unknown[]): void;\n /**\n * Logs a warning message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n warn(message: string, ...args: unknown[]): void;\n /**\n * Logs an error message.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n error(message: string, ...args: unknown[]): void;\n}\n\n/**\n * Configuration for logger initialization.\n */\nexport interface LogConfig {\n /**\n * Minimum log level to output.\n * @default LogLevel.Info\n */\n level?: LogLevel;\n /**\n * Logger implementation to use.\n * @default new ConsoleLogger()\n */\n logger?: ILogger;\n /**\n * Whether logging should be silenced.\n * @default true\n */\n silent?: boolean;\n}\n\n/**\n * Default console-based logger implementation.\n */\nexport class ConsoleLogger implements ILogger {\n debug(message: string, ...args: unknown[]): void {\n console.debug(message, ...args);\n }\n info(message: string, ...args: unknown[]): void {\n console.info(message, ...args);\n }\n warn(message: string, ...args: unknown[]): void {\n console.warn(message, ...args);\n }\n error(message: string, ...args: unknown[]): void {\n console.error(message, ...args);\n }\n}\n\n/**\n * Logger class that provides level-based logging functionality.\n */\nexport class Logger {\n private readonly level: number;\n private readonly logger: ILogger;\n private readonly silent: boolean;\n\n /**\n * Creates a new logger instance.\n * @param config - Logger configuration\n */\n constructor(config: Required<LogConfig>) {\n this.level = logLevelMap[config.level];\n this.logger = config.logger;\n this.silent = config.silent;\n }\n\n /**\n * Checks if a log level should be output based on configuration.\n * @param level - The log level to check\n * @returns True if the level should be logged\n */\n public shouldLog(level: LogLevel): boolean {\n return !this.silent && this.level <= logLevelMap[level];\n }\n\n /**\n * Checks if debug logging is enabled.\n * @returns True if debug logs should be output\n */\n public isDebug(): boolean {\n return this.shouldLog(LogLevel.Debug);\n }\n\n /**\n * Logs a debug message if debug logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public debug(message: string, ...args: unknown[]): void {\n if (this.isDebug()) {\n this.logger.debug(message, ...args);\n }\n }\n\n /**\n * Checks if info logging is enabled.\n * @returns True if info logs should be output\n */\n public isInfo(): boolean {\n return this.shouldLog(LogLevel.Info);\n }\n\n /**\n * Logs an info message if info logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public info(message: string, ...args: unknown[]): void {\n if (this.isInfo()) {\n this.logger.info(message, ...args);\n }\n }\n\n /**\n * Checks if warning logging is enabled.\n * @returns True if warning logs should be output\n */\n public isWarn(): boolean {\n return this.shouldLog(LogLevel.Warn);\n }\n\n /**\n * Logs a warning message if warning logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public warn(message: string, ...args: unknown[]): void {\n if (this.isWarn()) {\n this.logger.warn(message, ...args);\n }\n }\n\n /**\n * Checks if error logging is enabled.\n * @returns True if error logs should be output\n */\n public isError(): boolean {\n return this.shouldLog(LogLevel.Error);\n }\n\n /**\n * Logs an error message if error logging is enabled.\n * @param message - The message to log\n * @param args - Additional arguments to log\n */\n public error(message: string, ...args: unknown[]): void {\n if (this.isError()) {\n this.logger.error(message, ...args);\n }\n }\n}\n\nexport function createLogger(config?: LogConfig | Logger): Logger {\n if (config == null) {\n return defaultLogger;\n }\n if (config instanceof Logger) {\n return config;\n }\n config = config ?? {};\n config.level ??= LogLevel.Info;\n config.logger ??= new ConsoleLogger();\n config.silent ??= true;\n return new Logger(config as Required<LogConfig>);\n}\n\nconst defaultLogger: Logger = new Logger({\n level: LogLevel.Info,\n logger: new ConsoleLogger(),\n silent: true,\n});\n","type ArrayFormat = \"indices\" | \"repeat\" | \"comma\";\n\ninterface QueryStringOptions {\n arrayFormat?: ArrayFormat;\n encode?: boolean;\n}\n\nconst defaultQsOptions: Required<QueryStringOptions> = {\n arrayFormat: \"indices\",\n encode: true,\n} as const;\n\nfunction encodeValue(value: unknown, shouldEncode: boolean): string {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n const stringValue = String(value);\n return shouldEncode ? encodeURIComponent(stringValue) : stringValue;\n}\n\nfunction stringifyObject(obj: Record<string, unknown>, prefix = \"\", options: Required<QueryStringOptions>): string[] {\n const parts: string[] = [];\n\n for (const [key, value] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n\n if (value == null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n const effectiveFormat = options.arrayFormat;\n if (effectiveFormat === \"comma\") {\n const encodedKey = options.encode ? encodeURIComponent(fullKey) : fullKey;\n const encodedValues = value\n .filter((item) => item !== undefined && item !== null)\n .map((item) => encodeValue(item, options.encode));\n if (encodedValues.length > 0) {\n parts.push(`${encodedKey}=${encodedValues.join(\",\")}`);\n }\n } else {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item == null) {\n continue;\n }\n if (typeof item === \"object\" && !Array.isArray(item) && item !== null) {\n const arrayKey = effectiveFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n parts.push(...stringifyObject(item as Record<string, unknown>, arrayKey, options));\n } else {\n const arrayKey = effectiveFormat === \"indices\" ? `${fullKey}[${i}]` : fullKey;\n const encodedKey = options.encode ? encodeURIComponent(arrayKey) : arrayKey;\n parts.push(`${encodedKey}=${encodeValue(item, options.encode)}`);\n }\n }\n }\n } else if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value as Record<string, unknown>).length === 0) {\n continue;\n }\n parts.push(...stringifyObject(value as Record<string, unknown>, fullKey, options));\n } else {\n const encodedKey = options.encode ? encodeURIComponent(fullKey) : fullKey;\n parts.push(`${encodedKey}=${encodeValue(value, options.encode)}`);\n }\n }\n\n return parts;\n}\n\nexport function toQueryString(obj: unknown, options?: QueryStringOptions): string {\n if (obj == null || typeof obj !== \"object\") {\n return \"\";\n }\n\n const parts = stringifyObject(obj as Record<string, unknown>, \"\", {\n ...defaultQsOptions,\n ...options,\n });\n return parts.join(\"&\");\n}\n","import { toQueryString } from \"../url/qs.js\";\n\nexport function createRequestUrl(baseUrl: string, queryParameters?: Record<string, unknown>): string {\n const queryString = toQueryString(queryParameters, { arrayFormat: \"repeat\" });\n return queryString ? `${baseUrl}?${queryString}` : baseUrl;\n}\n","export type BinaryResponse = {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n bodyUsed: Response[\"bodyUsed\"];\n /**\n * Returns a ReadableStream of the response body.\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body)\n */\n stream: () => Response[\"body\"];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer: () => ReturnType<Response[\"arrayBuffer\"]>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob: () => ReturnType<Response[\"blob\"]>;\n /**\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes)\n * Some versions of the Fetch API may not support this method.\n */\n bytes?(): Promise<Uint8Array>;\n};\n\nexport function getBinaryResponse(response: Response): BinaryResponse {\n const binaryResponse: BinaryResponse = {\n get bodyUsed() {\n return response.bodyUsed;\n },\n stream: () => response.body,\n arrayBuffer: response.arrayBuffer.bind(response),\n blob: response.blob.bind(response),\n };\n if (\"bytes\" in response && typeof response.bytes === \"function\") {\n binaryResponse.bytes = response.bytes.bind(response);\n }\n\n return binaryResponse;\n}\n","import { fromJson } from \"../json.js\";\nimport { getBinaryResponse } from \"./BinaryResponse.js\";\n\n// Pins the upstream Response so undici's FinalizationRegistry can't GC it and cancel the body stream.\nfunction retainResponse(target: object, response: Response): void {\n Object.defineProperty(target, \"__fern_response_ref\", {\n value: response,\n enumerable: false,\n configurable: true,\n writable: false,\n });\n}\n\nexport async function getResponseBody(response: Response, responseType?: string): Promise<unknown> {\n switch (responseType) {\n case \"binary-response\":\n return getBinaryResponse(response);\n case \"blob\":\n return await response.blob();\n case \"arrayBuffer\":\n return await response.arrayBuffer();\n case \"sse\":\n if (response.body == null) {\n return {\n ok: false,\n error: {\n reason: \"body-is-null\",\n statusCode: response.status,\n },\n };\n }\n retainResponse(response.body, response);\n return response.body;\n case \"streaming\":\n if (response.body == null) {\n return {\n ok: false,\n error: {\n reason: \"body-is-null\",\n statusCode: response.status,\n },\n };\n }\n\n retainResponse(response.body, response);\n return response.body;\n\n case \"text\":\n return await response.text();\n }\n\n // if responseType is \"json\" or not specified, try to parse as JSON\n const text = await response.text();\n if (text.length > 0) {\n try {\n const responseBody = fromJson(text);\n return responseBody;\n } catch (_err) {\n throw new InvalidJsonResponseError(response, text);\n }\n }\n return undefined;\n}\n\nexport class InvalidJsonResponseError extends Error {\n constructor(public readonly response: Response, public readonly rawBody: string) {\n super(\"Starling returned invalid JSON\");\n }\n}\n","import { fromJson } from \"../json.js\";\nimport { getResponseBody } from \"./getResponseBody.js\";\n\nexport async function getErrorResponseBody(response: Response): Promise<unknown> {\n let contentType = response.headers.get(\"Content-Type\")?.toLowerCase();\n if (contentType == null || contentType.length === 0) {\n return getResponseBody(response);\n }\n\n if (contentType.indexOf(\";\") !== -1) {\n contentType = contentType.split(\";\")[0]?.trim() ?? \"\";\n }\n switch (contentType) {\n case \"application/hal+json\":\n case \"application/json\":\n case \"application/ld+json\":\n case \"application/problem+json\":\n case \"application/vnd.api+json\":\n case \"text/json\": {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n default:\n if (contentType.startsWith(\"application/vnd.\") && contentType.endsWith(\"+json\")) {\n const text = await response.text();\n return text.length > 0 ? fromJson(text) : undefined;\n }\n\n // Fallback to plain text if content type is not recognized\n // Even if no body is present, the response will be an empty string\n return await response.text();\n }\n}\n","export async function getFetchFn(): Promise<typeof fetch> {\n return fetch;\n}\n","import { toJson } from \"../json.js\";\nimport { toQueryString } from \"../url/qs.js\";\n\nexport declare namespace GetRequestBody {\n interface Args {\n body: unknown;\n type: \"json\" | \"file\" | \"bytes\" | \"form\" | \"other\";\n }\n}\n\nexport async function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined> {\n if (type === \"form\") {\n return toQueryString(body, { arrayFormat: \"repeat\", encode: true });\n }\n if (type.includes(\"json\")) {\n return toJson(body);\n } else {\n return body as BodyInit;\n }\n}\n","let Headers: typeof globalThis.Headers;\n\nif (typeof globalThis.Headers !== \"undefined\") {\n Headers = globalThis.Headers;\n} else {\n Headers = class Headers implements Headers {\n private headers: Map<string, string[]>;\n\n constructor(init?: HeadersInit) {\n this.headers = new Map();\n\n if (init) {\n if (init instanceof Headers) {\n init.forEach((value, key) => this.append(key, value));\n } else if (Array.isArray(init)) {\n for (const [key, value] of init) {\n if (typeof key === \"string\" && typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Each header entry must be a [string, string] tuple\");\n }\n }\n } else {\n for (const [key, value] of Object.entries(init)) {\n if (typeof value === \"string\") {\n this.append(key, value);\n } else {\n throw new TypeError(\"Header values must be strings\");\n }\n }\n }\n }\n }\n\n append(name: string, value: string): void {\n const key = name.toLowerCase();\n const existing = this.headers.get(key) || [];\n this.headers.set(key, [...existing, value]);\n }\n\n delete(name: string): void {\n const key = name.toLowerCase();\n this.headers.delete(key);\n }\n\n get(name: string): string | null {\n const key = name.toLowerCase();\n const values = this.headers.get(key);\n return values ? values.join(\", \") : null;\n }\n\n has(name: string): boolean {\n const key = name.toLowerCase();\n return this.headers.has(key);\n }\n\n set(name: string, value: string): void {\n const key = name.toLowerCase();\n this.headers.set(key, [value]);\n }\n\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void {\n const boundCallback = thisArg ? callbackfn.bind(thisArg) : callbackfn;\n this.headers.forEach((values, key) => boundCallback(values.join(\", \"), key, this));\n }\n\n getSetCookie(): string[] {\n return this.headers.get(\"set-cookie\") || [];\n }\n\n *entries(): IterableIterator<[string, string]> {\n for (const [key, values] of this.headers.entries()) {\n yield [key, values.join(\", \")];\n }\n }\n\n *keys(): IterableIterator<string> {\n yield* this.headers.keys();\n }\n\n *values(): IterableIterator<string> {\n for (const values of this.headers.values()) {\n yield values.join(\", \");\n }\n }\n\n [Symbol.iterator](): IterableIterator<[string, string]> {\n return this.entries();\n }\n };\n}\n\nexport { Headers };\n","const TIMEOUT = \"timeout\";\n\nexport function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: ReturnType<typeof setTimeout> } {\n const controller = new AbortController();\n const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);\n return { signal: controller.signal, abortId };\n}\n\nexport function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal {\n const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as AbortSignal[];\n\n const controller = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n controller.abort((signal as any)?.reason);\n return controller.signal;\n }\n\n signal.addEventListener(\"abort\", () => controller.abort((signal as any)?.reason), {\n signal: controller.signal,\n });\n\n // Re-check after adding listener: the signal may have aborted\n // between the initial `signal.aborted` check and the `addEventListener`\n // call above. If it did, the abort event was already dispatched and\n // the listener will never fire — we must manually abort.\n if (signal.aborted) {\n controller.abort((signal as any)?.reason);\n return controller.signal;\n }\n }\n\n return controller.signal;\n}\n","import { anySignal, getTimeoutSignal } from \"./signals.js\";\n\n/**\n * Cached result of checking whether the current runtime supports\n * the `cache` option in `Request`. Some runtimes (e.g. Cloudflare Workers)\n * throw a TypeError when this option is used.\n */\nlet _cacheNoStoreSupported: boolean | undefined;\nexport function isCacheNoStoreSupported(): boolean {\n if (_cacheNoStoreSupported != null) {\n return _cacheNoStoreSupported;\n }\n try {\n new Request(\"http://localhost\", { cache: \"no-store\" });\n _cacheNoStoreSupported = true;\n } catch {\n _cacheNoStoreSupported = false;\n }\n return _cacheNoStoreSupported;\n}\n\n/**\n * Reset the cached result of `isCacheNoStoreSupported`. Exposed for testing only.\n */\nexport function resetCacheNoStoreSupported(): void {\n _cacheNoStoreSupported = undefined;\n}\n\nexport const makeRequest = async (\n fetchFn: (url: string, init: RequestInit) => Promise<Response>,\n url: string,\n method: string,\n headers: Headers | Record<string, string>,\n requestBody: BodyInit | undefined,\n timeoutMs?: number,\n abortSignal?: AbortSignal,\n withCredentials?: boolean,\n duplex?: \"half\",\n disableCache?: boolean,\n): Promise<Response> => {\n const signals: AbortSignal[] = [];\n\n let timeoutAbortId: ReturnType<typeof setTimeout> | undefined;\n if (timeoutMs != null) {\n const { signal, abortId } = getTimeoutSignal(timeoutMs);\n timeoutAbortId = abortId;\n signals.push(signal);\n }\n\n if (abortSignal != null) {\n signals.push(abortSignal);\n }\n const newSignals = anySignal(signals);\n// Always release the timeout, including when fetch rejects.\n try {\n const response = await fetchFn(url, {\n method: method,\n headers,\n body: requestBody,\n signal: newSignals,\n credentials: withCredentials ? \"include\" : undefined,\n // @ts-ignore\n duplex,\n ...(disableCache && isCacheNoStoreSupported() ? { cache: \"no-store\" as RequestCache } : {}),\n });\n\n return response;\n } finally {\n if (timeoutAbortId != null) clearTimeout(timeoutAbortId);\n }\n};\n","import { Headers } from \"./Headers.js\";\n\n/**\n * The raw response from the fetch call excluding the body.\n */\nexport type RawResponse = Omit<\n {\n [K in keyof Response as Response[K] extends Function ? never : K]: Response[K]; // strips out functions\n },\n \"ok\" | \"body\" | \"bodyUsed\"\n>; // strips out body and bodyUsed\n\n/**\n * A raw response indicating that the request was aborted.\n */\nexport const abortRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 499,\n statusText: \"Client Closed Request\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * A raw response indicating an unknown error.\n */\nexport const unknownRawResponse: RawResponse = {\n headers: new Headers(),\n redirected: false,\n status: 0,\n statusText: \"Unknown Error\",\n type: \"error\",\n url: \"\",\n} as const;\n\n/**\n * Converts a `RawResponse` object into a `RawResponse` by extracting its properties,\n * excluding the `body` and `bodyUsed` fields.\n *\n * @param response - The `RawResponse` object to convert.\n * @returns A `RawResponse` object containing the extracted properties of the input response.\n */\nexport function toRawResponse(response: Response): RawResponse {\n return {\n headers: response.headers,\n redirected: response.redirected,\n status: response.status,\n statusText: response.statusText,\n type: response.type,\n url: response.url,\n };\n}\n\n/**\n * Creates a `RawResponse` from a standard `Response` object.\n */\nexport interface WithRawResponse<T> {\n readonly data: T;\n readonly rawResponse: RawResponse;\n}\n","export const SENSITIVE_QUERY_PARAMS: Set<string> = new Set([\n \"api_key\",\n \"api-key\",\n \"apikey\",\n \"token\",\n \"access_token\",\n \"access-token\",\n \"auth_token\",\n \"auth-token\",\n \"password\",\n \"passwd\",\n \"secret\",\n \"api_secret\",\n \"api-secret\",\n \"apisecret\",\n \"key\",\n \"session\",\n \"session_id\",\n \"session-id\",\n]);\n\nexport function redactUrl(url: string): string {\n const protocolIndex = url.indexOf(\"://\");\n if (protocolIndex === -1) return url;\n\n const afterProtocol = protocolIndex + 3;\n\n // Find the first delimiter that marks the end of the authority section\n const pathStart = url.indexOf(\"/\", afterProtocol);\n let queryStart = url.indexOf(\"?\", afterProtocol);\n let fragmentStart = url.indexOf(\"#\", afterProtocol);\n\n const firstDelimiter = Math.min(\n pathStart === -1 ? url.length : pathStart,\n queryStart === -1 ? url.length : queryStart,\n fragmentStart === -1 ? url.length : fragmentStart,\n );\n\n // Find the LAST @ before the delimiter (handles multiple @ in credentials)\n let atIndex = -1;\n for (let i = afterProtocol; i < firstDelimiter; i++) {\n if (url[i] === \"@\") {\n atIndex = i;\n }\n }\n\n if (atIndex !== -1) {\n url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;\n }\n\n // Recalculate queryStart since url might have changed\n queryStart = url.indexOf(\"?\");\n if (queryStart === -1) return url;\n\n fragmentStart = url.indexOf(\"#\", queryStart);\n const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;\n const queryString = url.slice(queryStart + 1, queryEnd);\n\n if (queryString.length === 0) return url;\n\n // FAST PATH: Quick check if any sensitive keywords present\n // Using indexOf is faster than regex for simple substring matching\n const lower = queryString.toLowerCase();\n const hasSensitive =\n lower.includes(\"token\") ||\n lower.includes(\"key\") ||\n lower.includes(\"password\") ||\n lower.includes(\"passwd\") ||\n lower.includes(\"secret\") ||\n lower.includes(\"session\") ||\n lower.includes(\"auth\");\n\n if (!hasSensitive) {\n return url;\n }\n\n // SLOW PATH: Parse and redact\n const redactedParams: string[] = [];\n const params = queryString.split(\"&\");\n\n for (const param of params) {\n const equalIndex = param.indexOf(\"=\");\n if (equalIndex === -1) {\n redactedParams.push(param);\n continue;\n }\n\n const key = param.slice(0, equalIndex);\n let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());\n\n if (!shouldRedact && key.includes(\"%\")) {\n try {\n const decodedKey = decodeURIComponent(key);\n shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());\n } catch {}\n }\n\n redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);\n }\n\n return url.slice(0, queryStart + 1) + redactedParams.join(\"&\") + url.slice(queryEnd);\n}\n","const INITIAL_RETRY_DELAY = 1000; // in milliseconds\nconst MAX_RETRY_DELAY = 60000; // in milliseconds\nconst DEFAULT_MAX_RETRIES = 2;\nconst JITTER_FACTOR = 0.2; // 20% random jitter\n\nfunction isRetryableStatusCode(statusCode: number): boolean {\n return [408, 429].includes(statusCode) || statusCode >= 500;\n}\n\nfunction addPositiveJitter(delay: number): number {\n const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction addSymmetricJitter(delay: number): number {\n const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;\n return delay * jitterMultiplier;\n}\n\nfunction getRetryDelayFromHeaders(response: Response, retryAttempt: number): number {\n const retryAfter = response.headers.get(\"Retry-After\");\n if (retryAfter) {\n const retryAfterSeconds = parseInt(retryAfter, 10);\n if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {\n return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);\n }\n\n const retryAfterDate = new Date(retryAfter);\n if (!Number.isNaN(retryAfterDate.getTime())) {\n const delay = retryAfterDate.getTime() - Date.now();\n if (delay > 0) {\n return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);\n }\n }\n }\n\n const rateLimitReset = response.headers.get(\"X-RateLimit-Reset\");\n if (rateLimitReset) {\n const resetTime = parseInt(rateLimitReset, 10);\n if (!Number.isNaN(resetTime)) {\n const delay = resetTime * 1000 - Date.now();\n if (delay > 0) {\n return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));\n }\n }\n }\n\n return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * 2 ** retryAttempt, MAX_RETRY_DELAY));\n}\n\nexport async function requestWithRetries(\n requestFn: () => Promise<Response>,\n maxRetries: number = DEFAULT_MAX_RETRIES,\n): Promise<Response> {\n let response: Response = await requestFn();\n\n for (let i = 0; i < maxRetries; ++i) {\n if (isRetryableStatusCode(response.status)) {\n const delay = getRetryDelayFromHeaders(response, i);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n response = await requestFn();\n } else {\n break;\n }\n }\n return response!;\n}\n","import { toJson } from \"../json.js\";\nimport { createLogger, type LogConfig, type Logger } from \"../logging/logger.js\";\nimport type { APIResponse } from \"./APIResponse.js\";\nimport { createRequestUrl } from \"./createRequestUrl.js\";\nimport type { EndpointMetadata } from \"./EndpointMetadata.js\";\nimport { EndpointSupplier } from \"./EndpointSupplier.js\";\nimport { getErrorResponseBody } from \"./getErrorResponseBody.js\";\nimport { getFetchFn } from \"./getFetchFn.js\";\nimport { getRequestBody } from \"./getRequestBody.js\";\nimport { getResponseBody, InvalidJsonResponseError } from \"./getResponseBody.js\";\nimport { Headers } from \"./Headers.js\";\nimport { makeRequest } from \"./makeRequest.js\";\nimport { abortRawResponse, toRawResponse, unknownRawResponse } from \"./RawResponse.js\";\nimport { redactUrl, SENSITIVE_QUERY_PARAMS } from \"./redactUrl.js\";\nimport { requestWithRetries } from \"./requestWithRetries.js\";\n\nexport type FetchFunction = <R = unknown>(args: Fetcher.Args) => Promise<APIResponse<R, Fetcher.Error>>;\n\nexport declare namespace Fetcher {\n export interface Args {\n url: string;\n method: string;\n contentType?: string;\n headers?: Record<string, unknown>;\n /**\n * @deprecated Prefer `queryString` (produced by `core.url.queryBuilder()`).\n * Retained for backwards compatibility with custom fetchers and callers that\n * still construct request args with a query-parameter object.\n */\n queryParameters?: Record<string, unknown>;\n queryString?: string;\n body?: unknown;\n timeoutMs?: number;\n maxRetries?: number;\n withCredentials?: boolean;\n abortSignal?: AbortSignal;\n requestType?: \"json\" | \"file\" | \"bytes\" | \"form\" | \"other\";\n responseType?: \"json\" | \"blob\" | \"sse\" | \"streaming\" | \"text\" | \"arrayBuffer\" | \"binary-response\";\n duplex?: \"half\";\n endpointMetadata?: EndpointMetadata;\n fetchFn?: typeof fetch;\n logging?: LogConfig | Logger;\n }\n\n export type Error = FailedStatusCodeError | NonJsonError | BodyIsNullError | TimeoutError | UnknownError;\n\n export interface FailedStatusCodeError {\n reason: \"status-code\";\n statusCode: number;\n body: unknown;\n }\n\n export interface NonJsonError {\n reason: \"non-json\";\n statusCode: number;\n rawBody: string;\n }\n\n export interface BodyIsNullError {\n reason: \"body-is-null\";\n statusCode: number;\n }\n\n export interface TimeoutError {\n reason: \"timeout\";\n cause?: unknown;\n }\n\n export interface UnknownError {\n reason: \"unknown\";\n errorMessage: string;\n cause?: unknown;\n }\n}\n\nconst SENSITIVE_HEADERS = new Set([\n \"authorization\",\n \"www-authenticate\",\n \"x-api-key\",\n \"api-key\",\n \"apikey\",\n \"x-api-token\",\n \"x-auth-token\",\n \"auth-token\",\n \"cookie\",\n \"set-cookie\",\n \"proxy-authorization\",\n \"proxy-authenticate\",\n \"x-csrf-token\",\n \"x-xsrf-token\",\n \"x-session-token\",\n \"x-access-token\",\n]);\n\nfunction redactHeaders(headers: Headers | Record<string, string>): Record<string, string> {\n const filtered: Record<string, string> = {};\n for (const [key, value] of headers instanceof Headers ? headers.entries() : Object.entries(headers)) {\n if (SENSITIVE_HEADERS.has(key.toLowerCase())) {\n filtered[key] = \"[REDACTED]\";\n } else {\n filtered[key] = value;\n }\n }\n return filtered;\n}\n\nfunction redactQueryParameters(\n queryParameters: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n if (queryParameters == null) {\n return undefined;\n }\n const redacted: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(queryParameters)) {\n redacted[key] = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase()) ? \"[REDACTED]\" : value;\n }\n return redacted;\n}\n\nasync function getHeaders(args: Fetcher.Args): Promise<Headers> {\n const newHeaders: Headers = new Headers();\n\n newHeaders.set(\n \"Accept\",\n args.responseType === \"json\"\n ? \"application/json\"\n : args.responseType === \"text\"\n ? \"text/plain\"\n : args.responseType === \"sse\"\n ? \"text/event-stream\"\n : \"*/*\",\n );\n if (args.body !== undefined && args.contentType != null) {\n newHeaders.set(\"Content-Type\", args.contentType);\n }\n\n if (args.headers == null) {\n return newHeaders;\n }\n\n for (const [key, value] of Object.entries(args.headers)) {\n const result = await EndpointSupplier.get(value, { endpointMetadata: args.endpointMetadata ?? {} });\n if (typeof result === \"string\") {\n newHeaders.set(key, result);\n continue;\n }\n if (result == null) {\n continue;\n }\n newHeaders.set(key, `${result}`);\n }\n return newHeaders;\n}\n\nexport async function fetcherImpl<R = unknown>(args: Fetcher.Args): Promise<APIResponse<R, Fetcher.Error>> {\n let url = args.url;\n if (args.queryString != null && args.queryString.length > 0) {\n url = `${url}?${args.queryString}`;\n } else {\n url = createRequestUrl(args.url, args.queryParameters);\n }\n const requestBody: BodyInit | undefined = await getRequestBody({\n body: args.body,\n type: args.requestType ?? \"other\",\n });\n const fetchFn = args.fetchFn ?? (await getFetchFn());\n const headers = await getHeaders(args);\n const logger = createLogger(args.logging);\n\n if (logger.isDebug()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n headers: redactHeaders(headers),\n queryParameters: redactQueryParameters(args.queryParameters),\n hasBody: requestBody != null,\n };\n logger.debug(\"Making HTTP request\", metadata);\n }\n\n try {\n const response = await requestWithRetries(\n async () =>\n makeRequest(\n fetchFn,\n url,\n args.method,\n headers,\n requestBody,\n args.timeoutMs,\n args.abortSignal,\n args.withCredentials,\n args.duplex,\n args.responseType === \"streaming\" || args.responseType === \"sse\",\n ),\n args.maxRetries,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (logger.isDebug()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n statusCode: response.status,\n responseHeaders: redactHeaders(response.headers),\n };\n logger.debug(\"HTTP request succeeded\", metadata);\n }\n const body = await getResponseBody(response, args.responseType);\n return {\n ok: true,\n body: body as R,\n headers: response.headers,\n rawResponse: toRawResponse(response),\n };\n } else {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n statusCode: response.status,\n responseHeaders: redactHeaders(Object.fromEntries(response.headers.entries())),\n };\n logger.error(\"HTTP request failed with error status\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"status-code\",\n statusCode: response.status,\n body: await getErrorResponseBody(response),\n },\n rawResponse: toRawResponse(response),\n };\n }\n } catch (error) {\n if (error instanceof InvalidJsonResponseError) {\n return {\n ok: false,\n error: { reason: \"non-json\", statusCode: error.response.status, rawBody: error.rawBody },\n rawResponse: toRawResponse(error.response),\n };\n }\n if (args.abortSignal?.aborted) {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n };\n logger.error(\"HTTP request was aborted\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: \"The user aborted a request\",\n cause: error,\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error && error.name === \"AbortError\") {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n timeoutMs: args.timeoutMs,\n };\n logger.error(\"HTTP request timed out\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"timeout\",\n cause: error,\n },\n rawResponse: abortRawResponse,\n };\n } else if (error instanceof Error) {\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n errorMessage: error.message,\n };\n logger.error(\"HTTP request failed with error\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: error.message,\n cause: error,\n },\n rawResponse: unknownRawResponse,\n };\n }\n\n if (logger.isError()) {\n const metadata = {\n method: args.method,\n url: redactUrl(url),\n error: toJson(error),\n };\n logger.error(\"HTTP request failed with unknown error\", metadata);\n }\n return {\n ok: false,\n error: {\n reason: \"unknown\",\n errorMessage: toJson(error),\n cause: error,\n },\n rawResponse: unknownRawResponse,\n };\n }\n}\n\nexport const fetcher: FetchFunction = fetcherImpl;\n","import type { WithRawResponse } from \"./RawResponse.js\";\n\n/**\n * A promise that returns the parsed response and lets you retrieve the raw response too.\n */\nexport class HttpResponsePromise<T> extends Promise<T> {\n private innerPromise: Promise<WithRawResponse<T>>;\n private unwrappedPromise: Promise<T> | undefined;\n\n private constructor(promise: Promise<WithRawResponse<T>>) {\n // Initialize with a no-op to avoid premature parsing\n super((resolve) => {\n resolve(undefined as unknown as T);\n });\n this.innerPromise = promise;\n }\n\n /**\n * Creates an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @param args - Arguments to pass to the function.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T>(\n fn: F,\n ...args: Parameters<F>\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(fn(...args));\n }\n\n /**\n * Creates a function that returns an `HttpResponsePromise` from a function that returns a promise.\n *\n * @param fn - A function that returns a promise resolving to a `WithRawResponse` object.\n * @returns A function that returns an `HttpResponsePromise` instance.\n */\n public static interceptFunction<\n F extends (...args: never[]) => Promise<WithRawResponse<T>>,\n T = Awaited<ReturnType<F>>[\"data\"],\n >(fn: F): (...args: Parameters<F>) => HttpResponsePromise<T> {\n return (...args: Parameters<F>): HttpResponsePromise<T> => {\n return HttpResponsePromise.fromPromise<T>(fn(...args));\n };\n }\n\n /**\n * Creates an `HttpResponsePromise` from an existing promise.\n *\n * @param promise - A promise resolving to a `WithRawResponse` object.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromPromise<T>(promise: Promise<WithRawResponse<T>>): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from an executor function.\n *\n * @param executor - A function that takes resolve and reject callbacks to create a promise.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromExecutor<T>(\n executor: (resolve: (value: WithRawResponse<T>) => void, reject: (reason?: unknown) => void) => void,\n ): HttpResponsePromise<T> {\n const promise = new Promise<WithRawResponse<T>>(executor);\n return new HttpResponsePromise<T>(promise);\n }\n\n /**\n * Creates an `HttpResponsePromise` from a resolved result.\n *\n * @param result - A `WithRawResponse` object to resolve immediately.\n * @returns An `HttpResponsePromise` instance.\n */\n public static fromResult<T>(result: WithRawResponse<T>): HttpResponsePromise<T> {\n const promise = Promise.resolve(result);\n return new HttpResponsePromise<T>(promise);\n }\n\n private unwrap(): Promise<T> {\n if (!this.unwrappedPromise) {\n this.unwrappedPromise = this.innerPromise.then(({ data }) => data);\n }\n return this.unwrappedPromise;\n }\n\n /** @inheritdoc */\n public override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.unwrap().then(onfulfilled, onrejected);\n }\n\n /** @inheritdoc */\n public override catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,\n ): Promise<T | TResult> {\n return this.unwrap().catch(onrejected);\n }\n\n /** @inheritdoc */\n public override finally(onfinally?: (() => void) | null): Promise<T> {\n return this.unwrap().finally(onfinally);\n }\n\n /**\n * Retrieves the data and raw response.\n *\n * @returns A promise resolving to a `WithRawResponse` object.\n */\n public async withRawResponse(): Promise<WithRawResponse<T>> {\n return await this.innerPromise;\n }\n}\n","export function join(base: string, ...segments: string[]): string {\n if (!base) {\n return \"\";\n }\n\n if (segments.length === 0) {\n return base;\n }\n\n if (base.includes(\"://\")) {\n let url: URL;\n try {\n url = new URL(base);\n } catch {\n return joinPath(base, ...segments);\n }\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment?.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n url.pathname = joinPathSegments(url.pathname, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !url.pathname.endsWith(\"/\")) {\n url.pathname += \"/\";\n }\n\n return url.toString();\n }\n\n return joinPath(base, ...segments);\n}\n\nfunction joinPath(base: string, ...segments: string[]): string {\n if (segments.length === 0) {\n return base;\n }\n\n let result = base;\n\n const lastSegment = segments[segments.length - 1];\n const shouldPreserveTrailingSlash = lastSegment?.endsWith(\"/\");\n\n for (const segment of segments) {\n const cleanSegment = trimSlashes(segment);\n if (cleanSegment) {\n result = joinPathSegments(result, cleanSegment);\n }\n }\n\n if (shouldPreserveTrailingSlash && !result.endsWith(\"/\")) {\n result += \"/\";\n }\n\n return result;\n}\n\nfunction joinPathSegments(left: string, right: string): string {\n if (left.endsWith(\"/\")) {\n return left + right;\n }\n return `${left}/${right}`;\n}\n\nfunction trimSlashes(str: string): string {\n if (!str) return str;\n\n let start = 0;\n let end = str.length;\n\n if (str.startsWith(\"/\")) start = 1;\n if (str.endsWith(\"/\")) end = str.length - 1;\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport const Supplier = {\n get: async <T>(supplier: Supplier<T>): Promise<T> => {\n if (typeof supplier === \"function\") {\n return (supplier as () => T)();\n } else {\n return supplier;\n }\n },\n};\n","import { createLogger, type LogConfig, type Logger } from \"../logging/logger.js\";\nimport { join } from \"../url/join.js\";\nimport { EndpointSupplier } from \"./EndpointSupplier.js\";\nimport { getFetchFn } from \"./getFetchFn.js\";\nimport { makeRequest } from \"./makeRequest.js\";\nimport { redactUrl } from \"./redactUrl.js\";\nimport { requestWithRetries } from \"./requestWithRetries.js\";\nimport { Supplier } from \"./Supplier.js\";\n\nexport declare namespace PassthroughRequest {\n /**\n * Per-request options that can override the SDK client defaults.\n */\n export interface RequestOptions {\n /** Override the default timeout for this request (in seconds). */\n timeoutInSeconds?: number;\n /** Override the default number of retries for this request. */\n maxRetries?: number;\n /** Additional headers to include in this request. */\n headers?: Record<string, string>;\n /** Abort signal for this request. */\n abortSignal?: AbortSignal;\n }\n\n /**\n * SDK client configuration used by the passthrough fetch method.\n */\n export interface ClientOptions {\n /** The base URL or environment for the client. */\n environment?: Supplier<string>;\n /** Override the base URL. */\n baseUrl?: Supplier<string>;\n /** Default headers to include in requests. */\n headers?: Record<string, unknown>;\n /** Default maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** Default number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A custom fetch function. */\n fetch?: typeof fetch;\n /** Logging configuration. */\n logging?: LogConfig | Logger;\n /** A function that returns auth headers. */\n getAuthHeaders?: () => Promise<Record<string, string>>;\n }\n}\n\n/**\n * Makes a passthrough HTTP request using the SDK's configuration (auth, retry, logging, etc.)\n * while mimicking the standard `fetch` API.\n *\n * @param input - The URL, path, or Request object. If a relative path, it will be resolved against the configured base URL.\n * @param init - Standard RequestInit options (method, headers, body, signal, etc.)\n * @param clientOptions - SDK client options (auth, default headers, logging, etc.)\n * @param requestOptions - Per-request overrides (timeout, retries, extra headers, abort signal).\n * @returns A standard Response object.\n */\nexport async function makePassthroughRequest(\n input: Request | string | URL,\n init: RequestInit | undefined,\n clientOptions: PassthroughRequest.ClientOptions,\n requestOptions?: PassthroughRequest.RequestOptions,\n): Promise<Response> {\n const logger = createLogger(clientOptions.logging);\n\n // Extract URL and default init properties from Request object if provided\n let url: string;\n let effectiveInit: RequestInit | undefined = init;\n if (input instanceof Request) {\n url = input.url;\n // If no explicit init provided, extract properties from the Request object\n if (init == null) {\n effectiveInit = {\n method: input.method,\n headers: Object.fromEntries(input.headers.entries()),\n body: input.body,\n signal: input.signal,\n credentials: input.credentials,\n cache: input.cache as RequestCache,\n redirect: input.redirect,\n referrer: input.referrer,\n integrity: input.integrity,\n mode: input.mode,\n };\n }\n } else {\n url = input instanceof URL ? input.toString() : input;\n }\n\n // Resolve the base URL\n const baseUrl =\n (clientOptions.baseUrl != null ? await Supplier.get(clientOptions.baseUrl) : undefined) ??\n (clientOptions.environment != null ? await Supplier.get(clientOptions.environment) : undefined);\n\n // Determine the full URL\n let fullUrl: string;\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n fullUrl = url;\n } else if (baseUrl != null) {\n fullUrl = join(baseUrl, url);\n } else {\n fullUrl = url;\n }\n\n // Merge headers: SDK default headers -> auth headers -> user-provided headers\n const mergedHeaders: Record<string, string> = {};\n\n // Apply SDK default headers (resolve suppliers)\n if (clientOptions.headers != null) {\n for (const [key, value] of Object.entries(clientOptions.headers)) {\n const resolved = await EndpointSupplier.get(value, { endpointMetadata: {} });\n if (resolved != null) {\n mergedHeaders[key.toLowerCase()] = `${resolved}`;\n }\n }\n }\n\n // Apply auth headers, but only when the resolved URL targets the configured base URL.\n // This prevents the SDK's credentials from leaking to an unrelated host when a caller\n // passes an absolute cross-origin URL into the passthrough fetch escape hatch.\n if (clientOptions.getAuthHeaders != null && targetsBaseUrl(fullUrl, baseUrl)) {\n const authHeaders = await clientOptions.getAuthHeaders();\n for (const [key, value] of Object.entries(authHeaders)) {\n mergedHeaders[key.toLowerCase()] = value;\n }\n }\n\n // Apply user-provided headers from init\n if (effectiveInit?.headers != null) {\n const initHeaders =\n effectiveInit.headers instanceof Headers\n ? Object.fromEntries(effectiveInit.headers.entries())\n : Array.isArray(effectiveInit.headers)\n ? Object.fromEntries(effectiveInit.headers)\n : effectiveInit.headers;\n for (const [key, value] of Object.entries(initHeaders)) {\n if (value != null) {\n mergedHeaders[key.toLowerCase()] = value;\n }\n }\n }\n\n // Apply per-request option headers (highest priority)\n if (requestOptions?.headers != null) {\n for (const [key, value] of Object.entries(requestOptions.headers)) {\n mergedHeaders[key.toLowerCase()] = value;\n }\n }\n\n const method = effectiveInit?.method ?? \"GET\";\n const body = effectiveInit?.body;\n const timeoutInSeconds = requestOptions?.timeoutInSeconds ?? clientOptions.timeoutInSeconds;\n const timeoutMs = timeoutInSeconds != null ? timeoutInSeconds * 1000 : undefined;\n const maxRetries = requestOptions?.maxRetries ?? clientOptions.maxRetries;\n const abortSignal = requestOptions?.abortSignal ?? effectiveInit?.signal ?? undefined;\n const fetchFn = clientOptions.fetch ?? (await getFetchFn());\n\n if (logger.isDebug()) {\n logger.debug(\"Making passthrough HTTP request\", {\n method,\n url: redactUrl(fullUrl),\n hasBody: body != null,\n });\n }\n\n const response = await requestWithRetries(\n async () =>\n makeRequest(\n fetchFn,\n fullUrl,\n method,\n mergedHeaders,\n body ?? undefined,\n timeoutMs,\n abortSignal,\n effectiveInit?.credentials === \"include\",\n undefined, // duplex\n false, // disableCache\n ),\n maxRetries,\n );\n\n if (logger.isDebug()) {\n logger.debug(\"Passthrough HTTP request completed\", {\n method,\n url: redactUrl(fullUrl),\n statusCode: response.status,\n });\n }\n\n return response;\n}\n\n/**\n * Returns true when the resolved request URL points at the same origin as the\n * configured base URL. Relative paths are always joined onto the base URL, so\n * they resolve to the base origin and return true. Absolute URLs only match when\n * their origin equals the base origin. When there is no base URL to compare\n * against, or either value is not a parseable absolute URL, this returns false so\n * auth headers are not attached.\n */\nfunction targetsBaseUrl(fullUrl: string, baseUrl: string | undefined): boolean {\n if (baseUrl == null) {\n return false;\n }\n try {\n return new URL(fullUrl).origin === new URL(baseUrl).origin;\n } catch {\n return false;\n }\n}\n","export * from \"./file.js\";\nexport * from \"./types.js\";\n","import type { Uploadable } from \"./types.js\";\n\nexport async function toBinaryUploadRequest(\n file: Uploadable,\n): Promise<{ body: Uploadable.FileLike; headers?: Record<string, string> }> {\n const { data, filename, contentLength, contentType } = await getFileWithMetadata(file);\n const request = {\n body: data,\n headers: {} as Record<string, string>,\n };\n if (filename) {\n request.headers[\"Content-Disposition\"] = `attachment; filename=\"${filename}\"`;\n }\n if (contentType) {\n request.headers[\"Content-Type\"] = contentType;\n }\n if (contentLength != null) {\n request.headers[\"Content-Length\"] = contentLength.toString();\n }\n return request;\n}\n\nexport async function toMultipartDataPart(\n file: Uploadable,\n): Promise<{ data: Uploadable.FileLike; filename?: string; contentType?: string }> {\n const { data, filename, contentType } = await getFileWithMetadata(file, {\n noSniffFileSize: true,\n });\n return {\n data,\n filename,\n contentType,\n };\n}\n\nasync function getFileWithMetadata(\n file: Uploadable,\n { noSniffFileSize }: { noSniffFileSize?: boolean } = {},\n): Promise<Uploadable.WithMetadata> {\n if (file == null) {\n throw new Error(\n `Expected file to be a Blob, Buffer, ReadableStream, or an object with a \"path\" or \"data\" property, but received ${file === null ? \"null\" : \"undefined\"}.`,\n );\n }\n if (isFileLike(file)) {\n return getFileWithMetadata(\n {\n data: file,\n },\n { noSniffFileSize },\n );\n }\n\n if (\"path\" in file) {\n const fs = await import(\"fs\");\n if (!fs?.createReadStream) {\n throw new Error(\"File path uploads are not supported in this environment.\");\n }\n const data = fs.createReadStream(file.path);\n const contentLength =\n file.contentLength ?? (noSniffFileSize === true ? undefined : await tryGetFileSizeFromPath(file.path));\n const filename = file.filename ?? getNameFromPath(file.path);\n return {\n data,\n filename,\n contentType: file.contentType,\n contentLength,\n };\n }\n if (\"data\" in file) {\n const data = file.data;\n const contentLength =\n file.contentLength ??\n (await tryGetContentLengthFromFileLike(data, {\n noSniffFileSize,\n }));\n const filename = file.filename ?? tryGetNameFromFileLike(data);\n return {\n data,\n filename,\n contentType: file.contentType ?? tryGetContentTypeFromFileLike(data),\n contentLength,\n };\n }\n\n throw new Error(`Invalid FileUpload of type ${typeof file}: ${JSON.stringify(file)}`);\n}\n\nfunction isFileLike(value: unknown): value is Uploadable.FileLike {\n return (\n isBuffer(value) ||\n isArrayBufferView(value) ||\n isArrayBuffer(value) ||\n isUint8Array(value) ||\n isBlob(value) ||\n isFile(value) ||\n isStreamLike(value) ||\n isReadableStream(value)\n );\n}\n\nasync function tryGetFileSizeFromPath(path: string): Promise<number | undefined> {\n try {\n const fs = await import(\"fs\");\n if (!fs?.promises?.stat) {\n return undefined;\n }\n const fileStat = await fs.promises.stat(path);\n return fileStat.size;\n } catch (_fallbackError) {\n return undefined;\n }\n}\n\nfunction tryGetNameFromFileLike(data: Uploadable.FileLike): string | undefined {\n if (isNamedValue(data)) {\n return data.name;\n }\n if (isPathedValue(data)) {\n return getNameFromPath(data.path.toString());\n }\n return undefined;\n}\n\nasync function tryGetContentLengthFromFileLike(\n data: Uploadable.FileLike,\n { noSniffFileSize }: { noSniffFileSize?: boolean } = {},\n): Promise<number | undefined> {\n if (isBuffer(data)) {\n return data.length;\n }\n if (isArrayBufferView(data)) {\n return data.byteLength;\n }\n if (isArrayBuffer(data)) {\n return data.byteLength;\n }\n if (isBlob(data)) {\n return data.size;\n }\n if (isFile(data)) {\n return data.size;\n }\n if (noSniffFileSize === true) {\n return undefined;\n }\n if (isPathedValue(data)) {\n return await tryGetFileSizeFromPath(data.path.toString());\n }\n return undefined;\n}\n\nfunction tryGetContentTypeFromFileLike(data: Uploadable.FileLike): string | undefined {\n if (isBlob(data)) {\n return data.type;\n }\n if (isFile(data)) {\n return data.type;\n }\n\n return undefined;\n}\n\nfunction getNameFromPath(path: string): string | undefined {\n const lastForwardSlash = path.lastIndexOf(\"/\");\n const lastBackSlash = path.lastIndexOf(\"\\\\\");\n const lastSlashIndex = Math.max(lastForwardSlash, lastBackSlash);\n return lastSlashIndex >= 0 ? path.substring(lastSlashIndex + 1) : path;\n}\n\ntype NamedValue = {\n name: string;\n} & unknown;\n\ntype PathedValue = {\n path: string | { toString(): string };\n} & unknown;\n\ntype StreamLike = {\n read?: () => unknown;\n pipe?: (dest: unknown) => unknown;\n} & unknown;\n\nfunction isNamedValue(value: unknown): value is NamedValue {\n return typeof value === \"object\" && value != null && \"name\" in value;\n}\n\nfunction isPathedValue(value: unknown): value is PathedValue {\n return typeof value === \"object\" && value != null && \"path\" in value;\n}\n\nfunction isStreamLike(value: unknown): value is StreamLike {\n return typeof value === \"object\" && value != null && (\"read\" in value || \"pipe\" in value);\n}\n\nfunction isReadableStream(value: unknown): value is ReadableStream {\n return typeof value === \"object\" && value != null && \"getReader\" in value;\n}\n\nfunction isBuffer(value: unknown): value is Buffer {\n return typeof Buffer !== \"undefined\" && Buffer.isBuffer && Buffer.isBuffer(value);\n}\n\nfunction isArrayBufferView(value: unknown): value is ArrayBufferView {\n return typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView(value);\n}\n\nfunction isArrayBuffer(value: unknown): value is ArrayBuffer {\n return typeof ArrayBuffer !== \"undefined\" && value instanceof ArrayBuffer;\n}\n\nfunction isUint8Array(value: unknown): value is Uint8Array {\n return typeof Uint8Array !== \"undefined\" && value instanceof Uint8Array;\n}\n\nfunction isBlob(value: unknown): value is Blob {\n return typeof Blob !== \"undefined\" && value instanceof Blob;\n}\n\nfunction isFile(value: unknown): value is File {\n return typeof File !== \"undefined\" && value instanceof File;\n}\n","export * from \"./logger.js\";\n","interface DenoGlobal {\n version: {\n deno: string;\n };\n build?: {\n os?: string;\n arch?: string;\n };\n}\n\ninterface BunGlobal {\n version: string;\n}\n\ndeclare const Deno: DenoGlobal | undefined;\ndeclare const Bun: BunGlobal | undefined;\ndeclare const EdgeRuntime: string | undefined;\ndeclare const self: typeof globalThis.self & {\n importScripts?: unknown;\n};\n\n/**\n * A constant that indicates which environment and version the SDK is running in.\n */\nexport const RUNTIME: Runtime = evaluateRuntime();\n\nexport interface Runtime {\n type: \"browser\" | \"web-worker\" | \"deno\" | \"bun\" | \"node\" | \"react-native\" | \"unknown\" | \"workerd\" | \"edge-runtime\";\n version?: string;\n parsedVersion?: number;\n /**\n * The operating system the SDK is running on, when it can be determined\n * (e.g. \"linux\", \"darwin\", \"win32\" on server runtimes). Undefined in\n * environments where the OS is not observable (e.g. browsers).\n */\n os?: string;\n /**\n * The CPU architecture the SDK is running on, when it can be determined\n * (e.g. \"x64\", \"arm64\" on server runtimes). Undefined in environments where\n * the architecture is not observable (e.g. browsers).\n */\n arch?: string;\n}\n\nfunction evaluateRuntime(): Runtime {\n /**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n if (isBrowser) {\n return {\n type: \"browser\",\n version: window.navigator.userAgent,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Cloudflare.\n * https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent\n */\n const isCloudflare = typeof globalThis !== \"undefined\" && globalThis?.navigator?.userAgent === \"Cloudflare-Workers\";\n if (isCloudflare) {\n return {\n type: \"workerd\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Edge Runtime.\n * https://vercel.com/docs/functions/runtimes/edge-runtime#check-if-you're-running-on-the-edge-runtime\n */\n const isEdgeRuntime = typeof EdgeRuntime === \"string\";\n if (isEdgeRuntime) {\n return {\n type: \"edge-runtime\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\n const isWebWorker =\n typeof self === \"object\" &&\n typeof self?.importScripts === \"function\" &&\n (self.constructor?.name === \"DedicatedWorkerGlobalScope\" ||\n self.constructor?.name === \"ServiceWorkerGlobalScope\" ||\n self.constructor?.name === \"SharedWorkerGlobalScope\");\n if (isWebWorker) {\n return {\n type: \"web-worker\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Deno.\n * FYI Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions\n */\n const isDeno =\n typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n if (isDeno) {\n return {\n type: \"deno\",\n version: Deno.version.deno,\n os: Deno.build?.os,\n arch: Deno.build?.arch,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\n const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n if (isBun) {\n return {\n type: \"bun\",\n version: Bun.version,\n os: typeof process !== \"undefined\" ? process.platform : undefined,\n arch: typeof process !== \"undefined\" ? process.arch : undefined,\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is in React-Native.\n * This check should come before Node.js detection since React Native may have a process polyfill.\n * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\n */\n const isReactNative = typeof navigator !== \"undefined\" && navigator?.product === \"ReactNative\";\n if (isReactNative) {\n return {\n type: \"react-native\",\n };\n }\n\n /**\n * A constant that indicates whether the environment the code is running is Node.JS.\n *\n * We assign `process` to a local variable first to avoid being flagged by\n * bundlers that perform static analysis on `process.versions` (e.g. Next.js\n * Edge Runtime warns about Node.js APIs even when they are guarded).\n */\n const _process = typeof process !== \"undefined\" ? process : undefined;\n const isNode = typeof _process !== \"undefined\" && typeof _process.versions?.node === \"string\";\n if (isNode) {\n return {\n type: \"node\",\n version: _process.versions.node,\n parsedVersion: Number(_process.versions.node.split(\".\")[0]),\n os: _process.platform,\n arch: _process.arch,\n };\n }\n\n return {\n type: \"unknown\",\n };\n}\n\n/**\n * Display names for the language runtimes whose version is meaningful to encode\n * in a User-Agent. Environments where a version string is not useful (e.g.\n * browsers, where `version` is the full navigator UA) are intentionally mapped\n * to `undefined` so they are omitted from the User-Agent.\n */\nconst RUNTIME_DISPLAY_NAMES: Record<Runtime[\"type\"], string | undefined> = {\n node: \"Node\",\n deno: \"Deno\",\n bun: \"Bun\",\n browser: undefined,\n \"web-worker\": undefined,\n \"react-native\": undefined,\n workerd: undefined,\n \"edge-runtime\": undefined,\n unknown: undefined,\n};\n\n/**\n * CPU architecture aliases that all refer to 64-bit x86. They are normalized to\n * the single canonical token `x86_64` so the User-Agent architecture label is\n * consistent regardless of which runtime reports it (Node reports `x64`, others\n * report `amd64` or `x86_64`).\n */\nconst X86_64_ARCH_ALIASES = new Set([\"x64\", \"amd64\", \"x86_64\"]);\n\n/**\n * Normalizes a CPU architecture token, collapsing the 64-bit x86 aliases\n * (`x64`, `amd64`, `x86_64`) to `x86_64`. Other architectures are returned\n * unchanged.\n */\nfunction normalizeArch(arch: string | undefined): string | undefined {\n if (arch == null) {\n return arch;\n }\n return X86_64_ARCH_ALIASES.has(arch.toLowerCase()) ? \"x86_64\" : arch;\n}\n\n/**\n * Percent-encodes the `@` and `/` characters in an npm package name so the\n * User-Agent product token stays within the RFC 7230 token grammar. The\n * original scoped package name can be recovered by URL-decoding (e.g.\n * `@dummy/sdk` becomes `%40dummy%2Fsdk`).\n */\nfunction encodeProductName(sdkName: string): string {\n return sdkName.replace(/@/g, \"%40\").replace(/\\//g, \"%2F\");\n}\n\n/**\n * Builds a structured User-Agent string of the form\n * `{sdkName}/{sdkVersion} ({os}; {arch}) {runtime}/{runtimeVersion}`\n * where the platform group and runtime segment are omitted gracefully when the\n * underlying values cannot be determined (e.g. in a browser).\n */\nexport function getUserAgent(sdkName: string, sdkVersion: string): string {\n let userAgent = `${encodeProductName(sdkName)}/${sdkVersion}`;\n\n const platform = [RUNTIME.os, normalizeArch(RUNTIME.arch)].filter(\n (part): part is string => part != null && part.length > 0,\n );\n if (platform.length > 0) {\n userAgent += ` (${platform.join(\"; \")})`;\n }\n\n const runtimeName = RUNTIME_DISPLAY_NAMES[RUNTIME.type];\n if (runtimeName != null) {\n userAgent += ` ${runtimeName}`;\n if (RUNTIME.version != null && RUNTIME.version.length > 0) {\n userAgent += `/${RUNTIME.version}`;\n }\n }\n\n return userAgent;\n}\n","export { encodePathParam } from \"./encodePathParam.js\";\nexport { join } from \"./join.js\";\nexport { queryBuilder } from \"./QueryStringBuilder.js\";\nexport { toQueryString } from \"./qs.js\";\n","export function encodePathParam(param: unknown): string {\n if (param === null) {\n return \"null\";\n }\n const typeofParam = typeof param;\n switch (typeofParam) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n case \"number\":\n case \"boolean\":\n break;\n default:\n param = String(param);\n break;\n }\n return encodeURIComponent(param as string | number | boolean);\n}\n","import { toQueryString } from \"./qs.js\";\n\n/**\n * Creates a fluent builder for constructing URL query strings.\n *\n * Each `.add()` call serializes its value immediately (like C#'s builder),\n * so no format tracking is needed — the style is applied at add-time.\n *\n * Usage (generated code):\n *\n * const qs = core.url.queryBuilder()\n * .add(\"limit\", limit)\n * .add(\"tags\", tags, { style: \"comma\" }) // explode: false\n * .mergeAdditional(requestOptions?.queryParams)\n * .build();\n */\nexport function queryBuilder(): QueryStringBuilder {\n return new QueryStringBuilder();\n}\n\nclass QueryStringBuilder {\n private parts: Map<string, string> = new Map();\n\n /**\n * Adds a query parameter, serializing it immediately.\n *\n * By default arrays use \"repeat\" format (`key=a&key=b`).\n * Pass `{ style: \"comma\" }` for OpenAPI `explode: false` parameters\n * to get comma-separated values (`key=a,b,c`).\n *\n * Null / undefined values are silently skipped.\n */\n add(key: string, value: unknown, options?: { style?: \"comma\" }): this {\n if (value === undefined || value === null) {\n return this;\n }\n const serialized = toQueryString(\n { [key]: value },\n { arrayFormat: options?.style === \"comma\" ? \"comma\" : \"repeat\" },\n );\n if (serialized.length > 0) {\n this.parts.set(key, serialized);\n }\n return this;\n }\n\n /**\n * Adds multiple query parameters at once from a record.\n * All parameters use the default \"repeat\" array format.\n * Null / undefined values are silently skipped.\n */\n addMany(params: Record<string, unknown>): this {\n if (params != null) {\n for (const [key, value] of Object.entries(params)) {\n this.add(key, value);\n }\n }\n return this;\n }\n\n /**\n * Merges additional query parameters supplied at call-time via\n * `requestOptions.queryParams`. Overrides existing keys (last-write-wins).\n */\n mergeAdditional(additionalParams?: Record<string, unknown>): this {\n if (additionalParams != null) {\n for (const [key, value] of Object.entries(additionalParams)) {\n if (value === undefined || value === null) {\n continue;\n }\n const serialized = toQueryString({ [key]: value }, { arrayFormat: \"repeat\" });\n if (serialized.length > 0) {\n this.parts.set(key, serialized);\n }\n }\n }\n return this;\n }\n\n /**\n * Returns the assembled query string (without the leading `?`).\n * Returns an empty string when no parameters were added.\n */\n build(): string {\n return [...this.parts.values()].join(\"&\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../core/index.js\";\nimport { toJson } from \"../core/json.js\";\n\nexport class StarlingError extends Error {\n public readonly statusCode?: number;\n public readonly body?: unknown;\n public readonly rawResponse?: core.RawResponse;\n public readonly cause?: unknown;\n\n constructor({\n message,\n statusCode,\n body,\n rawResponse,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n body?: unknown;\n rawResponse?: core.RawResponse;\n cause?: unknown;\n }) {\n super(buildMessage({ message, statusCode, body }));\n Object.setPrototypeOf(this, new.target.prototype);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"StarlingError\";\n this.statusCode = statusCode;\n this.body = body;\n this.rawResponse = rawResponse;\n if (cause != null) {\n this.cause = cause;\n }\n }\n\n public get requestId(): string | undefined {\n return this.rawResponse?.headers?.get(\"x-request-id\") ?? undefined;\n }\n}\n\nfunction buildMessage({\n message,\n statusCode,\n body,\n}: {\n message: string | undefined;\n statusCode: number | undefined;\n body: unknown | undefined;\n}): string {\n const lines: string[] = [];\n if (message != null) {\n lines.push(message);\n }\n\n if (statusCode != null) {\n lines.push(`Status code: ${statusCode.toString()}`);\n }\n\n if (body != null) {\n lines.push(`Body: ${toJson(body, undefined, 2)}`);\n }\n\n return lines.join(\"\\n\");\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as errors from \"./index.js\";\n\nexport class StarlingTimeoutError extends errors.StarlingError {\n constructor(message: string, opts?: { cause?: unknown }) {\n super({\n message: message,\n cause: opts?.cause,\n });\n Object.setPrototypeOf(this, new.target.prototype);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"StarlingTimeoutError\";\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport * as core from \"../core/index.js\";\nimport * as errors from \"../errors/index.js\";\n\nconst TOKEN_PARAM = \"accessToken\" as const;\nconst ENV_TOKEN = \"STARLING_ACCESS_TOKEN\" as const;\n\nexport class BearerAuthProvider implements core.AuthProvider {\n private readonly options: BearerAuthProvider.Options;\n\n constructor(options: BearerAuthProvider.Options) {\n this.options = options;\n }\n\n public static canCreate(options: Partial<BearerAuthProvider.Options>): boolean {\n return options?.[TOKEN_PARAM] != null || process.env?.[ENV_TOKEN] != null;\n }\n\n public async getAuthRequest({\n endpointMetadata,\n }: {\n endpointMetadata?: core.EndpointMetadata;\n } = {}): Promise<core.AuthRequest> {\n const accessToken = (await core.Supplier.get(this.options[TOKEN_PARAM])) ?? process.env?.[ENV_TOKEN];\n if (accessToken == null) {\n throw new errors.StarlingError({\n message: BearerAuthProvider.AUTH_CONFIG_ERROR_MESSAGE,\n });\n }\n\n return {\n headers: { Authorization: `Bearer ${accessToken}` },\n };\n }\n}\n\nexport namespace BearerAuthProvider {\n export const AUTH_SCHEME = \"AccessToken\" as const;\n export const AUTH_CONFIG_ERROR_MESSAGE: string =\n `Please provide '${TOKEN_PARAM}' when initializing the client, or set the '${ENV_TOKEN}' environment variable` as const;\n export type Options = AuthOptions;\n export type AuthOptions = { [TOKEN_PARAM]?: core.Supplier<core.BearerToken> | undefined };\n\n export function createInstance(options: Options): core.AuthProvider {\n return new BearerAuthProvider(options);\n }\n}\n","export function mergeHeaders(...headersArray: (Record<string, unknown> | null | undefined)[]): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n const insensitiveKey = key.toLowerCase();\n if (value != null) {\n result[insensitiveKey] = value;\n } else if (insensitiveKey in result) {\n delete result[insensitiveKey];\n }\n }\n\n return result;\n}\n\nexport function mergeOnlyDefinedHeaders(\n ...headersArray: (Record<string, unknown> | null | undefined)[]\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of headersArray\n .filter((headers) => headers != null)\n .flatMap((headers) => Object.entries(headers))) {\n const insensitiveKey = key.toLowerCase();\n if (value != null) {\n result[insensitiveKey] = value;\n }\n }\n\n return result;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport { BearerAuthProvider } from \"./auth/BearerAuthProvider.js\";\nimport { mergeHeaders } from \"./core/headers.js\";\nimport * as core from \"./core/index.js\";\nimport type * as environments from \"./environments.js\";\n\nexport type AuthOption =\n | false\n | core.AuthProvider[\"getAuthRequest\"]\n | core.AuthProvider\n | BearerAuthProvider.AuthOptions;\n\nexport type BaseClientOptions = {\n environment?: core.Supplier<environments.StarlingEnvironment | string>;\n /** Specify a custom URL to connect the client to. */\n baseUrl?: core.Supplier<string>;\n /** Additional headers to include in requests. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n /** The default maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The default number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */\n fetch?: typeof fetch;\n fetcher?: core.FetchFunction;\n /** Configure logging for the client. */\n logging?: core.logging.LogConfig | core.logging.Logger;\n /** Default options for SSE stream reconnection behavior. Has no effect on non-resumable endpoints. */\n stream?: { reconnectionEnabled?: boolean; maxReconnectionAttempts?: number };\n /** Override auth. Pass false to disable, a function returning auth headers, an AuthProvider, or auth options. */\n auth?: AuthOption;\n} & BearerAuthProvider.AuthOptions;\n\nexport interface BaseRequestOptions {\n /** The maximum time to wait for a response in seconds. */\n timeoutInSeconds?: number;\n /** The number of times to retry the request. Defaults to 2. */\n maxRetries?: number;\n /** A hook to abort the request. */\n abortSignal?: AbortSignal;\n /** Additional query string parameters to include in the request. */\n queryParams?: Record<string, unknown>;\n /** A dictionary containing additional parameters to spread into the request's body. */\n additionalBodyParameters?: Record<string, unknown>;\n /** Additional headers to include in the request. */\n headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;\n /** Options for SSE stream reconnection behavior. Has no effect on non-resumable endpoints. */\n stream?: { reconnectionEnabled?: boolean; maxReconnectionAttempts?: number };\n}\n\nexport type NormalizedClientOptions<T extends BaseClientOptions = BaseClientOptions> = T & {\n logging: core.logging.Logger;\n authProvider?: core.AuthProvider;\n};\n\nexport type NormalizedClientOptionsWithAuth<T extends BaseClientOptions = BaseClientOptions> =\n NormalizedClientOptions<T> & {\n authProvider: core.AuthProvider;\n };\n\nexport function normalizeClientOptions<T extends BaseClientOptions = BaseClientOptions>(\n options: T,\n): NormalizedClientOptions<T> {\n const headers = mergeHeaders(\n {\n \"X-Fern-Language\": \"JavaScript\",\n \"X-Fern-Runtime\": core.RUNTIME.type,\n \"X-Fern-Runtime-Version\": core.RUNTIME.version,\n },\n options?.headers,\n );\n\n return {\n ...options,\n logging: core.logging.createLogger(options?.logging),\n headers,\n } as NormalizedClientOptions<T>;\n}\n\nexport function normalizeClientOptionsWithAuth<T extends BaseClientOptions = BaseClientOptions>(\n options: T,\n): NormalizedClientOptionsWithAuth<T> {\n const normalized = normalizeClientOptions(options) as NormalizedClientOptionsWithAuth<T>;\n\n if (options.auth === false) {\n normalized.authProvider = new core.NoOpAuthProvider();\n return normalized;\n }\n if (options.auth != null) {\n if (typeof options.auth === \"function\") {\n normalized.authProvider = { getAuthRequest: options.auth };\n return normalized;\n }\n if (core.isAuthProvider(options.auth)) {\n normalized.authProvider = options.auth;\n return normalized;\n }\n Object.assign(normalized, options.auth);\n }\n\n const normalizedWithNoOpAuthProvider = withNoOpAuthProvider(normalized);\n normalized.authProvider ??= new BearerAuthProvider(normalizedWithNoOpAuthProvider);\n return normalized;\n}\n\nfunction withNoOpAuthProvider<T extends BaseClientOptions = BaseClientOptions>(\n options: NormalizedClientOptions<T>,\n): NormalizedClientOptionsWithAuth<T> {\n return {\n ...options,\n authProvider: new core.NoOpAuthProvider(),\n };\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nexport const StarlingEnvironment = {\n Sandbox: \"https://api-sandbox.starlingbank.com\",\n Production: \"https://api.starlingbank.com\",\n} as const;\n\nexport type StarlingEnvironment = typeof StarlingEnvironment.Sandbox | typeof StarlingEnvironment.Production;\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type * as core from \"../core/index.js\";\nimport * as errors from \"./index.js\";\n\nexport function handleNonStatusCodeError(\n error: core.Fetcher.Error,\n rawResponse: core.RawResponse,\n method: string,\n path: string,\n): never {\n switch (error.reason) {\n case \"non-json\":\n throw new errors.StarlingError({\n statusCode: error.statusCode,\n body: error.rawBody,\n rawResponse: rawResponse,\n });\n case \"body-is-null\":\n throw new errors.StarlingError({\n statusCode: error.statusCode,\n rawResponse: rawResponse,\n });\n case \"timeout\":\n throw new errors.StarlingTimeoutError(`Timeout exceeded when calling ${method} ${path}.`, {\n cause: error.cause,\n });\n case \"unknown\":\n throw new errors.StarlingError({\n message: error.errorMessage,\n rawResponse: rawResponse,\n cause: error.cause,\n });\n default:\n throw new errors.StarlingError({\n message: \"Unknown error\",\n rawResponse: rawResponse,\n });\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace AccountHolderClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class AccountHolderClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<AccountHolderClient.Options>;\n\n constructor(options: AccountHolderClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): customer:read, account-holder-type:read.\n *\n * @param {AccountHolderClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.accountHolder.get()\n */\n public get(requestOptions?: AccountHolderClient.RequestOptions): core.HttpResponsePromise<Starling.AccountHolder> {\n return core.HttpResponsePromise.fromPromise(this.__get(requestOptions));\n }\n\n private async __get(\n requestOptions?: AccountHolderClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.AccountHolder>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.AccountHolder, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/account-holder\");\n }\n\n /**\n *\n *\n * Required scopes (any): account-holder-name:read.\n *\n * @param {AccountHolderClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.accountHolder.getName()\n */\n public getName(\n requestOptions?: AccountHolderClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.AccountHolderName> {\n return core.HttpResponsePromise.fromPromise(this.__getName(requestOptions));\n }\n\n private async __getName(\n requestOptions?: AccountHolderClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.AccountHolderName>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/name\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.AccountHolderName, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/account-holder/name\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace AccountsClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class AccountsClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<AccountsClient.Options>;\n\n constructor(options: AccountsClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n * A Feed Export contains a list of all (Settled) transactions on an account for a specified date range in CSV format.\n *\n * Required scopes (any): feed-export-csv:read.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n */\n public exportFeed(\n request: Starling.ExportFeedAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): core.HttpResponsePromise<core.BinaryResponse> {\n return core.HttpResponsePromise.fromPromise(this.__exportFeed(request, requestOptions));\n }\n\n private async __exportFeed(\n request: Starling.ExportFeedAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.BinaryResponse>> {\n const { accountUid, start, end } = request;\n const _queryParams: Record<string, unknown> = {\n start,\n end: end != null ? end : undefined,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)<core.BinaryResponse>({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/accounts/${core.url.encodePathParam(accountUid)}/feed-export`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n responseType: \"binary-response\",\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/accounts/{accountUid}/feed-export\",\n );\n }\n\n /**\n * The account balance is expressed in two ways: cleared balance and effective balance.\n * * The **cleared balance** is the balance of settled transactions and so does not include pending transactions. The cleared end of day balance is used to calculate interest.\n * * The **effective balance** is the balance of settled and pending outgoing transactions. This is the balance most commonly presented to the account holder (e.g. in-app).\n *\n * `clearedBalance` and `effectiveBalance` hold the values for the main account only, excluding balances in spaces, savings goals etc. `totalClearedBalance` and `totalEffectiveBalance` hold the corresponding values totalled across the main account and all spaces, savings goals etc.\n *\n * Many payment types settle almost instantly (e.g. faster payments). Card transactions usually take a few days to settle and will remain pending for this time. We've got a blog post on [how card transactions work](https://www.starlingbank.com/blog/card-transactions-explained/).\n *\n * To check whether the account has enough money to make a payment, use the confirmation of funds endpoint instead.\n *\n * Required scopes (any): balance:read.\n *\n * @param {Starling.GetBalanceAccountsRequest} request\n * @param {AccountsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.accounts.getBalance({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getBalance(\n request: Starling.GetBalanceAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.BalanceV2> {\n return core.HttpResponsePromise.fromPromise(this.__getBalance(request, requestOptions));\n }\n\n private async __getBalance(\n request: Starling.GetBalanceAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.BalanceV2>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/accounts/${core.url.encodePathParam(accountUid)}/balance`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.BalanceV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/accounts/{accountUid}/balance\",\n );\n }\n\n /**\n * Identifiers come in pairs:\n *\n * * A bank identifier, which identifies the bank\n * * An account identifier, which identifiers the account at the bank\n *\n * Identifiers can be:\n * * Sort code and account number for domestic UK payments\n * * BIC and IBAN for international payments\n * * ABA and ACH routing numbers for domestic US payments\n *\n * Required scopes (any): account-identifier:read.\n *\n * @param {Starling.GetIdentifiersAccountsRequest} request\n * @param {AccountsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.accounts.getIdentifiers({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getIdentifiers(\n request: Starling.GetIdentifiersAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.AccountIdentifiers> {\n return core.HttpResponsePromise.fromPromise(this.__getIdentifiers(request, requestOptions));\n }\n\n private async __getIdentifiers(\n request: Starling.GetIdentifiersAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.AccountIdentifiers>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/accounts/${core.url.encodePathParam(accountUid)}/identifiers`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.AccountIdentifiers, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/accounts/{accountUid}/identifiers\",\n );\n }\n\n /**\n * This endpoint returns a list of the accounts that you can access using the access token you supplied in the request header.\n *\n * Each access token is associated with a single account holder, who may have more than one account (for example, a GBP account and a euro account). This endpoint returns all the accounts that the account holder has given you permission to access.\n *\n * Note that an account holder in this context is either a personal account holder, or a sole trader account holder, or a business account holder or a joint account holder. An individual person may be more than one of these kinds of account holder, but each kind of account holder is a separate entity and hence requires a separate access token and permission.\n *\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): account:read, account-list:read.\n *\n * @param {AccountsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.accounts.list()\n */\n public list(requestOptions?: AccountsClient.RequestOptions): core.HttpResponsePromise<Starling.Accounts> {\n return core.HttpResponsePromise.fromPromise(this.__list(requestOptions));\n }\n\n private async __list(\n requestOptions?: AccountsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Accounts>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/accounts\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Accounts, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/accounts\");\n }\n\n /**\n *\n *\n * Required scopes (any): confirmation-of-funds:read.\n *\n * @param {Starling.ConfirmFundsAccountsRequest} request\n * @param {AccountsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.accounts.confirmFunds({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * targetAmountInMinorUnits: 1000000\n * })\n */\n public confirmFunds(\n request: Starling.ConfirmFundsAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.ConfirmationOfFundsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__confirmFunds(request, requestOptions));\n }\n\n private async __confirmFunds(\n request: Starling.ConfirmFundsAccountsRequest,\n requestOptions?: AccountsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.ConfirmationOfFundsResponse>> {\n const { accountUid, targetAmountInMinorUnits } = request;\n const _queryParams: Record<string, unknown> = {\n targetAmountInMinorUnits,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/accounts/${core.url.encodePathParam(accountUid)}/confirmation-of-funds`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.ConfirmationOfFundsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/accounts/{accountUid}/confirmation-of-funds\",\n );\n }\n}\n","/**\n * Spreads caller-supplied `additionalBodyParameters` (from `requestOptions.additionalBodyParameters`)\n * on top of the request body. Caller-supplied properties win over the endpoint body. When no\n * additional body parameters are provided, the original body is returned unchanged so serialization\n * is unaffected.\n *\n * The merge only applies to plain-object (JSON object) bodies. When the body is `null`/`undefined`\n * the additional parameters become the body; when the body is an array or a primitive JSON value it\n * is returned unchanged, since object properties cannot be spread into it. This mirrors the Python\n * SDK, which only merges additional body parameters into mapping bodies.\n */\nexport function mergeAdditionalBodyParameters(\n body: unknown,\n additionalBodyParameters: Record<string, unknown> | undefined,\n): unknown {\n if (additionalBodyParameters == null) {\n return body;\n }\n if (body == null) {\n return { ...additionalBodyParameters };\n }\n if (typeof body === \"object\" && !Array.isArray(body)) {\n return { ...body, ...additionalBodyParameters };\n }\n return body;\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace AddressesClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class AddressesClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<AddressesClient.Options>;\n\n constructor(options: AddressesClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): address:read.\n *\n * @param {AddressesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.addresses.list()\n */\n public list(requestOptions?: AddressesClient.RequestOptions): core.HttpResponsePromise<Starling.AddressesV2> {\n return core.HttpResponsePromise.fromPromise(this.__list(requestOptions));\n }\n\n private async __list(\n requestOptions?: AddressesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.AddressesV2>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/addresses\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.AddressesV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/addresses\");\n }\n\n /**\n *\n *\n * Required scopes (any): address:edit. Requires request signing.\n *\n * @param {Starling.AddressUpdateRequest} request\n * @param {AddressesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.addresses.update({\n * line1: \"1A Admiralty Arch\",\n * postTown: \"London\",\n * postCode: \"SW1A 2WH\",\n * countryCode: \"GB\",\n * from: \"2023-01-01\"\n * })\n */\n public update(\n request: Starling.AddressUpdateRequest,\n requestOptions?: AddressesClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions));\n }\n\n private async __update(\n request: Starling.AddressUpdateRequest,\n requestOptions?: AddressesClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/addresses\",\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(request, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"POST\", \"/api/v2/addresses\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace BusinessClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class BusinessClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<BusinessClient.Options>;\n\n constructor(options: BusinessClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): account:read.\n *\n * @param {BusinessClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.business.get()\n */\n public get(requestOptions?: BusinessClient.RequestOptions): core.HttpResponsePromise<Starling.Business> {\n return core.HttpResponsePromise.fromPromise(this.__get(requestOptions));\n }\n\n private async __get(\n requestOptions?: BusinessClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Business>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/business\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Business, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account-holder/business\",\n );\n }\n\n /**\n * Will fallback to registered address if not available\n *\n * Required scopes (any): address:read.\n *\n * @param {BusinessClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.business.getCorrespondenceAddress()\n */\n public getCorrespondenceAddress(\n requestOptions?: BusinessClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.AddressV2> {\n return core.HttpResponsePromise.fromPromise(this.__getCorrespondenceAddress(requestOptions));\n }\n\n private async __getCorrespondenceAddress(\n requestOptions?: BusinessClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.AddressV2>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/business/correspondence-address\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.AddressV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account-holder/business/correspondence-address\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): address:read.\n *\n * @param {BusinessClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.business.getRegisteredAddress()\n */\n public getRegisteredAddress(\n requestOptions?: BusinessClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.AddressV2> {\n return core.HttpResponsePromise.fromPromise(this.__getRegisteredAddress(requestOptions));\n }\n\n private async __getRegisteredAddress(\n requestOptions?: BusinessClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.AddressV2>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/business/registered-address\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.AddressV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account-holder/business/registered-address\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace CardsClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class CardsClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<CardsClient.Options>;\n\n constructor(options: CardsClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetAtmEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setAtmEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setAtmEnabled(\n request: Starling.SetAtmEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setAtmEnabled(request, requestOptions));\n }\n\n private async __setAtmEnabled(\n request: Starling.SetAtmEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/atm-enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/atm-enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setEnabled(\n request: Starling.SetEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setEnabled(request, requestOptions));\n }\n\n private async __setEnabled(\n request: Starling.SetEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetCurrencySwitchEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setCurrencySwitchEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true,\n * currency: \"currency\"\n * })\n */\n public setCurrencySwitchEnabled(\n request: Starling.SetCurrencySwitchEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setCurrencySwitchEnabled(request, requestOptions));\n }\n\n private async __setCurrencySwitchEnabled(\n request: Starling.SetCurrencySwitchEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/currency-switch`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/currency-switch\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetGamblingEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setGamblingEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setGamblingEnabled(\n request: Starling.SetGamblingEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setGamblingEnabled(request, requestOptions));\n }\n\n private async __setGamblingEnabled(\n request: Starling.SetGamblingEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/gambling-enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/gambling-enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetMagStripeEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setMagStripeEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setMagStripeEnabled(\n request: Starling.SetMagStripeEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setMagStripeEnabled(request, requestOptions));\n }\n\n private async __setMagStripeEnabled(\n request: Starling.SetMagStripeEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/mag-stripe-enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/mag-stripe-enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetMobileWalletEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setMobileWalletEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setMobileWalletEnabled(\n request: Starling.SetMobileWalletEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setMobileWalletEnabled(request, requestOptions));\n }\n\n private async __setMobileWalletEnabled(\n request: Starling.SetMobileWalletEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/mobile-wallet-enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/mobile-wallet-enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetOnlineEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setOnlineEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setOnlineEnabled(\n request: Starling.SetOnlineEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setOnlineEnabled(request, requestOptions));\n }\n\n private async __setOnlineEnabled(\n request: Starling.SetOnlineEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/online-enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/online-enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card-control:edit.\n *\n * @param {Starling.SetPosEnabledCardsRequest} request\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.setPosEnabled({\n * cardUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * enabled: true\n * })\n */\n public setPosEnabled(\n request: Starling.SetPosEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setPosEnabled(request, requestOptions));\n }\n\n private async __setPosEnabled(\n request: Starling.SetPosEnabledCardsRequest,\n requestOptions?: CardsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { cardUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/cards/${core.url.encodePathParam(cardUid)}/controls/pos-enabled`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/cards/{cardUid}/controls/pos-enabled\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): card:read.\n *\n * @param {CardsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.cards.list()\n */\n public list(requestOptions?: CardsClient.RequestOptions): core.HttpResponsePromise<Starling.Cards> {\n return core.HttpResponsePromise.fromPromise(this.__list(requestOptions));\n }\n\n private async __list(requestOptions?: CardsClient.RequestOptions): Promise<core.WithRawResponse<Starling.Cards>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/cards\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Cards, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/cards\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace DirectDebitsClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class DirectDebitsClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<DirectDebitsClient.Options>;\n\n constructor(options: DirectDebitsClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): mandate:read.\n *\n * @param {Starling.GetDirectDebitsRequest} request\n * @param {DirectDebitsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.directDebits.get({\n * mandateUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public get(\n request: Starling.GetDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.DirectDebitMandateV2> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: Starling.GetDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.DirectDebitMandateV2>> {\n const { mandateUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/direct-debit/mandates/${core.url.encodePathParam(mandateUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.DirectDebitMandateV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/direct-debit/mandates/{mandateUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): mandate:delete.\n *\n * @param {Starling.CancelDirectDebitsRequest} request\n * @param {DirectDebitsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.directDebits.cancel({\n * mandateUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public cancel(\n request: Starling.CancelDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__cancel(request, requestOptions));\n }\n\n private async __cancel(\n request: Starling.CancelDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { mandateUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/direct-debit/mandates/${core.url.encodePathParam(mandateUid)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/direct-debit/mandates/{mandateUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): mandate:read.\n *\n * @param {DirectDebitsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.directDebits.list()\n */\n public list(\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.DirectDebitMandatesV2> {\n return core.HttpResponsePromise.fromPromise(this.__list(requestOptions));\n }\n\n private async __list(\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.DirectDebitMandatesV2>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/direct-debit/mandates\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.DirectDebitMandatesV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/direct-debit/mandates\");\n }\n\n /**\n *\n *\n * Required scopes (any): mandate:read.\n *\n * @param {Starling.ListForAccountDirectDebitsRequest} request\n * @param {DirectDebitsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.directDebits.listForAccount({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listForAccount(\n request: Starling.ListForAccountDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.DirectDebitMandatesV2> {\n return core.HttpResponsePromise.fromPromise(this.__listForAccount(request, requestOptions));\n }\n\n private async __listForAccount(\n request: Starling.ListForAccountDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.DirectDebitMandatesV2>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/direct-debit/mandates/account/${core.url.encodePathParam(accountUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.DirectDebitMandatesV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/direct-debit/mandates/account/{accountUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): mandate:read.\n *\n * @param {Starling.ListPaymentsDirectDebitsRequest} request\n * @param {DirectDebitsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.directDebits.listPayments({\n * mandateUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * since: \"2023-01-01\"\n * })\n */\n public listPayments(\n request: Starling.ListPaymentsDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.DirectDebitPaymentsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__listPayments(request, requestOptions));\n }\n\n private async __listPayments(\n request: Starling.ListPaymentsDirectDebitsRequest,\n requestOptions?: DirectDebitsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.DirectDebitPaymentsResponse>> {\n const { mandateUid, since } = request;\n const _queryParams: Record<string, unknown> = {\n since,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/direct-debit/mandates/${core.url.encodePathParam(mandateUid)}/payments`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.DirectDebitPaymentsResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/direct-debit/mandates/{mandateUid}/payments\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace FeedClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class FeedClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<FeedClient.Options>;\n\n constructor(options: FeedClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): attachment:read.\n *\n * @param {Starling.ListAttachmentsFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.listAttachments({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listAttachments(\n request: Starling.ListAttachmentsFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.FeedItemAttachments> {\n return core.HttpResponsePromise.fromPromise(this.__listAttachments(request, requestOptions));\n }\n\n private async __listAttachments(\n request: Starling.ListAttachmentsFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.FeedItemAttachments>> {\n const { accountUid, categoryUid, feedItemUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/attachments`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.FeedItemAttachments, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/attachments\",\n );\n }\n\n /**\n * Uploads raw attachment bytes. A 200 response contains the attachment UUID; an empty 202 response identifies it in the Location header. Use the raw response and getUploadedAttachmentUid (get_uploaded_attachment_uid in Python) to handle either form.\n *\n * Required scopes (any): attachment:write.\n *\n * @param {core.file.Uploadable} uploadable\n * @param {string} accountUid\n * @param {string} categoryUid\n * @param {string} feedItemUid\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n */\n public uploadAttachment(\n uploadable: core.file.Uploadable,\n accountUid: string,\n categoryUid: string,\n feedItemUid: string,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<string | null> {\n return core.HttpResponsePromise.fromPromise(\n this.__uploadAttachment(uploadable, accountUid, categoryUid, feedItemUid, requestOptions),\n );\n }\n\n private async __uploadAttachment(\n uploadable: core.file.Uploadable,\n accountUid: string,\n categoryUid: string,\n feedItemUid: string,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<string | null>> {\n const _binaryUploadRequest = await core.file.toBinaryUploadRequest(uploadable);\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n _binaryUploadRequest.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/attachments`,\n ),\n method: \"POST\",\n headers: _headers,\n contentType: \"application/octet-stream\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"bytes\",\n duplex: \"half\",\n body: _binaryUploadRequest.body,\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: (_response.body ?? null) as string | null, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"POST\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/attachments\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * The spending category is different. It specifies the type of spending associated with the transaction, for example, `GROCERIES`, `GIFTS` or `VAT`.\n *\n * Required scopes (any): transaction:edit.\n *\n * @param {Starling.UpdateSpendingCategory} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.setSpendingCategory({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * spendingCategory: \"BIKE\"\n * })\n */\n public setSpendingCategory(\n request: Starling.UpdateSpendingCategory,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setSpendingCategory(request, requestOptions));\n }\n\n private async __setSpendingCategory(\n request: Starling.UpdateSpendingCategory,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid, categoryUid, feedItemUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/spending-category`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/spending-category\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): receipt:read.\n *\n * @param {Starling.GetReceiptFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.getReceipt({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getReceipt(\n request: Starling.GetReceiptFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.Receipt> {\n return core.HttpResponsePromise.fromPromise(this.__getReceipt(request, requestOptions));\n }\n\n private async __getReceipt(\n request: Starling.GetReceiptFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Receipt>> {\n const { accountUid, categoryUid, feedItemUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/receipt`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Receipt, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/receipt\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): receipt:write, metadata:create, metadata:edit.\n *\n * @param {Starling.PutReceiptFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.putReceipt({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * metadataSource: \"CUSTOMER\",\n * receiptIdentifier: \"0987654321\",\n * totalAmount: 10.65,\n * receiptMerchant: {},\n * items: [{\n * description: \"Large Cappuccino\"\n * }],\n * paymentMethods: [{\n * description: \"Card Payment\",\n * amount: 14.99\n * }]\n * })\n */\n public putReceipt(\n request: Starling.PutReceiptFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.ReceiptCreationResponse> {\n return core.HttpResponsePromise.fromPromise(this.__putReceipt(request, requestOptions));\n }\n\n private async __putReceipt(\n request: Starling.PutReceiptFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.ReceiptCreationResponse>> {\n const { accountUid, categoryUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(_body.feedItemUid)}/receipt`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.ReceiptCreationResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/receipt\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): attachment:read.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n */\n public downloadAttachment(\n request: Starling.DownloadAttachmentFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<core.BinaryResponse> {\n return core.HttpResponsePromise.fromPromise(this.__downloadAttachment(request, requestOptions));\n }\n\n private async __downloadAttachment(\n request: Starling.DownloadAttachmentFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.BinaryResponse>> {\n const { accountUid, categoryUid, feedItemUid, feedItemAttachmentUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)<core.BinaryResponse>({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/attachments/${core.url.encodePathParam(feedItemAttachmentUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n responseType: \"binary-response\",\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/attachments/{feedItemAttachmentUid}\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): transaction:read.\n *\n * @param {Starling.GetFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.get({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public get(\n request: Starling.GetFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.FeedItem> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: Starling.GetFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.FeedItem>> {\n const { accountUid, categoryUid, feedItemUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.FeedItem, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): transaction:read.\n *\n * @param {Starling.GetMastercardDetailsFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.getMastercardDetails({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getMastercardDetails(\n request: Starling.GetMastercardDetailsFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.MastercardFeedItem> {\n return core.HttpResponsePromise.fromPromise(this.__getMastercardDetails(request, requestOptions));\n }\n\n private async __getMastercardDetails(\n request: Starling.GetMastercardDetailsFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.MastercardFeedItem>> {\n const { accountUid, categoryUid, feedItemUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/mastercard`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.MastercardFeedItem, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/mastercard\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): receipts:read.\n *\n * @param {Starling.ListReceiptsFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.listReceipts({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listReceipts(\n request: Starling.ListReceiptsFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.Receipt[]> {\n return core.HttpResponsePromise.fromPromise(this.__listReceipts(request, requestOptions));\n }\n\n private async __listReceipts(\n request: Starling.ListReceiptsFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Receipt[]>> {\n const { accountUid, categoryUid, feedItemUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/receipts`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Receipt[], rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/receipts\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * The `changesSince` date must be within 1 year of the current date-time. Requests with a `changesSince` value older than 1 year will return HTTP 400. For queries spanning more than 1 year, use the paginated-transactions endpoint instead.\n *\n * Required scopes (any): transaction:read.\n *\n * @param {Starling.ListChangesFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.listChanges({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * changesSince: \"2026-01-01T00:00:00Z\"\n * })\n */\n public listChanges(\n request: Starling.ListChangesFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.FeedItems> {\n return core.HttpResponsePromise.fromPromise(this.__listChanges(request, requestOptions));\n }\n\n private async __listChanges(\n request: Starling.ListChangesFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.FeedItems>> {\n const { accountUid, categoryUid, changesSince } = request;\n const _queryParams: Record<string, unknown> = {\n changesSince,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.FeedItems, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * The date range between `minTransactionTimestamp` and `maxTransactionTimestamp` must not exceed 1 year. Requests exceeding this limit will return HTTP 400. For queries spanning more than 1 year, use the paginated-transactions endpoint instead.\n *\n * Required scopes (any): transaction:read.\n *\n * @param {Starling.ListBetweenFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.listBetween({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * minTransactionTimestamp: \"2026-01-01T00:00:00Z\",\n * maxTransactionTimestamp: \"2026-06-16T00:00:00Z\"\n * })\n */\n public listBetween(\n request: Starling.ListBetweenFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.FeedItems> {\n return core.HttpResponsePromise.fromPromise(this.__listBetween(request, requestOptions));\n }\n\n private async __listBetween(\n request: Starling.ListBetweenFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.FeedItems>> {\n const { accountUid, categoryUid, minTransactionTimestamp, maxTransactionTimestamp } = request;\n const _queryParams: Record<string, unknown> = {\n minTransactionTimestamp,\n maxTransactionTimestamp,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/transactions-between`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.FeedItems, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/transactions-between\",\n );\n }\n\n /**\n * The date range between `minTransactionTimestamp` and `maxTransactionTimestamp` must not exceed 1 year. Requests exceeding this limit will return HTTP 400. For queries spanning more than 1 year, use the paginated-transactions endpoint instead.\n *\n * Required scopes (any): transaction:read.\n *\n * @param {Starling.ListSettledBetweenFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.listSettledBetween({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * minTransactionTimestamp: \"2026-01-01T00:00:00Z\",\n * maxTransactionTimestamp: \"2026-06-16T00:00:00Z\"\n * })\n */\n public listSettledBetween(\n request: Starling.ListSettledBetweenFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.FeedItems> {\n return core.HttpResponsePromise.fromPromise(this.__listSettledBetween(request, requestOptions));\n }\n\n private async __listSettledBetween(\n request: Starling.ListSettledBetweenFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.FeedItems>> {\n const { accountUid, minTransactionTimestamp, maxTransactionTimestamp } = request;\n const _queryParams: Record<string, unknown> = {\n minTransactionTimestamp,\n maxTransactionTimestamp,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/settled-transactions-between`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.FeedItems, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/settled-transactions-between\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * This endpoint supports date ranges greater than 1 year and is the recommended alternative when querying more than 1 year of transaction history. The non-paginated feed endpoints (transactions-between, settled-transactions-between, and changesSince) are limited to a 1-year date range and will return HTTP 400 if exceeded.\n *\n * Returns transactions in descending order (most recent first), sorted by the time they were added to the feed. Page size is fixed at 1000 transactions. Follow pagination links in the links object to navigate pages. All transaction statuses are returned; filter on the client side if you only need settled transactions.\n *\n * Required scopes (any): transaction:read.\n *\n * @param {Starling.ListPageFeedRequest} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.listPage({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * minTransactionTimestamp: \"2026-01-01T00:00:00Z\",\n * maxTransactionTimestamp: \"2026-06-16T00:00:00Z\",\n * cursor: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listPage(\n request: Starling.ListPageFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.PaginatedFeedItems> {\n return core.HttpResponsePromise.fromPromise(this.__listPage(request, requestOptions));\n }\n\n private async __listPage(\n request: Starling.ListPageFeedRequest,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.PaginatedFeedItems>> {\n const { accountUid, categoryUid, minTransactionTimestamp, maxTransactionTimestamp, cursor, pageToFetch } =\n request;\n const _queryParams: Record<string, unknown> = {\n minTransactionTimestamp,\n maxTransactionTimestamp,\n cursor,\n pageToFetch: pageToFetch != null ? pageToFetch : undefined,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/paginated-transactions`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.PaginatedFeedItems, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/paginated-transactions\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Required scopes (any): transaction:edit.\n *\n * @param {Starling.UserNoteWrapper} request\n * @param {FeedClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.feed.setNote({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * feedItemUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * userNote: \"Submitted for tax rebate\"\n * })\n */\n public setNote(\n request: Starling.UserNoteWrapper,\n requestOptions?: FeedClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__setNote(request, requestOptions));\n }\n\n private async __setNote(\n request: Starling.UserNoteWrapper,\n requestOptions?: FeedClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid, categoryUid, feedItemUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/${core.url.encodePathParam(feedItemUid)}/user-note`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/feed/account/{accountUid}/category/{categoryUid}/{feedItemUid}/user-note\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace IdentityClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class IdentityClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<IdentityClient.Options>;\n\n constructor(options: IdentityClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): authorising-individual:read.\n *\n * @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.identity.getIndividual()\n */\n public getIndividual(\n requestOptions?: IdentityClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.Individual> {\n return core.HttpResponsePromise.fromPromise(this.__getIndividual(requestOptions));\n }\n\n private async __getIndividual(\n requestOptions?: IdentityClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Individual>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/identity/individual\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Individual, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/identity/individual\");\n }\n\n /**\n * This endpoint returns the permissions you have access to, the time until the token expires and the account holder's unique identifier.\n *\n * Required scopes (any): none.\n *\n * @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.identity.getToken()\n */\n public getToken(requestOptions?: IdentityClient.RequestOptions): core.HttpResponsePromise<Starling.IdentityV2> {\n return core.HttpResponsePromise.fromPromise(this.__getToken(requestOptions));\n }\n\n private async __getToken(\n requestOptions?: IdentityClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.IdentityV2>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/identity/token\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.IdentityV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/identity/token\");\n }\n\n /**\n * This endpoint logs an individual out by disabling all of their active access tokens.\n *\n * Required scopes (any): none.\n *\n * @param {IdentityClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.identity.logout()\n */\n public logout(requestOptions?: IdentityClient.RequestOptions): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__logout(requestOptions));\n }\n\n private async __logout(requestOptions?: IdentityClient.RequestOptions): Promise<core.WithRawResponse<void>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/identity/logout\",\n ),\n method: \"PUT\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"PUT\", \"/api/v2/identity/logout\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace IndividualClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class IndividualClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<IndividualClient.Options>;\n\n constructor(options: IndividualClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): customer:read.\n *\n * @param {IndividualClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.individual.get()\n */\n public get(requestOptions?: IndividualClient.RequestOptions): core.HttpResponsePromise<Starling.Individual> {\n return core.HttpResponsePromise.fromPromise(this.__get(requestOptions));\n }\n\n private async __get(\n requestOptions?: IndividualClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Individual>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/individual\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Individual, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account-holder/individual\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): email:edit. Requires request signing.\n *\n * @param {Starling.UpdateEmailRequest} request\n * @param {IndividualClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.individual.updateEmail({\n * email: \"dave.bowman@example.com\"\n * })\n */\n public updateEmail(\n request: Starling.UpdateEmailRequest,\n requestOptions?: IndividualClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__updateEmail(request, requestOptions));\n }\n\n private async __updateEmail(\n request: Starling.UpdateEmailRequest,\n requestOptions?: IndividualClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/individual/email\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(request, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account-holder/individual/email\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace JointAccountClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class JointAccountClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<JointAccountClient.Options>;\n\n constructor(options: JointAccountClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): customer:read.\n *\n * @param {JointAccountClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.jointAccount.get()\n */\n public get(requestOptions?: JointAccountClient.RequestOptions): core.HttpResponsePromise<Starling.JointAccount> {\n return core.HttpResponsePromise.fromPromise(this.__get(requestOptions));\n }\n\n private async __get(\n requestOptions?: JointAccountClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.JointAccount>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/joint\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.JointAccount, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/account-holder/joint\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace PayeesClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class PayeesClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<PayeesClient.Options>;\n\n constructor(options: PayeesClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): payee:read.\n *\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.list()\n */\n public list(requestOptions?: PayeesClient.RequestOptions): core.HttpResponsePromise<Starling.Payees> {\n return core.HttpResponsePromise.fromPromise(this.__list(requestOptions));\n }\n\n private async __list(requestOptions?: PayeesClient.RequestOptions): Promise<core.WithRawResponse<Starling.Payees>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/payees\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Payees, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/payees\");\n }\n\n /**\n *\n *\n * Required scopes (any): payee:create.\n *\n * @param {Starling.PayeeCreationRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.create({\n * payeeName: \"Bob Bobbington\",\n * payeeType: \"BUSINESS\"\n * })\n */\n public create(\n request: Starling.PayeeCreationRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.PayeeCreationResponse> {\n return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));\n }\n\n private async __create(\n request: Starling.PayeeCreationRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.PayeeCreationResponse>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/payees\",\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(request, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.PayeeCreationResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"PUT\", \"/api/v2/payees\");\n }\n\n /**\n *\n *\n * Required scopes (any): payee:create.\n *\n * @param {Starling.AddAccountPayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.addAccount({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * description: \"Bob's business account\",\n * defaultAccount: true,\n * countryCode: \"GB\",\n * accountIdentifier: \"12345678\",\n * bankIdentifier: \"123456\",\n * bankIdentifierType: \"SORT_CODE\"\n * })\n */\n public addAccount(\n request: Starling.AddAccountPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.PayeeAccountCreationResponse> {\n return core.HttpResponsePromise.fromPromise(this.__addAccount(request, requestOptions));\n }\n\n private async __addAccount(\n request: Starling.AddAccountPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.PayeeAccountCreationResponse>> {\n const { payeeUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}/account`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.PayeeAccountCreationResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/payees/{payeeUid}/account\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): payee:read.\n *\n * @param {Starling.GetPayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.get({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public get(\n request: Starling.GetPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.Payee> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: Starling.GetPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Payee>> {\n const { payeeUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Payee, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/payees/{payeeUid}\");\n }\n\n /**\n *\n *\n * Required scopes (any): payee:edit.\n *\n * @param {Starling.UpdatePayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.update({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * payeeName: \"Bob Bobbington\",\n * payeeType: \"BUSINESS\"\n * })\n */\n public update(\n request: Starling.UpdatePayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.ConsentInformation> {\n return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions));\n }\n\n private async __update(\n request: Starling.UpdatePayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.ConsentInformation>> {\n const { payeeUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.ConsentInformation, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"PUT\", \"/api/v2/payees/{payeeUid}\");\n }\n\n /**\n *\n *\n * Required scopes (any): payee:delete.\n *\n * @param {Starling.DeletePayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.delete({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public delete(\n request: Starling.DeletePayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__delete(request, requestOptions));\n }\n\n private async __delete(\n request: Starling.DeletePayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { payeeUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"DELETE\", \"/api/v2/payees/{payeeUid}\");\n }\n\n /**\n *\n *\n * Required scopes (any): payee:delete.\n *\n * @param {Starling.DeleteAccountPayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.deleteAccount({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public deleteAccount(\n request: Starling.DeleteAccountPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__deleteAccount(request, requestOptions));\n }\n\n private async __deleteAccount(\n request: Starling.DeleteAccountPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { payeeUid, accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}/account/${core.url.encodePathParam(accountUid)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/payees/{payeeUid}/account/{accountUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): scheduled-payment:read.\n *\n * @param {Starling.ListScheduledPaymentsPayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.listScheduledPayments({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listScheduledPayments(\n request: Starling.ListScheduledPaymentsPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.ScheduledPaymentResponse> {\n return core.HttpResponsePromise.fromPromise(this.__listScheduledPayments(request, requestOptions));\n }\n\n private async __listScheduledPayments(\n request: Starling.ListScheduledPaymentsPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.ScheduledPaymentResponse>> {\n const { payeeUid, accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}/account/${core.url.encodePathParam(accountUid)}/scheduled-payments`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.ScheduledPaymentResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payees/{payeeUid}/account/{accountUid}/scheduled-payments\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): payee-transaction:read.\n *\n * @param {Starling.ListPaymentsPayeesRequest} request\n * @param {PayeesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payees.listPayments({\n * payeeUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * since: \"2023-01-01\"\n * })\n */\n public listPayments(\n request: Starling.ListPaymentsPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.Payments> {\n return core.HttpResponsePromise.fromPromise(this.__listPayments(request, requestOptions));\n }\n\n private async __listPayments(\n request: Starling.ListPaymentsPayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Payments>> {\n const { payeeUid, accountUid, since } = request;\n const _queryParams: Record<string, unknown> = {\n since,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}/account/${core.url.encodePathParam(accountUid)}/payments`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Payments, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payees/{payeeUid}/account/{accountUid}/payments\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): payee-image:read.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n */\n public downloadImage(\n request: Starling.DownloadImagePayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): core.HttpResponsePromise<core.BinaryResponse> {\n return core.HttpResponsePromise.fromPromise(this.__downloadImage(request, requestOptions));\n }\n\n private async __downloadImage(\n request: Starling.DownloadImagePayeesRequest,\n requestOptions?: PayeesClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.BinaryResponse>> {\n const { payeeUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)<core.BinaryResponse>({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payees/${core.url.encodePathParam(payeeUid)}/image`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n responseType: \"binary-response\",\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payees/{payeeUid}/image\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace PaymentsClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class PaymentsClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<PaymentsClient.Options>;\n\n constructor(options: PaymentsClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * If `startDate` is null, the standing order is awaiting review and has not yet been approved.\n *\n * If `cancelledAt` is non-null, the standing order has been cancelled, either by the customer, or as a result of the payment review.\n *\n * Required scopes (any): standing-order:read, standing-order-own:read.\n *\n * @param {Starling.GetStandingOrderPaymentsRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.getStandingOrder({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getStandingOrder(\n request: Starling.GetStandingOrderPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.StandingOrder> {\n return core.HttpResponsePromise.fromPromise(this.__getStandingOrder(request, requestOptions));\n }\n\n private async __getStandingOrder(\n request: Starling.GetStandingOrderPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.StandingOrder>> {\n const { accountUid, categoryUid, paymentOrderUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/standing-orders/${core.url.encodePathParam(paymentOrderUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.StandingOrder, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Possible 400 (Bad Request) errors include:\n * * `CANNOT_MAKE_REQUESTED_CHANGE`: you cannot make this change to this standing order. You can create a new standing order instead.\n * * `CANNOT_UPDATE_CANCELLED_PAYMENT_ORDER`: you cannot update this standing order because it has been cancelled.\n * * `CANNOT_UPDATE_PENDING_PAYMENT_ORDER`: you cannot update this standing order at this time because it is pending. This can happen if the original standing order is awaiting review. In this case, `GET /api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}` will return a null `startDate`.\n *\n * Required scopes (any): standing-order:create. Requires request signing.\n *\n * @param {Starling.UpdateStandingOrderRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.updateStandingOrder({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUidPathParam: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUid: \"33443344-3344-3344-3344-334433443344\",\n * reference: \"Payment reference\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * },\n * standingOrderRecurrence: {\n * startDate: \"2019-09-23\",\n * frequency: \"DAILY\"\n * }\n * })\n */\n public updateStandingOrder(\n request: Starling.UpdateStandingOrderRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.UpdateStandingOrderResponse> {\n return core.HttpResponsePromise.fromPromise(this.__updateStandingOrder(request, requestOptions));\n }\n\n private async __updateStandingOrder(\n request: Starling.UpdateStandingOrderRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.UpdateStandingOrderResponse>> {\n const { accountUid, categoryUid, paymentOrderUidPathParam, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/standing-orders/${core.url.encodePathParam(paymentOrderUidPathParam)}`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.UpdateStandingOrderResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUidPathParam}\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Possible 400 (Bad Request) errors include:\n * * `CANNOT_CANCEL_PENDING_PAYMENT_ORDER`: you cannot cancel this standing order at this time because it is pending. This can happen if the original standing order is awaiting review. In this case, `GET /api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}` returns a null `startDate`.\n *\n * Required scopes (any): standing-order:delete. Requires request signing.\n *\n * @param {Starling.CancelStandingOrderPaymentsRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.cancelStandingOrder({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public cancelStandingOrder(\n request: Starling.CancelStandingOrderPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__cancelStandingOrder(request, requestOptions));\n }\n\n private async __cancelStandingOrder(\n request: Starling.CancelStandingOrderPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid, categoryUid, paymentOrderUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/standing-orders/${core.url.encodePathParam(paymentOrderUid)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * Standing orders that are awaiting review are omitted from the list.\n *\n * Required scopes (any): standing-order:read, standing-order-own:read.\n *\n * @param {Starling.ListStandingOrdersPaymentsRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.listStandingOrders({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listStandingOrders(\n request: Starling.ListStandingOrdersPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.StandingOrdersResponse> {\n return core.HttpResponsePromise.fromPromise(this.__listStandingOrders(request, requestOptions));\n }\n\n private async __listStandingOrders(\n request: Starling.ListStandingOrdersPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.StandingOrdersResponse>> {\n const { accountUid, categoryUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/standing-orders`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.StandingOrdersResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * The recipient of the standing order must either be defined in the `paymentRecipient` field in the request body or be an existing payee of the account holder (you can create a new payee using `/api/v2/payees`).\n *\n * `externalIdentifier` is a unique identifier for the standing order request, and is generated by you. To ensure idempotency, this must be unique for each standing order request you create.\n *\n * Note that the standing order may not be created immediately if we need to review the request. In that case, the request may remain in a `PENDING` state for a while (possibly for a few hours).\n *\n * Required scopes (any): standing-order:create. Requires request signing.\n *\n * @param {Starling.CreateStandingOrderRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.createStandingOrder({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * externalIdentifier: \"a unique identifier to ensure idempotency\",\n * reference: \"Monthly Expenses\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * },\n * standingOrderRecurrence: {\n * startDate: \"2019-09-23\",\n * frequency: \"DAILY\"\n * }\n * })\n */\n public createStandingOrder(\n request: Starling.CreateStandingOrderRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.CreateStandingOrderResponse> {\n return core.HttpResponsePromise.fromPromise(this.__createStandingOrder(request, requestOptions));\n }\n\n private async __createStandingOrder(\n request: Starling.CreateStandingOrderRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.CreateStandingOrderResponse>> {\n const { accountUid, categoryUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/standing-orders`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.CreateStandingOrderResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): pay-local:read.\n *\n * @param {Starling.GetOrderPaymentsRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.getOrder({\n * paymentOrderUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getOrder(\n request: Starling.GetOrderPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.PaymentOrderV2> {\n return core.HttpResponsePromise.fromPromise(this.__getOrder(request, requestOptions));\n }\n\n private async __getOrder(\n request: Starling.GetOrderPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.PaymentOrderV2>> {\n const { paymentOrderUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/payment-order/${core.url.encodePathParam(paymentOrderUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.PaymentOrderV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payments/local/payment-order/{paymentOrderUid}\",\n );\n }\n\n /**\n * Note that a payment associated with a payment order may be pending (`paymentStatusDetails.paymentStatus = PENDING`) or rejected (`paymentStatusDetails.paymentStatus = REJECTED`).\n *\n * Required scopes (any): pay-local:read.\n *\n * @param {Starling.ListOrderPaymentsPaymentsRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.listOrderPayments({\n * paymentOrderUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listOrderPayments(\n request: Starling.ListOrderPaymentsPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.PaymentOrderPaymentsResponse> {\n return core.HttpResponsePromise.fromPromise(this.__listOrderPayments(request, requestOptions));\n }\n\n private async __listOrderPayments(\n request: Starling.ListOrderPaymentsPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.PaymentOrderPaymentsResponse>> {\n const { paymentOrderUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/payment-order/${core.url.encodePathParam(paymentOrderUid)}/payments`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.PaymentOrderPaymentsResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payments/local/payment-order/{paymentOrderUid}/payments\",\n );\n }\n\n /**\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * If you only want the next payment date, you can also get this from the `nextDate` returned by `GET /api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}`.\n *\n * If `nextPaymentDates` is empty for a standing order, the standing order may be awaiting review, or may have been cancelled. Or it may have been a one-off standing order: in this case, `nextDate` will be null too.\n *\n * Required scopes (any): standing-order:read.\n *\n * @param {Starling.ListUpcomingDatesPaymentsRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.listUpcomingDates({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * paymentOrderUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public listUpcomingDates(\n request: Starling.ListUpcomingDatesPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.NextPaymentDatesResponse> {\n return core.HttpResponsePromise.fromPromise(this.__listUpcomingDates(request, requestOptions));\n }\n\n private async __listUpcomingDates(\n request: Starling.ListUpcomingDatesPaymentsRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.NextPaymentDatesResponse>> {\n const { accountUid, categoryUid, paymentOrderUid, count } = request;\n const _queryParams: Record<string, unknown> = {\n count,\n };\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}/standing-orders/${core.url.encodePathParam(paymentOrderUid)}/upcoming-payments`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url\n .queryBuilder()\n .addMany(_queryParams)\n .mergeAdditional(requestOptions?.queryParams)\n .build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.NextPaymentDatesResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}/upcoming-payments\",\n );\n }\n\n /**\n * Creates and sends an immediate payment within the UK under the Faster Payments Scheme or via SEPA for payments between Euro accounts.\n *\n * Categories are subdivisions of an account.\n * The default category holds the main balance and transactions. Savings goals and spending spaces are examples of other categories. You can use [`/api/v2/accounts`](#operations-tag-Accounts) to get the default category UID for an account.\n *\n * The recipient of the payment must either be defined in the `paymentRecipient` field in the request body or be an existing payee of the account holder (you can create a new payee using `/api/v2/payees`).For payments made using a Personal Access Token, the recipient must be an existing payee defined in the `destinationPayeeAccountUid` field.\n *\n * `externalIdentifier` is a unique identifier for the payment request, and is generated by you. To ensure idempotency, this must be unique for each payment request you create.\n *\n * Note that the payment may not take place immediately if we need to review the payment request. In that case, the payment may remain in a `PENDING` state for a while (possibly for a few hours).\n *\n * Required scopes (any): pay-local:create, pay-local-once:create. Requires request signing.\n *\n * @param {Starling.InstructLocalPaymentRequest} request\n * @param {PaymentsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.payments.create({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * categoryUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * externalIdentifier: \"Unique identifier to ensure idempotency\",\n * reference: \"December Expenses\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * }\n * })\n */\n public create(\n request: Starling.InstructLocalPaymentRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.InstructLocalPaymentResponse> {\n return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));\n }\n\n private async __create(\n request: Starling.InstructLocalPaymentRequest,\n requestOptions?: PaymentsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.InstructLocalPaymentResponse>> {\n const { accountUid, categoryUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/payments/local/account/${core.url.encodePathParam(accountUid)}/category/${core.url.encodePathParam(categoryUid)}`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.InstructLocalPaymentResponse,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace ProfileImageClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class ProfileImageClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<ProfileImageClient.Options>;\n\n constructor(options: ProfileImageClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): profile-image:read.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n */\n public download(\n request: Starling.DownloadProfileImageRequest,\n requestOptions?: ProfileImageClient.RequestOptions,\n ): core.HttpResponsePromise<core.BinaryResponse> {\n return core.HttpResponsePromise.fromPromise(this.__download(request, requestOptions));\n }\n\n private async __download(\n request: Starling.DownloadProfileImageRequest,\n requestOptions?: ProfileImageClient.RequestOptions,\n ): Promise<core.WithRawResponse<core.BinaryResponse>> {\n const { accountHolderUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)<core.BinaryResponse>({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account-holder/${core.url.encodePathParam(accountHolderUid)}/profile-image`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n responseType: \"binary-response\",\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account-holder/{accountHolderUid}/profile-image\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): profile-image:edit.\n *\n * @param {core.file.Uploadable} uploadable\n * @param {string} accountHolderUid\n * @param {ProfileImageClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n */\n public update(\n uploadable: core.file.Uploadable,\n accountHolderUid: string,\n requestOptions?: ProfileImageClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__update(uploadable, accountHolderUid, requestOptions));\n }\n\n private async __update(\n uploadable: core.file.Uploadable,\n accountHolderUid: string,\n requestOptions?: ProfileImageClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const _binaryUploadRequest = await core.file.toBinaryUploadRequest(uploadable);\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n _binaryUploadRequest.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account-holder/${core.url.encodePathParam(accountHolderUid)}/profile-image`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"image/*\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"bytes\",\n duplex: \"half\",\n body: _binaryUploadRequest.body,\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account-holder/{accountHolderUid}/profile-image\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): profile-image:edit.\n *\n * @param {Starling.DeleteProfileImageRequest} request\n * @param {ProfileImageClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.profileImage.delete({\n * accountHolderUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public delete(\n request: Starling.DeleteProfileImageRequest,\n requestOptions?: ProfileImageClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__delete(request, requestOptions));\n }\n\n private async __delete(\n request: Starling.DeleteProfileImageRequest,\n requestOptions?: ProfileImageClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountHolderUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account-holder/${core.url.encodePathParam(accountHolderUid)}/profile-image`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/account-holder/{accountHolderUid}/profile-image\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace RoundUpClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class RoundUpClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<RoundUpClient.Options>;\n\n constructor(options: RoundUpClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:read.\n *\n * @param {Starling.GetRoundUpRequest} request\n * @param {RoundUpClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.roundUp.get({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public get(\n request: Starling.GetRoundUpRequest,\n requestOptions?: RoundUpClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.RoundUpGoalResponse> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: Starling.GetRoundUpRequest,\n requestOptions?: RoundUpClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.RoundUpGoalResponse>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/round-up`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.RoundUpGoalResponse, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/feed/account/{accountUid}/round-up\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:create.\n *\n * @param {Starling.RoundUpGoalPayload} request\n * @param {RoundUpClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.roundUp.set({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * roundUpGoalUid: \"77887788-7788-7788-7788-778877887788\",\n * roundUpMultiplier: 2\n * })\n */\n public set(\n request: Starling.RoundUpGoalPayload,\n requestOptions?: RoundUpClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__set(request, requestOptions));\n }\n\n private async __set(\n request: Starling.RoundUpGoalPayload,\n requestOptions?: RoundUpClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/round-up`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/feed/account/{accountUid}/round-up\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:delete.\n *\n * @param {Starling.DeleteRoundUpRequest} request\n * @param {RoundUpClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.roundUp.delete({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public delete(\n request: Starling.DeleteRoundUpRequest,\n requestOptions?: RoundUpClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__delete(request, requestOptions));\n }\n\n private async __delete(\n request: Starling.DeleteRoundUpRequest,\n requestOptions?: RoundUpClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/feed/account/${core.url.encodePathParam(accountUid)}/round-up`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/feed/account/{accountUid}/round-up\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport { mergeAdditionalBodyParameters } from \"../../../../core/requestBody.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace SavingsGoalsClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SavingsGoalsClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<SavingsGoalsClient.Options>;\n\n constructor(options: SavingsGoalsClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal-transfer:create.\n *\n * @param {Starling.TopUpRequestV2} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.addMoney({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * transferUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * }\n * })\n */\n public addMoney(\n request: Starling.TopUpRequestV2,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SavingsGoalTransferResponseV2> {\n return core.HttpResponsePromise.fromPromise(this.__addMoney(request, requestOptions));\n }\n\n private async __addMoney(\n request: Starling.TopUpRequestV2,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SavingsGoalTransferResponseV2>> {\n const { accountUid, savingsGoalUid, transferUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}/add-money/${core.url.encodePathParam(transferUid)}`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.SavingsGoalTransferResponseV2,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}/add-money/{transferUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal-transfer:read.\n *\n * @param {Starling.GetRecurringTransferSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.getRecurringTransfer({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getRecurringTransfer(\n request: Starling.GetRecurringTransferSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.ScheduledSavingsPaymentV2> {\n return core.HttpResponsePromise.fromPromise(this.__getRecurringTransfer(request, requestOptions));\n }\n\n private async __getRecurringTransfer(\n request: Starling.GetRecurringTransferSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.ScheduledSavingsPaymentV2>> {\n const { accountUid, savingsGoalUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}/recurring-transfer`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.ScheduledSavingsPaymentV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}/recurring-transfer\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal-transfer:create.\n *\n * @param {Starling.ScheduledSavingsPaymentRequestV2} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.setRecurringTransfer({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * recurrenceRule: {\n * startDate: \"2023-01-01\",\n * frequency: \"DAILY\"\n * },\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * }\n * })\n */\n public setRecurringTransfer(\n request: Starling.ScheduledSavingsPaymentRequestV2,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SavingsGoalTransferResponseV2> {\n return core.HttpResponsePromise.fromPromise(this.__setRecurringTransfer(request, requestOptions));\n }\n\n private async __setRecurringTransfer(\n request: Starling.ScheduledSavingsPaymentRequestV2,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SavingsGoalTransferResponseV2>> {\n const { accountUid, savingsGoalUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}/recurring-transfer`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.SavingsGoalTransferResponseV2,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}/recurring-transfer\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal-transfer:delete.\n *\n * @param {Starling.DeleteRecurringTransferSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.deleteRecurringTransfer({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public deleteRecurringTransfer(\n request: Starling.DeleteRecurringTransferSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__deleteRecurringTransfer(request, requestOptions));\n }\n\n private async __deleteRecurringTransfer(\n request: Starling.DeleteRecurringTransferSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid, savingsGoalUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}/recurring-transfer`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}/recurring-transfer\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:read.\n *\n * @param {Starling.ListSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.list({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public list(\n request: Starling.ListSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SavingsGoalsV2> {\n return core.HttpResponsePromise.fromPromise(this.__list(request, requestOptions));\n }\n\n private async __list(\n request: Starling.ListSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SavingsGoalsV2>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SavingsGoalsV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/savings-goals\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:create.\n *\n * @param {Starling.CreateSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.create({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * name: \"Trip to Paris\",\n * currency: \"GBP\"\n * })\n */\n public create(\n request: Starling.CreateSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.CreateOrUpdateSavingsGoalResponseV2> {\n return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));\n }\n\n private async __create(\n request: Starling.CreateSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.CreateOrUpdateSavingsGoalResponseV2>> {\n const { accountUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.CreateOrUpdateSavingsGoalResponseV2,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account/{accountUid}/savings-goals\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:read.\n *\n * @param {Starling.GetSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.get({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public get(\n request: Starling.GetSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SavingsGoalV2> {\n return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));\n }\n\n private async __get(\n request: Starling.GetSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SavingsGoalV2>> {\n const { accountUid, savingsGoalUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SavingsGoalV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:create.\n *\n * @param {Starling.UpdateSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.update({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * name: \"Trip to Paris\",\n * currency: \"GBP\"\n * })\n */\n public update(\n request: Starling.UpdateSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.CreateOrUpdateSavingsGoalResponseV2> {\n return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions));\n }\n\n private async __update(\n request: Starling.UpdateSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.CreateOrUpdateSavingsGoalResponseV2>> {\n const { accountUid, savingsGoalUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.CreateOrUpdateSavingsGoalResponseV2,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:delete.\n *\n * @param {Starling.DeleteSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.delete({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public delete(\n request: Starling.DeleteSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<void> {\n return core.HttpResponsePromise.fromPromise(this.__delete(request, requestOptions));\n }\n\n private async __delete(\n request: Starling.DeleteSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<void>> {\n const { accountUid, savingsGoalUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}`,\n ),\n method: \"DELETE\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: undefined, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"DELETE\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal:read.\n *\n * @param {Starling.DownloadPhotoSavingsGoalsRequest} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.downloadPhoto({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public downloadPhoto(\n request: Starling.DownloadPhotoSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SavingsGoalPhotoV2> {\n return core.HttpResponsePromise.fromPromise(this.__downloadPhoto(request, requestOptions));\n }\n\n private async __downloadPhoto(\n request: Starling.DownloadPhotoSavingsGoalsRequest,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SavingsGoalPhotoV2>> {\n const { accountUid, savingsGoalUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}/photo`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SavingsGoalPhotoV2, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}/photo\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): savings-goal-transfer:create.\n *\n * @param {Starling.WithdrawalRequestV2} request\n * @param {SavingsGoalsClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.savingsGoals.withdrawMoney({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * savingsGoalUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * transferUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * amount: {\n * currency: \"GBP\",\n * minorUnits: 123456\n * }\n * })\n */\n public withdrawMoney(\n request: Starling.WithdrawalRequestV2,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SavingsGoalTransferResponseV2> {\n return core.HttpResponsePromise.fromPromise(this.__withdrawMoney(request, requestOptions));\n }\n\n private async __withdrawMoney(\n request: Starling.WithdrawalRequestV2,\n requestOptions?: SavingsGoalsClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SavingsGoalTransferResponseV2>> {\n const { accountUid, savingsGoalUid, transferUid, ..._body } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/savings-goals/${core.url.encodePathParam(savingsGoalUid)}/withdraw-money/${core.url.encodePathParam(transferUid)}`,\n ),\n method: \"PUT\",\n headers: _headers,\n contentType: \"application/json\",\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n requestType: \"json\",\n body: mergeAdditionalBodyParameters(_body, requestOptions?.additionalBodyParameters),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: 0,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return {\n data: _response.body as Starling.SavingsGoalTransferResponseV2,\n rawResponse: _response.rawResponse,\n };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"PUT\",\n \"/api/v2/account/{accountUid}/savings-goals/{savingsGoalUid}/withdraw-money/{transferUid}\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace SettleUpClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SettleUpClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<SettleUpClient.Options>;\n\n constructor(options: SettleUpClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): settle-up:read.\n *\n * @param {SettleUpClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.settleUp.get()\n */\n public get(requestOptions?: SettleUpClient.RequestOptions): core.HttpResponsePromise<Starling.SettleUpProfile> {\n return core.HttpResponsePromise.fromPromise(this.__get(requestOptions));\n }\n\n private async __get(\n requestOptions?: SettleUpClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SettleUpProfile>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/settle-up/profile\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SettleUpProfile, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(_response.error, _response.rawResponse, \"GET\", \"/api/v2/settle-up/profile\");\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace SoleTraderClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SoleTraderClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<SoleTraderClient.Options>;\n\n constructor(options: SoleTraderClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): account:read.\n *\n * @param {SoleTraderClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.soleTrader.get()\n */\n public get(requestOptions?: SoleTraderClient.RequestOptions): core.HttpResponsePromise<Starling.SoleTrader> {\n return core.HttpResponsePromise.fromPromise(this.__get(requestOptions));\n }\n\n private async __get(\n requestOptions?: SoleTraderClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SoleTrader>> {\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n \"api/v2/account-holder/sole-trader\",\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SoleTrader, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account-holder/sole-trader\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport type { BaseClientOptions, BaseRequestOptions } from \"../../../../BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"../../../../BaseClient.js\";\nimport { mergeHeaders } from \"../../../../core/headers.js\";\nimport * as core from \"../../../../core/index.js\";\nimport * as environments from \"../../../../environments.js\";\nimport { handleNonStatusCodeError } from \"../../../../errors/handleNonStatusCodeError.js\";\nimport * as errors from \"../../../../errors/index.js\";\nimport type * as Starling from \"../../../index.js\";\n\nexport declare namespace SpacesClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class SpacesClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<SpacesClient.Options>;\n\n constructor(options: SpacesClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n /**\n *\n *\n * Required scopes (any): space:read.\n *\n * @param {Starling.DownloadPhotoSpacesRequest} request\n * @param {SpacesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.spaces.downloadPhoto({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * spaceUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public downloadPhoto(\n request: Starling.DownloadPhotoSpacesRequest,\n requestOptions?: SpacesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SpacePhoto> {\n return core.HttpResponsePromise.fromPromise(this.__downloadPhoto(request, requestOptions));\n }\n\n private async __downloadPhoto(\n request: Starling.DownloadPhotoSpacesRequest,\n requestOptions?: SpacesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SpacePhoto>> {\n const { accountUid, spaceUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/spaces/${core.url.encodePathParam(spaceUid)}/photo`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SpacePhoto, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/spaces/{spaceUid}/photo\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): space:read.\n *\n * @param {Starling.ListSpacesRequest} request\n * @param {SpacesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.spaces.list({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public list(\n request: Starling.ListSpacesRequest,\n requestOptions?: SpacesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.Spaces> {\n return core.HttpResponsePromise.fromPromise(this.__list(request, requestOptions));\n }\n\n private async __list(\n request: Starling.ListSpacesRequest,\n requestOptions?: SpacesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.Spaces>> {\n const { accountUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/spaces`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.Spaces, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/spaces\",\n );\n }\n\n /**\n *\n *\n * Required scopes (any): space:read.\n *\n * @param {Starling.GetSpendingSpaceSpacesRequest} request\n * @param {SpacesClient.RequestOptions} requestOptions - Request-specific configuration.\n *\n * @throws {@link errors.StarlingError}\n * @throws {@link errors.StarlingTimeoutError}\n *\n * @example\n * await client.spaces.getSpendingSpace({\n * accountUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\",\n * spaceUid: \"aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa\"\n * })\n */\n public getSpendingSpace(\n request: Starling.GetSpendingSpaceSpacesRequest,\n requestOptions?: SpacesClient.RequestOptions,\n ): core.HttpResponsePromise<Starling.SpendingSpace> {\n return core.HttpResponsePromise.fromPromise(this.__getSpendingSpace(request, requestOptions));\n }\n\n private async __getSpendingSpace(\n request: Starling.GetSpendingSpaceSpacesRequest,\n requestOptions?: SpacesClient.RequestOptions,\n ): Promise<core.WithRawResponse<Starling.SpendingSpace>> {\n const { accountUid, spaceUid } = request;\n const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();\n const _headers: core.Fetcher.Args[\"headers\"] = mergeHeaders(\n _authRequest.headers,\n this._options?.headers,\n requestOptions?.headers,\n );\n const _response = await (this._options.fetcher ?? core.fetcher)({\n url: core.url.join(\n (await core.Supplier.get(this._options.baseUrl)) ??\n (await core.Supplier.get(this._options.environment)) ??\n environments.StarlingEnvironment.Sandbox,\n `api/v2/account/${core.url.encodePathParam(accountUid)}/spaces/spending/${core.url.encodePathParam(spaceUid)}`,\n ),\n method: \"GET\",\n headers: _headers,\n queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),\n timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,\n maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n fetchFn: this._options?.fetch,\n logging: this._options.logging,\n });\n if (_response.ok) {\n return { data: _response.body as Starling.SpendingSpace, rawResponse: _response.rawResponse };\n }\n\n if (_response.error.reason === \"status-code\") {\n throw new errors.StarlingError({\n statusCode: _response.error.statusCode,\n body: _response.error.body,\n rawResponse: _response.rawResponse,\n });\n }\n\n return handleNonStatusCodeError(\n _response.error,\n _response.rawResponse,\n \"GET\",\n \"/api/v2/account/{accountUid}/spaces/spending/{spaceUid}\",\n );\n }\n}\n","// This file was auto-generated by Fern from our API Definition.\n\nimport { AccountHolderClient } from \"./api/resources/accountHolder/client/Client.js\";\nimport { AccountsClient } from \"./api/resources/accounts/client/Client.js\";\nimport { AddressesClient } from \"./api/resources/addresses/client/Client.js\";\nimport { BusinessClient } from \"./api/resources/business/client/Client.js\";\nimport { CardsClient } from \"./api/resources/cards/client/Client.js\";\nimport { DirectDebitsClient } from \"./api/resources/directDebits/client/Client.js\";\nimport { FeedClient } from \"./api/resources/feed/client/Client.js\";\nimport { IdentityClient } from \"./api/resources/identity/client/Client.js\";\nimport { IndividualClient } from \"./api/resources/individual/client/Client.js\";\nimport { JointAccountClient } from \"./api/resources/jointAccount/client/Client.js\";\nimport { PayeesClient } from \"./api/resources/payees/client/Client.js\";\nimport { PaymentsClient } from \"./api/resources/payments/client/Client.js\";\nimport { ProfileImageClient } from \"./api/resources/profileImage/client/Client.js\";\nimport { RoundUpClient } from \"./api/resources/roundUp/client/Client.js\";\nimport { SavingsGoalsClient } from \"./api/resources/savingsGoals/client/Client.js\";\nimport { SettleUpClient } from \"./api/resources/settleUp/client/Client.js\";\nimport { SoleTraderClient } from \"./api/resources/soleTrader/client/Client.js\";\nimport { SpacesClient } from \"./api/resources/spaces/client/Client.js\";\nimport type { BaseClientOptions, BaseRequestOptions } from \"./BaseClient.js\";\nimport { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from \"./BaseClient.js\";\nimport * as core from \"./core/index.js\";\n\nexport declare namespace StarlingClient {\n export type Options = BaseClientOptions;\n\n export interface RequestOptions extends BaseRequestOptions {}\n}\n\nexport class StarlingClient {\n protected readonly _options: NormalizedClientOptionsWithAuth<StarlingClient.Options>;\n protected _accounts: AccountsClient | undefined;\n protected _business: BusinessClient | undefined;\n protected _individual: IndividualClient | undefined;\n protected _jointAccount: JointAccountClient | undefined;\n protected _soleTrader: SoleTraderClient | undefined;\n protected _accountHolder: AccountHolderClient | undefined;\n protected _profileImage: ProfileImageClient | undefined;\n protected _addresses: AddressesClient | undefined;\n protected _cards: CardsClient | undefined;\n protected _directDebits: DirectDebitsClient | undefined;\n protected _feed: FeedClient | undefined;\n protected _roundUp: RoundUpClient | undefined;\n protected _identity: IdentityClient | undefined;\n protected _payments: PaymentsClient | undefined;\n protected _payees: PayeesClient | undefined;\n protected _savingsGoals: SavingsGoalsClient | undefined;\n protected _settleUp: SettleUpClient | undefined;\n protected _spaces: SpacesClient | undefined;\n\n constructor(options: StarlingClient.Options = {}) {\n this._options = normalizeClientOptionsWithAuth(options);\n }\n\n public get accounts(): AccountsClient {\n return (this._accounts ??= new AccountsClient(this._options));\n }\n\n public get business(): BusinessClient {\n return (this._business ??= new BusinessClient(this._options));\n }\n\n public get individual(): IndividualClient {\n return (this._individual ??= new IndividualClient(this._options));\n }\n\n public get jointAccount(): JointAccountClient {\n return (this._jointAccount ??= new JointAccountClient(this._options));\n }\n\n public get soleTrader(): SoleTraderClient {\n return (this._soleTrader ??= new SoleTraderClient(this._options));\n }\n\n public get accountHolder(): AccountHolderClient {\n return (this._accountHolder ??= new AccountHolderClient(this._options));\n }\n\n public get profileImage(): ProfileImageClient {\n return (this._profileImage ??= new ProfileImageClient(this._options));\n }\n\n public get addresses(): AddressesClient {\n return (this._addresses ??= new AddressesClient(this._options));\n }\n\n public get cards(): CardsClient {\n return (this._cards ??= new CardsClient(this._options));\n }\n\n public get directDebits(): DirectDebitsClient {\n return (this._directDebits ??= new DirectDebitsClient(this._options));\n }\n\n public get feed(): FeedClient {\n return (this._feed ??= new FeedClient(this._options));\n }\n\n public get roundUp(): RoundUpClient {\n return (this._roundUp ??= new RoundUpClient(this._options));\n }\n\n public get identity(): IdentityClient {\n return (this._identity ??= new IdentityClient(this._options));\n }\n\n public get payments(): PaymentsClient {\n return (this._payments ??= new PaymentsClient(this._options));\n }\n\n public get payees(): PayeesClient {\n return (this._payees ??= new PayeesClient(this._options));\n }\n\n public get savingsGoals(): SavingsGoalsClient {\n return (this._savingsGoals ??= new SavingsGoalsClient(this._options));\n }\n\n public get settleUp(): SettleUpClient {\n return (this._settleUp ??= new SettleUpClient(this._options));\n }\n\n public get spaces(): SpacesClient {\n return (this._spaces ??= new SpacesClient(this._options));\n }\n\n /**\n * Make a passthrough request using the SDK's configured auth, retry, logging, etc.\n * This is useful for making requests to endpoints not yet supported in the SDK.\n * The input can be a URL string, URL object, or Request object. Relative paths are resolved against the configured base URL.\n *\n * @param {Request | string | URL} input - The URL, path, or Request object.\n * @param {RequestInit} init - Standard fetch RequestInit options.\n * @param {core.PassthroughRequest.RequestOptions} requestOptions - Per-request overrides (timeout, retries, headers, abort signal).\n * @returns {Promise<Response>} A standard Response object.\n */\n public async fetch(\n input: Request | string | URL,\n init?: RequestInit,\n requestOptions?: core.PassthroughRequest.RequestOptions,\n ): Promise<Response> {\n return core.makePassthroughRequest(\n input,\n init,\n {\n baseUrl: this._options.baseUrl ?? this._options.environment,\n headers: this._options.headers,\n timeoutInSeconds: this._options.timeoutInSeconds,\n maxRetries: this._options.maxRetries,\n fetch: this._options.fetch,\n logging: this._options.logging,\n getAuthHeaders: async () => (await this._options.authProvider.getAuthRequest()).headers,\n },\n requestOptions,\n );\n }\n}\n","import * as logger from \"./logger.js\";\n\nexport namespace logging {\n /**\n * Configuration for logger instances.\n */\n export type LogConfig = logger.LogConfig;\n export type LogLevel = logger.LogLevel;\n export const LogLevel: typeof logger.LogLevel = logger.LogLevel;\n export type ILogger = logger.ILogger;\n /**\n * Console logger implementation that outputs to the console.\n */\n export type ConsoleLogger = logger.ConsoleLogger;\n /**\n * Console logger implementation that outputs to the console.\n */\n export const ConsoleLogger: typeof logger.ConsoleLogger = logger.ConsoleLogger;\n}\n","import { randomBytes, timingSafeEqual } from \"node:crypto\";\nimport { request as httpsRequest } from \"node:https\";\nimport { StarlingEnvironment } from \"../generated/environments.js\";\n\nexport interface OAuthTokens {\n accessToken: string;\n refreshToken: string;\n tokenType: \"Bearer\";\n expiresIn: number;\n expiresAt: Date;\n scope: string;\n}\n\nexport class OAuthError extends Error {\n constructor(public readonly code: string, public readonly statusCode?: number) {\n super(`Starling OAuth failed: ${code}${statusCode ? ` (HTTP ${statusCode})` : \"\"}`);\n this.name = \"OAuthError\";\n }\n}\n\nexport interface OAuthTlsOptions {\n cert: string | Buffer;\n key: string | Buffer;\n ca?: string | Buffer;\n passphrase?: string;\n}\n\nexport interface OAuthRequest {\n url: string;\n body: string;\n headers: Record<string, string>;\n signal: AbortSignal;\n}\n\nexport type OAuthTransport = (request: OAuthRequest) => Promise<{ status: number; body: unknown }>;\n\nexport interface StarlingOAuthOptions {\n clientId: string;\n clientSecret: string;\n redirectUri: string;\n environment?: StarlingEnvironment;\n tls?: OAuthTlsOptions;\n /** Supply a certificate-capable transport when TLS is managed externally. */\n transport?: OAuthTransport;\n /** Override for a proxy or a local HTTPS test server. */\n tokenUrl?: string;\n timeoutInSeconds?: number;\n}\n\nexport function createOAuthState(): string {\n return randomBytes(32).toString(\"base64url\");\n}\n\nexport function validateOAuthState(expected: string, received: string | undefined | null): boolean {\n if (!expected || !received) return false;\n const a = Buffer.from(expected);\n const b = Buffer.from(received);\n return a.length === b.length && timingSafeEqual(a, b);\n}\n\nfunction httpsTransport(tls?: OAuthTlsOptions): OAuthTransport {\n return ({ url, body, headers, signal }) => new Promise((resolve, reject) => {\n const request = httpsRequest(url, { ...tls, rejectUnauthorized: true, method: \"POST\", headers, signal }, (response) => {\n const chunks: Buffer[] = [];\n let size = 0;\n response.on(\"data\", (chunk: Buffer) => {\n size += chunk.length;\n if (size > 1024 * 1024) {\n response.destroy(new OAuthError(\"response_too_large\"));\n return;\n }\n chunks.push(chunk);\n });\n response.on(\"error\", reject);\n response.on(\"end\", () => {\n const status = response.statusCode ?? 0;\n try {\n resolve({ status, body: JSON.parse(Buffer.concat(chunks).toString(\"utf8\")) });\n } catch {\n reject(new OAuthError(\"invalid_response\", status));\n }\n });\n });\n request.on(\"error\", reject);\n request.end(body);\n });\n}\n\nfunction parseTokens(body: unknown, status: number): OAuthTokens {\n if (!body || typeof body !== \"object\") throw new OAuthError(\"invalid_response\", status);\n const value = body as Record<string, unknown>;\n if (status !== 200) {\n const code = typeof value.error === \"string\" && /^[a-z_]+$/.test(value.error) ? value.error : \"oauth_error\";\n throw new OAuthError(code, status);\n }\n if (typeof value.access_token !== \"string\" || !value.access_token ||\n typeof value.refresh_token !== \"string\" || !value.refresh_token ||\n typeof value.expires_in !== \"number\" || !Number.isFinite(value.expires_in) || value.expires_in <= 0 ||\n typeof value.token_type !== \"string\" || value.token_type.toLowerCase() !== \"bearer\" ||\n (value.scope !== undefined && typeof value.scope !== \"string\")) {\n throw new OAuthError(\"invalid_response\", status);\n }\n const expiresAt = new Date(Date.now() + value.expires_in * 1000);\n if (Number.isNaN(expiresAt.getTime())) throw new OAuthError(\"invalid_response\", status);\n return {\n accessToken: value.access_token, refreshToken: value.refresh_token,\n tokenType: \"Bearer\", expiresIn: value.expires_in, expiresAt,\n scope: (value.scope as string | undefined) ?? \"\",\n };\n}\n\n/** Explicit OAuth helpers. Applications own token persistence and callback sessions. */\nexport class StarlingOAuth {\n readonly #options: StarlingOAuthOptions;\n readonly #tokenUrl: string;\n readonly #transport: OAuthTransport;\n\n constructor(options: StarlingOAuthOptions) {\n if (!options.clientId || !options.clientSecret || !options.redirectUri) {\n throw new TypeError(\"clientId, clientSecret and redirectUri are required\");\n }\n const environment = options.environment ?? StarlingEnvironment.Sandbox;\n if (!Object.values(StarlingEnvironment).includes(environment)) throw new TypeError(\"Invalid OAuth environment\");\n const production = environment === StarlingEnvironment.Production;\n const timeout = options.timeoutInSeconds ?? 30;\n if (!Number.isFinite(timeout) || timeout <= 0) throw new TypeError(\"timeoutInSeconds must be positive\");\n if (production && !options.tls && !options.transport) {\n throw new TypeError(\"Production OAuth requires client TLS credentials or a certificate-capable transport\");\n }\n new URL(options.redirectUri);\n const tokenUrl = options.tokenUrl ?? (production\n ? \"https://token-api.starlingbank.com/oauth/access-token\"\n : options.tls ? \"https://token-api-sandbox.starlingbank.com/oauth/access-token\"\n : \"https://api-sandbox.starlingbank.com/oauth/access-token\");\n const parsed = new URL(tokenUrl);\n if (parsed.protocol !== \"https:\" || parsed.username || parsed.password || parsed.search || parsed.hash) {\n throw new TypeError(\"tokenUrl must be HTTPS without credentials, query parameters or a fragment\");\n }\n this.#options = { ...options, environment, timeoutInSeconds: timeout };\n this.#tokenUrl = tokenUrl;\n this.#transport = options.transport ?? httpsTransport(options.tls);\n }\n\n getAuthorizationUrl({ state, scopes }: { state: string; scopes?: string[] }): string {\n if (!state) throw new TypeError(\"A session-bound OAuth state is required\");\n const url = new URL(this.#options.environment === StarlingEnvironment.Production\n ? \"https://oauth.starlingbank.com/\" : \"https://oauth-sandbox.starlingbank.com/\");\n url.search = new URLSearchParams({ client_id: this.#options.clientId, response_type: \"code\", state, redirect_uri: this.#options.redirectUri }).toString();\n if (scopes?.length) url.searchParams.set(\"scope\", scopes.join(\" \"));\n return url.toString();\n }\n\n exchangeCode(code: string, options?: { signal?: AbortSignal }): Promise<OAuthTokens> {\n if (!code) throw new TypeError(\"An authorization code is required\");\n return this.#exchange({ grant_type: \"authorization_code\", code, redirect_uri: this.#options.redirectUri }, options?.signal);\n }\n\n refreshToken(refreshToken: string, options?: { signal?: AbortSignal }): Promise<OAuthTokens> {\n if (!refreshToken) throw new TypeError(\"A refresh token is required\");\n return this.#exchange({ grant_type: \"refresh_token\", refresh_token: refreshToken }, options?.signal);\n }\n\n async #exchange(parameters: Record<string, string>, signal?: AbortSignal): Promise<OAuthTokens> {\n const body = new URLSearchParams({ ...parameters, client_id: this.#options.clientId, client_secret: this.#options.clientSecret }).toString();\n const timeout = AbortSignal.timeout(Math.ceil(this.#options.timeoutInSeconds! * 1000));\n try {\n const response = await this.#transport({\n url: this.#tokenUrl, body,\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\", Accept: \"application/json\", \"User-Agent\": \"starling-sdk-typescript\" },\n signal: signal ? AbortSignal.any([signal, timeout]) : timeout,\n });\n return parseTokens(response.body, response.status);\n } catch (error) {\n if (error instanceof OAuthError) throw error;\n throw new OAuthError(signal?.aborted ? \"request_aborted\" : timeout.aborted ? \"timeout\" : \"network_error\");\n }\n }\n}\n","import { constants, createHash, createPrivateKey, createPublicKey, KeyObject, sign, verify } from \"node:crypto\";\n\nexport class SigningError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"SigningError\";\n }\n}\n\nexport interface SigningOptions {\n /** UUID of the API key registered in the matching Starling environment. */\n keyId: string;\n privateKey: string | Buffer | KeyObject;\n passphrase?: string;\n}\n\n/** RSA-SHA512 signing of the exact bytes sent to Starling. */\nexport class RequestSigner {\n readonly #key: KeyObject;\n readonly #keyId: string;\n\n constructor(options: SigningOptions) {\n if (!/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/i.test(options.keyId)) {\n throw new SigningError(\"keyId must be the registered API key UUID\");\n }\n try {\n this.#key = options.privateKey instanceof KeyObject ? options.privateKey\n : createPrivateKey({ key: options.privateKey, passphrase: options.passphrase });\n } catch {\n throw new SigningError(\"Cannot load the API private key\");\n }\n if (this.#key.type !== \"private\" || this.#key.asymmetricKeyType !== \"rsa\" ||\n ![2048, 4096].includes(this.#key.asymmetricKeyDetails?.modulusLength ?? 0)) {\n throw new SigningError(\"Request signing requires a 2048- or 4096-bit RSA private key\");\n }\n this.#keyId = options.keyId;\n }\n\n signHeaders({ method, url, body, authorization }: {\n method: string; url: string | URL; body?: Uint8Array | null; authorization: string;\n }): { Authorization: string; Date: string; Digest: string } {\n if (!/^Bearer [^\\s;,]+$/i.test(authorization)) throw new SigningError(\"Signing requires one bearer access token\");\n const target = new URL(url);\n const date = new Date().toISOString();\n const digest = body == null ? \"X\" : createHash(\"sha512\").update(body).digest(\"base64\");\n const content = `(request-target): ${method.toLowerCase()} ${target.pathname}${target.search}\\nDate: ${date}\\nDigest: ${digest}`;\n const signature = sign(\"RSA-SHA512\", Buffer.from(content), { key: this.#key, padding: constants.RSA_PKCS1_PADDING }).toString(\"base64\");\n return {\n Authorization: `${authorization};Signature keyid=\"${this.#keyId}\",algorithm=\"rsa-sha512\",headers=\"(request-target) Date Digest\",signature=\"${signature}\"`,\n Date: date,\n Digest: digest,\n };\n }\n}\n\n/** Verify X-Hook-Signature against the unchanged body of a V2 webhook. */\nexport function verifyWebhookSignature(body: Uint8Array, signature: string | null | undefined, publicKey: string | Buffer | KeyObject): boolean {\n if (!signature || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(signature)) return false;\n let key: KeyObject;\n try {\n key = publicKey instanceof KeyObject ? publicKey : createPublicKey(publicKey);\n } catch {\n throw new SigningError(\"Cannot load the V2 webhook public key\");\n }\n if (key.type !== \"public\" || key.asymmetricKeyType !== \"rsa\") throw new SigningError(\"V2 webhook verification requires an RSA public key\");\n return verify(\"RSA-SHA512\", body, { key, padding: constants.RSA_PKCS1_PADDING }, Buffer.from(signature, \"base64\"));\n}\n","import { setTimeout as delay } from \"node:timers/promises\";\nimport { fetcher, unknownRawResponse, type FetchFunction, type Fetcher } from \"./generated/core/fetcher/index.js\";\n\nfunction retryDelay(headers: Headers, attempt: number): number {\n const value = headers.get(\"Retry-After\");\n if (value) {\n if (/^\\d+(?:\\.\\d+)?$/.test(value)) return Number(value) * 1000;\n const date = Date.parse(value);\n if (Number.isFinite(date)) return Math.max(0, date - Date.now());\n }\n return Math.min(1000 * 2 ** attempt, 60000) * (0.9 + Math.random() * 0.2);\n}\n\n/** One deadline covers retries and buffered responses. Only reads retry. */\nexport const requestWithDeadline: FetchFunction = async <R>(args: Fetcher.Args) => {\n const retries = [\"GET\", \"HEAD\", \"OPTIONS\"].includes(args.method.toUpperCase()) ? (args.maxRetries ?? 2) : 0;\n if (!Number.isSafeInteger(retries) || retries < 0) throw new RangeError(\"maxRetries must be a non-negative integer\");\n const milliseconds = args.timeoutMs ?? 60000;\n if (!Number.isFinite(milliseconds) || milliseconds <= 0 || milliseconds > 2147483647) throw new RangeError(\"Request timeout must be positive and at most 2147483647 milliseconds\");\n const deadline = new AbortController();\n const timer = setTimeout(() => deadline.abort(new DOMException(\"Request deadline exceeded\", \"TimeoutError\")), milliseconds);\n const signal = args.abortSignal ? AbortSignal.any([args.abortSignal, deadline.signal]) : deadline.signal;\n const aborted = () => ({ ok: false as const, error: args.abortSignal?.aborted\n ? { reason: \"unknown\" as const, errorMessage: \"The user aborted a request\", cause: args.abortSignal.reason }\n : { reason: \"timeout\" as const, cause: deadline.signal.reason }, rawResponse: unknownRawResponse });\n try {\n for (let attempt = 0; ; attempt++) {\n if (signal.aborted) return aborted();\n const response = await fetcher<R>({ ...args, timeoutMs: undefined, maxRetries: 0, abortSignal: signal });\n if (signal.aborted) return aborted();\n if (response.ok || response.error.reason !== \"status-code\" || attempt >= retries ||\n !([408, 429].includes(response.error.statusCode) || response.error.statusCode >= 500)) return response;\n const wait = retryDelay(response.rawResponse.headers, attempt);\n // A Retry-After beyond the remaining deadline is interrupted by that deadline.\n await delay(Math.min(wait, 2147483647), undefined, { signal });\n }\n } catch (error) {\n if (signal.aborted) return aborted();\n throw error;\n } finally {\n clearTimeout(timer);\n }\n};\n","// Generated by scripts/check-spec.mjs from Starling's OpenAPI security requirements.\nexport const signedRoutes = [\n {\n \"method\": \"PUT\",\n \"path\": \"/api/v2/account-holder/individual/email\"\n },\n {\n \"method\": \"POST\",\n \"path\": \"/api/v2/addresses\"\n },\n {\n \"method\": \"PUT\",\n \"path\": \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}\"\n },\n {\n \"method\": \"DELETE\",\n \"path\": \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders/{paymentOrderUid}\"\n },\n {\n \"method\": \"PUT\",\n \"path\": \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}/standing-orders\"\n },\n {\n \"method\": \"PUT\",\n \"path\": \"/api/v2/payments/local/account/{accountUid}/category/{categoryUid}\"\n }\n] as const;\n","import { StarlingClient as GeneratedClient } from \"./generated/Client.js\";\nimport type { BaseClientOptions } from \"./generated/BaseClient.js\";\nimport { StarlingEnvironment } from \"./generated/environments.js\";\nimport type { FetchFunction } from \"./generated/core/fetcher/index.js\";\nimport { requestWithDeadline } from \"./transport.js\";\nimport { RequestSigner, SigningError, type SigningOptions } from \"./auth/signing.js\";\nimport { signedRoutes } from \"./metadata/signed-routes.js\";\n\nexport interface StarlingClientOptions extends Omit<BaseClientOptions, \"auth\" | \"fetcher\" | \"baseUrl\" | \"environment\" | \"stream\"> {\n environment?: StarlingEnvironment;\n /** HTTPS origin for a proxy. It must not contain a path, credentials or query. */\n baseUrl?: string;\n signing?: SigningOptions;\n}\n\nconst routes = signedRoutes.map(({ method, path }) => ({ method, pattern: new RegExp(`^${path.replace(/\\{[^}]+\\}/g, \"[^/]+\")}$`) }));\n\nfunction validateAmounts(value: unknown): void {\n if (value === null || typeof value !== \"object\") return;\n for (const [key, child] of Object.entries(value)) {\n if (key === \"minorUnits\" && !Number.isSafeInteger(child)) throw new RangeError(\"minorUnits must be a safe integer; never pass fractional or rounded amounts\");\n validateAmounts(child);\n }\n}\n\n/** Generated resources with request signing, redirect protection and amount checks. */\nexport class StarlingClient extends GeneratedClient {\n readonly baseUrl: string;\n constructor(options: StarlingClientOptions = {}) {\n const environment = options.environment ?? StarlingEnvironment.Sandbox;\n if (!Object.values(StarlingEnvironment).includes(environment)) throw new TypeError(\"Invalid Starling environment\");\n const origin = new URL(options.baseUrl ?? environment);\n if (origin.protocol !== \"https:\" || origin.username || origin.password || origin.pathname !== \"/\" || origin.search || origin.hash) {\n throw new TypeError(\"baseUrl must be an HTTPS origin without credentials, path or query\");\n }\n if (options.maxRetries !== undefined && (!Number.isSafeInteger(options.maxRetries) || options.maxRetries < 0)) throw new RangeError(\"maxRetries must be a non-negative integer\");\n const signer = options.signing ? new RequestSigner(options.signing) : undefined;\n const send = options.fetch ?? globalThis.fetch;\n const guardedFetch: typeof fetch = async (input, init) => {\n const url = new URL(input instanceof Request ? input.url : String(input));\n if (url.origin !== origin.origin) throw new TypeError(\"Refusing to send credentials to a different origin\");\n const method = (init?.method ?? \"GET\").toUpperCase();\n const headers = new Headers(init?.headers);\n if (!/^Bearer [^\\s;,]+$/i.test(headers.get(\"Authorization\") ?? \"\")) throw new TypeError(\"Provide one non-empty bearer access token\");\n const signed = routes.some((route) => route.method === method && route.pattern.test(url.pathname));\n if (signed) {\n if (!signer) throw new SigningError(\"This endpoint requires signing; configure the registered API key\");\n // Signed endpoints have JSON bodies. Read only these, preserving upload streams elsewhere.\n const body = init?.body == null ? undefined : new Uint8Array(await new Response(init.body).arrayBuffer());\n for (const [name, value] of Object.entries(signer.signHeaders({ method, url, body, authorization: headers.get(\"Authorization\") ?? \"\" }))) headers.set(name, value);\n }\n return send(input, { ...init, headers, redirect: \"manual\" });\n };\n const guardedFetcher: FetchFunction = async (args) => {\n const method = args.method.toUpperCase();\n if (![\"GET\", \"HEAD\", \"OPTIONS\"].includes(method)) validateAmounts(args.body);\n if (!signer && routes.some((route) => route.method === method && route.pattern.test(new URL(args.url).pathname))) {\n throw new SigningError(\"This endpoint requires signing; configure the registered API key\");\n }\n return requestWithDeadline({ ...args, fetchFn: guardedFetch });\n };\n // Do not forward unknown JavaScript options that could bypass these checks.\n super({ accessToken: options.accessToken, environment, baseUrl: origin.origin,\n headers: options.headers, timeoutInSeconds: options.timeoutInSeconds, maxRetries: options.maxRetries,\n logging: options.logging, fetch: guardedFetch, fetcher: guardedFetcher });\n this.baseUrl = origin.origin;\n }\n}\n","import type { StarlingClient } from \"./client.js\";\nimport type { Starling } from \"./generated/index.js\";\nimport type { BaseRequestOptions } from \"./generated/BaseClient.js\";\nimport { encodePathParam } from \"./generated/core/url/index.js\";\n\nexport class PaginationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PaginationError\";\n }\n}\n\nexport interface FeedIteratorOptions extends Omit<BaseRequestOptions, \"queryParams\" | \"additionalBodyParameters\" | \"stream\"> {\n /** Stop after this many pages. Omit to consume the complete range. */\n maxPages?: number;\n}\n\nconst parameters = new Set([\"minTransactionTimestamp\", \"maxTransactionTimestamp\", \"cursor\", \"pageToFetch\"]);\n\n/** Lazily follow the paginated feed's next links, without changing accounts or date range. */\nexport async function* iterateFeed(client: StarlingClient, request: Starling.ListPageFeedRequest, options: FeedIteratorOptions = {}): AsyncGenerator<Starling.FeedItem> {\n const { maxPages, ...requestOptions } = options;\n if (\"queryParams\" in options && options.queryParams) throw new TypeError(\"Pass feed filters directly; queryParams is unsupported by iterateFeed\");\n if (maxPages !== undefined && (!Number.isSafeInteger(maxPages) || maxPages < 1)) throw new RangeError(\"maxPages must be a positive integer\");\n const min = Date.parse(request.minTransactionTimestamp);\n const max = Date.parse(request.maxTransactionTimestamp);\n if (!Number.isFinite(min) || !Number.isFinite(max) || min > max) throw new RangeError(\"Provide a valid minimum and maximum transaction timestamp\");\n const base = new URL(`/api/v2/feed/account/${encodePathParam(request.accountUid)}/category/${encodePathParam(request.categoryUid)}/paginated-transactions`, client.baseUrl);\n const seen = new Set<string>();\n let current = { ...request };\n for (let count = 0; ; count++) {\n options.abortSignal?.throwIfAborted();\n const marker = JSON.stringify([current.cursor ?? null, current.cursor ? (current.pageToFetch ?? \"NEXT\") : null]);\n if (seen.has(marker)) throw new PaginationError(\"Starling returned a repeated pagination cursor\");\n seen.add(marker);\n const page = await client.feed.listPage(current, requestOptions);\n if (!Array.isArray(page?.feedItems) || !page.links) throw new PaginationError(\"Starling returned an invalid feed page\");\n for (const item of page.feedItems) {\n options.abortSignal?.throwIfAborted();\n yield item;\n }\n if (!page.links.next || (maxPages !== undefined && count + 1 >= maxPages)) return;\n let next: URL;\n try { next = new URL(page.links.next, base); }\n catch { throw new PaginationError(\"Starling returned an invalid next link\"); }\n if (next.origin !== base.origin || next.pathname !== base.pathname || next.username || next.password || next.hash) throw new PaginationError(\"The next link changed the API origin or feed endpoint\");\n for (const key of next.searchParams.keys()) {\n if (!parameters.has(key) || next.searchParams.getAll(key).length !== 1) throw new PaginationError(\"The next link contains unsupported or duplicate parameters\");\n }\n const minimum = next.searchParams.get(\"minTransactionTimestamp\");\n const maximum = next.searchParams.get(\"maxTransactionTimestamp\");\n if (!minimum || !maximum || Date.parse(minimum) !== min || Date.parse(maximum) !== max) throw new PaginationError(\"The next link changed the requested date range\");\n const cursor = next.searchParams.get(\"cursor\");\n const direction = next.searchParams.get(\"pageToFetch\") ?? \"NEXT\";\n if (!cursor || direction !== \"NEXT\") throw new PaginationError(\"The next link has no forward pagination cursor\");\n current = { ...request, minTransactionTimestamp: minimum, maxTransactionTimestamp: maximum, cursor, pageToFetch: \"NEXT\" };\n }\n}\n","import type { WithRawResponse } from \"./generated/core/fetcher/index.js\";\n\n/** Read the UUID from a 200 JSON body or an empty 202 response's Location header. */\nexport function getUploadedAttachmentUid(upload: WithRawResponse<string | null | undefined>): string {\n const uuid = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/i;\n if (![200, 202].includes(upload.rawResponse.status)) throw new Error(\"Expected a successful attachment upload response\");\n if (typeof upload.data === \"string\" && uuid.test(upload.data)) return upload.data;\n const location = upload.rawResponse.headers.get(\"Location\");\n if (location) {\n const match = /\\/attachments\\/([^/?#]+)$/.exec(location);\n if (match && uuid.test(match[1])) return match[1];\n }\n throw new Error(\"The upload response did not contain a valid attachment UUID in its body or Location header\");\n}\n"],"mappings":"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L,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IAC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IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,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J,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IAC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,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,GAvMa;;;ACJV,IAAU;AAAA,CAAV,CAAUC,iBAAV;AAEI,EAAMA,aAAA,OAAO;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,mBAAmB;AAAA,EACvB;AAAA,GAPa;;;ACLV,IAAU;AAAA,CAAV,CAAUC,sBAAV;AACI,EAAMA,kBAAA,kBAAkB;AAAA,IAC3B,WAAW;AAAA,IACX,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;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","names":["StarlingClient","UpdateSpendingCategory","CreateStandingOrderRequest","InstructLocalPaymentRequest","UpdateStandingOrderRequest","AccountHolder","AccountIdentifier","AccountV2","BatchPaymentDetails","DirectDebitMandateV2","FeedItem","FeedItemAttachment","Payee","PayeeAccount","PayeeAccountCreationRequest","PayeeCreationRequest","PayeePayment","PaymentOrderV2","PaymentRecipient","PaymentStatusDetails","Receipt","ReceiptItem","ReceiptTaxDetail","RecurrenceRule","Days","RecurrenceRuleV2","Days","SavingsGoalOrdered","SavingsGoalV2","ScheduledPayment","SettleUpProfile","SoleTrader","SpendingSpace","StandingOrder","StandingOrderRecurrence","Headers","Headers","delay","Headers","BearerAuthProvider","logging","httpsRequest","parameters","import_node_crypto","delay","StarlingClient"]}