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