{"version":3,"sources":["../../src/reviews-v1-review-reviews.public.ts","../../src/reviews-v1-review-reviews.universal.ts","../../src/reviews-v1-review-reviews.http.ts","../../src/reviews-v1-review-reviews.context.ts"],"sourcesContent":["import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { transformRESTVideoV2ToSDKVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n  BulkCreateReviewOptions,\n  BulkCreateReviewResponse,\n  BulkDeleteReviewsOptions,\n  BulkDeleteReviewsResponse,\n  BulkUpdateModerationStatusOptions,\n  BulkUpdateModerationStatusResponse,\n  CountReviewsApplicationErrors,\n  CountReviewsOptions,\n  CountReviewsResponse,\n  DeleteReviewResponse,\n  GetReviewOptions,\n  QueryReviewsOptions,\n  QueryReviewsResponse,\n  RemoveReplyResponse,\n  Review,\n  ReviewCreatedEnvelope,\n  ReviewDeletedEnvelope,\n  ReviewModerationStatusChangedEnvelope,\n  ReviewPublishedEnvelope,\n  ReviewQuery,\n  ReviewUpdatedEnvelope,\n  ReviewsQueryBuilder,\n  SetReplyResponse,\n  UpdateModerationStatusOptions,\n  UpdateModerationStatusResponse,\n  UpdateReview,\n  bulkCreateReview as universalBulkCreateReview,\n  bulkDeleteReviews as universalBulkDeleteReviews,\n  bulkUpdateModerationStatus as universalBulkUpdateModerationStatus,\n  countReviews as universalCountReviews,\n  createReview as universalCreateReview,\n  deleteReview as universalDeleteReview,\n  getReview as universalGetReview,\n  queryReviews as universalQueryReviews,\n  removeReply as universalRemoveReply,\n  setReply as universalSetReply,\n  typedQueryReviews as universalTypedQueryReviews,\n  updateModerationStatus as universalUpdateModerationStatus,\n  updateReview as universalUpdateReview,\n} from './reviews-v1-review-reviews.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/reviews' };\n\nexport function getReview(httpClient: HttpClient): GetReviewSignature {\n  return (reviewId: string, options?: GetReviewOptions) =>\n    universalGetReview(\n      reviewId,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface GetReviewSignature {\n  /**\n   * Retrieves a review.\n   *\n   * By default, unpublished reviews aren't returned.\n   * To retrieve an unpublished review, pass `returnPrivateReviews` as `true`.\n   * @param - Review ID.\n   * @param - Information about the reviews to retrieve.\n   * @returns Review.\n   */\n  (reviewId: string, options?: GetReviewOptions): Promise<\n    NonNullablePaths<\n      Review,\n      | `namespace`\n      | `entityId`\n      | `_id`\n      | `content.media`\n      | `content.rating`\n      | `reply.message`\n      | `foundHelpful`\n      | `foundUnhelpful`\n      | `helpfulness`\n      | `moderation.moderationStatus`\n      | `moderation.manuallyChanged`\n      | `verified`\n      | `origin.type`\n      | `publishCount`,\n      3\n    >\n  >;\n}\n\nexport function createReview(httpClient: HttpClient): CreateReviewSignature {\n  return (\n    review: NonNullablePaths<\n      Review,\n      `content` | `content.rating` | `entityId` | `namespace`,\n      3\n    >\n  ) =>\n    universalCreateReview(\n      review,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CreateReviewSignature {\n  /**\n   * Creates a new review using a contact ID.\n   *\n   * This method requires a contact ID, see the [Contacts API](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/introduction).\n   *\n   * After a review is created, it may require moderation, see the introduction for the Reviews API for more information about moderation.\n   *\n   * If the `authorName` field is empty, and the review author:\n   * - is a site member, their member name is used.\n   * - isn't a site member, the field is set to `null`.\n   * @param - Review data.\n   * @returns Created review.\n   */\n  (\n    review: NonNullablePaths<\n      Review,\n      `content` | `content.rating` | `entityId` | `namespace`,\n      3\n    >\n  ): Promise<\n    NonNullablePaths<\n      Review,\n      | `namespace`\n      | `entityId`\n      | `_id`\n      | `content.media`\n      | `content.rating`\n      | `reply.message`\n      | `foundHelpful`\n      | `foundUnhelpful`\n      | `helpfulness`\n      | `moderation.moderationStatus`\n      | `moderation.manuallyChanged`\n      | `verified`\n      | `origin.type`\n      | `publishCount`,\n      3\n    >\n  >;\n}\n\nexport function bulkCreateReview(\n  httpClient: HttpClient\n): BulkCreateReviewSignature {\n  return (\n    reviews: NonNullablePaths<\n      Review,\n      `author` | `author.contactId` | `content` | `entityId` | `namespace`,\n      3\n    >[],\n    options?: BulkCreateReviewOptions\n  ) =>\n    universalBulkCreateReview(\n      reviews,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkCreateReviewSignature {\n  /**\n   * Creates multiple reviews.\n   *\n   * If the `authorName` field is empty, and the review author:\n   * - is a site member, their member name is used.\n   * - isn't a site member, the field is set to `null`.\n   *\n   * To create a single review, call Create Review.\n   * @param - Reviews to create.\n   */\n  (\n    reviews: NonNullablePaths<\n      Review,\n      `author` | `author.contactId` | `content` | `entityId` | `namespace`,\n      3\n    >[],\n    options?: BulkCreateReviewOptions\n  ): Promise<\n    NonNullablePaths<\n      BulkCreateReviewResponse,\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}.review.namespace`\n      | `results.${number}.review.entityId`\n      | `results.${number}.review._id`\n      | `results.${number}.review.content.rating`\n      | `results.${number}.review.reply.message`\n      | `results.${number}.review.foundHelpful`\n      | `results.${number}.review.foundUnhelpful`\n      | `results.${number}.review.helpfulness`\n      | `results.${number}.review.moderation.moderationStatus`\n      | `results.${number}.review.moderation.manuallyChanged`\n      | `results.${number}.review.verified`\n      | `results.${number}.review.origin.type`\n      | `results.${number}.review.publishCount`\n      | `bulkActionMetadata.totalSuccesses`\n      | `bulkActionMetadata.totalFailures`\n      | `bulkActionMetadata.undetailedFailures`,\n      6\n    >\n  >;\n}\n\nexport function updateReview(httpClient: HttpClient): UpdateReviewSignature {\n  return (_id: string, review: NonNullablePaths<UpdateReview, `revision`, 2>) =>\n    universalUpdateReview(\n      _id,\n      review,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface UpdateReviewSignature {\n  /**\n   * Updates a review.\n   *\n   * Each time the review is updated, `revision` increments by 1.\n   * The existing `revision` must be included when updating the review.\n   * This ensures you're working with the latest review information, and it prevents unintended overwrites.\n   * @param - Review ID.\n   * @param - Options to use when updating a review.\n   * @returns Updated review data.\n   */\n  (_id: string, review: NonNullablePaths<UpdateReview, `revision`, 2>): Promise<\n    NonNullablePaths<\n      Review,\n      | `namespace`\n      | `entityId`\n      | `_id`\n      | `content.media`\n      | `content.rating`\n      | `reply.message`\n      | `foundHelpful`\n      | `foundUnhelpful`\n      | `helpfulness`\n      | `moderation.moderationStatus`\n      | `moderation.manuallyChanged`\n      | `verified`\n      | `origin.type`\n      | `publishCount`,\n      3\n    >\n  >;\n}\n\nexport function deleteReview(httpClient: HttpClient): DeleteReviewSignature {\n  return (reviewId: string) =>\n    universalDeleteReview(\n      reviewId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface DeleteReviewSignature {\n  /**\n   * Deletes a review.\n   * @param - Review ID.\n   */\n  (reviewId: string): Promise<\n    NonNullablePaths<\n      DeleteReviewResponse,\n      | `review.namespace`\n      | `review.entityId`\n      | `review._id`\n      | `review.content.media`\n      | `review.content.rating`\n      | `review.reply.message`\n      | `review.foundHelpful`\n      | `review.foundUnhelpful`\n      | `review.helpfulness`\n      | `review.moderation.moderationStatus`\n      | `review.moderation.manuallyChanged`\n      | `review.verified`\n      | `review.origin.type`\n      | `review.publishCount`,\n      4\n    >\n  >;\n}\n\nexport function bulkDeleteReviews(\n  httpClient: HttpClient\n): BulkDeleteReviewsSignature {\n  return (options?: BulkDeleteReviewsOptions) =>\n    universalBulkDeleteReviews(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkDeleteReviewsSignature {\n  /**\n   * Deletes multiple reviews.\n   *\n   * All reviews that meet the specified `filter` criteria are deleted.\n   *\n   * To delete a single review, call Delete Review.\n   * @param - Information about the reviews to delete.\n   */\n  (options?: BulkDeleteReviewsOptions): Promise<\n    NonNullablePaths<BulkDeleteReviewsResponse, `jobId`, 2>\n  >;\n}\n\nexport function queryReviews(httpClient: HttpClient): QueryReviewsSignature {\n  return (options?: QueryReviewsOptions) =>\n    universalQueryReviews(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface QueryReviewsSignature {\n  /**\n   * Creates a query to retrieve a list of reviews.\n   *\n   *\n   * The `queryReviews()` method builds a query to retrieve a list of reviews and returns a `ReviewsQueryBuilder` object.\n   *\n   * The returned object contains the query definition, which is typically used to run the query using the `find()` method.\n   *\n   * You can refine the query by chaining `ReviewsQueryBuilder` methods onto the query.\n   *\n   * `ReviewsQueryBuilder` methods enable you to sort, filter,\n   * and control the results that `queryReviews()` returns.\n   *\n   * The `queryReviews()` method runs with the following defaults, which you can override:\n   *\n   * - `ascending(\"_createdDate\")`\n   * - `limit(100)`\n   *\n   * The methods that are chained to `queryReviews()` are applied in the order they're called. For example, if you apply `descending(\"_createdDate\")` and then `descending(\"content.rating\")`, the results are sorted first by the `_createdDate`, and then, if there are multiple results with the same `_createdDate`, the items are sorted by `content.rating`.\n   * @param - Information about the reviews to retrieve.\n   */\n  (options?: QueryReviewsOptions): ReviewsQueryBuilder;\n}\n\nexport function typedQueryReviews(\n  httpClient: HttpClient\n): TypedQueryReviewsSignature {\n  return (query: ReviewQuery, options?: QueryReviewsOptions) =>\n    universalTypedQueryReviews(\n      query,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface TypedQueryReviewsSignature {\n  /** */\n  (query: ReviewQuery, options?: QueryReviewsOptions): Promise<\n    NonNullablePaths<\n      QueryReviewsResponse,\n      | `reviews`\n      | `reviews.${number}.namespace`\n      | `reviews.${number}.entityId`\n      | `reviews.${number}._id`\n      | `reviews.${number}.content.rating`\n      | `reviews.${number}.reply.message`\n      | `reviews.${number}.foundHelpful`\n      | `reviews.${number}.foundUnhelpful`\n      | `reviews.${number}.helpfulness`\n      | `reviews.${number}.moderation.moderationStatus`\n      | `reviews.${number}.moderation.manuallyChanged`\n      | `reviews.${number}.verified`\n      | `reviews.${number}.origin.type`\n      | `reviews.${number}.publishCount`,\n      5\n    >\n  >;\n}\n\nexport function setReply(httpClient: HttpClient): SetReplySignature {\n  return (reviewId: string, message: string) =>\n    universalSetReply(\n      reviewId,\n      message,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface SetReplySignature {\n  /**\n   * Sets a reply on a review.\n   *\n   * Only 1 reply can be left on a review. Calling Set Reply when a reply\n   * already exists overwrites the existing reply.\n   * @param - Review ID.\n   * @param - Response to review author.\n   */\n  (reviewId: string, message: string): Promise<\n    NonNullablePaths<\n      SetReplyResponse,\n      | `review.namespace`\n      | `review.entityId`\n      | `review._id`\n      | `review.content.media`\n      | `review.content.rating`\n      | `review.reply.message`\n      | `review.foundHelpful`\n      | `review.foundUnhelpful`\n      | `review.helpfulness`\n      | `review.moderation.moderationStatus`\n      | `review.moderation.manuallyChanged`\n      | `review.verified`\n      | `review.origin.type`\n      | `review.publishCount`,\n      4\n    >\n  >;\n}\n\nexport function removeReply(httpClient: HttpClient): RemoveReplySignature {\n  return (reviewId: string) =>\n    universalRemoveReply(\n      reviewId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface RemoveReplySignature {\n  /**\n   * Removes reply from a review.\n   * @param - ID of review to remove the reply for.\n   */\n  (reviewId: string): Promise<\n    NonNullablePaths<\n      RemoveReplyResponse,\n      | `review.namespace`\n      | `review.entityId`\n      | `review._id`\n      | `review.content.media`\n      | `review.content.rating`\n      | `review.reply.message`\n      | `review.foundHelpful`\n      | `review.foundUnhelpful`\n      | `review.helpfulness`\n      | `review.moderation.moderationStatus`\n      | `review.moderation.manuallyChanged`\n      | `review.verified`\n      | `review.origin.type`\n      | `review.publishCount`,\n      4\n    >\n  >;\n}\n\nexport function updateModerationStatus(\n  httpClient: HttpClient\n): UpdateModerationStatusSignature {\n  return (reviewId: string, options?: UpdateModerationStatusOptions) =>\n    universalUpdateModerationStatus(\n      reviewId,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface UpdateModerationStatusSignature {\n  /**\n   * Updates the review moderation status.\n   * @param - ID of the review to moderate.\n   */\n  (reviewId: string, options?: UpdateModerationStatusOptions): Promise<\n    NonNullablePaths<\n      UpdateModerationStatusResponse,\n      | `review.namespace`\n      | `review.entityId`\n      | `review._id`\n      | `review.content.media`\n      | `review.content.rating`\n      | `review.reply.message`\n      | `review.foundHelpful`\n      | `review.foundUnhelpful`\n      | `review.helpfulness`\n      | `review.moderation.moderationStatus`\n      | `review.moderation.manuallyChanged`\n      | `review.verified`\n      | `review.origin.type`\n      | `review.publishCount`,\n      4\n    >\n  >;\n}\n\nexport function bulkUpdateModerationStatus(\n  httpClient: HttpClient\n): BulkUpdateModerationStatusSignature {\n  return (options?: BulkUpdateModerationStatusOptions) =>\n    universalBulkUpdateModerationStatus(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface BulkUpdateModerationStatusSignature {\n  /**\n   * Updates moderation status of multiple reviews. All reviews are updated to the same moderation status.\n   *\n   * To update moderation status of a single review, call Update Moderation Status.\n   */\n  (options?: BulkUpdateModerationStatusOptions): Promise<\n    NonNullablePaths<BulkUpdateModerationStatusResponse, `jobId`, 2>\n  >;\n}\n\nexport function countReviews(httpClient: HttpClient): CountReviewsSignature {\n  return (options?: CountReviewsOptions) =>\n    universalCountReviews(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CountReviewsSignature {\n  /**\n   * Retrieves the number of reviews that match a specified filter.\n   *\n   * If a filter isn't passed in the request, the method returns the count of all reviews.\n   */\n  (options?: CountReviewsOptions): Promise<\n    NonNullablePaths<CountReviewsResponse, `count`, 2> & {\n      __applicationErrorsType?: CountReviewsApplicationErrors;\n    }\n  >;\n}\n\nexport const onReviewCreated = EventDefinition(\n  'wix.reviews.v1.review_created',\n  true,\n  (event: ReviewCreatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            { path: 'entity.reviewDate' },\n            { path: 'entity.reply.createdDate' },\n            { path: 'entity.reply.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [{ path: 'entity.relevanceScore' }],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'entity.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'entity.content.media.video' }],\n        },\n      ])\n    )\n)<ReviewCreatedEnvelope>();\nexport const onReviewDeleted = EventDefinition(\n  'wix.reviews.v1.review_deleted',\n  true,\n  (event: ReviewDeletedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            { path: 'entity.reviewDate' },\n            { path: 'entity.reply.createdDate' },\n            { path: 'entity.reply.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [{ path: 'entity.relevanceScore' }],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'entity.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'entity.content.media.video' }],\n        },\n      ])\n    )\n)<ReviewDeletedEnvelope>();\nexport const onReviewModerationStatusChanged = EventDefinition(\n  'wix.reviews.v1.review_moderation_status_changed',\n  true,\n  (event: ReviewModerationStatusChangedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'data.review.createdDate' },\n            { path: 'data.review.updatedDate' },\n            { path: 'data.review.reviewDate' },\n            { path: 'data.review.reply.createdDate' },\n            { path: 'data.review.reply.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [{ path: 'data.review.relevanceScore' }],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'data.review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'data.review.content.media.video' }],\n        },\n      ])\n    )\n)<ReviewModerationStatusChangedEnvelope>();\nexport const onReviewPublished = EventDefinition(\n  'wix.reviews.v1.review_review_published',\n  true,\n  (event: ReviewPublishedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'data.review.createdDate' },\n            { path: 'data.review.updatedDate' },\n            { path: 'data.review.reviewDate' },\n            { path: 'data.review.reply.createdDate' },\n            { path: 'data.review.reply.updatedDate' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [{ path: 'data.review.relevanceScore' }],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'data.review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'data.review.content.media.video' }],\n        },\n      ])\n    )\n)<ReviewPublishedEnvelope>();\nexport const onReviewUpdated = EventDefinition(\n  'wix.reviews.v1.review_updated',\n  true,\n  (event: ReviewUpdatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.createdDate' },\n            { path: 'entity.updatedDate' },\n            { path: 'entity.reviewDate' },\n            { path: 'entity.reply.createdDate' },\n            { path: 'entity.reply.updatedDate' },\n            { path: 'metadata.eventTime' },\n            { path: 'modifiedFields.createdDate' },\n            { path: 'modifiedFields.updatedDate' },\n            { path: 'modifiedFields.reviewDate' },\n            { path: 'modifiedFields.reply.createdDate' },\n            { path: 'modifiedFields.reply.updatedDate' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [\n            { path: 'entity.relevanceScore' },\n            { path: 'modifiedFields.relevanceScore' },\n          ],\n        },\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'entity.content.media.image' },\n            { path: 'modifiedFields.content.media.image' },\n          ],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [\n            { path: 'entity.content.media.video' },\n            { path: 'modifiedFields.content.media.video' },\n          ],\n        },\n      ])\n    )\n)<ReviewUpdatedEnvelope>();\n\nexport {\n  AccountInfo,\n  AccountInfoMetadata,\n  ActionEvent,\n  ApplicationError,\n  Author,\n  AuthorType,\n  BaseEventMetadata,\n  BulkActionMetadata,\n  BulkCreateReviewOptions,\n  BulkCreateReviewRequest,\n  BulkCreateReviewResponse,\n  BulkDeleteReviewsOptions,\n  BulkDeleteReviewsRequest,\n  BulkDeleteReviewsResponse,\n  BulkReviewResult,\n  BulkUpdateModerationStatusOptions,\n  BulkUpdateModerationStatusRequest,\n  BulkUpdateModerationStatusResponse,\n  CountReviewsOptions,\n  CountReviewsRequest,\n  CountReviewsResponse,\n  CreateReviewAndContactRequest,\n  CreateReviewRequest,\n  CreateReviewResponse,\n  CursorPaging,\n  Cursors,\n  DeleteReviewRequest,\n  DeleteReviewResponse,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  Empty,\n  EntityCreatedEvent,\n  EntityDeletedEvent,\n  EntityUpdatedEvent,\n  EventMetadata,\n  GetReviewOptions,\n  GetReviewRequest,\n  GetReviewResponse,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  ItemMetadata,\n  Media,\n  MediaMediaOneOf,\n  MessageEnvelope,\n  Moderation,\n  ModerationModerationStatus,\n  ModerationStatus,\n  ModerationStatusChanged,\n  Origin,\n  OriginType,\n  PagingMetadataV2,\n  QueryReviewsOptions,\n  QueryReviewsRequest,\n  QueryReviewsResponse,\n  QueryV2,\n  RemoveReplyRequest,\n  RemoveReplyResponse,\n  Reply,\n  RestoreInfo,\n  Review,\n  ReviewContent,\n  ReviewCreatedEnvelope,\n  ReviewDeletedEnvelope,\n  ReviewModerationStatusChangedEnvelope,\n  ReviewPublished,\n  ReviewPublishedEnvelope,\n  ReviewQuerySpec,\n  ReviewRequestOptions,\n  ReviewUpdatedEnvelope,\n  ReviewsQueryBuilder,\n  ReviewsQueryResult,\n  SetReplyRequest,\n  SetReplyResponse,\n  SortOrder,\n  Sorting,\n  Source,\n  SourceSourceTypeOptionsOneOf,\n  SourceType,\n  UpdateModerationStatusOptions,\n  UpdateModerationStatusRequest,\n  UpdateModerationStatusRequestModerationStatus,\n  UpdateModerationStatusResponse,\n  UpdateReview,\n  UpdateReviewContentRequest,\n  UpdateReviewContentResponse,\n  UpdateReviewRequest,\n  UpdateReviewResponse,\n  VideoResolution,\n  WebhookIdentityType,\n  utils,\n} from './reviews-v1-review-reviews.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  NonNullablePaths,\n  QuerySpec,\n  Query as QuerySdkType,\n} from '@wix/sdk-types';\nimport * as ambassadorWixReviewsV1Review from './reviews-v1-review-reviews.http.js';\n// @ts-ignore\nimport { transformSDKImageToRESTImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformRESTImageToSDKImage } from '@wix/sdk-runtime/transformations/image';\nimport { transformSDKVideoV2ToRESTVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { transformRESTVideoV2ToSDKVideoV2 } from '@wix/sdk-runtime/transformations/video-v2';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\n\n/**\n * A Review object includes all of the details related to the review of an entity.\n * An entity is a specific resource to review, for example, a store product.\n * You can manage existing reviews, create new reviews, and retrieve reviews.\n * Read more about [Adding and Setting Up Wix Reviews](https://support.wix.com/en/article/wix-stores-adding-and-setting-up-wix-reviews).\n */\nexport interface Review {\n  /**\n   * Review namespace.\n   *\n   * Supported values:\n   * + Wix Stores: `stores`\n   *\n   * Currently, only Wix Stores is fully integrated with the Wix Reviews app.\n   */\n  namespace?: string;\n  /**\n   * ID of the entity to review. For example, a Wix Stores product ID.\n   * @maxLength 36\n   */\n  entityId?: string;\n  /**\n   * Review ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string;\n  /** Review content. */\n  content?: ReviewContent;\n  /**\n   * Date and time the review was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the review was updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n  /** Author of the review. */\n  author?: Author;\n  /**\n   * Reply to the review.\n   * @readonly\n   */\n  reply?: Reply;\n  /**\n   * Number of site visitors who found the review helpful.\n   * @readonly\n   */\n  foundHelpful?: number;\n  /**\n   * Number of site visitors who found the review unhelpful.\n   * @readonly\n   */\n  foundUnhelpful?: number;\n  /**\n   * Helpfulness score.\n   *\n   * Calculated by subtracting `foundUnhelpful` from `foundHelpful`.\n   * @readonly\n   */\n  helpfulness?: number;\n  /**\n   * Moderation status of the review.\n   * @readonly\n   */\n  moderation?: Moderation;\n  /**\n   * Revision number, which increments by 1 each time the review is updated.\n   * To prevent conflicting changes,\n   * the current `revision` must be passed when updating the review.\n   * Ignored when creating a review.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * Whether the review has been verified.\n   * @readonly\n   */\n  verified?: boolean;\n  /**\n   * Origin of a review.\n   * @readonly\n   */\n  origin?: Origin;\n  /**\n   * Date and time when the review was written.\n   * This should match `createdDate`, except for reviews imported from another system.\n   */\n  reviewDate?: Date | null;\n  /**\n   * Platform-calculated score of review's relevance to the item.\n   * Used to sort reviews by relevance.\n   * @readonly\n   */\n  relevanceScore?: number | null;\n  /**\n   * Number of times a review has been published.\n   * @readonly\n   */\n  publishCount?: number;\n  /**\n   * Source of a review.\n   * @internal\n   */\n  source?: Source;\n}\n\n/** The review content. */\nexport interface ReviewContent {\n  /**\n   * Review title.\n   * @maxLength 3000\n   */\n  title?: string | null;\n  /**\n   * Review body.\n   *\n   * Max: 3,000 characters\n   * @maxLength 3000\n   */\n  body?: string | null;\n  /**\n   * List of media items associated with the review.\n   *\n   * Max: 10 items\n   * @maxSize 10\n   */\n  media?: Media[];\n  /**\n   * Rating of the review.\n   *\n   * Min: `1` <br />\n   * Max: `5`\n   */\n  rating?: number;\n}\n\n/** Media item associated with the review. */\nexport interface Media extends MediaMediaOneOf {\n  /** Image media item. */\n  image?: string;\n  /** Video media item. */\n  video?: string;\n}\n\n/** @oneof */\nexport interface MediaMediaOneOf {\n  /** Image media item. */\n  image?: string;\n  /** Video media item. */\n  video?: string;\n}\n\nexport interface VideoResolution {\n  /**\n   * Video URL.\n   * @readonly\n   */\n  url?: string;\n  /**\n   * Video height.\n   * @readonly\n   */\n  height?: number;\n  /**\n   * Video width.\n   * @readonly\n   */\n  width?: number;\n  /**\n   * Video thumbnail.\n   * @readonly\n   */\n  poster?: string;\n  /**\n   * Video format for example, mp4, hls.\n   * @readonly\n   */\n  format?: string;\n}\n\n/** Review author. */\nexport interface Author {\n  /**\n   * Contact ID of the author.\n   * @format GUID\n   * @immutable\n   */\n  contactId?: string | null;\n  /**\n   * Display name of the author.\n   * @maxLength 100\n   */\n  authorName?: string | null;\n}\n\n/** Supported types of review author. */\nexport enum AuthorType {\n  UNKNOWN = 'UNKNOWN',\n  MEMBER = 'MEMBER',\n  VISITOR = 'VISITOR',\n}\n\n/** @enumType */\nexport type AuthorTypeWithLiterals =\n  | AuthorType\n  | 'UNKNOWN'\n  | 'MEMBER'\n  | 'VISITOR';\n\n/** Reply to the review. */\nexport interface Reply {\n  /**\n   * Reply content.\n   * @maxLength 1000\n   */\n  message?: string;\n  /**\n   * Date and time the reply was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the reply was updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n}\n\n/** Moderation status of the review. */\nexport interface Moderation {\n  moderationStatus?: ModerationModerationStatusWithLiterals;\n  /**\n   * Indicates whether a moderator manually changed the `moderationStatus` of the review.\n   *\n   * If the `moderationStatus` changed automatically because the review\n   * passed the moderation rules or if moderation is turned off, this field is set to `false`.\n   * @readonly\n   */\n  manuallyChanged?: boolean;\n}\n\n/** Supported states of the review. */\nexport enum ModerationModerationStatus {\n  /** Unknown moderation status. */\n  UNKNOWN = 'UNKNOWN',\n  /** The review is approved and published. */\n  APPROVED = 'APPROVED',\n  /** The review is pending moderation. Moderation can be applied in the Wix user's [dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Freviews/pending). */\n  IN_MODERATION = 'IN_MODERATION',\n  /** The review is rejected and not visible on the site. */\n  REJECTED = 'REJECTED',\n  /** Initial status of the review before the moderation process. */\n  SUBMITTED = 'SUBMITTED',\n}\n\n/** @enumType */\nexport type ModerationModerationStatusWithLiterals =\n  | ModerationModerationStatus\n  | 'UNKNOWN'\n  | 'APPROVED'\n  | 'IN_MODERATION'\n  | 'REJECTED'\n  | 'SUBMITTED';\n\nexport interface Origin {\n  /** Origin type. */\n  type?: OriginTypeWithLiterals;\n  /**\n   * The app ID of the origin for the review.\n   * Only available when the `origin.type` is `\"APP\"`.\n   */\n  appId?: string | null;\n}\n\n/** Supported types of review origin. */\nexport enum OriginType {\n  /** Unknown origin type. */\n  UNKNOWN = 'UNKNOWN',\n  /** Review was created directly by members or site visitors. */\n  ORGANIC = 'ORGANIC',\n  /** Review was created through an app. Includes reviews created through an app even if the author is a member or site visitor. */\n  APP = 'APP',\n}\n\n/** @enumType */\nexport type OriginTypeWithLiterals = OriginType | 'UNKNOWN' | 'ORGANIC' | 'APP';\n\nexport interface Source extends SourceSourceTypeOptionsOneOf {\n  /**\n   * Only available if `source.type` is `\"REVIEW_REQUEST\"`.\n   * See the [Review Requests API](https://dev.wix.com/docs/rest/crm/community/reviews/review-requests/introduction) for more information.\n   */\n  reviewRequestOptions?: ReviewRequestOptions;\n  /** Type of review source. */\n  type?: SourceTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface SourceSourceTypeOptionsOneOf {\n  /**\n   * Only available if `source.type` is `\"REVIEW_REQUEST\"`.\n   * See the [Review Requests API](https://dev.wix.com/docs/rest/crm/community/reviews/review-requests/introduction) for more information.\n   */\n  reviewRequestOptions?: ReviewRequestOptions;\n}\n\nexport enum SourceType {\n  /**\n   * Review was created from a review request.\n   * See the [Review Requests API](https://dev.wix.com/docs/rest/crm/community/reviews/review-requests/introduction) for more information.\n   */\n  REVIEW_REQUEST = 'REVIEW_REQUEST',\n}\n\n/** @enumType */\nexport type SourceTypeWithLiterals = SourceType | 'REVIEW_REQUEST';\n\nexport interface ReviewRequestOptions {\n  /** Review request ID. */\n  _id?: string | null;\n}\n\n/** Triggered when a review's moderation status is set to `APPROVED`. */\nexport interface ReviewPublished {\n  /** Review entity */\n  review?: Review;\n}\n\n/** Triggered when a review's moderation status is changed or a review is created. */\nexport interface ModerationStatusChanged {\n  /** Review entity. */\n  review?: Review;\n  /**\n   * The previous moderation status of the review.\n   * - `APPROVED`: The review is approved and published.\n   * - `IN_MODERATION`: The review is pending moderation. Moderation can be applied in the Wix user's [dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Freviews/pending).\n   * - `REJECTED`: The review is rejected and not visible in the site.\n   * - `SUBMITTED`: Initial status of the review before the moderation process.\n   */\n  previousModerationStatus?: ModerationModerationStatusWithLiterals;\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 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\nexport interface GetReviewRequest {\n  /**\n   * Review ID.\n   * @format GUID\n   */\n  reviewId: string;\n  /**\n   * Whether to return unpublished reviews.\n   *\n   * Default: `false`\n   */\n  returnPrivateReviews?: boolean;\n}\n\nexport interface GetReviewResponse {\n  /** Review. */\n  review?: Review;\n}\n\nexport interface CreateReviewAndContactRequest {\n  /**\n   * Namespace where the review is created.\n   * @maxLength 36\n   */\n  namespace?: string;\n  /**\n   * ID of the entity to review.\n   * @maxLength 36\n   */\n  entityId?: string;\n  /** Name of the review author. Displayed as part of the review. Required for 3rd-party apps. */\n  name?: string | null;\n  /**\n   * Email address of the review author. Required for 3rd-party apps.\n   * @format EMAIL\n   */\n  email?: string | null;\n  /** Review content. */\n  content?: ReviewContent;\n}\n\nexport interface CreateReviewResponse {\n  /** Created review. */\n  review?: Review;\n}\n\nexport interface CreateReviewRequest {\n  /** Review data. */\n  review: Review;\n}\n\nexport interface BulkCreateReviewRequest {\n  /**\n   * Reviews to create.\n   * @minSize 1\n   * @maxSize 100\n   */\n  reviews: Review[];\n  /** Whether to return the created entities. */\n  returnEntity?: boolean;\n}\n\nexport interface BulkCreateReviewResponse {\n  /**\n   * The created reviews.\n   * Only returned if the `returnEntity` field is value is `true`.\n   */\n  results?: BulkReviewResult[];\n  /** Bulk action metadata. */\n  bulkActionMetadata?: BulkActionMetadata;\n}\n\nexport interface BulkReviewResult {\n  /** ItemMetadata */\n  itemMetadata?: ItemMetadata;\n  /** New Reviews */\n  review?: Review;\n}\n\nexport interface ItemMetadata {\n  /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */\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 UpdateReviewContentRequest {\n  /**\n   * Review ID.\n   * @format GUID\n   */\n  reviewId?: string;\n  /** Review content. */\n  content?: ReviewContent;\n  /**\n   * Fieldmask for update.\n   * Supported fields: content.title, content.body, content.media, content.rating\n   */\n  fieldMask?: string[];\n}\n\nexport interface UpdateReviewContentResponse {\n  /** Updated review data. */\n  review?: Review;\n}\n\nexport interface UpdateReviewRequest {\n  /** Review to update. */\n  review?: Review;\n}\n\nexport interface UpdateReviewResponse {\n  /** Updated review data. */\n  review?: Review;\n}\n\nexport interface DeleteReviewRequest {\n  /**\n   * Review ID.\n   * @format GUID\n   */\n  reviewId: string;\n}\n\nexport interface DeleteReviewResponse {\n  /** Review entity. */\n  review?: Review;\n}\n\nexport interface BulkDeleteReviewsRequest {\n  /**\n   * Filter object.\n   *\n   */\n  filter?: Record<string, any> | null;\n}\n\nexport interface BulkDeleteReviewsResponse {\n  /** Bulk job ID. */\n  jobId?: string;\n}\n\nexport interface QueryReviewsRequest {\n  /** Review query. */\n  query?: QueryV2;\n  /**\n   * Whether to return private (unpublished) reviews.\n   *\n   * Default: `false`\n   */\n  returnPrivateReviews?: boolean;\n}\n\nexport interface QueryV2 {\n  /** Filter object. */\n  filter?: Record<string, any> | null;\n  /** Sorting options. */\n  sort?: Sorting[];\n  /** Cursor paging options. */\n  cursorPaging?: CursorPaging;\n}\n\n/** Sort options. */\nexport interface Sorting {\n  /** Name of the field to sort by. */\n  fieldName?: string;\n  /**\n   * Sort order.\n   *\n   * Defaults to `ascending`.\n   */\n  order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n  /** Sort by ascending order. */\n  ASC = 'ASC',\n  /** Sort by descending order. */\n  DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n  /**\n   * The number of items to load.\n   * Cursor token returned in the query response. To be used on the next query request, but not the first query request.\n   *\n   * Max: `100` <br />\n   * Default: `50`\n   * @max 100\n   */\n  limit?: number | null;\n  /** Cursor returned in last query response. Shouldn't be provided on first page request. */\n  cursor?: string | null;\n}\n\nexport interface QueryReviewsResponse {\n  /** Paging metadata. */\n  metadata?: PagingMetadataV2;\n  /** List of returned reviews. */\n  reviews?: Review[];\n}\n\nexport interface PagingMetadataV2 {\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. Returned if offset paging is used and the `tooManyToCount` flag isn't set. */\n  total?: number | null;\n  /** Flag that indicates the server failed to calculate the `total` field. */\n  tooManyToCount?: boolean | null;\n  /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */\n  cursors?: Cursors;\n}\n\nexport interface Cursors {\n  /** Cursor pointing to next result page. */\n  next?: string | null;\n  /** Cursor pointing to previous result page. */\n  prev?: string | null;\n}\n\nexport interface SetReplyRequest {\n  /**\n   * Review ID.\n   * @format GUID\n   */\n  reviewId: string;\n  /**\n   * Response to review author.\n   * @maxLength 10000\n   */\n  message: string;\n}\n\nexport interface SetReplyResponse {\n  /** Updated review. */\n  review?: Review;\n}\n\nexport interface RemoveReplyRequest {\n  /**\n   * ID of review to remove the reply for.\n   * @format GUID\n   */\n  reviewId: string;\n}\n\nexport interface RemoveReplyResponse {\n  /** Updated review. */\n  review?: Review;\n}\n\nexport interface UpdateModerationStatusRequest {\n  /**\n   * ID of the review to moderate.\n   * @format GUID\n   */\n  reviewId: string;\n  /** Moderation status. */\n  status?: UpdateModerationStatusRequestModerationStatusWithLiterals;\n}\n\nexport enum UpdateModerationStatusRequestModerationStatus {\n  /** Unknown moderation status. This value isn't used. */\n  UNKNOWN_MODERATION_STATUS = 'UNKNOWN_MODERATION_STATUS',\n  /** The review has been approved and published, and site visitors can see it. */\n  APPROVED = 'APPROVED',\n  /** The review is rejected and site visitors can't see it. */\n  REJECTED = 'REJECTED',\n}\n\n/** @enumType */\nexport type UpdateModerationStatusRequestModerationStatusWithLiterals =\n  | UpdateModerationStatusRequestModerationStatus\n  | 'UNKNOWN_MODERATION_STATUS'\n  | 'APPROVED'\n  | 'REJECTED';\n\nexport interface UpdateModerationStatusResponse {\n  /** The review after moderation. */\n  review?: Review;\n}\n\nexport interface BulkUpdateModerationStatusRequest {\n  /** Reviews to moderate. */\n  filter?: Record<string, any> | null;\n  /** Moderation status. */\n  status?: ModerationStatusWithLiterals;\n}\n\nexport enum ModerationStatus {\n  /** Unknown moderation status. This value isn't used. */\n  UNKNOWN = 'UNKNOWN',\n  /** The review has been approved and published, and site visitors can see it. */\n  APPROVED = 'APPROVED',\n  /** The review is rejected and site visitors can't see it. */\n  REJECTED = 'REJECTED',\n}\n\n/** @enumType */\nexport type ModerationStatusWithLiterals =\n  | ModerationStatus\n  | 'UNKNOWN'\n  | 'APPROVED'\n  | 'REJECTED';\n\nexport interface BulkUpdateModerationStatusResponse {\n  /** Job ID. */\n  jobId?: string;\n}\n\nexport interface CountReviewsRequest {\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   *\n   * See [Query Reviews](https://dev.wix.com/docs/rest/crm/community/reviews/reviews/query-reviews) for a list of supported filters.\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Whether to include unpublished reviews in the count.\n   *\n   * Default: `false`\n   */\n  includePrivateReviews?: boolean;\n}\n\nexport interface CountReviewsResponse {\n  /** Number of reviews. */\n  count?: number;\n}\n\n/** @docsIgnore */\nexport type CountReviewsApplicationErrors = {\n  code?: 'TOO_MANY_TO_COUNT';\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 ReviewCreatedEnvelope {\n  entity: Review;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a review is created.\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Manage Reviews\n * @permissionScopeId SCOPE.DC-REVIEWS.MANAGE-REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @webhook\n * @eventType wix.reviews.v1.review_created\n * @slug created\n */\nexport declare function onReviewCreated(\n  handler: (event: ReviewCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ReviewDeletedEnvelope {\n  entity: Review;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a review is deleted.\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Manage Reviews\n * @permissionScopeId SCOPE.DC-REVIEWS.MANAGE-REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @webhook\n * @eventType wix.reviews.v1.review_deleted\n * @slug deleted\n */\nexport declare function onReviewDeleted(\n  handler: (event: ReviewDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ReviewModerationStatusChangedEnvelope {\n  data: ModerationStatusChanged;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a review's moderation status is changed or a review is created.\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Manage Reviews\n * @permissionScopeId SCOPE.DC-REVIEWS.MANAGE-REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @webhook\n * @eventType wix.reviews.v1.review_moderation_status_changed\n * @slug moderation_status_changed\n */\nexport declare function onReviewModerationStatusChanged(\n  handler: (\n    event: ReviewModerationStatusChangedEnvelope\n  ) => void | Promise<void>\n): void;\n\nexport interface ReviewPublishedEnvelope {\n  data: ReviewPublished;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a review's moderation status is set to `\"APPROVED\"`.\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Manage Reviews\n * @permissionScopeId SCOPE.DC-REVIEWS.MANAGE-REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @webhook\n * @eventType wix.reviews.v1.review_review_published\n * @slug review_published\n */\nexport declare function onReviewPublished(\n  handler: (event: ReviewPublishedEnvelope) => void | Promise<void>\n): void;\n\nexport interface ReviewUpdatedEnvelope {\n  entity: Review;\n  metadata: EventMetadata;\n  /** @hidden */\n  modifiedFields: Record<string, any>;\n}\n\n/**\n * Triggered when a review is updated.\n * @permissionScope Manage Stores\n * @permissionScopeId SCOPE.STORES.MANAGE-STORES\n * @permissionScope Manage Reviews\n * @permissionScopeId SCOPE.DC-REVIEWS.MANAGE-REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @webhook\n * @eventType wix.reviews.v1.review_updated\n * @slug updated\n */\nexport declare function onReviewUpdated(\n  handler: (event: ReviewUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Retrieves a review.\n *\n * By default, unpublished reviews aren't returned.\n * To retrieve an unpublished review, pass `returnPrivateReviews` as `true`.\n * @param reviewId - Review ID.\n * @public\n * @requiredField reviewId\n * @param options - Information about the reviews to retrieve.\n * @permissionId REVIEWS.READ_REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @applicableIdentity APP\n * @returns Review.\n * @fqn com.wixpress.critique.reviews.Reviews.GetReview\n */\nexport async function getReview(\n  reviewId: string,\n  options?: GetReviewOptions\n): Promise<\n  NonNullablePaths<\n    Review,\n    | `namespace`\n    | `entityId`\n    | `_id`\n    | `content.media`\n    | `content.rating`\n    | `reply.message`\n    | `foundHelpful`\n    | `foundUnhelpful`\n    | `helpfulness`\n    | `moderation.moderationStatus`\n    | `moderation.manuallyChanged`\n    | `verified`\n    | `origin.type`\n    | `publishCount`,\n    3\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    reviewId: reviewId,\n    returnPrivateReviews: options?.returnPrivateReviews,\n  });\n\n  const reqOpts = ambassadorWixReviewsV1Review.getReview(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )?.review!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          reviewId: '$[0]',\n          returnPrivateReviews: '$[1].returnPrivateReviews',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['reviewId', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface GetReviewOptions {\n  /**\n   * Whether to return unpublished reviews.\n   *\n   * Default: `false`\n   */\n  returnPrivateReviews?: boolean;\n}\n\n/**\n * Creates a new review using a contact ID.\n *\n * This method requires a contact ID, see the [Contacts API](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/introduction).\n *\n * After a review is created, it may require moderation, see the introduction for the Reviews API for more information about moderation.\n *\n * If the `authorName` field is empty, and the review author:\n * - is a site member, their member name is used.\n * - isn't a site member, the field is set to `null`.\n * @param review - Review data.\n * @public\n * @requiredField review\n * @requiredField review.content\n * @requiredField review.content.rating\n * @requiredField review.entityId\n * @requiredField review.namespace\n * @permissionId REVIEWS.CREATE_REVIEW\n * @applicableIdentity APP\n * @returns Created review.\n * @fqn com.wixpress.critique.reviews.Reviews.CreateReview\n */\nexport async function createReview(\n  review: NonNullablePaths<\n    Review,\n    `content` | `content.rating` | `entityId` | `namespace`,\n    3\n  >\n): Promise<\n  NonNullablePaths<\n    Review,\n    | `namespace`\n    | `entityId`\n    | `_id`\n    | `content.media`\n    | `content.rating`\n    | `reply.message`\n    | `foundHelpful`\n    | `foundUnhelpful`\n    | `helpfulness`\n    | `moderation.moderationStatus`\n    | `moderation.manuallyChanged`\n    | `verified`\n    | `origin.type`\n    | `publishCount`,\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 = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({ review: review }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [{ path: 'review.content.media.image' }],\n      },\n      {\n        transformFn: transformSDKVideoV2ToRESTVideoV2,\n        paths: [{ path: 'review.content.media.video' }],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixReviewsV1Review.createReview(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )?.review!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { review: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['review']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Creates multiple reviews.\n *\n * If the `authorName` field is empty, and the review author:\n * - is a site member, their member name is used.\n * - isn't a site member, the field is set to `null`.\n *\n * To create a single review, call Create Review.\n * @param reviews - Reviews to create.\n * @public\n * @requiredField reviews\n * @requiredField reviews.author\n * @requiredField reviews.author.contactId\n * @requiredField reviews.content\n * @requiredField reviews.entityId\n * @requiredField reviews.namespace\n * @permissionId REVIEWS.REVIEW_BULK_CREATE\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.BulkCreateReview\n */\nexport async function bulkCreateReview(\n  reviews: NonNullablePaths<\n    Review,\n    `author` | `author.contactId` | `content` | `entityId` | `namespace`,\n    3\n  >[],\n  options?: BulkCreateReviewOptions\n): Promise<\n  NonNullablePaths<\n    BulkCreateReviewResponse,\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}.review.namespace`\n    | `results.${number}.review.entityId`\n    | `results.${number}.review._id`\n    | `results.${number}.review.content.rating`\n    | `results.${number}.review.reply.message`\n    | `results.${number}.review.foundHelpful`\n    | `results.${number}.review.foundUnhelpful`\n    | `results.${number}.review.helpfulness`\n    | `results.${number}.review.moderation.moderationStatus`\n    | `results.${number}.review.moderation.manuallyChanged`\n    | `results.${number}.review.verified`\n    | `results.${number}.review.origin.type`\n    | `results.${number}.review.publishCount`\n    | `bulkActionMetadata.totalSuccesses`\n    | `bulkActionMetadata.totalFailures`\n    | `bulkActionMetadata.undetailedFailures`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({\n      reviews: reviews,\n      returnEntity: options?.returnEntity,\n    }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [{ path: 'reviews.content.media.image' }],\n      },\n      {\n        transformFn: transformSDKVideoV2ToRESTVideoV2,\n        paths: [{ path: 'reviews.content.media.video' }],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixReviewsV1Review.bulkCreateReview(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'results.review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'results.review.content.media.video' }],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          reviews: '$[0]',\n          returnEntity: '$[1].returnEntity',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['reviews', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkCreateReviewOptions {\n  /** Whether to return the created entities. */\n  returnEntity?: boolean;\n}\n\n/**\n * Updates a review.\n *\n * Each time the review is updated, `revision` increments by 1.\n * The existing `revision` must be included when updating the review.\n * This ensures you're working with the latest review information, and it prevents unintended overwrites.\n * @param _id - Review ID.\n * @public\n * @requiredField _id\n * @requiredField review\n * @requiredField review.revision\n * @param options - Options to use when updating a review.\n * @permissionId REVIEWS.UPDATE_REVIEW\n * @applicableIdentity APP\n * @returns Updated review data.\n * @fqn com.wixpress.critique.reviews.Reviews.UpdateReview\n */\nexport async function updateReview(\n  _id: string,\n  review: NonNullablePaths<UpdateReview, `revision`, 2>\n): Promise<\n  NonNullablePaths<\n    Review,\n    | `namespace`\n    | `entityId`\n    | `_id`\n    | `content.media`\n    | `content.rating`\n    | `reply.message`\n    | `foundHelpful`\n    | `foundUnhelpful`\n    | `helpfulness`\n    | `moderation.moderationStatus`\n    | `moderation.manuallyChanged`\n    | `verified`\n    | `origin.type`\n    | `publishCount`,\n    3\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = transformPaths(\n    renameKeysFromSDKRequestToRESTRequest({ review: { ...review, id: _id } }),\n    [\n      {\n        transformFn: transformSDKImageToRESTImage,\n        paths: [{ path: 'review.content.media.image' }],\n      },\n      {\n        transformFn: transformSDKVideoV2ToRESTVideoV2,\n        paths: [{ path: 'review.content.media.video' }],\n      },\n    ]\n  );\n\n  const reqOpts = ambassadorWixReviewsV1Review.updateReview(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )?.review!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: { review: '$[1]' },\n        explicitPathsToArguments: { 'review.id': '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['_id', 'review']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface UpdateReview {\n  /**\n   * Review namespace.\n   *\n   * Supported values:\n   * + Wix Stores: `stores`\n   *\n   * Currently, only Wix Stores is fully integrated with the Wix Reviews app.\n   */\n  namespace?: string;\n  /**\n   * ID of the entity to review. For example, a Wix Stores product ID.\n   * @maxLength 36\n   */\n  entityId?: string;\n  /**\n   * Review ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string;\n  /** Review content. */\n  content?: ReviewContent;\n  /**\n   * Date and time the review was created.\n   * @readonly\n   */\n  _createdDate?: Date | null;\n  /**\n   * Date and time the review was updated.\n   * @readonly\n   */\n  _updatedDate?: Date | null;\n  /** Author of the review. */\n  author?: Author;\n  /**\n   * Reply to the review.\n   * @readonly\n   */\n  reply?: Reply;\n  /**\n   * Number of site visitors who found the review helpful.\n   * @readonly\n   */\n  foundHelpful?: number;\n  /**\n   * Number of site visitors who found the review unhelpful.\n   * @readonly\n   */\n  foundUnhelpful?: number;\n  /**\n   * Helpfulness score.\n   *\n   * Calculated by subtracting `foundUnhelpful` from `foundHelpful`.\n   * @readonly\n   */\n  helpfulness?: number;\n  /**\n   * Moderation status of the review.\n   * @readonly\n   */\n  moderation?: Moderation;\n  /**\n   * Revision number, which increments by 1 each time the review is updated.\n   * To prevent conflicting changes,\n   * the current `revision` must be passed when updating the review.\n   * Ignored when creating a review.\n   * @readonly\n   */\n  revision?: string | null;\n  /**\n   * Whether the review has been verified.\n   * @readonly\n   */\n  verified?: boolean;\n  /**\n   * Origin of a review.\n   * @readonly\n   */\n  origin?: Origin;\n  /**\n   * Date and time when the review was written.\n   * This should match `createdDate`, except for reviews imported from another system.\n   */\n  reviewDate?: Date | null;\n  /**\n   * Platform-calculated score of review's relevance to the item.\n   * Used to sort reviews by relevance.\n   * @readonly\n   */\n  relevanceScore?: number | null;\n  /**\n   * Number of times a review has been published.\n   * @readonly\n   */\n  publishCount?: number;\n  /**\n   * Source of a review.\n   * @internal\n   */\n  source?: Source;\n}\n\n/**\n * Deletes a review.\n * @param reviewId - Review ID.\n * @public\n * @requiredField reviewId\n * @permissionId REVIEWS.DELETE_REVIEW\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.DeleteReview\n */\nexport async function deleteReview(\n  reviewId: string\n): Promise<\n  NonNullablePaths<\n    DeleteReviewResponse,\n    | `review.namespace`\n    | `review.entityId`\n    | `review._id`\n    | `review.content.media`\n    | `review.content.rating`\n    | `review.reply.message`\n    | `review.foundHelpful`\n    | `review.foundUnhelpful`\n    | `review.helpfulness`\n    | `review.moderation.moderationStatus`\n    | `review.moderation.manuallyChanged`\n    | `review.verified`\n    | `review.origin.type`\n    | `review.publishCount`,\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({ reviewId: reviewId });\n\n  const reqOpts = ambassadorWixReviewsV1Review.deleteReview(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { reviewId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['reviewId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Deletes multiple reviews.\n *\n * All reviews that meet the specified `filter` criteria are deleted.\n *\n * To delete a single review, call Delete Review.\n * @public\n * @param options - Information about the reviews to delete.\n * @permissionId REVIEWS.DELETE_REVIEW\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.BulkDeleteReviews\n */\nexport async function bulkDeleteReviews(\n  options?: BulkDeleteReviewsOptions\n): Promise<NonNullablePaths<BulkDeleteReviewsResponse, `jobId`, 2>> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: options?.filter,\n  });\n\n  const reqOpts = ambassadorWixReviewsV1Review.bulkDeleteReviews(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: { filter: '$[0].filter' },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkDeleteReviewsOptions {\n  /** Filter object. */\n  filter?: Record<string, any> | null;\n}\n\n/**\n * Creates a query to retrieve a list of reviews.\n *\n *\n * The `queryReviews()` method builds a query to retrieve a list of reviews and returns a `ReviewsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the `find()` method.\n *\n * You can refine the query by chaining `ReviewsQueryBuilder` methods onto the query.\n *\n * `ReviewsQueryBuilder` methods enable you to sort, filter,\n * and control the results that `queryReviews()` returns.\n *\n * The `queryReviews()` method runs with the following defaults, which you can override:\n *\n * - `ascending(\"_createdDate\")`\n * - `limit(100)`\n *\n * The methods that are chained to `queryReviews()` are applied in the order they're called. For example, if you apply `descending(\"_createdDate\")` and then `descending(\"content.rating\")`, the results are sorted first by the `_createdDate`, and then, if there are multiple results with the same `_createdDate`, the items are sorted by `content.rating`.\n * @public\n * @param options - Information about the reviews to retrieve.\n * @permissionId REVIEWS.READ_REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.QueryReviews\n */\nexport function queryReviews(\n  options?: QueryReviewsOptions\n): ReviewsQueryBuilder {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  return queryBuilder<\n    Review,\n    'CURSOR',\n    QueryReviewsRequest,\n    QueryReviewsResponse\n  >({\n    func: async (payload: QueryReviewsRequest) => {\n      const reqOpts = ambassadorWixReviewsV1Review.queryReviews({\n        ...payload,\n        ...(options ?? {}),\n      });\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: QueryReviewsRequest['query']) => {\n      const args = [query, options] as [\n        QueryReviewsRequest['query'],\n        QueryReviewsOptions\n      ];\n      return renameKeysFromSDKRequestToRESTRequest({\n        ...args?.[1],\n        query: args?.[0],\n      });\n    },\n    responseTransformer: ({ data }: HttpResponse<QueryReviewsResponse>) => {\n      const transformedData = renameKeysFromRESTResponseToSDKResponse(\n        transformPaths(data, [\n          {\n            transformFn: transformRESTImageToSDKImage,\n            paths: [\n              { path: 'results.content.media.image' },\n              { path: 'reviews.content.media.image' },\n            ],\n          },\n          {\n            transformFn: transformRESTVideoV2ToSDKVideoV2,\n            paths: [\n              { path: 'results.content.media.video' },\n              { path: 'reviews.content.media.video' },\n            ],\n          },\n        ])\n      );\n\n      return {\n        items: transformedData?.reviews,\n        pagingMetadata: transformedData?.metadata,\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\nexport interface QueryReviewsOptions {\n  /**\n   * Whether to return private (unpublished) reviews.\n   *\n   * Default: `false`\n   */\n  returnPrivateReviews?: boolean | undefined;\n}\n\ninterface QueryCursorResult {\n  cursors: Cursors;\n  hasNext: () => boolean;\n  hasPrev: () => boolean;\n  length: number;\n  pageSize: number;\n}\n\nexport interface ReviewsQueryResult extends QueryCursorResult {\n  items: Review[];\n  query: ReviewsQueryBuilder;\n  next: () => Promise<ReviewsQueryResult>;\n  prev: () => Promise<ReviewsQueryResult>;\n}\n\nexport interface ReviewsQueryBuilder {\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  eq: (\n    propertyName:\n      | 'namespace'\n      | 'entityId'\n      | '_id'\n      | 'content.rating'\n      | '_createdDate'\n      | 'author.contactId'\n      | 'helpfulness'\n      | 'moderation.moderationStatus'\n      | 'verified'\n      | 'origin.type'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ne: (\n    propertyName:\n      | 'namespace'\n      | 'entityId'\n      | '_id'\n      | 'content.rating'\n      | '_createdDate'\n      | 'author.contactId'\n      | 'helpfulness'\n      | 'moderation.moderationStatus'\n      | 'verified'\n      | 'origin.type'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ge: (\n    propertyName:\n      | 'content.rating'\n      | '_createdDate'\n      | 'helpfulness'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  gt: (\n    propertyName:\n      | 'content.rating'\n      | '_createdDate'\n      | 'helpfulness'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  le: (\n    propertyName:\n      | 'content.rating'\n      | '_createdDate'\n      | 'helpfulness'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  lt: (\n    propertyName:\n      | 'content.rating'\n      | '_createdDate'\n      | 'helpfulness'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  in: (\n    propertyName:\n      | 'namespace'\n      | 'entityId'\n      | '_id'\n      | 'content.rating'\n      | '_createdDate'\n      | 'author.contactId'\n      | 'helpfulness'\n      | 'moderation.moderationStatus'\n      | 'relevanceScore',\n    value: any\n  ) => ReviewsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  ascending: (\n    ...propertyNames: Array<\n      | 'content.rating'\n      | '_createdDate'\n      | 'helpfulness'\n      | 'verified'\n      | 'origin.type'\n      | 'relevanceScore'\n    >\n  ) => ReviewsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  descending: (\n    ...propertyNames: Array<\n      | 'content.rating'\n      | '_createdDate'\n      | 'helpfulness'\n      | 'verified'\n      | 'origin.type'\n      | 'relevanceScore'\n    >\n  ) => ReviewsQueryBuilder;\n  /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n  limit: (limit: number) => ReviewsQueryBuilder;\n  /** @param cursor - A pointer to specific record */\n  skipTo: (cursor: string) => ReviewsQueryBuilder;\n  find: () => Promise<ReviewsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn com.wixpress.critique.reviews.Reviews.QueryReviews\n * @requiredField query\n */\nexport async function typedQueryReviews(\n  query: ReviewQuery,\n  options?: QueryReviewsOptions\n): Promise<\n  NonNullablePaths<\n    QueryReviewsResponse,\n    | `reviews`\n    | `reviews.${number}.namespace`\n    | `reviews.${number}.entityId`\n    | `reviews.${number}._id`\n    | `reviews.${number}.content.rating`\n    | `reviews.${number}.reply.message`\n    | `reviews.${number}.foundHelpful`\n    | `reviews.${number}.foundUnhelpful`\n    | `reviews.${number}.helpfulness`\n    | `reviews.${number}.moderation.moderationStatus`\n    | `reviews.${number}.moderation.manuallyChanged`\n    | `reviews.${number}.verified`\n    | `reviews.${number}.origin.type`\n    | `reviews.${number}.publishCount`,\n    5\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    query: query,\n    ...options,\n  });\n\n  const reqOpts = ambassadorWixReviewsV1Review.queryReviews(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [\n            { path: 'results.content.media.image' },\n            { path: 'reviews.content.media.image' },\n          ],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [\n            { path: 'results.content.media.video' },\n            { path: 'reviews.content.media.video' },\n          ],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['query', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface ReviewQuerySpec extends QuerySpec {\n  paging: 'cursor';\n  wql: [\n    {\n      fields: [\n        '_id',\n        'author.contactId',\n        'entityId',\n        'moderation.moderationStatus',\n        'namespace'\n      ];\n      operators: ['$eq', '$in', '$ne'];\n      sort: 'NONE';\n    },\n    {\n      fields: [\n        '_createdDate',\n        'content.rating',\n        'helpfulness',\n        'relevanceScore'\n      ];\n      operators: ['$eq', '$gt', '$gte', '$in', '$lt', '$lte', '$ne'];\n      sort: 'BOTH';\n    },\n    {\n      fields: ['origin.type', 'verified'];\n      operators: ['$eq', '$ne'];\n      sort: 'BOTH';\n    },\n    {\n      fields: ['content.media'];\n      operators: ['$isEmpty'];\n      sort: 'NONE';\n    }\n  ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n  Review,\n  ReviewQuerySpec\n>;\nexport type ReviewQuery = {\n  /** \n  Filter object.  \n  */\n  filter?: CommonQueryWithEntityContext['filter'] | null;\n  /** \n  Sorting options.  \n  */\n  sort?: {\n    /** \n  Name of the field to sort by.  \n  */\n    fieldName?: NonNullable<\n      CommonQueryWithEntityContext['sort']\n    >[number]['fieldName'];\n    /** \n  Sort order.\n\n  Defaults to `ascending`.  \n  */\n    order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n  }[];\n  /** \n  Cursor paging options.  \n  */\n  cursorPaging?: {\n    /** \n  The number of items to load.\n  Cursor token returned in the query response. To be used on the next query request, but not the first query request.\n\n  Max: `100` <br />\n  Default: `50` \n  @max: 100 \n  */\n    limit?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n      | null;\n    /** \n  Cursor returned in last query response. Shouldn't be provided on first page request.  \n  */\n    cursor?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n      | null;\n  };\n};\n\nexport const utils = {\n  query: {\n    ...createQueryUtils<Review, ReviewQuerySpec, ReviewQuery>(),\n  },\n};\n\n/**\n * Sets a reply on a review.\n *\n * Only 1 reply can be left on a review. Calling Set Reply when a reply\n * already exists overwrites the existing reply.\n * @param reviewId - Review ID.\n * @param message - Response to review author.\n * @public\n * @requiredField message\n * @requiredField reviewId\n * @permissionId REVIEWS.SET_REPLY\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.SetReply\n */\nexport async function setReply(\n  reviewId: string,\n  message: string\n): Promise<\n  NonNullablePaths<\n    SetReplyResponse,\n    | `review.namespace`\n    | `review.entityId`\n    | `review._id`\n    | `review.content.media`\n    | `review.content.rating`\n    | `review.reply.message`\n    | `review.foundHelpful`\n    | `review.foundUnhelpful`\n    | `review.helpfulness`\n    | `review.moderation.moderationStatus`\n    | `review.moderation.manuallyChanged`\n    | `review.verified`\n    | `review.origin.type`\n    | `review.publishCount`,\n    4\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    reviewId: reviewId,\n    message: message,\n  });\n\n  const reqOpts = ambassadorWixReviewsV1Review.setReply(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { reviewId: '$[0]', message: '$[1]' },\n        singleArgumentUnchanged: false,\n      },\n      ['reviewId', 'message']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Removes reply from a review.\n * @param reviewId - ID of review to remove the reply for.\n * @public\n * @requiredField reviewId\n * @permissionId REVIEWS.REMOVE_REPLY\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.RemoveReply\n */\nexport async function removeReply(\n  reviewId: string\n): Promise<\n  NonNullablePaths<\n    RemoveReplyResponse,\n    | `review.namespace`\n    | `review.entityId`\n    | `review._id`\n    | `review.content.media`\n    | `review.content.rating`\n    | `review.reply.message`\n    | `review.foundHelpful`\n    | `review.foundUnhelpful`\n    | `review.helpfulness`\n    | `review.moderation.moderationStatus`\n    | `review.moderation.manuallyChanged`\n    | `review.verified`\n    | `review.origin.type`\n    | `review.publishCount`,\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({ reviewId: reviewId });\n\n  const reqOpts = ambassadorWixReviewsV1Review.removeReply(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { reviewId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['reviewId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Updates the review moderation status.\n * @param reviewId - ID of the review to moderate.\n * @public\n * @requiredField reviewId\n * @permissionId REVIEWS.MODERATE_REVIEWS\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.UpdateModerationStatus\n */\nexport async function updateModerationStatus(\n  reviewId: string,\n  options?: UpdateModerationStatusOptions\n): Promise<\n  NonNullablePaths<\n    UpdateModerationStatusResponse,\n    | `review.namespace`\n    | `review.entityId`\n    | `review._id`\n    | `review.content.media`\n    | `review.content.rating`\n    | `review.reply.message`\n    | `review.foundHelpful`\n    | `review.foundUnhelpful`\n    | `review.helpfulness`\n    | `review.moderation.moderationStatus`\n    | `review.moderation.manuallyChanged`\n    | `review.verified`\n    | `review.origin.type`\n    | `review.publishCount`,\n    4\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    reviewId: reviewId,\n    status: options?.status,\n  });\n\n  const reqOpts = ambassadorWixReviewsV1Review.updateModerationStatus(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(result.data, [\n        {\n          transformFn: transformRESTImageToSDKImage,\n          paths: [{ path: 'review.content.media.image' }],\n        },\n        {\n          transformFn: transformRESTVideoV2ToSDKVideoV2,\n          paths: [{ path: 'review.content.media.video' }],\n        },\n      ])\n    )!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { reviewId: '$[0]', status: '$[1].status' },\n        singleArgumentUnchanged: false,\n      },\n      ['reviewId', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface UpdateModerationStatusOptions {\n  /** Moderation status. */\n  status?: UpdateModerationStatusRequestModerationStatusWithLiterals;\n}\n\n/**\n * Updates moderation status of multiple reviews. All reviews are updated to the same moderation status.\n *\n * To update moderation status of a single review, call Update Moderation Status.\n * @public\n * @permissionId REVIEWS.MODERATE_REVIEWS\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.BulkUpdateModerationStatus\n */\nexport async function bulkUpdateModerationStatus(\n  options?: BulkUpdateModerationStatusOptions\n): Promise<NonNullablePaths<BulkUpdateModerationStatusResponse, `jobId`, 2>> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    filter: options?.filter,\n    status: options?.status,\n  });\n\n  const reqOpts =\n    ambassadorWixReviewsV1Review.bulkUpdateModerationStatus(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          filter: '$[0].filter',\n          status: '$[0].status',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface BulkUpdateModerationStatusOptions {\n  /** Reviews to moderate. */\n  filter?: Record<string, any> | null;\n  /** Moderation status. */\n  status?: ModerationStatusWithLiterals;\n}\n\n/**\n * Retrieves the number of reviews that match a specified filter.\n *\n * If a filter isn't passed in the request, the method returns the count of all reviews.\n * @public\n * @permissionId REVIEWS.READ_REVIEWS\n * @permissionId REVIEWS.READ_PRIVATE_REVIEWS\n * @applicableIdentity APP\n * @fqn com.wixpress.critique.reviews.Reviews.CountReviews\n */\nexport async function countReviews(options?: CountReviewsOptions): Promise<\n  NonNullablePaths<CountReviewsResponse, `count`, 2> & {\n    __applicationErrorsType?: CountReviewsApplicationErrors;\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    filter: options?.filter,\n    includePrivateReviews: options?.includePrivateReviews,\n  });\n\n  const reqOpts = ambassadorWixReviewsV1Review.countReviews(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          filter: '$[0].filter',\n          includePrivateReviews: '$[0].includePrivateReviews',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface CountReviewsOptions {\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   *\n   * See [Query Reviews](https://dev.wix.com/docs/rest/crm/community/reviews/reviews/query-reviews) for a list of supported filters.\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Whether to include unpublished reviews in the count.\n   *\n   * Default: `false`\n   */\n  includePrivateReviews?: boolean;\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 resolveComWixpressCritiqueReviewsReviewsUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'api._api_base_domain_': [\n      {\n        srcPath: '/reviews',\n        destPath: '',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/_api/reviews',\n        destPath: '/api',\n      },\n      {\n        srcPath: '/_api/reviews/api/v1/reviews',\n        destPath: '/api/v1/reviews',\n      },\n      {\n        srcPath: '/_api/reviews/v1/reviews',\n        destPath: '/v1/reviews',\n      },\n      {\n        srcPath: '/reviews/v1/bulk/reviews',\n        destPath: '/v1/bulk/reviews',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/reviews',\n        destPath: '/api',\n      },\n      {\n        srcPath: '/reviews/api/v1/reviews',\n        destPath: '/api/v1/reviews',\n      },\n      {\n        srcPath: '/reviews/v1/reviews',\n        destPath: '/v1/reviews',\n      },\n      {\n        srcPath: '/reviews/v1/bulk/reviews',\n        destPath: '/v1/bulk/reviews',\n      },\n    ],\n    'www._base_domain_': [\n      {\n        srcPath: '/_api/reviews',\n        destPath: '/api',\n      },\n      {\n        srcPath: '/_api/reviews/api/v1/reviews',\n        destPath: '/api/v1/reviews',\n      },\n      {\n        srcPath: '/_api/reviews/v1/reviews',\n        destPath: '/v1/reviews',\n      },\n      {\n        srcPath: '/_api/reviews/bulk/v1/reviews',\n        destPath: '/v1/bulk/reviews',\n      },\n    ],\n    'manage._base_domain_': [\n      {\n        srcPath: '/_api/reviews',\n        destPath: '/api',\n      },\n      {\n        srcPath: '/_api/reviews/api/v1/reviews',\n        destPath: '/api/v1/reviews',\n      },\n      {\n        srcPath: '/_api/reviews/v1/reviews',\n        destPath: '/v1/reviews',\n      },\n    ],\n    'apps._base_domain_': [\n      {\n        srcPath: '/_api/reviews',\n        destPath: '/api',\n      },\n      {\n        srcPath: '/_api/reviews/api/v1/reviews',\n        destPath: '/api/v1/reviews',\n      },\n      {\n        srcPath: '/_api/reviews/v1/reviews',\n        destPath: '/v1/reviews',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/reviews/v1/reviews',\n        destPath: '/v1/reviews',\n      },\n      {\n        srcPath: '/reviews/v1/bulk/reviews',\n        destPath: '/v1/bulk/reviews',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_reviews_reviews';\n\n/**\n * Retrieves a review.\n *\n * By default, unpublished reviews aren't returned.\n * To retrieve an unpublished review, pass `returnPrivateReviews` as `true`.\n */\nexport function getReview(payload: object): RequestOptionsFactory<any> {\n  function __getReview({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'GET' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.GetReview',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/{reviewId}',\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: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n      fallback: [\n        {\n          method: 'GET' as any,\n          url: resolveComWixpressCritiqueReviewsReviewsUrl({\n            protoPath: '/v1/reviews/{reviewId}',\n            data: payload,\n            host,\n          }),\n          params: toURLSearchParams(payload),\n        },\n      ],\n    };\n\n    return metadata;\n  }\n\n  return __getReview;\n}\n\n/**\n * Creates a new review using a contact ID.\n *\n * This method requires a contact ID, see the [Contacts API](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/introduction).\n *\n * After a review is created, it may require moderation, see the introduction for the Reviews API for more information about moderation.\n *\n * If the `authorName` field is empty, and the review author:\n * - is a site member, their member name is used.\n * - isn't a site member, the field is set to `null`.\n */\nexport function createReview(payload: object): RequestOptionsFactory<any> {\n  function __createReview({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'review.createdDate' },\n          { path: 'review.updatedDate' },\n          { path: 'review.reviewDate' },\n          { path: 'review.reply.createdDate' },\n          { path: 'review.reply.updatedDate' },\n        ],\n      },\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: [{ path: 'review.relevanceScore' }],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'POST' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.CreateReview',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __createReview;\n}\n\n/**\n * Creates multiple reviews.\n *\n * If the `authorName` field is empty, and the review author:\n * - is a site member, their member name is used.\n * - isn't a site member, the field is set to `null`.\n *\n * To create a single review, call Create Review.\n */\nexport function bulkCreateReview(payload: object): RequestOptionsFactory<any> {\n  function __bulkCreateReview({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'reviews.createdDate' },\n          { path: 'reviews.updatedDate' },\n          { path: 'reviews.reviewDate' },\n          { path: 'reviews.reply.createdDate' },\n          { path: 'reviews.reply.updatedDate' },\n        ],\n      },\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: [{ path: 'reviews.relevanceScore' }],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'POST' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.BulkCreateReview',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/bulk/reviews/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.review.createdDate' },\n              { path: 'results.review.updatedDate' },\n              { path: 'results.review.reviewDate' },\n              { path: 'results.review.reply.createdDate' },\n              { path: 'results.review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'results.review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __bulkCreateReview;\n}\n\n/**\n * Updates a review.\n *\n * Each time the review is updated, `revision` increments by 1.\n * The existing `revision` must be included when updating the review.\n * This ensures you're working with the latest review information, and it prevents unintended overwrites.\n */\nexport function updateReview(payload: object): RequestOptionsFactory<any> {\n  function __updateReview({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFieldMaskToRESTFieldMask,\n        paths: [{ path: 'fieldMask' }],\n      },\n      {\n        transformFn: transformSDKTimestampToRESTTimestamp,\n        paths: [\n          { path: 'review.createdDate' },\n          { path: 'review.updatedDate' },\n          { path: 'review.reviewDate' },\n          { path: 'review.reply.createdDate' },\n          { path: 'review.reply.updatedDate' },\n        ],\n      },\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: [{ path: 'review.relevanceScore' }],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'PATCH' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.UpdateReview',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/{review.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: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __updateReview;\n}\n\n/** Deletes a review. */\nexport function deleteReview(payload: object): RequestOptionsFactory<any> {\n  function __deleteReview({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'DELETE' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.DeleteReview',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/{reviewId}',\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: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __deleteReview;\n}\n\n/**\n * Deletes multiple reviews.\n *\n * All reviews that meet the specified `filter` criteria are deleted.\n *\n * To delete a single review, call Delete Review.\n */\nexport function bulkDeleteReviews(payload: object): RequestOptionsFactory<any> {\n  function __bulkDeleteReviews({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'POST' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.BulkDeleteReviews',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/bulk/reviews/delete',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkDeleteReviews;\n}\n\n/**\n * Creates a query to retrieve a list of reviews.\n *\n *\n * The `queryReviews()` method builds a query to retrieve a list of reviews and returns a `ReviewsQueryBuilder` object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the `find()` method.\n *\n * You can refine the query by chaining `ReviewsQueryBuilder` methods onto the query.\n *\n * `ReviewsQueryBuilder` methods enable you to sort, filter,\n * and control the results that `queryReviews()` returns.\n *\n * The `queryReviews()` method runs with the following defaults, which you can override:\n *\n * - `ascending(\"_createdDate\")`\n * - `limit(100)`\n *\n * The methods that are chained to `queryReviews()` are applied in the order they're called. For example, if you apply `descending(\"_createdDate\")` and then `descending(\"content.rating\")`, the results are sorted first by the `_createdDate`, and then, if there are multiple results with the same `_createdDate`, the items are sorted by `content.rating`.\n */\nexport function queryReviews(payload: object): RequestOptionsFactory<any> {\n  function __queryReviews({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'POST' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.QueryReviews',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/query',\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.createdDate' },\n              { path: 'results.updatedDate' },\n              { path: 'results.reviewDate' },\n              { path: 'results.reply.createdDate' },\n              { path: 'results.reply.updatedDate' },\n              { path: 'reviews.createdDate' },\n              { path: 'reviews.updatedDate' },\n              { path: 'reviews.reviewDate' },\n              { path: 'reviews.reply.createdDate' },\n              { path: 'reviews.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              { path: 'results.relevanceScore' },\n              { path: 'reviews.relevanceScore' },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __queryReviews;\n}\n\n/**\n * Sets a reply on a review.\n *\n * Only 1 reply can be left on a review. Calling Set Reply when a reply\n * already exists overwrites the existing reply.\n */\nexport function setReply(payload: object): RequestOptionsFactory<any> {\n  function __setReply({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'PATCH' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.SetReply',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/{reviewId}/reply',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __setReply;\n}\n\n/** Removes reply from a review. */\nexport function removeReply(payload: object): RequestOptionsFactory<any> {\n  function __removeReply({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'DELETE' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.RemoveReply',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/{reviewId}/reply',\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: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __removeReply;\n}\n\n/** Updates the review moderation status. */\nexport function updateModerationStatus(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __updateModerationStatus({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'PATCH' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.UpdateModerationStatus',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/{reviewId}/moderate',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [\n              { path: 'review.createdDate' },\n              { path: 'review.updatedDate' },\n              { path: 'review.reviewDate' },\n              { path: 'review.reply.createdDate' },\n              { path: 'review.reply.updatedDate' },\n            ],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [{ path: 'review.relevanceScore' }],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __updateModerationStatus;\n}\n\n/**\n * Updates moderation status of multiple reviews. All reviews are updated to the same moderation status.\n *\n * To update moderation status of a single review, call Update Moderation Status.\n */\nexport function bulkUpdateModerationStatus(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __bulkUpdateModerationStatus({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'POST' as any,\n      methodFqn:\n        'com.wixpress.critique.reviews.Reviews.BulkUpdateModerationStatus',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/bulk/reviews/moderate',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __bulkUpdateModerationStatus;\n}\n\n/**\n * Retrieves the number of reviews that match a specified filter.\n *\n * If a filter isn't passed in the request, the method returns the count of all reviews.\n */\nexport function countReviews(payload: object): RequestOptionsFactory<any> {\n  function __countReviews({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.reviews.v1.review',\n      method: 'POST' as any,\n      methodFqn: 'com.wixpress.critique.reviews.Reviews.CountReviews',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveComWixpressCritiqueReviewsReviewsUrl({\n        protoPath: '/v1/reviews/count',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __countReviews;\n}\n","import {\n  getReview as publicGetReview,\n  createReview as publicCreateReview,\n  bulkCreateReview as publicBulkCreateReview,\n  updateReview as publicUpdateReview,\n  deleteReview as publicDeleteReview,\n  bulkDeleteReviews as publicBulkDeleteReviews,\n  queryReviews as publicQueryReviews,\n  typedQueryReviews as publicTypedQueryReviews,\n  setReply as publicSetReply,\n  removeReply as publicRemoveReply,\n  updateModerationStatus as publicUpdateModerationStatus,\n  bulkUpdateModerationStatus as publicBulkUpdateModerationStatus,\n  countReviews as publicCountReviews,\n} from './reviews-v1-review-reviews.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  QueryReviewsOptions,\n  ReviewQuery,\n  ReviewsQueryBuilder,\n  typedQueryReviews as universalTypedQueryReviews,\n} from './reviews-v1-review-reviews.universal.js';\nimport { onReviewCreated as publicOnReviewCreated } from './reviews-v1-review-reviews.public.js';\nimport { onReviewDeleted as publicOnReviewDeleted } from './reviews-v1-review-reviews.public.js';\nimport { onReviewModerationStatusChanged as publicOnReviewModerationStatusChanged } from './reviews-v1-review-reviews.public.js';\nimport { onReviewPublished as publicOnReviewPublished } from './reviews-v1-review-reviews.public.js';\nimport { onReviewUpdated as publicOnReviewUpdated } from './reviews-v1-review-reviews.public.js';\n\nfunction customQueryReviews(httpClient: HttpClient) {\n  const router = createQueryOverloadRouter({\n    builderQueryFunction: (options?: QueryReviewsOptions) =>\n      publicQueryReviews(httpClient)(options),\n    typedQueryFunction: (query: ReviewQuery, options?: QueryReviewsOptions) =>\n      publicTypedQueryReviews(httpClient)(query, options),\n    hasOptionsParameter: true,\n  });\n\n  function overloadedQuery(\n    query: ReviewQuery,\n    options?: QueryReviewsOptions\n  ): ReturnType<typeof universalTypedQueryReviews>;\n  function overloadedQuery(options?: QueryReviewsOptions): ReviewsQueryBuilder;\n  function overloadedQuery(\n    queryOrOptions?: ReviewQuery | QueryReviewsOptions,\n    options?: QueryReviewsOptions\n  ): any {\n    return router(...arguments);\n  }\n\n  return overloadedQuery;\n}\n\nexport const getReview: MaybeContext<\n  BuildRESTFunction<typeof publicGetReview> & typeof publicGetReview\n> = /*#__PURE__*/ createRESTModule(publicGetReview);\nexport const createReview: MaybeContext<\n  BuildRESTFunction<typeof publicCreateReview> & typeof publicCreateReview\n> = /*#__PURE__*/ createRESTModule(publicCreateReview);\nexport const bulkCreateReview: MaybeContext<\n  BuildRESTFunction<typeof publicBulkCreateReview> &\n    typeof publicBulkCreateReview\n> = /*#__PURE__*/ createRESTModule(publicBulkCreateReview);\nexport const updateReview: MaybeContext<\n  BuildRESTFunction<typeof publicUpdateReview> & typeof publicUpdateReview\n> = /*#__PURE__*/ createRESTModule(publicUpdateReview);\nexport const deleteReview: MaybeContext<\n  BuildRESTFunction<typeof publicDeleteReview> & typeof publicDeleteReview\n> = /*#__PURE__*/ createRESTModule(publicDeleteReview);\nexport const bulkDeleteReviews: MaybeContext<\n  BuildRESTFunction<typeof publicBulkDeleteReviews> &\n    typeof publicBulkDeleteReviews\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteReviews);\nexport const setReply: MaybeContext<\n  BuildRESTFunction<typeof publicSetReply> & typeof publicSetReply\n> = /*#__PURE__*/ createRESTModule(publicSetReply);\nexport const removeReply: MaybeContext<\n  BuildRESTFunction<typeof publicRemoveReply> & typeof publicRemoveReply\n> = /*#__PURE__*/ createRESTModule(publicRemoveReply);\nexport const updateModerationStatus: MaybeContext<\n  BuildRESTFunction<typeof publicUpdateModerationStatus> &\n    typeof publicUpdateModerationStatus\n> = /*#__PURE__*/ createRESTModule(publicUpdateModerationStatus);\nexport const bulkUpdateModerationStatus: MaybeContext<\n  BuildRESTFunction<typeof publicBulkUpdateModerationStatus> &\n    typeof publicBulkUpdateModerationStatus\n> = /*#__PURE__*/ createRESTModule(publicBulkUpdateModerationStatus);\nexport const countReviews: MaybeContext<\n  BuildRESTFunction<typeof publicCountReviews> & typeof publicCountReviews\n> = /*#__PURE__*/ createRESTModule(publicCountReviews);\nexport const queryReviews: MaybeContext<\n  BuildRESTFunction<typeof customQueryReviews> & typeof customQueryReviews\n> = /*#__PURE__*/ createRESTModule(customQueryReviews);\n/**\n * Triggered when a review is created.\n */\nexport const onReviewCreated: BuildEventDefinition<\n  typeof publicOnReviewCreated\n> &\n  typeof publicOnReviewCreated = createEventModule(publicOnReviewCreated);\n/**\n * Triggered when a review is deleted.\n */\nexport const onReviewDeleted: BuildEventDefinition<\n  typeof publicOnReviewDeleted\n> &\n  typeof publicOnReviewDeleted = createEventModule(publicOnReviewDeleted);\n/**\n * Triggered when a review's moderation status is changed or a review is created.\n */\nexport const onReviewModerationStatusChanged: BuildEventDefinition<\n  typeof publicOnReviewModerationStatusChanged\n> &\n  typeof publicOnReviewModerationStatusChanged = createEventModule(\n  publicOnReviewModerationStatusChanged\n);\n/**\n * Triggered when a review's moderation status is set to `\"APPROVED\"`.\n */\nexport const onReviewPublished: BuildEventDefinition<\n  typeof publicOnReviewPublished\n> &\n  typeof publicOnReviewPublished = createEventModule(publicOnReviewPublished);\n/**\n * Triggered when a review is updated.\n */\nexport const onReviewUpdated: BuildEventDefinition<\n  typeof publicOnReviewUpdated\n> &\n  typeof publicOnReviewUpdated = createEventModule(publicOnReviewUpdated);\n\nexport {\n  AuthorType,\n  ModerationModerationStatus,\n  OriginType,\n  SourceType,\n  WebhookIdentityType,\n  SortOrder,\n  UpdateModerationStatusRequestModerationStatus,\n  ModerationStatus,\n} from './reviews-v1-review-reviews.universal.js';\nexport {\n  Review,\n  ReviewContent,\n  Media,\n  MediaMediaOneOf,\n  VideoResolution,\n  Author,\n  Reply,\n  Moderation,\n  Origin,\n  Source,\n  SourceSourceTypeOptionsOneOf,\n  ReviewRequestOptions,\n  ReviewPublished,\n  ModerationStatusChanged,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  EntityCreatedEvent,\n  RestoreInfo,\n  EntityUpdatedEvent,\n  EntityDeletedEvent,\n  ActionEvent,\n  Empty,\n  MessageEnvelope,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  AccountInfo,\n  GetReviewRequest,\n  GetReviewResponse,\n  CreateReviewAndContactRequest,\n  CreateReviewResponse,\n  CreateReviewRequest,\n  BulkCreateReviewRequest,\n  BulkCreateReviewResponse,\n  BulkReviewResult,\n  ItemMetadata,\n  ApplicationError,\n  BulkActionMetadata,\n  UpdateReviewContentRequest,\n  UpdateReviewContentResponse,\n  UpdateReviewRequest,\n  UpdateReviewResponse,\n  DeleteReviewRequest,\n  DeleteReviewResponse,\n  BulkDeleteReviewsRequest,\n  BulkDeleteReviewsResponse,\n  QueryReviewsRequest,\n  QueryV2,\n  Sorting,\n  CursorPaging,\n  QueryReviewsResponse,\n  PagingMetadataV2,\n  Cursors,\n  SetReplyRequest,\n  SetReplyResponse,\n  RemoveReplyRequest,\n  RemoveReplyResponse,\n  UpdateModerationStatusRequest,\n  UpdateModerationStatusResponse,\n  BulkUpdateModerationStatusRequest,\n  BulkUpdateModerationStatusResponse,\n  CountReviewsRequest,\n  CountReviewsResponse,\n  BaseEventMetadata,\n  EventMetadata,\n  AccountInfoMetadata,\n  ReviewCreatedEnvelope,\n  ReviewDeletedEnvelope,\n  ReviewModerationStatusChangedEnvelope,\n  ReviewPublishedEnvelope,\n  ReviewUpdatedEnvelope,\n  GetReviewOptions,\n  BulkCreateReviewOptions,\n  UpdateReview,\n  BulkDeleteReviewsOptions,\n  QueryReviewsOptions,\n  ReviewsQueryResult,\n  ReviewsQueryBuilder,\n  ReviewQuerySpec,\n  UpdateModerationStatusOptions,\n  BulkUpdateModerationStatusOptions,\n  CountReviewsOptions,\n} from './reviews-v1-review-reviews.universal.js';\nexport { utils } from './reviews-v1-review-reviews.universal.js';\nexport {\n  AuthorTypeWithLiterals,\n  ModerationModerationStatusWithLiterals,\n  OriginTypeWithLiterals,\n  SourceTypeWithLiterals,\n  WebhookIdentityTypeWithLiterals,\n  SortOrderWithLiterals,\n  UpdateModerationStatusRequestModerationStatusWithLiterals,\n  ModerationStatusWithLiterals,\n  CountReviewsApplicationErrors,\n  CommonQueryWithEntityContext,\n  ReviewQuery,\n} from './reviews-v1-review-reviews.universal.js';\n"],"mappings":"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","names":["renameKeysFromRESTResponseToSDKResponse","transformRESTFloatToSDKFloat","transformRESTImageToSDKImage","transformRESTTimestampToSDKTimestamp","transformPaths","transformRESTVideoV2ToSDKVideoV2","payload","transformPaths","AuthorType","ModerationModerationStatus","OriginType","SourceType","WebhookIdentityType","SortOrder","UpdateModerationStatusRequestModerationStatus","ModerationStatus","getReview","createReview","bulkCreateReview","updateReview","deleteReview","bulkDeleteReviews","queryReviews","setReply","removeReply","updateModerationStatus","bulkUpdateModerationStatus","countReviews","getReview","createReview","bulkCreateReview","updateReview","deleteReview","bulkDeleteReviews","queryReviews","typedQueryReviews","setReply","removeReply","updateModerationStatus","bulkUpdateModerationStatus","countReviews","renameKeysFromRESTResponseToSDKResponse","transformPaths","transformRESTTimestampToSDKTimestamp","transformRESTFloatToSDKFloat","transformRESTImageToSDKImage","transformRESTVideoV2ToSDKVideoV2","queryReviews","typedQueryReviews","getReview","createReview","bulkCreateReview","updateReview","deleteReview","bulkDeleteReviews","setReply","removeReply","updateModerationStatus","bulkUpdateModerationStatus","countReviews","onReviewCreated","onReviewDeleted","onReviewModerationStatusChanged","onReviewPublished","onReviewUpdated"]}