@wix/auto_sdk_stores_read-only-variants-v-3 1.0.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 (111) hide show
  1. package/build/cjs/index.d.ts +1 -0
  2. package/build/cjs/index.js +18 -0
  3. package/build/cjs/index.js.map +1 -0
  4. package/build/cjs/index.typings.d.ts +1 -0
  5. package/build/cjs/index.typings.js +18 -0
  6. package/build/cjs/index.typings.js.map +1 -0
  7. package/build/cjs/meta.d.ts +1 -0
  8. package/build/cjs/meta.js +18 -0
  9. package/build/cjs/meta.js.map +1 -0
  10. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.d.ts +2 -0
  11. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js +76 -0
  12. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js.map +1 -0
  13. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.d.ts +9 -0
  14. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js +59 -0
  15. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js.map +1 -0
  16. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.d.ts +13 -0
  17. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js +47 -0
  18. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js.map +1 -0
  19. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.d.ts +4 -0
  20. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js +81 -0
  21. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js.map +1 -0
  22. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.d.ts +4554 -0
  23. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js +682 -0
  24. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js.map +1 -0
  25. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.d.ts +4507 -0
  26. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js +810 -0
  27. package/build/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js.map +1 -0
  28. package/build/es/index.d.ts +1 -0
  29. package/build/es/index.js +2 -0
  30. package/build/es/index.js.map +1 -0
  31. package/build/es/index.typings.d.ts +1 -0
  32. package/build/es/index.typings.js +2 -0
  33. package/build/es/index.typings.js.map +1 -0
  34. package/build/es/meta.d.ts +1 -0
  35. package/build/es/meta.js +2 -0
  36. package/build/es/meta.js.map +1 -0
  37. package/build/es/package.json +3 -0
  38. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.d.ts +2 -0
  39. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js +6 -0
  40. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js.map +1 -0
  41. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.d.ts +9 -0
  42. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js +55 -0
  43. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js.map +1 -0
  44. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.d.ts +13 -0
  45. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js +20 -0
  46. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js.map +1 -0
  47. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.d.ts +4 -0
  48. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js +10 -0
  49. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js.map +1 -0
  50. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.d.ts +4554 -0
  51. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js +678 -0
  52. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js.map +1 -0
  53. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.d.ts +4507 -0
  54. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js +782 -0
  55. package/build/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js.map +1 -0
  56. package/build/internal/cjs/index.d.ts +1 -0
  57. package/build/internal/cjs/index.js +18 -0
  58. package/build/internal/cjs/index.js.map +1 -0
  59. package/build/internal/cjs/index.typings.d.ts +1 -0
  60. package/build/internal/cjs/index.typings.js +18 -0
  61. package/build/internal/cjs/index.typings.js.map +1 -0
  62. package/build/internal/cjs/meta.d.ts +1 -0
  63. package/build/internal/cjs/meta.js +18 -0
  64. package/build/internal/cjs/meta.js.map +1 -0
  65. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.d.ts +6 -0
  66. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js +76 -0
  67. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js.map +1 -0
  68. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.d.ts +9 -0
  69. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js +59 -0
  70. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js.map +1 -0
  71. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.d.ts +13 -0
  72. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js +47 -0
  73. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js.map +1 -0
  74. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.d.ts +18 -0
  75. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js +81 -0
  76. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js.map +1 -0
  77. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.d.ts +4554 -0
  78. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js +682 -0
  79. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js.map +1 -0
  80. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.d.ts +4558 -0
  81. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js +810 -0
  82. package/build/internal/cjs/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js.map +1 -0
  83. package/build/internal/es/index.d.ts +1 -0
  84. package/build/internal/es/index.js +2 -0
  85. package/build/internal/es/index.js.map +1 -0
  86. package/build/internal/es/index.typings.d.ts +1 -0
  87. package/build/internal/es/index.typings.js +2 -0
  88. package/build/internal/es/index.typings.js.map +1 -0
  89. package/build/internal/es/meta.d.ts +1 -0
  90. package/build/internal/es/meta.js +2 -0
  91. package/build/internal/es/meta.js.map +1 -0
  92. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.d.ts +6 -0
  93. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js +6 -0
  94. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.context.js.map +1 -0
  95. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.d.ts +9 -0
  96. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js +55 -0
  97. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.http.js.map +1 -0
  98. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.d.ts +13 -0
  99. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js +20 -0
  100. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.meta.js.map +1 -0
  101. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.d.ts +18 -0
  102. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js +10 -0
  103. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.public.js.map +1 -0
  104. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.d.ts +4554 -0
  105. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js +678 -0
  106. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.types.js.map +1 -0
  107. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.d.ts +4558 -0
  108. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js +782 -0
  109. package/build/internal/es/src/stores-catalog-v3-read-only-variant-read-only-variants-v-3.universal.js.map +1 -0
  110. package/meta/package.json +3 -0
  111. package/package.json +52 -0
