@viu/emporix-sdk 2.20.1 → 2.22.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 (82) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/dist/availability.d.cts +1 -1
  3. package/dist/availability.d.ts +1 -1
  4. package/dist/cart.cjs +83 -7
  5. package/dist/cart.cjs.map +1 -1
  6. package/dist/cart.d.cts +119 -4
  7. package/dist/cart.d.ts +119 -4
  8. package/dist/cart.js +1 -1
  9. package/dist/category.cjs +28 -0
  10. package/dist/category.cjs.map +1 -1
  11. package/dist/category.d.cts +11 -1
  12. package/dist/category.d.ts +11 -1
  13. package/dist/category.js +1 -1
  14. package/dist/checkout.d.cts +1 -1
  15. package/dist/checkout.d.ts +1 -1
  16. package/dist/{chunk-BNX3JULF.js → chunk-44F52KRE.js} +7 -5
  17. package/dist/chunk-44F52KRE.js.map +1 -0
  18. package/dist/{chunk-PAT4CS36.js → chunk-5DWCYDQD.js} +85 -9
  19. package/dist/chunk-5DWCYDQD.js.map +1 -0
  20. package/dist/{chunk-ZNLHLFQM.js → chunk-DXOLWAOY.js} +30 -2
  21. package/dist/chunk-DXOLWAOY.js.map +1 -0
  22. package/dist/{chunk-EAWGUZHS.js → chunk-HD5RBCM6.js} +7 -5
  23. package/dist/chunk-HD5RBCM6.js.map +1 -0
  24. package/dist/{chunk-DUVIIWFG.js → chunk-IAOWDMTA.js} +7 -5
  25. package/dist/chunk-IAOWDMTA.js.map +1 -0
  26. package/dist/{chunk-PYLWZZC4.js → chunk-MMX5FGMI.js} +19 -2
  27. package/dist/chunk-MMX5FGMI.js.map +1 -0
  28. package/dist/{chunk-NEXUWPHW.js → chunk-PRN3T6TY.js} +66 -6
  29. package/dist/chunk-PRN3T6TY.js.map +1 -0
  30. package/dist/companies.cjs +5 -3
  31. package/dist/companies.cjs.map +1 -1
  32. package/dist/companies.d.cts +5 -3
  33. package/dist/companies.d.ts +5 -3
  34. package/dist/companies.js +1 -1
  35. package/dist/contacts.cjs +5 -3
  36. package/dist/contacts.cjs.map +1 -1
  37. package/dist/contacts.d.cts +5 -3
  38. package/dist/contacts.d.ts +5 -3
  39. package/dist/contacts.js +1 -1
  40. package/dist/{context-Dawv2AtS.d.ts → context-CfXJcYKP.d.cts} +1 -1
  41. package/dist/{context-Dawv2AtS.d.cts → context-CfXJcYKP.d.ts} +1 -1
  42. package/dist/customer-groups.d.cts +1 -1
  43. package/dist/customer-groups.d.ts +1 -1
  44. package/dist/customer.cjs +64 -4
  45. package/dist/customer.cjs.map +1 -1
  46. package/dist/customer.d.cts +49 -2
  47. package/dist/customer.d.ts +49 -2
  48. package/dist/customer.js +1 -1
  49. package/dist/index.cjs +870 -235
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.d.cts +2138 -117
  52. package/dist/index.d.ts +2138 -117
  53. package/dist/index.js +676 -230
  54. package/dist/index.js.map +1 -1
  55. package/dist/locations.cjs +5 -3
  56. package/dist/locations.cjs.map +1 -1
  57. package/dist/locations.d.cts +5 -3
  58. package/dist/locations.d.ts +5 -3
  59. package/dist/locations.js +1 -1
  60. package/dist/media.d.cts +1 -1
  61. package/dist/media.d.ts +1 -1
  62. package/dist/orders.d.cts +1 -1
  63. package/dist/orders.d.ts +1 -1
  64. package/dist/payment.cjs +17 -0
  65. package/dist/payment.cjs.map +1 -1
  66. package/dist/payment.d.cts +38 -2
  67. package/dist/payment.d.ts +38 -2
  68. package/dist/payment.js +1 -1
  69. package/dist/price.d.cts +6 -6
  70. package/dist/price.d.ts +6 -6
  71. package/dist/product.d.cts +1 -1
  72. package/dist/product.d.ts +1 -1
  73. package/dist/segment.d.cts +1 -1
  74. package/dist/segment.d.ts +1 -1
  75. package/package.json +1 -1
  76. package/dist/chunk-BNX3JULF.js.map +0 -1
  77. package/dist/chunk-DUVIIWFG.js.map +0 -1
  78. package/dist/chunk-EAWGUZHS.js.map +0 -1
  79. package/dist/chunk-NEXUWPHW.js.map +0 -1
  80. package/dist/chunk-PAT4CS36.js.map +0 -1
  81. package/dist/chunk-PYLWZZC4.js.map +0 -1
  82. package/dist/chunk-ZNLHLFQM.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { C as ClientContext, b as AuthContext, P as PaginatedItems, T as TokenProvider, n as ResolvedConfig, E as EmporixConfig, j as LogLevel, o as ServiceName, e as CustomerTokenRefresher } from './context-Dawv2AtS.js';
2
- export { A as AnonymousSession, a as AnonymousSessionStore, c as AuthKind, d as CustomerRefreshRegistry, D as DEFAULT_HOST, f as DefaultTokenProvider, H as HttpClient, g as HttpClientOptions, L as LEVEL, h as LevelResolver, i as LogFields, k as Logger, l as LoggerConfig, m as LoggerObjectConfig, R as RequestOptions, S as ServiceCredentials, p as StorefrontCredentials, q as auth, r as createConsoleLogger, s as createNoopLogger, t as iterateAll, u as redact, v as resolveToken, w as validateConfig } from './context-Dawv2AtS.js';
1
+ import { C as ClientContext, b as AuthContext, P as PaginatedItems, T as TokenProvider, n as ResolvedConfig, E as EmporixConfig, j as LogLevel, o as ServiceName, e as CustomerTokenRefresher } from './context-CfXJcYKP.js';
2
+ export { A as AnonymousSession, a as AnonymousSessionStore, c as AuthKind, d as CustomerRefreshRegistry, D as DEFAULT_HOST, f as DefaultTokenProvider, H as HttpClient, g as HttpClientOptions, L as LEVEL, h as LevelResolver, i as LogFields, k as Logger, l as LoggerConfig, m as LoggerObjectConfig, R as RequestOptions, S as ServiceCredentials, p as StorefrontCredentials, q as auth, r as createConsoleLogger, s as createNoopLogger, t as iterateAll, u as redact, v as resolveToken, w as validateConfig } from './context-CfXJcYKP.js';
3
3
  import { CustomerService } from './customer.js';
4
- export { Address, AddressCreateInput, AddressUpdateInput, Customer, CustomerSession, CustomerSignupInput, CustomerUpdateInput, PasswordChangeInput, PasswordResetConfirmInput, PasswordResetRequestInput } from './customer.js';
4
+ export { Address, AddressCreateInput, AddressUpdateInput, ChangeEmailInput, ConfirmEmailChangeInput, Customer, CustomerSession, CustomerSignupInput, CustomerUpdateInput, PasswordChangeInput, PasswordResetConfirmInput, PasswordResetRequestInput, ResendActivationInput } from './customer.js';
5
5
  import { ProductService } from './product.js';
6
6
  export { Media, Product } from './product.js';
7
7
  import { CategoryService } from './category.js';
8
8
  export { Category, CategoryNode } from './category.js';
9
9
  import { CartService } from './cart.js';
10
- export { Cart, CartAddress, CartCreated, CartItemInput, CartItemUpdate, CreateCartInput } from './cart.js';
10
+ export { Cart, CartAddress, CartCreated, CartItem, CartItemInput, CartItemUpdate, CartItemsBatchUpdateInput, CartItemsBatchUpdateResult, CartValidationResult, CreateCartInput } from './cart.js';
11
11
  import { CheckoutService } from './checkout.js';
12
12
  export { CheckoutInput, CheckoutOptions, CheckoutResult, QuoteCheckoutInput } from './checkout.js';
13
13
  import { PaymentGatewayService } from './payment.js';
14
- export { AuthorizePaymentInput, AuthorizePaymentResult, PaymentMode } from './payment.js';
14
+ export { AuthorizePaymentInput, AuthorizePaymentResult, InitializePaymentInput, InitializePaymentResult, PaymentMode } from './payment.js';
15
15
  import { PriceService } from './price.js';
16
16
  export { MatchByContextChunkedOptions, PriceMatch, PriceMatchByContextInput, PriceMatchInput, PriceMatchItemRef } from './price.js';
17
17
  import { MediaService } from './media.js';
