@usehercules/sdk 1.7.0 → 1.9.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 (257) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +17 -16
  3. package/client.d.mts +0 -3
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +0 -3
  6. package/client.d.ts.map +1 -1
  7. package/client.js +2 -15
  8. package/client.js.map +1 -1
  9. package/client.mjs +2 -15
  10. package/client.mjs.map +1 -1
  11. package/internal/qs/formats.d.mts +7 -0
  12. package/internal/qs/formats.d.mts.map +1 -0
  13. package/internal/qs/formats.d.ts +7 -0
  14. package/internal/qs/formats.d.ts.map +1 -0
  15. package/internal/qs/formats.js +13 -0
  16. package/internal/qs/formats.js.map +1 -0
  17. package/internal/qs/formats.mjs +9 -0
  18. package/internal/qs/formats.mjs.map +1 -0
  19. package/internal/qs/index.d.mts +10 -0
  20. package/internal/qs/index.d.mts.map +1 -0
  21. package/internal/qs/index.d.ts +10 -0
  22. package/internal/qs/index.d.ts.map +1 -0
  23. package/internal/qs/index.js +14 -0
  24. package/internal/qs/index.js.map +1 -0
  25. package/internal/qs/index.mjs +10 -0
  26. package/internal/qs/index.mjs.map +1 -0
  27. package/internal/qs/stringify.d.mts +3 -0
  28. package/internal/qs/stringify.d.mts.map +1 -0
  29. package/internal/qs/stringify.d.ts +3 -0
  30. package/internal/qs/stringify.d.ts.map +1 -0
  31. package/internal/qs/stringify.js +277 -0
  32. package/internal/qs/stringify.js.map +1 -0
  33. package/internal/qs/stringify.mjs +274 -0
  34. package/internal/qs/stringify.mjs.map +1 -0
  35. package/internal/qs/types.d.mts +57 -0
  36. package/internal/qs/types.d.mts.map +1 -0
  37. package/internal/qs/types.d.ts +57 -0
  38. package/internal/qs/types.d.ts.map +1 -0
  39. package/internal/qs/types.js +3 -0
  40. package/internal/qs/types.js.map +1 -0
  41. package/internal/qs/types.mjs +2 -0
  42. package/internal/qs/types.mjs.map +1 -0
  43. package/internal/qs/utils.d.mts +15 -0
  44. package/internal/qs/utils.d.mts.map +1 -0
  45. package/internal/qs/utils.d.ts +15 -0
  46. package/internal/qs/utils.d.ts.map +1 -0
  47. package/internal/qs/utils.js +230 -0
  48. package/internal/qs/utils.js.map +1 -0
  49. package/internal/qs/utils.mjs +217 -0
  50. package/internal/qs/utils.mjs.map +1 -0
  51. package/package.json +1 -1
  52. package/resources/beta/beta.d.mts +4 -4
  53. package/resources/beta/beta.d.mts.map +1 -1
  54. package/resources/beta/beta.d.ts +4 -4
  55. package/resources/beta/beta.d.ts.map +1 -1
  56. package/resources/beta/beta.js +4 -4
  57. package/resources/beta/beta.js.map +1 -1
  58. package/resources/beta/beta.mjs +4 -4
  59. package/resources/beta/beta.mjs.map +1 -1
  60. package/resources/beta/commerce/commerce.d.mts +201 -0
  61. package/resources/beta/commerce/commerce.d.mts.map +1 -0
  62. package/resources/beta/commerce/commerce.d.ts +201 -0
  63. package/resources/beta/commerce/commerce.d.ts.map +1 -0
  64. package/resources/beta/{pay/pay.js → commerce/commerce.js} +10 -14
  65. package/resources/beta/commerce/commerce.js.map +1 -0
  66. package/resources/beta/{pay/pay.mjs → commerce/commerce.mjs} +8 -12
  67. package/resources/beta/commerce/commerce.mjs.map +1 -0
  68. package/resources/beta/commerce/coupons.d.mts +334 -0
  69. package/resources/beta/commerce/coupons.d.mts.map +1 -0
  70. package/resources/beta/commerce/coupons.d.ts +334 -0
  71. package/resources/beta/commerce/coupons.d.ts.map +1 -0
  72. package/resources/beta/{pay → commerce}/coupons.js +8 -5
  73. package/resources/beta/commerce/coupons.js.map +1 -0
  74. package/resources/beta/{pay → commerce}/coupons.mjs +8 -5
  75. package/resources/beta/commerce/coupons.mjs.map +1 -0
  76. package/resources/beta/commerce/customers.d.mts +658 -0
  77. package/resources/beta/commerce/customers.d.mts.map +1 -0
  78. package/resources/beta/commerce/customers.d.ts +658 -0
  79. package/resources/beta/commerce/customers.d.ts.map +1 -0
  80. package/resources/beta/{pay → commerce}/customers.js +11 -7
  81. package/resources/beta/commerce/customers.js.map +1 -0
  82. package/resources/beta/{pay → commerce}/customers.mjs +11 -7
  83. package/resources/beta/commerce/customers.mjs.map +1 -0
  84. package/resources/beta/commerce/index.d.mts +5 -0
  85. package/resources/beta/commerce/index.d.mts.map +1 -0
  86. package/resources/beta/commerce/index.d.ts +5 -0
  87. package/resources/beta/commerce/index.d.ts.map +1 -0
  88. package/resources/beta/{pay → commerce}/index.js +3 -5
  89. package/resources/beta/commerce/index.js.map +1 -0
  90. package/resources/beta/{pay → commerce}/index.mjs +1 -2
  91. package/resources/beta/commerce/index.mjs.map +1 -0
  92. package/resources/beta/commerce/products/index.d.mts +4 -0
  93. package/resources/beta/commerce/products/index.d.mts.map +1 -0
  94. package/resources/beta/commerce/products/index.d.ts +4 -0
  95. package/resources/beta/commerce/products/index.d.ts.map +1 -0
  96. package/resources/beta/{pay → commerce}/products/index.js +3 -3
  97. package/resources/beta/commerce/products/index.js.map +1 -0
  98. package/resources/beta/{pay → commerce}/products/index.mjs +1 -1
  99. package/resources/beta/commerce/products/index.mjs.map +1 -0
  100. package/resources/beta/commerce/products/products.d.mts +1082 -0
  101. package/resources/beta/commerce/products/products.d.mts.map +1 -0
  102. package/resources/beta/commerce/products/products.d.ts +1082 -0
  103. package/resources/beta/commerce/products/products.d.ts.map +1 -0
  104. package/resources/beta/{pay → commerce}/products/products.js +16 -12
  105. package/resources/beta/commerce/products/products.js.map +1 -0
  106. package/resources/beta/{pay → commerce}/products/products.mjs +16 -12
  107. package/resources/beta/commerce/products/products.mjs.map +1 -0
  108. package/resources/beta/commerce/products/resources.d.mts +164 -0
  109. package/resources/beta/commerce/products/resources.d.mts.map +1 -0
  110. package/resources/beta/commerce/products/resources.d.ts +164 -0
  111. package/resources/beta/commerce/products/resources.d.ts.map +1 -0
  112. package/resources/beta/commerce/products/resources.js +41 -0
  113. package/resources/beta/commerce/products/resources.js.map +1 -0
  114. package/resources/beta/commerce/products/resources.mjs +37 -0
  115. package/resources/beta/commerce/products/resources.mjs.map +1 -0
  116. package/resources/beta/commerce/products/variants.d.mts +907 -0
  117. package/resources/beta/commerce/products/variants.d.mts.map +1 -0
  118. package/resources/beta/commerce/products/variants.d.ts +907 -0
  119. package/resources/beta/commerce/products/variants.d.ts.map +1 -0
  120. package/resources/beta/{pay → commerce}/products/variants.js +5 -8
  121. package/resources/beta/commerce/products/variants.js.map +1 -0
  122. package/resources/beta/{pay → commerce}/products/variants.mjs +5 -8
  123. package/resources/beta/commerce/products/variants.mjs.map +1 -0
  124. package/resources/beta/commerce/products.d.mts.map +1 -0
  125. package/resources/beta/commerce/products.d.ts.map +1 -0
  126. package/resources/beta/commerce/products.js.map +1 -0
  127. package/resources/beta/commerce/products.mjs.map +1 -0
  128. package/resources/beta/commerce.d.mts +2 -0
  129. package/resources/beta/commerce.d.mts.map +1 -0
  130. package/resources/beta/commerce.d.ts +2 -0
  131. package/resources/beta/commerce.d.ts.map +1 -0
  132. package/resources/beta/{pay.js → commerce.js} +2 -2
  133. package/resources/beta/commerce.js.map +1 -0
  134. package/resources/beta/{pay.mjs → commerce.mjs} +2 -2
  135. package/resources/beta/commerce.mjs.map +1 -0
  136. package/resources/beta/index.d.mts +1 -1
  137. package/resources/beta/index.d.mts.map +1 -1
  138. package/resources/beta/index.d.ts +1 -1
  139. package/resources/beta/index.d.ts.map +1 -1
  140. package/resources/beta/index.js +3 -3
  141. package/resources/beta/index.js.map +1 -1
  142. package/resources/beta/index.mjs +1 -1
  143. package/resources/beta/index.mjs.map +1 -1
  144. package/resources/push-notifications/push-notifications.d.mts +8 -9
  145. package/resources/push-notifications/push-notifications.d.mts.map +1 -1
  146. package/resources/push-notifications/push-notifications.d.ts +8 -9
  147. package/resources/push-notifications/push-notifications.d.ts.map +1 -1
  148. package/resources/push-notifications/push-notifications.js +5 -6
  149. package/resources/push-notifications/push-notifications.js.map +1 -1
  150. package/resources/push-notifications/push-notifications.mjs +5 -6
  151. package/resources/push-notifications/push-notifications.mjs.map +1 -1
  152. package/src/client.ts +2 -17
  153. package/src/internal/qs/LICENSE.md +13 -0
  154. package/src/internal/qs/README.md +3 -0
  155. package/src/internal/qs/formats.ts +10 -0
  156. package/src/internal/qs/index.ts +13 -0
  157. package/src/internal/qs/stringify.ts +385 -0
  158. package/src/internal/qs/types.ts +71 -0
  159. package/src/internal/qs/utils.ts +265 -0
  160. package/src/resources/beta/beta.ts +18 -18
  161. package/src/resources/beta/{pay/pay.ts → commerce/commerce.ts} +82 -85
  162. package/src/resources/beta/commerce/coupons.ts +441 -0
  163. package/src/resources/beta/commerce/customers.ts +842 -0
  164. package/src/resources/beta/commerce/index.ts +47 -0
  165. package/src/resources/beta/commerce/products/index.ts +37 -0
  166. package/src/resources/beta/commerce/products/products.ts +1341 -0
  167. package/src/resources/beta/commerce/products/resources.ts +217 -0
  168. package/src/resources/beta/commerce/products/variants.ts +1120 -0
  169. package/src/resources/beta/{pay.ts → commerce.ts} +1 -1
  170. package/src/resources/beta/index.ts +8 -8
  171. package/src/resources/push-notifications/push-notifications.ts +8 -9
  172. package/src/version.ts +1 -1
  173. package/version.d.mts +1 -1
  174. package/version.d.ts +1 -1
  175. package/version.js +1 -1
  176. package/version.mjs +1 -1
  177. package/resources/beta/pay/coupons.d.mts +0 -156
  178. package/resources/beta/pay/coupons.d.mts.map +0 -1
  179. package/resources/beta/pay/coupons.d.ts +0 -156
  180. package/resources/beta/pay/coupons.d.ts.map +0 -1
  181. package/resources/beta/pay/coupons.js.map +0 -1
  182. package/resources/beta/pay/coupons.mjs.map +0 -1
  183. package/resources/beta/pay/customers.d.mts +0 -160
  184. package/resources/beta/pay/customers.d.mts.map +0 -1
  185. package/resources/beta/pay/customers.d.ts +0 -160
  186. package/resources/beta/pay/customers.d.ts.map +0 -1
  187. package/resources/beta/pay/customers.js.map +0 -1
  188. package/resources/beta/pay/customers.mjs.map +0 -1
  189. package/resources/beta/pay/entitlements.d.mts +0 -76
  190. package/resources/beta/pay/entitlements.d.mts.map +0 -1
  191. package/resources/beta/pay/entitlements.d.ts +0 -76
  192. package/resources/beta/pay/entitlements.d.ts.map +0 -1
  193. package/resources/beta/pay/entitlements.js +0 -41
  194. package/resources/beta/pay/entitlements.js.map +0 -1
  195. package/resources/beta/pay/entitlements.mjs +0 -37
  196. package/resources/beta/pay/entitlements.mjs.map +0 -1
  197. package/resources/beta/pay/index.d.mts +0 -6
  198. package/resources/beta/pay/index.d.mts.map +0 -1
  199. package/resources/beta/pay/index.d.ts +0 -6
  200. package/resources/beta/pay/index.d.ts.map +0 -1
  201. package/resources/beta/pay/index.js.map +0 -1
  202. package/resources/beta/pay/index.mjs.map +0 -1
  203. package/resources/beta/pay/pay.d.mts +0 -206
  204. package/resources/beta/pay/pay.d.mts.map +0 -1
  205. package/resources/beta/pay/pay.d.ts +0 -206
  206. package/resources/beta/pay/pay.d.ts.map +0 -1
  207. package/resources/beta/pay/pay.js.map +0 -1
  208. package/resources/beta/pay/pay.mjs.map +0 -1
  209. package/resources/beta/pay/products/entitlements.d.mts +0 -53
  210. package/resources/beta/pay/products/entitlements.d.mts.map +0 -1
  211. package/resources/beta/pay/products/entitlements.d.ts +0 -53
  212. package/resources/beta/pay/products/entitlements.d.ts.map +0 -1
  213. package/resources/beta/pay/products/entitlements.js +0 -38
  214. package/resources/beta/pay/products/entitlements.js.map +0 -1
  215. package/resources/beta/pay/products/entitlements.mjs +0 -34
  216. package/resources/beta/pay/products/entitlements.mjs.map +0 -1
  217. package/resources/beta/pay/products/index.d.mts +0 -4
  218. package/resources/beta/pay/products/index.d.mts.map +0 -1
  219. package/resources/beta/pay/products/index.d.ts +0 -4
  220. package/resources/beta/pay/products/index.d.ts.map +0 -1
  221. package/resources/beta/pay/products/index.js.map +0 -1
  222. package/resources/beta/pay/products/index.mjs.map +0 -1
  223. package/resources/beta/pay/products/products.d.mts +0 -183
  224. package/resources/beta/pay/products/products.d.mts.map +0 -1
  225. package/resources/beta/pay/products/products.d.ts +0 -183
  226. package/resources/beta/pay/products/products.d.ts.map +0 -1
  227. package/resources/beta/pay/products/products.js.map +0 -1
  228. package/resources/beta/pay/products/products.mjs.map +0 -1
  229. package/resources/beta/pay/products/variants.d.mts +0 -206
  230. package/resources/beta/pay/products/variants.d.mts.map +0 -1
  231. package/resources/beta/pay/products/variants.d.ts +0 -206
  232. package/resources/beta/pay/products/variants.d.ts.map +0 -1
  233. package/resources/beta/pay/products/variants.js.map +0 -1
  234. package/resources/beta/pay/products/variants.mjs.map +0 -1
  235. package/resources/beta/pay/products.d.mts.map +0 -1
  236. package/resources/beta/pay/products.d.ts.map +0 -1
  237. package/resources/beta/pay/products.js.map +0 -1
  238. package/resources/beta/pay/products.mjs.map +0 -1
  239. package/resources/beta/pay.d.mts +0 -2
  240. package/resources/beta/pay.d.mts.map +0 -1
  241. package/resources/beta/pay.d.ts +0 -2
  242. package/resources/beta/pay.d.ts.map +0 -1
  243. package/resources/beta/pay.js.map +0 -1
  244. package/resources/beta/pay.mjs.map +0 -1
  245. package/src/resources/beta/pay/coupons.ts +0 -218
  246. package/src/resources/beta/pay/customers.ts +0 -229
  247. package/src/resources/beta/pay/entitlements.ts +0 -113
  248. package/src/resources/beta/pay/index.ts +0 -46
  249. package/src/resources/beta/pay/products/entitlements.ts +0 -93
  250. package/src/resources/beta/pay/products/index.ts +0 -28
  251. package/src/resources/beta/pay/products/products.ts +0 -280
  252. package/src/resources/beta/pay/products/variants.ts +0 -279
  253. /package/resources/beta/{pay → commerce}/products.d.mts +0 -0
  254. /package/resources/beta/{pay → commerce}/products.d.ts +0 -0
  255. /package/resources/beta/{pay → commerce}/products.js +0 -0
  256. /package/resources/beta/{pay → commerce}/products.mjs +0 -0
  257. /package/src/resources/beta/{pay → commerce}/products.ts +0 -0