@@ -0,0 +1,4554 @@
1
+ export interface ReadOnlyVariant extends ReadOnlyVariantTypedPropertiesOneOf {
2
+ /** Physical properties. Must be passed when `productType: PHYSICAL` */
3
+ physicalProperties?: V3VariantPhysicalProperties;
4
+ /** Digital properties. Must be passed when `productType: DIGITAL` */
5
+ digitalProperties?: V3VariantDigitalProperties;
6
+ /**
7
+ * Variant ID.
8
+ * @format GUID
9
+ * @readonly
10
+ */
11
+ id?: string;
12
+ /**
13
+ * Whether the variant is visible to site visitors.
14
+ *
15
+ * Default: `true`
16
+ * @readonly
17
+ */
18
+ visible?: boolean | null;
19
+ /**
20
+ * Variant SKU (stock keeping unit).
21
+ * @minLength 1
22
+ * @maxLength 40
23
+ * @readonly
24
+ */
25
+ sku?: string | null;
26
+ /**
27
+ * Variant barcode.
28
+ * @minLength 1
29
+ * @maxLength 40
30
+ * @readonly
31
+ */
32
+ barcode?: string | null;
33
+ /**
34
+ * List of option choices
35
+ * In case this list is empty, this is the default variant of an unmanaged product. - check if bridges need more than ids
36
+ * @maxSize 6
37
+ * @readonly
38
+ */
39
+ optionChoices?: V3OptionChoice[];
40
+ /**
41
+ * Variant price.
42
+ * @readonly
43
+ */
44
+ price?: V3PriceInfo;
45
+ /**
46
+ * Variant revenue details.
47
+ *
48
+ * > **Note:** Returned only when the following conditions are met:
49
+ * > + You pass `"MERCHANT_DATA"` to the `fields` array in Products API requests.
50
+ * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.
51
+ * @readonly
52
+ */
53
+ revenueDetails?: V3RevenueDetails;
54
+ /**
55
+ * Variant media.
56
+ * @readonly
57
+ */
58
+ media?: V3ProductMedia;
59
+ /**
60
+ * Subscription prices calculated by applying subscription discount to the variant `price.actualPrice`.
61
+ * > **Note:** Returned only when you pass `"SUBSCRIPTION_PRICES_INFO"` to the `fields` array in Products API requests.
62
+ * @readonly
63
+ */
64
+ subscriptionPricesInfo?: V3SubscriptionPricesInfo;
65
+ /**
66
+ * Variant inventory status.
67
+ * @readonly
68
+ */
69
+ inventoryStatus?: V3InventoryStatus;
70
+ /**
71
+ * Product fields
72
+ * @readonly
73
+ */
74
+ productData?: ProductFields;
75
+ }
76
+ /** @oneof */
77
+ export interface ReadOnlyVariantTypedPropertiesOneOf {
78
+ /** Physical properties. Must be passed when `productType: PHYSICAL` */
79
+ physicalProperties?: V3VariantPhysicalProperties;
80
+ /** Digital properties. Must be passed when `productType: DIGITAL` */
81
+ digitalProperties?: V3VariantDigitalProperties;
82
+ }
83
+ export interface V3OptionChoice {
84
+ /**
85
+ * Option and choice IDs.
86
+ * @readonly
87
+ */
88
+ optionChoiceIds?: V3OptionChoiceIds;
89
+ /**
90
+ * Option and choice names.
91
+ * @readonly
92
+ */
93
+ optionChoiceNames?: V3OptionChoiceNames;
94
+ }
95
+ export interface V3OptionChoiceIds {
96
+ /**
97
+ * Option ID.
98
+ * @minLength 1
99
+ * @maxLength 36
100
+ * @readonly
101
+ */
102
+ optionId?: string;
103
+ /**
104
+ * Choice ID.
105
+ * @format GUID
106
+ * @readonly
107
+ */
108
+ choiceId?: string;
109
+ }
110
+ export interface V3OptionChoiceNames {
111
+ /**
112
+ * Option name.
113
+ * @minLength 1
114
+ * @maxLength 50
115
+ * @readonly
116
+ */
117
+ optionName?: string;
118
+ /**
119
+ * Choice name.
120
+ * @minLength 1
121
+ * @maxLength 50
122
+ * @readonly
123
+ */
124
+ choiceName?: string;
125
+ /**
126
+ * Render type.
127
+ * @readonly
128
+ * @maxLength 50
129
+ */
130
+ renderType?: string;
131
+ }
132
+ export interface V3PriceInfo {
133
+ /**
134
+ * Variant price.
135
+ * @readonly
136
+ */
137
+ actualPrice?: V3FixedMonetaryAmount;
138
+ /**
139
+ * The compare-at-price represents the original price of a product before any discount.
140
+ * @readonly
141
+ */
142
+ compareAtPrice?: V3FixedMonetaryAmount;
143
+ }
144
+ export interface V3FixedMonetaryAmount {
145
+ /**
146
+ * Monetary amount. For example, `"3.99"`, or `"-4.99"` for a negative amount.
147
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
148
+ * @readonly
149
+ */
150
+ amount?: string;
151
+ /**
152
+ * Formatted monetary amount. For example, `"$3.99"`.
153
+ * @readonly
154
+ * @maxLength 20
155
+ */
156
+ formattedAmount?: string | null;
157
+ }
158
+ export interface V3RevenueDetails {
159
+ /**
160
+ * Item cost.
161
+ * @readonly
162
+ */
163
+ cost?: V3FixedMonetaryAmount;
164
+ /**
165
+ * Profit. Calculated by reducing `cost` from `discountedPrice`.
166
+ * @readonly
167
+ */
168
+ profit?: V3FixedMonetaryAmount;
169
+ /**
170
+ * Profit Margin. Calculated by dividing `profit` by `discountedPrice`.
171
+ * The result is rounded to 4 decimal places.
172
+ * @readonly
173
+ * @max 1
174
+ */
175
+ profitMargin?: number;
176
+ }
177
+ export interface V3ProductMedia extends V3ProductMediaSetByOneOf, V3ProductMediaMediaOneOf {
178
+ /**
179
+ * ID of existing media from Wix Media Manager.
180
+ * @minLength 1
181
+ * @maxLength 200
182
+ * @readonly
183
+ */
184
+ id?: string;
185
+ /**
186
+ * Media URL.
187
+ * @format WEB_URL
188
+ * @readonly
189
+ */
190
+ url?: string;
191
+ /**
192
+ * Product image.
193
+ * @readonly
194
+ */
195
+ image?: CommonImage;
196
+ /**
197
+ * Product video.
198
+ * @readonly
199
+ */
200
+ video?: CommonVideoV2;
201
+ /**
202
+ * Image alt text.
203
+ * @minLength 1
204
+ * @maxLength 1000
205
+ * @readonly
206
+ */
207
+ altText?: string | null;
208
+ /**
209
+ * Media display name.
210
+ * Allows to override the default media name. Can be passed only when `setBy: url`.
211
+ * @maxLength 80
212
+ * @readonly
213
+ */
214
+ displayName?: string | null;
215
+ /**
216
+ * Media type.
217
+ * @readonly
218
+ */
219
+ mediaType?: ProductMediaMediaType;
220
+ /**
221
+ * Media thumbnail.
222
+ * @readonly
223
+ */
224
+ thumbnail?: V3Thumbnail;
225
+ /**
226
+ * ID used to upload media to Wix Media Manager.
227
+ * @readonly
228
+ * @format GUID
229
+ */
230
+ uploadId?: string;
231
+ }
232
+ /** @oneof */
233
+ export interface V3ProductMediaSetByOneOf {
234
+ /**
235
+ * ID of existing media from Wix Media Manager.
236
+ * @minLength 1
237
+ * @maxLength 200
238
+ * @readonly
239
+ */
240
+ id?: string;
241
+ /**
242
+ * Media URL.
243
+ * @format WEB_URL
244
+ * @readonly
245
+ */
246
+ url?: string;
247
+ }
248
+ /** @oneof */
249
+ export interface V3ProductMediaMediaOneOf {
250
+ /**
251
+ * Product image.
252
+ * @readonly
253
+ */
254
+ image?: CommonImage;
255
+ /**
256
+ * Product video.
257
+ * @readonly
258
+ */
259
+ video?: CommonVideoV2;
260
+ }
261
+ export interface CommonImage {
262
+ /**
263
+ * WixMedia image ID.
264
+ * @maxLength 400
265
+ */
266
+ id?: string;
267
+ /**
268
+ * Image URL.
269
+ * @format WEB_URL
270
+ */
271
+ url?: string;
272
+ /**
273
+ * Original image height.
274
+ * @readonly
275
+ */
276
+ height?: number;
277
+ /**
278
+ * Original image width.
279
+ * @readonly
280
+ */
281
+ width?: number;
282
+ /**
283
+ * Image alt text.
284
+ * @maxLength 200
285
+ */
286
+ altText?: string | null;
287
+ /**
288
+ * Image filename.
289
+ * @readonly
290
+ * @maxLength 200
291
+ */
292
+ filename?: string | null;
293
+ }
294
+ export interface CommonVideoV2 {
295
+ /**
296
+ * WixMedia ID.
297
+ * @maxLength 400
298
+ */
299
+ id?: string;
300
+ /**
301
+ * Available resolutions for the video, starting with the optimal resolution.
302
+ * @readonly
303
+ * @maxSize 100
304
+ */
305
+ resolutions?: CommonVideoResolution[];
306
+ /**
307
+ * Video filename.
308
+ * @readonly
309
+ * @maxLength 200
310
+ */
311
+ filename?: string | null;
312
+ }
313
+ export interface CommonVideoResolution {
314
+ /**
315
+ * Video URL.
316
+ * @format WEB_URL
317
+ */
318
+ url?: string;
319
+ /** Video height. */
320
+ height?: number;
321
+ /** Video width. */
322
+ width?: number;
323
+ /**
324
+ * Video format for example, mp4, hls.
325
+ * @maxLength 200
326
+ */
327
+ format?: string;
328
+ }
329
+ export declare enum ProductMediaMediaType {
330
+ UNKNOWN_MEDIA_TYPE = "UNKNOWN_MEDIA_TYPE",
331
+ /** Image media type. */
332
+ IMAGE = "IMAGE",
333
+ /** Video media type. */
334
+ VIDEO = "VIDEO"
335
+ }
336
+ export interface V3Thumbnail {
337
+ /**
338
+ * Thumbnail url.
339
+ * @format WEB_URL
340
+ * @readonly
341
+ */
342
+ url?: string;
343
+ /**
344
+ * Thumbnail height.
345
+ * @readonly
346
+ */
347
+ height?: number;
348
+ /**
349
+ * Thumbnail width.
350
+ * @readonly
351
+ */
352
+ width?: number;
353
+ /**
354
+ * Thumbnail alt text.
355
+ * @minLength 1
356
+ * @maxLength 1000
357
+ * @readonly
358
+ */
359
+ altText?: string | null;
360
+ }
361
+ export interface V3VariantPhysicalProperties {
362
+ /**
363
+ * Variant shipping weight.
364
+ * @max 999999999.99
365
+ * @readonly
366
+ */
367
+ weight?: number | null;
368
+ /**
369
+ * Price per unit info, in order to show price per unit on the product page.
370
+ * For example if one sells cheese and defines 100g here then we know that buying this variant buyer receives 100g of cheese.
371
+ * But on product page price will be displayed for units defined on product level. See `pricePerUnit.value` to understand how it's calculated.
372
+ * @readonly
373
+ */
374
+ pricePerUnit?: V3PricePerUnit;
375
+ }
376
+ export interface V3PricePerUnit {
377
+ /**
378
+ * Price per unit data for this variant.
379
+ * `measurementUnit` value must correspond to the measurement unit set on the product.
380
+ * @readonly
381
+ */
382
+ settings?: V3PricePerUnitSettings;
383
+ /**
384
+ * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, of this variant, and discounted price of variant.
385
+ * For example if discounted price is 2$, product's price per unit setting is 1 Kg, variant price per unit setting is 0.5 Kg then this value is 4$ (means variant weight is 0.5 Kg and it costs 2$ but we want to show price per 1 Kg so we show 4$).
386
+ * @readonly
387
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
388
+ */
389
+ value?: string;
390
+ /**
391
+ * Price per unit description.
392
+ * @readonly
393
+ * @maxLength 100
394
+ */
395
+ description?: string | null;
396
+ }
397
+ export interface V3PricePerUnitSettings {
398
+ /**
399
+ * Quantity.
400
+ * For example, to define price per per 100 grams, set this field to `100`.
401
+ * @min 0.01
402
+ * @max 999999999.99
403
+ * @readonly
404
+ */
405
+ quantity?: number;
406
+ /**
407
+ * Measurement unit.
408
+ * For example, to define price per 100 grams, set this field to "G".
409
+ * @readonly
410
+ */
411
+ measurementUnit?: MeasurementUnit;
412
+ }
413
+ export declare enum MeasurementUnit {
414
+ UNSPECIFIED = "UNSPECIFIED",
415
+ ML = "ML",
416
+ CL = "CL",
417
+ L = "L",
418
+ CBM = "CBM",
419
+ MG = "MG",
420
+ G = "G",
421
+ KG = "KG",
422
+ MM = "MM",
423
+ CM = "CM",
424
+ M = "M",
425
+ SQM = "SQM",
426
+ OZ = "OZ",
427
+ LB = "LB",
428
+ FLOZ = "FLOZ",
429
+ PT = "PT",
430
+ QT = "QT",
431
+ GAL = "GAL",
432
+ IN = "IN",
433
+ FT = "FT",
434
+ YD = "YD",
435
+ SQFT = "SQFT"
436
+ }
437
+ export interface V3VariantDigitalProperties {
438
+ /**
439
+ * Digital file which will be downloaded by customer after successful purchase.
440
+ * @readonly
441
+ */
442
+ digitalFile?: V3SecuredMedia;
443
+ }
444
+ export interface V3SecuredMedia {
445
+ /**
446
+ * Media ID in media manager.
447
+ * @minLength 1
448
+ * @maxLength 100
449
+ * @readonly
450
+ */
451
+ id?: string;
452
+ /**
453
+ * Original file name.
454
+ * @minLength 1
455
+ * @maxLength 1000
456
+ * @readonly
457
+ */
458
+ fileName?: string;
459
+ /**
460
+ * Original file size.
461
+ * @minLength 1
462
+ * @maxLength 1000
463
+ * @readonly
464
+ * @format DECIMAL_VALUE
465
+ * @decimalValue options { maxScale:0 }
466
+ */
467
+ fileSize?: string | null;
468
+ /**
469
+ * File type.
470
+ * @readonly
471
+ */
472
+ fileType?: SecuredMediaFileType;
473
+ }
474
+ export declare enum SecuredMediaFileType {
475
+ /** Unspecified file type. */
476
+ UNSPECIFIED = "UNSPECIFIED",
477
+ /** Secure picture file. */
478
+ SECURE_PICTURE = "SECURE_PICTURE",
479
+ /** Secure video file. */
480
+ SECURE_VIDEO = "SECURE_VIDEO",
481
+ /** Secure document file. */
482
+ SECURE_DOCUMENT = "SECURE_DOCUMENT",
483
+ /** Secure music file. */
484
+ SECURE_MUSIC = "SECURE_MUSIC",
485
+ /** Secure archive file. */
486
+ SECURE_ARCHIVE = "SECURE_ARCHIVE"
487
+ }
488
+ export interface V3SubscriptionPricesInfo {
489
+ /**
490
+ * Subscription prices.
491
+ * @maxSize 6
492
+ * @readonly
493
+ */
494
+ subscriptionPrices?: V3SubscriptionPrice[];
495
+ }
496
+ export interface V3SubscriptionPrice {
497
+ /**
498
+ * Subscription ID.
499
+ * @format GUID
500
+ * @readonly
501
+ */
502
+ subscriptionId?: string;
503
+ /**
504
+ * Subscription price calculated by applying subscription discount to the variant `price.salePrice`
505
+ * @readonly
506
+ */
507
+ price?: V3FixedMonetaryAmount;
508
+ /**
509
+ * Price per unit info.
510
+ * @readonly
511
+ */
512
+ pricePerUnit?: V3SubscriptionPricePerUnit;
513
+ }
514
+ export interface V3SubscriptionPricePerUnit {
515
+ /**
516
+ * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.
517
+ * @readonly
518
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
519
+ */
520
+ value?: string;
521
+ /**
522
+ * Price per unit description.
523
+ * @readonly
524
+ * @maxLength 20
525
+ */
526
+ description?: string | null;
527
+ }
528
+ export interface V3InventoryStatus {
529
+ /**
530
+ * Whether the variant is in stock.
531
+ * @readonly
532
+ */
533
+ inStock?: boolean;
534
+ /**
535
+ * Whether preorder is enabled for this variant.
536
+ * @readonly
537
+ */
538
+ preorderEnabled?: boolean;
539
+ }
540
+ export interface ProductFields extends ProductFieldsTypedPropertiesOneOf {
541
+ /**
542
+ * Physical properties.
543
+ *
544
+ * Required when `productType: PHYSICAL`.
545
+ */
546
+ physicalProperties?: V3PhysicalProperties;
547
+ /**
548
+ * product id
549
+ * @minLength 1
550
+ * @maxLength 36
551
+ * @readonly
552
+ */
553
+ productId?: string;
554
+ /**
555
+ * Product name.
556
+ * @minLength 1
557
+ * @maxLength 80
558
+ * @readonly
559
+ */
560
+ name?: string | null;
561
+ /**
562
+ * product type
563
+ * @readonly
564
+ */
565
+ productType?: V3ProductType;
566
+ /**
567
+ * Product slug.
568
+ * @format URL_SLUG
569
+ * @readonly
570
+ */
571
+ slug?: string | null;
572
+ /**
573
+ * Whether the product is visible to site visitors on the site.
574
+ *
575
+ * Default: `true`
576
+ * @readonly
577
+ */
578
+ visible?: boolean | null;
579
+ /**
580
+ * Whether the product is visible in POS (point of sale).
581
+ *
582
+ * Default: `true`
583
+ * > **Note:** Always `false` for `productType: DIGITAL`.
584
+ * @readonly
585
+ */
586
+ visibleInPos?: boolean | null;
587
+ /**
588
+ * Main category ID.
589
+ * @format GUID
590
+ * @readonly
591
+ */
592
+ mainCategoryId?: string | null;
593
+ /**
594
+ * Currency used for the pricing of this product, in [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) format.
595
+ *
596
+ * Defaults to the currency defined in the site settings, unless specified in `x-wix-currency` header.
597
+ * > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
598
+ * @format CURRENCY
599
+ * @readonly
600
+ */
601
+ currency?: string | null;
602
+ /**
603
+ * Product entity revision.
604
+ * @readonly
605
+ */
606
+ revision?: string | null;
607
+ }
608
+ /** @oneof */
609
+ export interface ProductFieldsTypedPropertiesOneOf {
610
+ /**
611
+ * Physical properties.
612
+ *
613
+ * Required when `productType: PHYSICAL`.
614
+ */
615
+ physicalProperties?: V3PhysicalProperties;
616
+ }
617
+ export declare enum V3ProductType {
618
+ /** Not implemented. */
619
+ UNKNOWN_PRODUCT_TYPE = "UNKNOWN_PRODUCT_TYPE",
620
+ /** Physical product. */
621
+ PHYSICAL = "PHYSICAL",
622
+ /** Digital product. */
623
+ DIGITAL = "DIGITAL"
624
+ }
625
+ export interface V3PhysicalProperties {
626
+ /**
627
+ * Weight measurement unit.
628
+ * > **Note:** Returned only when you pass `"WEIGHT_MEASUREMENT_UNIT_INFO"` to the `fields` array in Products API requests.
629
+ * @readonly
630
+ */
631
+ weightMeasurementUnitInfo?: V3WeightMeasurementUnitInfo;
632
+ }
633
+ export interface V3WeightMeasurementUnitInfo {
634
+ /**
635
+ * Weight measurement unit.
636
+ * @readonly
637
+ */
638
+ weightMeasurementUnit?: WeightUnit;
639
+ }
640
+ export declare enum WeightUnit {
641
+ /** Weight unit can't be classified due to an error. */
642
+ UNSPECIFIED_WEIGHT_UNIT = "UNSPECIFIED_WEIGHT_UNIT",
643
+ /** Kilograms. */
644
+ KG = "KG",
645
+ /** Pounds. */
646
+ LB = "LB"
647
+ }
648
+ export interface QueryVariantsRequest {
649
+ /** WQL expression. */
650
+ query?: CursorQuery;
651
+ /**
652
+ * A list of requested fields to be included in the response.
653
+ * @maxSize 100
654
+ */
655
+ fields?: RequestedFields[];
656
+ }
657
+ export interface CursorQuery extends CursorQueryPagingMethodOneOf {
658
+ /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
659
+ cursorPaging?: CursorPaging;
660
+ /**
661
+ * Filter object in the following format:
662
+ * `"filter" : {
663
+ * "fieldName1": "value1",
664
+ * "fieldName2":{"$operator":"value2"}
665
+ * }`
666
+ * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
667
+ */
668
+ filter?: Record<string, any> | null;
669
+ /**
670
+ * Sort object in the following format:
671
+ * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
672
+ * @maxSize 5
673
+ */
674
+ sort?: Sorting[];
675
+ }
676
+ /** @oneof */
677
+ export interface CursorQueryPagingMethodOneOf {
678
+ /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
679
+ cursorPaging?: CursorPaging;
680
+ }
681
+ export interface Sorting {
682
+ /**
683
+ * Name of the field to sort by.
684
+ * @maxLength 512
685
+ */
686
+ fieldName?: string;
687
+ /** Sort order. */
688
+ order?: SortOrder;
689
+ }
690
+ export declare enum SortOrder {
691
+ ASC = "ASC",
692
+ DESC = "DESC"
693
+ }
694
+ export interface CursorPaging {
695
+ /**
696
+ * Maximum number of items to return in the results.
697
+ * @max 100
698
+ */
699
+ limit?: number | null;
700
+ /**
701
+ * Pointer to the next or previous page in the list of results.
702
+ *
703
+ * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
704
+ * Not relevant for the first request.
705
+ * @maxLength 16000
706
+ */
707
+ cursor?: string | null;
708
+ }
709
+ export declare enum RequestedFields {
710
+ /** Not implemented. */
711
+ UNKNOWN_REQUESTED_FIELD = "UNKNOWN_REQUESTED_FIELD",
712
+ CURRENCY = "CURRENCY",
713
+ /** You can request merchant data only if you have the `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope. */
714
+ MERCHANT_DATA = "MERCHANT_DATA",
715
+ SUBSCRIPTION_PRICES_INFO = "SUBSCRIPTION_PRICES_INFO",
716
+ WEIGHT_MEASUREMENT_UNIT_INFO = "WEIGHT_MEASUREMENT_UNIT_INFO"
717
+ }
718
+ export interface QueryVariantsResponse {
719
+ /** List of ReadOnlyVariants. */
720
+ variants?: ReadOnlyVariant[];
721
+ /** Paging metadata */
722
+ pagingMetadata?: CursorPagingMetadata;
723
+ }
724
+ export interface CursorPagingMetadata {
725
+ /** Number of items returned in the response. */
726
+ count?: number | null;
727
+ /** Cursor strings that point to the next page, previous page, or both. */
728
+ cursors?: Cursors;
729
+ /**
730
+ * Whether there are more pages to retrieve following the current page.
731
+ *
732
+ * + `true`: Another page of results can be retrieved.
733
+ * + `false`: This is the last page.
734
+ */
735
+ hasNext?: boolean | null;
736
+ }
737
+ export interface Cursors {
738
+ /**
739
+ * Cursor string pointing to the next page in the list of results.
740
+ * @maxLength 16000
741
+ */
742
+ next?: string | null;
743
+ /**
744
+ * Cursor pointing to the previous page in the list of results.
745
+ * @maxLength 16000
746
+ */
747
+ prev?: string | null;
748
+ }
749
+ export interface SearchVariantsRequest {
750
+ /** WQL expression */
751
+ search?: CursorSearch;
752
+ /**
753
+ * A list of requested fields to be included in the response.
754
+ * @maxSize 100
755
+ */
756
+ fields?: RequestedFields[];
757
+ }
758
+ export interface CursorSearch extends CursorSearchPagingMethodOneOf {
759
+ /**
760
+ * Cursor pointing to page of results.
761
+ * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
762
+ */
763
+ cursorPaging?: CursorPaging;
764
+ /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */
765
+ filter?: Record<string, any> | null;
766
+ /**
767
+ * Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}]
768
+ * @maxSize 10
769
+ */
770
+ sort?: Sorting[];
771
+ /**
772
+ * Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.
773
+ * @maxSize 10
774
+ */
775
+ aggregations?: Aggregation[];
776
+ /** Free text to match in searchable fields */
777
+ search?: SearchDetails;
778
+ /**
779
+ * UTC offset or IANA time zone. Valid values are
780
+ * ISO 8601 UTC offsets, such as +02:00 or -06:00,
781
+ * and IANA time zone IDs, such as Europe/Rome
782
+ *
783
+ * Affects all filters and aggregations returned values.
784
+ * You may override this behavior in a specific filter by providing
785
+ * timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
786
+ * @maxLength 50
787
+ */
788
+ timeZone?: string | null;
789
+ }
790
+ /** @oneof */
791
+ export interface CursorSearchPagingMethodOneOf {
792
+ /**
793
+ * Cursor pointing to page of results.
794
+ * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
795
+ */
796
+ cursorPaging?: CursorPaging;
797
+ }
798
+ export interface Aggregation extends AggregationKindOneOf {
799
+ /** Value aggregation */
800
+ value?: ValueAggregation;
801
+ /** Range aggregation */
802
+ range?: RangeAggregation;
803
+ /** Scalar aggregation */
804
+ scalar?: ScalarAggregation;
805
+ /** Date histogram aggregation */
806
+ dateHistogram?: DateHistogramAggregation;
807
+ /** Nested aggregation */
808
+ nested?: NestedAggregation;
809
+ /**
810
+ * User-defined name of aggregation, should be unique, will appear in aggregation results
811
+ * @maxLength 100
812
+ */
813
+ name?: string | null;
814
+ /** Type of aggregation, client must provide matching aggregation field below */
815
+ type?: AggregationType;
816
+ /**
817
+ * Field to aggregate by, use dot notation to specify json path
818
+ * @maxLength 200
819
+ */
820
+ fieldPath?: string;
821
+ }
822
+ /** @oneof */
823
+ export interface AggregationKindOneOf {
824
+ /** Value aggregation */
825
+ value?: ValueAggregation;
826
+ /** Range aggregation */
827
+ range?: RangeAggregation;
828
+ /** Scalar aggregation */
829
+ scalar?: ScalarAggregation;
830
+ /** Date histogram aggregation */
831
+ dateHistogram?: DateHistogramAggregation;
832
+ /** Nested aggregation */
833
+ nested?: NestedAggregation;
834
+ }
835
+ export interface RangeBucket {
836
+ /** Inclusive lower bound of the range. Required if to is not given */
837
+ from?: number | null;
838
+ /** Exclusive upper bound of the range. Required if from is not given */
839
+ to?: number | null;
840
+ }
841
+ export declare enum SortType {
842
+ /** Should sort by number of matches */
843
+ COUNT = "COUNT",
844
+ /** Should sort by value of the field alphabetically */
845
+ VALUE = "VALUE"
846
+ }
847
+ export declare enum SortDirection {
848
+ /** Should sort in descending order */
849
+ DESC = "DESC",
850
+ /** Should sort in ascending order */
851
+ ASC = "ASC"
852
+ }
853
+ export declare enum MissingValues {
854
+ /** Should missing values be excluded from the aggregation results */
855
+ EXCLUDE = "EXCLUDE",
856
+ /** Should missing values be included in the aggregation results */
857
+ INCLUDE = "INCLUDE"
858
+ }
859
+ export interface IncludeMissingValuesOptions {
860
+ /**
861
+ * Can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ...
862
+ * @maxLength 20
863
+ */
864
+ addToBucket?: string;
865
+ }
866
+ export declare enum ScalarType {
867
+ UNKNOWN_SCALAR_TYPE = "UNKNOWN_SCALAR_TYPE",
868
+ /** Count of distinct values */
869
+ COUNT_DISTINCT = "COUNT_DISTINCT",
870
+ /** Minimum value */
871
+ MIN = "MIN",
872
+ /** Maximum value */
873
+ MAX = "MAX"
874
+ }
875
+ export interface ValueAggregation extends ValueAggregationOptionsOneOf {
876
+ /** Options for including missing values */
877
+ includeOptions?: IncludeMissingValuesOptions;
878
+ /** Should sort by number of matches or value of the field */
879
+ sortType?: SortType;
880
+ /** Should sort in ascending or descending order */
881
+ sortDirection?: SortDirection;
882
+ /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */
883
+ limit?: number | null;
884
+ /** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */
885
+ missingValues?: MissingValues;
886
+ }
887
+ /** @oneof */
888
+ export interface ValueAggregationOptionsOneOf {
889
+ /** Options for including missing values */
890
+ includeOptions?: IncludeMissingValuesOptions;
891
+ }
892
+ export declare enum NestedAggregationType {
893
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
894
+ /** An aggregation where result buckets are dynamically built - one per unique value */
895
+ VALUE = "VALUE",
896
+ /** An aggregation, where user can define set of ranges - each representing a bucket */
897
+ RANGE = "RANGE",
898
+ /** A single-value metric aggregation - e.g. min, max, sum, avg */
899
+ SCALAR = "SCALAR",
900
+ /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
901
+ DATE_HISTOGRAM = "DATE_HISTOGRAM"
902
+ }
903
+ export interface RangeAggregation {
904
+ /**
905
+ * List of range buckets, where during aggregation each entity will be placed in the first bucket where its value falls into based on provided range bounds
906
+ * @maxSize 50
907
+ */
908
+ buckets?: RangeBucket[];
909
+ }
910
+ export interface ScalarAggregation {
911
+ /** Define the operator for the scalar aggregation */
912
+ type?: ScalarType;
913
+ }
914
+ export interface DateHistogramAggregation {
915
+ /** Interval for date histogram aggregation */
916
+ interval?: Interval;
917
+ }
918
+ export declare enum Interval {
919
+ UNKNOWN_INTERVAL = "UNKNOWN_INTERVAL",
920
+ /** Yearly interval */
921
+ YEAR = "YEAR",
922
+ /** Monthly interval */
923
+ MONTH = "MONTH",
924
+ /** Weekly interval */
925
+ WEEK = "WEEK",
926
+ /** Daily interval */
927
+ DAY = "DAY",
928
+ /** Hourly interval */
929
+ HOUR = "HOUR",
930
+ /** Minute interval */
931
+ MINUTE = "MINUTE",
932
+ /** Second interval */
933
+ SECOND = "SECOND"
934
+ }
935
+ export interface NestedAggregationItem extends NestedAggregationItemKindOneOf {
936
+ /** Value aggregation */
937
+ value?: ValueAggregation;
938
+ /** Range aggregation */
939
+ range?: RangeAggregation;
940
+ /** Scalar aggregation */
941
+ scalar?: ScalarAggregation;
942
+ /** Date histogram aggregation */
943
+ dateHistogram?: DateHistogramAggregation;
944
+ /**
945
+ * User-defined name of aggregation, should be unique, will appear in aggregation results
946
+ * @maxLength 100
947
+ */
948
+ name?: string | null;
949
+ /** Type of aggregation, client must provide matching aggregation field below */
950
+ type?: NestedAggregationType;
951
+ /**
952
+ * Field to aggregate by, use dont notation to specify json path
953
+ * @maxLength 200
954
+ */
955
+ fieldPath?: string;
956
+ }
957
+ /** @oneof */
958
+ export interface NestedAggregationItemKindOneOf {
959
+ /** Value aggregation */
960
+ value?: ValueAggregation;
961
+ /** Range aggregation */
962
+ range?: RangeAggregation;
963
+ /** Scalar aggregation */
964
+ scalar?: ScalarAggregation;
965
+ /** Date histogram aggregation */
966
+ dateHistogram?: DateHistogramAggregation;
967
+ }
968
+ export declare enum AggregationType {
969
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
970
+ /** An aggregation where result buckets are dynamically built - one per unique value */
971
+ VALUE = "VALUE",
972
+ /** An aggregation, where user can define set of ranges - each representing a bucket */
973
+ RANGE = "RANGE",
974
+ /** A single-value metric aggregation - e.g. min, max, sum, avg */
975
+ SCALAR = "SCALAR",
976
+ /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
977
+ DATE_HISTOGRAM = "DATE_HISTOGRAM",
978
+ /** Multi-level aggregation, where each next aggregation is nested within previous one */
979
+ NESTED = "NESTED"
980
+ }
981
+ /** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
982
+ export interface NestedAggregation {
983
+ /**
984
+ * Flattened list of aggregations, where each next aggregation is nested within previous one
985
+ * @minSize 2
986
+ * @maxSize 3
987
+ */
988
+ nestedAggregations?: NestedAggregationItem[];
989
+ }
990
+ export interface SearchDetails {
991
+ /** Defines how separate search terms in `expression` are combined */
992
+ mode?: Mode;
993
+ /**
994
+ * Search term or expression
995
+ * @maxLength 100
996
+ */
997
+ expression?: string | null;
998
+ /**
999
+ * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path
1000
+ * @maxLength 200
1001
+ * @maxSize 20
1002
+ */
1003
+ fields?: string[];
1004
+ /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */
1005
+ fuzzy?: boolean;
1006
+ }
1007
+ export declare enum Mode {
1008
+ /** Any of the search terms must be present */
1009
+ OR = "OR",
1010
+ /** All search terms must be present */
1011
+ AND = "AND"
1012
+ }
1013
+ export interface SearchVariantsResponse {
1014
+ /** Variants which satisfy the provided query. */
1015
+ variants?: ReadOnlyVariant[];
1016
+ /** Paging metadata. Contains cursor which can be used in next query. */
1017
+ pagingMetadata?: CursorPagingMetadata;
1018
+ /** Aggregation data. */
1019
+ aggregationData?: AggregationData;
1020
+ }
1021
+ export interface AggregationData {
1022
+ /**
1023
+ * key = aggregation name (as derived from search request)
1024
+ * @maxSize 10000
1025
+ */
1026
+ results?: AggregationResults[];
1027
+ }
1028
+ export interface ValueAggregationResult {
1029
+ /**
1030
+ * Value of the field
1031
+ * @maxLength 100
1032
+ */
1033
+ value?: string;
1034
+ /** Count of entities with this value */
1035
+ count?: number;
1036
+ }
1037
+ export interface RangeAggregationResult {
1038
+ /** Inclusive lower bound of the range */
1039
+ from?: number | null;
1040
+ /** Exclusive upper bound of the range */
1041
+ to?: number | null;
1042
+ /** Count of entities in this range */
1043
+ count?: number;
1044
+ }
1045
+ export interface NestedAggregationResults extends NestedAggregationResultsResultOneOf {
1046
+ /** Value aggregation results */
1047
+ values?: ValueResults;
1048
+ /** Range aggregation results */
1049
+ ranges?: RangeResults;
1050
+ /** Scalar aggregation results */
1051
+ scalar?: AggregationResultsScalarResult;
1052
+ /**
1053
+ * User-defined name of aggregation, matches the one provided in request
1054
+ * @maxLength 100
1055
+ */
1056
+ name?: string;
1057
+ /** Type of aggregation that matches result */
1058
+ type?: AggregationType;
1059
+ /**
1060
+ * Field to aggregate by, matches the one provided in request
1061
+ * @maxLength 200
1062
+ */
1063
+ fieldPath?: string;
1064
+ }
1065
+ /** @oneof */
1066
+ export interface NestedAggregationResultsResultOneOf {
1067
+ /** Value aggregation results */
1068
+ values?: ValueResults;
1069
+ /** Range aggregation results */
1070
+ ranges?: RangeResults;
1071
+ /** Scalar aggregation results */
1072
+ scalar?: AggregationResultsScalarResult;
1073
+ }
1074
+ export interface ValueResults {
1075
+ /**
1076
+ * List of value aggregations
1077
+ * @maxSize 250
1078
+ */
1079
+ results?: ValueAggregationResult[];
1080
+ }
1081
+ export interface RangeResults {
1082
+ /**
1083
+ * List of ranges returned in same order as requested
1084
+ * @maxSize 50
1085
+ */
1086
+ results?: RangeAggregationResult[];
1087
+ }
1088
+ export interface AggregationResultsScalarResult {
1089
+ /** Type of scalar aggregation */
1090
+ type?: ScalarType;
1091
+ /** Value of the scalar aggregation */
1092
+ value?: number;
1093
+ }
1094
+ export interface NestedValueAggregationResult {
1095
+ /**
1096
+ * Value of the field
1097
+ * @maxLength 1000
1098
+ */
1099
+ value?: string;
1100
+ /** Nested aggregations */
1101
+ nestedResults?: NestedAggregationResults;
1102
+ }
1103
+ export interface ValueResult {
1104
+ /**
1105
+ * Value of the field
1106
+ * @maxLength 1000
1107
+ */
1108
+ value?: string;
1109
+ /** Count of entities with this value */
1110
+ count?: number | null;
1111
+ }
1112
+ export interface RangeResult {
1113
+ /** Inclusive lower bound of the range */
1114
+ from?: number | null;
1115
+ /** Exclusive upper bound of the range */
1116
+ to?: number | null;
1117
+ /** Count of entities in this range */
1118
+ count?: number | null;
1119
+ }
1120
+ export interface ScalarResult {
1121
+ /** Value of the scalar aggregation */
1122
+ value?: number;
1123
+ }
1124
+ export interface NestedResultValue extends NestedResultValueResultOneOf {
1125
+ /** Value aggregation result */
1126
+ value?: ValueResult;
1127
+ /** Range aggregation result */
1128
+ range?: RangeResult;
1129
+ /** Scalar aggregation result */
1130
+ scalar?: ScalarResult;
1131
+ /** Date histogram aggregation result */
1132
+ dateHistogram?: ValueResult;
1133
+ }
1134
+ /** @oneof */
1135
+ export interface NestedResultValueResultOneOf {
1136
+ /** Value aggregation result */
1137
+ value?: ValueResult;
1138
+ /** Range aggregation result */
1139
+ range?: RangeResult;
1140
+ /** Scalar aggregation result */
1141
+ scalar?: ScalarResult;
1142
+ /** Date histogram aggregation result */
1143
+ dateHistogram?: ValueResult;
1144
+ }
1145
+ export interface Results {
1146
+ /** List of nested aggregations */
1147
+ results?: Record<string, NestedResultValue>;
1148
+ }
1149
+ export interface DateHistogramResult {
1150
+ /**
1151
+ * Date in ISO 8601 format
1152
+ * @maxLength 100
1153
+ */
1154
+ value?: string;
1155
+ /** Count of documents in the bucket */
1156
+ count?: number;
1157
+ }
1158
+ export interface GroupByValueResults {
1159
+ /**
1160
+ * List of value aggregations
1161
+ * @maxSize 1000
1162
+ */
1163
+ results?: NestedValueAggregationResult[];
1164
+ }
1165
+ export interface DateHistogramResults {
1166
+ /**
1167
+ * List of date histogram aggregations
1168
+ * @maxSize 200
1169
+ */
1170
+ results?: DateHistogramResult[];
1171
+ }
1172
+ /**
1173
+ * Results of `NESTED` aggregation type in a flattened form
1174
+ * aggregations in resulting array are keyed by requested aggregation `name`.
1175
+ */
1176
+ export interface NestedResults {
1177
+ /**
1178
+ * List of nested aggregations
1179
+ * @maxSize 1000
1180
+ */
1181
+ results?: Results[];
1182
+ }
1183
+ export interface AggregationResults extends AggregationResultsResultOneOf {
1184
+ /** Value aggregation results */
1185
+ values?: ValueResults;
1186
+ /** Range aggregation results */
1187
+ ranges?: RangeResults;
1188
+ /** Scalar aggregation results */
1189
+ scalar?: AggregationResultsScalarResult;
1190
+ /** Group by value aggregation results */
1191
+ groupedByValue?: GroupByValueResults;
1192
+ /** Date histogram aggregation results */
1193
+ dateHistogram?: DateHistogramResults;
1194
+ /** Nested aggregation results */
1195
+ nested?: NestedResults;
1196
+ /**
1197
+ * User-defined name of aggregation as derived from search request
1198
+ * @maxLength 100
1199
+ */
1200
+ name?: string;
1201
+ /** Type of aggregation that must match provided kind as derived from search request */
1202
+ type?: AggregationType;
1203
+ /**
1204
+ * Field to aggregate by as derived from search request
1205
+ * @maxLength 200
1206
+ */
1207
+ fieldPath?: string;
1208
+ }
1209
+ /** @oneof */
1210
+ export interface AggregationResultsResultOneOf {
1211
+ /** Value aggregation results */
1212
+ values?: ValueResults;
1213
+ /** Range aggregation results */
1214
+ ranges?: RangeResults;
1215
+ /** Scalar aggregation results */
1216
+ scalar?: AggregationResultsScalarResult;
1217
+ /** Group by value aggregation results */
1218
+ groupedByValue?: GroupByValueResults;
1219
+ /** Date histogram aggregation results */
1220
+ dateHistogram?: DateHistogramResults;
1221
+ /** Nested aggregation results */
1222
+ nested?: NestedResults;
1223
+ }
1224
+ export interface DeprecatedSearchVariantsWithOffsetRequest {
1225
+ /** Filter and sort with limit/offset based paging */
1226
+ search?: PlatformOffsetSearch;
1227
+ /**
1228
+ * A list of requested fields to be included in the response.
1229
+ * @maxSize 100
1230
+ */
1231
+ fields?: RequestedFields[];
1232
+ }
1233
+ export interface PlatformOffsetSearch extends PlatformOffsetSearchPagingMethodOneOf {
1234
+ /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */
1235
+ paging?: PlatformPaging;
1236
+ /** A filter object. Learn more about [API query language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language). */
1237
+ filter?: Record<string, any> | null;
1238
+ /** Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}] */
1239
+ sort?: CommonSorting[];
1240
+ /** Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition. */
1241
+ aggregations?: CommonAggregation[];
1242
+ /** free text to match in searchable fields */
1243
+ search?: CommonSearchDetails;
1244
+ }
1245
+ /** @oneof */
1246
+ export interface PlatformOffsetSearchPagingMethodOneOf {
1247
+ /** Pointer to page of results using offset. Can not be used together with 'cursor_paging' */
1248
+ paging?: PlatformPaging;
1249
+ }
1250
+ export interface CommonSorting {
1251
+ /**
1252
+ * Name of the field to sort by.
1253
+ * @maxLength 512
1254
+ */
1255
+ fieldName?: string;
1256
+ /** Sort order. */
1257
+ order?: CommonSortOrder;
1258
+ }
1259
+ export declare enum CommonSortOrder {
1260
+ ASC = "ASC",
1261
+ DESC = "DESC"
1262
+ }
1263
+ export interface CommonAggregation extends CommonAggregationKindOneOf {
1264
+ /** Value aggregation. */
1265
+ value?: AggregationValueAggregation;
1266
+ /** Range aggregation. */
1267
+ range?: AggregationRangeAggregation;
1268
+ /** Scalar aggregation. */
1269
+ scalar?: AggregationScalarAggregation;
1270
+ /** Date histogram aggregation. */
1271
+ dateHistogram?: AggregationDateHistogramAggregation;
1272
+ /** Nested aggregation. */
1273
+ nested?: AggregationNestedAggregation;
1274
+ /**
1275
+ * User-defined name of aggregation, should be unique, will appear in aggregation results.
1276
+ * @maxLength 100
1277
+ */
1278
+ name?: string | null;
1279
+ /** Type of aggregation, client must provide matching aggregation field below. */
1280
+ type?: CommonAggregationType;
1281
+ /**
1282
+ * Field to aggregate by, use dot notation to specify json path.
1283
+ * @maxLength 200
1284
+ */
1285
+ fieldPath?: string;
1286
+ /**
1287
+ * Deprecated. Use `nested` instead.
1288
+ * @deprecated Deprecated. Use `nested` instead.
1289
+ * @replacedBy kind.nested
1290
+ * @targetRemovalDate 2024-03-30
1291
+ */
1292
+ groupBy?: GroupByAggregation;
1293
+ }
1294
+ /** @oneof */
1295
+ export interface CommonAggregationKindOneOf {
1296
+ /** Value aggregation. */
1297
+ value?: AggregationValueAggregation;
1298
+ /** Range aggregation. */
1299
+ range?: AggregationRangeAggregation;
1300
+ /** Scalar aggregation. */
1301
+ scalar?: AggregationScalarAggregation;
1302
+ /** Date histogram aggregation. */
1303
+ dateHistogram?: AggregationDateHistogramAggregation;
1304
+ /** Nested aggregation. */
1305
+ nested?: AggregationNestedAggregation;
1306
+ }
1307
+ export interface RangeAggregationRangeBucket {
1308
+ /** Inclusive lower bound of the range. Required if `to` is not provided. */
1309
+ from?: number | null;
1310
+ /** Exclusive upper bound of the range. Required if `from` is not provided. */
1311
+ to?: number | null;
1312
+ }
1313
+ export declare enum ValueAggregationSortType {
1314
+ /** Sort by number of matches. */
1315
+ COUNT = "COUNT",
1316
+ /** Sort by value of the field alphabetically. */
1317
+ VALUE = "VALUE"
1318
+ }
1319
+ export declare enum ValueAggregationSortDirection {
1320
+ /** Sort in descending order. */
1321
+ DESC = "DESC",
1322
+ /** Sort in ascending order. */
1323
+ ASC = "ASC"
1324
+ }
1325
+ export declare enum ValueAggregationMissingValues {
1326
+ /** Exclude missing values from the aggregation results. */
1327
+ EXCLUDE = "EXCLUDE",
1328
+ /** Include missing values in the aggregation results. */
1329
+ INCLUDE = "INCLUDE"
1330
+ }
1331
+ export interface ValueAggregationIncludeMissingValuesOptions {
1332
+ /**
1333
+ * Specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ...
1334
+ * @maxLength 20
1335
+ */
1336
+ addToBucket?: string;
1337
+ }
1338
+ export declare enum CommonScalarType {
1339
+ UNKNOWN_SCALAR_TYPE = "UNKNOWN_SCALAR_TYPE",
1340
+ /** Count of distinct values. */
1341
+ COUNT_DISTINCT = "COUNT_DISTINCT",
1342
+ /** Minimum value. */
1343
+ MIN = "MIN",
1344
+ /** Maximum value. */
1345
+ MAX = "MAX"
1346
+ }
1347
+ export interface AggregationValueAggregation extends AggregationValueAggregationOptionsOneOf {
1348
+ /** Options for including missing values. */
1349
+ includeOptions?: ValueAggregationIncludeMissingValuesOptions;
1350
+ /** Whether to sort by number of matches or value of the field. */
1351
+ sortType?: ValueAggregationSortType;
1352
+ /** Whether to sort in ascending or descending order. */
1353
+ sortDirection?: ValueAggregationSortDirection;
1354
+ /** How many aggregations to return. Can be between 1 and 250. 10 is the default. */
1355
+ limit?: number | null;
1356
+ /** Whether to include or exclude missing values from the aggregation results. Default: `EXCLUDE`. */
1357
+ missingValues?: ValueAggregationMissingValues;
1358
+ }
1359
+ /** @oneof */
1360
+ export interface AggregationValueAggregationOptionsOneOf {
1361
+ /** Options for including missing values. */
1362
+ includeOptions?: ValueAggregationIncludeMissingValuesOptions;
1363
+ }
1364
+ export declare enum NestedAggregationNestedAggregationType {
1365
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
1366
+ /** An aggregation where result buckets are dynamically built - one per unique value. */
1367
+ VALUE = "VALUE",
1368
+ /** An aggregation, where user can define set of ranges - each representing a bucket. */
1369
+ RANGE = "RANGE",
1370
+ /** A single-value metric aggregation. For example, min, max, sum, avg. */
1371
+ SCALAR = "SCALAR",
1372
+ /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.). */
1373
+ DATE_HISTOGRAM = "DATE_HISTOGRAM"
1374
+ }
1375
+ export interface AggregationRangeAggregation {
1376
+ /**
1377
+ * List of range buckets, where during aggregation each entity will be placed in the first bucket its value falls into, based on the provided range bounds.
1378
+ * @maxSize 50
1379
+ */
1380
+ buckets?: RangeAggregationRangeBucket[];
1381
+ }
1382
+ export interface AggregationScalarAggregation {
1383
+ /** Define the operator for the scalar aggregation. */
1384
+ type?: CommonScalarType;
1385
+ }
1386
+ export interface AggregationDateHistogramAggregation {
1387
+ /** Interval for date histogram aggregation. */
1388
+ interval?: DateHistogramAggregationInterval;
1389
+ }
1390
+ export declare enum DateHistogramAggregationInterval {
1391
+ UNKNOWN_INTERVAL = "UNKNOWN_INTERVAL",
1392
+ /** Yearly interval */
1393
+ YEAR = "YEAR",
1394
+ /** Monthly interval */
1395
+ MONTH = "MONTH",
1396
+ /** Weekly interval */
1397
+ WEEK = "WEEK",
1398
+ /** Daily interval */
1399
+ DAY = "DAY",
1400
+ /** Hourly interval */
1401
+ HOUR = "HOUR",
1402
+ /** Minute interval */
1403
+ MINUTE = "MINUTE",
1404
+ /** Second interval */
1405
+ SECOND = "SECOND"
1406
+ }
1407
+ export interface NestedAggregationNestedAggregationItem extends NestedAggregationNestedAggregationItemKindOneOf {
1408
+ /** Value aggregation. */
1409
+ value?: AggregationValueAggregation;
1410
+ /** Range aggregation. */
1411
+ range?: AggregationRangeAggregation;
1412
+ /** Scalar aggregation. */
1413
+ scalar?: AggregationScalarAggregation;
1414
+ /** Date histogram aggregation. */
1415
+ dateHistogram?: AggregationDateHistogramAggregation;
1416
+ /**
1417
+ * User-defined name of aggregation, should be unique, will appear in aggregation results.
1418
+ * @maxLength 100
1419
+ */
1420
+ name?: string | null;
1421
+ /** Type of aggregation, client must provide matching aggregation field below. */
1422
+ type?: NestedAggregationNestedAggregationType;
1423
+ /**
1424
+ * Field to aggregate by, use dot notation to specify json path.
1425
+ * @maxLength 200
1426
+ */
1427
+ fieldPath?: string;
1428
+ }
1429
+ /** @oneof */
1430
+ export interface NestedAggregationNestedAggregationItemKindOneOf {
1431
+ /** Value aggregation. */
1432
+ value?: AggregationValueAggregation;
1433
+ /** Range aggregation. */
1434
+ range?: AggregationRangeAggregation;
1435
+ /** Scalar aggregation. */
1436
+ scalar?: AggregationScalarAggregation;
1437
+ /** Date histogram aggregation. */
1438
+ dateHistogram?: AggregationDateHistogramAggregation;
1439
+ }
1440
+ export declare enum CommonAggregationType {
1441
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
1442
+ /** An aggregation where result buckets are dynamically built - one per unique value. */
1443
+ VALUE = "VALUE",
1444
+ /** An aggregation, where user can define set of ranges - each representing a bucket. */
1445
+ RANGE = "RANGE",
1446
+ /** A single-value metric aggregation. For example, min, max, sum, avg. */
1447
+ SCALAR = "SCALAR",
1448
+ /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
1449
+ DATE_HISTOGRAM = "DATE_HISTOGRAM",
1450
+ /** Multi-level aggregation, where each next aggregation is nested within previous one. */
1451
+ NESTED = "NESTED"
1452
+ }
1453
+ /** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */
1454
+ export interface AggregationNestedAggregation {
1455
+ /**
1456
+ * Flattened list of aggregations, where each next aggregation is nested within previous one.
1457
+ * @minSize 2
1458
+ * @maxSize 3
1459
+ */
1460
+ nestedAggregations?: NestedAggregationNestedAggregationItem[];
1461
+ }
1462
+ export interface GroupByAggregation extends GroupByAggregationKindOneOf {
1463
+ /** Value aggregation configuration. */
1464
+ value?: AggregationValueAggregation;
1465
+ /**
1466
+ * User-defined name of aggregation, should be unique, will appear in aggregation results.
1467
+ * @maxLength 100
1468
+ */
1469
+ name?: string | null;
1470
+ /**
1471
+ * Field to aggregate by.
1472
+ * @maxLength 200
1473
+ */
1474
+ fieldPath?: string;
1475
+ }
1476
+ /** @oneof */
1477
+ export interface GroupByAggregationKindOneOf {
1478
+ /** Value aggregation configuration. */
1479
+ value?: AggregationValueAggregation;
1480
+ }
1481
+ export interface CommonSearchDetails {
1482
+ /** Defines how separate search terms in `expression` are combined. */
1483
+ mode?: SearchDetailsMode;
1484
+ /**
1485
+ * Search term or expression.
1486
+ * @maxLength 100
1487
+ */
1488
+ expression?: string | null;
1489
+ /**
1490
+ * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path.
1491
+ * @maxLength 200
1492
+ * @maxSize 20
1493
+ */
1494
+ fields?: string[];
1495
+ /** Whether to use auto fuzzy search (allowing typos by a managed proximity algorithm). */
1496
+ fuzzy?: boolean;
1497
+ }
1498
+ export declare enum SearchDetailsMode {
1499
+ /** Any of the search terms must be present. */
1500
+ OR = "OR",
1501
+ /** All search terms must be present. */
1502
+ AND = "AND"
1503
+ }
1504
+ export interface PlatformPaging {
1505
+ /**
1506
+ * Number of items to load.
1507
+ * @max 100
1508
+ */
1509
+ limit?: number | null;
1510
+ /** Number of items to skip in the current sort order. */
1511
+ offset?: number | null;
1512
+ }
1513
+ export interface DeprecatedSearchVariantsWithOffsetResponse {
1514
+ /** Products which satisfy the provided query. */
1515
+ variants?: ReadOnlyVariant[];
1516
+ /** Paging metadata. */
1517
+ pagingMetadata?: PagingMetadata;
1518
+ /** Aggregation data. */
1519
+ aggregationData?: AggregationData;
1520
+ }
1521
+ export interface PagingMetadata {
1522
+ /** Number of items returned in the response. */
1523
+ count?: number | null;
1524
+ /** Offset that was requested. */
1525
+ offset?: number | null;
1526
+ /** Total number of items that match the query. */
1527
+ total?: number | null;
1528
+ /** Flag that indicates the server failed to calculate the `total` field. */
1529
+ tooManyToCount?: boolean | null;
1530
+ }
1531
+ export interface MigrateProductVariantsRequest {
1532
+ /** The product */
1533
+ product?: Product;
1534
+ /** The event sequence number of the product. */
1535
+ eventSequence?: string | null;
1536
+ }
1537
+ export interface Product extends ProductTypedPropertiesOneOf {
1538
+ /**
1539
+ * Physical properties.
1540
+ *
1541
+ * Required when `productType: PHYSICAL`.
1542
+ */
1543
+ physicalProperties?: PhysicalProperties;
1544
+ /**
1545
+ * Product ID.
1546
+ * @minLength 1
1547
+ * @maxLength 36
1548
+ * @immutable
1549
+ * @readonly
1550
+ */
1551
+ id?: string | null;
1552
+ /**
1553
+ * Revision number, which increments by 1 each time the product is updated.
1554
+ * To prevent conflicting changes,
1555
+ * the current revision must be passed when updating the product.
1556
+ *
1557
+ * Ignored when creating a product.
1558
+ * @readonly
1559
+ */
1560
+ revision?: string | null;
1561
+ /**
1562
+ * Date and time the product was created.
1563
+ * @readonly
1564
+ */
1565
+ createdDate?: Date | null;
1566
+ /**
1567
+ * Date and time the product was updated.
1568
+ * @readonly
1569
+ */
1570
+ updatedDate?: Date | null;
1571
+ /**
1572
+ * Product name. Translatable.
1573
+ * @minLength 1
1574
+ * @maxLength 80
1575
+ */
1576
+ name?: string | null;
1577
+ /**
1578
+ * Product slug.
1579
+ *
1580
+ * If not provided, the slug is autogenerated based on the product name.
1581
+ * @format URL_SLUG
1582
+ */
1583
+ slug?: string | null;
1584
+ /**
1585
+ * URL to the site's product page.
1586
+ *
1587
+ * > **Note:** Returned only when you pass `"URL"` to the `fields` array in Products API requests.
1588
+ * @readonly
1589
+ */
1590
+ url?: PageUrlV2;
1591
+ /**
1592
+ * Product description using rich content.
1593
+ * > **Note:** Returned only when you pass `"DESCRIPTION"` to the `fields` array in Products API requests.
1594
+ *
1595
+ * <widget src="https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component" plugins="indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor" exampleid="7dc9240e-d548-417a-abcf-0291b68b4303">
1596
+ * <a href="https://dev.wix.com/docs/ricos/api-reference/ricos-document">See Ricos document reference</a>
1597
+ * </widget>
1598
+ */
1599
+ description?: RichContent;
1600
+ /**
1601
+ * Product description in HTML.
1602
+ *
1603
+ * + When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.
1604
+ * + `plainDescription` is ignored when value is also passed to the `description` field.
1605
+ * > **Note:** Returned only when you pass `"PLAIN_DESCRIPTION"` to the `fields` array in Products API requests.
1606
+ * @maxLength 16000
1607
+ */
1608
+ plainDescription?: string | null;
1609
+ /**
1610
+ * Whether the product is visible to site visitors on the site.
1611
+ *
1612
+ * Default: `true`
1613
+ */
1614
+ visible?: boolean | null;
1615
+ /**
1616
+ * Whether the product is visible in POS (point of sale).
1617
+ *
1618
+ * Default: `true`
1619
+ * > **Note:** Always `false` for `productType: DIGITAL`.
1620
+ */
1621
+ visibleInPos?: boolean | null;
1622
+ /** Product media items. */
1623
+ media?: Media;
1624
+ /** Product SEO data. */
1625
+ seoData?: SeoSchema;
1626
+ /**
1627
+ * Tax group ID.
1628
+ * @format GUID
1629
+ */
1630
+ taxGroupId?: string | null;
1631
+ /**
1632
+ * Product options. Allows the customer to customize the product. For example, selecting color, size, and more.
1633
+ *
1634
+ * Always generates variants: every variant must have exactly one choice related to each option.
1635
+ * Since options and variants tightly coupled and rely on each other they usually should be provided together in all operations.
1636
+ * @maxSize 6
1637
+ */
1638
+ options?: ConnectedOption[];
1639
+ /**
1640
+ * Product modifiers.
1641
+ *
1642
+ * Allows the customer to customize product, e.g. select Color, Size and so on similarly to `options` but with one main difference - `modifiers` never generate any variants.
1643
+ * @maxSize 10
1644
+ */
1645
+ modifiers?: ConnectedModifier[];
1646
+ /**
1647
+ * Product brand.
1648
+ *
1649
+ * + Pass `brand.name` to add a new brand while creating a product.
1650
+ * + Pass an existing brand's `id` to assign that brand to the product.
1651
+ */
1652
+ brand?: Brand;
1653
+ /**
1654
+ * Product info section.
1655
+ *
1656
+ * + Pass `infoSection.uniqueName`, `infoSection.title`, and `infoSection.description` to add a new info section while creating a product.
1657
+ * + Pass an existing info section's `id` or `uniqueName` to assign that info section to the product.
1658
+ * @maxSize 10
1659
+ */
1660
+ infoSections?: InfoSection[];
1661
+ /**
1662
+ * Product ribbon.
1663
+ *
1664
+ * + Pass `ribbon.name` to add a new ribbon while creating a product.
1665
+ * + Pass an existing ribbon's `id` or `name` to assign that ribbon to the product.
1666
+ */
1667
+ ribbon?: Ribbon;
1668
+ /**
1669
+ * List of categories that directly contain this product.
1670
+ *
1671
+ * Updated automatically when a product is added/removed from a category, when an item is moved within a category, or when a category is deleted.
1672
+ * > **Note:** Returned only when you pass `"DIRECT_CATEGORIES_INFO"` to the `fields` array in Products API requests.
1673
+ * @readonly
1674
+ */
1675
+ directCategoriesInfo?: ProductCategoriesInfo;
1676
+ /**
1677
+ * List of categories that directly contain this product, as well as their parent categories.
1678
+ * > **Note:** Returned only when you pass `"ALL_CATEGORIES_INFO"` to the `fields` array in Products API requests.
1679
+ * @readonly
1680
+ */
1681
+ allCategoriesInfo?: ProductCategoriesInfo;
1682
+ /**
1683
+ * Main category ID.
1684
+ * @format GUID
1685
+ */
1686
+ mainCategoryId?: string | null;
1687
+ /**
1688
+ * Product cost range - minimum and maximum costs of all product variants.
1689
+ *
1690
+ * > **Note:** Returned only when the following conditions are met:
1691
+ * > + You pass `"MERCHANT_DATA"` to the `fields` array in Products API requests.
1692
+ * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.
1693
+ * @readonly
1694
+ */
1695
+ costRange?: PriceRange;
1696
+ /**
1697
+ * Product inventory info.
1698
+ * @readonly
1699
+ */
1700
+ inventory?: Inventory;
1701
+ /**
1702
+ * Product type.
1703
+ *
1704
+ * When passing `productType: PHYSICAL`, you must also pass `physicalProperties`.
1705
+ * @immutable
1706
+ */
1707
+ productType?: ProductType;
1708
+ /**
1709
+ * A unique human-friendly identifier for the product.
1710
+ * Unlike the product ID, the handle can be set by the user to ensure consistency across multiple platforms.
1711
+ * In case handle wasn't given, the handle will be automatically generated.
1712
+ * @minLength 1
1713
+ * @maxLength 100
1714
+ * @readonly
1715
+ */
1716
+ handle?: string | null;
1717
+ /**
1718
+ * Currency used for the pricing of this product, in [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) format.
1719
+ *
1720
+ * Defaults to the currency defined in the site settings, unless specified in `x-wix-currency` header.
1721
+ * > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
1722
+ * @format CURRENCY
1723
+ * @readonly
1724
+ */
1725
+ currency?: string | null;
1726
+ /**
1727
+ * Breadcrumbs of the `mainCategoryId`. Used to navigate to parent categories.
1728
+ * > **Note:** Returned only when you pass `"BREADCRUMBS_INFO"` to the `fields` array in Products API requests.
1729
+ * @readonly
1730
+ */
1731
+ breadcrumbsInfo?: BreadcrumbsInfo;
1732
+ /**
1733
+ * Product actualPrice range - minimum and maximum prices of all product variants.
1734
+ * @readonly
1735
+ */
1736
+ actualPriceRange?: PriceRange;
1737
+ /**
1738
+ * Product compareAtPrice range - minimum and maximum compare at prices of all product variants.
1739
+ * @readonly
1740
+ */
1741
+ compareAtPriceRange?: PriceRange;
1742
+ /**
1743
+ * Product variants. Each variant must reference all product options via its `choices` array.
1744
+ * Each choice references an option using `optionChoiceNames` for all requests.
1745
+ */
1746
+ variantsInfo?: VariantsInfo;
1747
+ /**
1748
+ * Custom extended fields for the product object.
1749
+ *
1750
+ * [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields) must be configured in the app dashboard before they can be accessed with API calls.
1751
+ */
1752
+ extendedFields?: ExtendedFields;
1753
+ /** Product subscriptions. */
1754
+ subscriptionDetails?: SubscriptionDetails;
1755
+ /**
1756
+ * The total number of variants for the product.
1757
+ * @readonly
1758
+ */
1759
+ variantSummary?: VariantSummary;
1760
+ }
1761
+ /** @oneof */
1762
+ export interface ProductTypedPropertiesOneOf {
1763
+ /**
1764
+ * Physical properties.
1765
+ *
1766
+ * Required when `productType: PHYSICAL`.
1767
+ */
1768
+ physicalProperties?: PhysicalProperties;
1769
+ }
1770
+ export interface PageUrlV2 {
1771
+ /** The relative path for the page within the site. For example, `/product-page/a-product`. */
1772
+ relativePath?: string;
1773
+ /** The page's full URL. For example, `https://mysite.com/product-page/a-product`. */
1774
+ url?: string | null;
1775
+ }
1776
+ export interface RichContent {
1777
+ /** Node objects representing a rich content document. */
1778
+ nodes?: Node[];
1779
+ /** Object metadata. */
1780
+ metadata?: Metadata;
1781
+ /** Global styling for header, paragraph, block quote, and code block nodes in the object. */
1782
+ documentStyle?: DocumentStyle;
1783
+ }
1784
+ export interface Node extends NodeDataOneOf {
1785
+ /** Data for a button node. */
1786
+ buttonData?: ButtonData;
1787
+ /** Data for a code block node. */
1788
+ codeBlockData?: CodeBlockData;
1789
+ /** Data for a divider node. */
1790
+ dividerData?: DividerData;
1791
+ /** Data for a file node. */
1792
+ fileData?: FileData;
1793
+ /** Data for a gallery node. */
1794
+ galleryData?: GalleryData;
1795
+ /** Data for a GIF node. */
1796
+ gifData?: GIFData;
1797
+ /** Data for a heading node. */
1798
+ headingData?: HeadingData;
1799
+ /** Data for an embedded HTML node. */
1800
+ htmlData?: HTMLData;
1801
+ /** Data for an image node. */
1802
+ imageData?: ImageData;
1803
+ /** Data for a link preview node. */
1804
+ linkPreviewData?: LinkPreviewData;
1805
+ /** @deprecated */
1806
+ mapData?: MapData;
1807
+ /** Data for a paragraph node. */
1808
+ paragraphData?: ParagraphData;
1809
+ /** Data for a poll node. */
1810
+ pollData?: PollData;
1811
+ /** Data for a text node. Used to apply decorations to text. */
1812
+ textData?: TextData;
1813
+ /** Data for an app embed node. */
1814
+ appEmbedData?: AppEmbedData;
1815
+ /** Data for a video node. */
1816
+ videoData?: VideoData;
1817
+ /** Data for an oEmbed node. */
1818
+ embedData?: EmbedData;
1819
+ /** Data for a collapsible list node. */
1820
+ collapsibleListData?: CollapsibleListData;
1821
+ /** Data for a table node. */
1822
+ tableData?: TableData;
1823
+ /** Data for a table cell node. */
1824
+ tableCellData?: TableCellData;
1825
+ /** Data for a custom external node. */
1826
+ externalData?: Record<string, any> | null;
1827
+ /** Data for an audio node. */
1828
+ audioData?: AudioData;
1829
+ /** Data for an ordered list node. */
1830
+ orderedListData?: OrderedListData;
1831
+ /** Data for a bulleted list node. */
1832
+ bulletedListData?: BulletedListData;
1833
+ /** Data for a block quote node. */
1834
+ blockquoteData?: BlockquoteData;
1835
+ /** Data for a caption node. */
1836
+ captionData?: CaptionData;
1837
+ /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */
1838
+ layoutCellData?: LayoutCellData;
1839
+ /** Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format. */
1840
+ type?: NodeType;
1841
+ /** Node ID. */
1842
+ id?: string;
1843
+ /** A list of child nodes. */
1844
+ nodes?: Node[];
1845
+ /** Padding and background color styling for the node. */
1846
+ style?: NodeStyle;
1847
+ }
1848
+ /** @oneof */
1849
+ export interface NodeDataOneOf {
1850
+ /** Data for a button node. */
1851
+ buttonData?: ButtonData;
1852
+ /** Data for a code block node. */
1853
+ codeBlockData?: CodeBlockData;
1854
+ /** Data for a divider node. */
1855
+ dividerData?: DividerData;
1856
+ /** Data for a file node. */
1857
+ fileData?: FileData;
1858
+ /** Data for a gallery node. */
1859
+ galleryData?: GalleryData;
1860
+ /** Data for a GIF node. */
1861
+ gifData?: GIFData;
1862
+ /** Data for a heading node. */
1863
+ headingData?: HeadingData;
1864
+ /** Data for an embedded HTML node. */
1865
+ htmlData?: HTMLData;
1866
+ /** Data for an image node. */
1867
+ imageData?: ImageData;
1868
+ /** Data for a link preview node. */
1869
+ linkPreviewData?: LinkPreviewData;
1870
+ /** @deprecated */
1871
+ mapData?: MapData;
1872
+ /** Data for a paragraph node. */
1873
+ paragraphData?: ParagraphData;
1874
+ /** Data for a poll node. */
1875
+ pollData?: PollData;
1876
+ /** Data for a text node. Used to apply decorations to text. */
1877
+ textData?: TextData;
1878
+ /** Data for an app embed node. */
1879
+ appEmbedData?: AppEmbedData;
1880
+ /** Data for a video node. */
1881
+ videoData?: VideoData;
1882
+ /** Data for an oEmbed node. */
1883
+ embedData?: EmbedData;
1884
+ /** Data for a collapsible list node. */
1885
+ collapsibleListData?: CollapsibleListData;
1886
+ /** Data for a table node. */
1887
+ tableData?: TableData;
1888
+ /** Data for a table cell node. */
1889
+ tableCellData?: TableCellData;
1890
+ /** Data for a custom external node. */
1891
+ externalData?: Record<string, any> | null;
1892
+ /** Data for an audio node. */
1893
+ audioData?: AudioData;
1894
+ /** Data for an ordered list node. */
1895
+ orderedListData?: OrderedListData;
1896
+ /** Data for a bulleted list node. */
1897
+ bulletedListData?: BulletedListData;
1898
+ /** Data for a block quote node. */
1899
+ blockquoteData?: BlockquoteData;
1900
+ /** Data for a caption node. */
1901
+ captionData?: CaptionData;
1902
+ /** LayoutData layout_data = 31; // Data for a layout node. Reserved for future use. */
1903
+ layoutCellData?: LayoutCellData;
1904
+ }
1905
+ export declare enum NodeType {
1906
+ PARAGRAPH = "PARAGRAPH",
1907
+ TEXT = "TEXT",
1908
+ HEADING = "HEADING",
1909
+ BULLETED_LIST = "BULLETED_LIST",
1910
+ ORDERED_LIST = "ORDERED_LIST",
1911
+ LIST_ITEM = "LIST_ITEM",
1912
+ BLOCKQUOTE = "BLOCKQUOTE",
1913
+ CODE_BLOCK = "CODE_BLOCK",
1914
+ VIDEO = "VIDEO",
1915
+ DIVIDER = "DIVIDER",
1916
+ FILE = "FILE",
1917
+ GALLERY = "GALLERY",
1918
+ GIF = "GIF",
1919
+ HTML = "HTML",
1920
+ IMAGE = "IMAGE",
1921
+ LINK_PREVIEW = "LINK_PREVIEW",
1922
+ /** @deprecated */
1923
+ MAP = "MAP",
1924
+ POLL = "POLL",
1925
+ APP_EMBED = "APP_EMBED",
1926
+ BUTTON = "BUTTON",
1927
+ COLLAPSIBLE_LIST = "COLLAPSIBLE_LIST",
1928
+ TABLE = "TABLE",
1929
+ EMBED = "EMBED",
1930
+ COLLAPSIBLE_ITEM = "COLLAPSIBLE_ITEM",
1931
+ COLLAPSIBLE_ITEM_TITLE = "COLLAPSIBLE_ITEM_TITLE",
1932
+ COLLAPSIBLE_ITEM_BODY = "COLLAPSIBLE_ITEM_BODY",
1933
+ TABLE_CELL = "TABLE_CELL",
1934
+ TABLE_ROW = "TABLE_ROW",
1935
+ EXTERNAL = "EXTERNAL",
1936
+ AUDIO = "AUDIO",
1937
+ CAPTION = "CAPTION",
1938
+ LAYOUT = "LAYOUT",
1939
+ LAYOUT_CELL = "LAYOUT_CELL"
1940
+ }
1941
+ export interface NodeStyle {
1942
+ /** The top padding value in pixels. */
1943
+ paddingTop?: string | null;
1944
+ /** The bottom padding value in pixels. */
1945
+ paddingBottom?: string | null;
1946
+ /** The background color as a hexadecimal value. */
1947
+ backgroundColor?: string | null;
1948
+ }
1949
+ export interface ButtonData {
1950
+ /** Styling for the button's container. */
1951
+ containerData?: PluginContainerData;
1952
+ /** The button type. */
1953
+ type?: Type;
1954
+ /** Styling for the button. */
1955
+ styles?: Styles;
1956
+ /** The text to display on the button. */
1957
+ text?: string | null;
1958
+ /** Button link details. */
1959
+ link?: Link;
1960
+ }
1961
+ export interface Border {
1962
+ /**
1963
+ * Deprecated: Use `borderWidth` in `styles` instead.
1964
+ * @deprecated
1965
+ */
1966
+ width?: number | null;
1967
+ /**
1968
+ * Deprecated: Use `borderRadius` in `styles` instead.
1969
+ * @deprecated
1970
+ */
1971
+ radius?: number | null;
1972
+ }
1973
+ export interface Colors {
1974
+ /**
1975
+ * Deprecated: Use `textColor` in `styles` instead.
1976
+ * @deprecated
1977
+ */
1978
+ text?: string | null;
1979
+ /**
1980
+ * Deprecated: Use `borderColor` in `styles` instead.
1981
+ * @deprecated
1982
+ */
1983
+ border?: string | null;
1984
+ /**
1985
+ * Deprecated: Use `backgroundColor` in `styles` instead.
1986
+ * @deprecated
1987
+ */
1988
+ background?: string | null;
1989
+ }
1990
+ export interface PluginContainerData {
1991
+ /** The width of the node when it's displayed. */
1992
+ width?: PluginContainerDataWidth;
1993
+ /** The node's alignment within its container. */
1994
+ alignment?: PluginContainerDataAlignment;
1995
+ /** Spoiler cover settings for the node. */
1996
+ spoiler?: Spoiler;
1997
+ /** The height of the node when it's displayed. */
1998
+ height?: Height;
1999
+ /** Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */
2000
+ textWrap?: boolean | null;
2001
+ }
2002
+ export declare enum WidthType {
2003
+ /** Width matches the content width */
2004
+ CONTENT = "CONTENT",
2005
+ /** Small Width */
2006
+ SMALL = "SMALL",
2007
+ /** Width will match the original asset width */
2008
+ ORIGINAL = "ORIGINAL",
2009
+ /** coast-to-coast display */
2010
+ FULL_WIDTH = "FULL_WIDTH"
2011
+ }
2012
+ export interface PluginContainerDataWidth extends PluginContainerDataWidthDataOneOf {
2013
+ /**
2014
+ * One of the following predefined width options:
2015
+ * `CONTENT`: The width of the container matches the content width.
2016
+ * `SMALL`: A small width.
2017
+ * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.
2018
+ * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.
2019
+ */
2020
+ size?: WidthType;
2021
+ /** A custom width value in pixels. */
2022
+ custom?: string | null;
2023
+ }
2024
+ /** @oneof */
2025
+ export interface PluginContainerDataWidthDataOneOf {
2026
+ /**
2027
+ * One of the following predefined width options:
2028
+ * `CONTENT`: The width of the container matches the content width.
2029
+ * `SMALL`: A small width.
2030
+ * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.
2031
+ * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.
2032
+ */
2033
+ size?: WidthType;
2034
+ /** A custom width value in pixels. */
2035
+ custom?: string | null;
2036
+ }
2037
+ export declare enum PluginContainerDataAlignment {
2038
+ /** Center Alignment */
2039
+ CENTER = "CENTER",
2040
+ /** Left Alignment */
2041
+ LEFT = "LEFT",
2042
+ /** Right Alignment */
2043
+ RIGHT = "RIGHT"
2044
+ }
2045
+ export interface Spoiler {
2046
+ /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */
2047
+ enabled?: boolean | null;
2048
+ /** The description displayed on top of the spoiler cover. */
2049
+ description?: string | null;
2050
+ /** The text for the button used to remove the spoiler cover. */
2051
+ buttonText?: string | null;
2052
+ }
2053
+ export interface Height {
2054
+ /** A custom height value in pixels. */
2055
+ custom?: string | null;
2056
+ }
2057
+ export declare enum Type {
2058
+ /** Regular link button */
2059
+ LINK = "LINK",
2060
+ /** Triggers custom action that is defined in plugin configuration by the consumer */
2061
+ ACTION = "ACTION"
2062
+ }
2063
+ export interface Styles {
2064
+ /**
2065
+ * Deprecated: Use `borderWidth` and `borderRadius` instead.
2066
+ * @deprecated
2067
+ */
2068
+ border?: Border;
2069
+ /**
2070
+ * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.
2071
+ * @deprecated
2072
+ */
2073
+ colors?: Colors;
2074
+ /** Border width in pixels. */
2075
+ borderWidth?: number | null;
2076
+ /**
2077
+ * Deprecated: Use `borderWidth` for normal/hover states instead.
2078
+ * @deprecated
2079
+ */
2080
+ borderWidthHover?: number | null;
2081
+ /** Border radius in pixels. */
2082
+ borderRadius?: number | null;
2083
+ /**
2084
+ * Border color as a hexadecimal value.
2085
+ * @format COLOR_HEX
2086
+ */
2087
+ borderColor?: string | null;
2088
+ /**
2089
+ * Border color as a hexadecimal value (hover state).
2090
+ * @format COLOR_HEX
2091
+ */
2092
+ borderColorHover?: string | null;
2093
+ /**
2094
+ * Text color as a hexadecimal value.
2095
+ * @format COLOR_HEX
2096
+ */
2097
+ textColor?: string | null;
2098
+ /**
2099
+ * Text color as a hexadecimal value (hover state).
2100
+ * @format COLOR_HEX
2101
+ */
2102
+ textColorHover?: string | null;
2103
+ /**
2104
+ * Background color as a hexadecimal value.
2105
+ * @format COLOR_HEX
2106
+ */
2107
+ backgroundColor?: string | null;
2108
+ /**
2109
+ * Background color as a hexadecimal value (hover state).
2110
+ * @format COLOR_HEX
2111
+ */
2112
+ backgroundColorHover?: string | null;
2113
+ /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */
2114
+ buttonSize?: string | null;
2115
+ }
2116
+ export interface Link extends LinkDataOneOf {
2117
+ /** The absolute URL for the linked document. */
2118
+ url?: string;
2119
+ /** The target node's ID. Used for linking to another node in this object. */
2120
+ anchor?: string;
2121
+ /**
2122
+ * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:
2123
+ * `SELF` - Default. Opens the linked document in the same frame as the link.
2124
+ * `BLANK` - Opens the linked document in a new browser tab or window.
2125
+ * `PARENT` - Opens the linked document in the link's parent frame.
2126
+ * `TOP` - Opens the linked document in the full body of the link's browser tab or window.
2127
+ */
2128
+ target?: Target;
2129
+ /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */
2130
+ rel?: Rel;
2131
+ /** A serialized object used for a custom or external link panel. */
2132
+ customData?: string | null;
2133
+ }
2134
+ /** @oneof */
2135
+ export interface LinkDataOneOf {
2136
+ /** The absolute URL for the linked document. */
2137
+ url?: string;
2138
+ /** The target node's ID. Used for linking to another node in this object. */
2139
+ anchor?: string;
2140
+ }
2141
+ export declare enum Target {
2142
+ /** Opens the linked document in the same frame as it was clicked (this is default) */
2143
+ SELF = "SELF",
2144
+ /** Opens the linked document in a new window or tab */
2145
+ BLANK = "BLANK",
2146
+ /** Opens the linked document in the parent frame */
2147
+ PARENT = "PARENT",
2148
+ /** Opens the linked document in the full body of the window */
2149
+ TOP = "TOP"
2150
+ }
2151
+ export interface Rel {
2152
+ /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */
2153
+ nofollow?: boolean | null;
2154
+ /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */
2155
+ sponsored?: boolean | null;
2156
+ /** Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. */
2157
+ ugc?: boolean | null;
2158
+ /** Indicates that this link protect referral information from being passed to the target website. */
2159
+ noreferrer?: boolean | null;
2160
+ }
2161
+ export interface CodeBlockData {
2162
+ /** Styling for the code block's text. */
2163
+ textStyle?: TextStyle;
2164
+ }
2165
+ export interface TextStyle {
2166
+ /** Text alignment. Defaults to `AUTO`. */
2167
+ textAlignment?: TextAlignment;
2168
+ /** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */
2169
+ lineHeight?: string | null;
2170
+ }
2171
+ export declare enum TextAlignment {
2172
+ /** browser default, eqivalent to `initial` */
2173
+ AUTO = "AUTO",
2174
+ /** Left align */
2175
+ LEFT = "LEFT",
2176
+ /** Right align */
2177
+ RIGHT = "RIGHT",
2178
+ /** Center align */
2179
+ CENTER = "CENTER",
2180
+ /** Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line */
2181
+ JUSTIFY = "JUSTIFY"
2182
+ }
2183
+ export interface DividerData {
2184
+ /** Styling for the divider's container. */
2185
+ containerData?: PluginContainerData;
2186
+ /** Divider line style. */
2187
+ lineStyle?: LineStyle;
2188
+ /** Divider width. */
2189
+ width?: Width;
2190
+ /** Divider alignment. */
2191
+ alignment?: Alignment;
2192
+ }
2193
+ export declare enum LineStyle {
2194
+ /** Single Line */
2195
+ SINGLE = "SINGLE",
2196
+ /** Double Line */
2197
+ DOUBLE = "DOUBLE",
2198
+ /** Dashed Line */
2199
+ DASHED = "DASHED",
2200
+ /** Dotted Line */
2201
+ DOTTED = "DOTTED"
2202
+ }
2203
+ export declare enum Width {
2204
+ /** Large line */
2205
+ LARGE = "LARGE",
2206
+ /** Medium line */
2207
+ MEDIUM = "MEDIUM",
2208
+ /** Small line */
2209
+ SMALL = "SMALL"
2210
+ }
2211
+ export declare enum Alignment {
2212
+ /** Center alignment */
2213
+ CENTER = "CENTER",
2214
+ /** Left alignment */
2215
+ LEFT = "LEFT",
2216
+ /** Right alignment */
2217
+ RIGHT = "RIGHT"
2218
+ }
2219
+ export interface FileData {
2220
+ /** Styling for the file's container. */
2221
+ containerData?: PluginContainerData;
2222
+ /** The source for the file's data. */
2223
+ src?: FileSource;
2224
+ /** File name. */
2225
+ name?: string | null;
2226
+ /** File type. */
2227
+ type?: string | null;
2228
+ /**
2229
+ * Use `sizeInKb` instead.
2230
+ * @deprecated
2231
+ */
2232
+ size?: number | null;
2233
+ /** Settings for PDF files. */
2234
+ pdfSettings?: PDFSettings;
2235
+ /** File MIME type. */
2236
+ mimeType?: string | null;
2237
+ /** File path. */
2238
+ path?: string | null;
2239
+ /** File size in KB. */
2240
+ sizeInKb?: string | null;
2241
+ }
2242
+ export declare enum ViewMode {
2243
+ /** No PDF view */
2244
+ NONE = "NONE",
2245
+ /** Full PDF view */
2246
+ FULL = "FULL",
2247
+ /** Mini PDF view */
2248
+ MINI = "MINI"
2249
+ }
2250
+ export interface FileSource extends FileSourceDataOneOf {
2251
+ /** The absolute URL for the file's source. */
2252
+ url?: string | null;
2253
+ /**
2254
+ * Custom ID. Use `id` instead.
2255
+ * @deprecated
2256
+ */
2257
+ custom?: string | null;
2258
+ /** An ID that's resolved to a URL by a resolver function. */
2259
+ id?: string | null;
2260
+ /** Indicates whether the file's source is private. Defaults to `false`. */
2261
+ private?: boolean | null;
2262
+ }
2263
+ /** @oneof */
2264
+ export interface FileSourceDataOneOf {
2265
+ /** The absolute URL for the file's source. */
2266
+ url?: string | null;
2267
+ /**
2268
+ * Custom ID. Use `id` instead.
2269
+ * @deprecated
2270
+ */
2271
+ custom?: string | null;
2272
+ /** An ID that's resolved to a URL by a resolver function. */
2273
+ id?: string | null;
2274
+ }
2275
+ export interface PDFSettings {
2276
+ /**
2277
+ * PDF view mode. One of the following:
2278
+ * `NONE` : The PDF isn't displayed.
2279
+ * `FULL` : A full page view of the PDF is displayed.
2280
+ * `MINI` : A mini view of the PDF is displayed.
2281
+ */
2282
+ viewMode?: ViewMode;
2283
+ /** Sets whether the PDF download button is disabled. Defaults to `false`. */
2284
+ disableDownload?: boolean | null;
2285
+ /** Sets whether the PDF print button is disabled. Defaults to `false`. */
2286
+ disablePrint?: boolean | null;
2287
+ }
2288
+ export interface GalleryData {
2289
+ /** Styling for the gallery's container. */
2290
+ containerData?: PluginContainerData;
2291
+ /** The items in the gallery. */
2292
+ items?: Item[];
2293
+ /** Options for defining the gallery's appearance. */
2294
+ options?: GalleryOptions;
2295
+ /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */
2296
+ disableExpand?: boolean | null;
2297
+ /** Sets whether the gallery's download button is disabled. Defaults to `false`. */
2298
+ disableDownload?: boolean | null;
2299
+ }
2300
+ export interface V1Media {
2301
+ /** The source for the media's data. */
2302
+ src?: FileSource;
2303
+ /** Media width in pixels. */
2304
+ width?: number | null;
2305
+ /** Media height in pixels. */
2306
+ height?: number | null;
2307
+ /** Media duration in seconds. Only relevant for audio and video files. */
2308
+ duration?: number | null;
2309
+ }
2310
+ export interface ItemImage {
2311
+ /** Image file details. */
2312
+ media?: V1Media;
2313
+ /** Link details for images that are links. */
2314
+ link?: Link;
2315
+ }
2316
+ export interface Video {
2317
+ /** Video file details. */
2318
+ media?: V1Media;
2319
+ /** Video thumbnail file details. */
2320
+ thumbnail?: V1Media;
2321
+ }
2322
+ export interface Item extends ItemDataOneOf {
2323
+ /** An image item. */
2324
+ image?: ItemImage;
2325
+ /** A video item. */
2326
+ video?: Video;
2327
+ /** Item title. */
2328
+ title?: string | null;
2329
+ /** Item's alternative text. */
2330
+ altText?: string | null;
2331
+ }
2332
+ /** @oneof */
2333
+ export interface ItemDataOneOf {
2334
+ /** An image item. */
2335
+ image?: ItemImage;
2336
+ /** A video item. */
2337
+ video?: Video;
2338
+ }
2339
+ export interface GalleryOptions {
2340
+ /** Gallery layout. */
2341
+ layout?: Layout;
2342
+ /** Styling for gallery items. */
2343
+ item?: ItemStyle;
2344
+ /** Styling for gallery thumbnail images. */
2345
+ thumbnails?: Thumbnails;
2346
+ }
2347
+ export declare enum LayoutType {
2348
+ /** Collage type */
2349
+ COLLAGE = "COLLAGE",
2350
+ /** Masonry type */
2351
+ MASONRY = "MASONRY",
2352
+ /** Grid type */
2353
+ GRID = "GRID",
2354
+ /** Thumbnail type */
2355
+ THUMBNAIL = "THUMBNAIL",
2356
+ /** Slider type */
2357
+ SLIDER = "SLIDER",
2358
+ /** Slideshow type */
2359
+ SLIDESHOW = "SLIDESHOW",
2360
+ /** Panorama type */
2361
+ PANORAMA = "PANORAMA",
2362
+ /** Column type */
2363
+ COLUMN = "COLUMN",
2364
+ /** Magic type */
2365
+ MAGIC = "MAGIC",
2366
+ /** Fullsize images type */
2367
+ FULLSIZE = "FULLSIZE"
2368
+ }
2369
+ export declare enum Orientation {
2370
+ /** Rows Orientation */
2371
+ ROWS = "ROWS",
2372
+ /** Columns Orientation */
2373
+ COLUMNS = "COLUMNS"
2374
+ }
2375
+ export declare enum Crop {
2376
+ /** Crop to fill */
2377
+ FILL = "FILL",
2378
+ /** Crop to fit */
2379
+ FIT = "FIT"
2380
+ }
2381
+ export declare enum ThumbnailsAlignment {
2382
+ /** Top alignment */
2383
+ TOP = "TOP",
2384
+ /** Right alignment */
2385
+ RIGHT = "RIGHT",
2386
+ /** Bottom alignment */
2387
+ BOTTOM = "BOTTOM",
2388
+ /** Left alignment */
2389
+ LEFT = "LEFT",
2390
+ /** No thumbnail */
2391
+ NONE = "NONE"
2392
+ }
2393
+ export interface Layout {
2394
+ /** Gallery layout type. */
2395
+ type?: LayoutType;
2396
+ /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */
2397
+ horizontalScroll?: boolean | null;
2398
+ /** Gallery orientation. */
2399
+ orientation?: Orientation;
2400
+ /** The number of columns to display on full size screens. */
2401
+ numberOfColumns?: number | null;
2402
+ /** The number of columns to display on mobile screens. */
2403
+ mobileNumberOfColumns?: number | null;
2404
+ }
2405
+ export interface ItemStyle {
2406
+ /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */
2407
+ targetSize?: number | null;
2408
+ /** Item ratio */
2409
+ ratio?: number | null;
2410
+ /** Sets how item images are cropped. */
2411
+ crop?: Crop;
2412
+ /** The spacing between items in pixels. */
2413
+ spacing?: number | null;
2414
+ }
2415
+ export interface Thumbnails {
2416
+ /** Thumbnail alignment. */
2417
+ placement?: ThumbnailsAlignment;
2418
+ /** Spacing between thumbnails in pixels. */
2419
+ spacing?: number | null;
2420
+ }
2421
+ export interface GIFData {
2422
+ /** Styling for the GIF's container. */
2423
+ containerData?: PluginContainerData;
2424
+ /** The source of the full size GIF. */
2425
+ original?: GIF;
2426
+ /** The source of the downsized GIF. */
2427
+ downsized?: GIF;
2428
+ /** Height in pixels. */
2429
+ height?: number;
2430
+ /** Width in pixels. */
2431
+ width?: number;
2432
+ /** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */
2433
+ gifType?: GIFType;
2434
+ }
2435
+ export interface GIF {
2436
+ /**
2437
+ * GIF format URL.
2438
+ * @format WEB_URL
2439
+ */
2440
+ gif?: string | null;
2441
+ /**
2442
+ * MP4 format URL.
2443
+ * @format WEB_URL
2444
+ */
2445
+ mp4?: string | null;
2446
+ /**
2447
+ * Thumbnail URL.
2448
+ * @format WEB_URL
2449
+ */
2450
+ still?: string | null;
2451
+ }
2452
+ export declare enum GIFType {
2453
+ NORMAL = "NORMAL",
2454
+ STICKER = "STICKER"
2455
+ }
2456
+ export interface HeadingData {
2457
+ /** Heading level from 1-6. */
2458
+ level?: number;
2459
+ /** Styling for the heading text. */
2460
+ textStyle?: TextStyle;
2461
+ /** Indentation level from 1-4. */
2462
+ indentation?: number | null;
2463
+ }
2464
+ export interface HTMLData extends HTMLDataDataOneOf {
2465
+ /** The URL for the HTML code for the node. */
2466
+ url?: string;
2467
+ /** The HTML code for the node. */
2468
+ html?: string;
2469
+ /**
2470
+ * Whether this is an AdSense element. Use `source` instead.
2471
+ * @deprecated
2472
+ */
2473
+ isAdsense?: boolean | null;
2474
+ /** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */
2475
+ containerData?: PluginContainerData;
2476
+ /** The type of HTML code. */
2477
+ source?: Source;
2478
+ /** If container height is aligned with its content height. Defaults to `true`. */
2479
+ autoHeight?: boolean | null;
2480
+ }
2481
+ /** @oneof */
2482
+ export interface HTMLDataDataOneOf {
2483
+ /** The URL for the HTML code for the node. */
2484
+ url?: string;
2485
+ /** The HTML code for the node. */
2486
+ html?: string;
2487
+ /**
2488
+ * Whether this is an AdSense element. Use `source` instead.
2489
+ * @deprecated
2490
+ */
2491
+ isAdsense?: boolean | null;
2492
+ }
2493
+ export declare enum Source {
2494
+ HTML = "HTML",
2495
+ ADSENSE = "ADSENSE"
2496
+ }
2497
+ export interface ImageData {
2498
+ /** Styling for the image's container. */
2499
+ containerData?: PluginContainerData;
2500
+ /** Image file details. */
2501
+ image?: V1Media;
2502
+ /** Link details for images that are links. */
2503
+ link?: Link;
2504
+ /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */
2505
+ disableExpand?: boolean | null;
2506
+ /** Image's alternative text. */
2507
+ altText?: string | null;
2508
+ /**
2509
+ * Deprecated: use Caption node instead.
2510
+ * @deprecated
2511
+ */
2512
+ caption?: string | null;
2513
+ /** Sets whether the image's download button is disabled. Defaults to `false`. */
2514
+ disableDownload?: boolean | null;
2515
+ /** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */
2516
+ decorative?: boolean | null;
2517
+ /** Styling for the image. */
2518
+ styles?: ImageDataStyles;
2519
+ }
2520
+ export interface StylesBorder {
2521
+ /** Border width in pixels. */
2522
+ width?: number | null;
2523
+ /**
2524
+ * Border color as a hexadecimal value.
2525
+ * @format COLOR_HEX
2526
+ */
2527
+ color?: string | null;
2528
+ /** Border radius in pixels. */
2529
+ radius?: number | null;
2530
+ }
2531
+ export interface ImageDataStyles {
2532
+ /** Border attributes. */
2533
+ border?: StylesBorder;
2534
+ }
2535
+ export interface LinkPreviewData {
2536
+ /** Styling for the link preview's container. */
2537
+ containerData?: PluginContainerData;
2538
+ /** Link details. */
2539
+ link?: Link;
2540
+ /** Preview title. */
2541
+ title?: string | null;
2542
+ /** Preview thumbnail URL. */
2543
+ thumbnailUrl?: string | null;
2544
+ /** Preview description. */
2545
+ description?: string | null;
2546
+ /** The preview content as HTML. */
2547
+ html?: string | null;
2548
+ /** Styling for the link preview. */
2549
+ styles?: LinkPreviewDataStyles;
2550
+ }
2551
+ export declare enum Position {
2552
+ /** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */
2553
+ START = "START",
2554
+ /** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */
2555
+ END = "END",
2556
+ /** Thumbnail positioned at the top */
2557
+ TOP = "TOP",
2558
+ /** Thumbnail hidden and not displayed */
2559
+ HIDDEN = "HIDDEN"
2560
+ }
2561
+ export interface LinkPreviewDataStyles {
2562
+ /**
2563
+ * Background color as a hexadecimal value.
2564
+ * @format COLOR_HEX
2565
+ */
2566
+ backgroundColor?: string | null;
2567
+ /**
2568
+ * Title color as a hexadecimal value.
2569
+ * @format COLOR_HEX
2570
+ */
2571
+ titleColor?: string | null;
2572
+ /**
2573
+ * Subtitle color as a hexadecimal value.
2574
+ * @format COLOR_HEX
2575
+ */
2576
+ subtitleColor?: string | null;
2577
+ /**
2578
+ * Link color as a hexadecimal value.
2579
+ * @format COLOR_HEX
2580
+ */
2581
+ linkColor?: string | null;
2582
+ /** Border width in pixels. */
2583
+ borderWidth?: number | null;
2584
+ /** Border radius in pixels. */
2585
+ borderRadius?: number | null;
2586
+ /**
2587
+ * Border color as a hexadecimal value.
2588
+ * @format COLOR_HEX
2589
+ */
2590
+ borderColor?: string | null;
2591
+ /** Position of thumbnail. Defaults to `START`. */
2592
+ thumbnailPosition?: Position;
2593
+ }
2594
+ export interface MapData {
2595
+ /** Styling for the map's container. */
2596
+ containerData?: PluginContainerData;
2597
+ /** Map settings. */
2598
+ mapSettings?: MapSettings;
2599
+ }
2600
+ export interface MapSettings {
2601
+ /** The address to display on the map. */
2602
+ address?: string | null;
2603
+ /** Sets whether the map is draggable. */
2604
+ draggable?: boolean | null;
2605
+ /** Sets whether the location marker is visible. */
2606
+ marker?: boolean | null;
2607
+ /** Sets whether street view control is enabled. */
2608
+ streetViewControl?: boolean | null;
2609
+ /** Sets whether zoom control is enabled. */
2610
+ zoomControl?: boolean | null;
2611
+ /** Location latitude. */
2612
+ lat?: number | null;
2613
+ /** Location longitude. */
2614
+ lng?: number | null;
2615
+ /** Location name. */
2616
+ locationName?: string | null;
2617
+ /** Sets whether view mode control is enabled. */
2618
+ viewModeControl?: boolean | null;
2619
+ /** Initial zoom value. */
2620
+ initialZoom?: number | null;
2621
+ /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */
2622
+ mapType?: MapType;
2623
+ }
2624
+ export declare enum MapType {
2625
+ /** Roadmap map type */
2626
+ ROADMAP = "ROADMAP",
2627
+ /** Satellite map type */
2628
+ SATELITE = "SATELITE",
2629
+ /** Hybrid map type */
2630
+ HYBRID = "HYBRID",
2631
+ /** Terrain map type */
2632
+ TERRAIN = "TERRAIN"
2633
+ }
2634
+ export interface ParagraphData {
2635
+ /** Styling for the paragraph text. */
2636
+ textStyle?: TextStyle;
2637
+ /** Indentation level from 1-4. */
2638
+ indentation?: number | null;
2639
+ /** Paragraph level */
2640
+ level?: number | null;
2641
+ }
2642
+ export interface PollData {
2643
+ /** Styling for the poll's container. */
2644
+ containerData?: PluginContainerData;
2645
+ /** Poll data. */
2646
+ poll?: Poll;
2647
+ /** Layout settings for the poll and voting options. */
2648
+ layout?: PollDataLayout;
2649
+ /** Styling for the poll and voting options. */
2650
+ design?: Design;
2651
+ }
2652
+ export declare enum ViewRole {
2653
+ /** Only Poll creator can view the results */
2654
+ CREATOR = "CREATOR",
2655
+ /** Anyone who voted can see the results */
2656
+ VOTERS = "VOTERS",
2657
+ /** Anyone can see the results, even if one didn't vote */
2658
+ EVERYONE = "EVERYONE"
2659
+ }
2660
+ export declare enum VoteRole {
2661
+ /** Logged in member */
2662
+ SITE_MEMBERS = "SITE_MEMBERS",
2663
+ /** Anyone */
2664
+ ALL = "ALL"
2665
+ }
2666
+ export interface Permissions {
2667
+ /** Sets who can view the poll results. */
2668
+ view?: ViewRole;
2669
+ /** Sets who can vote. */
2670
+ vote?: VoteRole;
2671
+ /** Sets whether one voter can vote multiple times. Defaults to `false`. */
2672
+ allowMultipleVotes?: boolean | null;
2673
+ }
2674
+ export interface Option {
2675
+ /** Option ID. */
2676
+ id?: string | null;
2677
+ /** Option title. */
2678
+ title?: string | null;
2679
+ /** The image displayed with the option. */
2680
+ image?: V1Media;
2681
+ }
2682
+ export interface PollSettings {
2683
+ /** Permissions settings for voting. */
2684
+ permissions?: Permissions;
2685
+ /** Sets whether voters are displayed in the vote results. Defaults to `true`. */
2686
+ showVoters?: boolean | null;
2687
+ /** Sets whether the vote count is displayed. Defaults to `true`. */
2688
+ showVotesCount?: boolean | null;
2689
+ }
2690
+ export declare enum PollLayoutType {
2691
+ /** List */
2692
+ LIST = "LIST",
2693
+ /** Grid */
2694
+ GRID = "GRID"
2695
+ }
2696
+ export declare enum PollLayoutDirection {
2697
+ /** Left-to-right */
2698
+ LTR = "LTR",
2699
+ /** Right-to-left */
2700
+ RTL = "RTL"
2701
+ }
2702
+ export interface PollLayout {
2703
+ /** The layout for displaying the voting options. */
2704
+ type?: PollLayoutType;
2705
+ /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */
2706
+ direction?: PollLayoutDirection;
2707
+ /** Sets whether to display the main poll image. Defaults to `false`. */
2708
+ enableImage?: boolean | null;
2709
+ }
2710
+ export interface OptionLayout {
2711
+ /** Sets whether to display option images. Defaults to `false`. */
2712
+ enableImage?: boolean | null;
2713
+ }
2714
+ export declare enum BackgroundType {
2715
+ /** Color background type */
2716
+ COLOR = "COLOR",
2717
+ /** Image background type */
2718
+ IMAGE = "IMAGE",
2719
+ /** Gradiant background type */
2720
+ GRADIENT = "GRADIENT"
2721
+ }
2722
+ export interface Gradient {
2723
+ /** The gradient angle in degrees. */
2724
+ angle?: number | null;
2725
+ /**
2726
+ * The start color as a hexademical value.
2727
+ * @format COLOR_HEX
2728
+ */
2729
+ startColor?: string | null;
2730
+ /**
2731
+ * The end color as a hexademical value.
2732
+ * @format COLOR_HEX
2733
+ */
2734
+ lastColor?: string | null;
2735
+ }
2736
+ export interface Background extends BackgroundBackgroundOneOf {
2737
+ /**
2738
+ * The background color as a hexademical value.
2739
+ * @format COLOR_HEX
2740
+ */
2741
+ color?: string | null;
2742
+ /** An image to use for the background. */
2743
+ image?: V1Media;
2744
+ /** Details for a gradient background. */
2745
+ gradient?: Gradient;
2746
+ /** Background type. For each option, include the relevant details. */
2747
+ type?: BackgroundType;
2748
+ }
2749
+ /** @oneof */
2750
+ export interface BackgroundBackgroundOneOf {
2751
+ /**
2752
+ * The background color as a hexademical value.
2753
+ * @format COLOR_HEX
2754
+ */
2755
+ color?: string | null;
2756
+ /** An image to use for the background. */
2757
+ image?: V1Media;
2758
+ /** Details for a gradient background. */
2759
+ gradient?: Gradient;
2760
+ }
2761
+ export interface PollDesign {
2762
+ /** Background styling. */
2763
+ background?: Background;
2764
+ /** Border radius in pixels. */
2765
+ borderRadius?: number | null;
2766
+ }
2767
+ export interface OptionDesign {
2768
+ /** Border radius in pixels. */
2769
+ borderRadius?: number | null;
2770
+ }
2771
+ export interface Poll {
2772
+ /** Poll ID. */
2773
+ id?: string | null;
2774
+ /** Poll title. */
2775
+ title?: string | null;
2776
+ /** Poll creator ID. */
2777
+ creatorId?: string | null;
2778
+ /** Main poll image. */
2779
+ image?: V1Media;
2780
+ /** Voting options. */
2781
+ options?: Option[];
2782
+ /** The poll's permissions and display settings. */
2783
+ settings?: PollSettings;
2784
+ }
2785
+ export interface PollDataLayout {
2786
+ /** Poll layout settings. */
2787
+ poll?: PollLayout;
2788
+ /** Voting otpions layout settings. */
2789
+ options?: OptionLayout;
2790
+ }
2791
+ export interface Design {
2792
+ /** Styling for the poll. */
2793
+ poll?: PollDesign;
2794
+ /** Styling for voting options. */
2795
+ options?: OptionDesign;
2796
+ }
2797
+ export interface TextData {
2798
+ /** The text to apply decorations to. */
2799
+ text?: string;
2800
+ /** The decorations to apply. */
2801
+ decorations?: Decoration[];
2802
+ }
2803
+ /** Adds appearence changes to text */
2804
+ export interface Decoration extends DecorationDataOneOf {
2805
+ /** Data for an anchor link decoration. */
2806
+ anchorData?: AnchorData;
2807
+ /** Data for a color decoration. */
2808
+ colorData?: ColorData;
2809
+ /** Data for an external link decoration. */
2810
+ linkData?: LinkData;
2811
+ /** Data for a mention decoration. */
2812
+ mentionData?: MentionData;
2813
+ /** Data for a font size decoration. */
2814
+ fontSizeData?: FontSizeData;
2815
+ /** Font weight for a bold decoration. */
2816
+ fontWeightValue?: number | null;
2817
+ /** Data for an italic decoration. Defaults to `true`. */
2818
+ italicData?: boolean | null;
2819
+ /** Data for an underline decoration. Defaults to `true`. */
2820
+ underlineData?: boolean | null;
2821
+ /** Data for a spoiler decoration. */
2822
+ spoilerData?: SpoilerData;
2823
+ /** Data for a strikethrough decoration. Defaults to `true`. */
2824
+ strikethroughData?: boolean | null;
2825
+ /** The type of decoration to apply. */
2826
+ type?: DecorationType;
2827
+ }
2828
+ /** @oneof */
2829
+ export interface DecorationDataOneOf {
2830
+ /** Data for an anchor link decoration. */
2831
+ anchorData?: AnchorData;
2832
+ /** Data for a color decoration. */
2833
+ colorData?: ColorData;
2834
+ /** Data for an external link decoration. */
2835
+ linkData?: LinkData;
2836
+ /** Data for a mention decoration. */
2837
+ mentionData?: MentionData;
2838
+ /** Data for a font size decoration. */
2839
+ fontSizeData?: FontSizeData;
2840
+ /** Font weight for a bold decoration. */
2841
+ fontWeightValue?: number | null;
2842
+ /** Data for an italic decoration. Defaults to `true`. */
2843
+ italicData?: boolean | null;
2844
+ /** Data for an underline decoration. Defaults to `true`. */
2845
+ underlineData?: boolean | null;
2846
+ /** Data for a spoiler decoration. */
2847
+ spoilerData?: SpoilerData;
2848
+ /** Data for a strikethrough decoration. Defaults to `true`. */
2849
+ strikethroughData?: boolean | null;
2850
+ }
2851
+ export declare enum DecorationType {
2852
+ BOLD = "BOLD",
2853
+ ITALIC = "ITALIC",
2854
+ UNDERLINE = "UNDERLINE",
2855
+ SPOILER = "SPOILER",
2856
+ ANCHOR = "ANCHOR",
2857
+ MENTION = "MENTION",
2858
+ LINK = "LINK",
2859
+ COLOR = "COLOR",
2860
+ FONT_SIZE = "FONT_SIZE",
2861
+ EXTERNAL = "EXTERNAL",
2862
+ STRIKETHROUGH = "STRIKETHROUGH"
2863
+ }
2864
+ export interface AnchorData {
2865
+ /** The target node's ID. */
2866
+ anchor?: string;
2867
+ }
2868
+ export interface ColorData {
2869
+ /** The text's background color as a hexadecimal value. */
2870
+ background?: string | null;
2871
+ /** The text's foreground color as a hexadecimal value. */
2872
+ foreground?: string | null;
2873
+ }
2874
+ export interface LinkData {
2875
+ /** Link details. */
2876
+ link?: Link;
2877
+ }
2878
+ export interface MentionData {
2879
+ /** The mentioned user's name. */
2880
+ name?: string;
2881
+ /** The version of the user's name that appears after the `@` character in the mention. */
2882
+ slug?: string;
2883
+ /** Mentioned user's ID. */
2884
+ id?: string | null;
2885
+ }
2886
+ export interface FontSizeData {
2887
+ /** The units used for the font size. */
2888
+ unit?: FontType;
2889
+ /** Font size value. */
2890
+ value?: number | null;
2891
+ }
2892
+ export declare enum FontType {
2893
+ PX = "PX",
2894
+ EM = "EM"
2895
+ }
2896
+ export interface SpoilerData {
2897
+ /** Spoiler ID. */
2898
+ id?: string | null;
2899
+ }
2900
+ export interface AppEmbedData extends AppEmbedDataAppDataOneOf {
2901
+ /** Data for embedded Wix Bookings content. */
2902
+ bookingData?: BookingData;
2903
+ /** Data for embedded Wix Events content. */
2904
+ eventData?: EventData;
2905
+ /** The type of Wix App content being embedded. */
2906
+ type?: AppType;
2907
+ /** The ID of the embedded content. */
2908
+ itemId?: string | null;
2909
+ /** The name of the embedded content. */
2910
+ name?: string | null;
2911
+ /**
2912
+ * Deprecated: Use `image` instead.
2913
+ * @deprecated
2914
+ */
2915
+ imageSrc?: string | null;
2916
+ /** The URL for the embedded content. */
2917
+ url?: string | null;
2918
+ /** An image for the embedded content. */
2919
+ image?: V1Media;
2920
+ }
2921
+ /** @oneof */
2922
+ export interface AppEmbedDataAppDataOneOf {
2923
+ /** Data for embedded Wix Bookings content. */
2924
+ bookingData?: BookingData;
2925
+ /** Data for embedded Wix Events content. */
2926
+ eventData?: EventData;
2927
+ }
2928
+ export declare enum AppType {
2929
+ PRODUCT = "PRODUCT",
2930
+ EVENT = "EVENT",
2931
+ BOOKING = "BOOKING"
2932
+ }
2933
+ export interface BookingData {
2934
+ /** Booking duration in minutes. */
2935
+ durations?: string | null;
2936
+ }
2937
+ export interface EventData {
2938
+ /** Event schedule. */
2939
+ scheduling?: string | null;
2940
+ /** Event location. */
2941
+ location?: string | null;
2942
+ }
2943
+ export interface VideoData {
2944
+ /** Styling for the video's container. */
2945
+ containerData?: PluginContainerData;
2946
+ /** Video details. */
2947
+ video?: V1Media;
2948
+ /** Video thumbnail details. */
2949
+ thumbnail?: V1Media;
2950
+ /** Sets whether the video's download button is disabled. Defaults to `false`. */
2951
+ disableDownload?: boolean | null;
2952
+ /** Video title. */
2953
+ title?: string | null;
2954
+ /** Video options. */
2955
+ options?: PlaybackOptions;
2956
+ }
2957
+ export interface PlaybackOptions {
2958
+ /** Sets whether the media will automatically start playing. */
2959
+ autoPlay?: boolean | null;
2960
+ /** Sets whether media's will be looped. */
2961
+ playInLoop?: boolean | null;
2962
+ /** Sets whether media's controls will be shown. */
2963
+ showControls?: boolean | null;
2964
+ }
2965
+ export interface EmbedData {
2966
+ /** Styling for the oEmbed node's container. */
2967
+ containerData?: PluginContainerData;
2968
+ /** An [oEmbed](https://www.oembed.com) object. */
2969
+ oembed?: Oembed;
2970
+ /** Origin asset source. */
2971
+ src?: string | null;
2972
+ }
2973
+ export interface Oembed {
2974
+ /** The resource type. */
2975
+ type?: string | null;
2976
+ /** The width of the resource specified in the `url` property in pixels. */
2977
+ width?: number | null;
2978
+ /** The height of the resource specified in the `url` property in pixels. */
2979
+ height?: number | null;
2980
+ /** Resource title. */
2981
+ title?: string | null;
2982
+ /** The source URL for the resource. */
2983
+ url?: string | null;
2984
+ /** HTML for embedding a video player. The HTML should have no padding or margins. */
2985
+ html?: string | null;
2986
+ /** The name of the author or owner of the resource. */
2987
+ authorName?: string | null;
2988
+ /** The URL for the author or owner of the resource. */
2989
+ authorUrl?: string | null;
2990
+ /** The name of the resource provider. */
2991
+ providerName?: string | null;
2992
+ /** The URL for the resource provider. */
2993
+ providerUrl?: string | null;
2994
+ /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */
2995
+ thumbnailUrl?: string | null;
2996
+ /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */
2997
+ thumbnailWidth?: string | null;
2998
+ /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */
2999
+ thumbnailHeight?: string | null;
3000
+ /** The URL for an embedded viedo. */
3001
+ videoUrl?: string | null;
3002
+ /** The oEmbed version number. This value must be `1.0`. */
3003
+ version?: string | null;
3004
+ }
3005
+ export interface CollapsibleListData {
3006
+ /** Styling for the collapsible list's container. */
3007
+ containerData?: PluginContainerData;
3008
+ /** If `true`, only one item can be expanded at a time. Defaults to `false`. */
3009
+ expandOnlyOne?: boolean | null;
3010
+ /** Sets which items are expanded when the page loads. */
3011
+ initialExpandedItems?: InitialExpandedItems;
3012
+ /** The direction of the text in the list. Either left-to-right or right-to-left. */
3013
+ direction?: Direction;
3014
+ /** If `true`, The collapsible item will appear in search results as an FAQ. */
3015
+ isQapageData?: boolean | null;
3016
+ }
3017
+ export declare enum InitialExpandedItems {
3018
+ /** First item will be expended initally */
3019
+ FIRST = "FIRST",
3020
+ /** All items will expended initally */
3021
+ ALL = "ALL",
3022
+ /** All items collapsed initally */
3023
+ NONE = "NONE"
3024
+ }
3025
+ export declare enum Direction {
3026
+ /** Left-to-right */
3027
+ LTR = "LTR",
3028
+ /** Right-to-left */
3029
+ RTL = "RTL"
3030
+ }
3031
+ export interface TableData {
3032
+ /** Styling for the table's container. */
3033
+ containerData?: PluginContainerData;
3034
+ /** The table's dimensions. */
3035
+ dimensions?: Dimensions;
3036
+ /**
3037
+ * Deprecated: Use `rowHeader` and `columnHeader` instead.
3038
+ * @deprecated
3039
+ */
3040
+ header?: boolean | null;
3041
+ /** Sets whether the table's first row is a header. Defaults to `false`. */
3042
+ rowHeader?: boolean | null;
3043
+ /** Sets whether the table's first column is a header. Defaults to `false`. */
3044
+ columnHeader?: boolean | null;
3045
+ }
3046
+ export interface Dimensions {
3047
+ /** An array representing relative width of each column in relation to the other columns. */
3048
+ colsWidthRatio?: number[];
3049
+ /** An array representing the height of each row in pixels. */
3050
+ rowsHeight?: number[];
3051
+ /** An array representing the minimum width of each column in pixels. */
3052
+ colsMinWidth?: number[];
3053
+ }
3054
+ export interface TableCellData {
3055
+ /** Styling for the cell's background color and text alignment. */
3056
+ cellStyle?: CellStyle;
3057
+ /** The cell's border colors. */
3058
+ borderColors?: BorderColors;
3059
+ }
3060
+ export declare enum VerticalAlignment {
3061
+ /** Top alignment */
3062
+ TOP = "TOP",
3063
+ /** Middle alignment */
3064
+ MIDDLE = "MIDDLE",
3065
+ /** Bottom alignment */
3066
+ BOTTOM = "BOTTOM"
3067
+ }
3068
+ export interface CellStyle {
3069
+ /** Vertical alignment for the cell's text. */
3070
+ verticalAlignment?: VerticalAlignment;
3071
+ /**
3072
+ * Cell background color as a hexadecimal value.
3073
+ * @format COLOR_HEX
3074
+ */
3075
+ backgroundColor?: string | null;
3076
+ }
3077
+ export interface BorderColors {
3078
+ /**
3079
+ * Left border color as a hexadecimal value.
3080
+ * @format COLOR_HEX
3081
+ */
3082
+ left?: string | null;
3083
+ /**
3084
+ * Right border color as a hexadecimal value.
3085
+ * @format COLOR_HEX
3086
+ */
3087
+ right?: string | null;
3088
+ /**
3089
+ * Top border color as a hexadecimal value.
3090
+ * @format COLOR_HEX
3091
+ */
3092
+ top?: string | null;
3093
+ /**
3094
+ * Bottom border color as a hexadecimal value.
3095
+ * @format COLOR_HEX
3096
+ */
3097
+ bottom?: string | null;
3098
+ }
3099
+ /**
3100
+ * `NullValue` is a singleton enumeration to represent the null value for the
3101
+ * `Value` type union.
3102
+ *
3103
+ * The JSON representation for `NullValue` is JSON `null`.
3104
+ */
3105
+ export declare enum NullValue {
3106
+ /** Null value. */
3107
+ NULL_VALUE = "NULL_VALUE"
3108
+ }
3109
+ /**
3110
+ * `ListValue` is a wrapper around a repeated field of values.
3111
+ *
3112
+ * The JSON representation for `ListValue` is JSON array.
3113
+ */
3114
+ export interface ListValue {
3115
+ /** Repeated field of dynamically typed values. */
3116
+ values?: any[];
3117
+ }
3118
+ export interface AudioData {
3119
+ /** Styling for the audio node's container. */
3120
+ containerData?: PluginContainerData;
3121
+ /** Audio file details. */
3122
+ audio?: V1Media;
3123
+ /** Sets whether the audio node's download button is disabled. Defaults to `false`. */
3124
+ disableDownload?: boolean | null;
3125
+ /** Cover image. */
3126
+ coverImage?: V1Media;
3127
+ /** Track name. */
3128
+ name?: string | null;
3129
+ /** Author name. */
3130
+ authorName?: string | null;
3131
+ /** An HTML version of the audio node. */
3132
+ html?: string | null;
3133
+ }
3134
+ export interface OrderedListData {
3135
+ /** Indentation level from 0-4. */
3136
+ indentation?: number;
3137
+ /** Offset level from 0-4. */
3138
+ offset?: number | null;
3139
+ /** List start number. */
3140
+ start?: number | null;
3141
+ }
3142
+ export interface BulletedListData {
3143
+ /** Indentation level from 0-4. */
3144
+ indentation?: number;
3145
+ /** Offset level from 0-4. */
3146
+ offset?: number | null;
3147
+ }
3148
+ export interface BlockquoteData {
3149
+ /** Indentation level from 1-4. */
3150
+ indentation?: number;
3151
+ }
3152
+ export interface CaptionData {
3153
+ textStyle?: TextStyle;
3154
+ }
3155
+ export interface LayoutCellData {
3156
+ /** Size of the cell in 12 columns grid. */
3157
+ colSpan?: number | null;
3158
+ }
3159
+ export interface Metadata {
3160
+ /** Schema version. */
3161
+ version?: number;
3162
+ /**
3163
+ * When the object was created.
3164
+ * @readonly
3165
+ * @deprecated
3166
+ */
3167
+ createdTimestamp?: Date | null;
3168
+ /**
3169
+ * When the object was most recently updated.
3170
+ * @deprecated
3171
+ */
3172
+ updatedTimestamp?: Date | null;
3173
+ /** Object ID. */
3174
+ id?: string | null;
3175
+ }
3176
+ export interface DocumentStyle {
3177
+ /** Styling for H1 nodes. */
3178
+ headerOne?: TextNodeStyle;
3179
+ /** Styling for H2 nodes. */
3180
+ headerTwo?: TextNodeStyle;
3181
+ /** Styling for H3 nodes. */
3182
+ headerThree?: TextNodeStyle;
3183
+ /** Styling for H4 nodes. */
3184
+ headerFour?: TextNodeStyle;
3185
+ /** Styling for H5 nodes. */
3186
+ headerFive?: TextNodeStyle;
3187
+ /** Styling for H6 nodes. */
3188
+ headerSix?: TextNodeStyle;
3189
+ /** Styling for paragraph nodes. */
3190
+ paragraph?: TextNodeStyle;
3191
+ /** Styling for block quote nodes. */
3192
+ blockquote?: TextNodeStyle;
3193
+ /** Styling for code block nodes. */
3194
+ codeBlock?: TextNodeStyle;
3195
+ }
3196
+ export interface TextNodeStyle {
3197
+ /** The decorations to apply to the node. */
3198
+ decorations?: Decoration[];
3199
+ /** Padding and background color for the node. */
3200
+ nodeStyle?: NodeStyle;
3201
+ /** Line height for text in the node. */
3202
+ lineHeight?: string | null;
3203
+ }
3204
+ export interface Media {
3205
+ /**
3206
+ * Main media (image, video, etc.) associated with this product.
3207
+ * @readonly
3208
+ */
3209
+ main?: ProductMedia;
3210
+ /**
3211
+ * All media items.
3212
+ * > **Note:** Returned only when you pass `"MEDIA_ITEMS_INFO"` to the `fields` array in Products API requests.
3213
+ */
3214
+ itemsInfo?: MediaItemsInfo;
3215
+ }
3216
+ export interface ProductMedia extends ProductMediaSetByOneOf, ProductMediaMediaOneOf {
3217
+ /**
3218
+ * Set media by ID of an existing file in Wix Media Manager.
3219
+ * @minLength 1
3220
+ * @maxLength 200
3221
+ */
3222
+ id?: string;
3223
+ /**
3224
+ * Set media using an external media URL.
3225
+ * @format WEB_URL
3226
+ */
3227
+ url?: string;
3228
+ /**
3229
+ * Product image.
3230
+ * @readonly
3231
+ */
3232
+ image?: Image;
3233
+ /**
3234
+ * Product video.
3235
+ * @readonly
3236
+ */
3237
+ video?: VideoV2;
3238
+ /**
3239
+ * Image alt text.
3240
+ * @minLength 1
3241
+ * @maxLength 1000
3242
+ */
3243
+ altText?: string | null;
3244
+ /**
3245
+ * Media display name.
3246
+ * Allows to override the default media name. Can be passed only when `setBy: url`.
3247
+ * @maxLength 80
3248
+ */
3249
+ displayName?: string | null;
3250
+ /**
3251
+ * Media type.
3252
+ * @readonly
3253
+ */
3254
+ mediaType?: MediaType;
3255
+ /**
3256
+ * Media thumbnail.
3257
+ * > **Note:** Returned only when you pass `"THUMBNAIL"` to the `fields` array in Products API requests.
3258
+ */
3259
+ thumbnail?: Thumbnail;
3260
+ /**
3261
+ * ID used to upload media to Wix Media Manager.
3262
+ * @readonly
3263
+ * @format GUID
3264
+ */
3265
+ uploadId?: string;
3266
+ }
3267
+ /** @oneof */
3268
+ export interface ProductMediaSetByOneOf {
3269
+ /**
3270
+ * Set media by ID of an existing file in Wix Media Manager.
3271
+ * @minLength 1
3272
+ * @maxLength 200
3273
+ */
3274
+ id?: string;
3275
+ /**
3276
+ * Set media using an external media URL.
3277
+ * @format WEB_URL
3278
+ */
3279
+ url?: string;
3280
+ }
3281
+ /** @oneof */
3282
+ export interface ProductMediaMediaOneOf {
3283
+ /**
3284
+ * Product image.
3285
+ * @readonly
3286
+ */
3287
+ image?: Image;
3288
+ /**
3289
+ * Product video.
3290
+ * @readonly
3291
+ */
3292
+ video?: VideoV2;
3293
+ }
3294
+ export interface Image {
3295
+ /**
3296
+ * WixMedia image ID.
3297
+ * @maxLength 400
3298
+ */
3299
+ id?: string;
3300
+ /**
3301
+ * Image URL.
3302
+ * @format WEB_URL
3303
+ */
3304
+ url?: string;
3305
+ /**
3306
+ * Original image height.
3307
+ * @readonly
3308
+ */
3309
+ height?: number;
3310
+ /**
3311
+ * Original image width.
3312
+ * @readonly
3313
+ */
3314
+ width?: number;
3315
+ /**
3316
+ * Image alt text.
3317
+ * @maxLength 200
3318
+ */
3319
+ altText?: string | null;
3320
+ /**
3321
+ * Image filename.
3322
+ * @readonly
3323
+ * @maxLength 200
3324
+ */
3325
+ filename?: string | null;
3326
+ }
3327
+ export interface VideoV2 {
3328
+ /**
3329
+ * WixMedia ID.
3330
+ * @maxLength 400
3331
+ */
3332
+ id?: string;
3333
+ /**
3334
+ * Available resolutions for the video, starting with the optimal resolution.
3335
+ * @readonly
3336
+ * @maxSize 100
3337
+ */
3338
+ resolutions?: VideoResolution[];
3339
+ /**
3340
+ * Video filename.
3341
+ * @readonly
3342
+ * @maxLength 200
3343
+ */
3344
+ filename?: string | null;
3345
+ }
3346
+ export interface VideoResolution {
3347
+ /**
3348
+ * Video URL.
3349
+ * @format WEB_URL
3350
+ */
3351
+ url?: string;
3352
+ /** Video height. */
3353
+ height?: number;
3354
+ /** Video width. */
3355
+ width?: number;
3356
+ /**
3357
+ * Video format for example, mp4, hls.
3358
+ * @maxLength 200
3359
+ */
3360
+ format?: string;
3361
+ }
3362
+ export declare enum MediaType {
3363
+ UNKNOWN_MEDIA_TYPE = "UNKNOWN_MEDIA_TYPE",
3364
+ /** Image media type. */
3365
+ IMAGE = "IMAGE",
3366
+ /** Video media type. */
3367
+ VIDEO = "VIDEO"
3368
+ }
3369
+ export interface Thumbnail {
3370
+ /**
3371
+ * Thumbnail url.
3372
+ * @format WEB_URL
3373
+ */
3374
+ url?: string;
3375
+ /** Thumbnail height. */
3376
+ height?: number;
3377
+ /** Thumbnail width. */
3378
+ width?: number;
3379
+ /**
3380
+ * Thumbnail alt text.
3381
+ * @minLength 1
3382
+ * @maxLength 1000
3383
+ */
3384
+ altText?: string | null;
3385
+ }
3386
+ export interface MediaItemsInfo {
3387
+ /**
3388
+ * All media items (images, videos etc) associated with this product.
3389
+ * @maxSize 15
3390
+ */
3391
+ items?: ProductMedia[];
3392
+ }
3393
+ /**
3394
+ * The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines.
3395
+ * The search engines use this information for ranking purposes, or to display snippets in the search results.
3396
+ * This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.
3397
+ */
3398
+ export interface SeoSchema {
3399
+ /** SEO tag information. */
3400
+ tags?: Tag[];
3401
+ /** SEO general settings. */
3402
+ settings?: Settings;
3403
+ }
3404
+ export interface Keyword {
3405
+ /** Keyword value. */
3406
+ term?: string;
3407
+ /** Whether the keyword is the main focus keyword. */
3408
+ isMain?: boolean;
3409
+ /**
3410
+ * The source that added the keyword terms to the SEO settings.
3411
+ * @maxLength 1000
3412
+ */
3413
+ origin?: string | null;
3414
+ }
3415
+ export interface Tag {
3416
+ /**
3417
+ * SEO tag type.
3418
+ *
3419
+ *
3420
+ * Supported values: `title`, `meta`, `script`, `link`.
3421
+ */
3422
+ type?: string;
3423
+ /**
3424
+ * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
3425
+ * For example: `{"name": "description", "content": "the description itself"}`.
3426
+ */
3427
+ props?: Record<string, any> | null;
3428
+ /** SEO tag meta data. For example, `{"height": 300, "width": 240}`. */
3429
+ meta?: Record<string, any> | null;
3430
+ /** SEO tag inner content. For example, `<title> inner content </title>`. */
3431
+ children?: string;
3432
+ /** Whether the tag is a custom tag. */
3433
+ custom?: boolean;
3434
+ /** Whether the tag is disabled. */
3435
+ disabled?: boolean;
3436
+ }
3437
+ export interface Settings {
3438
+ /**
3439
+ * Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.
3440
+ *
3441
+ *
3442
+ * Default: `false` (Auto Redirect is enabled.)
3443
+ */
3444
+ preventAutoRedirect?: boolean;
3445
+ /**
3446
+ * User-selected keyword terms for a specific page.
3447
+ * @maxSize 5
3448
+ */
3449
+ keywords?: Keyword[];
3450
+ }
3451
+ export interface ConnectedOption extends ConnectedOptionOptionSettingsOneOf {
3452
+ /** Choices settings. */
3453
+ choicesSettings?: ChoicesSettings;
3454
+ /**
3455
+ * ID of a customization with `customizationType: PRODUCT_OPTION`.
3456
+ * @minLength 1
3457
+ * @maxLength 36
3458
+ */
3459
+ id?: string | null;
3460
+ /**
3461
+ * Option name.
3462
+ * @minLength 1
3463
+ * @maxLength 50
3464
+ */
3465
+ name?: string | null;
3466
+ /** Option render type. */
3467
+ optionRenderType?: ProductOptionRenderType;
3468
+ }
3469
+ /** @oneof */
3470
+ export interface ConnectedOptionOptionSettingsOneOf {
3471
+ /** Choices settings. */
3472
+ choicesSettings?: ChoicesSettings;
3473
+ }
3474
+ export declare enum ProductOptionRenderType {
3475
+ /** Not implemented. */
3476
+ UNKNOWN_OPTION_RENDER_TYPE = "UNKNOWN_OPTION_RENDER_TYPE",
3477
+ /** Text choices. */
3478
+ TEXT_CHOICES = "TEXT_CHOICES",
3479
+ /** Swatch choices. */
3480
+ SWATCH_CHOICES = "SWATCH_CHOICES"
3481
+ }
3482
+ export interface ChoicesSettings {
3483
+ /**
3484
+ * List of available choices for the option.
3485
+ * @minSize 1
3486
+ * @maxSize 100
3487
+ * @immutable
3488
+ */
3489
+ choices?: ConnectedOptionChoice[];
3490
+ }
3491
+ export interface ConnectedOptionChoice extends ConnectedOptionChoiceValueOneOf {
3492
+ /**
3493
+ * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
3494
+ * @minLength 3
3495
+ * @maxLength 20
3496
+ */
3497
+ colorCode?: string;
3498
+ /**
3499
+ * The id of the choice.
3500
+ * @format GUID
3501
+ */
3502
+ choiceId?: string | null;
3503
+ /**
3504
+ * Product media overrides. When not empty only these images will be shown when such choices selected by customer. Otherwise all images of product.
3505
+ * When several choices from different options selected only media filter present in `media_overrides` of ALL choices will be shown.
3506
+ * For example if Color:red has images 1,2,3 and Material:Silk has images 2,3,5 then only images 2,3 will be shown when both of them selected.
3507
+ * @maxSize 100
3508
+ */
3509
+ linkedMedia?: ProductMedia[];
3510
+ /** The type of this choice. */
3511
+ choiceType?: ChoiceType;
3512
+ /**
3513
+ * Choice name.
3514
+ * @minLength 1
3515
+ * @maxLength 50
3516
+ */
3517
+ name?: string | null;
3518
+ /**
3519
+ * A flag that indicates if at least one variant with this choice is in stock in the default store's location.
3520
+ * For example, a product with 'Color' and 'Size' options with variants: [Blue, Small] which is out of stock and [Red Large] which is in stock. For choice 'Blue' ths flag will be 'false' and for 'Red' the flag will be true
3521
+ * @readonly
3522
+ */
3523
+ inStock?: boolean;
3524
+ /**
3525
+ * Whether at least one variant with this choice is visible.
3526
+ *
3527
+ * Default: `false`
3528
+ * @readonly
3529
+ */
3530
+ visible?: boolean;
3531
+ }
3532
+ /** @oneof */
3533
+ export interface ConnectedOptionChoiceValueOneOf {
3534
+ /**
3535
+ * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
3536
+ * @minLength 3
3537
+ * @maxLength 20
3538
+ */
3539
+ colorCode?: string;
3540
+ }
3541
+ export declare enum ChoiceType {
3542
+ UNKNOWN_CHOICE_TYPE = "UNKNOWN_CHOICE_TYPE",
3543
+ /** Text choice. */
3544
+ CHOICE_TEXT = "CHOICE_TEXT",
3545
+ /** Single color choice. */
3546
+ ONE_COLOR = "ONE_COLOR",
3547
+ /** Multiple colors choice. */
3548
+ MULTIPLE_COLORS = "MULTIPLE_COLORS",
3549
+ /** Image choice. */
3550
+ IMAGE = "IMAGE"
3551
+ }
3552
+ export interface MultipleColors {
3553
+ /**
3554
+ * List of color codes.
3555
+ * @minLength 3
3556
+ * @maxLength 20
3557
+ * @minSize 2
3558
+ * @maxSize 2
3559
+ */
3560
+ colorCodes?: string[];
3561
+ }
3562
+ export interface ConnectedModifier extends ConnectedModifierModifierSettingsOneOf {
3563
+ /** Free text modifier settings. */
3564
+ freeTextSettings?: FreeTextSettings;
3565
+ /** Choice settings. */
3566
+ choicesSettings?: ModifierChoicesSettings;
3567
+ /**
3568
+ * ID of a customization with `customizationType: MODIFIER`.
3569
+ * @minLength 1
3570
+ * @maxLength 36
3571
+ */
3572
+ id?: string | null;
3573
+ /**
3574
+ * Modifier title.
3575
+ * @minLength 1
3576
+ * @maxLength 50
3577
+ */
3578
+ name?: string | null;
3579
+ /** Modifier render type. */
3580
+ modifierRenderType?: ModifierRenderType;
3581
+ /** Whether customer input is required for this modifier. */
3582
+ mandatory?: boolean;
3583
+ }
3584
+ /** @oneof */
3585
+ export interface ConnectedModifierModifierSettingsOneOf {
3586
+ /** Free text modifier settings. */
3587
+ freeTextSettings?: FreeTextSettings;
3588
+ /** Choice settings. */
3589
+ choicesSettings?: ModifierChoicesSettings;
3590
+ }
3591
+ export declare enum ModifierRenderType {
3592
+ /** Not implemented. */
3593
+ UNKNOWN_MODIFIER_RENDER_TYPE = "UNKNOWN_MODIFIER_RENDER_TYPE",
3594
+ /** Free text. */
3595
+ FREE_TEXT = "FREE_TEXT",
3596
+ /** Text choices. */
3597
+ TEXT_CHOICES = "TEXT_CHOICES",
3598
+ /** Swatch choices. */
3599
+ SWATCH_CHOICES = "SWATCH_CHOICES"
3600
+ }
3601
+ export interface FreeTextSettings {
3602
+ /** Minimum number of characters. */
3603
+ minCharCount?: number;
3604
+ /**
3605
+ * Maximum number of characters.
3606
+ * @max 500
3607
+ */
3608
+ maxCharCount?: number;
3609
+ /**
3610
+ * Default amount to be added to the product's price.
3611
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
3612
+ */
3613
+ defaultAddedPrice?: string | null;
3614
+ /**
3615
+ * Title of the text to be input by the customer.
3616
+ * @minLength 1
3617
+ * @maxLength 150
3618
+ */
3619
+ title?: string;
3620
+ }
3621
+ export interface ModifierChoicesSettings {
3622
+ /**
3623
+ * List of modifier choices.
3624
+ * @minSize 1
3625
+ * @maxSize 100
3626
+ * @immutable
3627
+ */
3628
+ choices?: ConnectedModifierChoice[];
3629
+ }
3630
+ export interface ConnectedModifierChoice extends ConnectedModifierChoiceValueOneOf {
3631
+ /**
3632
+ * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
3633
+ * @minLength 3
3634
+ * @maxLength 20
3635
+ */
3636
+ colorCode?: string;
3637
+ /**
3638
+ * Choice ID.
3639
+ * @format GUID
3640
+ */
3641
+ choiceId?: string | null;
3642
+ /**
3643
+ * Product media.
3644
+ * @maxSize 100
3645
+ */
3646
+ linkedMedia?: ProductMedia[];
3647
+ /** Choice type. */
3648
+ choiceType?: ChoiceType;
3649
+ /**
3650
+ * Modifier key. Used for eCommerce integration.
3651
+ * @readonly
3652
+ * @minLength 1
3653
+ * @maxLength 50
3654
+ */
3655
+ key?: string;
3656
+ /**
3657
+ * Choice name.
3658
+ * @minLength 1
3659
+ * @maxLength 50
3660
+ */
3661
+ name?: string | null;
3662
+ /**
3663
+ * Added price.
3664
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
3665
+ */
3666
+ addedPrice?: string | null;
3667
+ }
3668
+ /** @oneof */
3669
+ export interface ConnectedModifierChoiceValueOneOf {
3670
+ /**
3671
+ * Color code in HEX format, [as described by MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color).
3672
+ * @minLength 3
3673
+ * @maxLength 20
3674
+ */
3675
+ colorCode?: string;
3676
+ }
3677
+ export interface Brand {
3678
+ /**
3679
+ * Brand ID.
3680
+ * @format GUID
3681
+ */
3682
+ id?: string | null;
3683
+ /**
3684
+ * Brand name.
3685
+ * @maxLength 50
3686
+ */
3687
+ name?: string | null;
3688
+ }
3689
+ export interface InfoSection {
3690
+ /**
3691
+ * Info section ID.
3692
+ * @format GUID
3693
+ */
3694
+ id?: string | null;
3695
+ /**
3696
+ * Info section unique name.
3697
+ * > **Note:** Returned only when you pass `"INFO_SECTION"` to the `fields` array in Products API requests.
3698
+ * @maxLength 100
3699
+ */
3700
+ uniqueName?: string | null;
3701
+ /**
3702
+ * Info section title.
3703
+ * > **Note:** Returned only when you pass `"INFO_SECTION"` to the `fields` array in Products API requests.
3704
+ * @minLength 1
3705
+ * @maxLength 50
3706
+ * @readonly
3707
+ */
3708
+ title?: string | null;
3709
+ /**
3710
+ * Info section description using rich content.
3711
+ * > **Note:** Returned only when you pass `"INFO_SECTION_DESCRIPTION"` to the `fields` array in Products API requests.
3712
+ *
3713
+ * <widget src="https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component" plugins="indent.emoji.divider.codeBlock.file.gallery.giphy.image.table.link.textHighlight.textColor" exampleid="7dc9240e-d548-417a-abcf-0291b68b4303">
3714
+ * <a href="https://dev.wix.com/docs/ricos/api-reference/ricos-document">See Ricos document reference</a>
3715
+ * </widget>
3716
+ * @readonly
3717
+ */
3718
+ description?: RichContent;
3719
+ /**
3720
+ * Info section description in HTML.
3721
+ *
3722
+ * When provided on create/update, this string must be a valid HTML. It will then be converted to rich content.
3723
+ * `plainDescription` is ignored when value is also passed to the `description` field.
3724
+ * > **Note:** Returned only when you pass `"INFO_SECTION_PLAIN_DESCRIPTION"` to the `fields` array in Products API requests.
3725
+ * @maxLength 16000
3726
+ */
3727
+ plainDescription?: string | null;
3728
+ }
3729
+ export interface Ribbon {
3730
+ /**
3731
+ * Ribbon ID.
3732
+ * @minLength 1
3733
+ * @maxLength 36
3734
+ */
3735
+ id?: string | null;
3736
+ /**
3737
+ * Ribbon name.
3738
+ * @maxLength 30
3739
+ */
3740
+ name?: string | null;
3741
+ }
3742
+ export interface ProductCategoriesInfo {
3743
+ /**
3744
+ * A list of categories related to product.
3745
+ * @readonly
3746
+ * @maxSize 2000
3747
+ */
3748
+ categories?: ProductCategory[];
3749
+ }
3750
+ export interface ProductCategory {
3751
+ /**
3752
+ * Category ID.
3753
+ * @format GUID
3754
+ */
3755
+ id?: string;
3756
+ /**
3757
+ * Index location of the product within the category, which can be utilized for sorting products in a specific category. For detailed instructions on how to set this up, refer to the [Add and arrange products in category](https://dev.wix.com/docs/rest/business-solutions/stores/catalog-v3/products-v3/sample-use-cases-and-flows#add-and-arrange-products-in-category) sample flow.
3758
+ * @max 200
3759
+ */
3760
+ index?: number | null;
3761
+ }
3762
+ export interface ProductCategoryIdsInfo {
3763
+ /**
3764
+ * A list of category ids related to product.
3765
+ * @readonly
3766
+ * @maxSize 2000
3767
+ * @format GUID
3768
+ */
3769
+ categoryIds?: string[];
3770
+ }
3771
+ export interface PriceRange {
3772
+ /** Minimum value. */
3773
+ minValue?: FixedMonetaryAmount;
3774
+ /** Maximum value. */
3775
+ maxValue?: FixedMonetaryAmount;
3776
+ }
3777
+ export interface FixedMonetaryAmount {
3778
+ /**
3779
+ * Monetary amount. For example, `"3.99"`, or `"-4.99"` for a negative amount.
3780
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
3781
+ */
3782
+ amount?: string;
3783
+ /**
3784
+ * Formatted monetary amount. For example, `"$3.99"`.
3785
+ * > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
3786
+ * @readonly
3787
+ * @maxLength 20
3788
+ */
3789
+ formattedAmount?: string | null;
3790
+ }
3791
+ export interface Inventory {
3792
+ /**
3793
+ * Current availability status.
3794
+ * @readonly
3795
+ */
3796
+ availabilityStatus?: AvailabilityStatus;
3797
+ /**
3798
+ * Current preorder status.
3799
+ * @readonly
3800
+ */
3801
+ preorderStatus?: PreorderStatus;
3802
+ /**
3803
+ * Preorder availability status.
3804
+ * @readonly
3805
+ */
3806
+ preorderAvailability?: ProductPreorderAvailability;
3807
+ }
3808
+ export declare enum AvailabilityStatus {
3809
+ UNKNOWN_AVAILABILITY_STATUS = "UNKNOWN_AVAILABILITY_STATUS",
3810
+ /** All variants are in stock and available for purchase. */
3811
+ IN_STOCK = "IN_STOCK",
3812
+ /** All variants are out of stock. */
3813
+ OUT_OF_STOCK = "OUT_OF_STOCK",
3814
+ /** Some variants are out of stock and some are in stock and available for purchase. */
3815
+ PARTIALLY_OUT_OF_STOCK = "PARTIALLY_OUT_OF_STOCK"
3816
+ }
3817
+ export declare enum PreorderStatus {
3818
+ UNKNOWN_PREORDER_STATUS = "UNKNOWN_PREORDER_STATUS",
3819
+ /** All variants are enabled for preorder. */
3820
+ ENABLED = "ENABLED",
3821
+ /** All variants are disabled for preorder. */
3822
+ DISABLED = "DISABLED",
3823
+ /** Some variants are disabled and some are enabled for preorder. */
3824
+ PARTIALLY_ENABLED = "PARTIALLY_ENABLED"
3825
+ }
3826
+ export declare enum ProductPreorderAvailability {
3827
+ UNKNOWN_PREORDER_AVAILABILITY_STATUS = "UNKNOWN_PREORDER_AVAILABILITY_STATUS",
3828
+ /** All the product variants are available for preorder. */
3829
+ ALL_VARIANTS = "ALL_VARIANTS",
3830
+ /** None of the product variants are available for preorder. */
3831
+ NO_VARIANTS = "NO_VARIANTS",
3832
+ /** Some of the product variants are available for preorder. */
3833
+ SOME_VARIANTS = "SOME_VARIANTS"
3834
+ }
3835
+ export declare enum ProductType {
3836
+ /** Not implemented. */
3837
+ UNKNOWN_PRODUCT_TYPE = "UNKNOWN_PRODUCT_TYPE",
3838
+ /** Physical product. */
3839
+ PHYSICAL = "PHYSICAL",
3840
+ /** Digital product. */
3841
+ DIGITAL = "DIGITAL"
3842
+ }
3843
+ export interface PhysicalProperties {
3844
+ /**
3845
+ * Price per unit settings.
3846
+ * > **Note:** Use this field only when relevant. For example, for products that are sold by weight, volume, or length.
3847
+ */
3848
+ pricePerUnit?: PricePerUnitSettings;
3849
+ /**
3850
+ * Fulfiller ID.
3851
+ * @format GUID
3852
+ */
3853
+ fulfillerId?: string | null;
3854
+ /**
3855
+ * Product shipping weight range - Calculated from the lightest and heaviest variant shipping weights.
3856
+ * @readonly
3857
+ */
3858
+ shippingWeightRange?: WeightRange;
3859
+ /**
3860
+ * Product price per unit range. The minimum and maximum price per unit of all the variants.
3861
+ * @readonly
3862
+ */
3863
+ pricePerUnitRange?: PricePerUnitRange;
3864
+ /**
3865
+ * Weight measurement unit.
3866
+ * > **Note:** Returned only when you pass `"WEIGHT_MEASUREMENT_UNIT_INFO"` to the `fields` array in Products API requests.
3867
+ * @readonly
3868
+ */
3869
+ weightMeasurementUnitInfo?: WeightMeasurementUnitInfo;
3870
+ /**
3871
+ * Delivery profile ID.
3872
+ * @format GUID
3873
+ */
3874
+ deliveryProfileId?: string | null;
3875
+ }
3876
+ export interface PricePerUnitSettings {
3877
+ /**
3878
+ * Quantity.
3879
+ * For example, to define price per per 100 grams, set this field to `100`.
3880
+ * @min 0.01
3881
+ * @max 999999999.99
3882
+ */
3883
+ quantity?: number;
3884
+ /**
3885
+ * Measurement unit.
3886
+ * For example, to define price per 100 grams, set this field to "G".
3887
+ */
3888
+ measurementUnit?: MeasurementUnit;
3889
+ }
3890
+ export interface WeightRange {
3891
+ /**
3892
+ * Minimum weight across all variants associated with this product.
3893
+ * @max 999999999.99
3894
+ */
3895
+ minValue?: number;
3896
+ /**
3897
+ * Maximum weight across all variants associated with this product.
3898
+ * @max 999999999.99
3899
+ */
3900
+ maxValue?: number;
3901
+ }
3902
+ export interface PricePerUnitRange {
3903
+ /** Minimum price per unit across all variants. */
3904
+ minValue?: PricePerUnitRangePricePerUnit;
3905
+ /** Maximum price per unit across all variants. */
3906
+ maxValue?: PricePerUnitRangePricePerUnit;
3907
+ }
3908
+ export interface PricePerUnitRangePricePerUnit {
3909
+ /**
3910
+ * Calculated value of price per unit. Takes into account pricePerUnit settings of product and variants and price of variants.
3911
+ * For example if discounted price is 2$, product's price per unit setting is 1 Kg, variant price per unit setting is 0.5 Kg then this value is 4$ (means variant weight is 0.5 Kg and it costs 2$ but we want to show price per 1 Kg so we show 4$).
3912
+ * @readonly
3913
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
3914
+ */
3915
+ value?: string;
3916
+ /**
3917
+ * Price per unit info in the format of variant specific data / product setting, for example €4.00 / 1 Kg.
3918
+ * > **Note:** This field is returned by the API only when you pass `fields: "CURRENCY"` in a request.
3919
+ * @readonly
3920
+ * @maxLength 100
3921
+ */
3922
+ description?: string | null;
3923
+ }
3924
+ export interface WeightMeasurementUnitInfo {
3925
+ /**
3926
+ * Weight measurement unit.
3927
+ * @readonly
3928
+ */
3929
+ weightMeasurementUnit?: WeightUnit;
3930
+ }
3931
+ export interface BreadcrumbsInfo {
3932
+ /**
3933
+ * Breadcrumbs.
3934
+ * @readonly
3935
+ * @maxSize 5
3936
+ */
3937
+ breadcrumbs?: BreadCrumb[];
3938
+ }
3939
+ export interface BreadCrumb {
3940
+ /**
3941
+ * Category ID.
3942
+ * @format GUID
3943
+ */
3944
+ categoryId?: string;
3945
+ /**
3946
+ * Category name.
3947
+ * @minLength 1
3948
+ * @maxLength 80
3949
+ */
3950
+ categoryName?: string;
3951
+ /**
3952
+ * Category slug.
3953
+ * @minLength 1
3954
+ * @maxLength 100
3955
+ */
3956
+ categorySlug?: string;
3957
+ }
3958
+ export interface VariantsInfo {
3959
+ /**
3960
+ * List of related variants.
3961
+ * @minSize 1
3962
+ * @maxSize 1000
3963
+ */
3964
+ variants?: Variant[];
3965
+ }
3966
+ export interface Variant extends VariantTypedPropertiesOneOf {
3967
+ /** Physical properties. Must be passed when `productType: PHYSICAL` */
3968
+ physicalProperties?: VariantPhysicalProperties;
3969
+ /** Digital properties. Must be passed when `productType: DIGITAL` */
3970
+ digitalProperties?: VariantDigitalProperties;
3971
+ /**
3972
+ * Variant ID.
3973
+ * @format GUID
3974
+ * @immutable
3975
+ */
3976
+ id?: string | null;
3977
+ /**
3978
+ * Whether the variant is visible to site visitors.
3979
+ *
3980
+ * Default: `true`
3981
+ */
3982
+ visible?: boolean | null;
3983
+ /**
3984
+ * Variant SKU (stock keeping unit).
3985
+ * @minLength 1
3986
+ * @maxLength 40
3987
+ */
3988
+ sku?: string | null;
3989
+ /**
3990
+ * Variant barcode.
3991
+ * @minLength 1
3992
+ * @maxLength 40
3993
+ */
3994
+ barcode?: string | null;
3995
+ /**
3996
+ * List of choices that define the product's variant, which requires exactly one choice per product option.
3997
+ * Must use `optionChoiceNames` in all requests this field is required.
3998
+ * Empty only for default variants of unmanaged products.
3999
+ * @maxSize 6
4000
+ * @immutable
4001
+ */
4002
+ choices?: OptionChoice[];
4003
+ /** Variant price. */
4004
+ price?: PriceInfo;
4005
+ /**
4006
+ * Variant revenue details.
4007
+ *
4008
+ * > **Note:** Returned only when the following conditions are met:
4009
+ * > + You pass `"MERCHANT_DATA"` to the `fields` array in Products API requests.
4010
+ * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.
4011
+ */
4012
+ revenueDetails?: RevenueDetails;
4013
+ /**
4014
+ * Variant media.
4015
+ * @readonly
4016
+ */
4017
+ media?: ProductMedia;
4018
+ /**
4019
+ * Subscription prices calculated by applying subscription discount to the variant `price.actual_price`.
4020
+ * > **Note:** Returned only when you pass `"SUBSCRIPTION_PRICES_INFO"` to the `fields` array in Products API requests.
4021
+ * @readonly
4022
+ */
4023
+ subscriptionPricesInfo?: SubscriptionPricesInfo;
4024
+ /**
4025
+ * Variant inventory status.
4026
+ * @readonly
4027
+ */
4028
+ inventoryStatus?: InventoryStatus;
4029
+ }
4030
+ /** @oneof */
4031
+ export interface VariantTypedPropertiesOneOf {
4032
+ /** Physical properties. Must be passed when `productType: PHYSICAL` */
4033
+ physicalProperties?: VariantPhysicalProperties;
4034
+ /** Digital properties. Must be passed when `productType: DIGITAL` */
4035
+ digitalProperties?: VariantDigitalProperties;
4036
+ }
4037
+ export interface OptionChoice {
4038
+ /** Option and choice IDs. These match the IDs of the option and choice from the product's options field. */
4039
+ optionChoiceIds?: OptionChoiceIds;
4040
+ /**
4041
+ * Option and choice names.
4042
+ * This needs to be used in all requests `OptionChoice` is needed, and all `OptionChoiceNames` fields are required.
4043
+ * > **Note:** Returned only when you pass `"VARIANT_OPTION_CHOICE_NAMES"` to the `fields` array in Products API requests.
4044
+ */
4045
+ optionChoiceNames?: OptionChoiceNames;
4046
+ }
4047
+ export interface OptionChoiceIds {
4048
+ /**
4049
+ * Option ID.
4050
+ * @minLength 1
4051
+ * @maxLength 36
4052
+ * @immutable
4053
+ */
4054
+ optionId?: string;
4055
+ /**
4056
+ * Choice ID.
4057
+ * @format GUID
4058
+ * @immutable
4059
+ */
4060
+ choiceId?: string;
4061
+ }
4062
+ export interface OptionChoiceNames {
4063
+ /**
4064
+ * Option name.
4065
+ * @minLength 1
4066
+ * @maxLength 50
4067
+ */
4068
+ optionName?: string;
4069
+ /**
4070
+ * Choice name.
4071
+ * @minLength 1
4072
+ * @maxLength 50
4073
+ */
4074
+ choiceName?: string;
4075
+ /** Render type. */
4076
+ renderType?: ProductOptionRenderType;
4077
+ }
4078
+ export interface PriceInfo {
4079
+ /** Variant price. Must be greater or equal to 0. */
4080
+ actualPrice?: FixedMonetaryAmount;
4081
+ /** The compare-at-price represents the original price of a product before any discount. It is optional and should only be set if a discount applies. When set, it must be higher than the current price to reflect accurate savings. */
4082
+ compareAtPrice?: FixedMonetaryAmount;
4083
+ }
4084
+ export interface RevenueDetails {
4085
+ /** Item cost. */
4086
+ cost?: FixedMonetaryAmount;
4087
+ /**
4088
+ * Profit. Calculated by reducing `cost` from `discountedPrice`.
4089
+ * @readonly
4090
+ */
4091
+ profit?: FixedMonetaryAmount;
4092
+ /**
4093
+ * Profit Margin. Calculated by dividing `profit` by `discountedPrice`.
4094
+ * The result is rounded to 4 decimal places.
4095
+ * @readonly
4096
+ * @max 1
4097
+ */
4098
+ profitMargin?: number;
4099
+ }
4100
+ export interface VariantPhysicalProperties {
4101
+ /**
4102
+ * Variant shipping weight.
4103
+ * product.physicalProperties.shipping_weight_range values are taken from here.
4104
+ * @max 999999999.99
4105
+ */
4106
+ weight?: number | null;
4107
+ /**
4108
+ * Price per unit info, in order to show price per unit on the product page.
4109
+ * For example if one sells cheese and defines 100g here then we know that buying this variant buyer receives 100g of cheese.
4110
+ * But on product page price will be displayed for units defined on product level. See `pricePerUnit.value` to understand how it's calculated.
4111
+ */
4112
+ pricePerUnit?: PricePerUnit;
4113
+ }
4114
+ export interface PricePerUnit {
4115
+ /**
4116
+ * Price per unit data for this variant.
4117
+ * `measurementUnit` value must correspond to the measurement unit set on the product.
4118
+ */
4119
+ settings?: PricePerUnitSettings;
4120
+ /**
4121
+ * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, of this variant, and discounted price of variant.
4122
+ * For example if discounted price is 2$, product's price per unit setting is 1 Kg, variant price per unit setting is 0.5 Kg then this value is 4$ (means variant weight is 0.5 Kg and it costs 2$ but we want to show price per 1 Kg so we show 4$).
4123
+ * @readonly
4124
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
4125
+ */
4126
+ value?: string;
4127
+ /**
4128
+ * Price per unit description.
4129
+ * > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
4130
+ * @readonly
4131
+ * @maxLength 100
4132
+ */
4133
+ description?: string | null;
4134
+ }
4135
+ export interface VariantDigitalProperties {
4136
+ /** Digital file which will be downloaded by customer after successful purchase. */
4137
+ digitalFile?: SecuredMedia;
4138
+ }
4139
+ export interface SecuredMedia {
4140
+ /**
4141
+ * Media ID in media manager.
4142
+ * @minLength 1
4143
+ * @maxLength 100
4144
+ */
4145
+ id?: string;
4146
+ /**
4147
+ * Original file name.
4148
+ * @minLength 1
4149
+ * @maxLength 1000
4150
+ * @readonly
4151
+ */
4152
+ fileName?: string;
4153
+ /**
4154
+ * Original file size.
4155
+ * @minLength 1
4156
+ * @maxLength 1000
4157
+ * @readonly
4158
+ * @format DECIMAL_VALUE
4159
+ * @decimalValue options { maxScale:0 }
4160
+ */
4161
+ fileSize?: string | null;
4162
+ /**
4163
+ * File type.
4164
+ * @readonly
4165
+ */
4166
+ fileType?: FileType;
4167
+ }
4168
+ export declare enum FileType {
4169
+ /** Unspecified file type. */
4170
+ UNSPECIFIED = "UNSPECIFIED",
4171
+ /** Secure picture file. */
4172
+ SECURE_PICTURE = "SECURE_PICTURE",
4173
+ /** Secure video file. */
4174
+ SECURE_VIDEO = "SECURE_VIDEO",
4175
+ /** Secure document file. */
4176
+ SECURE_DOCUMENT = "SECURE_DOCUMENT",
4177
+ /** Secure music file. */
4178
+ SECURE_MUSIC = "SECURE_MUSIC",
4179
+ /** Secure archive file. */
4180
+ SECURE_ARCHIVE = "SECURE_ARCHIVE"
4181
+ }
4182
+ export interface SubscriptionPricesInfo {
4183
+ /**
4184
+ * Subscription prices.
4185
+ * @maxSize 6
4186
+ */
4187
+ subscriptionPrices?: SubscriptionPrice[];
4188
+ }
4189
+ export interface SubscriptionPrice {
4190
+ /**
4191
+ * Subscription ID.
4192
+ * @format GUID
4193
+ * @readonly
4194
+ */
4195
+ subscriptionId?: string;
4196
+ /**
4197
+ * Subscription price calculated by applying subscription discount to the variant `price.actual_price`
4198
+ * @readonly
4199
+ */
4200
+ price?: FixedMonetaryAmount;
4201
+ /**
4202
+ * Price per unit info.
4203
+ * @readonly
4204
+ */
4205
+ pricePerUnit?: SubscriptionPricePerUnit;
4206
+ }
4207
+ export interface SubscriptionPricePerUnit {
4208
+ /**
4209
+ * Calculated value of price per unit. Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.
4210
+ * @readonly
4211
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
4212
+ */
4213
+ value?: string;
4214
+ /**
4215
+ * Price per unit description.
4216
+ * > **Note:** Returned only when you pass `"CURRENCY"` to the `fields` array in Products API requests.
4217
+ * @readonly
4218
+ * @maxLength 20
4219
+ */
4220
+ description?: string | null;
4221
+ }
4222
+ export interface InventoryStatus {
4223
+ /** Whether the variant is in stock. */
4224
+ inStock?: boolean;
4225
+ /** Whether preorder is enabled for this variant. */
4226
+ preorderEnabled?: boolean;
4227
+ }
4228
+ export interface ExtendedFields {
4229
+ /**
4230
+ * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.
4231
+ * The value of each key is structured according to the schema defined when the extended fields were configured.
4232
+ *
4233
+ * You can only access fields for which you have the appropriate permissions.
4234
+ *
4235
+ * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).
4236
+ */
4237
+ namespaces?: Record<string, Record<string, any>>;
4238
+ }
4239
+ export interface SubscriptionDetails {
4240
+ /**
4241
+ * Subscriptions.
4242
+ * @minSize 1
4243
+ * @maxSize 6
4244
+ */
4245
+ subscriptions?: Subscription[];
4246
+ /**
4247
+ * Whether to allow one-time purchases in addition to subscription-based purchases.
4248
+ *
4249
+ * Default: `false`
4250
+ */
4251
+ allowOneTimePurchases?: boolean | null;
4252
+ }
4253
+ export interface Subscription extends SubscriptionCyclesOneOf {
4254
+ /** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */
4255
+ autoRenewal?: boolean;
4256
+ /**
4257
+ * Number of billing cycles before subscription ends.
4258
+ * @min 2
4259
+ * @max 999
4260
+ */
4261
+ billingCycles?: number;
4262
+ /**
4263
+ * Subscription ID.
4264
+ * @format GUID
4265
+ * @immutable
4266
+ */
4267
+ id?: string | null;
4268
+ /**
4269
+ * Subscription title.
4270
+ * @minLength 1
4271
+ * @maxLength 20
4272
+ */
4273
+ title?: string;
4274
+ /**
4275
+ * Subscription description.
4276
+ * @maxLength 60
4277
+ */
4278
+ description?: string | null;
4279
+ /**
4280
+ * Whether the subscription is visible to site visitors.
4281
+ *
4282
+ * Default: `true`
4283
+ */
4284
+ visible?: boolean | null;
4285
+ /**
4286
+ * Frequency of recurring payment.
4287
+ * For example, if `frequency: MONTH` and `billingCycles: 6`; payment will be made monthly for 6 months.
4288
+ */
4289
+ frequency?: SubscriptionFrequency;
4290
+ /**
4291
+ * Interval of recurring payment. Default: `1`. For example, if `frequency: MONTH`, `billingCycles: 3` and `interval: 2`; payment will be made every 2 months for a total of 6 months.
4292
+ * @min 1
4293
+ * @max 50
4294
+ */
4295
+ interval?: number | null;
4296
+ /**
4297
+ * Discount info (optional).
4298
+ * For example, a $20 discount would be `amount: 20`, `type: AMOUNT`.
4299
+ */
4300
+ discount?: SubscriptionDiscount;
4301
+ }
4302
+ /** @oneof */
4303
+ export interface SubscriptionCyclesOneOf {
4304
+ /** Whether subscription is renewed automatically at the end of each period. Cannot be `false`, instead set `billingCycles`. */
4305
+ autoRenewal?: boolean;
4306
+ /**
4307
+ * Number of billing cycles before subscription ends.
4308
+ * @min 2
4309
+ * @max 999
4310
+ */
4311
+ billingCycles?: number;
4312
+ }
4313
+ /** Frequency unit of recurring payment */
4314
+ export declare enum SubscriptionFrequency {
4315
+ UNDEFINED = "UNDEFINED",
4316
+ DAY = "DAY",
4317
+ WEEK = "WEEK",
4318
+ MONTH = "MONTH",
4319
+ YEAR = "YEAR"
4320
+ }
4321
+ export interface SubscriptionDiscount extends SubscriptionDiscountDiscountOneOf {
4322
+ /**
4323
+ * Amount to discount from the variant discounted_price.
4324
+ * @decimalValue options { gt:0, lte:999999999, maxScale:3 }
4325
+ */
4326
+ amountOff?: string;
4327
+ /**
4328
+ * Percentage to discount from variant discounted_price.
4329
+ * @min 0.1
4330
+ * @max 99.9
4331
+ */
4332
+ percentOff?: number;
4333
+ /** Discount type. */
4334
+ type?: DiscountType;
4335
+ }
4336
+ /** @oneof */
4337
+ export interface SubscriptionDiscountDiscountOneOf {
4338
+ /**
4339
+ * Amount to discount from the variant discounted_price.
4340
+ * @decimalValue options { gt:0, lte:999999999, maxScale:3 }
4341
+ */
4342
+ amountOff?: string;
4343
+ /**
4344
+ * Percentage to discount from variant discounted_price.
4345
+ * @min 0.1
4346
+ * @max 99.9
4347
+ */
4348
+ percentOff?: number;
4349
+ }
4350
+ export declare enum DiscountType {
4351
+ UNKNOWN_DISCOUNT = "UNKNOWN_DISCOUNT",
4352
+ /** Discount by a specific amount. */
4353
+ AMOUNT = "AMOUNT",
4354
+ /** Discount by a percentage. */
4355
+ PERCENT = "PERCENT"
4356
+ }
4357
+ export interface VariantSummary {
4358
+ /**
4359
+ * The total number of variants for the product.
4360
+ * @readonly
4361
+ */
4362
+ variantCount?: number;
4363
+ }
4364
+ export interface MinVariantPriceInfo {
4365
+ /**
4366
+ * Subscription price calculated by applying subscription discount to the variant `price.actualPrice`
4367
+ * @readonly
4368
+ */
4369
+ minSubscriptionPrice?: FixedMonetaryAmount;
4370
+ /**
4371
+ * Subscription price per unit calculated value of price per unit.
4372
+ * Takes into account `pricePerUnit` settings of parent product, `pricePerUnit` settings of this variant, and the variant subscription price.
4373
+ * @readonly
4374
+ * @decimalValue options { gte:0, lte:999999999, maxScale:3 }
4375
+ */
4376
+ minSubscriptionPricePerUnit?: string | null;
4377
+ /**
4378
+ * Variant price per unit.
4379
+ * @readonly
4380
+ */
4381
+ pricePerUnitData?: PricePerUnit;
4382
+ /**
4383
+ * Variant SKU (stock keeping unit).
4384
+ * @readonly
4385
+ * @minLength 1
4386
+ * @maxLength 40
4387
+ */
4388
+ sku?: string | null;
4389
+ /**
4390
+ * Variant shipping weight.
4391
+ * @readonly
4392
+ * @max 999999999.99
4393
+ */
4394
+ weight?: number | null;
4395
+ /**
4396
+ * Variant revenue details.
4397
+ *
4398
+ * > **Note:** Returned only when the following conditions are met:
4399
+ * > + You pass `"MERCHANT_DATA"` to the `fields` array in Products API requests.
4400
+ * > + Your app has the required `SCOPE.STORES.PRODUCT_READ_ADMIN` permission scope.
4401
+ * @readonly
4402
+ */
4403
+ revenueDetails?: RevenueDetails;
4404
+ /** Variant price. Must be greater or equal to 0. */
4405
+ actualPrice?: FixedMonetaryAmount;
4406
+ /** The compare-at-price represents the original price of a product before any discount. It is optional and should only be set if a discount applies. When set, it must be higher than the current price to reflect accurate savings. */
4407
+ compareAtPrice?: FixedMonetaryAmount;
4408
+ }
4409
+ export interface MigrateProductVariantsResponse {
4410
+ }
4411
+ export interface DomainEvent extends DomainEventBodyOneOf {
4412
+ createdEvent?: EntityCreatedEvent;
4413
+ updatedEvent?: EntityUpdatedEvent;
4414
+ deletedEvent?: EntityDeletedEvent;
4415
+ actionEvent?: ActionEvent;
4416
+ /**
4417
+ * Unique event ID.
4418
+ * Allows clients to ignore duplicate webhooks.
4419
+ */
4420
+ id?: string;
4421
+ /**
4422
+ * Assumes actions are also always typed to an entity_type
4423
+ * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction
4424
+ */
4425
+ entityFqdn?: string;
4426
+ /**
4427
+ * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)
4428
+ * This is although the created/updated/deleted notion is duplication of the oneof types
4429
+ * Example: created/updated/deleted/started/completed/email_opened
4430
+ */
4431
+ slug?: string;
4432
+ /** ID of the entity associated with the event. */
4433
+ entityId?: string;
4434
+ /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example: 2020-04-26T13:57:50.699Z */
4435
+ eventTime?: Date | null;
4436
+ /**
4437
+ * Whether the event was triggered as a result of a privacy regulation application
4438
+ * (for example, GDPR).
4439
+ */
4440
+ triggeredByAnonymizeRequest?: boolean | null;
4441
+ /** If present, indicates the action that triggered the event. */
4442
+ originatedFrom?: string | null;
4443
+ /**
4444
+ * A sequence number defining the order of updates to the underlying entity.
4445
+ * For example, given that some entity was updated at 16:00 and than again at 16:01,
4446
+ * it is guaranteed that the sequence number of the second update is strictly higher than the first.
4447
+ * As the consumer, you can use this value to ensure that you handle messages in the correct order.
4448
+ * To do so, you will need to persist this number on your end, and compare the sequence number from the
4449
+ * message against the one you have stored. Given that the stored number is higher, you should ignore the message.
4450
+ */
4451
+ entityEventSequence?: string | null;
4452
+ }
4453
+ /** @oneof */
4454
+ export interface DomainEventBodyOneOf {
4455
+ createdEvent?: EntityCreatedEvent;
4456
+ updatedEvent?: EntityUpdatedEvent;
4457
+ deletedEvent?: EntityDeletedEvent;
4458
+ actionEvent?: ActionEvent;
4459
+ }
4460
+ export interface EntityCreatedEvent {
4461
+ entityAsJson?: string;
4462
+ /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */
4463
+ restoreInfo?: RestoreInfo;
4464
+ }
4465
+ export interface RestoreInfo {
4466
+ deletedDate?: Date | null;
4467
+ }
4468
+ export interface EntityUpdatedEvent {
4469
+ /**
4470
+ * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
4471
+ * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
4472
+ * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
4473
+ */
4474
+ currentEntityAsJson?: string;
4475
+ }
4476
+ export interface EntityDeletedEvent {
4477
+ /** Entity that was deleted */
4478
+ deletedEntityAsJson?: string | null;
4479
+ }
4480
+ export interface ActionEvent {
4481
+ bodyAsJson?: string;
4482
+ }
4483
+ export interface Empty {
4484
+ }
4485
+ export interface MessageEnvelope {
4486
+ /**
4487
+ * App instance ID.
4488
+ * @format GUID
4489
+ */
4490
+ instanceId?: string | null;
4491
+ /**
4492
+ * Event type.
4493
+ * @maxLength 150
4494
+ */
4495
+ eventType?: string;
4496
+ /** The identification type and identity data. */
4497
+ identity?: IdentificationData;
4498
+ /** Stringify payload. */
4499
+ data?: string;
4500
+ }
4501
+ export interface IdentificationData extends IdentificationDataIdOneOf {
4502
+ /**
4503
+ * ID of a site visitor that has not logged in to the site.
4504
+ * @format GUID
4505
+ */
4506
+ anonymousVisitorId?: string;
4507
+ /**
4508
+ * ID of a site visitor that has logged in to the site.
4509
+ * @format GUID
4510
+ */
4511
+ memberId?: string;
4512
+ /**
4513
+ * ID of a Wix user (site owner, contributor, etc.).
4514
+ * @format GUID
4515
+ */
4516
+ wixUserId?: string;
4517
+ /**
4518
+ * ID of an app.
4519
+ * @format GUID
4520
+ */
4521
+ appId?: string;
4522
+ /** @readonly */
4523
+ identityType?: WebhookIdentityType;
4524
+ }
4525
+ /** @oneof */
4526
+ export interface IdentificationDataIdOneOf {
4527
+ /**
4528
+ * ID of a site visitor that has not logged in to the site.
4529
+ * @format GUID
4530
+ */
4531
+ anonymousVisitorId?: string;
4532
+ /**
4533
+ * ID of a site visitor that has logged in to the site.
4534
+ * @format GUID
4535
+ */
4536
+ memberId?: string;
4537
+ /**
4538
+ * ID of a Wix user (site owner, contributor, etc.).
4539
+ * @format GUID
4540
+ */
4541
+ wixUserId?: string;
4542
+ /**
4543
+ * ID of an app.
4544
+ * @format GUID
4545
+ */
4546
+ appId?: string;
4547
+ }
4548
+ export declare enum WebhookIdentityType {
4549
+ UNKNOWN = "UNKNOWN",
4550
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
4551
+ MEMBER = "MEMBER",
4552
+ WIX_USER = "WIX_USER",
4553
+ APP = "APP"
4554
+ }