{"version":3,"sources":["../../src/stores-catalog-v3-inventory-item-inventory-items-v-3.public.ts","../../src/stores-catalog-v3-inventory-item-inventory-items-v-3.universal.ts","../../src/stores-catalog-v3-inventory-item-inventory-items-v-3.http.ts","../../src/stores-catalog-v3-inventory-item-inventory-items-v-3.context.ts"],"sourcesContent":["import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n  BulkAdjustInventoryItemsByFilterApplicationErrors,\n  BulkAdjustInventoryItemsByFilterOptions,\n  BulkAdjustInventoryItemsByFilterResponse,\n  BulkCreateInventoryItemsApplicationErrors,\n  BulkCreateInventoryItemsByVariantFilterOptions,\n  BulkCreateInventoryItemsByVariantFilterResponse,\n  BulkCreateInventoryItemsOptions,\n  BulkCreateInventoryItemsResponse,\n  BulkCreateInventoryItemsValidationErrors,\n  BulkDecrementInventoryItemsApplicationErrors,\n  BulkDecrementInventoryItemsByVariantAndLocationApplicationErrors,\n  BulkDecrementInventoryItemsByVariantAndLocationOptions,\n  BulkDecrementInventoryItemsByVariantAndLocationResponse,\n  BulkDecrementInventoryItemsOptions,\n  BulkDecrementInventoryItemsResponse,\n  BulkDeleteInventoryItemsByFilterOptions,\n  BulkDeleteInventoryItemsByFilterResponse,\n  BulkDeleteInventoryItemsResponse,\n  BulkIncrementInventoryItemsApplicationErrors,\n  BulkIncrementInventoryItemsByVariantAndLocationApplicationErrors,\n  BulkIncrementInventoryItemsByVariantAndLocationOptions,\n  BulkIncrementInventoryItemsByVariantAndLocationResponse,\n  BulkIncrementInventoryItemsOptions,\n  BulkIncrementInventoryItemsResponse,\n  BulkSetOrAdjustInventoryItemsByFilterApplicationErrors,\n  BulkSetOrAdjustInventoryItemsByFilterOptions,\n  BulkSetOrAdjustInventoryItemsByFilterResponse,\n  BulkUpdateInventoryItemsApplicationErrors,\n  BulkUpdateInventoryItemsByFilterApplicationErrors,\n  BulkUpdateInventoryItemsByFilterOptions,\n  BulkUpdateInventoryItemsByFilterResponse,\n  BulkUpdateInventoryItemsOptions,\n  BulkUpdateInventoryItemsResponse,\n  BulkUpsertInventoryItemsApplicationErrors,\n  BulkUpsertInventoryItemsOptions,\n  BulkUpsertInventoryItemsResponse,\n  CreateInventoryItemApplicationErrors,\n  CreateInventoryItemValidationErrors,\n  DecrementDataById,\n  DecrementDataByVariantAndLocation,\n  IncrementDataById,\n  IncrementDataByVariantAndLocation,\n  InventoryItem,\n  InventoryItemCreatedEnvelope,\n  InventoryItemDeletedEnvelope,\n  InventoryItemQuery,\n  InventoryItemSearch,\n  InventoryItemStockStatusUpdatedEnvelope,\n  InventoryItemUpdatedEnvelope,\n  InventoryItemUpdatedWithReasonEnvelope,\n  InventoryItemsQueryBuilder,\n  MaskedInventoryItem,\n  QueryInventoryItemsResponse,\n  SearchInventoryItemsResponse,\n  UpdateInventoryItem,\n  UpdateInventoryItemApplicationErrors,\n  UpdateInventoryItemOptions,\n  bulkAdjustInventoryItemsByFilter as universalBulkAdjustInventoryItemsByFilter,\n  bulkCreateInventoryItems as universalBulkCreateInventoryItems,\n  bulkCreateInventoryItemsByVariantFilter as universalBulkCreateInventoryItemsByVariantFilter,\n  bulkDecrementInventoryItems as universalBulkDecrementInventoryItems,\n  bulkDecrementInventoryItemsByVariantAndLocation as universalBulkDecrementInventoryItemsByVariantAndLocation,\n  bulkDeleteInventoryItems as universalBulkDeleteInventoryItems,\n  bulkDeleteInventoryItemsByFilter as universalBulkDeleteInventoryItemsByFilter,\n  bulkIncrementInventoryItems as universalBulkIncrementInventoryItems,\n  bulkIncrementInventoryItemsByVariantAndLocation as universalBulkIncrementInventoryItemsByVariantAndLocation,\n  bulkSetOrAdjustInventoryItemsByFilter as universalBulkSetOrAdjustInventoryItemsByFilter,\n  bulkUpdateInventoryItems as universalBulkUpdateInventoryItems,\n  bulkUpdateInventoryItemsByFilter as universalBulkUpdateInventoryItemsByFilter,\n  bulkUpsertInventoryItems as universalBulkUpsertInventoryItems,\n  createInventoryItem as universalCreateInventoryItem,\n  deleteInventoryItem as universalDeleteInventoryItem,\n  getInventoryItem as universalGetInventoryItem,\n  queryInventoryItems as universalQueryInventoryItems,\n  searchInventoryItems as universalSearchInventoryItems,\n  typedQueryInventoryItems as universalTypedQueryInventoryItems,\n  updateInventoryItem as universalUpdateInventoryItem,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/stores' };\n\nexport function createInventoryItem(\n  httpClient: HttpClient\n): CreateInventoryItemSignature {\n  return (\n    inventoryItem: NonNullablePaths<InventoryItem, `productId` | `variantId`, 2>\n  ) =>\n    universalCreateInventoryItem(\n      inventoryItem,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CreateInventoryItemSignature {\n  /**\n   * Creates an inventory item.\n   *\n   * The combination of `variantId` and `locationId` must be unique.\n   * @param - Inventory item to create.\n   * @returns Created inventory item.\n   */\n  (\n    inventoryItem: NonNullablePaths<InventoryItem, `productId` | `variantId`, 2>\n  ): Promise<\n    NonNullablePaths<\n      InventoryItem,\n      | `inStock`\n      | `quantity`\n      | `variantId`\n      | `productId`\n      | `trackQuantity`\n      | `availabilityStatus`\n      | `product.directCategoryIds`,\n      3\n    > & {\n      __applicationErrorsType?: CreateInventoryItemApplicationErrors;\n      __validationErrorsType?: CreateInventoryItemValidationErrors;\n    }\n  >;\n}\n\nexport function bulkCreateInventoryItems(\n  httpClient: HttpClient\n): BulkCreateInventoryItemsSignature {\n  return (\n    inventoryItems: NonNullablePaths<\n      InventoryItem,\n      `productId` | `variantId`,\n      2\n    >[],\n    options?: BulkCreateInventoryItemsOptions\n  ) =>\n    universalBulkCreateInventoryItems(\n      inventoryItems,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkCreateInventoryItemsSignature {\n  /**\n   * Creates multiple inventory items.\n   *\n   * The combination of `variantId` and `locationId` must be unique for each inventory item.\n   * @param - Inventory items to create.\n   */\n  (\n    inventoryItems: NonNullablePaths<\n      InventoryItem,\n      `productId` | `variantId`,\n      2\n    >[],\n    options?: BulkCreateInventoryItemsOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkCreateInventoryItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkCreateInventoryItemsApplicationErrors;\n      __validationErrorsType?: BulkCreateInventoryItemsValidationErrors;\n    }\n  >;\n}\n\nexport function getInventoryItem(\n  httpClient: HttpClient\n): GetInventoryItemSignature {\n  return (inventoryItemId: string) =>\n    universalGetInventoryItem(\n      inventoryItemId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface GetInventoryItemSignature {\n  /**\n   * Retrieves an inventory item.\n   * @param - Inventory item ID.\n   * @returns Inventory item.\n   */\n  (inventoryItemId: string): Promise<\n    NonNullablePaths<\n      InventoryItem,\n      | `inStock`\n      | `quantity`\n      | `variantId`\n      | `productId`\n      | `trackQuantity`\n      | `availabilityStatus`\n      | `product.directCategoryIds`,\n      3\n    >\n  >;\n}\n\nexport function updateInventoryItem(\n  httpClient: HttpClient\n): UpdateInventoryItemSignature {\n  return (\n    _id: string,\n    inventoryItem: NonNullablePaths<UpdateInventoryItem, `revision`, 2>,\n    options?: UpdateInventoryItemOptions\n  ) =>\n    universalUpdateInventoryItem(\n      _id,\n      inventoryItem,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface UpdateInventoryItemSignature {\n  /**\n   * Updates an inventory item.\n   *\n   *\n   * Each time the inventory item is updated, `revision` increments by 1.\n   * The current `revision` must be passed when updating the inventory item.\n   * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n   * @param - Inventory item ID.\n   * @returns Updated inventory item.\n   */\n  (\n    _id: string,\n    inventoryItem: NonNullablePaths<UpdateInventoryItem, `revision`, 2>,\n    options?: UpdateInventoryItemOptions\n  ): Promise<\n    NonNullablePaths<\n      InventoryItem,\n      | `inStock`\n      | `quantity`\n      | `variantId`\n      | `productId`\n      | `trackQuantity`\n      | `availabilityStatus`\n      | `product.directCategoryIds`,\n      3\n    > & {\n      __applicationErrorsType?: UpdateInventoryItemApplicationErrors;\n    }\n  >;\n}\n\nexport function bulkUpdateInventoryItems(\n  httpClient: HttpClient\n): BulkUpdateInventoryItemsSignature {\n  return (\n    inventoryItems: NonNullablePaths<\n      MaskedInventoryItem,\n      `inventoryItem._id` | `inventoryItem.revision`,\n      3\n    >[],\n    options?: BulkUpdateInventoryItemsOptions\n  ) =>\n    universalBulkUpdateInventoryItems(\n      inventoryItems,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkUpdateInventoryItemsSignature {\n  /**\n   * Updates multiple inventory items.\n   *\n   * Each time an inventory item is updated, `revision` increments by 1.\n   * The current `revision` must be passed when updating an inventory item.\n   * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n   * @param - Inventory items to update.\n   */\n  (\n    inventoryItems: NonNullablePaths<\n      MaskedInventoryItem,\n      `inventoryItem._id` | `inventoryItem.revision`,\n      3\n    >[],\n    options?: BulkUpdateInventoryItemsOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkUpdateInventoryItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkUpdateInventoryItemsApplicationErrors;\n    }\n  >;\n}\n\n/** @internal */\nexport function bulkUpsertInventoryItems(\n  httpClient: HttpClient\n): BulkUpsertInventoryItemsSignature {\n  return (\n    inventoryItems: NonNullablePaths<\n      MaskedInventoryItem,\n      `inventoryItem` | `inventoryItem.productId` | `inventoryItem.variantId`,\n      3\n    >[],\n    options?: BulkUpsertInventoryItemsOptions\n  ) =>\n    universalBulkUpsertInventoryItems(\n      inventoryItems,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkUpsertInventoryItemsSignature {\n  /**\n   * Creates or updates multiple inventory items.\n   *\n   * The upsert key is the combination of `productId`, `variantId`, and `locationId`.\n   * If `locationId` isn't provided, the site's default location is used.\n   *\n   * For newly created items, `field_mask` is ignored and all provided fields are applied.\n   * For existing items, only the fields specified in `field_mask` are updated.\n   * @param - Inventory items to create or update.\n   */\n  (\n    inventoryItems: NonNullablePaths<\n      MaskedInventoryItem,\n      `inventoryItem` | `inventoryItem.productId` | `inventoryItem.variantId`,\n      3\n    >[],\n    options?: BulkUpsertInventoryItemsOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkUpsertInventoryItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkUpsertInventoryItemsApplicationErrors;\n    }\n  >;\n}\n\nexport function bulkUpdateInventoryItemsByFilter(\n  httpClient: HttpClient\n): BulkUpdateInventoryItemsByFilterSignature {\n  return (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkUpdateInventoryItemsByFilterOptions,\n      `inventoryItem`,\n      2\n    >\n  ) =>\n    universalBulkUpdateInventoryItemsByFilter(\n      filter,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkUpdateInventoryItemsByFilterSignature {\n  /**\n   * Updates multiple inventory items, given the provided filter.\n   *\n   * Each time an inventory item is updated, `revision` increments by 1.\n   * The current `revision` must be passed when updating an inventory item.\n   * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n   * @param - Filter object.\n   */\n  (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkUpdateInventoryItemsByFilterOptions,\n      `inventoryItem`,\n      2\n    >\n  ): Promise<\n    NonNullablePaths<BulkUpdateInventoryItemsByFilterResponse, `jobId`, 2> & {\n      __applicationErrorsType?: BulkUpdateInventoryItemsByFilterApplicationErrors;\n    }\n  >;\n}\n\nexport function deleteInventoryItem(\n  httpClient: HttpClient\n): DeleteInventoryItemSignature {\n  return (inventoryItemId: string) =>\n    universalDeleteInventoryItem(\n      inventoryItemId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface DeleteInventoryItemSignature {\n  /**\n   * Deletes an inventory item.\n   * @param - Inventory item ID.\n   */\n  (inventoryItemId: string): Promise<void>;\n}\n\nexport function bulkDeleteInventoryItems(\n  httpClient: HttpClient\n): BulkDeleteInventoryItemsSignature {\n  return (inventoryItemIds: string[]) =>\n    universalBulkDeleteInventoryItems(\n      inventoryItemIds,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkDeleteInventoryItemsSignature {\n  /**\n   * Deletes multiple inventory items.\n   * @param - IDs of inventory items to delete.\n   */\n  (inventoryItemIds: string[]): Promise<\n    NonNullablePaths<\n      BulkDeleteInventoryItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    >\n  >;\n}\n\n/** @internal */\nexport function bulkDeleteInventoryItemsByFilter(\n  httpClient: HttpClient\n): BulkDeleteInventoryItemsByFilterSignature {\n  return (\n    filter: Record<string, any>,\n    options?: BulkDeleteInventoryItemsByFilterOptions\n  ) =>\n    universalBulkDeleteInventoryItemsByFilter(\n      filter,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkDeleteInventoryItemsByFilterSignature {\n  /**\n   * Deletes multiple inventory items, given the provided filter.\n   *\n   * The operation runs asynchronously. Use the returned job ID to track progress.\n   * @param - Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   */\n  (\n    filter: Record<string, any>,\n    options?: BulkDeleteInventoryItemsByFilterOptions\n  ): Promise<\n    NonNullablePaths<BulkDeleteInventoryItemsByFilterResponse, `jobId`, 2>\n  >;\n}\n\nexport function queryInventoryItems(\n  httpClient: HttpClient\n): QueryInventoryItemsSignature {\n  return () =>\n    universalQueryInventoryItems(\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface QueryInventoryItemsSignature {\n  /**\n   * Retrieves a list of up to 1,000 inventory items, given the provided filtering, sorting, and cursor paging.\n   *\n   * To learn about working with _Query_ endpoints, see\n   * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n   * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n   * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n   */\n  (): InventoryItemsQueryBuilder;\n}\n\nexport function typedQueryInventoryItems(\n  httpClient: HttpClient\n): TypedQueryInventoryItemsSignature {\n  return (query: InventoryItemQuery) =>\n    universalTypedQueryInventoryItems(\n      query,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface TypedQueryInventoryItemsSignature {\n  /** */\n  (query: InventoryItemQuery): Promise<\n    NonNullablePaths<\n      QueryInventoryItemsResponse,\n      | `inventoryItems`\n      | `inventoryItems.${number}.inStock`\n      | `inventoryItems.${number}.quantity`\n      | `inventoryItems.${number}.variantId`\n      | `inventoryItems.${number}.productId`\n      | `inventoryItems.${number}.trackQuantity`\n      | `inventoryItems.${number}.availabilityStatus`,\n      4\n    >\n  >;\n}\n\nexport function searchInventoryItems(\n  httpClient: HttpClient\n): SearchInventoryItemsSignature {\n  return (search: InventoryItemSearch) =>\n    universalSearchInventoryItems(\n      search,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface SearchInventoryItemsSignature {\n  /**\n   * Retrieves a list of inventory items, given the provided filtering, sorting, and cursor paging.\n   *\n   *\n   * Search Inventory Items runs with these defaults, which you can override:\n   *\n   * - `createdDate` is sorted in `DESC` order\n   * - `cursorPaging.limit` is `100`\n   *\n   * To learn about working with _Search_ endpoints, see\n   * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n   * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n   *\n   * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n   * @param - Search options.\n   */\n  (search: InventoryItemSearch): Promise<\n    NonNullablePaths<\n      SearchInventoryItemsResponse,\n      | `inventoryItems`\n      | `inventoryItems.${number}.inStock`\n      | `inventoryItems.${number}.quantity`\n      | `inventoryItems.${number}.variantId`\n      | `inventoryItems.${number}.productId`\n      | `inventoryItems.${number}.trackQuantity`\n      | `inventoryItems.${number}.availabilityStatus`\n      | `aggregationData.results`\n      | `aggregationData.results.${number}.scalar.type`\n      | `aggregationData.results.${number}.scalar.value`\n      | `aggregationData.results.${number}.name`\n      | `aggregationData.results.${number}.type`\n      | `aggregationData.results.${number}.fieldPath`,\n      6\n    >\n  >;\n}\n\nexport function bulkDecrementInventoryItems(\n  httpClient: HttpClient\n): BulkDecrementInventoryItemsSignature {\n  return (\n    decrementData: NonNullablePaths<\n      DecrementDataById,\n      `decrementBy` | `inventoryItemId`,\n      2\n    >[],\n    options?: BulkDecrementInventoryItemsOptions\n  ) =>\n    universalBulkDecrementInventoryItems(\n      decrementData,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkDecrementInventoryItemsSignature {\n  /**\n   * Decrements quantities of multiple inventory items.\n   *\n   * > **Notes:**:\n   * > + `trackQuantity` must be `true` to allow for decrementing the quantity.\n   * > + If you pass `restrictInventory: true` and the `decrementData.decrementBy` amount is greater than the current quantity in stock, the request will fail with an `INSUFFICIENT_INVENTORY` error.\n   * > + Pass `restrictInventory: false` to allow for negative quantities.\n   * > + If you pass `preorderRequest: true` and the item is available for preorder, the item's `preorderCounter` will increase and the item's quantity will stay the same.\n   * @param - Inventory item IDs and decrement data.\n   */\n  (\n    decrementData: NonNullablePaths<\n      DecrementDataById,\n      `decrementBy` | `inventoryItemId`,\n      2\n    >[],\n    options?: BulkDecrementInventoryItemsOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkDecrementInventoryItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkDecrementInventoryItemsApplicationErrors;\n    }\n  >;\n}\n\nexport function bulkIncrementInventoryItems(\n  httpClient: HttpClient\n): BulkIncrementInventoryItemsSignature {\n  return (\n    incrementData: NonNullablePaths<\n      IncrementDataById,\n      `incrementBy` | `inventoryItemId`,\n      2\n    >[],\n    options?: BulkIncrementInventoryItemsOptions\n  ) =>\n    universalBulkIncrementInventoryItems(\n      incrementData,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkIncrementInventoryItemsSignature {\n  /**\n   * Increments quantities of multiple inventory items.\n   *\n   * > **Note:** `trackQuantity` must be `true` to allow for incrementing the quantity.\n   * @param - Inventory item IDs and increment data.\n   */\n  (\n    incrementData: NonNullablePaths<\n      IncrementDataById,\n      `incrementBy` | `inventoryItemId`,\n      2\n    >[],\n    options?: BulkIncrementInventoryItemsOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkIncrementInventoryItemsResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkIncrementInventoryItemsApplicationErrors;\n    }\n  >;\n}\n\nexport function bulkDecrementInventoryItemsByVariantAndLocation(\n  httpClient: HttpClient\n): BulkDecrementInventoryItemsByVariantAndLocationSignature {\n  return (\n    decrementData: NonNullablePaths<\n      DecrementDataByVariantAndLocation,\n      `decrementBy` | `variantId`,\n      2\n    >[],\n    options?: BulkDecrementInventoryItemsByVariantAndLocationOptions\n  ) =>\n    universalBulkDecrementInventoryItemsByVariantAndLocation(\n      decrementData,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkDecrementInventoryItemsByVariantAndLocationSignature {\n  /**\n   * Decrements quantities of multiple inventory items by variant and location.\n   *\n   * > **Notes:**:\n   * > + `trackQuantity` must be `true` to allow for decrementing the quantity.\n   * > + If you pass `restrictInventory: true` and the `decrementData.decrementBy` amount is greater than the current quantity in stock, the request will fail with an `INSUFFICIENT_INVENTORY` error.\n   * > + Pass `restrictInventory: false` to allow for negative quantities.\n   * > + If you pass `preorderRequest: true` and the item is available for preorder, the item's `preorderCounter` will increase and the item's quantity will stay the same.\n   * @param - Variant and location IDs, as well as decrement data.\n   */\n  (\n    decrementData: NonNullablePaths<\n      DecrementDataByVariantAndLocation,\n      `decrementBy` | `variantId`,\n      2\n    >[],\n    options?: BulkDecrementInventoryItemsByVariantAndLocationOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkDecrementInventoryItemsByVariantAndLocationResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkDecrementInventoryItemsByVariantAndLocationApplicationErrors;\n    }\n  >;\n}\n\nexport function bulkIncrementInventoryItemsByVariantAndLocation(\n  httpClient: HttpClient\n): BulkIncrementInventoryItemsByVariantAndLocationSignature {\n  return (\n    incrementData: NonNullablePaths<\n      IncrementDataByVariantAndLocation,\n      `incrementBy` | `variantId`,\n      2\n    >[],\n    options?: BulkIncrementInventoryItemsByVariantAndLocationOptions\n  ) =>\n    universalBulkIncrementInventoryItemsByVariantAndLocation(\n      incrementData,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkIncrementInventoryItemsByVariantAndLocationSignature {\n  /**\n   * Increments quantities of multiple inventory items by variant and location.\n   *\n   * > **Note:** `trackQuantity` must be `true` to allow for incrementing the quantity.\n   * @param - Variant and location IDs, as well as increment data.\n   */\n  (\n    incrementData: NonNullablePaths<\n      IncrementDataByVariantAndLocation,\n      `incrementBy` | `variantId`,\n      2\n    >[],\n    options?: BulkIncrementInventoryItemsByVariantAndLocationOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkIncrementInventoryItemsByVariantAndLocationResponse,\n      | `results`\n      | `results.${number}.itemMetadata.originalIndex`\n      | `results.${number}.itemMetadata.success`\n      | `results.${number}.itemMetadata.error.code`\n      | `results.${number}.itemMetadata.error.description`\n      | `results.${number}.item.inStock`\n      | `results.${number}.item.quantity`\n      | `results.${number}.item.variantId`\n      | `results.${number}.item.productId`\n      | `results.${number}.item.trackQuantity`\n      | `results.${number}.item.availabilityStatus`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    > & {\n      __applicationErrorsType?: BulkIncrementInventoryItemsByVariantAndLocationApplicationErrors;\n    }\n  >;\n}\n\n/** @internal */\nexport function bulkSetOrAdjustInventoryItemsByFilter(\n  httpClient: HttpClient\n): BulkSetOrAdjustInventoryItemsByFilterSignature {\n  return (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkSetOrAdjustInventoryItemsByFilterOptions,\n      `adjustedInventoryAction`,\n      2\n    >\n  ) =>\n    universalBulkSetOrAdjustInventoryItemsByFilter(\n      filter,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkSetOrAdjustInventoryItemsByFilterSignature {\n  /**\n   * Set or Adjust inventory items which satisfy the provided filter.\n   * If item track quantity, adjust it's quantity,\n   * In case non-tracking, updates it to track and sets quantity to `incrementBy` or `decrementBy`.\n   * @param - Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   * @deprecated\n   */\n  (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkSetOrAdjustInventoryItemsByFilterOptions,\n      `adjustedInventoryAction`,\n      2\n    >\n  ): Promise<\n    NonNullablePaths<\n      BulkSetOrAdjustInventoryItemsByFilterResponse,\n      `jobId`,\n      2\n    > & {\n      __applicationErrorsType?: BulkSetOrAdjustInventoryItemsByFilterApplicationErrors;\n    }\n  >;\n}\n\n/** @internal */\nexport function bulkAdjustInventoryItemsByFilter(\n  httpClient: HttpClient\n): BulkAdjustInventoryItemsByFilterSignature {\n  return (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkAdjustInventoryItemsByFilterOptions,\n      `adjustment`,\n      2\n    >\n  ) =>\n    universalBulkAdjustInventoryItemsByFilter(\n      filter,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkAdjustInventoryItemsByFilterSignature {\n  /**\n   * Adjust quantity of inventory items which satisfy the provided filter.\n   * For items that track quantity: Adjusts the quantity based on incrementBy or decrementBy.\n   * For items that do not track quantity:\n   * if track_quantity is false (default), found items that are non-tracking will fail.\n   * if track_quantity is true, non-tracking items will be updated to track quantity and quantity will be set to the provided amount.\n   * @param - Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   */\n  (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkAdjustInventoryItemsByFilterOptions,\n      `adjustment`,\n      2\n    >\n  ): Promise<\n    NonNullablePaths<BulkAdjustInventoryItemsByFilterResponse, `jobId`, 2> & {\n      __applicationErrorsType?: BulkAdjustInventoryItemsByFilterApplicationErrors;\n    }\n  >;\n}\n\n/** @internal */\nexport function bulkCreateInventoryItemsByVariantFilter(\n  httpClient: HttpClient\n): BulkCreateInventoryItemsByVariantFilterSignature {\n  return (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkCreateInventoryItemsByVariantFilterOptions,\n      `inventoryCreationData.quantity` | `locationId`,\n      3\n    >\n  ) =>\n    universalBulkCreateInventoryItemsByVariantFilter(\n      filter,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkCreateInventoryItemsByVariantFilterSignature {\n  /**\n   * Creates inventory items at a target location for variants matching a filter.\n   *\n   * Uses variants reader to filter items by criteria (e.g. categories) and creates\n   * inventory items at the specified location for each matching variant.\n   *\n   * The operation runs asynchronously. Use the returned job ID to track progress.\n   * @param - Filter for variants. See [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language)\n   * for WQL syntax and [Search Variants](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/product-variants-reader/search-variants)\n   * for available filter fields.\n   */\n  (\n    filter: Record<string, any>,\n    options?: NonNullablePaths<\n      BulkCreateInventoryItemsByVariantFilterOptions,\n      `inventoryCreationData.quantity` | `locationId`,\n      3\n    >\n  ): Promise<\n    NonNullablePaths<\n      BulkCreateInventoryItemsByVariantFilterResponse,\n      `jobId`,\n      2\n    >\n  >;\n}\n\nexport const onInventoryItemCreated = EventDefinition(\n  'wix.stores.catalog.v3.inventory_item_created',\n  true,\n  (event: InventoryItemCreatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n      ])\n    )\n)<InventoryItemCreatedEnvelope>();\nexport const onInventoryItemDeleted = EventDefinition(\n  'wix.stores.catalog.v3.inventory_item_deleted',\n  true,\n  (event: InventoryItemDeletedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n      ])\n    )\n)<InventoryItemDeletedEnvelope>();\nexport const onInventoryItemStockStatusUpdated = EventDefinition(\n  'wix.stores.catalog.v3.inventory_item_stock_status_updated',\n  true,\n  (event: InventoryItemStockStatusUpdatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [{ path: 'metadata.eventTime' }],\n        },\n      ])\n    )\n)<InventoryItemStockStatusUpdatedEnvelope>();\nexport const onInventoryItemUpdated = EventDefinition(\n  'wix.stores.catalog.v3.inventory_item_updated',\n  true,\n  (event: InventoryItemUpdatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            { path: 'metadata.eventTime' },\n            { path: 'modifiedFields.createdDate' },\n            { path: 'modifiedFields.updatedDate' },\n          ],\n        },\n      ])\n    )\n)<InventoryItemUpdatedEnvelope>();\nexport const onInventoryItemUpdatedWithReason = EventDefinition(\n  'wix.stores.catalog.v3.inventory_item_updated_with_reason',\n  true,\n  (event: InventoryItemUpdatedWithReasonEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'data.currentEntity.createdDate' },\n            { path: 'data.currentEntity.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n      ])\n    )\n)<InventoryItemUpdatedWithReasonEnvelope>();\n\nexport {\n  AccountInfo,\n  AccountInfoMetadata,\n  ActionEvent,\n  AdjustInventoryAction,\n  AdjustInventoryActionActionOneOf,\n  Aggregation,\n  AggregationData,\n  AggregationKindOneOf,\n  AggregationResults,\n  AggregationResultsResultOneOf,\n  AggregationResultsScalarResult,\n  AggregationType,\n  App,\n  ApplicationError,\n  AvailabilityStatus,\n  BaseEventMetadata,\n  Brand,\n  BulkActionMetadata,\n  BulkAdjustInventoryItemsByFilterOptions,\n  BulkAdjustInventoryItemsByFilterRequest,\n  BulkAdjustInventoryItemsByFilterResponse,\n  BulkCreateInventoryItemsByVariantFilterOptions,\n  BulkCreateInventoryItemsByVariantFilterRequest,\n  BulkCreateInventoryItemsByVariantFilterResponse,\n  BulkCreateInventoryItemsOptions,\n  BulkCreateInventoryItemsRequest,\n  BulkCreateInventoryItemsResponse,\n  BulkDecrementInventoryItemsByVariantAndLocationOptions,\n  BulkDecrementInventoryItemsByVariantAndLocationRequest,\n  BulkDecrementInventoryItemsByVariantAndLocationResponse,\n  BulkDecrementInventoryItemsOptions,\n  BulkDecrementInventoryItemsRequest,\n  BulkDecrementInventoryItemsResponse,\n  BulkDeleteInventoryItemsByFilterOptions,\n  BulkDeleteInventoryItemsByFilterRequest,\n  BulkDeleteInventoryItemsByFilterResponse,\n  BulkDeleteInventoryItemsRequest,\n  BulkDeleteInventoryItemsResponse,\n  BulkIncrementInventoryItemsByVariantAndLocationOptions,\n  BulkIncrementInventoryItemsByVariantAndLocationRequest,\n  BulkIncrementInventoryItemsByVariantAndLocationResponse,\n  BulkIncrementInventoryItemsOptions,\n  BulkIncrementInventoryItemsRequest,\n  BulkIncrementInventoryItemsResponse,\n  BulkInventoryItemAction,\n  BulkInventoryItemResult,\n  BulkSetOrAdjustInventoryItemsByFilterOptions,\n  BulkSetOrAdjustInventoryItemsByFilterRequest,\n  BulkSetOrAdjustInventoryItemsByFilterResponse,\n  BulkUpdateInventoryItemsByFilterOptions,\n  BulkUpdateInventoryItemsByFilterRequest,\n  BulkUpdateInventoryItemsByFilterResponse,\n  BulkUpdateInventoryItemsOptions,\n  BulkUpdateInventoryItemsRequest,\n  BulkUpdateInventoryItemsResponse,\n  BulkUpsertInventoryItemResult,\n  BulkUpsertInventoryItemsOptions,\n  BulkUpsertInventoryItemsRequest,\n  BulkUpsertInventoryItemsResponse,\n  CatalogRollbackRequested,\n  CommonCursors,\n  CreateInventoryItemRequest,\n  CreateInventoryItemResponse,\n  CursorPaging,\n  CursorPagingMetadata,\n  CursorSearch,\n  CursorSearchPagingMethodOneOf,\n  Cursors,\n  CustomTag,\n  DateHistogramAggregation,\n  DateHistogramResult,\n  DateHistogramResults,\n  DecrementDataById,\n  DecrementDataByVariantAndLocation,\n  DeleteInventoryItemRequest,\n  DeleteInventoryItemResponse,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  Empty,\n  EntityCreatedEvent,\n  EntityDeletedEvent,\n  EntityUpdatedEvent,\n  EventMetadata,\n  EventType,\n  ExtendedFields,\n  File,\n  GetInventoryItemRequest,\n  GetInventoryItemResponse,\n  GroupByAggregation,\n  GroupByAggregationKindOneOf,\n  GroupByValueResults,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  IncludeMissingValuesOptions,\n  IncrementDataById,\n  IncrementDataByVariantAndLocation,\n  Interval,\n  InvalidateCache,\n  InvalidateCacheGetByOneOf,\n  InventoryCreationData,\n  InventoryItem,\n  InventoryItemCreatedEnvelope,\n  InventoryItemDeletedEnvelope,\n  InventoryItemQuerySpec,\n  InventoryItemSearchSpec,\n  InventoryItemStockStatusUpdatedEnvelope,\n  InventoryItemStockStatusUpdatedEvent,\n  InventoryItemTrackingMethodOneOf,\n  InventoryItemUpdatedEnvelope,\n  InventoryItemUpdatedWithReason,\n  InventoryItemUpdatedWithReasonEnvelope,\n  InventoryItemsQueryBuilder,\n  InventoryItemsQueryResult,\n  ItemMetadata,\n  MaskedInventoryItem,\n  MessageEnvelope,\n  MissingValues,\n  Mode,\n  NestedAggregation,\n  NestedAggregationItem,\n  NestedAggregationItemKindOneOf,\n  NestedAggregationResults,\n  NestedAggregationResultsResultOneOf,\n  NestedAggregationType,\n  NestedResultValue,\n  NestedResultValueResultOneOf,\n  NestedResults,\n  NestedValueAggregationResult,\n  OffsetSearch,\n  OffsetSearchPagingMethodOneOf,\n  Page,\n  Pages,\n  Paging,\n  PagingMetadata,\n  PlatformPagingMetadataV2,\n  PreorderInfo,\n  Product,\n  QueryInventoryItemsRequest,\n  QueryInventoryItemsResponse,\n  QueryV2,\n  QueryV2PagingMethodOneOf,\n  RangeAggregation,\n  RangeAggregationResult,\n  RangeBucket,\n  RangeResult,\n  RangeResults,\n  ReasonType,\n  RecloneSiteRequest,\n  RecloneSiteResponse,\n  RestoreInfo,\n  Results,\n  ScalarAggregation,\n  ScalarResult,\n  ScalarType,\n  SearchDetails,\n  SearchInventoryItemsRequest,\n  SearchInventoryItemsResponse,\n  SearchInventoryItemsWithOffsetRequest,\n  SearchInventoryItemsWithOffsetResponse,\n  SortDirection,\n  SortOrder,\n  SortType,\n  Sorting,\n  URI,\n  URIs,\n  UpdateInventoryItem,\n  UpdateInventoryItemOptions,\n  UpdateInventoryItemRequest,\n  UpdateInventoryItemResponse,\n  V3BulkInventoryItemResult,\n  ValueAggregation,\n  ValueAggregationOptionsOneOf,\n  ValueAggregationResult,\n  ValueResult,\n  ValueResults,\n  WebhookIdentityType,\n  utils,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n  renameKeysFromSDKRequestToRESTRequest,\n  renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n  HttpClient,\n  HttpResponse,\n  Search as SearchSdkType,\n  NonNullablePaths,\n  QuerySpec,\n  Query as QuerySdkType,\n  SearchSpec,\n} from '@wix/sdk-types';\nimport * as ambassadorWixStoresCatalogV3InventoryItem from './stores-catalog-v3-inventory-item-inventory-items-v-3.http.js';\n// @ts-ignore\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\nimport { createSearchUtils } from '@wix/sdk-runtime/search-builder-utils';\n\n/**\n * Inventory Item.\n *\n * Each inventory item represents a specific product variant at a specific location.\n * The combination of `variantId` and `locationId` is unique — you can't have two inventory items for the same variant at the same location.\n */\nexport interface InventoryItem extends InventoryItemTrackingMethodOneOf {\n  /**\n   * Indicates that inventory is tracked by status rather than quantity.\n   *\n   * When set to `true`, the item is marked as available for sale without tracking exact quantities.\n   * When set to `false`, the item is marked as out of stock.\n   * This tracking method is useful for made-to-order products or items with unlimited inventory.\n   *\n   * When using this tracking method, `trackQuantity` is `false` and preorder limits aren't supported.\n   */\n  inStock?: boolean;\n  /**\n   * Indicates that inventory is tracked by quantity.\n   *\n   * Set this field to the number of items currently in stock.\n   * This tracking method is useful when you need to know exactly how many items are available.\n   *\n   * When using this tracking method, `trackQuantity` is `true`.\n   * Quantity can be negative when inventory is decremented for an order that has already been paid.\n   * @min -99999\n   * @max 99999\n   */\n  quantity?: number;\n  /**\n   * Inventory item ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string | null;\n  /**\n   * Revision number, which increments by 1 each time the inventory item is updated.\n   * To prevent conflicting changes,\n   * the current revision must be passed when updating the inventory item.\n   *\n   * Ignored when creating an inventory item.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * Date and time the inventory item was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the inventory item was last updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n  /**\n   * Variant ID.\n   * @format GUID\n   * @immutable\n   */\n  variantId?: string;\n  /**\n   * Stores location ID. If not specified when creating an inventory item, the store's default location is used.\n   * @format GUID\n   * @immutable\n   */\n  locationId?: string | null;\n  /**\n   * Product ID.\n   * @minLength 1\n   * @maxLength 36\n   * @immutable\n   */\n  productId?: string;\n  /**\n   * Whether the quantity is being tracked.\n   * @readonly\n   */\n  trackQuantity?: boolean;\n  /**\n   * Inventory item availability status.\n   * @readonly\n   */\n  availabilityStatus?: AvailabilityStatusWithLiterals;\n  /**\n   * Item preorder info.\n   *\n   * Preorder settings are configured per inventory item, so each variant-location combination can have its own preorder configuration.\n   *\n   * > **Note:** The product entity's `inventory.preorderStatus` and `inventory.preorderAvailability` fields reflect only the default location's preorder state.\n   */\n  preorderInfo?: PreorderInfo;\n  /**\n   * Associated product and variant details.\n   * @readonly\n   */\n  product?: Product;\n  /**\n   * Custom field data for the inventory item object.\n   *\n   * [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions) must be configured in the app dashboard before they can be accessed with API calls.\n   */\n  extendedFields?: ExtendedFields;\n}\n\n/** @oneof */\nexport interface InventoryItemTrackingMethodOneOf {\n  /**\n   * Indicates that inventory is tracked by status rather than quantity.\n   *\n   * When set to `true`, the item is marked as available for sale without tracking exact quantities.\n   * When set to `false`, the item is marked as out of stock.\n   * This tracking method is useful for made-to-order products or items with unlimited inventory.\n   *\n   * When using this tracking method, `trackQuantity` is `false` and preorder limits aren't supported.\n   */\n  inStock?: boolean;\n  /**\n   * Indicates that inventory is tracked by quantity.\n   *\n   * Set this field to the number of items currently in stock.\n   * This tracking method is useful when you need to know exactly how many items are available.\n   *\n   * When using this tracking method, `trackQuantity` is `true`.\n   * Quantity can be negative when inventory is decremented for an order that has already been paid.\n   * @min -99999\n   * @max 99999\n   */\n  quantity?: number;\n}\n\nexport enum AvailabilityStatus {\n  /** Item is out of stock. For tracked inventory, `quantity` is zero or negative and preorder isn't available. */\n  OUT_OF_STOCK = 'OUT_OF_STOCK',\n  /** Item is in stock and available for purchase. For tracked inventory, see the `quantity` field for the exact amount in stock. */\n  IN_STOCK = 'IN_STOCK',\n  /** Item is available for preorder only. Stock is zero or negative, but preorder is enabled with remaining capacity. */\n  PREORDER = 'PREORDER',\n}\n\n/** @enumType */\nexport type AvailabilityStatusWithLiterals =\n  | AvailabilityStatus\n  | 'OUT_OF_STOCK'\n  | 'IN_STOCK'\n  | 'PREORDER';\n\nexport interface PreorderInfo {\n  /**\n   * Whether preorder is enabled for this inventory item.\n   *\n   * > **Note:** Preorder can't be enabled for digital products or products with subscriptions.\n   *\n   * Default: `false`\n   */\n  enabled?: boolean | null;\n  /**\n   * Message displayed to customers when the item is out of stock and preorder is enabled.\n   * @minLength 1\n   * @maxLength 250\n   */\n  message?: string | null;\n  /**\n   * Maximum number of items that can be preordered after stock reaches zero.\n   *\n   * Supported only for inventory items with `trackQuantity = true`.\n   *\n   * Default: `100000`\n   * @max 100000\n   */\n  limit?: number | null;\n  /**\n   * Number of times this item has been preordered.\n   *\n   * Supported only for inventory items with `trackQuantity = true`.\n   * @readonly\n   * @max 99999\n   */\n  counter?: number | null;\n  /**\n   * Remaining quantity available for preorder.\n   *\n   * Supported only for items with `trackQuantity` set to `true`.\n   * @readonly\n   */\n  quantity?: number | null;\n}\n\nexport interface Product {\n  /**\n   * Product name.\n   * @maxLength 80\n   */\n  name?: string | null;\n  /**\n   * List of category IDs that this product is included in directly.\n   * @format GUID\n   * @maxSize 2000\n   */\n  directCategoryIds?: string[];\n  /**\n   * Variant name.\n   * @minLength 1\n   * @maxLength 250\n   */\n  variantName?: string | null;\n  /**\n   * Variant SKU (stock keeping unit).\n   * @minLength 1\n   * @maxLength 40\n   */\n  variantSku?: string | null;\n  /** Whether the variant is visible in the store. */\n  variantVisible?: boolean | null;\n  /**\n   * Product brand.\n   * @internal\n   */\n  brand?: Brand;\n}\n\n/** Product brand information. */\nexport interface Brand {\n  /**\n   * Brand ID.\n   * @format GUID\n   */\n  _id?: string | null;\n  /**\n   * Brand name.\n   * @maxLength 50\n   */\n  name?: string | null;\n}\n\nexport interface ExtendedFields {\n  /**\n   * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n   * The value of each key is structured according to the schema defined when the extended fields were configured.\n   *\n   * You can only access fields for which you have the appropriate permissions.\n   *\n   * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n   */\n  namespaces?: Record<string, Record<string, any>>;\n}\n\nexport interface InvalidateCache extends InvalidateCacheGetByOneOf {\n  /**\n   * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  siteId?: string;\n  /** Invalidate by App */\n  app?: App;\n  /** Invalidate by page id */\n  page?: Page;\n  /** Invalidate by URI path */\n  uri?: URI;\n  /** Invalidate by file (for media files such as PDFs) */\n  file?: File;\n  /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n  customTag?: CustomTag;\n  /** Invalidate by multiple page ids */\n  pages?: Pages;\n  /** Invalidate by multiple URI paths */\n  uris?: URIs;\n  /**\n   * tell us why you're invalidating the cache. You don't need to add your app name\n   * @maxLength 256\n   */\n  reason?: string | null;\n  /** Is local DS */\n  localDc?: boolean;\n  hardPurge?: boolean;\n  /**\n   * Optional caller-provided ID for tracking this invalidation through the system.\n   * When set, the corresponding CDN purge completion event will include this ID,\n   * allowing you to confirm when the invalidation has fully propagated.\n   * Example: generate a UUID, pass it here, and later match it in the CDN purge completion event.\n   * @maxLength 256\n   */\n  correlationId?: string | null;\n}\n\n/** @oneof */\nexport interface InvalidateCacheGetByOneOf {\n  /**\n   * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n   * @format GUID\n   */\n  siteId?: string;\n  /** Invalidate by App */\n  app?: App;\n  /** Invalidate by page id */\n  page?: Page;\n  /** Invalidate by URI path */\n  uri?: URI;\n  /** Invalidate by file (for media files such as PDFs) */\n  file?: File;\n  /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n  customTag?: CustomTag;\n  /** Invalidate by multiple page ids */\n  pages?: Pages;\n  /** Invalidate by multiple URI paths */\n  uris?: URIs;\n}\n\nexport interface App {\n  /**\n   * The AppDefId\n   * @minLength 1\n   */\n  appDefId?: string;\n  /**\n   * The instance Id\n   * @format GUID\n   */\n  instanceId?: string;\n}\n\nexport interface Page {\n  /**\n   * the msid the page is on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by Page ID\n   * @minLength 1\n   */\n  pageId?: string;\n}\n\nexport interface URI {\n  /**\n   * the msid the URI is on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes\n   * @minLength 1\n   */\n  uriPath?: string;\n}\n\nexport interface File {\n  /**\n   * the msid the file is related to\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by filename (for media files such as PDFs)\n   * @minLength 1\n   * @maxLength 256\n   */\n  fileName?: string;\n}\n\nexport interface CustomTag {\n  /**\n   * the msid the tag is related to\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Tag to invalidate by\n   * @minLength 1\n   * @maxLength 256\n   */\n  tag?: string;\n}\n\nexport interface Pages {\n  /**\n   * the msid the pages are on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * Invalidate by multiple Page IDs in a single message\n   * @maxSize 100\n   * @minLength 1\n   */\n  pageIds?: string[];\n}\n\nexport interface URIs {\n  /**\n   * the msid the URIs are on\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /**\n   * URI paths to invalidate (e.g. page/my/path) - without leading/trailing slashes\n   * @maxSize 100\n   * @minLength 1\n   */\n  uriPaths?: string[];\n}\n\nexport interface BulkInventoryItemAction {\n  /**\n   * Inventory items.\n   * @maxSize 1000\n   */\n  inventoryItems?: InventoryItem[];\n  /** Type of bulk inventory changed event - created, updated or deleted */\n  eventType?: EventTypeWithLiterals;\n}\n\nexport enum EventType {\n  UNKNOWN = 'UNKNOWN',\n  CREATED = 'CREATED',\n  UPDATED = 'UPDATED',\n  DELETED = 'DELETED',\n}\n\n/** @enumType */\nexport type EventTypeWithLiterals =\n  | EventType\n  | 'UNKNOWN'\n  | 'CREATED'\n  | 'UPDATED'\n  | 'DELETED';\n\nexport interface CreateInventoryItemRequest {\n  /** Inventory item to create. */\n  inventoryItem: InventoryItem;\n}\n\nexport interface CreateInventoryItemResponse {\n  /** Created inventory item. */\n  inventoryItem?: InventoryItem;\n}\n\nexport interface BulkCreateInventoryItemsRequest {\n  /**\n   * Inventory items to create.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  inventoryItems: InventoryItem[];\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n}\n\nexport interface BulkCreateInventoryItemsResponse {\n  /**\n   * Inventory items created by bulk action.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  results?: V3BulkInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface V3BulkInventoryItemResult {\n  /** Bulk action metadata for inventory item. */\n  itemMetadata?: ItemMetadata;\n  /**\n   * Full inventory item entity.\n   *\n   * Returned only if `returnEntity: true` is passed in the request.\n   */\n  item?: InventoryItem;\n}\n\nexport interface ItemMetadata {\n  /**\n   * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\n   * @format GUID\n   */\n  _id?: string | null;\n  /** Index of the item within the request array. Allows for correlation between request and response items. */\n  originalIndex?: number;\n  /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */\n  success?: boolean;\n  /** Details about the error in case of failure. */\n  error?: ApplicationError;\n}\n\nexport interface ApplicationError {\n  /** Error code. */\n  code?: string;\n  /** Description of the error. */\n  description?: string;\n  /** Data related to the error. */\n  data?: Record<string, any> | null;\n}\n\nexport interface BulkActionMetadata {\n  /** Number of items that were successfully processed. */\n  totalSuccesses?: number;\n  /** Number of items that couldn't be processed. */\n  totalFailures?: number;\n  /** Number of failures without details because detailed failure threshold was exceeded. */\n  undetailedFailures?: number;\n}\n\nexport interface GetInventoryItemRequest {\n  /**\n   * Inventory item ID.\n   * @format GUID\n   */\n  inventoryItemId: string;\n}\n\nexport interface GetInventoryItemResponse {\n  /** Inventory item. */\n  inventoryItem?: InventoryItem;\n}\n\nexport interface UpdateInventoryItemRequest {\n  /** Inventory item to update. */\n  inventoryItem: InventoryItem;\n  /** Reason for update. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/** The reason for the inventory change. */\nexport enum ReasonType {\n  ORDER = 'ORDER',\n  MANUAL = 'MANUAL',\n  REVERT_INVENTORY_CHANGE = 'REVERT_INVENTORY_CHANGE',\n}\n\n/** @enumType */\nexport type ReasonTypeWithLiterals =\n  | ReasonType\n  | 'ORDER'\n  | 'MANUAL'\n  | 'REVERT_INVENTORY_CHANGE';\n\nexport interface UpdateInventoryItemResponse {\n  /** Updated inventory item. */\n  inventoryItem?: InventoryItem;\n}\n\n/** Report when Inventory item stock status changed from in stock to out of stock and the opposite. */\nexport interface InventoryItemStockStatusUpdatedEvent {\n  /** Inventory item new status. */\n  inStock?: boolean;\n}\n\nexport interface InventoryItemUpdatedWithReason {\n  /** Updated inventory item. */\n  currentEntity?: InventoryItem;\n  /** Reason for the update. */\n  reason?: ReasonTypeWithLiterals;\n  /**\n   * ID of the app that updated this inventory item.\n   *\n   * When Wix Stores updates an inventory item, value will always be: `\"215238eb-22a5-4c36-9e7b-e7c08025e04e\"`.\n   * @format GUID\n   */\n  appId?: string;\n}\n\nexport interface BulkUpdateInventoryItemsRequest {\n  /**\n   * Inventory items to update.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  inventoryItems: MaskedInventoryItem[];\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for update. */\n  reason?: ReasonTypeWithLiterals;\n}\n\nexport interface MaskedInventoryItem {\n  /** Inventory item to update. */\n  inventoryItem?: InventoryItem;\n}\n\nexport interface BulkUpdateInventoryItemsResponse {\n  /**\n   * Inventory items updated by bulk action.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  results?: V3BulkInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpsertInventoryItemsRequest {\n  /**\n   * Inventory items to create or update.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  inventoryItems: MaskedInventoryItem[];\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n}\n\nexport interface BulkUpsertInventoryItemsResponse {\n  /**\n   * Inventory items created or updated by the bulk action.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  results?: BulkUpsertInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkUpsertInventoryItemResult {\n  /** Bulk action metadata for the inventory item. */\n  itemMetadata?: ItemMetadata;\n  /**\n   * Full inventory item entity.\n   *\n   * Returned only if `returnEntity: true` is passed in the request.\n   */\n  item?: InventoryItem;\n}\n\nexport interface BulkUpdateInventoryItemsByFilterRequest {\n  /** Filter object. */\n  filter: Record<string, any> | null;\n  /** Inventory item to update. */\n  inventoryItem: InventoryItem;\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n}\n\nexport interface SearchDetails {\n  /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */\n  mode?: ModeWithLiterals;\n  /**\n   * Search term or expression.\n   * @maxLength 100\n   */\n  expression?: string | null;\n  /**\n   * Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   * @maxSize 20\n   */\n  fields?: string[];\n  /** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */\n  fuzzy?: boolean;\n}\n\nexport enum Mode {\n  /** At least one of the search terms must be present. */\n  OR = 'OR',\n  /** All search terms must be present. */\n  AND = 'AND',\n}\n\n/** @enumType */\nexport type ModeWithLiterals = Mode | 'OR' | 'AND';\n\nexport interface BulkUpdateInventoryItemsByFilterResponse {\n  /**\n   * Job ID.\n   *\n   * Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\nexport interface DeleteInventoryItemRequest {\n  /**\n   * Inventory item ID.\n   * @format GUID\n   */\n  inventoryItemId: string;\n}\n\nexport interface DeleteInventoryItemResponse {}\n\nexport interface BulkDeleteInventoryItemsRequest {\n  /**\n   * IDs of inventory items to delete.\n   * @format GUID\n   * @minLength 1\n   * @maxLength 36\n   * @minSize 1\n   * @maxSize 1000\n   */\n  inventoryItemIds: string[];\n}\n\nexport interface BulkDeleteInventoryItemsResponse {\n  /**\n   * Inventory items deleted by bulk action.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  results?: BulkInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkInventoryItemResult {\n  /** Bulk action metadata for inventory item. */\n  itemMetadata?: ItemMetadata;\n}\n\nexport interface BulkDeleteInventoryItemsByFilterRequest {\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   */\n  filter: Record<string, any> | null;\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n}\n\nexport interface BulkDeleteInventoryItemsByFilterResponse {\n  /**\n   * Job ID.\n   *\n   * Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\nexport interface QueryInventoryItemsRequest {\n  /** Query options. */\n  query?: QueryV2;\n}\n\nexport interface QueryV2 extends QueryV2PagingMethodOneOf {\n  /** Paging options to limit and offset the number of items. */\n  paging?: Paging;\n  /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n  cursorPaging?: CursorPaging;\n  /**\n   * Filter object.\n   *\n   * Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object.\n   *\n   * Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).\n   * @maxSize 10\n   */\n  sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface QueryV2PagingMethodOneOf {\n  /** Paging options to limit and offset the number of items. */\n  paging?: Paging;\n  /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n  /**\n   * Name of the field to sort by.\n   * @maxLength 512\n   */\n  fieldName?: string;\n  /** Sort order. */\n  order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface Paging {\n  /**\n   * Number of items to load.\n   * @max 1000\n   */\n  limit?: number | null;\n  /** Number of items to skip in the current sort order. */\n  offset?: number | null;\n}\n\nexport interface CursorPaging {\n  /**\n   * Maximum number of items to return in the results.\n   * @max 1000\n   */\n  limit?: number | null;\n  /**\n   * Pointer to the next or previous page in the list of results.\n   *\n   * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n   * Not relevant for the first request.\n   * @maxLength 16000\n   */\n  cursor?: string | null;\n}\n\nexport interface QueryInventoryItemsResponse {\n  /**\n   * List of inventory items.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  inventoryItems?: InventoryItem[];\n  /** Paging metadata. */\n  pagingMetadata?: PlatformPagingMetadataV2;\n}\n\nexport interface PlatformPagingMetadataV2 {\n  /** The number of items returned in this response. */\n  count?: number | null;\n  /** Cursors to navigate through result pages. Returned if cursor paging was used. */\n  cursors?: CommonCursors;\n}\n\nexport interface CommonCursors {\n  /**\n   * Cursor string pointing to the next page in the list of results.\n   * @maxLength 16000\n   */\n  next?: string | null;\n  /**\n   * Cursor pointing to the previous page in the list of results.\n   * @maxLength 16000\n   */\n  prev?: string | null;\n}\n\nexport interface SearchInventoryItemsRequest {\n  /** Search options. */\n  search?: CursorSearch;\n}\n\nexport interface CursorSearch extends CursorSearchPagingMethodOneOf {\n  /**\n   * Cursor paging options.\n   *\n   * Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).\n   */\n  cursorPaging?: CursorPaging;\n  /**\n   * Filter object.\n   *\n   * Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * List of sort objects.\n   *\n   * Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).\n   * @maxSize 10\n   */\n  sort?: Sorting[];\n  /**\n   * Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories.\n   * @maxSize 10\n   */\n  aggregations?: Aggregation[];\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n  /**\n   * Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n   * Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".\n   * @maxLength 50\n   */\n  timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface CursorSearchPagingMethodOneOf {\n  /**\n   * Cursor paging options.\n   *\n   * Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).\n   */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Aggregation extends AggregationKindOneOf {\n  /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n  value?: ValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n  range?: RangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: ScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n  dateHistogram?: DateHistogramAggregation;\n  /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n  nested?: NestedAggregation;\n  /**\n   * Aggregation name, returned in `aggregations.results.name`.\n   * @maxLength 100\n   */\n  name?: string | null;\n  /** Type of aggregation to perform. Must align with the corresponding aggregation field. */\n  type?: AggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n  /**\n   * Deprecated. Use `nested` instead.\n   * @deprecated Deprecated. Use `nested` instead.\n   * @replacedBy kind.nested\n   * @targetRemovalDate 2024-03-30\n   */\n  groupBy?: GroupByAggregation;\n}\n\n/** @oneof */\nexport interface AggregationKindOneOf {\n  /** A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store. */\n  value?: ValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. */\n  range?: RangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: ScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week. */\n  dateHistogram?: DateHistogramAggregation;\n  /** A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`. */\n  nested?: NestedAggregation;\n}\n\nexport interface RangeBucket {\n  /** Inclusive lower bound of the range. Required if `to` is not provided. */\n  from?: number | null;\n  /** Exclusive upper bound of the range. Required if `from` is not provided. */\n  to?: number | null;\n}\n\nexport enum SortType {\n  /** Number of matches in the results. */\n  COUNT = 'COUNT',\n  /** Alphabetically by the field value. */\n  VALUE = 'VALUE',\n}\n\n/** @enumType */\nexport type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';\n\nexport enum SortDirection {\n  /** Descending order. */\n  DESC = 'DESC',\n  /** Ascending order. */\n  ASC = 'ASC',\n}\n\n/** @enumType */\nexport type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';\n\nexport enum MissingValues {\n  /** Exclude missing values from the aggregation results. */\n  EXCLUDE = 'EXCLUDE',\n  /** Include missing values in the aggregation results. */\n  INCLUDE = 'INCLUDE',\n}\n\n/** @enumType */\nexport type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';\n\nexport interface IncludeMissingValuesOptions {\n  /**\n   * Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.\n   * @maxLength 20\n   */\n  addToBucket?: string;\n}\n\nexport enum ScalarType {\n  /** Total number of distinct values. */\n  COUNT_DISTINCT = 'COUNT_DISTINCT',\n  /** Minimum value. */\n  MIN = 'MIN',\n  /** Maximum value. */\n  MAX = 'MAX',\n}\n\n/** @enumType */\nexport type ScalarTypeWithLiterals =\n  | ScalarType\n  | 'COUNT_DISTINCT'\n  | 'MIN'\n  | 'MAX';\n\nexport interface ValueAggregation extends ValueAggregationOptionsOneOf {\n  /** Options for including missing values in results. */\n  includeOptions?: IncludeMissingValuesOptions;\n  /** Sort type. */\n  sortType?: SortTypeWithLiterals;\n  /** Sort direction. */\n  sortDirection?: SortDirectionWithLiterals;\n  /**\n   * Number of aggregation results to return.\n   * Min: `1`\n   * Max: `250`\n   * Default: `10`\n   */\n  limit?: number | null;\n  /**\n   * Whether to include or exclude missing values in the aggregation results.\n   * Default: `EXCLUDE`.\n   */\n  missingValues?: MissingValuesWithLiterals;\n}\n\n/** @oneof */\nexport interface ValueAggregationOptionsOneOf {\n  /** Options for including missing values in results. */\n  includeOptions?: IncludeMissingValuesOptions;\n}\n\nexport enum NestedAggregationType {\n  /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n  VALUE = 'VALUE',\n  /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n  RANGE = 'RANGE',\n  /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  SCALAR = 'SCALAR',\n  /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n  DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n}\n\n/** @enumType */\nexport type NestedAggregationTypeWithLiterals =\n  | NestedAggregationType\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR'\n  | 'DATE_HISTOGRAM';\n\nexport interface RangeAggregation {\n  /**\n   * List of range buckets, where during aggregation each entity will be placed in the first bucket its value falls into, based on the provided range bounds.\n   * @maxSize 50\n   */\n  buckets?: RangeBucket[];\n}\n\nexport interface ScalarAggregation {\n  /** Operator type for the scalar aggregation. */\n  type?: ScalarTypeWithLiterals;\n}\n\nexport interface DateHistogramAggregation {\n  /** Interval for date histogram aggregation. */\n  interval?: IntervalWithLiterals;\n}\n\nexport enum Interval {\n  /** Yearly interval */\n  YEAR = 'YEAR',\n  /** Monthly interval */\n  MONTH = 'MONTH',\n  /** Weekly interval */\n  WEEK = 'WEEK',\n  /** Daily interval */\n  DAY = 'DAY',\n  /** Hourly interval */\n  HOUR = 'HOUR',\n  /** Minute interval */\n  MINUTE = 'MINUTE',\n  /** Second interval */\n  SECOND = 'SECOND',\n}\n\n/** @enumType */\nexport type IntervalWithLiterals =\n  | Interval\n  | 'YEAR'\n  | 'MONTH'\n  | 'WEEK'\n  | 'DAY'\n  | 'HOUR'\n  | 'MINUTE'\n  | 'SECOND';\n\nexport interface NestedAggregationItem extends NestedAggregationItemKindOneOf {\n  /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n  value?: ValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  range?: RangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: ScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  dateHistogram?: DateHistogramAggregation;\n  /**\n   * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n   * @maxLength 100\n   */\n  name?: string | null;\n  /** Type of aggregation to perform. The matching aggregation field must be passed. */\n  type?: NestedAggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationItemKindOneOf {\n  /** A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status. */\n  value?: ValueAggregation;\n  /** A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  range?: RangeAggregation;\n  /** A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  scalar?: ScalarAggregation;\n  /** A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria. */\n  dateHistogram?: DateHistogramAggregation;\n}\n\nexport enum AggregationType {\n  /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */\n  VALUE = 'VALUE',\n  /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */\n  RANGE = 'RANGE',\n  /** Calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */\n  SCALAR = 'SCALAR',\n  /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */\n  DATE_HISTOGRAM = 'DATE_HISTOGRAM',\n  /** Flattened list of aggregations, where each aggregation is nested within previous one. */\n  NESTED = 'NESTED',\n}\n\n/** @enumType */\nexport type AggregationTypeWithLiterals =\n  | AggregationType\n  | 'VALUE'\n  | 'RANGE'\n  | 'SCALAR'\n  | 'DATE_HISTOGRAM'\n  | 'NESTED';\n\n/** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one. */\nexport interface NestedAggregation {\n  /**\n   * Flattened list of aggregations, where each next aggregation is nested within previous one.\n   * @minSize 2\n   * @maxSize 3\n   */\n  nestedAggregations?: NestedAggregationItem[];\n}\n\nexport interface GroupByAggregation extends GroupByAggregationKindOneOf {\n  /** Value aggregation configuration. */\n  value?: ValueAggregation;\n  /**\n   * Unique, caller-defined aggregation name, returned in `aggregations.results`.\n   * @maxLength 100\n   */\n  name?: string | null;\n  /**\n   * Field to aggregate by.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface GroupByAggregationKindOneOf {\n  /** Value aggregation configuration. */\n  value?: ValueAggregation;\n}\n\nexport interface SearchInventoryItemsResponse {\n  /**\n   * List of inventory items.\n   * @minSize 1\n   * @maxSize 1000\n   */\n  inventoryItems?: InventoryItem[];\n  /** Paging metadata. */\n  pagingMetadata?: CursorPagingMetadata;\n  /** Aggregation data. */\n  aggregationData?: AggregationData;\n}\n\nexport interface CursorPagingMetadata {\n  /** Number of items returned in current page. */\n  count?: number | null;\n  /** Cursor strings that point to the next page, previous page, or both. */\n  cursors?: Cursors;\n  /**\n   * Whether there are more pages to retrieve following the current page.\n   *\n   * + `true`: Another page of results can be retrieved.\n   * + `false`: This is the last page.\n   */\n  hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n  /**\n   * Cursor string pointing to the next page in the list of results.\n   * @maxLength 16000\n   */\n  next?: string | null;\n  /**\n   * Cursor pointing to the previous page in the list of results.\n   * @maxLength 16000\n   */\n  prev?: string | null;\n}\n\nexport interface AggregationData {\n  /**\n   * List of the aggregated data results.\n   * @maxSize 10000\n   */\n  results?: AggregationResults[];\n}\n\nexport interface ValueAggregationResult {\n  /**\n   * Value of the field.\n   * @maxLength 100\n   */\n  value?: string;\n  /** Number of entities with this value. */\n  count?: number;\n}\n\nexport interface RangeAggregationResult {\n  /** Inclusive lower bound of the range. */\n  from?: number | null;\n  /** Exclusive upper bound of the range. */\n  to?: number | null;\n  /** Total number of entities in this range. */\n  count?: number;\n}\n\nexport interface NestedAggregationResults\n  extends NestedAggregationResultsResultOneOf {\n  /** Value aggregation results. */\n  values?: ValueResults;\n  /** Range aggregation results. */\n  ranges?: RangeResults;\n  /** Scalar aggregation results. */\n  scalar?: AggregationResultsScalarResult;\n  /**\n   * Unique, caller-defined aggregation name, identifiable by the requested aggregation `name`.\n   * @maxLength 100\n   */\n  name?: string;\n  /** Aggregation type. */\n  type?: AggregationTypeWithLiterals;\n  /**\n   * Field which the data was aggregated by.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface NestedAggregationResultsResultOneOf {\n  /** Value aggregation results. */\n  values?: ValueResults;\n  /** Range aggregation results. */\n  ranges?: RangeResults;\n  /** Scalar aggregation results. */\n  scalar?: AggregationResultsScalarResult;\n}\n\nexport interface ValueResults {\n  /**\n   * List of value aggregations.\n   * @maxSize 250\n   */\n  results?: ValueAggregationResult[];\n}\n\nexport interface RangeResults {\n  /**\n   * List of ranges returned in same order as requested.\n   * @maxSize 50\n   */\n  results?: RangeAggregationResult[];\n}\n\nexport interface AggregationResultsScalarResult {\n  /** Type of scalar aggregation. */\n  type?: ScalarTypeWithLiterals;\n  /** Value of the scalar aggregation. */\n  value?: number;\n}\n\nexport interface NestedValueAggregationResult {\n  /**\n   * Value of the field.\n   * @maxLength 1000\n   */\n  value?: string;\n  /** Nested aggregations. */\n  nestedResults?: NestedAggregationResults;\n}\n\nexport interface ValueResult {\n  /**\n   * Value of the field.\n   * @maxLength 1000\n   */\n  value?: string;\n  /** Number of entities with this value. */\n  count?: number | null;\n}\n\nexport interface RangeResult {\n  /** Inclusive lower bound of the range. */\n  from?: number | null;\n  /** Exclusive upper bound of the range. */\n  to?: number | null;\n  /** Total number of entities in this range. */\n  count?: number | null;\n}\n\nexport interface ScalarResult {\n  /** Value of the scalar aggregation. */\n  value?: number;\n}\n\nexport interface NestedResultValue extends NestedResultValueResultOneOf {\n  /** Value aggregation result. */\n  value?: ValueResult;\n  /** Range aggregation result. */\n  range?: RangeResult;\n  /** Scalar aggregation result. */\n  scalar?: ScalarResult;\n  /** Date histogram aggregation result. */\n  dateHistogram?: ValueResult;\n}\n\n/** @oneof */\nexport interface NestedResultValueResultOneOf {\n  /** Value aggregation result. */\n  value?: ValueResult;\n  /** Range aggregation result. */\n  range?: RangeResult;\n  /** Scalar aggregation result. */\n  scalar?: ScalarResult;\n  /** Date histogram aggregation result. */\n  dateHistogram?: ValueResult;\n}\n\nexport interface Results {\n  /** List of nested aggregations. */\n  results?: Record<string, NestedResultValue>;\n}\n\nexport interface DateHistogramResult {\n  /**\n   * Date in ISO 8601 format.\n   * @maxLength 100\n   */\n  value?: string;\n  /** Count of documents in the bucket. */\n  count?: number;\n}\n\nexport interface GroupByValueResults {\n  /**\n   * List of value aggregations.\n   * @maxSize 1000\n   */\n  results?: NestedValueAggregationResult[];\n}\n\nexport interface DateHistogramResults {\n  /**\n   * List of date histogram aggregations.\n   * @maxSize 200\n   */\n  results?: DateHistogramResult[];\n}\n\n/**\n * Results of `NESTED` aggregation type in a flattened form.\n * Aggregations in resulting array are keyed by requested aggregation `name`.\n */\nexport interface NestedResults {\n  /**\n   * List of nested aggregations.\n   * @maxSize 1000\n   */\n  results?: Results[];\n}\n\nexport interface AggregationResults extends AggregationResultsResultOneOf {\n  /** Value aggregation results. */\n  values?: ValueResults;\n  /** Range aggregation results. */\n  ranges?: RangeResults;\n  /** Scalar aggregation results. */\n  scalar?: AggregationResultsScalarResult;\n  /** Group by value aggregation results. */\n  groupedByValue?: GroupByValueResults;\n  /** Date histogram aggregation results. */\n  dateHistogram?: DateHistogramResults;\n  /** Nested aggregation results. */\n  nested?: NestedResults;\n  /**\n   * Aggregation name, returned in `aggregations.results.name`.\n   * @maxLength 100\n   */\n  name?: string;\n  /** Aggregation type. Must align with the corresponding aggregation field. */\n  type?: AggregationTypeWithLiterals;\n  /**\n   * Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.\n   * @maxLength 200\n   */\n  fieldPath?: string;\n}\n\n/** @oneof */\nexport interface AggregationResultsResultOneOf {\n  /** Value aggregation results. */\n  values?: ValueResults;\n  /** Range aggregation results. */\n  ranges?: RangeResults;\n  /** Scalar aggregation results. */\n  scalar?: AggregationResultsScalarResult;\n  /** Group by value aggregation results. */\n  groupedByValue?: GroupByValueResults;\n  /** Date histogram aggregation results. */\n  dateHistogram?: DateHistogramResults;\n  /** Nested aggregation results. */\n  nested?: NestedResults;\n}\n\nexport interface SearchInventoryItemsWithOffsetRequest {\n  /** WQL expression. */\n  search?: OffsetSearch;\n}\n\nexport interface OffsetSearch extends OffsetSearchPagingMethodOneOf {\n  /** Paging options to limit and offset the number of items. */\n  paging?: Paging;\n  /**\n   * Filter object.\n   *\n   * Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object.\n   *\n   * Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting).\n   * @maxSize 10\n   */\n  sort?: Sorting[];\n  /**\n   * Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned.\n   * @maxLength 200\n   * @maxSize 20\n   */\n  fields?: string[];\n  /**\n   * Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned.\n   * @maxLength 100\n   * @maxSize 20\n   */\n  fieldsets?: string[];\n  /**\n   * Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories.\n   * @maxSize 10\n   */\n  aggregations?: Aggregation[];\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n  /**\n   * Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n   * Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".\n   * @maxLength 50\n   */\n  timeZone?: string | null;\n}\n\n/** @oneof */\nexport interface OffsetSearchPagingMethodOneOf {\n  /** Paging options to limit and offset the number of items. */\n  paging?: Paging;\n}\n\nexport interface SearchInventoryItemsWithOffsetResponse {\n  /** InventoryItems which satisfy the provided query. */\n  inventoryItems?: InventoryItem[];\n  /** Paging metadata. Contains cursor which can be used in next query. */\n  pagingMetadata?: PagingMetadata;\n}\n\nexport interface PagingMetadata {\n  /** Number of items returned in the response. */\n  count?: number | null;\n  /** Offset that was requested. */\n  offset?: number | null;\n  /** Total number of items that match the query. */\n  total?: number | null;\n  /** Flag that indicates the server failed to calculate the `total` field. */\n  tooManyToCount?: boolean | null;\n}\n\nexport interface BulkDecrementInventoryItemsRequest {\n  /**\n   * Inventory item IDs and decrement data.\n   * @minSize 1\n   * @maxSize 300\n   */\n  decrementData: DecrementDataById[];\n  /**\n   * Whether inventory is restricted from going below zero.\n   *\n   * Default: `true` - inventory does not go below zero.\n   */\n  restrictInventory?: boolean | null;\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for decrement inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\nexport interface DecrementDataById {\n  /**\n   * Inventory item ID.\n   * @format GUID\n   */\n  inventoryItemId?: string;\n  /**\n   * Amount to decrement by.\n   * @min 1\n   * @max 99999\n   */\n  decrementBy?: number;\n  /**\n   * Whether the request to decrement the inventory item's quantity was made as part of a purchase that includes preorder items.\n   *\n   * + If `true` and the item is available for preorder in the default location, negative inventory quantity is allowed.\n   * + If `false` and the item is not available for preorder, negative inventory is not allowed.\n   */\n  preorderRequest?: boolean;\n}\n\nexport interface BulkDecrementInventoryItemsResponse {\n  /**\n   * Inventory items updated by bulk action.\n   * @minSize 1\n   * @maxSize 300\n   */\n  results?: V3BulkInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkIncrementInventoryItemsRequest {\n  /**\n   * Inventory item IDs and increment data.\n   * @minSize 1\n   * @maxSize 300\n   */\n  incrementData: IncrementDataById[];\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for increment inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\nexport interface IncrementDataById {\n  /**\n   * Inventory item ID.\n   * @format GUID\n   */\n  inventoryItemId?: string;\n  /**\n   * Amount to increment by.\n   * @min 1\n   * @max 99999\n   */\n  incrementBy?: number;\n}\n\nexport interface BulkIncrementInventoryItemsResponse {\n  /**\n   * Inventory items updated by bulk action.\n   * @minSize 1\n   * @maxSize 300\n   */\n  results?: V3BulkInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkDecrementInventoryItemsByVariantAndLocationRequest {\n  /**\n   * Variant and location IDs, as well as decrement data.\n   * @minSize 1\n   * @maxSize 300\n   */\n  decrementData: DecrementDataByVariantAndLocation[];\n  /**\n   * Whether to allow negative inventory following this decrement action.\n   *\n   * Default: `false` (negative inventory is not allowed)\n   */\n  restrictInventory?: boolean | null;\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for decrement inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\nexport interface DecrementDataByVariantAndLocation {\n  /**\n   * Variant ID.\n   * @format GUID\n   */\n  variantId?: string;\n  /**\n   * Location ID.\n   * @format GUID\n   */\n  locationId?: string | null;\n  /**\n   * Amount to decrement by.\n   * @min 1\n   * @max 99999\n   */\n  decrementBy?: number;\n  /**\n   * Whether the request to decrement the inventory item's quantity was made as part of a purchase that includes preorder items.\n   *\n   * + If `true` and the item is available for preorder in the default location, negative inventory quantity is allowed.\n   * + If `false` and the item is not available for preorder, negative inventory is not allowed.\n   */\n  preorderRequest?: boolean;\n  /**\n   * Product ID.\n   *\n   * Optional. Use together with `variantId` and `locationId` to uniquely identify the inventory item.\n   * @internal\n   * @minLength 1\n   * @maxLength 36\n   */\n  productId?: string | null;\n}\n\nexport interface BulkDecrementInventoryItemsByVariantAndLocationResponse {\n  /**\n   * Inventory items updated by bulk action.\n   * @minSize 1\n   * @maxSize 300\n   */\n  results?: V3BulkInventoryItemResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkIncrementInventoryItemsByVariantAndLocationRequest {\n  /**\n   * Variant and location IDs, as well as increment data.\n   * @minSize 1\n   * @maxSize 300\n   */\n  incrementData: IncrementDataByVariantAndLocation[];\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for increment inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\nexport interface IncrementDataByVariantAndLocation {\n  /**\n   * Variant ID.\n   * @format GUID\n   */\n  variantId?: string;\n  /**\n   * Location ID.\n   * @format GUID\n   */\n  locationId?: string | null;\n  /**\n   * Amount to increment by.\n   * @min 1\n   * @max 99999\n   */\n  incrementBy?: number;\n  /**\n   * Product ID.\n   *\n   * Optional. Use together with `variantId` and `locationId` to uniquely identify the inventory item.\n   * @internal\n   * @minLength 1\n   * @maxLength 36\n   */\n  productId?: string | null;\n}\n\nexport interface BulkIncrementInventoryItemsByVariantAndLocationResponse {\n  /**\n   * Inventory items updated by bulk action.\n   * @minSize 1\n   * @maxSize 300\n   */\n  results?: V3BulkInventoryItemResult[];\n  /** Bulk action metadata details as: totalSuccess and totalFailure. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n  createdEvent?: EntityCreatedEvent;\n  updatedEvent?: EntityUpdatedEvent;\n  deletedEvent?: EntityDeletedEvent;\n  actionEvent?: ActionEvent;\n  /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n  _id?: string;\n  /**\n   * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n   * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n   */\n  entityFqdn?: string;\n  /**\n   * Event action name, placed at the top level to make it easier for users to dispatch messages.\n   * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n   */\n  slug?: string;\n  /** ID of the entity associated with the event. */\n  entityId?: string;\n  /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n  eventTime?: Date | null;\n  /**\n   * Whether the event was triggered as a result of a privacy regulation application\n   * (for example, GDPR).\n   */\n  triggeredByAnonymizeRequest?: boolean | null;\n  /** If present, indicates the action that triggered the event. */\n  originatedFrom?: string | null;\n  /**\n   * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number.\n   * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n   */\n  entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n  createdEvent?: EntityCreatedEvent;\n  updatedEvent?: EntityUpdatedEvent;\n  deletedEvent?: EntityDeletedEvent;\n  actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n  entity?: string;\n}\n\nexport interface RestoreInfo {\n  deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n  /**\n   * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n   * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n   * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n   */\n  currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n  /** Entity that was deleted. */\n  deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n  body?: string;\n}\n\nexport interface Empty {}\n\nexport interface RecloneSiteRequest {\n  /** @format GUID */\n  cloneFrom?: string;\n}\n\nexport interface RecloneSiteResponse {}\n\nexport interface BulkSetOrAdjustInventoryItemsByFilterRequest {\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   */\n  filter: Record<string, any> | null;\n  /** Action to adjust the inventory by. (e.g increment or decrement) */\n  adjustedInventoryAction: AdjustInventoryAction;\n  /** Free text to match in searchable fields */\n  search?: SearchDetails;\n}\n\nexport interface AdjustInventoryAction\n  extends AdjustInventoryActionActionOneOf {\n  /**\n   * Amount to increment by.\n   * @min 1\n   * @max 99999\n   */\n  incrementBy?: number;\n  /**\n   * Amount to decrement by.\n   * Quantity can be reduced until it reaches zero but not below. Attempting to further decrease an already negative inventory will fail.\n   * @min 1\n   * @max 99999\n   */\n  decrementBy?: number;\n}\n\n/** @oneof */\nexport interface AdjustInventoryActionActionOneOf {\n  /**\n   * Amount to increment by.\n   * @min 1\n   * @max 99999\n   */\n  incrementBy?: number;\n  /**\n   * Amount to decrement by.\n   * Quantity can be reduced until it reaches zero but not below. Attempting to further decrease an already negative inventory will fail.\n   * @min 1\n   * @max 99999\n   */\n  decrementBy?: number;\n}\n\nexport interface BulkSetOrAdjustInventoryItemsByFilterResponse {\n  /**\n   * Job ID.\n   *\n   * Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\nexport interface BulkAdjustInventoryItemsByFilterRequest {\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   */\n  filter: Record<string, any> | null;\n  /** Action to adjust the inventory by (e.g. increment or decrement). */\n  adjustment: AdjustInventoryAction;\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n  /** If set to `true`, will set track method to track quantity. Default: `false`. */\n  trackQuantity?: boolean;\n}\n\nexport interface BulkAdjustInventoryItemsByFilterResponse {\n  /**\n   * Job ID.\n   *\n   * Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\nexport interface BulkCreateInventoryItemsByVariantFilterRequest {\n  /**\n   * Filter for variants. See [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language)\n   * for WQL syntax and [Search Variants](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/product-variants-reader/search-variants)\n   * for available filter fields.\n   */\n  filter: Record<string, any> | null;\n  /**\n   * Free text to match in searchable fields.\n   * When both `filter` and `search` are provided, results must satisfy both conditions (AND logic).\n   * Use `filter` for precise field-based criteria and `search` for broad text matching.\n   */\n  search?: SearchDetails;\n  /**\n   * Target location ID where inventory items will be created.\n   * @format GUID\n   */\n  locationId: string;\n  /** Inventory data for created inventory items. */\n  inventoryCreationData?: InventoryCreationData;\n}\n\nexport interface InventoryCreationData {\n  /**\n   * Default quantity for created inventory items.\n   * Items will be created with quantity tracking enabled and this initial quantity.\n   * @max 99999\n   */\n  quantity?: number;\n}\n\nexport interface BulkCreateInventoryItemsByVariantFilterResponse {\n  /**\n   * Job ID.\n   *\n   * Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/introduction) to retrieve job details and metadata.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\n/**\n * Published on Greyhound topic \"catalog-rollback-requested\" after the site is handled by the V3 population rollback.\n * Each owning service reacts to this rollback request according to its own policy.\n */\nexport interface CatalogRollbackRequested {\n  /**\n   * The MetaSite ID of the store whose catalog migration rollback was requested.\n   * @format GUID\n   */\n  metaSiteId?: string;\n  /** Whether owner services should clean V3 catalog data as a reaction to this rollback request. */\n  cleanData?: boolean;\n}\n\nexport interface MessageEnvelope {\n  /**\n   * App instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n  /**\n   * Event type.\n   * @maxLength 150\n   */\n  eventType?: string;\n  /** The identification type and identity data. */\n  identity?: IdentificationData;\n  /** Stringify payload. */\n  data?: string;\n  /** Details related to the account */\n  accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n  /** @readonly */\n  identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n}\n\nexport enum WebhookIdentityType {\n  UNKNOWN = 'UNKNOWN',\n  ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n  MEMBER = 'MEMBER',\n  WIX_USER = 'WIX_USER',\n  APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n  | WebhookIdentityType\n  | 'UNKNOWN'\n  | 'ANONYMOUS_VISITOR'\n  | 'MEMBER'\n  | 'WIX_USER'\n  | 'APP';\n\nexport interface AccountInfo {\n  /**\n   * ID of the Wix account associated with the event.\n   * @format GUID\n   */\n  accountId?: string | null;\n  /**\n   * ID of the parent Wix account. Only included when accountId belongs to a child account.\n   * @format GUID\n   */\n  parentAccountId?: string | null;\n  /**\n   * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n   * @format GUID\n   */\n  siteId?: string | null;\n}\n\n/** @docsIgnore */\nexport type CreateInventoryItemApplicationErrors =\n  | {\n      code?: 'ITEM_ALREADY_EXISTS';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'PRE_ORDER_VALIDATION';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type CreateInventoryItemValidationErrors =\n  | {\n      ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n    }\n  | {\n      ruleName?: 'PREORDER_LIMIT_NOT_SUPPORTED_FOR_UNTRACKED_INVENTORY';\n    }\n  | {\n      ruleName?: 'DUPLICATE_BULK_UPSERT_KEY';\n    };\n/** @docsIgnore */\nexport type BulkCreateInventoryItemsApplicationErrors = {\n  code?: 'PRE_ORDER_VALIDATION';\n  description?: string;\n  data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkCreateInventoryItemsValidationErrors =\n  | {\n      ruleName?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE';\n    }\n  | {\n      ruleName?: 'PREORDER_LIMIT_NOT_SUPPORTED_FOR_UNTRACKED_INVENTORY';\n    };\n/** @docsIgnore */\nexport type UpdateInventoryItemApplicationErrors =\n  | {\n      code?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE_DECREASING';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'PRE_ORDER_VALIDATION';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkUpdateInventoryItemsApplicationErrors =\n  | {\n      code?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE_DECREASING';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'PRE_ORDER_VALIDATION';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkUpsertInventoryItemsApplicationErrors =\n  | {\n      code?: 'INVALID_TARGET_QUANTITY';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'PRE_ORDER_VALIDATION';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkUpdateInventoryItemsByFilterApplicationErrors =\n  | {\n      code?: 'REQUESTED_QUANTITY_MUST_BE_NON_NEGATIVE_DECREASING';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'PRE_ORDER_VALIDATION';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkDecrementInventoryItemsApplicationErrors =\n  | {\n      code?: 'INVENTORY_QUANTITY_NOT_TRACKED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'INSUFFICIENT_INVENTORY';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MIN_QUANTITY_LIMIT_REACHED';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkIncrementInventoryItemsApplicationErrors =\n  | {\n      code?: 'INVENTORY_QUANTITY_NOT_TRACKED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MAX_QUANTITY_LIMIT_REACHED';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkDecrementInventoryItemsByVariantAndLocationApplicationErrors =\n  | {\n      code?: 'INVENTORY_QUANTITY_NOT_TRACKED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'INSUFFICIENT_INVENTORY';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MIN_QUANTITY_LIMIT_REACHED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'NOT_FOUND';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkIncrementInventoryItemsByVariantAndLocationApplicationErrors =\n  | {\n      code?: 'INVENTORY_QUANTITY_NOT_TRACKED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MAX_QUANTITY_LIMIT_REACHED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'NOT_FOUND';\n      description?: string;\n      data?: Record<string, any>;\n    };\n/** @docsIgnore */\nexport type BulkSetOrAdjustInventoryItemsByFilterApplicationErrors = {\n  code?: 'INVENTORY_QUANTITY_NOT_TRACKED';\n  description?: string;\n  data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type BulkAdjustInventoryItemsByFilterApplicationErrors =\n  | {\n      code?: 'INVENTORY_QUANTITY_NOT_TRACKED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'INSUFFICIENT_INVENTORY';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MIN_QUANTITY_LIMIT_REACHED';\n      description?: string;\n      data?: Record<string, any>;\n    }\n  | {\n      code?: 'MAX_QUANTITY_LIMIT_REACHED';\n      description?: string;\n      data?: Record<string, any>;\n    };\n\nexport interface BaseEventMetadata {\n  /**\n   * App instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n  /**\n   * Event type.\n   * @maxLength 150\n   */\n  eventType?: string;\n  /** The identification type and identity data. */\n  identity?: IdentificationData;\n  /** Details related to the account */\n  accountInfo?: AccountInfo;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\n  /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n  _id?: string;\n  /**\n   * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n   * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n   */\n  entityFqdn?: string;\n  /**\n   * Event action name, placed at the top level to make it easier for users to dispatch messages.\n   * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n   */\n  slug?: string;\n  /** ID of the entity associated with the event. */\n  entityId?: string;\n  /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n  eventTime?: Date | null;\n  /**\n   * Whether the event was triggered as a result of a privacy regulation application\n   * (for example, GDPR).\n   */\n  triggeredByAnonymizeRequest?: boolean | null;\n  /** If present, indicates the action that triggered the event. */\n  originatedFrom?: string | null;\n  /**\n   * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number.\n   * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n   */\n  entityEventSequence?: string | null;\n  accountInfo?: AccountInfoMetadata;\n}\n\nexport interface AccountInfoMetadata {\n  /** ID of the Wix account associated with the event */\n  accountId: string;\n  /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */\n  siteId?: string;\n  /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */\n  parentAccountId?: string;\n}\n\nexport interface InventoryItemCreatedEnvelope {\n  entity: InventoryItem;\n  metadata: EventMetadata;\n}\n\n/** @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read inventory in v3 catalog\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read inventory in v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ_LIMITED\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Read v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.CATALOG_READ_LIMITED\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.INVENTORY_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.inventory_item_created\n * @slug created\n */\nexport declare function onInventoryItemCreated(\n  handler: (event: InventoryItemCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface InventoryItemDeletedEnvelope {\n  entity: InventoryItem;\n  metadata: EventMetadata;\n}\n\n/** @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read inventory in v3 catalog\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read inventory in v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ_LIMITED\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Read v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.CATALOG_READ_LIMITED\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.INVENTORY_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.inventory_item_deleted\n * @slug deleted\n */\nexport declare function onInventoryItemDeleted(\n  handler: (event: InventoryItemDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface InventoryItemStockStatusUpdatedEnvelope {\n  data: InventoryItemStockStatusUpdatedEvent;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when an inventory item's stock is updated.\n * @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read inventory in v3 catalog\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read inventory in v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ_LIMITED\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Read v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.CATALOG_READ_LIMITED\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.INVENTORY_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.inventory_item_stock_status_updated\n * @serviceIdentifier com.wix.stores.catalog.inventory.api.v3.InventoryService\n * @slug stock_status_updated\n */\nexport declare function onInventoryItemStockStatusUpdated(\n  handler: (\n    event: InventoryItemStockStatusUpdatedEnvelope\n  ) => void | Promise<void>\n): void;\n\nexport interface InventoryItemUpdatedEnvelope {\n  entity: InventoryItem;\n  metadata: EventMetadata;\n  /** @hidden */\n  modifiedFields: Record<string, any>;\n}\n\n/** @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read inventory in v3 catalog\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read inventory in v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ_LIMITED\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Read v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.CATALOG_READ_LIMITED\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.INVENTORY_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.inventory_item_updated\n * @slug updated\n */\nexport declare function onInventoryItemUpdated(\n  handler: (event: InventoryItemUpdatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface InventoryItemUpdatedWithReasonEnvelope {\n  data: InventoryItemUpdatedWithReason;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when an inventory item is updated.\n * @permissionScope Manage Stores - all permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.MANAGE-STORES\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Read inventory in v3 catalog\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ\n * @permissionScope Read v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_READ\n * @permissionScope Manage Products\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-PRODUCTS\n * @permissionScope Read Stores - all read permissions\n * @permissionScopeId SCOPE.DC-STORES-MEGA.READ-STORES\n * @permissionScope Read inventory in v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.INVENTORY_ITEM_READ_LIMITED\n * @permissionScope Read Products\n * @permissionScopeId SCOPE.DC-STORES.READ-PRODUCTS\n * @permissionScope Manage Restaurants - all permissions\n * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES\n * @permissionScope Manage v3 catalog\n * @permissionScopeId SCOPE.STORES.CATALOG_WRITE\n * @permissionScope Read v3 catalog (PII)\n * @permissionScopeId SCOPE.STORES.CATALOG_READ_LIMITED\n * @permissionScope Manage Orders\n * @permissionScopeId SCOPE.DC-STORES.MANAGE-ORDERS\n * @permissionId WIX_STORES.INVENTORY_READ\n * @webhook\n * @eventType wix.stores.catalog.v3.inventory_item_updated_with_reason\n * @serviceIdentifier com.wix.stores.catalog.inventory.api.v3.InventoryService\n * @slug updated_with_reason\n */\nexport declare function onInventoryItemUpdatedWithReason(\n  handler: (\n    event: InventoryItemUpdatedWithReasonEnvelope\n  ) => void | Promise<void>\n): void;\n\n/**\n * Creates an inventory item.\n *\n * The combination of `variantId` and `locationId` must be unique.\n * @param inventoryItem - Inventory item to create.\n * @public\n * @requiredField inventoryItem\n * @requiredField inventoryItem.productId\n * @requiredField inventoryItem.trackingMethod\n * @requiredField inventoryItem.variantId\n * @permissionId WIX_STORES.INVENTORY_CREATE\n * @applicableIdentity APP\n * @returns Created inventory item.\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.CreateInventoryItem\n */\nexport async function createInventoryItem(\n  inventoryItem: NonNullablePaths<InventoryItem, `productId` | `variantId`, 2>\n): Promise<\n  NonNullablePaths<\n    InventoryItem,\n    | `inStock`\n    | `quantity`\n    | `variantId`\n    | `productId`\n    | `trackQuantity`\n    | `availabilityStatus`\n    | `product.directCategoryIds`,\n    3\n  > & {\n    __applicationErrorsType?: CreateInventoryItemApplicationErrors;\n    __validationErrorsType?: CreateInventoryItemValidationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItem: inventoryItem,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.createInventoryItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)?.inventoryItem!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { inventoryItem: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItem']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Creates multiple inventory items.\n *\n * The combination of `variantId` and `locationId` must be unique for each inventory item.\n * @param inventoryItems - Inventory items to create.\n * @public\n * @requiredField inventoryItems\n * @requiredField inventoryItems.productId\n * @requiredField inventoryItems.trackingMethod\n * @requiredField inventoryItems.variantId\n * @permissionId WIX_STORES.INVENTORY_CREATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkCreateInventoryItems\n */\nexport async function bulkCreateInventoryItems(\n  inventoryItems: NonNullablePaths<\n    InventoryItem,\n    `productId` | `variantId`,\n    2\n  >[],\n  options?: BulkCreateInventoryItemsOptions\n): Promise<\n  NonNullablePaths<\n    BulkCreateInventoryItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkCreateInventoryItemsApplicationErrors;\n    __validationErrorsType?: BulkCreateInventoryItemsValidationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItems: inventoryItems,\n    returnEntity: options?.returnEntity,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkCreateInventoryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          inventoryItems: '$[0]',\n          returnEntity: '$[1].returnEntity',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItems', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkCreateInventoryItemsOptions {\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n}\n\n/**\n * Retrieves an inventory item.\n * @param inventoryItemId - Inventory item ID.\n * @public\n * @requiredField inventoryItemId\n * @permissionId WIX_STORES.INVENTORY_READ\n * @applicableIdentity APP\n * @returns Inventory item.\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.GetInventoryItem\n */\nexport async function getInventoryItem(\n  inventoryItemId: string\n): Promise<\n  NonNullablePaths<\n    InventoryItem,\n    | `inStock`\n    | `quantity`\n    | `variantId`\n    | `productId`\n    | `trackQuantity`\n    | `availabilityStatus`\n    | `product.directCategoryIds`,\n    3\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItemId: inventoryItemId,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.getInventoryItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)?.inventoryItem!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { inventoryItemId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItemId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Updates an inventory item.\n *\n *\n * Each time the inventory item is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the inventory item.\n * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n * @param _id - Inventory item ID.\n * @public\n * @requiredField _id\n * @requiredField inventoryItem\n * @requiredField inventoryItem.revision\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @returns Updated inventory item.\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.UpdateInventoryItem\n */\nexport async function updateInventoryItem(\n  _id: string,\n  inventoryItem: NonNullablePaths<UpdateInventoryItem, `revision`, 2>,\n  options?: UpdateInventoryItemOptions\n): Promise<\n  NonNullablePaths<\n    InventoryItem,\n    | `inStock`\n    | `quantity`\n    | `variantId`\n    | `productId`\n    | `trackQuantity`\n    | `availabilityStatus`\n    | `product.directCategoryIds`,\n    3\n  > & {\n    __applicationErrorsType?: UpdateInventoryItemApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[3] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItem: { ...inventoryItem, id: _id },\n    reason: options?.reason,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.updateInventoryItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)?.inventoryItem!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: { inventoryItem: '$[1]' },\n        explicitPathsToArguments: {\n          'inventoryItem.id': '$[0]',\n          reason: '$[2].reason',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['_id', 'inventoryItem', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface UpdateInventoryItem {\n  /**\n   * Indicates that inventory is tracked by status rather than quantity.\n   *\n   * When set to `true`, the item is marked as available for sale without tracking exact quantities.\n   * When set to `false`, the item is marked as out of stock.\n   * This tracking method is useful for made-to-order products or items with unlimited inventory.\n   *\n   * When using this tracking method, `trackQuantity` is `false` and preorder limits aren't supported.\n   */\n  inStock?: boolean;\n  /**\n   * Indicates that inventory is tracked by quantity.\n   *\n   * Set this field to the number of items currently in stock.\n   * This tracking method is useful when you need to know exactly how many items are available.\n   *\n   * When using this tracking method, `trackQuantity` is `true`.\n   * Quantity can be negative when inventory is decremented for an order that has already been paid.\n   * @min -99999\n   * @max 99999\n   */\n  quantity?: number;\n  /**\n   * Inventory item ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string | null;\n  /**\n   * Revision number, which increments by 1 each time the inventory item is updated.\n   * To prevent conflicting changes,\n   * the current revision must be passed when updating the inventory item.\n   *\n   * Ignored when creating an inventory item.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * Date and time the inventory item was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the inventory item was last updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n  /**\n   * Variant ID.\n   * @format GUID\n   * @immutable\n   */\n  variantId?: string;\n  /**\n   * Stores location ID. If not specified when creating an inventory item, the store's default location is used.\n   * @format GUID\n   * @immutable\n   */\n  locationId?: string | null;\n  /**\n   * Product ID.\n   * @minLength 1\n   * @maxLength 36\n   * @immutable\n   */\n  productId?: string;\n  /**\n   * Whether the quantity is being tracked.\n   * @readonly\n   */\n  trackQuantity?: boolean;\n  /**\n   * Inventory item availability status.\n   * @readonly\n   */\n  availabilityStatus?: AvailabilityStatusWithLiterals;\n  /**\n   * Item preorder info.\n   *\n   * Preorder settings are configured per inventory item, so each variant-location combination can have its own preorder configuration.\n   *\n   * > **Note:** The product entity's `inventory.preorderStatus` and `inventory.preorderAvailability` fields reflect only the default location's preorder state.\n   */\n  preorderInfo?: PreorderInfo;\n  /**\n   * Associated product and variant details.\n   * @readonly\n   */\n  product?: Product;\n  /**\n   * Custom field data for the inventory item object.\n   *\n   * [Extended fields](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions) must be configured in the app dashboard before they can be accessed with API calls.\n   */\n  extendedFields?: ExtendedFields;\n}\n\nexport interface UpdateInventoryItemOptions {\n  /** Reason for update. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/**\n * Updates multiple inventory items.\n *\n * Each time an inventory item is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating an inventory item.\n * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n * @param inventoryItems - Inventory items to update.\n * @public\n * @requiredField inventoryItems\n * @requiredField inventoryItems.inventoryItem._id\n * @requiredField inventoryItems.inventoryItem.revision\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkUpdateInventoryItems\n */\nexport async function bulkUpdateInventoryItems(\n  inventoryItems: NonNullablePaths<\n    MaskedInventoryItem,\n    `inventoryItem._id` | `inventoryItem.revision`,\n    3\n  >[],\n  options?: BulkUpdateInventoryItemsOptions\n): Promise<\n  NonNullablePaths<\n    BulkUpdateInventoryItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkUpdateInventoryItemsApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItems: inventoryItems,\n    returnEntity: options?.returnEntity,\n    reason: options?.reason,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkUpdateInventoryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          inventoryItems: '$[0]',\n          returnEntity: '$[1].returnEntity',\n          reason: '$[1].reason',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItems', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkUpdateInventoryItemsOptions {\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for update. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/**\n * Creates or updates multiple inventory items.\n *\n * The upsert key is the combination of `productId`, `variantId`, and `locationId`.\n * If `locationId` isn't provided, the site's default location is used.\n *\n * For newly created items, `field_mask` is ignored and all provided fields are applied.\n * For existing items, only the fields specified in `field_mask` are updated.\n * @param inventoryItems - Inventory items to create or update.\n * @internal\n * @documentationMaturity preview\n * @requiredField inventoryItems\n * @requiredField inventoryItems.inventoryItem\n * @requiredField inventoryItems.inventoryItem.productId\n * @requiredField inventoryItems.inventoryItem.variantId\n * @permissionId WIX_STORES.INVENTORY_UPSERT\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkUpsertInventoryItems\n */\nexport async function bulkUpsertInventoryItems(\n  inventoryItems: NonNullablePaths<\n    MaskedInventoryItem,\n    `inventoryItem` | `inventoryItem.productId` | `inventoryItem.variantId`,\n    3\n  >[],\n  options?: BulkUpsertInventoryItemsOptions\n): Promise<\n  NonNullablePaths<\n    BulkUpsertInventoryItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkUpsertInventoryItemsApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItems: inventoryItems,\n    returnEntity: options?.returnEntity,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkUpsertInventoryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          inventoryItems: '$[0]',\n          returnEntity: '$[1].returnEntity',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItems', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkUpsertInventoryItemsOptions {\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n}\n\n/**\n * Updates multiple inventory items, given the provided filter.\n *\n * Each time an inventory item is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating an inventory item.\n * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n * @param filter - Filter object.\n * @public\n * @requiredField filter\n * @requiredField options.inventoryItem\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkUpdateInventoryItemsByFilter\n */\nexport async function bulkUpdateInventoryItemsByFilter(\n  filter: Record<string, any>,\n  options?: NonNullablePaths<\n    BulkUpdateInventoryItemsByFilterOptions,\n    `inventoryItem`,\n    2\n  >\n): Promise<\n  NonNullablePaths<BulkUpdateInventoryItemsByFilterResponse, `jobId`, 2> & {\n    __applicationErrorsType?: BulkUpdateInventoryItemsByFilterApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: filter,\n    inventoryItem: options?.inventoryItem,\n    search: options?.search,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkUpdateInventoryItemsByFilter(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          filter: '$[0]',\n          inventoryItem: '$[1].inventoryItem',\n          search: '$[1].search',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['filter', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkUpdateInventoryItemsByFilterOptions {\n  /** Inventory item to update. */\n  inventoryItem: InventoryItem;\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n}\n\n/**\n * Deletes an inventory item.\n * @param inventoryItemId - Inventory item ID.\n * @public\n * @requiredField inventoryItemId\n * @permissionId WIX_STORES.INVENTORY_DELETE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.DeleteInventoryItem\n */\nexport async function deleteInventoryItem(\n  inventoryItemId: string\n): Promise<void> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItemId: inventoryItemId,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.deleteInventoryItem(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { inventoryItemId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItemId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Deletes multiple inventory items.\n * @param inventoryItemIds - IDs of inventory items to delete.\n * @public\n * @requiredField inventoryItemIds\n * @permissionId WIX_STORES.INVENTORY_DELETE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDeleteInventoryItems\n */\nexport async function bulkDeleteInventoryItems(\n  inventoryItemIds: string[]\n): Promise<\n  NonNullablePaths<\n    BulkDeleteInventoryItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    inventoryItemIds: inventoryItemIds,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkDeleteInventoryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { inventoryItemIds: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['inventoryItemIds']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Deletes multiple inventory items, given the provided filter.\n *\n * The operation runs asynchronously. Use the returned job ID to track progress.\n * @param filter - Filter object in the following format:\n * `\"filter\" : {\n * \"fieldName1\": \"value1\",\n * \"fieldName2\":{\"$operator\":\"value2\"}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n * @internal\n * @documentationMaturity preview\n * @requiredField filter\n * @permissionId WIX_STORES.INVENTORY_DELETE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDeleteInventoryItemsByFilter\n */\nexport async function bulkDeleteInventoryItemsByFilter(\n  filter: Record<string, any>,\n  options?: BulkDeleteInventoryItemsByFilterOptions\n): Promise<\n  NonNullablePaths<BulkDeleteInventoryItemsByFilterResponse, `jobId`, 2>\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: filter,\n    search: options?.search,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkDeleteInventoryItemsByFilter(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { filter: '$[0]', search: '$[1].search' },\n        singleArgumentUnchanged: false,\n      },\n      ['filter', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkDeleteInventoryItemsByFilterOptions {\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n}\n\n/**\n * Retrieves a list of up to 1,000 inventory items, given the provided filtering, sorting, and cursor paging.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n * @public\n * @permissionId WIX_STORES.INVENTORY_READ\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.QueryInventoryItems\n */\nexport function queryInventoryItems(): InventoryItemsQueryBuilder {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[0] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  return queryBuilder<\n    InventoryItem,\n    'CURSOR',\n    QueryInventoryItemsRequest,\n    QueryInventoryItemsResponse\n  >({\n    func: async (payload: QueryInventoryItemsRequest) => {\n      const reqOpts =\n        ambassadorWixStoresCatalogV3InventoryItem.queryInventoryItems(payload);\n\n      sideEffects?.onSiteCall?.();\n      try {\n        const result = await httpClient.request(reqOpts);\n        sideEffects?.onSuccess?.(result);\n        return result;\n      } catch (err) {\n        sideEffects?.onError?.(err);\n        throw err;\n      }\n    },\n    requestTransformer: (query: QueryInventoryItemsRequest['query']) => {\n      const args = [query, {}] as [QueryInventoryItemsRequest['query'], {}];\n      return renameKeysFromSDKRequestToRESTRequest({\n        ...args?.[1],\n        query: args?.[0],\n      });\n    },\n    responseTransformer: ({\n      data,\n    }: HttpResponse<QueryInventoryItemsResponse>) => {\n      const transformedData = renameKeysFromRESTResponseToSDKResponse(\n        transformPaths(data, [])\n      );\n\n      return {\n        items: transformedData?.inventoryItems,\n        pagingMetadata: transformedData?.pagingMetadata,\n      };\n    },\n    errorTransformer: (err: unknown) => {\n      const transformedError = sdkTransformError(err, {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      });\n\n      throw transformedError;\n    },\n    pagingMethod: 'CURSOR',\n    transformationPaths: {},\n  });\n}\n\ninterface QueryCursorResult {\n  cursors: Cursors;\n  hasNext: () => boolean;\n  hasPrev: () => boolean;\n  length: number;\n  pageSize: number;\n}\n\nexport interface InventoryItemsQueryResult extends QueryCursorResult {\n  items: InventoryItem[];\n  query: InventoryItemsQueryBuilder;\n  next: () => Promise<InventoryItemsQueryResult>;\n  prev: () => Promise<InventoryItemsQueryResult>;\n}\n\nexport interface InventoryItemsQueryBuilder {\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  eq: (\n    propertyName:\n      | 'inStock'\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ne: (\n    propertyName:\n      | 'inStock'\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ge: (\n    propertyName:\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'product.name'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  gt: (\n    propertyName:\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'product.name'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  le: (\n    propertyName:\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'product.name'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  lt: (\n    propertyName:\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'product.name'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `string`.\n   * @param string - String to compare against. Case-insensitive.\n   */\n  startsWith: (\n    propertyName:\n      | '_id'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'product.name'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: string\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `values`.\n   * @param values - List of values to compare against.\n   */\n  hasSome: (\n    propertyName:\n      | 'inStock'\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any[]\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `values`.\n   * @param values - List of values to compare against.\n   */\n  hasAll: (\n    propertyName: 'product.directCategoryIds',\n    value: any[]\n  ) => InventoryItemsQueryBuilder;\n  in: (\n    propertyName:\n      | 'inStock'\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: any\n  ) => InventoryItemsQueryBuilder;\n  exists: (\n    propertyName:\n      | 'inStock'\n      | 'quantity'\n      | '_id'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'variantId'\n      | 'locationId'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id',\n    value: boolean\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  ascending: (\n    ...propertyNames: Array<\n      | 'inStock'\n      | 'quantity'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id'\n    >\n  ) => InventoryItemsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  descending: (\n    ...propertyNames: Array<\n      | 'inStock'\n      | 'quantity'\n      | '_createdDate'\n      | '_updatedDate'\n      | 'productId'\n      | 'trackQuantity'\n      | 'availabilityStatus'\n      | 'preorderInfo.enabled'\n      | 'product.name'\n      | 'product.directCategoryIds'\n      | 'product.variantName'\n      | 'product.variantSku'\n      | 'product.brand.id'\n    >\n  ) => InventoryItemsQueryBuilder;\n  /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n  limit: (limit: number) => InventoryItemsQueryBuilder;\n  /** @param cursor - A pointer to specific record */\n  skipTo: (cursor: string) => InventoryItemsQueryBuilder;\n  find: () => Promise<InventoryItemsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.QueryInventoryItems\n * @requiredField query\n */\nexport async function typedQueryInventoryItems(\n  query: InventoryItemQuery\n): Promise<\n  NonNullablePaths<\n    QueryInventoryItemsResponse,\n    | `inventoryItems`\n    | `inventoryItems.${number}.inStock`\n    | `inventoryItems.${number}.quantity`\n    | `inventoryItems.${number}.variantId`\n    | `inventoryItems.${number}.productId`\n    | `inventoryItems.${number}.trackQuantity`\n    | `inventoryItems.${number}.availabilityStatus`,\n    4\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ query: query });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.queryInventoryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['query']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface InventoryItemQuerySpec extends QuerySpec {\n  paging: 'cursor';\n  wql: [\n    {\n      fields: ['_id', 'locationId', 'variantId'];\n      operators: '*';\n      sort: 'NONE';\n    },\n    {\n      fields: ['product.directCategoryIds'];\n      operators: ['$hasAll', '$hasSome'];\n      sort: 'BOTH';\n    },\n    {\n      fields: [\n        '_createdDate',\n        '_updatedDate',\n        'availabilityStatus',\n        'inStock',\n        'preorderInfo.enabled',\n        'product.brand._id',\n        'product.name',\n        'product.variantName',\n        'product.variantSku',\n        'productId',\n        'quantity',\n        'trackQuantity'\n      ];\n      operators: '*';\n      sort: 'BOTH';\n    }\n  ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n  InventoryItem,\n  InventoryItemQuerySpec\n>;\nexport type InventoryItemQuery = {\n  /** \n  Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.  \n  */\n  cursorPaging?: {\n    /** \n  Maximum number of items to return in the results. \n  @max: 1000 \n  */\n    limit?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n      | null;\n    /** \n  Pointer to the next or previous page in the list of results.\n\n  Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n  Not relevant for the first request. \n  @maxLength: 16000 \n  */\n    cursor?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n      | null;\n  };\n  /** \n  Filter object.\n\n  Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).  \n  */\n  filter?: CommonQueryWithEntityContext['filter'] | null;\n  /** \n  Sort object.\n\n  Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting). \n  @maxSize: 10 \n  */\n  sort?: {\n    /** \n  Name of the field to sort by. \n  @maxLength: 512 \n  */\n    fieldName?: NonNullable<\n      CommonQueryWithEntityContext['sort']\n    >[number]['fieldName'];\n    /** \n  Sort order.  \n  */\n    order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n  }[];\n};\n\nexport const utils = {\n  query: {\n    ...createQueryUtils<\n      InventoryItem,\n      InventoryItemQuerySpec,\n      InventoryItemQuery\n    >(),\n  },\n  search: {\n    ...createSearchUtils<\n      InventoryItem,\n      InventoryItemSearchSpec,\n      InventoryItemSearch\n    >(),\n  },\n};\n\n/**\n * Retrieves a list of inventory items, given the provided filtering, sorting, and cursor paging.\n *\n *\n * Search Inventory Items runs with these defaults, which you can override:\n *\n * - `createdDate` is sorted in `DESC` order\n * - `cursorPaging.limit` is `100`\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n *\n * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n * @param search - Search options.\n * @public\n * @requiredField search\n * @permissionId WIX_STORES.INVENTORY_READ\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.SearchInventoryItems\n */\nexport async function searchInventoryItems(\n  search: InventoryItemSearch\n): Promise<\n  NonNullablePaths<\n    SearchInventoryItemsResponse,\n    | `inventoryItems`\n    | `inventoryItems.${number}.inStock`\n    | `inventoryItems.${number}.quantity`\n    | `inventoryItems.${number}.variantId`\n    | `inventoryItems.${number}.productId`\n    | `inventoryItems.${number}.trackQuantity`\n    | `inventoryItems.${number}.availabilityStatus`\n    | `aggregationData.results`\n    | `aggregationData.results.${number}.scalar.type`\n    | `aggregationData.results.${number}.scalar.value`\n    | `aggregationData.results.${number}.name`\n    | `aggregationData.results.${number}.type`\n    | `aggregationData.results.${number}.fieldPath`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ search: search });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.searchInventoryItems(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { search: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['search']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface InventoryItemSearchSpec extends SearchSpec {\n  searchable: ['product.name', 'product.variantName', 'product.variantSku'];\n  aggregatable: [\n    '_createdDate',\n    '_id',\n    '_updatedDate',\n    'availabilityStatus',\n    'inStock',\n    'locationId',\n    'preorderInfo.enabled',\n    'product.brand._id',\n    'product.directCategoryIds',\n    'product.name',\n    'product.variantName',\n    'product.variantSku',\n    'productId',\n    'quantity',\n    'trackQuantity',\n    'variantId'\n  ];\n  paging: 'cursor';\n  wql: [\n    {\n      operators: '*';\n      fields: ['_id', 'locationId', 'variantId'];\n      sort: 'NONE';\n    },\n    {\n      operators: ['$hasAll', '$hasSome'];\n      fields: ['product.directCategoryIds'];\n      sort: 'BOTH';\n    },\n    {\n      operators: '*';\n      fields: [\n        '_createdDate',\n        '_updatedDate',\n        'availabilityStatus',\n        'inStock',\n        'preorderInfo.enabled',\n        'product.brand._id',\n        'product.name',\n        'product.variantName',\n        'product.variantSku',\n        'productId',\n        'quantity',\n        'trackQuantity'\n      ];\n      sort: 'BOTH';\n    }\n  ];\n}\n\nexport type CommonSearchWithEntityContext = SearchSdkType<\n  InventoryItem,\n  InventoryItemSearchSpec\n>;\nexport type InventoryItemSearch = {\n  /** \n  Cursor paging options.\n\n  Learn more about [cursor paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#cursor-paging).  \n  */\n  cursorPaging?: {\n    /** \n  Maximum number of items to return in the results. \n  @max: 1000 \n  */\n    limit?:\n      | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['limit']\n      | null;\n    /** \n  Pointer to the next or previous page in the list of results.\n\n  Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n  Not relevant for the first request. \n  @maxLength: 16000 \n  */\n    cursor?:\n      | NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor']\n      | null;\n  };\n  /** \n  Filter object.\n\n  Learn more about [filtering](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters).  \n  */\n  filter?: CommonSearchWithEntityContext['filter'] | null;\n  /** \n  List of sort objects.\n\n  Learn more about [sorting](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#sorting). \n  @maxSize: 10 \n  */\n  sort?: {\n    /** \n  Name of the field to sort by. \n  @maxLength: 512 \n  */\n    fieldName?: NonNullable<\n      CommonSearchWithEntityContext['sort']\n    >[number]['fieldName'];\n    /** \n  Sort order.  \n  */\n    order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];\n  }[];\n  /** \n  Logical groupings of data into facets, with summaries for each facet. For example, use aggregations to allow site visitors to narrow down their search results by selecting specific categories. \n  @maxSize: 10 \n  */\n  aggregations?: {\n    /** \n  A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store.  \n  */\n    value?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['value'];\n    /** \n  A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more.  \n  */\n    range?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['range'];\n    /** \n  A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`.  \n  */\n    scalar?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['scalar'];\n    /** \n  A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week.  \n  */\n    dateHistogram?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['dateHistogram'];\n    /** \n  A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`.  \n  */\n    nested?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['nested'];\n    /** \n  Aggregation name, returned in `aggregations.results.name`. \n  @maxLength: 100 \n  */\n    name?:\n      | NonNullable<\n          CommonSearchWithEntityContext['aggregations']\n        >[number]['name']\n      | null;\n    /** \n  Type of aggregation to perform. Must align with the corresponding aggregation field.  \n  */\n    type?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['type'];\n    /** \n  Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n  @maxLength: 200 \n  */\n    fieldPath?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['fieldPath'];\n    /** \n  Deprecated. Use `nested` instead. \n  @deprecated: Deprecated. Use `nested` instead.,\n  @replacedBy: kind.nested,\n  @targetRemovalDate: 2024-03-30 \n  */\n    groupBy?: NonNullable<\n      CommonSearchWithEntityContext['aggregations']\n    >[number]['groupBy'];\n  }[];\n  /** \n  Free text to match in searchable fields.  \n  */\n  search?: {\n    /** \n  Search mode. Defines the search logic for combining multiple terms in the `expression`.  \n  */\n    mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];\n    /** \n  Search term or expression. \n  @maxLength: 100 \n  */\n    expression?:\n      | NonNullable<CommonSearchWithEntityContext['search']>['expression']\n      | null;\n    /** \n  Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `order.address.streetName`. \n  @maxLength: 200,\n  @maxSize: 20 \n  */\n    fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];\n    /** \n  Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions.  \n  */\n    fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];\n  };\n  /** \n  Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\n  Applies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\". \n  @maxLength: 50 \n  */\n  timeZone?: CommonSearchWithEntityContext['timeZone'] | null;\n};\n\n/**\n * Decrements quantities of multiple inventory items.\n *\n * > **Notes:**:\n * > + `trackQuantity` must be `true` to allow for decrementing the quantity.\n * > + If you pass `restrictInventory: true` and the `decrementData.decrementBy` amount is greater than the current quantity in stock, the request will fail with an `INSUFFICIENT_INVENTORY` error.\n * > + Pass `restrictInventory: false` to allow for negative quantities.\n * > + If you pass `preorderRequest: true` and the item is available for preorder, the item's `preorderCounter` will increase and the item's quantity will stay the same.\n * @param decrementData - Inventory item IDs and decrement data.\n * @public\n * @requiredField decrementData\n * @requiredField decrementData.decrementBy\n * @requiredField decrementData.inventoryItemId\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDecrementInventoryItems\n */\nexport async function bulkDecrementInventoryItems(\n  decrementData: NonNullablePaths<\n    DecrementDataById,\n    `decrementBy` | `inventoryItemId`,\n    2\n  >[],\n  options?: BulkDecrementInventoryItemsOptions\n): Promise<\n  NonNullablePaths<\n    BulkDecrementInventoryItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkDecrementInventoryItemsApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    decrementData: decrementData,\n    restrictInventory: options?.restrictInventory,\n    returnEntity: options?.returnEntity,\n    reason: options?.reason,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkDecrementInventoryItems(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          decrementData: '$[0]',\n          restrictInventory: '$[1].restrictInventory',\n          returnEntity: '$[1].returnEntity',\n          reason: '$[1].reason',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['decrementData', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkDecrementInventoryItemsOptions {\n  /**\n   * Whether inventory is restricted from going below zero.\n   *\n   * Default: `true` - inventory does not go below zero.\n   */\n  restrictInventory?: boolean | null;\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for decrement inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/**\n * Increments quantities of multiple inventory items.\n *\n * > **Note:** `trackQuantity` must be `true` to allow for incrementing the quantity.\n * @param incrementData - Inventory item IDs and increment data.\n * @public\n * @requiredField incrementData\n * @requiredField incrementData.incrementBy\n * @requiredField incrementData.inventoryItemId\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkIncrementInventoryItems\n */\nexport async function bulkIncrementInventoryItems(\n  incrementData: NonNullablePaths<\n    IncrementDataById,\n    `incrementBy` | `inventoryItemId`,\n    2\n  >[],\n  options?: BulkIncrementInventoryItemsOptions\n): Promise<\n  NonNullablePaths<\n    BulkIncrementInventoryItemsResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkIncrementInventoryItemsApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    incrementData: incrementData,\n    returnEntity: options?.returnEntity,\n    reason: options?.reason,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkIncrementInventoryItems(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          incrementData: '$[0]',\n          returnEntity: '$[1].returnEntity',\n          reason: '$[1].reason',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['incrementData', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkIncrementInventoryItemsOptions {\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for increment inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/**\n * Decrements quantities of multiple inventory items by variant and location.\n *\n * > **Notes:**:\n * > + `trackQuantity` must be `true` to allow for decrementing the quantity.\n * > + If you pass `restrictInventory: true` and the `decrementData.decrementBy` amount is greater than the current quantity in stock, the request will fail with an `INSUFFICIENT_INVENTORY` error.\n * > + Pass `restrictInventory: false` to allow for negative quantities.\n * > + If you pass `preorderRequest: true` and the item is available for preorder, the item's `preorderCounter` will increase and the item's quantity will stay the same.\n * @param decrementData - Variant and location IDs, as well as decrement data.\n * @public\n * @requiredField decrementData\n * @requiredField decrementData.decrementBy\n * @requiredField decrementData.variantId\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDecrementInventoryItemsByVariantAndLocation\n */\nexport async function bulkDecrementInventoryItemsByVariantAndLocation(\n  decrementData: NonNullablePaths<\n    DecrementDataByVariantAndLocation,\n    `decrementBy` | `variantId`,\n    2\n  >[],\n  options?: BulkDecrementInventoryItemsByVariantAndLocationOptions\n): Promise<\n  NonNullablePaths<\n    BulkDecrementInventoryItemsByVariantAndLocationResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkDecrementInventoryItemsByVariantAndLocationApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    decrementData: decrementData,\n    restrictInventory: options?.restrictInventory,\n    returnEntity: options?.returnEntity,\n    reason: options?.reason,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkDecrementInventoryItemsByVariantAndLocation(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          decrementData: '$[0]',\n          restrictInventory: '$[1].restrictInventory',\n          returnEntity: '$[1].returnEntity',\n          reason: '$[1].reason',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['decrementData', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkDecrementInventoryItemsByVariantAndLocationOptions {\n  /**\n   * Whether to allow negative inventory following this decrement action.\n   *\n   * Default: `false` (negative inventory is not allowed)\n   */\n  restrictInventory?: boolean | null;\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for decrement inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/**\n * Increments quantities of multiple inventory items by variant and location.\n *\n * > **Note:** `trackQuantity` must be `true` to allow for incrementing the quantity.\n * @param incrementData - Variant and location IDs, as well as increment data.\n * @public\n * @requiredField incrementData\n * @requiredField incrementData.incrementBy\n * @requiredField incrementData.variantId\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkIncrementInventoryItemsByVariantAndLocation\n */\nexport async function bulkIncrementInventoryItemsByVariantAndLocation(\n  incrementData: NonNullablePaths<\n    IncrementDataByVariantAndLocation,\n    `incrementBy` | `variantId`,\n    2\n  >[],\n  options?: BulkIncrementInventoryItemsByVariantAndLocationOptions\n): Promise<\n  NonNullablePaths<\n    BulkIncrementInventoryItemsByVariantAndLocationResponse,\n    | `results`\n    | `results.${number}.itemMetadata.originalIndex`\n    | `results.${number}.itemMetadata.success`\n    | `results.${number}.itemMetadata.error.code`\n    | `results.${number}.itemMetadata.error.description`\n    | `results.${number}.item.inStock`\n    | `results.${number}.item.quantity`\n    | `results.${number}.item.variantId`\n    | `results.${number}.item.productId`\n    | `results.${number}.item.trackQuantity`\n    | `results.${number}.item.availabilityStatus`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  > & {\n    __applicationErrorsType?: BulkIncrementInventoryItemsByVariantAndLocationApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    incrementData: incrementData,\n    returnEntity: options?.returnEntity,\n    reason: options?.reason,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkIncrementInventoryItemsByVariantAndLocation(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          incrementData: '$[0]',\n          returnEntity: '$[1].returnEntity',\n          reason: '$[1].reason',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['incrementData', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkIncrementInventoryItemsByVariantAndLocationOptions {\n  /**\n   * Whether to return the full inventory item entities in the response.\n   *\n   * Default: `false`\n   */\n  returnEntity?: boolean;\n  /** Reason for increment inventory action. */\n  reason?: ReasonTypeWithLiterals;\n}\n\n/**\n * Set or Adjust inventory items which satisfy the provided filter.\n * If item track quantity, adjust it's quantity,\n * In case non-tracking, updates it to track and sets quantity to `incrementBy` or `decrementBy`.\n * @param filter - Filter object in the following format:\n * `\"filter\" : {\n * \"fieldName1\": \"value1\",\n * \"fieldName2\":{\"$operator\":\"value2\"}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n * @internal\n * @documentationMaturity preview\n * @requiredField filter\n * @requiredField options.adjustedInventoryAction\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkSetOrAdjustInventoryItemsByFilter\n * @deprecated\n * @replacedBy com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkAdjustInventoryItemsByFilter\n */\nexport async function bulkSetOrAdjustInventoryItemsByFilter(\n  filter: Record<string, any>,\n  options?: NonNullablePaths<\n    BulkSetOrAdjustInventoryItemsByFilterOptions,\n    `adjustedInventoryAction`,\n    2\n  >\n): Promise<\n  NonNullablePaths<\n    BulkSetOrAdjustInventoryItemsByFilterResponse,\n    `jobId`,\n    2\n  > & {\n    __applicationErrorsType?: BulkSetOrAdjustInventoryItemsByFilterApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: filter,\n    adjustedInventoryAction: options?.adjustedInventoryAction,\n    search: options?.search,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkSetOrAdjustInventoryItemsByFilter(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          filter: '$[0]',\n          adjustedInventoryAction: '$[1].adjustedInventoryAction',\n          search: '$[1].search',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['filter', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkSetOrAdjustInventoryItemsByFilterOptions {\n  /** Action to adjust the inventory by. (e.g increment or decrement) */\n  adjustedInventoryAction: AdjustInventoryAction;\n  /** Free text to match in searchable fields */\n  search?: SearchDetails;\n}\n\n/**\n * Adjust quantity of inventory items which satisfy the provided filter.\n * For items that track quantity: Adjusts the quantity based on incrementBy or decrementBy.\n * For items that do not track quantity:\n * if track_quantity is false (default), found items that are non-tracking will fail.\n * if track_quantity is true, non-tracking items will be updated to track quantity and quantity will be set to the provided amount.\n * @param filter - Filter object in the following format:\n * `\"filter\" : {\n * \"fieldName1\": \"value1\",\n * \"fieldName2\":{\"$operator\":\"value2\"}\n * }`\n * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n * @internal\n * @documentationMaturity preview\n * @requiredField filter\n * @requiredField options.adjustment\n * @permissionId WIX_STORES.INVENTORY_UPDATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkAdjustInventoryItemsByFilter\n */\nexport async function bulkAdjustInventoryItemsByFilter(\n  filter: Record<string, any>,\n  options?: NonNullablePaths<\n    BulkAdjustInventoryItemsByFilterOptions,\n    `adjustment`,\n    2\n  >\n): Promise<\n  NonNullablePaths<BulkAdjustInventoryItemsByFilterResponse, `jobId`, 2> & {\n    __applicationErrorsType?: BulkAdjustInventoryItemsByFilterApplicationErrors;\n  }\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: filter,\n    adjustment: options?.adjustment,\n    search: options?.search,\n    trackQuantity: options?.trackQuantity,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkAdjustInventoryItemsByFilter(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          filter: '$[0]',\n          adjustment: '$[1].adjustment',\n          search: '$[1].search',\n          trackQuantity: '$[1].trackQuantity',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['filter', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkAdjustInventoryItemsByFilterOptions {\n  /** Action to adjust the inventory by (e.g. increment or decrement). */\n  adjustment: AdjustInventoryAction;\n  /** Free text to match in searchable fields. */\n  search?: SearchDetails;\n  /** If set to `true`, will set track method to track quantity. Default: `false`. */\n  trackQuantity?: boolean;\n}\n\n/**\n * Creates inventory items at a target location for variants matching a filter.\n *\n * Uses variants reader to filter items by criteria (e.g. categories) and creates\n * inventory items at the specified location for each matching variant.\n *\n * The operation runs asynchronously. Use the returned job ID to track progress.\n * @param filter - Filter for variants. See [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language)\n * for WQL syntax and [Search Variants](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/product-variants-reader/search-variants)\n * for available filter fields.\n * @internal\n * @documentationMaturity preview\n * @requiredField filter\n * @requiredField options.inventoryCreationData.quantity\n * @requiredField options.locationId\n * @permissionId WIX_STORES.INVENTORY_CREATE\n * @applicableIdentity APP\n * @fqn com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkCreateInventoryItemsByVariantFilter\n */\nexport async function bulkCreateInventoryItemsByVariantFilter(\n  filter: Record<string, any>,\n  options?: NonNullablePaths<\n    BulkCreateInventoryItemsByVariantFilterOptions,\n    `inventoryCreationData.quantity` | `locationId`,\n    3\n  >\n): Promise<\n  NonNullablePaths<BulkCreateInventoryItemsByVariantFilterResponse, `jobId`, 2>\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: filter,\n    search: options?.search,\n    locationId: options?.locationId,\n    inventoryCreationData: options?.inventoryCreationData,\n  });\n\n  const reqOpts =\n    ambassadorWixStoresCatalogV3InventoryItem.bulkCreateInventoryItemsByVariantFilter(\n      payload\n    );\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          filter: '$[0]',\n          search: '$[1].search',\n          locationId: '$[1].locationId',\n          inventoryCreationData: '$[1].inventoryCreationData',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['filter', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkCreateInventoryItemsByVariantFilterOptions {\n  /**\n   * Free text to match in searchable fields.\n   * When both `filter` and `search` are provided, results must satisfy both conditions (AND logic).\n   * Use `filter` for precise field-based criteria and `search` for broad text matching.\n   */\n  search?: SearchDetails;\n  /**\n   * Target location ID where inventory items will be created.\n   * @format GUID\n   */\n  locationId: string;\n  /** Inventory data for created inventory items. */\n  inventoryCreationData?: InventoryCreationData;\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'manage._base_domain_': [\n      {\n        srcPath: '/inventory',\n        destPath: '',\n      },\n    ],\n    'api._api_base_domain_': [\n      {\n        srcPath: '/inventory',\n        destPath: '',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/_api/inventory',\n        destPath: '',\n      },\n    ],\n    'editor._base_domain_': [\n      {\n        srcPath: '/_api/inventory',\n        destPath: '',\n      },\n    ],\n    'blocks._base_domain_': [\n      {\n        srcPath: '/_api/inventory',\n        destPath: '',\n      },\n    ],\n    'create.editorx': [\n      {\n        srcPath: '/_api/inventory',\n        destPath: '',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/stores/v3/inventory-items',\n        destPath: '/v3/inventory-items',\n      },\n      {\n        srcPath: '/stores/v3/bulk/inventory-items',\n        destPath: '/v3/bulk/inventory-items',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/_api/inventory',\n        destPath: '',\n      },\n    ],\n    'editor.wixapps.net': [\n      {\n        srcPath: '/_api/inventory',\n        destPath: '',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_stores_inventory-items-v-3';\n\n/**\n * Creates an inventory item.\n *\n * The combination of `variantId` and `locationId` must be unique.\n */\nexport function createInventoryItem(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __createInventoryItem({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'inventoryItem.createdDate' },\n          { path: 'inventoryItem.updatedDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.CreateInventoryItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/inventory-items',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'inventoryItem.createdDate' },\n              { path: 'inventoryItem.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __createInventoryItem;\n}\n\n/**\n * Creates multiple inventory items.\n *\n * The combination of `variantId` and `locationId` must be unique for each inventory item.\n */\nexport function bulkCreateInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkCreateInventoryItems({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'inventoryItems.createdDate' },\n          { path: 'inventoryItems.updatedDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkCreateInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/create',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkCreateInventoryItems;\n}\n\n/** Retrieves an inventory item. */\nexport function getInventoryItem(payload: object): RequestOptionsFactory<any> {\n  function __getInventoryItem({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'GET' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.GetInventoryItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/inventory-items/{inventoryItemId}',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'inventoryItem.createdDate' },\n              { path: 'inventoryItem.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __getInventoryItem;\n}\n\n/**\n * Updates an inventory item.\n *\n *\n * Each time the inventory item is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating the inventory item.\n * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n */\nexport function updateInventoryItem(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __updateInventoryItem({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'fieldMask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'inventoryItem.createdDate' },\n          { path: 'inventoryItem.updatedDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'PATCH' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.UpdateInventoryItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/inventory-items/{inventoryItem.id}',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'inventoryItem.createdDate' },\n              { path: 'inventoryItem.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __updateInventoryItem;\n}\n\n/**\n * Updates multiple inventory items.\n *\n * Each time an inventory item is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating an inventory item.\n * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n */\nexport function bulkUpdateInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkUpdateInventoryItems({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'inventoryItems.fieldMask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'inventoryItems.inventoryItem.createdDate' },\n          { path: 'inventoryItems.inventoryItem.updatedDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkUpdateInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/update',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkUpdateInventoryItems;\n}\n\n/**\n * Creates or updates multiple inventory items.\n *\n * The upsert key is the combination of `productId`, `variantId`, and `locationId`.\n * If `locationId` isn't provided, the site's default location is used.\n *\n * For newly created items, `field_mask` is ignored and all provided fields are applied.\n * For existing items, only the fields specified in `field_mask` are updated.\n */\nexport function bulkUpsertInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkUpsertInventoryItems({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'inventoryItems.fieldMask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'inventoryItems.inventoryItem.createdDate' },\n          { path: 'inventoryItems.inventoryItem.updatedDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkUpsertInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/upsert',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkUpsertInventoryItems;\n}\n\n/**\n * Updates multiple inventory items, given the provided filter.\n *\n * Each time an inventory item is updated, `revision` increments by 1.\n * The current `revision` must be passed when updating an inventory item.\n * This ensures you're working with the latest inventory item and prevents unintended overwrites.\n */\nexport function bulkUpdateInventoryItemsByFilter(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkUpdateInventoryItemsByFilter({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'fieldMask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'inventoryItem.createdDate' },\n          { path: 'inventoryItem.updatedDate' },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkUpdateInventoryItemsByFilter',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/update-by-filter',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n    };\n\n    return metadata;\n  }\n\n  return __bulkUpdateInventoryItemsByFilter;\n}\n\n/** Deletes an inventory item. */\nexport function deleteInventoryItem(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __deleteInventoryItem({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'DELETE' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.DeleteInventoryItem',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/inventory-items/{inventoryItemId}',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n    };\n\n    return metadata;\n  }\n\n  return __deleteInventoryItem;\n}\n\n/** Deletes multiple inventory items. */\nexport function bulkDeleteInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkDeleteInventoryItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDeleteInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/delete',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkDeleteInventoryItems;\n}\n\n/**\n * Deletes multiple inventory items, given the provided filter.\n *\n * The operation runs asynchronously. Use the returned job ID to track progress.\n */\nexport function bulkDeleteInventoryItemsByFilter(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkDeleteInventoryItemsByFilter({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDeleteInventoryItemsByFilter',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/delete-by-filter',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkDeleteInventoryItemsByFilter;\n}\n\n/**\n * Retrieves a list of up to 1,000 inventory items, given the provided filtering, sorting, and cursor paging.\n *\n * To learn about working with _Query_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n */\nexport function queryInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __queryInventoryItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'GET' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.QueryInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/inventory-items/query',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload, true),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'inventoryItems.createdDate' },\n              { path: 'inventoryItems.updatedDate' },\n            ],\n          },\n        ]),\n      fallback: [\n        {\n          method: 'POST' as any,\n          url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n            protoPath: '/v3/inventory-items/query',\n            data: payload,\n            host,\n          }),\n          data: payload,\n        },\n      ],\n    };\n\n    return metadata;\n  }\n\n  return __queryInventoryItems;\n}\n\n/**\n * Retrieves a list of inventory items, given the provided filtering, sorting, and cursor paging.\n *\n *\n * Search Inventory Items runs with these defaults, which you can override:\n *\n * - `createdDate` is sorted in `DESC` order\n * - `cursorPaging.limit` is `100`\n *\n * To learn about working with _Search_ endpoints, see\n * [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language),\n * and [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging).\n *\n * Learn more about the differences between [_Query_ and _Search_](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-search-query-and-list-methods) methods.\n */\nexport function searchInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __searchInventoryItems({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: [\n          { path: 'search.aggregations.range.buckets.from' },\n          { path: 'search.aggregations.range.buckets.to' },\n          {\n            path: 'search.aggregations.nested.nestedAggregations.range.buckets.from',\n          },\n          {\n            path: 'search.aggregations.nested.nestedAggregations.range.buckets.to',\n          },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'GET' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.SearchInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/inventory-items/search',\n        data: serializedData,\n        host,\n      }),\n      params: toURLSearchParams(serializedData, true),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'inventoryItems.createdDate' },\n              { path: 'inventoryItems.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              { path: 'aggregationData.results.ranges.results.from' },\n              { path: 'aggregationData.results.ranges.results.to' },\n              {\n                path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.from',\n              },\n              {\n                path: 'aggregationData.results.groupedByValue.results.nestedResults.ranges.results.to',\n              },\n              {\n                path: 'aggregationData.results.nested.results.results.*.range.from',\n              },\n              {\n                path: 'aggregationData.results.nested.results.results.*.range.to',\n              },\n              { path: 'aggregationData.results.scalar.value' },\n              {\n                path: 'aggregationData.results.groupedByValue.results.nestedResults.scalar.value',\n              },\n              {\n                path: 'aggregationData.results.nested.results.results.*.scalar.value',\n              },\n            ],\n          },\n        ]),\n      fallback: [\n        {\n          method: 'POST' as any,\n          url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n            protoPath: '/v3/inventory-items/search',\n            data: serializedData,\n            host,\n          }),\n          data: serializedData,\n        },\n      ],\n    };\n\n    return metadata;\n  }\n\n  return __searchInventoryItems;\n}\n\n/**\n * Decrements quantities of multiple inventory items.\n *\n * > **Notes:**:\n * > + `trackQuantity` must be `true` to allow for decrementing the quantity.\n * > + If you pass `restrictInventory: true` and the `decrementData.decrementBy` amount is greater than the current quantity in stock, the request will fail with an `INSUFFICIENT_INVENTORY` error.\n * > + Pass `restrictInventory: false` to allow for negative quantities.\n * > + If you pass `preorderRequest: true` and the item is available for preorder, the item's `preorderCounter` will increase and the item's quantity will stay the same.\n */\nexport function bulkDecrementInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkDecrementInventoryItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDecrementInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/decrement',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkDecrementInventoryItems;\n}\n\n/**\n * Increments quantities of multiple inventory items.\n *\n * > **Note:** `trackQuantity` must be `true` to allow for incrementing the quantity.\n */\nexport function bulkIncrementInventoryItems(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkIncrementInventoryItems({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkIncrementInventoryItems',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/increment',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkIncrementInventoryItems;\n}\n\n/**\n * Decrements quantities of multiple inventory items by variant and location.\n *\n * > **Notes:**:\n * > + `trackQuantity` must be `true` to allow for decrementing the quantity.\n * > + If you pass `restrictInventory: true` and the `decrementData.decrementBy` amount is greater than the current quantity in stock, the request will fail with an `INSUFFICIENT_INVENTORY` error.\n * > + Pass `restrictInventory: false` to allow for negative quantities.\n * > + If you pass `preorderRequest: true` and the item is available for preorder, the item's `preorderCounter` will increase and the item's quantity will stay the same.\n */\nexport function bulkDecrementInventoryItemsByVariantAndLocation(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkDecrementInventoryItemsByVariantAndLocation({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkDecrementInventoryItemsByVariantAndLocation',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/decrement-by-variant-and-location',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkDecrementInventoryItemsByVariantAndLocation;\n}\n\n/**\n * Increments quantities of multiple inventory items by variant and location.\n *\n * > **Note:** `trackQuantity` must be `true` to allow for incrementing the quantity.\n */\nexport function bulkIncrementInventoryItemsByVariantAndLocation(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkIncrementInventoryItemsByVariantAndLocation({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkIncrementInventoryItemsByVariantAndLocation',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/increment-by-variant-and-location',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'results.item.createdDate' },\n              { path: 'results.item.updatedDate' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkIncrementInventoryItemsByVariantAndLocation;\n}\n\n/**\n * Set or Adjust inventory items which satisfy the provided filter.\n * If item track quantity, adjust it's quantity,\n * In case non-tracking, updates it to track and sets quantity to `incrementBy` or `decrementBy`.\n * @deprecated It has been replaced with com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkAdjustInventoryItemsByFilter().\n */\nexport function bulkSetOrAdjustInventoryItemsByFilter(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkSetOrAdjustInventoryItemsByFilter({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkSetOrAdjustInventoryItemsByFilter',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/set-or-adjust-by-filter',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkSetOrAdjustInventoryItemsByFilter;\n}\n\n/**\n * Adjust quantity of inventory items which satisfy the provided filter.\n * For items that track quantity: Adjusts the quantity based on incrementBy or decrementBy.\n * For items that do not track quantity:\n * if track_quantity is false (default), found items that are non-tracking will fail.\n * if track_quantity is true, non-tracking items will be updated to track quantity and quantity will be set to the provided amount.\n */\nexport function bulkAdjustInventoryItemsByFilter(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkAdjustInventoryItemsByFilter({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkAdjustInventoryItemsByFilter',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/adjust-by-filter',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkAdjustInventoryItemsByFilter;\n}\n\n/**\n * Creates inventory items at a target location for variants matching a filter.\n *\n * Uses variants reader to filter items by criteria (e.g. categories) and creates\n * inventory items at the specified location for each matching variant.\n *\n * The operation runs asynchronously. Use the returned job ID to track progress.\n */\nexport function bulkCreateInventoryItemsByVariantFilter(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkCreateInventoryItemsByVariantFilter({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.stores.catalog.v3.inventory_item',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wix.stores.catalog.inventory.api.v3.InventoryService.BulkCreateInventoryItemsByVariantFilter',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixStoresCatalogInventoryApiV3InventoryServiceUrl({\n        protoPath: '/v3/bulk/inventory-items/create-by-variant-filter',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkCreateInventoryItemsByVariantFilter;\n}\n","import {\n  createInventoryItem as publicCreateInventoryItem,\n  bulkCreateInventoryItems as publicBulkCreateInventoryItems,\n  getInventoryItem as publicGetInventoryItem,\n  updateInventoryItem as publicUpdateInventoryItem,\n  bulkUpdateInventoryItems as publicBulkUpdateInventoryItems,\n  bulkUpsertInventoryItems as publicBulkUpsertInventoryItems,\n  bulkUpdateInventoryItemsByFilter as publicBulkUpdateInventoryItemsByFilter,\n  deleteInventoryItem as publicDeleteInventoryItem,\n  bulkDeleteInventoryItems as publicBulkDeleteInventoryItems,\n  bulkDeleteInventoryItemsByFilter as publicBulkDeleteInventoryItemsByFilter,\n  queryInventoryItems as publicQueryInventoryItems,\n  typedQueryInventoryItems as publicTypedQueryInventoryItems,\n  searchInventoryItems as publicSearchInventoryItems,\n  bulkDecrementInventoryItems as publicBulkDecrementInventoryItems,\n  bulkIncrementInventoryItems as publicBulkIncrementInventoryItems,\n  bulkDecrementInventoryItemsByVariantAndLocation as publicBulkDecrementInventoryItemsByVariantAndLocation,\n  bulkIncrementInventoryItemsByVariantAndLocation as publicBulkIncrementInventoryItemsByVariantAndLocation,\n  bulkSetOrAdjustInventoryItemsByFilter as publicBulkSetOrAdjustInventoryItemsByFilter,\n  bulkAdjustInventoryItemsByFilter as publicBulkAdjustInventoryItemsByFilter,\n  bulkCreateInventoryItemsByVariantFilter as publicBulkCreateInventoryItemsByVariantFilter,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n  BuildRESTFunction,\n  MaybeContext,\n  BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n  InventoryItemQuery,\n  InventoryItemsQueryBuilder,\n  typedQueryInventoryItems as universalTypedQueryInventoryItems,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\nimport { onInventoryItemCreated as publicOnInventoryItemCreated } from './stores-catalog-v3-inventory-item-inventory-items-v-3.public.js';\nimport { onInventoryItemDeleted as publicOnInventoryItemDeleted } from './stores-catalog-v3-inventory-item-inventory-items-v-3.public.js';\nimport { onInventoryItemStockStatusUpdated as publicOnInventoryItemStockStatusUpdated } from './stores-catalog-v3-inventory-item-inventory-items-v-3.public.js';\nimport { onInventoryItemUpdated as publicOnInventoryItemUpdated } from './stores-catalog-v3-inventory-item-inventory-items-v-3.public.js';\nimport { onInventoryItemUpdatedWithReason as publicOnInventoryItemUpdatedWithReason } from './stores-catalog-v3-inventory-item-inventory-items-v-3.public.js';\n\nfunction customQueryInventoryItems(httpClient: HttpClient) {\n  const router = createQueryOverloadRouter({\n    builderQueryFunction: () => publicQueryInventoryItems(httpClient)(),\n    typedQueryFunction: (query: InventoryItemQuery) =>\n      publicTypedQueryInventoryItems(httpClient)(query),\n    hasOptionsParameter: false,\n  });\n\n  function overloadedQuery(): InventoryItemsQueryBuilder;\n  function overloadedQuery(\n    query: InventoryItemQuery\n  ): ReturnType<typeof universalTypedQueryInventoryItems>;\n  function overloadedQuery(query?: InventoryItemQuery): any {\n    return router(...arguments);\n  }\n\n  return overloadedQuery;\n}\n\nexport const createInventoryItem: MaybeContext<\n  BuildRESTFunction<typeof publicCreateInventoryItem> &\n    typeof publicCreateInventoryItem\n> = /*#__PURE__*/ createRESTModule(publicCreateInventoryItem);\nexport const bulkCreateInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkCreateInventoryItems> &\n    typeof publicBulkCreateInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateInventoryItems);\nexport const getInventoryItem: MaybeContext<\n  BuildRESTFunction<typeof publicGetInventoryItem> &\n    typeof publicGetInventoryItem\n> = /*#__PURE__*/ createRESTModule(publicGetInventoryItem);\nexport const updateInventoryItem: MaybeContext<\n  BuildRESTFunction<typeof publicUpdateInventoryItem> &\n    typeof publicUpdateInventoryItem\n> = /*#__PURE__*/ createRESTModule(publicUpdateInventoryItem);\nexport const bulkUpdateInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkUpdateInventoryItems> &\n    typeof publicBulkUpdateInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateInventoryItems);\n/** @internal */\nexport const bulkUpsertInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkUpsertInventoryItems> &\n    typeof publicBulkUpsertInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicBulkUpsertInventoryItems);\nexport const bulkUpdateInventoryItemsByFilter: MaybeContext<\n  BuildRESTFunction<typeof publicBulkUpdateInventoryItemsByFilter> &\n    typeof publicBulkUpdateInventoryItemsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateInventoryItemsByFilter);\nexport const deleteInventoryItem: MaybeContext<\n  BuildRESTFunction<typeof publicDeleteInventoryItem> &\n    typeof publicDeleteInventoryItem\n> = /*#__PURE__*/ createRESTModule(publicDeleteInventoryItem);\nexport const bulkDeleteInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkDeleteInventoryItems> &\n    typeof publicBulkDeleteInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteInventoryItems);\n/** @internal */\nexport const bulkDeleteInventoryItemsByFilter: MaybeContext<\n  BuildRESTFunction<typeof publicBulkDeleteInventoryItemsByFilter> &\n    typeof publicBulkDeleteInventoryItemsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteInventoryItemsByFilter);\nexport const searchInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicSearchInventoryItems> &\n    typeof publicSearchInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicSearchInventoryItems);\nexport const bulkDecrementInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkDecrementInventoryItems> &\n    typeof publicBulkDecrementInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicBulkDecrementInventoryItems);\nexport const bulkIncrementInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof publicBulkIncrementInventoryItems> &\n    typeof publicBulkIncrementInventoryItems\n> = /*#__PURE__*/ createRESTModule(publicBulkIncrementInventoryItems);\nexport const bulkDecrementInventoryItemsByVariantAndLocation: MaybeContext<\n  BuildRESTFunction<\n    typeof publicBulkDecrementInventoryItemsByVariantAndLocation\n  > &\n    typeof publicBulkDecrementInventoryItemsByVariantAndLocation\n> = /*#__PURE__*/ createRESTModule(\n  publicBulkDecrementInventoryItemsByVariantAndLocation\n);\nexport const bulkIncrementInventoryItemsByVariantAndLocation: MaybeContext<\n  BuildRESTFunction<\n    typeof publicBulkIncrementInventoryItemsByVariantAndLocation\n  > &\n    typeof publicBulkIncrementInventoryItemsByVariantAndLocation\n> = /*#__PURE__*/ createRESTModule(\n  publicBulkIncrementInventoryItemsByVariantAndLocation\n);\n/** @internal */\nexport const bulkSetOrAdjustInventoryItemsByFilter: MaybeContext<\n  BuildRESTFunction<typeof publicBulkSetOrAdjustInventoryItemsByFilter> &\n    typeof publicBulkSetOrAdjustInventoryItemsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkSetOrAdjustInventoryItemsByFilter);\n/** @internal */\nexport const bulkAdjustInventoryItemsByFilter: MaybeContext<\n  BuildRESTFunction<typeof publicBulkAdjustInventoryItemsByFilter> &\n    typeof publicBulkAdjustInventoryItemsByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkAdjustInventoryItemsByFilter);\n/** @internal */\nexport const bulkCreateInventoryItemsByVariantFilter: MaybeContext<\n  BuildRESTFunction<typeof publicBulkCreateInventoryItemsByVariantFilter> &\n    typeof publicBulkCreateInventoryItemsByVariantFilter\n> = /*#__PURE__*/ createRESTModule(\n  publicBulkCreateInventoryItemsByVariantFilter\n);\nexport const queryInventoryItems: MaybeContext<\n  BuildRESTFunction<typeof customQueryInventoryItems> &\n    typeof customQueryInventoryItems\n> = /*#__PURE__*/ createRESTModule(customQueryInventoryItems);\n/** */\nexport const onInventoryItemCreated: BuildEventDefinition<\n  typeof publicOnInventoryItemCreated\n> &\n  typeof publicOnInventoryItemCreated = createEventModule(\n  publicOnInventoryItemCreated\n);\n/** */\nexport const onInventoryItemDeleted: BuildEventDefinition<\n  typeof publicOnInventoryItemDeleted\n> &\n  typeof publicOnInventoryItemDeleted = createEventModule(\n  publicOnInventoryItemDeleted\n);\n/**\n * Triggered when an inventory item's stock is updated.\n */\nexport const onInventoryItemStockStatusUpdated: BuildEventDefinition<\n  typeof publicOnInventoryItemStockStatusUpdated\n> &\n  typeof publicOnInventoryItemStockStatusUpdated = createEventModule(\n  publicOnInventoryItemStockStatusUpdated\n);\n/** */\nexport const onInventoryItemUpdated: BuildEventDefinition<\n  typeof publicOnInventoryItemUpdated\n> &\n  typeof publicOnInventoryItemUpdated = createEventModule(\n  publicOnInventoryItemUpdated\n);\n/**\n * Triggered when an inventory item is updated.\n */\nexport const onInventoryItemUpdatedWithReason: BuildEventDefinition<\n  typeof publicOnInventoryItemUpdatedWithReason\n> &\n  typeof publicOnInventoryItemUpdatedWithReason = createEventModule(\n  publicOnInventoryItemUpdatedWithReason\n);\n\nexport {\n  AvailabilityStatus,\n  EventType,\n  ReasonType,\n  Mode,\n  SortOrder,\n  SortType,\n  SortDirection,\n  MissingValues,\n  ScalarType,\n  NestedAggregationType,\n  Interval,\n  AggregationType,\n  WebhookIdentityType,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\nexport {\n  InventoryItem,\n  InventoryItemTrackingMethodOneOf,\n  PreorderInfo,\n  Product,\n  Brand,\n  ExtendedFields,\n  InvalidateCache,\n  InvalidateCacheGetByOneOf,\n  App,\n  Page,\n  URI,\n  File,\n  CustomTag,\n  Pages,\n  URIs,\n  BulkInventoryItemAction,\n  CreateInventoryItemRequest,\n  CreateInventoryItemResponse,\n  BulkCreateInventoryItemsRequest,\n  BulkCreateInventoryItemsResponse,\n  V3BulkInventoryItemResult,\n  ItemMetadata,\n  ApplicationError,\n  BulkActionMetadata,\n  GetInventoryItemRequest,\n  GetInventoryItemResponse,\n  UpdateInventoryItemRequest,\n  UpdateInventoryItemResponse,\n  InventoryItemStockStatusUpdatedEvent,\n  InventoryItemUpdatedWithReason,\n  BulkUpdateInventoryItemsRequest,\n  MaskedInventoryItem,\n  BulkUpdateInventoryItemsResponse,\n  BulkUpsertInventoryItemsRequest,\n  BulkUpsertInventoryItemsResponse,\n  BulkUpsertInventoryItemResult,\n  BulkUpdateInventoryItemsByFilterRequest,\n  SearchDetails,\n  BulkUpdateInventoryItemsByFilterResponse,\n  DeleteInventoryItemRequest,\n  DeleteInventoryItemResponse,\n  BulkDeleteInventoryItemsRequest,\n  BulkDeleteInventoryItemsResponse,\n  BulkInventoryItemResult,\n  BulkDeleteInventoryItemsByFilterRequest,\n  BulkDeleteInventoryItemsByFilterResponse,\n  QueryInventoryItemsRequest,\n  QueryV2,\n  QueryV2PagingMethodOneOf,\n  Sorting,\n  Paging,\n  CursorPaging,\n  QueryInventoryItemsResponse,\n  PlatformPagingMetadataV2,\n  CommonCursors,\n  SearchInventoryItemsRequest,\n  CursorSearch,\n  CursorSearchPagingMethodOneOf,\n  Aggregation,\n  AggregationKindOneOf,\n  RangeBucket,\n  IncludeMissingValuesOptions,\n  ValueAggregation,\n  ValueAggregationOptionsOneOf,\n  RangeAggregation,\n  ScalarAggregation,\n  DateHistogramAggregation,\n  NestedAggregationItem,\n  NestedAggregationItemKindOneOf,\n  NestedAggregation,\n  GroupByAggregation,\n  GroupByAggregationKindOneOf,\n  SearchInventoryItemsResponse,\n  CursorPagingMetadata,\n  Cursors,\n  AggregationData,\n  ValueAggregationResult,\n  RangeAggregationResult,\n  NestedAggregationResults,\n  NestedAggregationResultsResultOneOf,\n  ValueResults,\n  RangeResults,\n  AggregationResultsScalarResult,\n  NestedValueAggregationResult,\n  ValueResult,\n  RangeResult,\n  ScalarResult,\n  NestedResultValue,\n  NestedResultValueResultOneOf,\n  Results,\n  DateHistogramResult,\n  GroupByValueResults,\n  DateHistogramResults,\n  NestedResults,\n  AggregationResults,\n  AggregationResultsResultOneOf,\n  SearchInventoryItemsWithOffsetRequest,\n  OffsetSearch,\n  OffsetSearchPagingMethodOneOf,\n  SearchInventoryItemsWithOffsetResponse,\n  PagingMetadata,\n  BulkDecrementInventoryItemsRequest,\n  DecrementDataById,\n  BulkDecrementInventoryItemsResponse,\n  BulkIncrementInventoryItemsRequest,\n  IncrementDataById,\n  BulkIncrementInventoryItemsResponse,\n  BulkDecrementInventoryItemsByVariantAndLocationRequest,\n  DecrementDataByVariantAndLocation,\n  BulkDecrementInventoryItemsByVariantAndLocationResponse,\n  BulkIncrementInventoryItemsByVariantAndLocationRequest,\n  IncrementDataByVariantAndLocation,\n  BulkIncrementInventoryItemsByVariantAndLocationResponse,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  EntityCreatedEvent,\n  RestoreInfo,\n  EntityUpdatedEvent,\n  EntityDeletedEvent,\n  ActionEvent,\n  Empty,\n  RecloneSiteRequest,\n  RecloneSiteResponse,\n  BulkSetOrAdjustInventoryItemsByFilterRequest,\n  AdjustInventoryAction,\n  AdjustInventoryActionActionOneOf,\n  BulkSetOrAdjustInventoryItemsByFilterResponse,\n  BulkAdjustInventoryItemsByFilterRequest,\n  BulkAdjustInventoryItemsByFilterResponse,\n  BulkCreateInventoryItemsByVariantFilterRequest,\n  InventoryCreationData,\n  BulkCreateInventoryItemsByVariantFilterResponse,\n  CatalogRollbackRequested,\n  MessageEnvelope,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  AccountInfo,\n  BaseEventMetadata,\n  EventMetadata,\n  AccountInfoMetadata,\n  InventoryItemCreatedEnvelope,\n  InventoryItemDeletedEnvelope,\n  InventoryItemStockStatusUpdatedEnvelope,\n  InventoryItemUpdatedEnvelope,\n  InventoryItemUpdatedWithReasonEnvelope,\n  BulkCreateInventoryItemsOptions,\n  UpdateInventoryItem,\n  UpdateInventoryItemOptions,\n  BulkUpdateInventoryItemsOptions,\n  BulkUpsertInventoryItemsOptions,\n  BulkUpdateInventoryItemsByFilterOptions,\n  BulkDeleteInventoryItemsByFilterOptions,\n  InventoryItemsQueryResult,\n  InventoryItemsQueryBuilder,\n  InventoryItemQuerySpec,\n  InventoryItemSearchSpec,\n  BulkDecrementInventoryItemsOptions,\n  BulkIncrementInventoryItemsOptions,\n  BulkDecrementInventoryItemsByVariantAndLocationOptions,\n  BulkIncrementInventoryItemsByVariantAndLocationOptions,\n  BulkSetOrAdjustInventoryItemsByFilterOptions,\n  BulkAdjustInventoryItemsByFilterOptions,\n  BulkCreateInventoryItemsByVariantFilterOptions,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\nexport { utils } from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\nexport {\n  AvailabilityStatusWithLiterals,\n  EventTypeWithLiterals,\n  ReasonTypeWithLiterals,\n  ModeWithLiterals,\n  SortOrderWithLiterals,\n  SortTypeWithLiterals,\n  SortDirectionWithLiterals,\n  MissingValuesWithLiterals,\n  ScalarTypeWithLiterals,\n  NestedAggregationTypeWithLiterals,\n  IntervalWithLiterals,\n  AggregationTypeWithLiterals,\n  WebhookIdentityTypeWithLiterals,\n  CreateInventoryItemApplicationErrors,\n  CreateInventoryItemValidationErrors,\n  BulkCreateInventoryItemsApplicationErrors,\n  BulkCreateInventoryItemsValidationErrors,\n  UpdateInventoryItemApplicationErrors,\n  BulkUpdateInventoryItemsApplicationErrors,\n  BulkUpsertInventoryItemsApplicationErrors,\n  BulkUpdateInventoryItemsByFilterApplicationErrors,\n  BulkDecrementInventoryItemsApplicationErrors,\n  BulkIncrementInventoryItemsApplicationErrors,\n  BulkDecrementInventoryItemsByVariantAndLocationApplicationErrors,\n  BulkIncrementInventoryItemsByVariantAndLocationApplicationErrors,\n  BulkSetOrAdjustInventoryItemsByFilterApplicationErrors,\n  BulkAdjustInventoryItemsByFilterApplicationErrors,\n  CommonQueryWithEntityContext,\n  InventoryItemQuery,\n  CommonSearchWithEntityContext,\n  InventoryItemSearch,\n} from './stores-catalog-v3-inventory-item-inventory-items-v-3.universal.js';\n"],"mappings":"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","names":["renameKeysFromRESTResponseToSDKResponse","transformRESTTimestampToSDKTimestamp","transformPaths","payload","transformPaths","AvailabilityStatus","EventType","ReasonType","Mode","SortOrder","SortType","SortDirection","MissingValues","ScalarType","NestedAggregationType","Interval","AggregationType","WebhookIdentityType","createInventoryItem","bulkCreateInventoryItems","getInventoryItem","updateInventoryItem","bulkUpdateInventoryItems","bulkUpsertInventoryItems","bulkUpdateInventoryItemsByFilter","deleteInventoryItem","bulkDeleteInventoryItems","bulkDeleteInventoryItemsByFilter","queryInventoryItems","searchInventoryItems","bulkDecrementInventoryItems","bulkIncrementInventoryItems","bulkDecrementInventoryItemsByVariantAndLocation","bulkIncrementInventoryItemsByVariantAndLocation","bulkSetOrAdjustInventoryItemsByFilter","bulkAdjustInventoryItemsByFilter","bulkCreateInventoryItemsByVariantFilter","createInventoryItem","bulkCreateInventoryItems","getInventoryItem","updateInventoryItem","bulkUpdateInventoryItems","bulkUpsertInventoryItems","bulkUpdateInventoryItemsByFilter","deleteInventoryItem","bulkDeleteInventoryItems","bulkDeleteInventoryItemsByFilter","queryInventoryItems","typedQueryInventoryItems","searchInventoryItems","bulkDecrementInventoryItems","bulkIncrementInventoryItems","bulkDecrementInventoryItemsByVariantAndLocation","bulkIncrementInventoryItemsByVariantAndLocation","bulkSetOrAdjustInventoryItemsByFilter","bulkAdjustInventoryItemsByFilter","bulkCreateInventoryItemsByVariantFilter","renameKeysFromRESTResponseToSDKResponse","transformPaths","transformRESTTimestampToSDKTimestamp","queryInventoryItems","typedQueryInventoryItems","createInventoryItem","bulkCreateInventoryItems","getInventoryItem","updateInventoryItem","bulkUpdateInventoryItems","bulkUpsertInventoryItems","bulkUpdateInventoryItemsByFilter","deleteInventoryItem","bulkDeleteInventoryItems","bulkDeleteInventoryItemsByFilter","searchInventoryItems","bulkDecrementInventoryItems","bulkIncrementInventoryItems","bulkDecrementInventoryItemsByVariantAndLocation","bulkIncrementInventoryItemsByVariantAndLocation","bulkSetOrAdjustInventoryItemsByFilter","bulkAdjustInventoryItemsByFilter","bulkCreateInventoryItemsByVariantFilter","onInventoryItemCreated","onInventoryItemDeleted","onInventoryItemStockStatusUpdated","onInventoryItemUpdated","onInventoryItemUpdatedWithReason"]}