@@ -0,0 +1,1120 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../../core/resource';
4
+ import { APIPromise } from '../../../../core/api-promise';
5
+ import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../../core/pagination';
6
+ import { RequestOptions } from '../../../../internal/request-options';
7
+ import { path } from '../../../../internal/utils/path';
8
+
9
+ export class Variants extends APIResource {
10
+ /**
11
+ * Creates a new variant with pricing for a product. Use variants to offer multiple
12
+ * pricing tiers or configurations (e.g., Basic at $10/month, Pro at $25/month). A
13
+ * Stripe Price is automatically created.
14
+ */
15
+ create(
16
+ productID: string,
17
+ body: VariantCreateParams,
18
+ options?: RequestOptions,
19
+ ): APIPromise<VariantCreateResponse> {
20
+ return this._client.post(path`/v1/commerce/products/${productID}/variants`, { body, ...options });
21
+ }
22
+
23
+ /**
24
+ * Updates an existing variant. Use this to modify the name, description, or active
25
+ * status. Pricing cannot be changed after creation—create a new variant instead.
26
+ */
27
+ update(
28
+ variantID: string,
29
+ params: VariantUpdateParams,
30
+ options?: RequestOptions,
31
+ ): APIPromise<VariantUpdateResponse> {
32
+ const { product_id, ...body } = params;
33
+ return this._client.patch(path`/v1/commerce/products/${product_id}/variants/${variantID}`, {
34
+ body,
35
+ ...options,
36
+ });
37
+ }
38
+
39
+ /**
40
+ * Retrieves all variants for a product. Variants represent different pricing tiers
41
+ * or configurations (e.g., Basic, Pro, Enterprise) within a single product.
42
+ */
43
+ list(
44
+ productID: string,
45
+ query: VariantListParams | null | undefined = {},
46
+ options?: RequestOptions,
47
+ ): PagePromise<VariantListResponsesCursorIDPage, VariantListResponse> {
48
+ return this._client.getAPIList(
49
+ path`/v1/commerce/products/${productID}/variants`,
50
+ CursorIDPage<VariantListResponse>,
51
+ { query, ...options },
52
+ );
53
+ }
54
+
55
+ /**
56
+ * Archives a variant, preventing new subscriptions. The associated Stripe Price is
57
+ * also archived. Existing subscriptions remain active.
58
+ */
59
+ archive(
60
+ variantID: string,
61
+ params: VariantArchiveParams,
62
+ options?: RequestOptions,
63
+ ): APIPromise<VariantArchiveResponse> {
64
+ const { product_id } = params;
65
+ return this._client.delete(path`/v1/commerce/products/${product_id}/variants/${variantID}`, options);
66
+ }
67
+
68
+ /**
69
+ * Retrieves a variant by ID. Returns the variant object including pricing details
70
+ * and status.
71
+ */
72
+ get(variantID: string, params: VariantGetParams, options?: RequestOptions): APIPromise<VariantGetResponse> {
73
+ const { product_id } = params;
74
+ return this._client.get(path`/v1/commerce/products/${product_id}/variants/${variantID}`, options);
75
+ }
76
+ }
77
+
78
+ export type VariantListResponsesCursorIDPage = CursorIDPage<VariantListResponse>;
79
+
80
+ /**
81
+ * A product variant representing a specific tier or configuration. Each variant
82
+ * has its own pricing. Variants allow a single product to have multiple pricing
83
+ * options (e.g., Basic, Pro, Enterprise tiers).
84
+ */
85
+ export interface VariantCreateResponse {
86
+ /**
87
+ * Unique identifier for the topic subscription
88
+ */
89
+ id: string;
90
+
91
+ /**
92
+ * Whether the variant is available for new purchases
93
+ */
94
+ active: boolean;
95
+
96
+ /**
97
+ * Timestamp when the variant was created
98
+ */
99
+ created: string;
100
+
101
+ /**
102
+ * Display name for the variant (e.g., Basic, Standard, Premium)
103
+ */
104
+ name: string;
105
+
106
+ /**
107
+ * Three-letter ISO currency code
108
+ */
109
+ currency?: string;
110
+
111
+ /**
112
+ * Price configuration for a product. Can be one-time or recurring (subscription).
113
+ */
114
+ default_price?: VariantCreateResponse.DefaultPrice | null;
115
+
116
+ /**
117
+ * Detailed description of what this variant includes
118
+ */
119
+ description?: string | null;
120
+
121
+ /**
122
+ * Media attachments (images, videos) for the variant
123
+ */
124
+ media?: Array<VariantCreateResponse.Media>;
125
+
126
+ /**
127
+ * Custom metadata for the variant
128
+ */
129
+ metadata?: { [key: string]: unknown };
130
+
131
+ /**
132
+ * Recurring billing configuration for subscription variants
133
+ */
134
+ recurring?: VariantCreateResponse.Recurring | null;
135
+
136
+ /**
137
+ * Price amount in the smallest currency unit (e.g., cents). 0 for free variants.
138
+ */
139
+ unit_amount?: number;
140
+ }
141
+
142
+ export namespace VariantCreateResponse {
143
+ /**
144
+ * Price configuration for a product. Can be one-time or recurring (subscription).
145
+ */
146
+ export interface DefaultPrice {
147
+ /**
148
+ * Unique identifier for the topic subscription
149
+ */
150
+ id: string;
151
+
152
+ /**
153
+ * How to handle the billing cycle when switching plans. 'now' resets to current
154
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
155
+ */
156
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
157
+
158
+ /**
159
+ * Three-letter ISO currency code (e.g., usd, eur)
160
+ */
161
+ currency: string;
162
+
163
+ /**
164
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
165
+ * one-time prices.
166
+ */
167
+ interval: 'day' | 'week' | 'month' | 'year' | null;
168
+
169
+ /**
170
+ * Number of intervals between billings for recurring prices. Null for one-time
171
+ * prices.
172
+ */
173
+ interval_count: number | null;
174
+
175
+ /**
176
+ * How to handle prorations when switching plans. 'default' creates prorations,
177
+ * 'none' disables them. Null for one-time prices.
178
+ */
179
+ proration_behavior: 'default' | 'none' | null;
180
+
181
+ /**
182
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
183
+ * billing period start. Null for one-time prices or to use Stripe's default.
184
+ */
185
+ proration_date: 'now' | 'start_of_period' | null;
186
+
187
+ /**
188
+ * Price type: one_time for single purchases, recurring for subscriptions
189
+ */
190
+ type: 'one_time' | 'recurring';
191
+
192
+ /**
193
+ * Price amount in the smallest currency unit (e.g., cents)
194
+ */
195
+ unit_amount: number | null;
196
+ }
197
+
198
+ /**
199
+ * Media attachment for products or variants
200
+ */
201
+ export interface Media {
202
+ /**
203
+ * CDN file ID
204
+ */
205
+ id: string;
206
+
207
+ /**
208
+ * Display order in gallery (0-indexed)
209
+ */
210
+ display_order: number;
211
+
212
+ /**
213
+ * Type of media: image or video
214
+ */
215
+ type: 'image' | 'video';
216
+
217
+ /**
218
+ * CDN URL of the media resource
219
+ */
220
+ url: string;
221
+
222
+ /**
223
+ * File size in bytes
224
+ */
225
+ file_size?: number;
226
+
227
+ /**
228
+ * Original filename
229
+ */
230
+ filename?: string;
231
+
232
+ /**
233
+ * Optimized thumbnail URL for images
234
+ */
235
+ thumbnail_url?: string;
236
+ }
237
+
238
+ /**
239
+ * Recurring billing configuration for subscription variants
240
+ */
241
+ export interface Recurring {
242
+ /**
243
+ * Billing frequency: day, week, month, or year
244
+ */
245
+ interval: 'day' | 'week' | 'month' | 'year';
246
+
247
+ /**
248
+ * Number of intervals between billings
249
+ */
250
+ interval_count?: number;
251
+ }
252
+ }
253
+
254
+ /**
255
+ * A product variant representing a specific tier or configuration. Each variant
256
+ * has its own pricing. Variants allow a single product to have multiple pricing
257
+ * options (e.g., Basic, Pro, Enterprise tiers).
258
+ */
259
+ export interface VariantUpdateResponse {
260
+ /**
261
+ * Unique identifier for the topic subscription
262
+ */
263
+ id: string;
264
+
265
+ /**
266
+ * Whether the variant is available for new purchases
267
+ */
268
+ active: boolean;
269
+
270
+ /**
271
+ * Timestamp when the variant was created
272
+ */
273
+ created: string;
274
+
275
+ /**
276
+ * Display name for the variant (e.g., Basic, Standard, Premium)
277
+ */
278
+ name: string;
279
+
280
+ /**
281
+ * Three-letter ISO currency code
282
+ */
283
+ currency?: string;
284
+
285
+ /**
286
+ * Price configuration for a product. Can be one-time or recurring (subscription).
287
+ */
288
+ default_price?: VariantUpdateResponse.DefaultPrice | null;
289
+
290
+ /**
291
+ * Detailed description of what this variant includes
292
+ */
293
+ description?: string | null;
294
+
295
+ /**
296
+ * Media attachments (images, videos) for the variant
297
+ */
298
+ media?: Array<VariantUpdateResponse.Media>;
299
+
300
+ /**
301
+ * Custom metadata for the variant
302
+ */
303
+ metadata?: { [key: string]: unknown };
304
+
305
+ /**
306
+ * Recurring billing configuration for subscription variants
307
+ */
308
+ recurring?: VariantUpdateResponse.Recurring | null;
309
+
310
+ /**
311
+ * Price amount in the smallest currency unit (e.g., cents). 0 for free variants.
312
+ */
313
+ unit_amount?: number;
314
+ }
315
+
316
+ export namespace VariantUpdateResponse {
317
+ /**
318
+ * Price configuration for a product. Can be one-time or recurring (subscription).
319
+ */
320
+ export interface DefaultPrice {
321
+ /**
322
+ * Unique identifier for the topic subscription
323
+ */
324
+ id: string;
325
+
326
+ /**
327
+ * How to handle the billing cycle when switching plans. 'now' resets to current
328
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
329
+ */
330
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
331
+
332
+ /**
333
+ * Three-letter ISO currency code (e.g., usd, eur)
334
+ */
335
+ currency: string;
336
+
337
+ /**
338
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
339
+ * one-time prices.
340
+ */
341
+ interval: 'day' | 'week' | 'month' | 'year' | null;
342
+
343
+ /**
344
+ * Number of intervals between billings for recurring prices. Null for one-time
345
+ * prices.
346
+ */
347
+ interval_count: number | null;
348
+
349
+ /**
350
+ * How to handle prorations when switching plans. 'default' creates prorations,
351
+ * 'none' disables them. Null for one-time prices.
352
+ */
353
+ proration_behavior: 'default' | 'none' | null;
354
+
355
+ /**
356
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
357
+ * billing period start. Null for one-time prices or to use Stripe's default.
358
+ */
359
+ proration_date: 'now' | 'start_of_period' | null;
360
+
361
+ /**
362
+ * Price type: one_time for single purchases, recurring for subscriptions
363
+ */
364
+ type: 'one_time' | 'recurring';
365
+
366
+ /**
367
+ * Price amount in the smallest currency unit (e.g., cents)
368
+ */
369
+ unit_amount: number | null;
370
+ }
371
+
372
+ /**
373
+ * Media attachment for products or variants
374
+ */
375
+ export interface Media {
376
+ /**
377
+ * CDN file ID
378
+ */
379
+ id: string;
380
+
381
+ /**
382
+ * Display order in gallery (0-indexed)
383
+ */
384
+ display_order: number;
385
+
386
+ /**
387
+ * Type of media: image or video
388
+ */
389
+ type: 'image' | 'video';
390
+
391
+ /**
392
+ * CDN URL of the media resource
393
+ */
394
+ url: string;
395
+
396
+ /**
397
+ * File size in bytes
398
+ */
399
+ file_size?: number;
400
+
401
+ /**
402
+ * Original filename
403
+ */
404
+ filename?: string;
405
+
406
+ /**
407
+ * Optimized thumbnail URL for images
408
+ */
409
+ thumbnail_url?: string;
410
+ }
411
+
412
+ /**
413
+ * Recurring billing configuration for subscription variants
414
+ */
415
+ export interface Recurring {
416
+ /**
417
+ * Billing frequency: day, week, month, or year
418
+ */
419
+ interval: 'day' | 'week' | 'month' | 'year';
420
+
421
+ /**
422
+ * Number of intervals between billings
423
+ */
424
+ interval_count?: number;
425
+ }
426
+ }
427
+
428
+ /**
429
+ * A product variant representing a specific tier or configuration. Each variant
430
+ * has its own pricing. Variants allow a single product to have multiple pricing
431
+ * options (e.g., Basic, Pro, Enterprise tiers).
432
+ */
433
+ export interface VariantListResponse {
434
+ /**
435
+ * Unique identifier for the topic subscription
436
+ */
437
+ id: string;
438
+
439
+ /**
440
+ * Whether the variant is available for new purchases
441
+ */
442
+ active: boolean;
443
+
444
+ /**
445
+ * Timestamp when the variant was created
446
+ */
447
+ created: string;
448
+
449
+ /**
450
+ * Display name for the variant (e.g., Basic, Standard, Premium)
451
+ */
452
+ name: string;
453
+
454
+ /**
455
+ * Three-letter ISO currency code
456
+ */
457
+ currency?: string;
458
+
459
+ /**
460
+ * Price configuration for a product. Can be one-time or recurring (subscription).
461
+ */
462
+ default_price?: VariantListResponse.DefaultPrice | null;
463
+
464
+ /**
465
+ * Detailed description of what this variant includes
466
+ */
467
+ description?: string | null;
468
+
469
+ /**
470
+ * Media attachments (images, videos) for the variant
471
+ */
472
+ media?: Array<VariantListResponse.Media>;
473
+
474
+ /**
475
+ * Custom metadata for the variant
476
+ */
477
+ metadata?: { [key: string]: unknown };
478
+
479
+ /**
480
+ * Recurring billing configuration for subscription variants
481
+ */
482
+ recurring?: VariantListResponse.Recurring | null;
483
+
484
+ /**
485
+ * Price amount in the smallest currency unit (e.g., cents). 0 for free variants.
486
+ */
487
+ unit_amount?: number;
488
+ }
489
+
490
+ export namespace VariantListResponse {
491
+ /**
492
+ * Price configuration for a product. Can be one-time or recurring (subscription).
493
+ */
494
+ export interface DefaultPrice {
495
+ /**
496
+ * Unique identifier for the topic subscription
497
+ */
498
+ id: string;
499
+
500
+ /**
501
+ * How to handle the billing cycle when switching plans. 'now' resets to current
502
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
503
+ */
504
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
505
+
506
+ /**
507
+ * Three-letter ISO currency code (e.g., usd, eur)
508
+ */
509
+ currency: string;
510
+
511
+ /**
512
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
513
+ * one-time prices.
514
+ */
515
+ interval: 'day' | 'week' | 'month' | 'year' | null;
516
+
517
+ /**
518
+ * Number of intervals between billings for recurring prices. Null for one-time
519
+ * prices.
520
+ */
521
+ interval_count: number | null;
522
+
523
+ /**
524
+ * How to handle prorations when switching plans. 'default' creates prorations,
525
+ * 'none' disables them. Null for one-time prices.
526
+ */
527
+ proration_behavior: 'default' | 'none' | null;
528
+
529
+ /**
530
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
531
+ * billing period start. Null for one-time prices or to use Stripe's default.
532
+ */
533
+ proration_date: 'now' | 'start_of_period' | null;
534
+
535
+ /**
536
+ * Price type: one_time for single purchases, recurring for subscriptions
537
+ */
538
+ type: 'one_time' | 'recurring';
539
+
540
+ /**
541
+ * Price amount in the smallest currency unit (e.g., cents)
542
+ */
543
+ unit_amount: number | null;
544
+ }
545
+
546
+ /**
547
+ * Media attachment for products or variants
548
+ */
549
+ export interface Media {
550
+ /**
551
+ * CDN file ID
552
+ */
553
+ id: string;
554
+
555
+ /**
556
+ * Display order in gallery (0-indexed)
557
+ */
558
+ display_order: number;
559
+
560
+ /**
561
+ * Type of media: image or video
562
+ */
563
+ type: 'image' | 'video';
564
+
565
+ /**
566
+ * CDN URL of the media resource
567
+ */
568
+ url: string;
569
+
570
+ /**
571
+ * File size in bytes
572
+ */
573
+ file_size?: number;
574
+
575
+ /**
576
+ * Original filename
577
+ */
578
+ filename?: string;
579
+
580
+ /**
581
+ * Optimized thumbnail URL for images
582
+ */
583
+ thumbnail_url?: string;
584
+ }
585
+
586
+ /**
587
+ * Recurring billing configuration for subscription variants
588
+ */
589
+ export interface Recurring {
590
+ /**
591
+ * Billing frequency: day, week, month, or year
592
+ */
593
+ interval: 'day' | 'week' | 'month' | 'year';
594
+
595
+ /**
596
+ * Number of intervals between billings
597
+ */
598
+ interval_count?: number;
599
+ }
600
+ }
601
+
602
+ /**
603
+ * A product variant representing a specific tier or configuration. Each variant
604
+ * has its own pricing. Variants allow a single product to have multiple pricing
605
+ * options (e.g., Basic, Pro, Enterprise tiers).
606
+ */
607
+ export interface VariantArchiveResponse {
608
+ /**
609
+ * Unique identifier for the topic subscription
610
+ */
611
+ id: string;
612
+
613
+ /**
614
+ * Whether the variant is available for new purchases
615
+ */
616
+ active: boolean;
617
+
618
+ /**
619
+ * Timestamp when the variant was created
620
+ */
621
+ created: string;
622
+
623
+ /**
624
+ * Display name for the variant (e.g., Basic, Standard, Premium)
625
+ */
626
+ name: string;
627
+
628
+ /**
629
+ * Three-letter ISO currency code
630
+ */
631
+ currency?: string;
632
+
633
+ /**
634
+ * Price configuration for a product. Can be one-time or recurring (subscription).
635
+ */
636
+ default_price?: VariantArchiveResponse.DefaultPrice | null;
637
+
638
+ /**
639
+ * Detailed description of what this variant includes
640
+ */
641
+ description?: string | null;
642
+
643
+ /**
644
+ * Media attachments (images, videos) for the variant
645
+ */
646
+ media?: Array<VariantArchiveResponse.Media>;
647
+
648
+ /**
649
+ * Custom metadata for the variant
650
+ */
651
+ metadata?: { [key: string]: unknown };
652
+
653
+ /**
654
+ * Recurring billing configuration for subscription variants
655
+ */
656
+ recurring?: VariantArchiveResponse.Recurring | null;
657
+
658
+ /**
659
+ * Price amount in the smallest currency unit (e.g., cents). 0 for free variants.
660
+ */
661
+ unit_amount?: number;
662
+ }
663
+
664
+ export namespace VariantArchiveResponse {
665
+ /**
666
+ * Price configuration for a product. Can be one-time or recurring (subscription).
667
+ */
668
+ export interface DefaultPrice {
669
+ /**
670
+ * Unique identifier for the topic subscription
671
+ */
672
+ id: string;
673
+
674
+ /**
675
+ * How to handle the billing cycle when switching plans. 'now' resets to current
676
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
677
+ */
678
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
679
+
680
+ /**
681
+ * Three-letter ISO currency code (e.g., usd, eur)
682
+ */
683
+ currency: string;
684
+
685
+ /**
686
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
687
+ * one-time prices.
688
+ */
689
+ interval: 'day' | 'week' | 'month' | 'year' | null;
690
+
691
+ /**
692
+ * Number of intervals between billings for recurring prices. Null for one-time
693
+ * prices.
694
+ */
695
+ interval_count: number | null;
696
+
697
+ /**
698
+ * How to handle prorations when switching plans. 'default' creates prorations,
699
+ * 'none' disables them. Null for one-time prices.
700
+ */
701
+ proration_behavior: 'default' | 'none' | null;
702
+
703
+ /**
704
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
705
+ * billing period start. Null for one-time prices or to use Stripe's default.
706
+ */
707
+ proration_date: 'now' | 'start_of_period' | null;
708
+
709
+ /**
710
+ * Price type: one_time for single purchases, recurring for subscriptions
711
+ */
712
+ type: 'one_time' | 'recurring';
713
+
714
+ /**
715
+ * Price amount in the smallest currency unit (e.g., cents)
716
+ */
717
+ unit_amount: number | null;
718
+ }
719
+
720
+ /**
721
+ * Media attachment for products or variants
722
+ */
723
+ export interface Media {
724
+ /**
725
+ * CDN file ID
726
+ */
727
+ id: string;
728
+
729
+ /**
730
+ * Display order in gallery (0-indexed)
731
+ */
732
+ display_order: number;
733
+
734
+ /**
735
+ * Type of media: image or video
736
+ */
737
+ type: 'image' | 'video';
738
+
739
+ /**
740
+ * CDN URL of the media resource
741
+ */
742
+ url: string;
743
+
744
+ /**
745
+ * File size in bytes
746
+ */
747
+ file_size?: number;
748
+
749
+ /**
750
+ * Original filename
751
+ */
752
+ filename?: string;
753
+
754
+ /**
755
+ * Optimized thumbnail URL for images
756
+ */
757
+ thumbnail_url?: string;
758
+ }
759
+
760
+ /**
761
+ * Recurring billing configuration for subscription variants
762
+ */
763
+ export interface Recurring {
764
+ /**
765
+ * Billing frequency: day, week, month, or year
766
+ */
767
+ interval: 'day' | 'week' | 'month' | 'year';
768
+
769
+ /**
770
+ * Number of intervals between billings
771
+ */
772
+ interval_count?: number;
773
+ }
774
+ }
775
+
776
+ /**
777
+ * A product variant representing a specific tier or configuration. Each variant
778
+ * has its own pricing. Variants allow a single product to have multiple pricing
779
+ * options (e.g., Basic, Pro, Enterprise tiers).
780
+ */
781
+ export interface VariantGetResponse {
782
+ /**
783
+ * Unique identifier for the topic subscription
784
+ */
785
+ id: string;
786
+
787
+ /**
788
+ * Whether the variant is available for new purchases
789
+ */
790
+ active: boolean;
791
+
792
+ /**
793
+ * Timestamp when the variant was created
794
+ */
795
+ created: string;
796
+
797
+ /**
798
+ * Display name for the variant (e.g., Basic, Standard, Premium)
799
+ */
800
+ name: string;
801
+
802
+ /**
803
+ * Three-letter ISO currency code
804
+ */
805
+ currency?: string;
806
+
807
+ /**
808
+ * Price configuration for a product. Can be one-time or recurring (subscription).
809
+ */
810
+ default_price?: VariantGetResponse.DefaultPrice | null;
811
+
812
+ /**
813
+ * Detailed description of what this variant includes
814
+ */
815
+ description?: string | null;
816
+
817
+ /**
818
+ * Media attachments (images, videos) for the variant
819
+ */
820
+ media?: Array<VariantGetResponse.Media>;
821
+
822
+ /**
823
+ * Custom metadata for the variant
824
+ */
825
+ metadata?: { [key: string]: unknown };
826
+
827
+ /**
828
+ * Recurring billing configuration for subscription variants
829
+ */
830
+ recurring?: VariantGetResponse.Recurring | null;
831
+
832
+ /**
833
+ * Price amount in the smallest currency unit (e.g., cents). 0 for free variants.
834
+ */
835
+ unit_amount?: number;
836
+ }
837
+
838
+ export namespace VariantGetResponse {
839
+ /**
840
+ * Price configuration for a product. Can be one-time or recurring (subscription).
841
+ */
842
+ export interface DefaultPrice {
843
+ /**
844
+ * Unique identifier for the topic subscription
845
+ */
846
+ id: string;
847
+
848
+ /**
849
+ * How to handle the billing cycle when switching plans. 'now' resets to current
850
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
851
+ */
852
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
853
+
854
+ /**
855
+ * Three-letter ISO currency code (e.g., usd, eur)
856
+ */
857
+ currency: string;
858
+
859
+ /**
860
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
861
+ * one-time prices.
862
+ */
863
+ interval: 'day' | 'week' | 'month' | 'year' | null;
864
+
865
+ /**
866
+ * Number of intervals between billings for recurring prices. Null for one-time
867
+ * prices.
868
+ */
869
+ interval_count: number | null;
870
+
871
+ /**
872
+ * How to handle prorations when switching plans. 'default' creates prorations,
873
+ * 'none' disables them. Null for one-time prices.
874
+ */
875
+ proration_behavior: 'default' | 'none' | null;
876
+
877
+ /**
878
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
879
+ * billing period start. Null for one-time prices or to use Stripe's default.
880
+ */
881
+ proration_date: 'now' | 'start_of_period' | null;
882
+
883
+ /**
884
+ * Price type: one_time for single purchases, recurring for subscriptions
885
+ */
886
+ type: 'one_time' | 'recurring';
887
+
888
+ /**
889
+ * Price amount in the smallest currency unit (e.g., cents)
890
+ */
891
+ unit_amount: number | null;
892
+ }
893
+
894
+ /**
895
+ * Media attachment for products or variants
896
+ */
897
+ export interface Media {
898
+ /**
899
+ * CDN file ID
900
+ */
901
+ id: string;
902
+
903
+ /**
904
+ * Display order in gallery (0-indexed)
905
+ */
906
+ display_order: number;
907
+
908
+ /**
909
+ * Type of media: image or video
910
+ */
911
+ type: 'image' | 'video';
912
+
913
+ /**
914
+ * CDN URL of the media resource
915
+ */
916
+ url: string;
917
+
918
+ /**
919
+ * File size in bytes
920
+ */
921
+ file_size?: number;
922
+
923
+ /**
924
+ * Original filename
925
+ */
926
+ filename?: string;
927
+
928
+ /**
929
+ * Optimized thumbnail URL for images
930
+ */
931
+ thumbnail_url?: string;
932
+ }
933
+
934
+ /**
935
+ * Recurring billing configuration for subscription variants
936
+ */
937
+ export interface Recurring {
938
+ /**
939
+ * Billing frequency: day, week, month, or year
940
+ */
941
+ interval: 'day' | 'week' | 'month' | 'year';
942
+
943
+ /**
944
+ * Number of intervals between billings
945
+ */
946
+ interval_count?: number;
947
+ }
948
+ }
949
+
950
+ export interface VariantCreateParams {
951
+ /**
952
+ * Display name for the variant (e.g., Basic, Standard, Premium)
953
+ */
954
+ name: string;
955
+
956
+ /**
957
+ * Optional custom ID for the variant. Must start with 'var\_'. If not provided,
958
+ * one will be generated.
959
+ */
960
+ id?: string;
961
+
962
+ /**
963
+ * Three-letter ISO currency code
964
+ */
965
+ currency?: string;
966
+
967
+ /**
968
+ * Detailed description of what this variant includes
969
+ */
970
+ description?: string;
971
+
972
+ /**
973
+ * Media attachments by CDN file ID
974
+ */
975
+ media?: Array<VariantCreateParams.Media>;
976
+
977
+ /**
978
+ * Custom metadata for the variant
979
+ */
980
+ metadata?: { [key: string]: unknown };
981
+
982
+ /**
983
+ * Recurring billing configuration for subscription variants
984
+ */
985
+ recurring?: VariantCreateParams.Recurring;
986
+
987
+ /**
988
+ * Price amount in the smallest currency unit (e.g., cents). Use 0 for free
989
+ * variants.
990
+ */
991
+ unit_amount?: number;
992
+ }
993
+
994
+ export namespace VariantCreateParams {
995
+ /**
996
+ * Media input for attaching to products or variants
997
+ */
998
+ export interface Media {
999
+ /**
1000
+ * CDN file ID from upload
1001
+ */
1002
+ cdn_file_id: string;
1003
+
1004
+ /**
1005
+ * Type of media: image or video
1006
+ */
1007
+ type: 'image' | 'video';
1008
+
1009
+ /**
1010
+ * Display order in gallery (0-indexed)
1011
+ */
1012
+ display_order?: number;
1013
+ }
1014
+
1015
+ /**
1016
+ * Recurring billing configuration for subscription variants
1017
+ */
1018
+ export interface Recurring {
1019
+ /**
1020
+ * Billing frequency: day, week, month, or year
1021
+ */
1022
+ interval: 'day' | 'week' | 'month' | 'year';
1023
+
1024
+ /**
1025
+ * Number of intervals between billings
1026
+ */
1027
+ interval_count?: number;
1028
+ }
1029
+ }
1030
+
1031
+ export interface VariantUpdateParams {
1032
+ /**
1033
+ * Path param: The unique identifier of the product
1034
+ */
1035
+ product_id: string;
1036
+
1037
+ /**
1038
+ * Body param: Whether the variant is available for new purchases
1039
+ */
1040
+ active?: boolean;
1041
+
1042
+ /**
1043
+ * Body param: Detailed description of what this variant includes
1044
+ */
1045
+ description?: string;
1046
+
1047
+ /**
1048
+ * Body param: Replace all media attachments. Pass empty array to remove all media.
1049
+ */
1050
+ media?: Array<VariantUpdateParams.Media>;
1051
+
1052
+ /**
1053
+ * Body param: Custom metadata for the variant
1054
+ */
1055
+ metadata?: { [key: string]: unknown };
1056
+
1057
+ /**
1058
+ * Body param: Display name for the variant
1059
+ */
1060
+ name?: string;
1061
+ }
1062
+
1063
+ export namespace VariantUpdateParams {
1064
+ /**
1065
+ * Media input for attaching to products or variants
1066
+ */
1067
+ export interface Media {
1068
+ /**
1069
+ * CDN file ID from upload
1070
+ */
1071
+ cdn_file_id: string;
1072
+
1073
+ /**
1074
+ * Type of media: image or video
1075
+ */
1076
+ type: 'image' | 'video';
1077
+
1078
+ /**
1079
+ * Display order in gallery (0-indexed)
1080
+ */
1081
+ display_order?: number;
1082
+ }
1083
+ }
1084
+
1085
+ export interface VariantListParams extends CursorIDPageParams {
1086
+ /**
1087
+ * Filter by active status
1088
+ */
1089
+ active?: 'true' | 'false';
1090
+ }
1091
+
1092
+ export interface VariantArchiveParams {
1093
+ /**
1094
+ * The unique identifier of the product
1095
+ */
1096
+ product_id: string;
1097
+ }
1098
+
1099
+ export interface VariantGetParams {
1100
+ /**
1101
+ * The unique identifier of the product
1102
+ */
1103
+ product_id: string;
1104
+ }
1105
+
1106
+ export declare namespace Variants {
1107
+ export {
1108
+ type VariantCreateResponse as VariantCreateResponse,
1109
+ type VariantUpdateResponse as VariantUpdateResponse,
1110
+ type VariantListResponse as VariantListResponse,
1111
+ type VariantArchiveResponse as VariantArchiveResponse,
1112
+ type VariantGetResponse as VariantGetResponse,
1113
+ type VariantListResponsesCursorIDPage as VariantListResponsesCursorIDPage,
1114
+ type VariantCreateParams as VariantCreateParams,
1115
+ type VariantUpdateParams as VariantUpdateParams,
1116
+ type VariantListParams as VariantListParams,
1117
+ type VariantArchiveParams as VariantArchiveParams,
1118
+ type VariantGetParams as VariantGetParams,
1119
+ };
1120
+ }