@@ -72,35 +72,183 @@ declare class EmporixInsufficientScopeError extends EmporixForbiddenError {
72
72
  declare function errorFromResponse(status: number, message: string, body: unknown): EmporixError;
73
73
 
74
74
  /**
75
- * One site as returned by the Site Settings Service. Mirrors the public
76
- * SiteDto schema with the fields a storefront actually consumes.
75
+ * Site address.
77
76
  */
78
- interface Site$1 {
77
+ type AddressDto = {
78
+ street?: string;
79
+ streetNumber?: string;
80
+ streetAppendix?: string;
81
+ extraLine1?: string;
82
+ extraLine2?: string;
83
+ extraLine3?: string;
84
+ extraLine4?: string;
85
+ zipCode: string;
86
+ city?: string;
87
+ country: string;
88
+ state?: string;
89
+ };
90
+ /**
91
+ * Currency used by the site, compliant with the ISO 4217 standard.
92
+ */
93
+ type CurrencyDto = string;
94
+ type DefaultDtoMetadata$1 = {
95
+ /**
96
+ * Mixin schema URLs.
97
+ */
98
+ mixins?: {
99
+ [key: string]: unknown;
100
+ };
101
+ version?: number;
102
+ };
103
+ /**
104
+ * Site location.
105
+ */
106
+ type HomeBaseDto = {
107
+ address: AddressDto;
108
+ location?: LocationDto;
109
+ /**
110
+ * The timezone of the site home base location. Must be a valid IANA timezone identifier.
111
+ *
112
+ * If not specified, no timezone will be set. When specified, the value must be a valid timezone ID as defined in the IANA Time Zone Database.
113
+ *
114
+ * Examples of valid timezones:
115
+ * - Europe/Paris
116
+ * - America/New_York
117
+ * - Asia/Tokyo
118
+ * - UTC
119
+ *
120
+ * Invalid timezone values (e.g., "Europe/Xp") will result in a 400 Bad Request response.
121
+ *
122
+ */
123
+ timezone?: string;
124
+ };
125
+ /**
126
+ * Site geographical location.
127
+ */
128
+ type LocationDto = {
129
+ latitude?: number;
130
+ longitude?: number;
131
+ };
132
+ /**
133
+ * Information about the site.
134
+ */
135
+ type SiteDto = {
136
+ /**
137
+ * Site unique identifier.
138
+ */
79
139
  code: string;
140
+ /**
141
+ * Site name.
142
+ */
80
143
  name: string;
81
- active: boolean;
82
- default: boolean;
144
+ /**
145
+ * Flag indicating whether the site is active.
146
+ */
147
+ active?: boolean;
148
+ /**
149
+ * Flag indicating whether the site is the tenant default site.
150
+ */
151
+ default?: boolean;
152
+ /**
153
+ * Indicates whether prices for the site should be returned in gross (when includesTax=true) or net (when includesTax=false).
154
+ */
83
155
  includesTax?: boolean;
156
+ /**
157
+ * Site's default language, compliant with the ISO 639-1 standard.
158
+ */
84
159
  defaultLanguage: string;
85
- languages: string[];
86
- currency: string;
87
- availableCurrencies?: string[];
88
- homeBase: {
89
- address: {
90
- country: string;
91
- zipCode: string;
92
- street?: string;
93
- city?: string;
94
- state?: string;
95
- };
96
- timezone?: string;
160
+ /**
161
+ * Languages supported by the site.
162
+ *
163
+ * **Note**: The languages must be compliant with the ISO 639-1 standard.
164
+ */
165
+ languages: Array<string>;
166
+ currency: CurrencyDto;
167
+ /**
168
+ * List of the currencies supported by the site
169
+ */
170
+ availableCurrencies?: Array<CurrencyDto>;
171
+ homeBase: HomeBaseDto;
172
+ /**
173
+ * Codes of countries to which the site ships products.
174
+ *
175
+ * **Note**: The country codes must be compliant with the ISO 3166-1 alpha-2 standard.
176
+ */
177
+ shipToCountries: Array<string>;
178
+ /**
179
+ * Shipping service configurations.
180
+ */
181
+ shipping?: Array<ServiceConfigurationDto>;
182
+ /**
183
+ * Payment service configurations.
184
+ */
185
+ payment?: Array<ServiceConfigurationDto>;
186
+ /**
187
+ * Tax service configurations.
188
+ *
189
+ * **The `tax` field is in preview mode** - some of the features may not be fully operational yet.
190
+ */
191
+ tax?: Array<ServiceConfigurationDto>;
192
+ assistedBuying?: AssistedBuying$1;
193
+ metadata?: DefaultDtoMetadata$1;
194
+ taxDeterminationBasedOn: TaxDeterminationBasedOn;
195
+ /**
196
+ * Site additional properties.
197
+ */
198
+ mixins?: {
199
+ [key: string]: unknown;
97
200
  };
98
- shipToCountries: string[];
201
+ /**
202
+ * Number of decimal points used in the cart calculation. Must be zero or a positive value.
203
+ */
99
204
  cartCalculationScale?: number;
100
- metadata?: {
101
- version?: number;
205
+ };
206
+ type ServiceConfigurationDto = {
207
+ /**
208
+ * Service configuration's unique identifier.
209
+ */
210
+ id?: string;
211
+ /**
212
+ * Service configuration's name.
213
+ */
214
+ name?: string;
215
+ serviceType?: string;
216
+ serviceUrl?: string;
217
+ /**
218
+ * Flag indicating whether the service is active.
219
+ */
220
+ active?: boolean;
221
+ configuration?: ServiceSettingsDto;
222
+ };
223
+ type ServiceSettingsDto = {
224
+ public?: {
225
+ [key: string]: unknown;
102
226
  };
103
- }
227
+ restricted?: {
228
+ [key: string]: unknown;
229
+ };
230
+ };
231
+ type AssistedBuying$1 = {
232
+ /**
233
+ * Storefront URL, where an employee should be redirected when the assisted buying mechanism is used.
234
+ */
235
+ storefrontUrl?: string;
236
+ };
237
+ /**
238
+ * Specifies whether tax calculation is based on customer billing address or shipping address. Default value is `BILLING_ADDRESS`.
239
+ */
240
+ type TaxDeterminationBasedOn = 'BILLING_ADDRESS' | 'SHIPPING_ADDRESS';
241
+
242
+ /**
243
+ * A site as returned by the Site Settings Service. Mirrors the generated
244
+ * `SiteDto`, but re-tightens `active`/`default` to required — the storefront
245
+ * relies on both being present (see {@link SiteService.current}).
246
+ */
247
+ type Site$1 = Omit<SiteDto, "active" | "default"> & {
248
+ active: boolean;
249
+ default: boolean;
250
+ };
251
+
104
252
  /**
105
253
  * Read-only access to the tenant's site catalog. List returns active sites
106
254
  * visible to the storefront context (the `site_manage` scope is only needed
@@ -122,42 +270,132 @@ declare class SiteService {
122
270
  }
123
271
 
124
272
  /**
125
- * One session context as returned by `GET /session-context/{tenant}/me/context`.
126
- * Created server-side when the user creates a cart. Until then, the server
127
- * returns 404 and {@link SessionContextService.get} resolves to `null`.
273
+ * Context attribute
128
274
  */
129
- interface SessionContext {
130
- sessionId: string;
275
+ type ContextAttribute = {
276
+ /**
277
+ * Additional context information key
278
+ */
279
+ key: string;
280
+ /**
281
+ * Additional context information value
282
+ */
283
+ value: {
284
+ [key: string]: unknown;
285
+ } | string;
286
+ };
287
+ type SessionContextGet = SessionContextBase & {
288
+ context?: Context;
289
+ } & {
290
+ metadata?: Metadata$9;
291
+ };
292
+ /**
293
+ * Request body for partially updating own session context (PATCH /me/context).
294
+ * Only the following fields can be updated; all other fields are ignored.
295
+ *
296
+ */
297
+ type SessionContextPatch$1 = {
298
+ /**
299
+ * Code of the site, as defined in the Site Settings Service.
300
+ */
301
+ siteCode?: string;
302
+ /**
303
+ * Three-letter currency code, as defined in the Currency Service.
304
+ */
305
+ currency?: string;
306
+ /**
307
+ * The country code, as defined in the country service.
308
+ */
309
+ targetLocation?: string;
310
+ /**
311
+ * Language associated with the session.
312
+ */
313
+ language?: string;
314
+ context?: Context;
315
+ metadata: MetadataUpdate$2;
316
+ };
317
+ type SessionContextBase = {
318
+ /**
319
+ * Unique identifier of the customer's session.
320
+ */
321
+ sessionId?: string;
322
+ /**
323
+ * Customer unique identifier.
324
+ *
325
+ * **Note**: This field is only applicable to logged-in customers.
326
+ */
131
327
  customerId?: string;
328
+ /**
329
+ * Code of the site, as defined in the Site Settings Service.
330
+ *
331
+ * **Note**: The default country code for anonymous sessions is based on the home base address country of the default site. In the case of a logged-in customer session, the country code is derived from the customer's shipping address, with the billing address being used as a fallback if the former is not available. If both addresses are not set, the home base address country code from the default site is used.
332
+ */
132
333
  siteCode?: string;
334
+ /**
335
+ * Three-letter currency code, as defined in the Currency Service.
336
+ *
337
+ * **Note**: During an anonymous session, the default currency of the site serves as the initial currency. Whereas, for a user session, the customer's preferred currency is set as the initial currency.
338
+ */
133
339
  currency?: string;
340
+ /**
341
+ * Unique identifier of the active customer cart, generated when the cart is created through the Cart Service.
342
+ */
134
343
  cartId?: string;
344
+ /**
345
+ * The country code, as defined in the country service.
346
+ *
347
+ *
348
+ * **Note**: The default country code for anonymous sessions is based on the home base address country of the default site. In the case of a logged-in customer session, the country code is derived from the customer's shipping address, with the billing address being used as a fallback if the former is not available. If both addresses are not set, the home base address country code from the default site is used.
349
+ */
135
350
  targetLocation?: string;
351
+ /**
352
+ * Language associated with the session.
353
+ */
136
354
  language?: string;
137
- context?: Record<string, unknown>;
138
- metadata?: {
139
- version?: number;
140
- createdAt?: string;
141
- modifiedAt?: string;
355
+ };
356
+ type MetadataUpdate$2 = {
357
+ /**
358
+ * Version of the session context object.
359
+ */
360
+ version?: number;
361
+ };
362
+ type Metadata$9 = MetadataUpdate$2 & {
363
+ /**
364
+ * Date and time when the object was created.
365
+ */
366
+ createdAt?: string;
367
+ /**
368
+ * Date and time when the object was last modified.
369
+ */
370
+ modifiedAt?: string;
371
+ };
372
+ type Context = {
373
+ [key: string]: {
374
+ [key: string]: unknown;
142
375
  };
143
- }
376
+ };
377
+
378
+ /** A single session-context attribute (generated). */
379
+ type SessionAttributeInput = ContextAttribute;
144
380
  /**
145
- * Input for {@link SessionContextService.patch}. Only the listed fields are
146
- * accepted by the server; everything else is ignored.
147
- *
148
- * If `version` is omitted, the service fetches the current version via GET
149
- * before PATCHing (one extra round-trip). Pass it explicitly when you already
150
- * know it (e.g. after a `get()` call earlier in the same flow).
381
+ * The current session context (`GET /me/context`). Mirrors the generated
382
+ * `SessionContextGet` but re-tightens `sessionId` to required — a returned
383
+ * context always carries one.
151
384
  */
152
- interface SessionContextPatch {
153
- siteCode?: string;
154
- currency?: string;
155
- targetLocation?: string;
156
- language?: string;
157
- context?: Record<string, unknown>;
158
- /** Override for optimistic-locking version. If omitted, GET resolves it. */
385
+ type SessionContext = Omit<SessionContextGet, "sessionId"> & {
386
+ sessionId: string;
387
+ };
388
+ /**
389
+ * Input for {@link SessionContextService.patch}. The updatable fields are
390
+ * derived from the generated patch body; `version` is a flat convenience for
391
+ * the wire's `metadata.version` (the service maps it). Omit `version` to have
392
+ * the service resolve it via a GET first.
393
+ */
394
+ type SessionContextPatch = Pick<SessionContextPatch$1, "siteCode" | "currency" | "targetLocation" | "language" | "context"> & {
395
+ /** Optimistic-locking version. If omitted, resolved via GET. */
159
396
  version?: number;
160
- }
397
+ };
398
+
161
399
  /**
162
400
  * Session-context binding for the current storefront session. Both endpoints
163
401
  * resolve the session-id from the `Authorization` token — no path/query
@@ -180,6 +418,10 @@ declare class SessionContextService {
180
418
  * update). Non-404 errors propagate.
181
419
  */
182
420
  patch(input: SessionContextPatch, authCtx?: AuthContext): Promise<boolean>;
421
+ /** Adds an attribute to the current session context. Default auth: anonymous. */
422
+ addAttribute(attribute: SessionAttributeInput, authCtx?: AuthContext): Promise<void>;
423
+ /** Removes a named attribute from the current session context. Default auth: anonymous. */
424
+ removeAttribute(name: string, authCtx?: AuthContext): Promise<void>;
183
425
  }
184
426
 
185
427
  type BaseConfiguration = {
@@ -1667,19 +1909,13 @@ type TextGenerationRequest = {
1667
1909
  */
1668
1910
  maxTokens?: number;
1669
1911
  };
1670
- type InnerTokenRequest = {
1671
- /**
1672
- * ID of the token.
1673
- */
1674
- id: string;
1675
- };
1676
- type InnerTokenResponse = {
1912
+ type IdResponse = {
1677
1913
  /**
1678
- * ID of the token.
1914
+ * Identifier of the resource.
1679
1915
  */
1680
1916
  id?: string;
1681
1917
  };
1682
- type ExpandedTokenResponse = InnerTokenResponse & {
1918
+ type ExpandedTokenResponse = IdResponse & {
1683
1919
  /**
1684
1920
  * Name of the token.
1685
1921
  */
@@ -1689,9 +1925,15 @@ type ExpandedTokenResponse = InnerTokenResponse & {
1689
1925
  /**
1690
1926
  * The full response representing token. If the `expand=token` is **not** used, then only `id` field is returned, otherwise all fields are returned.
1691
1927
  */
1692
- type ExpandableTokenResponse = InnerTokenResponse | ExpandedTokenResponse;
1928
+ type ExpandableTokenResponse = IdResponse | ExpandedTokenResponse;
1693
1929
  /**
1694
- * Type of the native tool. Value `teams` is in preview.
1930
+ * Type of the native tool. Possible values:
1931
+ * * `slack`
1932
+ * * `rag_custom`
1933
+ * * `rag_emporix`
1934
+ * * `teams`
1935
+ *
1936
+ * **The `teams` value is in preview mode** - some of the features may not be fully operational yet.
1695
1937
  */
1696
1938
  type NativeToolType = 'slack' | 'rag_custom' | 'rag_emporix' | 'teams';
1697
1939
  type BaseNativeTool = {
@@ -1711,6 +1953,9 @@ type RagCustomEmbeddingNativeToolConfig = {
1711
1953
  */
1712
1954
  model: string;
1713
1955
  };
1956
+ type RagCustomEmbeddingNativeToolConfigRequest = RagCustomEmbeddingNativeToolConfig & {
1957
+ token: IdWrapperRequest;
1958
+ };
1714
1959
  type RagCustomEmbeddingNativeToolConfigResponse = RagCustomEmbeddingNativeToolConfig & {
1715
1960
  token?: ExpandableTokenResponse;
1716
1961
  };
@@ -1734,6 +1979,9 @@ type RagCustomDatabaseNativeToolConfig = {
1734
1979
  */
1735
1980
  collectionName: string;
1736
1981
  };
1982
+ type RagCustomDatabaseNativeToolConfigRequest = RagCustomDatabaseNativeToolConfig & {
1983
+ token: IdWrapperRequest;
1984
+ };
1737
1985
  type RagCustomDatabaseNativeToolConfigResponse = RagCustomDatabaseNativeToolConfig & {
1738
1986
  token?: ExpandableTokenResponse;
1739
1987
  };
@@ -1747,6 +1995,10 @@ type RagCustomNativeToolConfig = {
1747
1995
  */
1748
1996
  maxResults?: number;
1749
1997
  };
1998
+ type RagCustomNativeToolConfigRequest = RagCustomNativeToolConfig & {
1999
+ databaseConfig: RagCustomDatabaseNativeToolConfigRequest;
2000
+ embeddingConfig: RagCustomEmbeddingNativeToolConfigRequest;
2001
+ };
1750
2002
  type RagCustomNativeToolConfigResponse = RagCustomNativeToolConfig & {
1751
2003
  databaseConfig?: RagCustomDatabaseNativeToolConfigResponse;
1752
2004
  embeddingConfig?: RagCustomEmbeddingNativeToolConfigResponse;
@@ -1772,6 +2024,9 @@ type OpenAiRagEmporixEmbeddingNativeToolConfig = {
1772
2024
  */
1773
2025
  dimensions: number;
1774
2026
  };
2027
+ type OpenAiRagEmporixEmbeddingNativeToolConfigRequest = OpenAiRagEmporixEmbeddingNativeToolConfig & {
2028
+ token: IdWrapperRequest;
2029
+ };
1775
2030
  type OpenAiRagEmporixEmbeddingNativeToolConfigResponse = OpenAiRagEmporixEmbeddingNativeToolConfig & {
1776
2031
  token?: ExpandableTokenResponse;
1777
2032
  };
@@ -1793,6 +2048,9 @@ type SelfHostedOllamaRagEmporixEmbeddingNativeToolConfig = {
1793
2048
  */
1794
2049
  url: string;
1795
2050
  };
2051
+ type SelfHostedOllamaRagEmporixEmbeddingNativeToolConfigRequest = SelfHostedOllamaRagEmporixEmbeddingNativeToolConfig & {
2052
+ token: IdWrapperRequest;
2053
+ };
1796
2054
  type SelfHostedOllamaRagEmporixEmbeddingNativeToolConfigResponse = SelfHostedOllamaRagEmporixEmbeddingNativeToolConfig & {
1797
2055
  token?: ExpandableTokenResponse;
1798
2056
  };
@@ -1832,6 +2090,9 @@ type RagEmporixNativeToolConfig = {
1832
2090
  key: string;
1833
2091
  }>;
1834
2092
  };
2093
+ type RagEmporixNativeToolConfigRequest = RagEmporixNativeToolConfig & {
2094
+ embeddingConfig: EmporixOpenAiRagEmporixEmbeddingNativeToolConfig | OpenAiRagEmporixEmbeddingNativeToolConfigRequest | SelfHostedOllamaRagEmporixEmbeddingNativeToolConfigRequest;
2095
+ };
1835
2096
  type RagEmporixNativeToolConfigResponse = RagEmporixNativeToolConfig & {
1836
2097
  embeddingConfig?: EmporixOpenAiRagEmporixEmbeddingNativeToolConfig | OpenAiRagEmporixEmbeddingNativeToolConfigResponse | SelfHostedOllamaRagEmporixEmbeddingNativeToolConfigResponse;
1837
2098
  };
@@ -1841,6 +2102,20 @@ type SlackNativeToolConfigResponse = {
1841
2102
  */
1842
2103
  teamId: string;
1843
2104
  };
2105
+ type SlackNativeToolConfigRequest = SlackNativeToolConfigResponse & {
2106
+ /**
2107
+ * OAuth token used to authenticate the Slack bot within the specified workspace. Required for performing authorized actions on behalf of the bot. Format usually starts with `xoxb-...`. It is required only for creation, for update operation it can be omitted.
2108
+ */
2109
+ botToken: string;
2110
+ };
2111
+ type SlackNativeToolRequest = BaseNativeTool & {
2112
+ /**
2113
+ * For SlackNativeTool it has to be set to `slack`.
2114
+ */
2115
+ type?: unknown;
2116
+ config: SlackNativeToolConfigRequest;
2117
+ metadata?: MetadataRequest;
2118
+ };
1844
2119
  type SlackNativeToolResponse = BaseNativeTool & {
1845
2120
  /**
1846
2121
  * Unique identifier of the tool.
@@ -1858,13 +2133,9 @@ type SlackNativeToolResponse = BaseNativeTool & {
1858
2133
  */
1859
2134
  type TeamsAllowedOperations = 'sendMessage' | 'createChat' | 'createChannel' | 'inviteParticipants' | 'collaborateOnChannel' | 'collaborateOnChat';
1860
2135
  /**
1861
- * ![Preview](https://res.cloudinary.com/saas-ag/image/upload/v1752824268/emporix/icons/preview_api1.png)
1862
- *
1863
- * {% hint style="danger" %}
1864
- * This functionality is in preview mode - some of the features may not be fully operational yet.
1865
- * {% endhint %}
1866
- *
1867
2136
  * Configuration of an MS Teams native tool instance.
2137
+ *
2138
+ * **The MS Teams native tool configuration is in preview mode** - some of the features may not be fully operational yet.
1868
2139
  */
1869
2140
  type TeamsNativeToolConfigResponse = {
1870
2141
  /**
@@ -1884,6 +2155,15 @@ type TeamsNativeToolConfigResponse = {
1884
2155
  */
1885
2156
  allowedOperations?: Array<TeamsAllowedOperations>;
1886
2157
  };
2158
+ type TeamsNativeToolConfigRequest = TeamsNativeToolConfigResponse;
2159
+ type TeamsNativeToolRequest = BaseNativeTool & {
2160
+ /**
2161
+ * For TeamsNativeTool it has to be set to `teams`.
2162
+ */
2163
+ type?: unknown;
2164
+ config: TeamsNativeToolConfigRequest;
2165
+ metadata?: MetadataRequest;
2166
+ };
1887
2167
  type TeamsNativeToolResponse = BaseNativeTool & {
1888
2168
  /**
1889
2169
  * Unique identifier of the tool.
@@ -1896,6 +2176,14 @@ type TeamsNativeToolResponse = BaseNativeTool & {
1896
2176
  config?: TeamsNativeToolConfigResponse;
1897
2177
  metadata?: MetadataResponse$1;
1898
2178
  };
2179
+ type RagCustomNativeToolRequest = BaseNativeTool & {
2180
+ /**
2181
+ * For `RagCustomNativeTool`, it has to be set to `rag_custom`.
2182
+ */
2183
+ type?: unknown;
2184
+ config: RagCustomNativeToolConfigRequest;
2185
+ metadata?: MetadataRequest;
2186
+ };
1899
2187
  type RagCustomNativeToolResponse = BaseNativeTool & {
1900
2188
  /**
1901
2189
  * Unique identifier of the tool.
@@ -1908,6 +2196,14 @@ type RagCustomNativeToolResponse = BaseNativeTool & {
1908
2196
  config?: RagCustomNativeToolConfigResponse;
1909
2197
  metadata?: MetadataResponse$1;
1910
2198
  };
2199
+ type RagEmporixNativeToolRequest = BaseNativeTool & {
2200
+ /**
2201
+ * For `RagEmporixNativeTool`, it has to be set to `rag_emporix`.
2202
+ */
2203
+ type?: unknown;
2204
+ config: RagEmporixNativeToolConfigRequest;
2205
+ metadata?: MetadataRequest;
2206
+ };
1911
2207
  type RagEmporixNativeToolResponse = BaseNativeTool & {
1912
2208
  /**
1913
2209
  * Unique identifier of the tool.
@@ -1967,6 +2263,9 @@ type McpServerConfig = {
1967
2263
  */
1968
2264
  authorizationHeaderName?: string;
1969
2265
  };
2266
+ type McpServerConfigRequest = McpServerConfig & {
2267
+ authorizationHeaderToken?: IdWrapperRequest;
2268
+ };
1970
2269
  type McpServerConfigResponse = McpServerConfig & {
1971
2270
  authorizationHeaderToken?: ExpandableTokenResponse;
1972
2271
  };
@@ -1984,10 +2283,20 @@ type BaseMcpServer = {
1984
2283
  enabled?: boolean;
1985
2284
  transport?: CustomMcpServerTransportType;
1986
2285
  };
2286
+ type McpServerRequest = BaseMcpServer & {
2287
+ config: McpServerConfigRequest;
2288
+ metadata?: MetadataRequest;
2289
+ };
1987
2290
  type McpServerResponse = BaseMcpServer & {
1988
2291
  config?: McpServerConfigResponse;
1989
2292
  metadata?: MetadataResponse$1;
1990
2293
  };
2294
+ type CommerceEventsResponse = {
2295
+ /**
2296
+ * List of events available to use by an agent with the `COMMERCE_EVENTS` trigger.
2297
+ */
2298
+ events?: Array<string>;
2299
+ };
1991
2300
  /**
1992
2301
  * Type of the MCP server. The `custom` type allows you to integrate with your own MCP server instance, while the `predefined` type allows you to integrate with one of the instances provided by Emporix.
1993
2302
  */
@@ -2053,54 +2362,25 @@ type EmporixLlm = BaseLlm & {
2053
2362
  */
2054
2363
  provider: 'emporix_openai';
2055
2364
  };
2056
- /**
2057
- * OAuth 2.0 client-credentials settings for authenticating with a self-hosted LLM backend.
2058
- */
2059
- type OAuthParams = {
2365
+ type SelfHostedParams = {
2060
2366
  /**
2061
- * Base URL of the OAuth 2.0 authorization server. The access token is requested from `{url}/token`.
2367
+ * Url of the self-hosted LLM.
2062
2368
  */
2063
2369
  url: string;
2064
2370
  /**
2065
- * OAuth 2.0 client identifier registered with the authorization server.
2066
- */
2067
- clientId: string;
2068
- /**
2069
- * OAuth 2.0 grant type used to obtain an access token.
2070
- */
2071
- grantType: 'client_credentials';
2072
- /**
2073
- * Optional space-separated list of scopes to request for the access token.
2371
+ * Name of the header required for authorization e.g. `Authorization`.
2074
2372
  */
2075
- scope?: string;
2373
+ authorizationHeaderName?: string;
2076
2374
  };
2077
- type OAuthParamsRequest = OAuthParams & {
2375
+ type SelfHostedParamsRequest = SelfHostedParams & {
2078
2376
  [key: string]: unknown;
2079
2377
  } & {
2080
- clientSecret?: InnerTokenRequest;
2378
+ authorizationHeaderToken?: IdWrapperRequest;
2379
+ oauth?: IdWrapperRequest;
2081
2380
  };
2082
- type OAuthParamsResponse = OAuthParams & {
2083
- clientSecret?: ExpandableTokenResponse;
2084
- };
2085
- type SelfHostedParams = {
2086
- /**
2087
- * Url of the self-hosted LLM.
2088
- */
2089
- url: string;
2090
- /**
2091
- * Name of the header required for authorization e.g. `Authorization`.
2092
- */
2093
- authorizationHeaderName?: string;
2094
- };
2095
- type SelfHostedParamsRequest = SelfHostedParams & {
2096
- [key: string]: unknown;
2097
- } & {
2098
- authorizationHeaderToken?: InnerTokenRequest;
2099
- oAuthParams?: OAuthParamsRequest;
2100
- };
2101
- type SelfHostedParamsResponse = SelfHostedParams & {
2102
- authorizationHeaderToken?: ExpandableTokenResponse;
2103
- oAuthParams?: OAuthParamsResponse;
2381
+ type SelfHostedParamsResponse = SelfHostedParams & {
2382
+ authorizationHeaderToken?: ExpandableTokenResponse;
2383
+ oauth?: ExpandableOAuthResponse;
2104
2384
  };
2105
2385
  type SelfHostedLlm = BaseLlm & {
2106
2386
  /**
@@ -2118,22 +2398,105 @@ type SelfHostedLlmResponse = SelfHostedLlm & {
2118
2398
  * Type of the LLM Provider. The supported providers allows you to provide your own API key. When using this providers, the `apiKey` property cannot be omitted.
2119
2399
  */
2120
2400
  type ApiKeyLlmProvider = 'openai' | 'google' | 'anthropic';
2401
+ type ModelResponse = {
2402
+ /**
2403
+ * Model identifier to use in agent LLM configuration.
2404
+ */
2405
+ id: string;
2406
+ /**
2407
+ * Display name of the model.
2408
+ */
2409
+ name: string;
2410
+ /**
2411
+ * Short description of the model. Available for some providers, such as Google.
2412
+ */
2413
+ description?: string;
2414
+ /**
2415
+ * Indicates whether the model supports thinking capabilities.
2416
+ */
2417
+ thinking?: boolean;
2418
+ };
2419
+ type ProviderModelsResponse = {
2420
+ provider: ApiKeyLlmProvider;
2421
+ /**
2422
+ * List of models available for the provider.
2423
+ */
2424
+ models: Array<ModelResponse>;
2425
+ };
2121
2426
  type ApiKeyLlm = BaseLlm & {
2122
2427
  provider: ApiKeyLlmProvider;
2123
2428
  };
2124
2429
  type ApiKeyLlmRequest = ApiKeyLlm & {
2125
- token: InnerTokenRequest;
2430
+ token: IdWrapperRequest;
2126
2431
  };
2127
2432
  type ApiKeyLlmResponse = ApiKeyLlm & {
2128
2433
  token?: ExpandableTokenResponse;
2129
2434
  };
2130
2435
  /**
2131
- * ![Preview](https://res.cloudinary.com/saas-ag/image/upload/v1752824268/emporix/icons/preview_api1.png)
2132
- *
2133
- * {% hint style="danger" %}
2134
- * This functionality is in preview mode - some of the features may not be fully operational yet.
2135
- * {% endhint %}
2136
- *
2436
+ * OAuth 2.0 client-credentials settings for authenticating with a self-hosted LLM backend.
2437
+ */
2438
+ type OAuth = {
2439
+ /**
2440
+ * Token endpoint URL of the OAuth 2.0 authorization server used to request an access token.
2441
+ */
2442
+ url: string;
2443
+ /**
2444
+ * OAuth 2.0 client identifier registered with the authorization server.
2445
+ */
2446
+ clientId: string;
2447
+ /**
2448
+ * OAuth 2.0 grant type used to obtain an access token. Currently only `client_credentials` is supported.
2449
+ */
2450
+ grantType: 'client_credentials';
2451
+ /**
2452
+ * Optional space-separated list of scopes to request for the access token.
2453
+ */
2454
+ scope?: string;
2455
+ /**
2456
+ * Indicates whether the OAuth configuration is enabled.
2457
+ */
2458
+ enabled?: boolean;
2459
+ };
2460
+ type OAuthRequest = OAuth & {
2461
+ clientSecretToken?: IdWrapperRequest;
2462
+ metadata?: MetadataRequest;
2463
+ };
2464
+ type OAuthResponse = OAuth & {
2465
+ /**
2466
+ * Unique identifier of the entity.
2467
+ */
2468
+ id?: string;
2469
+ clientSecretToken?: ExpandableTokenResponse;
2470
+ metadata?: MetadataResponse$1;
2471
+ };
2472
+ /**
2473
+ * The full response representing OAuth. If the `expand=oauth` is **not** used, then only `id` field is returned, otherwise all fields are returned.
2474
+ */
2475
+ type ExpandableOAuthResponse = IdResponse | OAuthResponse;
2476
+ type BaseToken = {
2477
+ /**
2478
+ * Name of the token.
2479
+ */
2480
+ name: string;
2481
+ };
2482
+ type TokenRequest = BaseToken & {
2483
+ /**
2484
+ * Value which represents token.
2485
+ */
2486
+ value: string;
2487
+ metadata?: MetadataRequest;
2488
+ };
2489
+ type TokenResponse = BaseToken & {
2490
+ /**
2491
+ * Unique identifier of the token.
2492
+ */
2493
+ id?: string;
2494
+ metadata?: MetadataResponse$1;
2495
+ };
2496
+ type IdWrapperRequest = {
2497
+ id: string;
2498
+ };
2499
+ /**
2137
2500
  * Reference to a native tool assigned to an agent.
2138
2501
  */
2139
2502
  type NativeToolReferenceRequest = {
@@ -2143,6 +2506,8 @@ type NativeToolReferenceRequest = {
2143
2506
  id: string;
2144
2507
  /**
2145
2508
  * Optional per-agent override of allowed MS Teams operations. When omitted, the tool instance defaults apply.
2509
+ *
2510
+ * **The `allowedOperations` field is in preview mode** - some of the features may not be fully operational yet.
2146
2511
  */
2147
2512
  allowedOperations?: Array<TeamsAllowedOperations>;
2148
2513
  };
@@ -2310,6 +2675,18 @@ type BaseForAgentRequestAndResponse = BaseForAgentAndTemplate & {
2310
2675
  */
2311
2676
  enabledMemory?: boolean;
2312
2677
  };
2678
+ type AgentTemplateResponse = BaseForAgentAndTemplate & {
2679
+ /**
2680
+ * Immutable LLM base prompt which is concatenated with the `userPrompt`.
2681
+ */
2682
+ templatePrompt?: string;
2683
+ /**
2684
+ * Identifier of the agent.
2685
+ */
2686
+ id?: string;
2687
+ nativeTools?: NativeToolsResponse;
2688
+ mcpServers?: AgentMcpServersResponse;
2689
+ };
2313
2690
  type AgentRequest = BaseForAgentRequestAndResponse & {
2314
2691
  /**
2315
2692
  * Native tools assigned to the agent, optionally with per-agent `allowedOperations` overrides.
@@ -2351,6 +2728,176 @@ type MetadataResponse$1 = MetadataRequest & {
2351
2728
  */
2352
2729
  modifiedAt: string;
2353
2730
  };
2731
+ /**
2732
+ * Status of the job.
2733
+ */
2734
+ type JobStatus = 'in_progress' | 'success' | 'failure' | 'skipped';
2735
+ /**
2736
+ * Type of the job.
2737
+ */
2738
+ type JobType = 'IMPORT' | 'EXPORT' | 'AGENT_CHAT';
2739
+ /**
2740
+ * Contains information about the job result - whether it was successful or not, what was the agent output etc.
2741
+ */
2742
+ type Job$1 = {
2743
+ /**
2744
+ * Unique identifier of the job.
2745
+ */
2746
+ id?: string;
2747
+ agentType?: AgentType;
2748
+ status?: JobStatus;
2749
+ type?: JobType;
2750
+ exportResult?: ExportResult;
2751
+ importResult?: ImportResult;
2752
+ /**
2753
+ * Unique identifier of the session.
2754
+ */
2755
+ sessionId?: string;
2756
+ /**
2757
+ * Unique identifier of the agent.
2758
+ */
2759
+ agentId?: string;
2760
+ /**
2761
+ * Agent message.
2762
+ */
2763
+ message?: string;
2764
+ /**
2765
+ * Commerce event which triggered the job.
2766
+ */
2767
+ commerceEvent?: string;
2768
+ metadata?: MetadataResponse$1;
2769
+ };
2770
+ type ImportResult = {
2771
+ /**
2772
+ * Short summary of the import.
2773
+ */
2774
+ message?: string;
2775
+ /**
2776
+ * Summary of the import.
2777
+ */
2778
+ summary?: {
2779
+ agents?: Array<ImportedEntity>;
2780
+ tools?: Array<ImportedEntity>;
2781
+ mcpServers?: Array<ImportedEntity>;
2782
+ };
2783
+ };
2784
+ type ExportResult = {
2785
+ /**
2786
+ * The base64 encoded JSON value of the exported agents with related tools and MCP servers.
2787
+ */
2788
+ data?: string;
2789
+ /**
2790
+ * Checksum calculated based on JSON value. Validates if importing JSON is exactly the same as the exported one.
2791
+ */
2792
+ checksum?: string;
2793
+ };
2794
+ type ImportedEntity = {
2795
+ /**
2796
+ * ID of the imported entity.
2797
+ */
2798
+ id?: string;
2799
+ /**
2800
+ * Name of the imported entity.
2801
+ */
2802
+ name?: string;
2803
+ /**
2804
+ * State of the imported entity.
2805
+ */
2806
+ state?: 'TO_CREATE' | 'ENABLED' | 'DISABLED' | 'EXISTS';
2807
+ };
2808
+ type AttachmentResponse = {
2809
+ /**
2810
+ * Unique identifier of the created attachment.
2811
+ */
2812
+ id?: string;
2813
+ /**
2814
+ * Unique identifier of the session. The same sessionId must be used when calling chat endpoints to ensure the correct attachment is found.
2815
+ */
2816
+ sessionId?: string;
2817
+ };
2818
+ /**
2819
+ * Severity level of the log entry.
2820
+ */
2821
+ type LogSeverity = 'INFO' | 'WARNING' | 'ERROR';
2822
+ type AgentLogMessageResponse = {
2823
+ /**
2824
+ * Timestamp when the log message was created.
2825
+ */
2826
+ timestamp?: string;
2827
+ severity?: LogSeverity;
2828
+ /**
2829
+ * The log message content.
2830
+ */
2831
+ message?: string;
2832
+ /**
2833
+ * Unique identifier of the agent that generated the log.
2834
+ */
2835
+ agentId?: string;
2836
+ /**
2837
+ * Unique identifier of the request associated with the log.
2838
+ */
2839
+ requestId?: string;
2840
+ /**
2841
+ * Whether this is a business log entry.
2842
+ */
2843
+ isBusinessLog?: boolean;
2844
+ };
2845
+ type AgentRequestResponse = {
2846
+ /**
2847
+ * Unique identifier of the request log.
2848
+ */
2849
+ id?: string;
2850
+ /**
2851
+ * Unique identifier of the session.
2852
+ */
2853
+ sessionId?: string;
2854
+ /**
2855
+ * Unique identifier of the request.
2856
+ */
2857
+ requestId?: string;
2858
+ /**
2859
+ * Unique identifier of the agent that triggered the request.
2860
+ */
2861
+ triggerAgentId?: string;
2862
+ /**
2863
+ * List of agent IDs that collaborated in this request.
2864
+ */
2865
+ collaborationAgents?: Array<string>;
2866
+ severity?: LogSeverity;
2867
+ /**
2868
+ * List of log messages associated with this request.
2869
+ */
2870
+ messages?: Array<AgentLogMessageResponse>;
2871
+ /**
2872
+ * Duration of the request in seconds.
2873
+ */
2874
+ duration?: number;
2875
+ metadata?: MetadataResponse$1;
2876
+ };
2877
+ type AgentSessionResponse = {
2878
+ /**
2879
+ * Unique identifier of the session.
2880
+ */
2881
+ sessionId?: string;
2882
+ /**
2883
+ * Unique identifier of the agent that triggered the session.
2884
+ */
2885
+ triggerAgentId?: string;
2886
+ severity?: LogSeverity;
2887
+ /**
2888
+ * List of agent IDs that participated in this session.
2889
+ */
2890
+ agents?: Array<string>;
2891
+ /**
2892
+ * List of log messages associated with this session.
2893
+ */
2894
+ messages?: Array<AgentLogMessageResponse>;
2895
+ /**
2896
+ * Duration of the session in seconds.
2897
+ */
2898
+ duration?: number;
2899
+ metadata?: MetadataResponse$1;
2900
+ };
2354
2901
  type CompletionRequest$1 = {
2355
2902
  /**
2356
2903
  * Identifier of the request. The value is not mandatory - if provided, then the ID is returned in the text generation response.
@@ -2376,6 +2923,12 @@ type QParamSearchBody = {
2376
2923
  */
2377
2924
  q?: string;
2378
2925
  };
2926
+ type AgentFromTemplateRequest = BaseForAgentAndTemplateAndHandOff & {
2927
+ /**
2928
+ * LLM Prompt which describes how agent should work in a detailed way, which tools it could use to solve problems etc; it can contain examples and step by step guidance.
2929
+ */
2930
+ userPrompt: string;
2931
+ };
2379
2932
  /**
2380
2933
  * Partial update operation list.
2381
2934
  */
@@ -2386,7 +2939,151 @@ type PatchRequest = Array<{
2386
2939
  [key: string]: unknown;
2387
2940
  };
2388
2941
  }>;
2942
+ type ExportResponse = DataWithChecksum & {
2943
+ /**
2944
+ * Date of the export process.
2945
+ */
2946
+ exportedAt?: string;
2947
+ /**
2948
+ * ID of the job.
2949
+ */
2950
+ jobId?: string;
2951
+ };
2952
+ type DataWithChecksum = {
2953
+ /**
2954
+ * The base64 encoded JSON value of the exported agents with related tools and MCP servers.
2955
+ */
2956
+ data?: string;
2957
+ /**
2958
+ * Checksum calculated based on decoded `data` value. Validates if importing JSON is exactly the same as the exported one.
2959
+ */
2960
+ checksum?: string;
2961
+ };
2962
+ type ExportRequest = {
2963
+ /**
2964
+ * List of the agents IDs.
2965
+ */
2966
+ agentIds: Array<string>;
2967
+ };
2968
+ type ImportResponse = ImportResult & {
2969
+ /**
2970
+ * Date of the import process.
2971
+ */
2972
+ importedAt?: string;
2973
+ /**
2974
+ * ID of the job.
2975
+ */
2976
+ jobId?: string;
2977
+ };
2978
+ type ImportRequest = DataWithChecksum;
2979
+ /**
2980
+ * Request log counts by severity.
2981
+ */
2982
+ type AnalyticsSeverityCounts = {
2983
+ info?: number;
2984
+ warning?: number;
2985
+ error?: number;
2986
+ };
2987
+ /**
2988
+ * Session counts by outcome severity.
2989
+ */
2990
+ type AnalyticsSessionSeverityCounts = {
2991
+ success?: number;
2992
+ warning?: number;
2993
+ error?: number;
2994
+ };
2995
+ type AnalyticsLogMetrics = {
2996
+ /**
2997
+ * Total number of request logs in scope.
2998
+ */
2999
+ total?: number;
3000
+ bySeverity?: AnalyticsSeverityCounts;
3001
+ /**
3002
+ * Share of error-severity logs among request logs.
3003
+ */
3004
+ errorRate?: number;
3005
+ };
3006
+ type AnalyticsSessionMetrics = {
3007
+ /**
3008
+ * Total number of sessions in scope.
3009
+ */
3010
+ total?: number;
3011
+ bySeverity?: AnalyticsSessionSeverityCounts;
3012
+ /**
3013
+ * Share of error outcome sessions among sessions.
3014
+ */
3015
+ errorRate?: number;
3016
+ };
3017
+ type AnalyticsResolutionEfficiency = {
3018
+ /**
3019
+ * Average number of requests per session.
3020
+ */
3021
+ requestsPerSession?: number;
3022
+ totalRequests?: number;
3023
+ totalSessions?: number;
3024
+ };
3025
+ type AnalyticsRequestTrendPoint = {
3026
+ /**
3027
+ * Week start instant (UTC).
3028
+ */
3029
+ date?: string;
3030
+ total?: number;
3031
+ errors?: number;
3032
+ errorRate?: number;
3033
+ };
3034
+ type AnalyticsSessionTrendPoint = {
3035
+ /**
3036
+ * Week start instant (UTC).
3037
+ */
3038
+ date?: string;
3039
+ totalSessions?: number;
3040
+ errorSessions?: number;
3041
+ errorRate?: number;
3042
+ };
3043
+ /**
3044
+ * Combined analytics payload for admin and partner dashboards.
3045
+ */
3046
+ type AgentAnalyticsResponse = {
3047
+ requests?: AnalyticsLogMetrics;
3048
+ sessions?: AnalyticsSessionMetrics;
3049
+ resolutionEfficiency?: AnalyticsResolutionEfficiency;
3050
+ requestTrend?: Array<AnalyticsRequestTrendPoint>;
3051
+ sessionTrend?: Array<AnalyticsSessionTrendPoint>;
3052
+ };
3053
+ type AnalyticsPeriod = {
3054
+ /**
3055
+ * Human-readable period label (e.g. quarter name).
3056
+ */
3057
+ label?: string;
3058
+ /**
3059
+ * Period start (inclusive), UTC.
3060
+ */
3061
+ start?: string;
3062
+ /**
3063
+ * Period end (exclusive), UTC.
3064
+ */
3065
+ end?: string;
3066
+ };
3067
+ type AgentExecutionSeries = {
3068
+ agentId?: string;
3069
+ /**
3070
+ * Execution counts per period, same order as `periods`.
3071
+ */
3072
+ counts?: Array<number>;
3073
+ };
3074
+ type ExecutionsResponse = {
3075
+ /**
3076
+ * Time bucket used for periods and series (enum constant name).
3077
+ */
3078
+ granularity?: 'QUARTER' | 'MONTH' | 'WEEK';
3079
+ periods?: Array<AnalyticsPeriod>;
3080
+ series?: Array<AgentExecutionSeries>;
3081
+ };
2389
3082
  type QParamSearchBody2 = QParamSearchBody;
3083
+ type McpServerUpsertBody = McpServerRequest;
3084
+ type TokenUpsertBody = TokenRequest;
3085
+ type OauthUpsertBody = OAuthRequest;
3086
+ type ToolUpsertBody = SlackNativeToolRequest | RagCustomNativeToolRequest | RagEmporixNativeToolRequest | TeamsNativeToolRequest;
2390
3087
 
2391
3088
  /** Single-shot text generation request (`POST /texts`). Has `maxTokens`. */
2392
3089
  type TextRequest = TextGenerationRequest;
@@ -2454,6 +3151,196 @@ interface ChatStreamOptions {
2454
3151
  type Conversation = ConversationResponse;
2455
3152
  /** Request body for `searchConversations` (`{ q? }`) — same shape as agent search. */
2456
3153
  type ConversationSearchQuery = QParamSearchBody2;
3154
+ /** `{ id? }` — returned by an upsert on create (HTTP 201). */
3155
+ type Created = IdResponse;
3156
+ /**
3157
+ * One PATCH op for any agentic resource. `op` is the upstream UPPERCASE enum
3158
+ * (`ADD | REMOVE | REPLACE`) — NOT RFC-6902. Passed verbatim. Same shape as
3159
+ * {@link AgentPatchOp}.
3160
+ */
3161
+ type AgenticPatchOp = PatchRequest[number];
3162
+ /** Query for a CRUD `list` (`q`/paging/sort/fields/expand). Extra keys pass through. */
3163
+ interface ListQuery {
3164
+ q?: string;
3165
+ pageSize?: number;
3166
+ pageNumber?: number;
3167
+ sort?: string;
3168
+ fields?: string;
3169
+ expand?: string;
3170
+ [key: string]: string | number | undefined;
3171
+ }
3172
+ /** Options for a CRUD `get`. */
3173
+ interface GetOptions {
3174
+ fields?: string;
3175
+ expand?: string;
3176
+ [key: string]: string | number | undefined;
3177
+ }
3178
+ /** Options for a mutating CRUD call (`upsert`/`delete`). */
3179
+ interface MutateOptions {
3180
+ /** Cascade even if the entity is referenced elsewhere (`?force=true`). */
3181
+ force?: boolean;
3182
+ }
3183
+ /** Body for any agentic `/search` endpoint. */
3184
+ interface SearchQuery {
3185
+ q?: string;
3186
+ }
3187
+ /** An OAuth 2.0 client-credentials configuration (read shape). */
3188
+ type OAuthConfig = OAuthResponse;
3189
+ /** Write shape for {@link AiService.oauths}`.upsert` (`OAuthRequest`). */
3190
+ type OAuthInput = OauthUpsertBody;
3191
+ /** One agentic tool (union of the native-tool response variants). */
3192
+ type Tool = NativeToolsResponse[number];
3193
+ /** Write shape for {@link AiService.tools}`.upsert`. */
3194
+ type ToolInput = ToolUpsertBody;
3195
+ /** A stored token (holds an OAuth client secret, referenced by OAuth configs). */
3196
+ type Token = TokenResponse;
3197
+ /** Write shape for {@link AiService.tokens}`.upsert`. */
3198
+ type TokenInput = TokenUpsertBody;
3199
+ /** An MCP-server configuration for the agentic layer. */
3200
+ type McpServer = McpServerResponse;
3201
+ /** Write shape for {@link AiService.mcpServers}`.upsert`. */
3202
+ type McpServerInput = McpServerUpsertBody;
3203
+ /** An async AI job (`IMPORT` / `EXPORT` / `AGENT_CHAT`) with status + result. */
3204
+ type Job = Job$1;
3205
+ /** An available agent template. */
3206
+ type AgentTemplate = AgentTemplateResponse;
3207
+ /** Body for {@link AiService.templates}`.clone` — the user prompt + overrides. */
3208
+ type AgentFromTemplate = AgentFromTemplateRequest;
3209
+ /** One agent request-log entry. */
3210
+ type AgentRequestLog = AgentRequestResponse;
3211
+ /** One agent session-log entry. */
3212
+ type AgentSessionLog = AgentSessionResponse;
3213
+ /** Aggregated agent analytics (request/session metrics, trends). */
3214
+ type AgentAnalytics = AgentAnalyticsResponse;
3215
+ /** Per-agent execution counts aligned to returned periods. */
3216
+ type AgentExecutions = ExecutionsResponse;
3217
+ /** Query for {@link AiService.analytics}`.get`. */
3218
+ interface AnalyticsQuery {
3219
+ /** Scope metrics to one agent; omit for tenant-wide aggregates. */
3220
+ agentId?: string;
3221
+ }
3222
+ /** Query for {@link AiService.analytics}`.executions` — `agentIds` is required. */
3223
+ interface ExecutionsQuery {
3224
+ /** Comma-separated agent IDs (no spaces, ≤100). */
3225
+ agentIds: string;
3226
+ /** Time bucket per period (UTC). */
3227
+ granularity?: "QUARTER" | "MONTH" | "WEEK";
3228
+ }
3229
+ /** Models available to the tenant, grouped by LLM provider. */
3230
+ type ProviderModels = ProviderModelsResponse;
3231
+ /** The set of commerce events an agent trigger can subscribe to. */
3232
+ type CommerceEvents = CommerceEventsResponse;
3233
+ /** Result of an attachment upload — `{ id?, sessionId? }`. */
3234
+ type Attachment = AttachmentResponse;
3235
+ /** Options for {@link AiService.uploadAttachment}. */
3236
+ interface AttachmentOptions {
3237
+ /**
3238
+ * Reuse a chat context — sent as the `session-id` header. Thread the
3239
+ * returned `sessionId` into chat calls to bind the file.
3240
+ */
3241
+ sessionId?: string;
3242
+ }
3243
+ /** Base64+checksum export of agents with their components. */
3244
+ type AgentsExport = ExportResponse;
3245
+ /** Body for {@link AiService.exportAgents} — `{ agentIds }`. */
3246
+ type AgentsExportRequest = ExportRequest;
3247
+ /** Result of an agents import. */
3248
+ type AgentsImport = ImportResponse;
3249
+ /** Body for {@link AiService.importAgents} — `{ data, checksum }`. */
3250
+ type AgentsImportRequest = ImportRequest;
3251
+
3252
+ /**
3253
+ * A symmetric CRUD resource over an agentic sub-collection (`tools`,
3254
+ * `mcp-servers`, `tokens`, `oauths`). All six operations share the upstream
3255
+ * shape; only the base path and the Read/Write types differ. Server-side only
3256
+ * — every call defaults to the SERVICE (backend) token.
3257
+ */
3258
+ declare class AgenticCrudResource<Read, Write> {
3259
+ private readonly ctx;
3260
+ private readonly path;
3261
+ constructor(ctx: ClientContext, path: string);
3262
+ private item;
3263
+ /** List the collection (`GET {path}`). Optional `q`/paging/sort/fields/expand. */
3264
+ list(query?: ListQuery, auth?: AuthContext): Promise<Read[]>;
3265
+ /** Structured search (`POST {path}/search`). Body is `{ q? }`. */
3266
+ search(query: SearchQuery, auth?: AuthContext): Promise<Read[]>;
3267
+ /** Retrieve one entry by id (`GET {path}/{id}`). */
3268
+ get(id: string, opts?: GetOptions, auth?: AuthContext): Promise<Read>;
3269
+ /**
3270
+ * Create-or-replace by id (`PUT {path}/{id}`). Resolves to `{ id }` on create
3271
+ * (HTTP 201) and `undefined` on update (HTTP 204). `{ force: true }`
3272
+ * cascade-disables dependents.
3273
+ */
3274
+ upsert(id: string, body: Write, opts?: MutateOptions, auth?: AuthContext): Promise<Created | undefined>;
3275
+ /**
3276
+ * Partial update with an op array (`PATCH {path}/{id}`, 204). `ops` use the
3277
+ * upstream UPPERCASE enum (`ADD | REMOVE | REPLACE`), sent verbatim.
3278
+ */
3279
+ patch(id: string, ops: AgenticPatchOp[], auth?: AuthContext): Promise<void>;
3280
+ /** Delete by id (`DELETE {path}/{id}`). `{ force: true }` removes even if referenced. */
3281
+ delete(id: string, opts?: MutateOptions, auth?: AuthContext): Promise<void>;
3282
+ }
3283
+ /**
3284
+ * AI async jobs (`/ai-service/{tenant}/jobs`). NOTE: not under `/agentic`.
3285
+ * `chatAsync` returns a `jobId`; poll/list/delete it here.
3286
+ */
3287
+ declare class JobsResource {
3288
+ private readonly ctx;
3289
+ private readonly base;
3290
+ constructor(ctx: ClientContext, base: string);
3291
+ /** List jobs (`GET /jobs`). */
3292
+ list(query?: ListQuery, auth?: AuthContext): Promise<Job[]>;
3293
+ /** Structured job search (`POST /jobs/search`). */
3294
+ search(query: SearchQuery, auth?: AuthContext): Promise<Job[]>;
3295
+ /** Retrieve one job (`GET /jobs/{jobId}`). */
3296
+ get(jobId: string, auth?: AuthContext): Promise<Job>;
3297
+ /** Delete one job (`DELETE /jobs/{jobId}`). */
3298
+ delete(jobId: string, auth?: AuthContext): Promise<void>;
3299
+ }
3300
+ /** Agent templates (`/agentic/templates`). `list · search · clone`. */
3301
+ declare class TemplatesResource {
3302
+ private readonly ctx;
3303
+ private readonly path;
3304
+ constructor(ctx: ClientContext, path: string);
3305
+ /** List available templates (`GET /agentic/templates`). */
3306
+ list(query?: ListQuery, auth?: AuthContext): Promise<AgentTemplate[]>;
3307
+ /** Structured template search (`POST /agentic/templates/search`). */
3308
+ search(query: SearchQuery, auth?: AuthContext): Promise<AgentTemplate[]>;
3309
+ /**
3310
+ * Instantiate a new agent from a template
3311
+ * (`POST /agentic/templates/{templateId}/agents`, HTTP 201). Returns the
3312
+ * created agent's id.
3313
+ */
3314
+ clone(templateId: string, body: AgentFromTemplate, auth?: AuthContext): Promise<Created>;
3315
+ }
3316
+ /** Agent logs (`/agentic/logs`): request logs and session logs. */
3317
+ declare class LogsResource {
3318
+ private readonly ctx;
3319
+ private readonly path;
3320
+ constructor(ctx: ClientContext, path: string);
3321
+ /** List request logs (`GET /agentic/logs/requests`). */
3322
+ listRequests(query?: ListQuery, auth?: AuthContext): Promise<AgentRequestLog[]>;
3323
+ /** Retrieve one request log (`GET /agentic/logs/requests/{requestId}`). */
3324
+ getRequest(requestId: string, auth?: AuthContext): Promise<AgentRequestLog>;
3325
+ /** Structured request-log search (`POST /agentic/logs/requests/search`). */
3326
+ searchRequests(query: SearchQuery, auth?: AuthContext): Promise<AgentRequestLog[]>;
3327
+ /** List session logs (`GET /agentic/logs/sessions`). */
3328
+ listSessions(query?: ListQuery, auth?: AuthContext): Promise<AgentSessionLog[]>;
3329
+ /** Retrieve one session log (`GET /agentic/logs/sessions/{sessionId}`). */
3330
+ getSession(sessionId: string, auth?: AuthContext): Promise<AgentSessionLog>;
3331
+ /** Structured session-log search (`POST /agentic/logs/sessions/search`). */
3332
+ searchSessions(query: SearchQuery, auth?: AuthContext): Promise<AgentSessionLog[]>;
3333
+ }
3334
+ /** Agent analytics (`/agentic/analytics`). */
3335
+ declare class AnalyticsResource {
3336
+ private readonly ctx;
3337
+ private readonly path;
3338
+ constructor(ctx: ClientContext, path: string);
3339
+ /** Aggregated metrics (`GET /agentic/analytics`); scope with `agentId`. */
3340
+ get(opts?: AnalyticsQuery, auth?: AuthContext): Promise<AgentAnalytics>;
3341
+ /** Per-agent execution counts (`GET /agentic/analytics/executions`). `agentIds` required. */
3342
+ executions(query: ExecutionsQuery, auth?: AuthContext): Promise<AgentExecutions>;
3343
+ }
2457
3344
 
2458
3345
  /**
2459
3346
  * Emporix AI Service (`/ai-service/{tenant}/…`): text generation, chat
@@ -2472,6 +3359,30 @@ declare class AiService {
2472
3359
  static readonly channel: "ai";
2473
3360
  constructor(ctx: ClientContext);
2474
3361
  private base;
3362
+ private _oauths?;
3363
+ /** OAuth 2.0 client-credentials configs (`/agentic/oauths`). CRUD sub-resource. */
3364
+ get oauths(): AgenticCrudResource<OAuthConfig, OAuthInput>;
3365
+ private _tools?;
3366
+ /** Agentic tools (`/agentic/tools`). CRUD sub-resource. */
3367
+ get tools(): AgenticCrudResource<Tool, ToolInput>;
3368
+ private _tokens?;
3369
+ /** Stored tokens (`/agentic/tokens`) — an OAuth config's client secret. CRUD sub-resource. */
3370
+ get tokens(): AgenticCrudResource<Token, TokenInput>;
3371
+ private _mcpServers?;
3372
+ /** MCP-server configs (`/agentic/mcp-servers`). CRUD sub-resource. */
3373
+ get mcpServers(): AgenticCrudResource<McpServer, McpServerInput>;
3374
+ private _jobs?;
3375
+ /** AI async jobs (`/jobs`). `list · search · get · delete`. */
3376
+ get jobs(): JobsResource;
3377
+ private _templates?;
3378
+ /** Agent templates (`/agentic/templates`). `list · search · clone`. */
3379
+ get templates(): TemplatesResource;
3380
+ private _logs?;
3381
+ /** Agent logs (`/agentic/logs`): request + session logs. */
3382
+ get logs(): LogsResource;
3383
+ private _analytics?;
3384
+ /** Agent analytics (`/agentic/analytics`). `get · executions`. */
3385
+ get analytics(): AnalyticsResource;
2475
3386
  /** Generate text from a single prompt (`POST /texts`). Honors `maxTokens`. */
2476
3387
  generateText(input: TextRequest, auth?: AuthContext): Promise<TextResponse>;
2477
3388
  /** Run a chat completion over a message list (`POST /completions`). No `maxTokens`. */
@@ -2516,6 +3427,21 @@ declare class AiService {
2516
3427
  listConversations(auth?: AuthContext): Promise<Conversation[]>;
2517
3428
  /** Server-side conversation search (`POST /agentic/conversations/search`). */
2518
3429
  searchConversations(query: ConversationSearchQuery, auth?: AuthContext): Promise<Conversation[]>;
3430
+ /** List models available to the tenant, grouped by provider (`GET /agentic/models`). */
3431
+ listModels(auth?: AuthContext): Promise<ProviderModels[]>;
3432
+ /** List commerce events available to agent triggers (`GET /agentic/commerce-events`). */
3433
+ listCommerceEvents(auth?: AuthContext): Promise<CommerceEvents>;
3434
+ /**
3435
+ * Upload a chat attachment for an agent
3436
+ * (`POST /agentic/{agentId}/attachments`, multipart, HTTP 201). The response
3437
+ * `sessionId` must be threaded into subsequent chat calls to bind the file.
3438
+ * Pass `opts.sessionId` to attach to an existing session.
3439
+ */
3440
+ uploadAttachment(agentId: string, attachment: Blob | File, opts?: AttachmentOptions, auth?: AuthContext): Promise<Attachment>;
3441
+ /** Export agents + components as a base64/checksum blob (`POST /agentic/agents/export`). */
3442
+ exportAgents(body: AgentsExportRequest, auth?: AuthContext): Promise<AgentsExport>;
3443
+ /** Import previously-exported agents (`POST /agentic/agents/import`). */
3444
+ importAgents(body: AgentsImportRequest, auth?: AuthContext): Promise<AgentsImport>;
2519
3445
  }
2520
3446
 
2521
3447
  type Metadata$7 = {
@@ -4506,7 +5432,7 @@ type Address$2 = {
4506
5432
  /**
4507
5433
  * Example quote response which contains a list of fees for various methods and delivery zone.
4508
5434
  */
4509
- type QuoteResponse = Array<QuoteResponseItem>;
5435
+ type QuoteResponse$1 = Array<QuoteResponseItem>;
4510
5436
  /**
4511
5437
  * Example quote response which contains fee for specific method and zone.
4512
5438
  */
@@ -4610,7 +5536,7 @@ type CgRelationList = CgRelationList$1;
4610
5536
  /** Body for `quote` / `quoteMinimum`. */
4611
5537
  type QuoteInput = QuotePayload;
4612
5538
  /** `quote` result. */
4613
- type QuoteResult = QuoteResponse;
5539
+ type QuoteResult = QuoteResponse$1;
4614
5540
  /** Body for `quoteSlot`. */
4615
5541
  type QuoteSlotInput = QuoteSlot;
4616
5542
  /** `quoteMinimum` / `quoteSlot` result. */
@@ -4748,6 +5674,1099 @@ declare class ShippingService {
4748
5674
  generateDeliveryCycle(input: DeliveryCycleInput, auth?: AuthContext): Promise<string>;
4749
5675
  }
4750
5676
 
5677
+ type JobRequest = {
5678
+ /**
5679
+ * A list of order IDs for which the invoices should be created.
5680
+ */
5681
+ orderIds?: Array<string>;
5682
+ /**
5683
+ * A job type determines if the orders are searched automatically based on parameters configured in configuration service or are manually provided in orderIds array.
5684
+ */
5685
+ jobType: 'AUTOMATIC' | 'MANUAL';
5686
+ };
5687
+ type JobCreationResponse = {
5688
+ /**
5689
+ * The created job ID.
5690
+ */
5691
+ jobId?: string;
5692
+ };
5693
+ type JobStatusResponse = {
5694
+ /**
5695
+ * Status of the processed job. Possible values: `DONE`,` IN_PROGRESS`
5696
+ */
5697
+ jobStatus?: 'DONE' | 'IN_PROGRESS';
5698
+ /**
5699
+ * Job type determines if the orders are provided manually or searched by a parametrized query.
5700
+ */
5701
+ jobType?: 'AUTOMATIC' | 'MANUAL';
5702
+ orders?: Array<{
5703
+ /**
5704
+ * The ID of the processed order.
5705
+ */
5706
+ orderId?: string;
5707
+ /**
5708
+ * Status determining if the order was processed successfully.
5709
+ */
5710
+ orderStatus?: 'SUCCESS' | 'FAILURE' | 'PENDING';
5711
+ /**
5712
+ * Information about the result of order processing.
5713
+ */
5714
+ message?: string;
5715
+ /**
5716
+ * URL to the generated invoice PDF.
5717
+ */
5718
+ downloadLink?: string;
5719
+ /**
5720
+ * Number of the generated invoice.
5721
+ */
5722
+ invoiceNumber?: string;
5723
+ }>;
5724
+ };
5725
+
5726
+ /** Input for {@link InvoiceService.createJob} — order ids + job type. */
5727
+ type InvoiceJobDraft = JobRequest;
5728
+ /** Result of creating an invoice job — `{ jobId? }`. */
5729
+ type InvoiceJobCreated = JobCreationResponse;
5730
+ /** Status of an invoice job + per-order results. */
5731
+ type InvoiceJob = JobStatusResponse;
5732
+
5733
+ /**
5734
+ * Invoice Service (`/invoice/{tenant}/…`): create invoice-generation jobs and
5735
+ * poll their status. Backend-only — default auth: service.
5736
+ */
5737
+ declare class InvoiceService {
5738
+ private readonly ctx;
5739
+ static readonly channel: "invoice";
5740
+ constructor(ctx: ClientContext);
5741
+ private base;
5742
+ /** Create an invoice-generation job (`POST …/jobs/invoices`, 201). */
5743
+ createJob(draft: InvoiceJobDraft, auth?: AuthContext): Promise<InvoiceJobCreated>;
5744
+ /** Retrieve a job and its per-order results (`GET …/jobs/invoices/{jobId}`). */
5745
+ getJob(jobId: string, auth?: AuthContext): Promise<InvoiceJob>;
5746
+ }
5747
+
5748
+ /**
5749
+ * Access control identifier that determines who can view or manage the quotes.
5750
+ *
5751
+ * **Purpose**: Restricts quote visibility based on scope permissions. Only users/applications
5752
+ * with matching restriction scopes can access quotes with a specific restriction value.
5753
+ *
5754
+ * **Access Control**:
5755
+ * - *Reading*: Users can only query and view quotes with the `restriction` value that matches one of their authorized restrictions.
5756
+ *
5757
+ * **Validation**: The value must exist in the tenant's configured list of valid restrictions.
5758
+ *
5759
+ * **Restriction Synchronization**:
5760
+ * - If quote is created by a customer (based on a cart) and `restriction` property is not set, the `restriction` value of quote is inherited from customer's restriction.
5761
+ * - If a quote is created by an employee and the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with quote's siteCode property.
5762
+ *
5763
+ */
5764
+ type Restriction$1 = string | null;
5765
+ /**
5766
+ * Price details
5767
+ */
5768
+ type QuoteItemUpdatePriceRow = {
5769
+ /**
5770
+ * The ID of the matched price
5771
+ */
5772
+ priceId?: string;
5773
+ /**
5774
+ * The effective unit price of the product
5775
+ */
5776
+ unitePrice?: number;
5777
+ /**
5778
+ * The total net value for the entire quantity of the item.
5779
+ */
5780
+ totalNetValue?: number;
5781
+ /**
5782
+ * The tax information of the item.
5783
+ */
5784
+ tax: {
5785
+ /**
5786
+ * The matched tax class of the item.
5787
+ */
5788
+ taxClass: string;
5789
+ /**
5790
+ * The tax rate of the item.
5791
+ */
5792
+ taxRate?: number;
5793
+ };
5794
+ };
5795
+ /**
5796
+ * Quote status.
5797
+ */
5798
+ type QuoteUpdateStatus = {
5799
+ /**
5800
+ * The status value of the code.
5801
+ */
5802
+ value: string;
5803
+ /**
5804
+ * The comment to the status.
5805
+ */
5806
+ comment?: string;
5807
+ /**
5808
+ * The ID of the quote reason. Can be provided only in following scenarios:
5809
+ * - when changing state from OPEN to IN_PROGRESS - quote reason has to be of CHANGE type
5810
+ * - when changing state from OPEN to DECLINED - quote reason has to be of DECLINE type
5811
+ * - when changing state from IN_PROGRESS to DECLINED_BY_MERCHANT - quote reason has to be of DECLINE type
5812
+ */
5813
+ quoteReasonId?: string;
5814
+ };
5815
+ /**
5816
+ * ID of the generated quote.
5817
+ */
5818
+ type QuoteIdResponse = {
5819
+ /**
5820
+ * ID of the generated document.
5821
+ */
5822
+ id?: string;
5823
+ };
5824
+ /**
5825
+ * ID of the generated quote reason.
5826
+ */
5827
+ type QuoteReasonIdResponse = {
5828
+ /**
5829
+ * ID of the generated document.
5830
+ */
5831
+ id?: string;
5832
+ };
5833
+ /**
5834
+ * TotalNetValue item model.
5835
+ */
5836
+ type QuoteItemUpdatePrice = {
5837
+ totalNetValue?: number;
5838
+ };
5839
+ /**
5840
+ * Quote item model.
5841
+ */
5842
+ type QuoteItemUpdate = {
5843
+ quantity: {
5844
+ quantity?: number;
5845
+ unitCode?: string;
5846
+ };
5847
+ price: QuoteItemUpdatePriceRow;
5848
+ product: {
5849
+ productId?: string;
5850
+ };
5851
+ };
5852
+ /**
5853
+ * Quote item ID.
5854
+ */
5855
+ type QuoteItemsReplaceUpdate = Array<QuoteItemUpdate & {
5856
+ /**
5857
+ * ID of the item. It's generated automatically when it's not provided.
5858
+ */
5859
+ itemId?: string;
5860
+ }>;
5861
+ type AddressResponse = {
5862
+ /**
5863
+ * The ID of the address.
5864
+ */
5865
+ id?: string;
5866
+ /**
5867
+ * The name of the address.
5868
+ */
5869
+ name?: string;
5870
+ /**
5871
+ * First line of the address.
5872
+ */
5873
+ addressLine1?: string;
5874
+ /**
5875
+ * Second line of the address.
5876
+ */
5877
+ addressLine2?: string;
5878
+ /**
5879
+ * City name.
5880
+ */
5881
+ city?: string;
5882
+ /**
5883
+ * The postal code of the city.
5884
+ */
5885
+ postcode?: string;
5886
+ /**
5887
+ * The state where the city is located.
5888
+ */
5889
+ state?: string;
5890
+ /**
5891
+ * The code of the country location.
5892
+ */
5893
+ countryCode?: string;
5894
+ };
5895
+ type QuoteReasonResponse = {
5896
+ /**
5897
+ * The quote reason ID.
5898
+ */
5899
+ id?: string;
5900
+ /**
5901
+ * Type of the quote reason.
5902
+ */
5903
+ type?: 'CHANGE' | 'DECLINE';
5904
+ /**
5905
+ * Localized message - can be either string or map with languages as map's keys accordingly to specified 'Accept-Language' header.
5906
+ */
5907
+ message?: {
5908
+ [key: string]: string;
5909
+ } | string;
5910
+ /**
5911
+ * Code of the reason for the quote status change.
5912
+ */
5913
+ code?: string;
5914
+ /**
5915
+ * The Quote Reason metadata details.
5916
+ */
5917
+ metadata?: {
5918
+ /**
5919
+ * Version of the quote reason that is used for the optimistic locking handling.
5920
+ */
5921
+ version?: number;
5922
+ /**
5923
+ * The Quote Reason creation timestamp.
5924
+ */
5925
+ createdAt?: string;
5926
+ /**
5927
+ * The Quote Reason modification timestamp.
5928
+ */
5929
+ modifiedAt?: string;
5930
+ };
5931
+ };
5932
+ type QuoteResponse = {
5933
+ /**
5934
+ * Quote ID
5935
+ *
5936
+ * **NOTE**:
5937
+ * If not specified during creation, this attribute is automatically generated. It is also possible to assign a custom ID.
5938
+ */
5939
+ id?: string;
5940
+ /**
5941
+ * Business model of the quote.
5942
+ */
5943
+ businessModel?: 'B2B' | 'B2C';
5944
+ /**
5945
+ * Customer-provided reference stored on the quote.
5946
+ */
5947
+ customerReference?: string;
5948
+ /**
5949
+ * Customer-provided comment stored on the quote.
5950
+ */
5951
+ customerComment?: string;
5952
+ /**
5953
+ * This attribute contains details about the customer for whom the quote was created.
5954
+ */
5955
+ customer?: {
5956
+ /**
5957
+ * The ID of the customer for whom the quote was created.
5958
+ */
5959
+ customerId?: string;
5960
+ /**
5961
+ * Customer's first name
5962
+ *
5963
+ * **NOTE**:
5964
+ * This attribute is filled automatically after the quote is created.
5965
+ */
5966
+ firstName?: string;
5967
+ /**
5968
+ * Customer's last name
5969
+ *
5970
+ * **NOTE**:
5971
+ * This attribute is filled automatically after the quote is created.
5972
+ */
5973
+ lastName?: string;
5974
+ /**
5975
+ * Customer's contact email
5976
+ *
5977
+ * **NOTE**:
5978
+ * This attribute is filled automatically after the quote is created.
5979
+ */
5980
+ contactEmail?: string;
5981
+ };
5982
+ /**
5983
+ * This attribute contains details about the employee that is processing the quote.
5984
+ */
5985
+ employee?: {
5986
+ /**
5987
+ * The ID of the employee that is processing the quote.
5988
+ */
5989
+ employeeId?: string;
5990
+ /**
5991
+ * Employee's first name
5992
+ *
5993
+ * **NOTE**:
5994
+ * This attribute is filled automatically after the quote is created or the employee ID is updated.
5995
+ */
5996
+ firstName?: string;
5997
+ /**
5998
+ * Employee's last name.
5999
+ *
6000
+ * **NOTE**:
6001
+ * This attribute is filled automatically after the quote is created or the employee ID is updated.
6002
+ */
6003
+ lastName?: string;
6004
+ };
6005
+ /**
6006
+ * The ID of the cart from which the quote was created (not available when the quote was created manually)
6007
+ */
6008
+ cartId?: string;
6009
+ /**
6010
+ * The company for which the quote was created.
6011
+ */
6012
+ company?: {
6013
+ /**
6014
+ * The company name for which the quote was created.
6015
+ */
6016
+ name?: string;
6017
+ };
6018
+ /**
6019
+ * The site code for which the quote was created
6020
+ */
6021
+ siteCode?: string;
6022
+ /**
6023
+ * The ID of the order which was created based on the quote. The order is created and assigned to the quote when status of the quote transitions to `ACCEPTED`.
6024
+ */
6025
+ orderId?: string;
6026
+ /**
6027
+ * The currency of the quote prices.
6028
+ */
6029
+ currency?: string;
6030
+ /**
6031
+ * The status of the quote.
6032
+ */
6033
+ status?: {
6034
+ /**
6035
+ * The status value of the quote.
6036
+ */
6037
+ value?: string;
6038
+ /**
6039
+ * Comment relating to the status.
6040
+ */
6041
+ comment?: string;
6042
+ quoteReason?: QuoteReasonResponse & {
6043
+ [key: string]: unknown;
6044
+ };
6045
+ };
6046
+ /**
6047
+ * The date until which the quote is valid and can be accepted by the customer.
6048
+ */
6049
+ validTo?: string;
6050
+ /**
6051
+ * Employee and customer comments.
6052
+ */
6053
+ comment?: {
6054
+ /**
6055
+ * Employee comment
6056
+ */
6057
+ employeeComment?: string;
6058
+ };
6059
+ billingAddress?: AddressResponse;
6060
+ shippingAddress?: AddressResponse;
6061
+ /**
6062
+ * The calculated total price details.
6063
+ */
6064
+ totalPrice?: {
6065
+ /**
6066
+ * Currency of the value.
6067
+ */
6068
+ currency?: string;
6069
+ /**
6070
+ * The total net value.
6071
+ */
6072
+ netValue?: number;
6073
+ /**
6074
+ * The total gross value.
6075
+ */
6076
+ grossValue?: number;
6077
+ /**
6078
+ * The amount of the tax for the total price.
6079
+ */
6080
+ taxValue?: number;
6081
+ };
6082
+ /**
6083
+ * The calculated quote subtotal price.
6084
+ */
6085
+ subtotalPrice?: {
6086
+ /**
6087
+ * Currency of the value.
6088
+ */
6089
+ currency?: string;
6090
+ /**
6091
+ * The subtotal net value.
6092
+ */
6093
+ netValue?: number;
6094
+ /**
6095
+ * The subtotal gross value.
6096
+ */
6097
+ grossValue?: number;
6098
+ /**
6099
+ * The subtotal tax value.
6100
+ */
6101
+ taxValue?: number;
6102
+ };
6103
+ /**
6104
+ * Tax aggregation of the total price.
6105
+ */
6106
+ taxAggregate?: {
6107
+ lines?: Array<{
6108
+ /**
6109
+ * The tax code.
6110
+ */
6111
+ name?: string;
6112
+ /**
6113
+ * The amount of the tax.
6114
+ */
6115
+ amount?: number;
6116
+ /**
6117
+ * The tax rate.
6118
+ */
6119
+ rate?: number;
6120
+ /**
6121
+ * The total taxable amount.
6122
+ */
6123
+ taxable?: number;
6124
+ }>;
6125
+ };
6126
+ shipping?: QuoteShipping & {
6127
+ /**
6128
+ * Gross value of the shipping cost.
6129
+ */
6130
+ grossValue?: number;
6131
+ /**
6132
+ * Localized name of the shipping method selected by the customer.
6133
+ */
6134
+ methodName?: {
6135
+ [key: string]: string;
6136
+ };
6137
+ };
6138
+ /**
6139
+ * A list of quote items.
6140
+ */
6141
+ items?: Array<{
6142
+ /**
6143
+ * The ID of the quote item used for patch operations on the item.
6144
+ */
6145
+ id?: string;
6146
+ /**
6147
+ * The attribute contains details about the item quantity.
6148
+ */
6149
+ quantity?: {
6150
+ /**
6151
+ * The quantity of the item that is used for the price calculation.
6152
+ */
6153
+ quantity?: number;
6154
+ /**
6155
+ * The unit code of the quantity (it must be one of the units defined in the Unit Handling Service).
6156
+ */
6157
+ unitCode?: string;
6158
+ };
6159
+ /**
6160
+ * Item price details.
6161
+ */
6162
+ price?: {
6163
+ /**
6164
+ * Defines if product is external or internal. If the product is internal, it's taken from the Emporix Product Service. If the price is external, it's a custom product from external system.
6165
+ */
6166
+ type?: 'INTERNAL' | 'EXTERNAL';
6167
+ /**
6168
+ * The ID of the price that was initially assigned to the item.
6169
+ */
6170
+ priceId?: string;
6171
+ /**
6172
+ * The original unit price of the item that is copied from the initial price.
6173
+ */
6174
+ unitPrice?: number;
6175
+ /**
6176
+ * The new unit price that is auto-calculated based on provided `quantity` and `totalNetValue` values.
6177
+ */
6178
+ newUnitPrice?: number;
6179
+ /**
6180
+ * The difference in percentage between `unitPrice` and `newUnitPrice`.
6181
+ */
6182
+ discount?: number;
6183
+ /**
6184
+ * The total net price of the item that is initially based on the provided price, but it can be overridden to allow for a merchant discount.
6185
+ */
6186
+ totalNetValue?: number;
6187
+ /**
6188
+ * This attribute contains information about the calculated item tax.
6189
+ */
6190
+ tax?: {
6191
+ /**
6192
+ * The tax class assigned to the item is initially copied from the initial price.
6193
+ */
6194
+ taxClass?: string;
6195
+ /**
6196
+ * The tax rate that is copied from the initial price.
6197
+ */
6198
+ taxRate?: number;
6199
+ /**
6200
+ * The auto-calculated item net and gross prices
6201
+ */
6202
+ prices?: {
6203
+ grossValue?: number;
6204
+ netValue?: number;
6205
+ };
6206
+ };
6207
+ /**
6208
+ * Mixins request.
6209
+ */
6210
+ mixins?: {
6211
+ [key: string]: unknown;
6212
+ };
6213
+ /**
6214
+ * Metadata request.
6215
+ */
6216
+ metadata?: {
6217
+ /**
6218
+ * Links to the mixin schemas.
6219
+ */
6220
+ mixins?: {
6221
+ [key: string]: unknown;
6222
+ };
6223
+ };
6224
+ };
6225
+ /**
6226
+ * Product details.
6227
+ */
6228
+ product?: {
6229
+ /**
6230
+ * Defines if product is external or internal. If the product is internal, it's taken from the Emporix Product Service. If the price is external, it's a custom product from external system.
6231
+ */
6232
+ type?: 'INTERNAL' | 'EXTERNAL';
6233
+ /**
6234
+ * The ID of the product or variant assigned to the quote item.
6235
+ */
6236
+ productId?: string;
6237
+ /**
6238
+ * This attribute contains the product name language map.
6239
+ *
6240
+ * **NOTE**:
6241
+ * After the item has been added to the quote, the product name language map attribute is automatically populated.
6242
+ */
6243
+ name?: {
6244
+ [key: string]: unknown;
6245
+ };
6246
+ /**
6247
+ * This attribute comprises the product media information and is automatically populated upon the creation of the quote.
6248
+ */
6249
+ media?: {
6250
+ /**
6251
+ * ID of the media.
6252
+ */
6253
+ id?: string;
6254
+ /**
6255
+ * The content type of the media. For example: `image/jpg`.
6256
+ */
6257
+ contentType?: string;
6258
+ /**
6259
+ * The url to the product media.
6260
+ */
6261
+ url?: string;
6262
+ };
6263
+ /**
6264
+ * Map of key-value pairs that associates tax classes with locations (countries).
6265
+ */
6266
+ taxClasses?: {
6267
+ [key: string]: unknown;
6268
+ };
6269
+ /**
6270
+ * Mixins request.
6271
+ */
6272
+ mixins?: {
6273
+ [key: string]: unknown;
6274
+ };
6275
+ /**
6276
+ * Metadata request.
6277
+ */
6278
+ metadata?: {
6279
+ /**
6280
+ * Links to the mixin schemas.
6281
+ */
6282
+ mixins?: {
6283
+ [key: string]: unknown;
6284
+ };
6285
+ };
6286
+ };
6287
+ }>;
6288
+ /**
6289
+ * Mixins request.
6290
+ */
6291
+ mixins?: {
6292
+ [key: string]: unknown;
6293
+ };
6294
+ /**
6295
+ * Quote metadata details.
6296
+ */
6297
+ metadata?: {
6298
+ /**
6299
+ * Links to the mixin schemas.
6300
+ */
6301
+ mixins?: {
6302
+ [key: string]: unknown;
6303
+ };
6304
+ /**
6305
+ * Version of the quote that is used for the optimistic locking handling.
6306
+ */
6307
+ version?: number;
6308
+ /**
6309
+ * Quote creation timestamp.
6310
+ */
6311
+ createdAt?: string;
6312
+ /**
6313
+ * Quote modification timestamp.
6314
+ */
6315
+ modifiedAt?: string;
6316
+ };
6317
+ restriction?: Restriction$1;
6318
+ };
6319
+ /**
6320
+ * The schema specifies the attributes that must be provided when creating a quote reason.
6321
+ */
6322
+ type QuoteReasonCreateRequest = {
6323
+ /**
6324
+ * The ID for a quote reason can either be manually provided at the time of the quote reason creation, or is automatically generated if not provided.
6325
+ */
6326
+ id?: string;
6327
+ /**
6328
+ * Type of the quote reason.
6329
+ */
6330
+ type: 'CHANGE' | 'DECLINE';
6331
+ /**
6332
+ * Code of the reason for the quote status change.
6333
+ */
6334
+ code: string;
6335
+ /**
6336
+ * Localized message in the form of a map of translations.
6337
+ */
6338
+ message: {
6339
+ [key: string]: string;
6340
+ };
6341
+ };
6342
+ /**
6343
+ * The schema specifies the attributes that must be provided when creating a quote reason.
6344
+ */
6345
+ type QuoteReasonUpdateRequest = {
6346
+ /**
6347
+ * Type of the quote reason.
6348
+ */
6349
+ type: 'CHANGE' | 'DECLINE';
6350
+ /**
6351
+ * Code of the reason for the quote status change.
6352
+ */
6353
+ code: string;
6354
+ /**
6355
+ * Localized message in the form of a map of translations.
6356
+ */
6357
+ message: {
6358
+ [key: string]: string;
6359
+ };
6360
+ /**
6361
+ * The Quote Reason metadata details
6362
+ */
6363
+ metadata: {
6364
+ /**
6365
+ * Version of the quote reason that is used for the optimistic locking handling
6366
+ */
6367
+ version: number;
6368
+ };
6369
+ };
6370
+ /**
6371
+ * The schema specifies the attributes that must be provided when creating a quote manually.
6372
+ */
6373
+ type QuoteCreateRequest = {
6374
+ /**
6375
+ * The ID for a quote can either be manually provided at the time of the quote creation, or is automatically generated if not provided.
6376
+ */
6377
+ id?: string;
6378
+ /**
6379
+ * The customer ID for which the new quote is created. Either this attribute or the `customerEmail` attribute is required for the quote creation
6380
+ */
6381
+ customerId: string;
6382
+ /**
6383
+ * The employee ID for which the new quote is created. By default, the employeeId is taken from session token, but in case the session token is not provided, employeeId is taken from the payload. Default employee from the configuration will be assigned to the quote in case session token nor 'employeeId' is not provided.
6384
+ */
6385
+ employeeId?: string;
6386
+ /**
6387
+ * The name of the merchant company.
6388
+ */
6389
+ companyName?: string;
6390
+ /**
6391
+ * The site code for which the quote is created.
6392
+ */
6393
+ siteCode: string;
6394
+ /**
6395
+ * The currency for which the quote is created.
6396
+ */
6397
+ currency: string;
6398
+ /**
6399
+ * For B2B customers, it represents the location which should specify the billing address. For B2C customers, it represents identifier of customer's billing address.
6400
+ */
6401
+ billingAddressId: string;
6402
+ /**
6403
+ * For B2B customers, it represents the location which should specify the shipping address. For B2C customers, it represents identifier of customer's shipping address.
6404
+ */
6405
+ shippingAddressId: string;
6406
+ /**
6407
+ * The date until which the quote is valid for the customer. After this date, the quote cannot be approved and transformed into order by the customer.
6408
+ */
6409
+ validTo?: string;
6410
+ shipping?: QuoteShipping;
6411
+ /**
6412
+ * Quote items.
6413
+ */
6414
+ items?: Array<{
6415
+ /**
6416
+ * ID of the item. It's generated automatically when it's not provided.
6417
+ */
6418
+ itemId?: string;
6419
+ /**
6420
+ * The quantity of the quote item in a given unit.
6421
+ */
6422
+ quantity?: {
6423
+ /**
6424
+ * The quantity of quote items.
6425
+ */
6426
+ quantity: number;
6427
+ /**
6428
+ * The unit of the quantity as defined in the Unit Handling Service.
6429
+ */
6430
+ unitCode: string;
6431
+ };
6432
+ /**
6433
+ * Product reference.
6434
+ */
6435
+ product: {
6436
+ /**
6437
+ * Defines if product is external or internal. If the product is internal, it's taken from the Emporix Product Service. If the price is external, it's a custom product from external system.
6438
+ */
6439
+ type?: 'INTERNAL' | 'EXTERNAL';
6440
+ /**
6441
+ * Product or variant ID.
6442
+ */
6443
+ productId: string;
6444
+ /**
6445
+ * Localized name of a product. Used for the `EXTERNAL` products as the `INTERNAL` ones are populated from the product catalog data.
6446
+ */
6447
+ name?: {
6448
+ [key: string]: string;
6449
+ };
6450
+ /**
6451
+ * Media object that can be provided for an `EXTERNAL` product. `INTERNAL` products have media populated automatically and override the given value.
6452
+ */
6453
+ media?: {
6454
+ /**
6455
+ * ID of the media.
6456
+ */
6457
+ id?: string;
6458
+ /**
6459
+ * The content type of the media. For example: `image/jpg`.
6460
+ */
6461
+ contentType?: string;
6462
+ /**
6463
+ * The url to the product media.
6464
+ */
6465
+ url?: string;
6466
+ };
6467
+ /**
6468
+ * Mixins request.
6469
+ */
6470
+ mixins?: {
6471
+ [key: string]: unknown;
6472
+ };
6473
+ /**
6474
+ * Metadata request.
6475
+ */
6476
+ metadata?: {
6477
+ /**
6478
+ * Links to the mixin schemas.
6479
+ */
6480
+ mixins?: {
6481
+ [key: string]: unknown;
6482
+ };
6483
+ };
6484
+ };
6485
+ /**
6486
+ * Matched price of the product.
6487
+ */
6488
+ price?: {
6489
+ /**
6490
+ * Defines if price is internal or external. If the price is internal, it's taken from the Emporix Price Service. If the price is external, it's a custom price from external system.
6491
+ */
6492
+ type?: 'INTERNAL' | 'EXTERNAL';
6493
+ /**
6494
+ * ID of the matched price. Required only for type=`INTERNAL`.
6495
+ */
6496
+ priceId: string;
6497
+ /**
6498
+ * Identifier of price list. The field should be populated only in case when the price belongs to any price list.
6499
+ */
6500
+ priceListId?: string;
6501
+ /**
6502
+ * Effective unit price of the product.
6503
+ */
6504
+ unitPrice: number;
6505
+ /**
6506
+ * Total net value for the entire quantity of the item.
6507
+ */
6508
+ totalNetValue: number;
6509
+ /**
6510
+ * Tax information of the item.
6511
+ */
6512
+ tax: {
6513
+ /**
6514
+ * Matched tax class of the item.
6515
+ */
6516
+ taxClass: string;
6517
+ /**
6518
+ * Tax rate of the item.
6519
+ */
6520
+ taxRate: number;
6521
+ };
6522
+ };
6523
+ /**
6524
+ * Mixins request.
6525
+ */
6526
+ mixins?: {
6527
+ [key: string]: unknown;
6528
+ };
6529
+ /**
6530
+ * Metadata request.
6531
+ */
6532
+ metadata?: {
6533
+ /**
6534
+ * Links to the mixin schemas.
6535
+ */
6536
+ mixins?: {
6537
+ [key: string]: unknown;
6538
+ };
6539
+ };
6540
+ }>;
6541
+ restriction?: Restriction$1;
6542
+ /**
6543
+ * Mixins request.
6544
+ */
6545
+ mixins?: {
6546
+ [key: string]: unknown;
6547
+ };
6548
+ /**
6549
+ * Metadata request.
6550
+ */
6551
+ metadata?: {
6552
+ /**
6553
+ * Links to the mixin schemas.
6554
+ */
6555
+ mixins?: {
6556
+ [key: string]: unknown;
6557
+ };
6558
+ };
6559
+ /**
6560
+ * The contact email that identifies the customer. Either this attribute or the `customerId` attribute is mandatory for the quote creation request.
6561
+ */
6562
+ customerEmail?: string;
6563
+ };
6564
+ /**
6565
+ * The shipping cost of the quote.
6566
+ */
6567
+ type QuoteShipping = {
6568
+ /**
6569
+ * Net value of the shipping cost.
6570
+ */
6571
+ value?: number;
6572
+ /**
6573
+ * Shipping method's unique identifier.
6574
+ */
6575
+ methodId?: string;
6576
+ /**
6577
+ * Shipping zone identifier.
6578
+ */
6579
+ zoneId?: string;
6580
+ /**
6581
+ * Tax code of the shipping method.
6582
+ */
6583
+ shippingTaxCode?: string;
6584
+ };
6585
+ /**
6586
+ * List of item IDs.
6587
+ */
6588
+ type QuoteItemIds = Array<{
6589
+ /**
6590
+ * ID of the item.
6591
+ */
6592
+ itemId?: string;
6593
+ }>;
6594
+ /**
6595
+ * Quote update operation list.
6596
+ */
6597
+ type QuoteUpdateRequest = Array<{
6598
+ op: 'ADD' | 'REMOVE' | 'REPLACE';
6599
+ path: '/status' | '/validTo' | '/comment' | '/billingAddressId' | '/shippingAddressId' | '/companyName' | '/customerId' | '/shipping' | '/restriction' | '/items' | '/items/{itemId}' | '/items/{itemId}/price' | '/items/{itemId}/mixins/{mixinsPath}' | '/items/{itemId}/metadata/mixins/{mixinsPath}' | '/items/{itemId}/product/mixins/{mixinsPath}' | '/items/{itemId}/product/metadata/mixins/{mixinsPath}' | '/mixins/{mixinsPath}' | '/metadata/{mixinsPath}';
6600
+ value?: QuoteUpdateValues;
6601
+ }>;
6602
+ type QuoteUpdateValues = QuoteItemUpdate | QuoteItemsReplaceUpdate | QuoteItemUpdatePrice | QuoteUpdateStatus | QuoteShipping | QuoteItemIds | string | {
6603
+ [key: string]: unknown;
6604
+ };
6605
+ /**
6606
+ * Quote update operation list.
6607
+ */
6608
+ type QuoteHistory$1 = Array<{
6609
+ /**
6610
+ * The unique ID of the audit log.
6611
+ */
6612
+ id?: string;
6613
+ /**
6614
+ * operation type
6615
+ */
6616
+ op?: 'ADD' | 'REMOVE' | 'REPLACE' | 'CREATE';
6617
+ /**
6618
+ * Path that indicates on which element the update has been executed.
6619
+ */
6620
+ path?: '/quote' | '/status' | '/validTo' | '/comment' | '/billingAddressId' | '/shippingAddressId' | '/companyName' | '/customerId' | '/shipping' | '/restriction' | '/items' | '/items/{itemId}' | '/items/{itemId}/price' | '/items/{itemId}/mixins/{mixinsPath}' | '/items/{itemId}/metadata/mixins/{mixinsPath}' | '/items/{itemId}/product/mixins/{mixinsPath}' | '/items/{itemId}/product/metadata/mixins/{mixinsPath}' | '/mixins/{mixinsPath}' | '/metadata/{mixinsPath}';
6621
+ newValue?: QuoteUpdateValues & {
6622
+ [key: string]: unknown;
6623
+ };
6624
+ /**
6625
+ * Value before update.
6626
+ */
6627
+ previousValue?: QuoteUpdateValues & {
6628
+ [key: string]: unknown;
6629
+ };
6630
+ /**
6631
+ * ID of the user who modified the item.
6632
+ */
6633
+ userId?: string;
6634
+ /**
6635
+ * First name of the user who modified the item.
6636
+ */
6637
+ userFirstName?: string;
6638
+ /**
6639
+ * Last name of the user who modified the item.
6640
+ */
6641
+ userLastName?: string;
6642
+ userType?: 'EMPLOYEE' | 'CUSTOMER' | 'SYSTEM';
6643
+ restriction?: Restriction$1;
6644
+ /**
6645
+ * Modification date.
6646
+ */
6647
+ modifiedAt?: string;
6648
+ }>;
6649
+ /**
6650
+ * This schema includes the attributes that are required to be provided when creating a quote from the cart.
6651
+ */
6652
+ type QuoteCreateFromCartRequest = {
6653
+ /**
6654
+ * ID of the cart from which the new quote should be created.
6655
+ */
6656
+ cartId: string;
6657
+ /**
6658
+ * The employee ID for which the new quote is created. By default, the employeeId is taken from the configuration, but in case the 'employeeId' property is provided, the employeeId from the request is assigned to the quote. Only user of EMPLOYEE type can assign employee to the quote.
6659
+ */
6660
+ employeeId?: string;
6661
+ /**
6662
+ * For B2B customers, it represents the location which should specify the billing address. For B2C customers, it represents identifier of customer's billing address.
6663
+ */
6664
+ billingAddressId?: string;
6665
+ /**
6666
+ * For B2B customers, it represents the location which should specify the shipping address. For B2C customers, it represents identifier of customer's shipping address.
6667
+ */
6668
+ shippingAddressId?: string;
6669
+ shipping?: QuoteShipping;
6670
+ /**
6671
+ * Customer-provided reference stored on the quote.
6672
+ */
6673
+ customerReference?: string;
6674
+ /**
6675
+ * Customer-provided comment stored on the quote.
6676
+ */
6677
+ customerComment?: string;
6678
+ };
6679
+
6680
+ /** A quote (read shape). */
6681
+ type Quote = QuoteResponse;
6682
+ /** Body for {@link QuoteService.create} — a from-scratch quote or a from-cart quote. */
6683
+ type QuoteDraft = QuoteCreateRequest | QuoteCreateFromCartRequest;
6684
+ /** Result of creating a quote — `{ id? }`. */
6685
+ type QuoteCreated = QuoteIdResponse;
6686
+ /** Body for {@link QuoteService.update} — the upstream update-op array. */
6687
+ type QuoteUpdate = QuoteUpdateRequest;
6688
+ /** A quote's change history. */
6689
+ type QuoteHistory = QuoteHistory$1;
6690
+ /** A quote reason (read shape). */
6691
+ type QuoteReason = QuoteReasonResponse;
6692
+ /** Body for `reasons.create`. */
6693
+ type QuoteReasonDraft = QuoteReasonCreateRequest;
6694
+ /** Body for `reasons.update` (`metadata.version` required for optimistic locking). */
6695
+ type QuoteReasonUpdate = QuoteReasonUpdateRequest;
6696
+ /** Result of creating a quote reason — `{ id? }`. */
6697
+ type QuoteReasonCreated = QuoteReasonIdResponse;
6698
+ /** Filter/pagination for {@link QuoteService.list}. */
6699
+ interface ListQuotesQuery {
6700
+ /** Emporix `q`-syntax filter. */
6701
+ q?: string;
6702
+ /** Sort spec (e.g. `createdAt:desc`). */
6703
+ sort?: string;
6704
+ pageNumber?: number;
6705
+ pageSize?: number;
6706
+ }
6707
+ /** Pagination for `reasons.list`. */
6708
+ interface ListQuoteReasonsQuery {
6709
+ pageNumber?: number;
6710
+ pageSize?: number;
6711
+ }
6712
+
6713
+ /**
6714
+ * Quote Service (`/quote/{tenant}/…`): B2B quotes and quote reasons. Quotes are
6715
+ * customer-owned and never anonymous, so every method takes a REQUIRED `auth`:
6716
+ * pass `auth.customer(token)` for a customer's own quotes, or `auth.service()`
6717
+ * (an admin token) for `quote_manage`-scoped ops (`delete`, reason mutations).
6718
+ */
6719
+ declare class QuoteService {
6720
+ private readonly ctx;
6721
+ static readonly channel: "quote";
6722
+ constructor(ctx: ClientContext);
6723
+ private quotesBase;
6724
+ private _reasons?;
6725
+ /** Quote reasons config (`/quote-reasons`). CRUD sub-resource. */
6726
+ get reasons(): QuoteReasonsResource;
6727
+ /** List quotes, wrapped in {@link PaginatedItems}. Pass `{}` for no filter. */
6728
+ list(query: ListQuotesQuery, auth: AuthContext): Promise<PaginatedItems<Quote>>;
6729
+ /** Create a quote (`POST /quotes`, 201). */
6730
+ create(draft: QuoteDraft, auth: AuthContext): Promise<QuoteCreated>;
6731
+ /** Retrieve one quote by id. */
6732
+ get(quoteId: string, auth: AuthContext): Promise<Quote>;
6733
+ /** Apply an update-op array to a quote (`PATCH /quotes/{id}`, 204). */
6734
+ update(quoteId: string, update: QuoteUpdate, auth: AuthContext): Promise<void>;
6735
+ /** Delete a quote (`DELETE /quotes/{id}`). Requires the admin `quote_manage` scope. */
6736
+ delete(quoteId: string, auth: AuthContext): Promise<void>;
6737
+ /** Retrieve a quote's change history (`GET /quotes/{id}/history`). */
6738
+ history(quoteId: string, auth: AuthContext): Promise<QuoteHistory>;
6739
+ /**
6740
+ * Generate a quote PDF (`POST /quotes/{id}/pdf`). Returns the raw PDF bytes.
6741
+ * Uses `requestRaw` (no typed-error mapping) — a non-2xx is thrown explicitly.
6742
+ */
6743
+ generatePdf(quoteId: string, auth: AuthContext): Promise<Blob>;
6744
+ }
6745
+ /**
6746
+ * Quote reasons (`/quote/{tenant}/quote-reasons`). Config data. Like the rest
6747
+ * of the quote domain, every method takes a REQUIRED `auth`: reads accept a
6748
+ * customer or admin token; `create`/`update`/`delete` need the admin
6749
+ * `quote.quote_manage` scope (`auth.service()`).
6750
+ */
6751
+ declare class QuoteReasonsResource {
6752
+ private readonly ctx;
6753
+ constructor(ctx: ClientContext);
6754
+ private base;
6755
+ /** List reasons, wrapped in {@link PaginatedItems}. Pass `{}` for no paging override. */
6756
+ list(query: ListQuoteReasonsQuery, auth: AuthContext): Promise<PaginatedItems<QuoteReason>>;
6757
+ /** Retrieve one reason by id. */
6758
+ get(reasonId: string, auth: AuthContext): Promise<QuoteReason>;
6759
+ /** Create a reason (`POST /quote-reasons`). Requires the admin `quote_manage` scope. */
6760
+ create(draft: QuoteReasonDraft, auth: AuthContext): Promise<QuoteReasonCreated>;
6761
+ /**
6762
+ * Replace a reason (`PUT /quote-reasons/{id}`, 204). `draft.metadata.version`
6763
+ * is required for optimistic locking. Requires the admin `quote_manage` scope.
6764
+ */
6765
+ update(reasonId: string, draft: QuoteReasonUpdate, auth: AuthContext): Promise<void>;
6766
+ /** Delete a reason (`DELETE /quote-reasons/{id}`). Requires the admin `quote_manage` scope. */
6767
+ delete(reasonId: string, auth: AuthContext): Promise<void>;
6768
+ }
6769
+
4751
6770
  /**
4752
6771
  * Price calculation derived from the order entry `calculatedPrice.finalPrice`. The `finalPrice` reflects already applied discounts and fees.
4753
6772
  */
@@ -7572,6 +9591,8 @@ declare class EmporixClient {
7572
9591
  readonly countries: CountryService;
7573
9592
  readonly currencies: CurrencyService;
7574
9593
  readonly shipping: ShippingService;
9594
+ readonly invoices: InvoiceService;
9595
+ readonly quotes: QuoteService;
7575
9596
  readonly returns: ReturnsService;
7576
9597
  readonly sepaExport: SepaExportService;
7577
9598
  readonly indexing: IndexingService;
@@ -7683,4 +9704,4 @@ declare function createEmporixClient<S extends Record<string, ServiceClass<unkno
7683
9704
  */
7684
9705
  declare function productIdFromYrn(yrn: string | undefined): string;
7685
9706
 
7686
- export { type AddedPoints, type AdminCustomer, type AdminCustomerAddress, type AdminCustomerAddressInput, type AdminCustomerAddressList, type AdminCustomerAddressUpdate, type AdminCustomerCreated, type AdminCustomerInput, type AdminCustomerList, type AdminCustomerPatch, type AdminCustomerSearchQuery, type AdminCustomerUpdate, type Agent, type AgentInput, type AgentPatchOp, type AgentSearchQuery, AiService, type Approval, type ApprovalCreated, type ApprovalInput, type ApprovalList, type ApprovalPatch, type ApprovalPermittedInput, type ApprovalPermittedResult, ApprovalService, type ApprovalUsersQuery, type ApprovalUsersResult, type Assignee, AuthContext, AvailabilityService, type BatchNextIdEntry, type Brand, type BrandInput, type BrandList, BrandService, type BrandUpdate, type BulkInstanceResult, type BulkPatchInstanceItem, CartService, type Catalog, type CatalogCreated, type CatalogInput, type CatalogList, type CatalogPatch, CatalogService, type CatalogUpdate, CategoryService, type CgRelation, type CgRelationList, type ChatRequest, type ChatResponse, type ChatStreamOptions, CheckoutService, ClientConfigService, type ClientConfiguration, ClientContext, CloudFunctionsService, CompaniesService, type CompletionMessage, type CompletionRequest, type CompletionResponse, type Configuration$1 as Configuration, type ConfigurationDraft, ContactsService, type Conversation, type ConversationSearchQuery, type ConversionFactorInput, type ConversionFactorResult, type ConvertUnitInput, type ConvertUnitResult, type Country, type CountryList, CountryService, type CountryUpdate, type Coupon$1 as Coupon, type CouponCreated, type CouponInput, type CouponList, CouponService, type CouponUpdate, type Currency, type CurrencyCreated, type CurrencyInput, type CurrencyList, CurrencyService, type CurrencyUpdate, type CustomEntity, type CustomEntityDraft, type CustomInstance, type CustomInstanceDraft, CustomerAdminService, CustomerGroupsService, CustomerService, type CustomerSummaryBatch, CustomerTokenRefresher, type DeleteAgentOptions, type DeleteConfigOptions, type DeliveryCreated, type DeliveryCycleInput, type DeliverySlot, type DeliverySlotList, type DeliveryTime$1 as DeliveryTime, type DeliveryTimeInput, type DeliveryTimeList, type DeliveryTimeUpdate, type DeliveryWindow$2 as DeliveryWindow, type DeliveryWindowList, type DeliveryWindowValidation, EmporixAuthError, EmporixClient, EmporixConfig, type EmporixCore, EmporixError, EmporixForbiddenError, EmporixInsufficientScopeError, EmporixNetworkError, EmporixNotFoundError, EmporixServerError, EmporixTimeoutError, EmporixValidationError, type ExchangeRate, type ExchangeRateCreated, type ExchangeRateInput, type ExchangeRateList, type ExchangeRateUpdate, type Fee$1 as Fee, type FeeDraft, FeeService, type FindSiteInput, type IndexConfig, type IndexConfigCreated, type IndexPublicConfig, IndexingService, type InstanceSearchBody, type InvokeCloudFunctionOptions, type ItemFee, type ItemFeeDraft, type ItemFeeSearch, type JobIdResponse, type Label, type LabelInput, type LabelList, LabelService, type LabelUpdate, type ListConfigOptions, type ListCustomEntitiesOptions, type ListFeesQuery, type ListInstancesQuery, type ListReindexJobsOptions, type ListSchemasQuery, LocationsService, LogLevel, MediaService, type MetadataFilter, type MinimumFee, type NewPointsEntry, type NextIdCommandRequest, type NextIdOptions, type NextIdResponse, type NextIdsBatchRequest, type NextIdsBatchResponse, type OrderCycleList, type OrderEntryEventCreate, type OrderStatusChange, OrdersService, type PackagingProductsChange, type PackingEvent, type PackingEventList, PaginatedItems, PaymentGatewayService, type PickOrder, type PickOrderList, type PickPackAck, PickPackService, type PointsSummary, PriceService, ProductService, QueryFor, type QuoteInput, type QuoteResult, type QuoteSlotInput, RagIndexerService, type RagType, type RecalculationJob, type RecalculationJobCreated, type RecalculationJobInput, type RedeemCouponResult, type RedeemMyPointsInput, type RedeemOption, type RedeemOptionList, type RedeemedPoints, type Redemption, type RedemptionCreated, type RedemptionInput, type ReferralCoupon, type Region, type RegionList, type ReindexEntityType, type ReindexInput, type ReindexJob, type ReindexJobInput, type ReindexJobStatus, ResolvedConfig, type ResourceCreated, type Return, type ReturnCreated, type ReturnInput, type ReturnList, type ReturnPatch, type ReturnUpdate, ReturnsService, RewardPointsService, SalesOrdersService, type Schema, type SchemaAttribute, type SchemaDraft, SchemaService, type SchemaTypeName, type SchemaUpdate, SegmentService, SepaExportService, type SepaJob, type SepaJobCreated, type SepaJobInput, type SequenceSchema, type SequenceSchemaCreate, SequentialIdService, type ServiceClass, ServiceName, type SessionContext, type SessionContextPatch, SessionContextService, type SetItemFeesOptions, type ShippingGroup, type ShippingGroupList, type ShippingMethod, type ShippingMethodList, type ShippingPatch, ShippingService, type ShoppingList, type ShoppingListDraft, type ShoppingListItem, ShoppingListService, type Site$1 as Site, type SiteList, SiteService, type TaxCalculationInput, type TaxCalculationRequest, type TaxCalculationResult, type TaxClass, type TaxConfig, type TaxConfigCreated, type TaxCreation as TaxConfigInput, type TaxUpdate as TaxConfigUpdate, type TaxLocation, TaxService, TenantConfigService, type TextRequest, type TextResponse, TokenProvider, type Unit, type UnitCreated, UnitHandlingService, type UnitInput, type UnitUpdate, type Vendor, type VendorCreated, type VendorInput, type VendorList, type VendorLocation, type VendorLocationInput, type VendorLocationList, type VendorLocationUpdate, type VendorSearchQuery, VendorService, type VendorUpdate, type WebhookConfig, type WebhookConfigCreated, type WebhookConfigDraft, type WebhookConfigPatch, type WebhookDashboardAccess, WebhookService, type WebhookStatistics, type WebhookStatisticsQuery, type WebhookSubscription, type WebhookSubscriptionUpdateItem, type WebhookSubscriptionUpdateResultItem, type Zone, type ZoneList, createCore, createEmporixClient, errorFromResponse, productIdFromYrn };
9707
+ export { type AddedPoints, type AdminCustomer, type AdminCustomerAddress, type AdminCustomerAddressInput, type AdminCustomerAddressList, type AdminCustomerAddressUpdate, type AdminCustomerCreated, type AdminCustomerInput, type AdminCustomerList, type AdminCustomerPatch, type AdminCustomerSearchQuery, type AdminCustomerUpdate, type Agent, type AgentAnalytics, type AgentExecutions, type AgentFromTemplate, type AgentInput, type AgentPatchOp, type AgentRequestLog, type AgentSearchQuery, type AgentSessionLog, type AgentTemplate, type AgenticPatchOp, type AgentsExport, type AgentsExportRequest, type AgentsImport, type AgentsImportRequest, AiService, type AnalyticsQuery, type Approval, type ApprovalCreated, type ApprovalInput, type ApprovalList, type ApprovalPatch, type ApprovalPermittedInput, type ApprovalPermittedResult, ApprovalService, type ApprovalUsersQuery, type ApprovalUsersResult, type Assignee, type Attachment, type AttachmentOptions, AuthContext, AvailabilityService, type BatchNextIdEntry, type Brand, type BrandInput, type BrandList, BrandService, type BrandUpdate, type BulkInstanceResult, type BulkPatchInstanceItem, CartService, type Catalog, type CatalogCreated, type CatalogInput, type CatalogList, type CatalogPatch, CatalogService, type CatalogUpdate, CategoryService, type CgRelation, type CgRelationList, type ChatRequest, type ChatResponse, type ChatStreamOptions, CheckoutService, ClientConfigService, type ClientConfiguration, ClientContext, CloudFunctionsService, type CommerceEvents, CompaniesService, type CompletionMessage, type CompletionRequest, type CompletionResponse, type Configuration$1 as Configuration, type ConfigurationDraft, ContactsService, type Conversation, type ConversationSearchQuery, type ConversionFactorInput, type ConversionFactorResult, type ConvertUnitInput, type ConvertUnitResult, type Country, type CountryList, CountryService, type CountryUpdate, type Coupon$1 as Coupon, type CouponCreated, type CouponInput, type CouponList, CouponService, type CouponUpdate, type Created, type Currency, type CurrencyCreated, type CurrencyInput, type CurrencyList, CurrencyService, type CurrencyUpdate, type CustomEntity, type CustomEntityDraft, type CustomInstance, type CustomInstanceDraft, CustomerAdminService, CustomerGroupsService, CustomerService, type CustomerSummaryBatch, CustomerTokenRefresher, type DeleteAgentOptions, type DeleteConfigOptions, type DeliveryCreated, type DeliveryCycleInput, type DeliverySlot, type DeliverySlotList, type DeliveryTime$1 as DeliveryTime, type DeliveryTimeInput, type DeliveryTimeList, type DeliveryTimeUpdate, type DeliveryWindow$2 as DeliveryWindow, type DeliveryWindowList, type DeliveryWindowValidation, EmporixAuthError, EmporixClient, EmporixConfig, type EmporixCore, EmporixError, EmporixForbiddenError, EmporixInsufficientScopeError, EmporixNetworkError, EmporixNotFoundError, EmporixServerError, EmporixTimeoutError, EmporixValidationError, type ExchangeRate, type ExchangeRateCreated, type ExchangeRateInput, type ExchangeRateList, type ExchangeRateUpdate, type ExecutionsQuery, type Fee$1 as Fee, type FeeDraft, FeeService, type FindSiteInput, type GetOptions, type IndexConfig, type IndexConfigCreated, type IndexPublicConfig, IndexingService, type InstanceSearchBody, type InvoiceJob, type InvoiceJobCreated, type InvoiceJobDraft, InvoiceService, type InvokeCloudFunctionOptions, type ItemFee, type ItemFeeDraft, type ItemFeeSearch, type Job, type JobIdResponse, type Label, type LabelInput, type LabelList, LabelService, type LabelUpdate, type ListConfigOptions, type ListCustomEntitiesOptions, type ListFeesQuery, type ListInstancesQuery, type ListQuery, type ListQuoteReasonsQuery, type ListQuotesQuery, type ListReindexJobsOptions, type ListSchemasQuery, LocationsService, LogLevel, type McpServer, type McpServerInput, MediaService, type MetadataFilter, type MinimumFee, type MutateOptions, type NewPointsEntry, type NextIdCommandRequest, type NextIdOptions, type NextIdResponse, type NextIdsBatchRequest, type NextIdsBatchResponse, type OAuthConfig, type OAuthInput, type OrderCycleList, type OrderEntryEventCreate, type OrderStatusChange, OrdersService, type PackagingProductsChange, type PackingEvent, type PackingEventList, PaginatedItems, PaymentGatewayService, type PickOrder, type PickOrderList, type PickPackAck, PickPackService, type PointsSummary, PriceService, ProductService, type ProviderModels, QueryFor, type Quote, type QuoteCreated, type QuoteDraft, type QuoteHistory, type QuoteInput, type QuoteReason, type QuoteReasonCreated, type QuoteReasonDraft, type QuoteReasonUpdate, type QuoteResult, QuoteService, type QuoteSlotInput, type QuoteUpdate, RagIndexerService, type RagType, type RecalculationJob, type RecalculationJobCreated, type RecalculationJobInput, type RedeemCouponResult, type RedeemMyPointsInput, type RedeemOption, type RedeemOptionList, type RedeemedPoints, type Redemption, type RedemptionCreated, type RedemptionInput, type ReferralCoupon, type Region, type RegionList, type ReindexEntityType, type ReindexInput, type ReindexJob, type ReindexJobInput, type ReindexJobStatus, ResolvedConfig, type ResourceCreated, type Return, type ReturnCreated, type ReturnInput, type ReturnList, type ReturnPatch, type ReturnUpdate, ReturnsService, RewardPointsService, SalesOrdersService, type Schema, type SchemaAttribute, type SchemaDraft, SchemaService, type SchemaTypeName, type SchemaUpdate, type SearchQuery, SegmentService, SepaExportService, type SepaJob, type SepaJobCreated, type SepaJobInput, type SequenceSchema, type SequenceSchemaCreate, SequentialIdService, type ServiceClass, ServiceName, type SessionAttributeInput, type SessionContext, type SessionContextPatch, SessionContextService, type SetItemFeesOptions, type ShippingGroup, type ShippingGroupList, type ShippingMethod, type ShippingMethodList, type ShippingPatch, ShippingService, type ShoppingList, type ShoppingListDraft, type ShoppingListItem, ShoppingListService, type Site$1 as Site, type SiteList, SiteService, type TaxCalculationInput, type TaxCalculationRequest, type TaxCalculationResult, type TaxClass, type TaxConfig, type TaxConfigCreated, type TaxCreation as TaxConfigInput, type TaxUpdate as TaxConfigUpdate, type TaxLocation, TaxService, TenantConfigService, type TextRequest, type TextResponse, type Token, type TokenInput, TokenProvider, type Tool, type ToolInput, type Unit, type UnitCreated, UnitHandlingService, type UnitInput, type UnitUpdate, type Vendor, type VendorCreated, type VendorInput, type VendorList, type VendorLocation, type VendorLocationInput, type VendorLocationList, type VendorLocationUpdate, type VendorSearchQuery, VendorService, type VendorUpdate, type WebhookConfig, type WebhookConfigCreated, type WebhookConfigDraft, type WebhookConfigPatch, type WebhookDashboardAccess, WebhookService, type WebhookStatistics, type WebhookStatisticsQuery, type WebhookSubscription, type WebhookSubscriptionUpdateItem, type WebhookSubscriptionUpdateResultItem, type Zone, type ZoneList, createCore, createEmporixClient, errorFromResponse, productIdFromYrn };