@wix/auto_sdk_comments_comments 1.0.48 → 1.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/build/cjs/index.d.ts +1 -1
  2. package/build/cjs/index.js +7 -0
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/cjs/index.typings.d.ts +15 -1
  5. package/build/cjs/index.typings.js +7 -0
  6. package/build/cjs/index.typings.js.map +1 -1
  7. package/build/cjs/meta.d.ts +15 -1
  8. package/build/cjs/meta.js +7 -0
  9. package/build/cjs/meta.js.map +1 -1
  10. package/build/es/index.d.mts +1 -1
  11. package/build/es/index.mjs +6 -0
  12. package/build/es/index.mjs.map +1 -1
  13. package/build/es/index.typings.d.mts +15 -1
  14. package/build/es/index.typings.mjs +6 -0
  15. package/build/es/index.typings.mjs.map +1 -1
  16. package/build/es/meta.d.mts +15 -1
  17. package/build/es/meta.mjs +6 -0
  18. package/build/es/meta.mjs.map +1 -1
  19. package/build/internal/cjs/index.d.ts +1 -1
  20. package/build/internal/cjs/index.js +7 -0
  21. package/build/internal/cjs/index.js.map +1 -1
  22. package/build/internal/cjs/index.typings.d.ts +15 -1
  23. package/build/internal/cjs/index.typings.js +7 -0
  24. package/build/internal/cjs/index.typings.js.map +1 -1
  25. package/build/internal/cjs/meta.d.ts +15 -1
  26. package/build/internal/cjs/meta.js +7 -0
  27. package/build/internal/cjs/meta.js.map +1 -1
  28. package/build/internal/es/index.d.mts +1 -1
  29. package/build/internal/es/index.mjs +6 -0
  30. package/build/internal/es/index.mjs.map +1 -1
  31. package/build/internal/es/index.typings.d.mts +15 -1
  32. package/build/internal/es/index.typings.mjs +6 -0
  33. package/build/internal/es/index.typings.mjs.map +1 -1
  34. package/build/internal/es/meta.d.mts +15 -1
  35. package/build/internal/es/meta.mjs +6 -0
  36. package/build/internal/es/meta.mjs.map +1 -1
  37. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../index.ts","../../../src/comments-v2-comment-comments.public.ts","../../../src/comments-v2-comment-comments.universal.ts","../../../src/comments-v2-comment-comments.http.ts","../../../src/comments-v2-comment-comments.context.ts"],"sourcesContent":["export * from './src/comments-v2-comment-comments.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTAudioToSDKAudio } from '@wix/sdk-runtime/transformations/audio';\nimport { transformRESTDocumentToSDKDocument } from '@wix/sdk-runtime/transformations/document';\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 BulkDeleteCommentOptions,\n BulkDeleteCommentResponse,\n BulkHideCommentOptions,\n BulkHideCommentResponse,\n BulkModerateDraftContentOptions,\n BulkModerateDraftContentResponse,\n BulkMoveCommentByFilterOptions,\n BulkMoveCommentByFilterResponse,\n BulkPublishCommentOptions,\n BulkPublishCommentResponse,\n Comment,\n CommentContentChangedEnvelope,\n CommentCreatedEnvelope,\n CommentDeletedEnvelope,\n CommentHiddenEnvelope,\n CommentMarkedEnvelope,\n CommentMovedEnvelope,\n CommentPublishedEnvelope,\n CommentQuery,\n CommentResourceCommentCountChangedEnvelope,\n CommentUnmarkedEnvelope,\n CommentUpdatedEnvelope,\n CommentsQueryBuilder,\n CountCommentsApplicationErrors,\n CountCommentsOptions,\n CountCommentsResponse,\n CreateCommentApplicationErrors,\n GetCommentThreadOptions,\n GetCommentThreadResponse,\n HideCommentResponse,\n ListCommentsByResourceOptions,\n ListCommentsByResourceResponse,\n MarkCommentResponse,\n ModerateDraftContentOptions,\n ModerateDraftContentResponse,\n PublishCommentResponse,\n QueryCommentsOptions,\n QueryCommentsResponse,\n UnmarkCommentResponse,\n UpdateComment,\n UpdateCommentApplicationErrors,\n bulkDeleteComment as universalBulkDeleteComment,\n bulkHideComment as universalBulkHideComment,\n bulkModerateDraftContent as universalBulkModerateDraftContent,\n bulkMoveCommentByFilter as universalBulkMoveCommentByFilter,\n bulkPublishComment as universalBulkPublishComment,\n countComments as universalCountComments,\n createComment as universalCreateComment,\n deleteComment as universalDeleteComment,\n getComment as universalGetComment,\n getCommentThread as universalGetCommentThread,\n hideComment as universalHideComment,\n listCommentsByResource as universalListCommentsByResource,\n markComment as universalMarkComment,\n moderateDraftContent as universalModerateDraftContent,\n publishComment as universalPublishComment,\n queryComments as universalQueryComments,\n typedQueryComments as universalTypedQueryComments,\n unmarkComment as universalUnmarkComment,\n updateComment as universalUpdateComment,\n} from './comments-v2-comment-comments.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/comments' };\n\nexport function createComment(httpClient: HttpClient): CreateCommentSignature {\n return (\n comment: NonNullablePaths<\n Comment,\n `appId` | `content` | `contextId` | `resourceId`,\n 2\n >\n ) =>\n universalCreateComment(\n comment,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateCommentSignature {\n /**\n * Creates a new comment and publishes it.\n *\n * The `appId`, `contextId`, and `resourceId` are all required and associate the created comment with the specific\n * resource it responds to. See **Integrations** in the Comments introduction for a list of integrated scopes for these fields.\n *\n * If the created comment is a direct response to another comment, the `commentId` of the parent comment should be passed\n * as `parentComment.id` in this comment's request. See **Terminology** in the Comments introduction for additional information on parent comments and replies.\n * @param - Comment to create.\n * @returns Created comment.\n */\n (\n comment: NonNullablePaths<\n Comment,\n `appId` | `content` | `contextId` | `resourceId`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: CreateCommentApplicationErrors;\n }\n >;\n}\n\nexport function getComment(httpClient: HttpClient): GetCommentSignature {\n return (commentId: string) =>\n universalGetComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetCommentSignature {\n /**\n * Retrieves a comment.\n * @param - ID of the comment to retrieve.\n * @returns Retrieved comment.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n >\n >;\n}\n\nexport function updateComment(httpClient: HttpClient): UpdateCommentSignature {\n return (\n _id: string,\n comment: NonNullablePaths<UpdateComment, `revision`, 2>\n ) =>\n universalUpdateComment(\n _id,\n comment,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateCommentSignature {\n /**\n * Updates a comment.\n *\n * Each time the comment is updated, `revision` increments by 1. The current `revision` must be\n * passed when updating the comment. This ensures you're working with the latest comment and\n * prevents unintended overwrites.\n * @param - Comment ID.\n * @returns Updated comment.\n */\n (\n _id: string,\n comment: NonNullablePaths<UpdateComment, `revision`, 2>\n ): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: UpdateCommentApplicationErrors;\n }\n >;\n}\n\nexport function deleteComment(httpClient: HttpClient): DeleteCommentSignature {\n return (commentId: string) =>\n universalDeleteComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteCommentSignature {\n /**\n * Deletes a comment.\n *\n * This method deletes the `content` of the comment and sets its `status` to `DELETED`.\n * @param - ID of the comment to delete.\n */\n (commentId: string): Promise<void>;\n}\n\nexport function moderateDraftContent(\n httpClient: HttpClient\n): ModerateDraftContentSignature {\n return (\n commentId: string,\n revision: string,\n options?: ModerateDraftContentOptions\n ) =>\n universalModerateDraftContent(\n commentId,\n revision,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ModerateDraftContentSignature {\n /**\n * Moderates the draft content of a comment.\n *\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate multiple comments, call Bulk Moderate Draft Content.\n * @param - ID of the comment to moderate.\n * @param - Revision number, which increments by `1` each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n */\n (\n commentId: string,\n revision: string,\n options?: ModerateDraftContentOptions\n ): Promise<\n NonNullablePaths<\n ModerateDraftContentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function queryComments(httpClient: HttpClient): QueryCommentsSignature {\n return (options: QueryCommentsOptions) =>\n universalQueryComments(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryCommentsSignature {\n /**\n * Creates a query to retrieve a list of comments.\n *\n * The `queryComments()` function builds a query to retrieve a list of comments and returns a [`CommentsQueryBuilder`](#commentsquerybuilder) object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#commentsquerybuilder/find) function.\n *\n * You can refine the query by chaining `CommentsQueryBuilder` functions onto the query. `CommentsQueryBuilder` functions enable you to sort, filter, and control the results that `queryComments()` returns.\n *\n * `queryComments()` runs with the following `CommentsQueryBuilder` default that you can override:\n * + `ascending(\"_id\")`\n *\n * The functions that are chained to `queryComments()` are applied in the order they are called. For example, if you apply `ascending(\"voteSummary.netVoteCount\")` and then `ascending(\"replyCount\")`, the results are sorted first by the `\"voteSummary.netVoteCount\"`, and then, if there are multiple results with the same `\"voteSummary.netVoteCount\"`, the items are sorted by `\"replyCount\"`.\n *\n * The following `CommentsQueryBuilder` functions are supported for the `queryComments()` function. For a full description of the comment object, see the object returned for the [`items`](#commentsqueryresult/items) property in [`CommentsQueryResult`](#commentsqueryresult).\n */\n (options: QueryCommentsOptions): CommentsQueryBuilder;\n}\n\nexport function typedQueryComments(\n httpClient: HttpClient\n): TypedQueryCommentsSignature {\n return (query: CommentQuery, options: QueryCommentsOptions) =>\n universalTypedQueryComments(\n query,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface TypedQueryCommentsSignature {\n /** */\n (query: CommentQuery, options: QueryCommentsOptions): Promise<\n NonNullablePaths<\n QueryCommentsResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\n 5\n >\n >;\n}\n\nexport function markComment(httpClient: HttpClient): MarkCommentSignature {\n return (commentId: string) =>\n universalMarkComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface MarkCommentSignature {\n /**\n * Sets `marked` to `TRUE` to mark a comment.\n *\n * Call Query Comments to filter for marked comments to then apply customization to.\n * See Sample Flows for an example.\n * @param - ID of the comment to mark.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n MarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function unmarkComment(httpClient: HttpClient): UnmarkCommentSignature {\n return (commentId: string) =>\n universalUnmarkComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UnmarkCommentSignature {\n /**\n * Sets `marked` to `FALSE` to unmark a comment.\n * @param - ID of the comment to unmark.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n UnmarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function hideComment(httpClient: HttpClient): HideCommentSignature {\n return (commentId: string) =>\n universalHideComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface HideCommentSignature {\n /**\n * Hides a comment in a widget. The comment status becomes `HIDDEN`.\n * @param - ID of the comment to hide.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n HideCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function publishComment(\n httpClient: HttpClient\n): PublishCommentSignature {\n return (commentId: string) =>\n universalPublishComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface PublishCommentSignature {\n /**\n * Publishes a comment with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n *\n * To publish a new comment, call Create Comment.\n * @param - ID of the comment to publish.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n PublishCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function countComments(httpClient: HttpClient): CountCommentsSignature {\n return (appId: string, options?: CountCommentsOptions) =>\n universalCountComments(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CountCommentsSignature {\n /**\n * Counts comments, given the specified filtering. Comments with the `HIDDEN` status are not included in the response.\n * @param - App ID to count the comments of.\n */\n (appId: string, options?: CountCommentsOptions): Promise<\n NonNullablePaths<CountCommentsResponse, `count`, 2> & {\n __applicationErrorsType?: CountCommentsApplicationErrors;\n }\n >;\n}\n\nexport function listCommentsByResource(\n httpClient: HttpClient\n): ListCommentsByResourceSignature {\n return (\n appId: string,\n options?: NonNullablePaths<\n ListCommentsByResourceOptions,\n `contextId` | `resourceId`,\n 2\n >\n ) =>\n universalListCommentsByResource(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListCommentsByResourceSignature {\n /**\n * Lists published comments and replies from a specified resource, such as a blog post.\n * @param - ID of the app from which the comments are listed.\n */\n (\n appId: string,\n options?: NonNullablePaths<\n ListCommentsByResourceOptions,\n `contextId` | `resourceId`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n ListCommentsByResourceResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\n 5\n >\n >;\n}\n\nexport function getCommentThread(\n httpClient: HttpClient\n): GetCommentThreadSignature {\n return (commentId: string, options?: GetCommentThreadOptions) =>\n universalGetCommentThread(\n commentId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetCommentThreadSignature {\n /**\n * Returns a thread of a comment or a reply.\n *\n * If you request a comment thread, the method returns a single comment with cursors. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n *\n * If you request a reply thread, the method returns a reply with its parent comment. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n * @param - Comment ID.\n */\n (commentId: string, options?: GetCommentThreadOptions): Promise<\n NonNullablePaths<\n GetCommentThreadResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\n 5\n >\n >;\n}\n\nexport function bulkPublishComment(\n httpClient: HttpClient\n): BulkPublishCommentSignature {\n return (\n appId: string,\n options: NonNullablePaths<BulkPublishCommentOptions, `filter`, 2>\n ) =>\n universalBulkPublishComment(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkPublishCommentSignature {\n /**\n * Publishes multiple comments with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n * @param - ID of the app where to publish the comment.\n */\n (\n appId: string,\n options: NonNullablePaths<BulkPublishCommentOptions, `filter`, 2>\n ): Promise<NonNullablePaths<BulkPublishCommentResponse, `jobId`, 2>>;\n}\n\nexport function bulkHideComment(\n httpClient: HttpClient\n): BulkHideCommentSignature {\n return (\n appId: string,\n options: NonNullablePaths<BulkHideCommentOptions, `filter`, 2>\n ) =>\n universalBulkHideComment(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkHideCommentSignature {\n /**\n * Hides multiple comments. The comment status becomes `HIDDEN`.\n * @param - ID of the app where to hide the comments.\n */\n (\n appId: string,\n options: NonNullablePaths<BulkHideCommentOptions, `filter`, 2>\n ): Promise<NonNullablePaths<BulkHideCommentResponse, `jobId`, 2>>;\n}\n\nexport function bulkDeleteComment(\n httpClient: HttpClient\n): BulkDeleteCommentSignature {\n return (\n appId: string,\n options: NonNullablePaths<BulkDeleteCommentOptions, `filter`, 2>\n ) =>\n universalBulkDeleteComment(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkDeleteCommentSignature {\n /**\n * Deletes multiple comments.\n * @param - ID of the app where to delete the comments.\n */\n (\n appId: string,\n options: NonNullablePaths<BulkDeleteCommentOptions, `filter`, 2>\n ): Promise<NonNullablePaths<BulkDeleteCommentResponse, `jobId`, 2>>;\n}\n\nexport function bulkModerateDraftContent(\n httpClient: HttpClient\n): BulkModerateDraftContentSignature {\n return (\n appId: string,\n options: NonNullablePaths<\n BulkModerateDraftContentOptions,\n `draftContentAction` | `filter`,\n 2\n >\n ) =>\n universalBulkModerateDraftContent(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkModerateDraftContentSignature {\n /**\n * Moderates the draft content of multiple comments that match the specified filter.\n *\n * The same action, `APPROVE` or `REJECT`, applies to all comments that match the filter.\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate a single comment, call Moderate Draft Content.\n * @param - ID of the app where to moderate the comments.\n */\n (\n appId: string,\n options: NonNullablePaths<\n BulkModerateDraftContentOptions,\n `draftContentAction` | `filter`,\n 2\n >\n ): Promise<NonNullablePaths<BulkModerateDraftContentResponse, `jobId`, 2>>;\n}\n\nexport function bulkMoveCommentByFilter(\n httpClient: HttpClient\n): BulkMoveCommentByFilterSignature {\n return (\n appId: string,\n options?: NonNullablePaths<\n BulkMoveCommentByFilterOptions,\n `destination.contextId` | `destination.resourceId` | `filter`,\n 3\n >\n ) =>\n universalBulkMoveCommentByFilter(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkMoveCommentByFilterSignature {\n /**\n * Moves multiple comments to another resource.\n * @param - ID of the app from which to move the comments.\n */\n (\n appId: string,\n options?: NonNullablePaths<\n BulkMoveCommentByFilterOptions,\n `destination.contextId` | `destination.resourceId` | `filter`,\n 3\n >\n ): Promise<NonNullablePaths<BulkMoveCommentByFilterResponse, `jobId`, 2>>;\n}\n\nexport const onCommentDeleted = EventDefinition(\n 'wix.comments.v2.comment_deleted',\n true,\n (event: CommentDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'undefined.createdDate' },\n { path: 'undefined.updatedDate' },\n { path: 'undefined.commentDate' },\n { path: 'undefined.content.commentDate' },\n { path: 'undefined.content.richContent.metadata.createdTimestamp' },\n { path: 'undefined.content.richContent.metadata.updatedTimestamp' },\n { path: 'undefined.draftContent.commentDate' },\n {\n path: 'undefined.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'undefined.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'undefined.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'undefined.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'undefined.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'undefined.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'undefined.content.attachments.image' },\n { path: 'undefined.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'undefined.content.attachments.video' },\n { path: 'undefined.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'undefined.content.attachments.audio' },\n { path: 'undefined.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'undefined.content.attachments.document' },\n { path: 'undefined.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentDeletedEnvelope>();\nexport const onCommentContentChanged = EventDefinition(\n 'wix.comments.v2.comment_comment_content_changed',\n true,\n (event: CommentContentChangedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.previousContent.commentDate' },\n {\n path: 'data.previousContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.previousContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.currentContent.commentDate' },\n {\n path: 'data.currentContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.currentContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.previousContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.previousContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.previousContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.previousContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.currentContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.currentContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.currentContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.previousContent.attachments.image' },\n { path: 'data.currentContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.previousContent.attachments.video' },\n { path: 'data.currentContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.previousContent.attachments.audio' },\n { path: 'data.currentContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.previousContent.attachments.document' },\n { path: 'data.currentContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentContentChangedEnvelope>();\nexport const onCommentHidden = EventDefinition(\n 'wix.comments.v2.comment_comment_hidden',\n true,\n (event: CommentHiddenEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentHiddenEnvelope>();\nexport const onCommentMarked = EventDefinition(\n 'wix.comments.v2.comment_comment_marked',\n true,\n (event: CommentMarkedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentMarkedEnvelope>();\nexport const onCommentMoved = EventDefinition(\n 'wix.comments.v2.comment_comment_moved',\n true,\n (event: CommentMovedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentMovedEnvelope>();\nexport const onCommentPublished = EventDefinition(\n 'wix.comments.v2.comment_comment_published',\n true,\n (event: CommentPublishedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentPublishedEnvelope>();\nexport const onCommentUnmarked = EventDefinition(\n 'wix.comments.v2.comment_comment_unmarked',\n true,\n (event: CommentUnmarkedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentUnmarkedEnvelope>();\nexport const onCommentCreated = EventDefinition(\n 'wix.comments.v2.comment_created',\n true,\n (event: CommentCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.commentDate' },\n { path: 'entity.content.commentDate' },\n { path: 'entity.content.richContent.metadata.createdTimestamp' },\n { path: 'entity.content.richContent.metadata.updatedTimestamp' },\n { path: 'entity.draftContent.commentDate' },\n {\n path: 'entity.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'entity.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'entity.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.content.attachments.image' },\n { path: 'entity.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.content.attachments.video' },\n { path: 'entity.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'entity.content.attachments.audio' },\n { path: 'entity.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'entity.content.attachments.document' },\n { path: 'entity.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentCreatedEnvelope>();\nexport const onCommentResourceCommentCountChanged = EventDefinition(\n 'wix.comments.v2.comment_resource_comment_count_changed',\n true,\n (event: CommentResourceCommentCountChangedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [{ path: 'metadata.eventTime' }],\n },\n ])\n )\n)<CommentResourceCommentCountChangedEnvelope>();\nexport const onCommentUpdated = EventDefinition(\n 'wix.comments.v2.comment_updated',\n true,\n (event: CommentUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.commentDate' },\n { path: 'entity.content.commentDate' },\n { path: 'entity.content.richContent.metadata.createdTimestamp' },\n { path: 'entity.content.richContent.metadata.updatedTimestamp' },\n { path: 'entity.draftContent.commentDate' },\n {\n path: 'entity.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'entity.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n { path: 'modifiedFields.createdDate' },\n { path: 'modifiedFields.updatedDate' },\n { path: 'modifiedFields.commentDate' },\n { path: 'modifiedFields.content.commentDate' },\n {\n path: 'modifiedFields.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'modifiedFields.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'modifiedFields.draftContent.commentDate' },\n {\n path: 'modifiedFields.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'modifiedFields.draftContent.richContent.metadata.updatedTimestamp',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'entity.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.content.attachments.image' },\n { path: 'entity.draftContent.attachments.image' },\n { path: 'modifiedFields.content.attachments.image' },\n { path: 'modifiedFields.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.content.attachments.video' },\n { path: 'entity.draftContent.attachments.video' },\n { path: 'modifiedFields.content.attachments.video' },\n { path: 'modifiedFields.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'entity.content.attachments.audio' },\n { path: 'entity.draftContent.attachments.audio' },\n { path: 'modifiedFields.content.attachments.audio' },\n { path: 'modifiedFields.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'entity.content.attachments.document' },\n { path: 'entity.draftContent.attachments.document' },\n { path: 'modifiedFields.content.attachments.document' },\n { path: 'modifiedFields.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentUpdatedEnvelope>();\n\nexport {\n AccountInfo,\n AccountInfoMetadata,\n Action,\n ActionEvent,\n Alignment,\n AnchorData,\n App,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n AppType,\n AspectRatio,\n Attachment,\n AttachmentMediaOneOf,\n AudioData,\n Background,\n BackgroundBackgroundOneOf,\n BackgroundImage,\n BackgroundType,\n BaseEventMetadata,\n BlockquoteData,\n BookingData,\n Border,\n BorderColors,\n BorderWidths,\n BulkDeleteCommentOptions,\n BulkDeleteCommentRequest,\n BulkDeleteCommentResponse,\n BulkHideCommentOptions,\n BulkHideCommentRequest,\n BulkHideCommentResponse,\n BulkModerateDraftContentOptions,\n BulkModerateDraftContentRequest,\n BulkModerateDraftContentResponse,\n BulkMoveCommentByFilterOptions,\n BulkMoveCommentByFilterRequest,\n BulkMoveCommentByFilterResponse,\n BulkPublishCommentOptions,\n BulkPublishCommentRequest,\n BulkPublishCommentResponse,\n BulletedListData,\n ButtonData,\n ButtonDataType,\n ButtonStyles,\n CaptionData,\n CardStyles,\n CellStyle,\n CodeBlockData,\n CollapsibleListData,\n ColorData,\n Colors,\n Comment,\n CommentAuthor,\n CommentAuthorIdentityOneOf,\n CommentContent,\n CommentContentChanged,\n CommentContentChangedEnvelope,\n CommentCreatedEnvelope,\n CommentDeleted,\n CommentDeletedEnvelope,\n CommentHidden,\n CommentHiddenEnvelope,\n CommentMarked,\n CommentMarkedEnvelope,\n CommentModerated,\n CommentMoved,\n CommentMovedEnvelope,\n CommentPublished,\n CommentPublishedEnvelope,\n CommentQuerySpec,\n CommentReactionSummary,\n CommentResourceCommentCountChangedEnvelope,\n CommentSort,\n CommentUnmarked,\n CommentUnmarkedEnvelope,\n CommentUpdatedEnvelope,\n CommentsQueryBuilder,\n CommentsQueryResult,\n ContactDetails,\n ContentAuthor,\n ContentAuthorAuthorOneOf,\n CountCommentsOptions,\n CountCommentsRequest,\n CountCommentsResponse,\n CreateCommentRequest,\n CreateCommentResponse,\n Crop,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Cursors,\n CustomTag,\n Decoration,\n DecorationDataOneOf,\n DecorationType,\n DeleteByFilterOperation,\n DeleteByIdsOperation,\n DeleteCommentRequest,\n DeleteCommentResponse,\n Design,\n DesignTarget,\n Destination,\n Dimensions,\n Direction,\n DividerData,\n DividerDataAlignment,\n DocumentStyle,\n DomainEvent,\n DomainEventBodyOneOf,\n EmbedData,\n Empty,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n EventData,\n EventMetadata,\n File,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n FontFamilyData,\n FontSizeData,\n FontType,\n GIF,\n GIFData,\n GIFType,\n GalleryData,\n GalleryOptions,\n GalleryOptionsLayout,\n GetCommentRequest,\n GetCommentResponse,\n GetCommentThreadOptions,\n GetCommentThreadRequest,\n GetCommentThreadResponse,\n Gradient,\n HTMLData,\n HTMLDataDataOneOf,\n HeadingData,\n Height,\n HideCommentRequest,\n HideCommentResponse,\n IdentificationData,\n IdentificationDataIdOneOf,\n Image,\n ImageData,\n ImageDataStyles,\n ImagePosition,\n ImageStyles,\n InitialExpandedItems,\n InternalDocument,\n InternalDocumentUpdateByFilterOperation,\n InternalDocumentUpdateOperation,\n InternalUpdateExistingOperation,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n Item,\n ItemDataOneOf,\n ItemStyle,\n Layout,\n LayoutCellData,\n LayoutData,\n LayoutType,\n LineStyle,\n Link,\n LinkData,\n LinkDataOneOf,\n LinkPreviewData,\n LinkPreviewDataStyles,\n ListCommentsByResourceCursorPaging,\n ListCommentsByResourceOptions,\n ListCommentsByResourceRequest,\n ListCommentsByResourceResponse,\n ListValue,\n MapData,\n MapSettings,\n MapType,\n MarkCommentRequest,\n MarkCommentResponse,\n Media,\n Mention,\n MentionData,\n MentionIdentityOneOf,\n MessageEnvelope,\n Metadata,\n ModerateDraftContentOptions,\n ModerateDraftContentRequest,\n ModerateDraftContentResponse,\n Node,\n NodeDataOneOf,\n NodeStyle,\n NodeType,\n NullValue,\n Oembed,\n Option,\n OptionDesign,\n OptionLayout,\n Order,\n OrderedListData,\n Orientation,\n PDFSettings,\n Page,\n ParagraphData,\n ParentComment,\n Permissions,\n Placement,\n PlaybackOptions,\n PluginContainerData,\n PluginContainerDataAlignment,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Poll,\n PollData,\n PollDataLayout,\n PollDesign,\n PollLayout,\n PollLayoutDirection,\n PollLayoutType,\n Position,\n PricingData,\n PublishCommentRequest,\n PublishCommentResponse,\n QueryCommentsOptions,\n QueryCommentsRequest,\n QueryCommentsResponse,\n Rel,\n RepliesListResponse,\n ReplySort,\n ReplySortOrder,\n Resizing,\n ResourceCommentCountChanged,\n ResponsivenessBehaviour,\n RestoreInfo,\n RibbonStyles,\n RichContent,\n Scaling,\n Settings,\n ShapeData,\n ShapeDataStyles,\n SortOrder,\n Sorting,\n Source,\n Spoiler,\n SpoilerData,\n Status,\n Styles,\n StylesBorder,\n StylesPosition,\n TableCellData,\n TableData,\n Target,\n TextAlignment,\n TextData,\n TextNodeStyle,\n TextStyle,\n Thumbnails,\n ThumbnailsAlignment,\n Type,\n URI,\n UnmarkCommentRequest,\n UnmarkCommentResponse,\n UpdateComment,\n UpdateCommentRequest,\n UpdateCommentResponse,\n UpdateInternalDocumentsEvent,\n UpdateInternalDocumentsEventOperationOneOf,\n VersionedDeleteByIdsOperation,\n VersionedDocumentId,\n VersionedDocumentUpdateOperation,\n VersioningMode,\n VerticalAlignment,\n VerticalAlignmentAlignment,\n Video,\n VideoData,\n VideoResolution,\n ViewMode,\n ViewRole,\n VoteRole,\n VoteSummary,\n WebhookIdentityType,\n Width,\n WidthType,\n utils,\n} from './comments-v2-comment-comments.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 ambassadorWixCommentsV2Comment from './comments-v2-comment-comments.http.js';\n// @ts-ignore\nimport { transformSDKAudioToRESTAudio } from '@wix/sdk-runtime/transformations/audio';\nimport { transformRESTAudioToSDKAudio } from '@wix/sdk-runtime/transformations/audio';\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 { transformSDKDocumentToRESTDocument } from '@wix/sdk-runtime/transformations/document';\nimport { transformRESTDocumentToSDKDocument } from '@wix/sdk-runtime/transformations/document';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\n\n/**\n * A comment is a user-generated message in response to a specific resource. It allows site visitors\n * to share feedback or engage in discussions around different types of resources, including blog posts, forum threads,\n * or other site content. Comments are composed of text, images, videos, or other forms of media.\n */\nexport interface Comment {\n /**\n * Comment ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the comment was created.\n *\n * **Note:** This is the date from the system database, not the actual date when the comment was created. For example, if you migrate comments created in 2016, the `createdDate` field will show the current year. For the actual creation date, see the `commentDate` field.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the comment was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the app that the comment is added to.\n * @format GUID\n * @immutable\n */\n appId?: string | null;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @immutable\n * @maxLength 128\n */\n contextId?: string | null;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @immutable\n * @maxLength 128\n */\n resourceId?: string | null;\n /** Published comment content. */\n content?: CommentContent;\n /**\n * Comment's author.\n * @immutable\n */\n author?: CommentAuthor;\n /**\n * Parent comment information.\n *\n * Only present if this comment is in a direct reply to another comment.\n * See **Terminology** in the Comments introduction\n * for more information about parent comments.\n */\n parentComment?: ParentComment;\n /**\n * Number of comments that reply to this comment.\n * @readonly\n */\n replyCount?: number;\n /**\n * Summary of votes.\n * @readonly\n */\n voteSummary?: VoteSummary;\n /**\n * Comment status.\n * @readonly\n */\n status?: StatusWithLiterals;\n /**\n * Comment rating.\n * @readonly\n */\n rating?: number | null;\n /**\n * Summary of reactions.\n * @readonly\n */\n reactionSummary?: CommentReactionSummary;\n /** Whether the comment is marked. */\n marked?: boolean;\n /**\n * Date and time when the comment was actually created.\n * @immutable\n */\n commentDate?: Date | null;\n /**\n * Whether the comment has the updated content.\n * @readonly\n */\n contentEdited?: boolean | null;\n}\n\n/** Comment content. */\nexport interface CommentContent {\n /**\n * Comment rich content.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" exampleid=\"5693ba57-d141-42bf-a0d6-1eb11c73bddf\" plugins=\"emoji.heading.indent.lineSpacing.actionButton.audio.codeBlock.collapsibleList.divider.file.gallery.giphy.hashtag.html.image.link.linkButton.linkPreview.mentions.poll.spoiler.table.textColor.textHighlight.verticalEmbed.video\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n */\n richContent?: RichContent;\n /**\n * People to tag with this comment.\n *\n * People can include users, members, visitors, or groups.\n * @maxSize 10\n */\n mentions?: Mention[];\n /**\n * Content attachments.\n * @maxSize 10\n */\n attachments?: Attachment[];\n}\n\nexport interface RichContent {\n /** Node objects representing a rich content document. */\n nodes?: Node[];\n /** Object metadata. */\n metadata?: Metadata;\n /** Global styling for header, paragraph, block quote, and code block nodes in the object. */\n documentStyle?: DocumentStyle;\n}\n\nexport interface Node extends NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** Data for a layout node. Reserved for future use. */\n layoutData?: LayoutData;\n /** Data for a cell node. */\n layoutCellData?: LayoutCellData;\n /** Data for a shape node. */\n shapeData?: ShapeData;\n /** Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format. */\n type?: NodeTypeWithLiterals;\n /** Node ID. */\n id?: string;\n /** A list of child nodes. */\n nodes?: Node[];\n /** Padding and background color styling for the node. */\n style?: NodeStyle;\n}\n\n/** @oneof */\nexport interface NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** Data for a layout node. Reserved for future use. */\n layoutData?: LayoutData;\n /** Data for a cell node. */\n layoutCellData?: LayoutCellData;\n /** Data for a shape node. */\n shapeData?: ShapeData;\n}\n\nexport enum NodeType {\n PARAGRAPH = 'PARAGRAPH',\n TEXT = 'TEXT',\n HEADING = 'HEADING',\n BULLETED_LIST = 'BULLETED_LIST',\n ORDERED_LIST = 'ORDERED_LIST',\n LIST_ITEM = 'LIST_ITEM',\n BLOCKQUOTE = 'BLOCKQUOTE',\n CODE_BLOCK = 'CODE_BLOCK',\n VIDEO = 'VIDEO',\n DIVIDER = 'DIVIDER',\n FILE = 'FILE',\n GALLERY = 'GALLERY',\n GIF = 'GIF',\n HTML = 'HTML',\n IMAGE = 'IMAGE',\n LINK_PREVIEW = 'LINK_PREVIEW',\n /** @deprecated */\n MAP = 'MAP',\n POLL = 'POLL',\n APP_EMBED = 'APP_EMBED',\n BUTTON = 'BUTTON',\n COLLAPSIBLE_LIST = 'COLLAPSIBLE_LIST',\n TABLE = 'TABLE',\n EMBED = 'EMBED',\n COLLAPSIBLE_ITEM = 'COLLAPSIBLE_ITEM',\n COLLAPSIBLE_ITEM_TITLE = 'COLLAPSIBLE_ITEM_TITLE',\n COLLAPSIBLE_ITEM_BODY = 'COLLAPSIBLE_ITEM_BODY',\n TABLE_CELL = 'TABLE_CELL',\n TABLE_ROW = 'TABLE_ROW',\n EXTERNAL = 'EXTERNAL',\n AUDIO = 'AUDIO',\n CAPTION = 'CAPTION',\n LAYOUT = 'LAYOUT',\n LAYOUT_CELL = 'LAYOUT_CELL',\n SHAPE = 'SHAPE',\n}\n\n/** @enumType */\nexport type NodeTypeWithLiterals =\n | NodeType\n | 'PARAGRAPH'\n | 'TEXT'\n | 'HEADING'\n | 'BULLETED_LIST'\n | 'ORDERED_LIST'\n | 'LIST_ITEM'\n | 'BLOCKQUOTE'\n | 'CODE_BLOCK'\n | 'VIDEO'\n | 'DIVIDER'\n | 'FILE'\n | 'GALLERY'\n | 'GIF'\n | 'HTML'\n | 'IMAGE'\n | 'LINK_PREVIEW'\n | 'MAP'\n | 'POLL'\n | 'APP_EMBED'\n | 'BUTTON'\n | 'COLLAPSIBLE_LIST'\n | 'TABLE'\n | 'EMBED'\n | 'COLLAPSIBLE_ITEM'\n | 'COLLAPSIBLE_ITEM_TITLE'\n | 'COLLAPSIBLE_ITEM_BODY'\n | 'TABLE_CELL'\n | 'TABLE_ROW'\n | 'EXTERNAL'\n | 'AUDIO'\n | 'CAPTION'\n | 'LAYOUT'\n | 'LAYOUT_CELL'\n | 'SHAPE';\n\nexport interface NodeStyle {\n /** The top padding value in pixels. */\n paddingTop?: string | null;\n /** The bottom padding value in pixels. */\n paddingBottom?: string | null;\n /** The background color as a hexadecimal value. */\n backgroundColor?: string | null;\n}\n\nexport interface ButtonData {\n /** Styling for the button's container. */\n containerData?: PluginContainerData;\n /** The button type. */\n type?: ButtonDataTypeWithLiterals;\n /** Styling for the button. */\n styles?: Styles;\n /** The text to display on the button. */\n text?: string | null;\n /** Button link details. */\n link?: Link;\n}\n\nexport interface Border {\n /**\n * Deprecated: Use `borderWidth` in `styles` instead.\n * @deprecated\n */\n width?: number | null;\n /**\n * Deprecated: Use `borderRadius` in `styles` instead.\n * @deprecated\n */\n radius?: number | null;\n}\n\nexport interface Colors {\n /**\n * Deprecated: Use `textColor` in `styles` instead.\n * @deprecated\n */\n text?: string | null;\n /**\n * Deprecated: Use `borderColor` in `styles` instead.\n * @deprecated\n */\n border?: string | null;\n /**\n * Deprecated: Use `backgroundColor` in `styles` instead.\n * @deprecated\n */\n background?: string | null;\n}\n\nexport interface PluginContainerData {\n /** The width of the node when it's displayed. */\n width?: PluginContainerDataWidth;\n /** The node's alignment within its container. */\n alignment?: PluginContainerDataAlignmentWithLiterals;\n /** Spoiler cover settings for the node. */\n spoiler?: Spoiler;\n /** The height of the node when it's displayed. */\n height?: Height;\n /** Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */\n textWrap?: boolean | null;\n}\n\nexport enum WidthType {\n /** Width matches the content width */\n CONTENT = 'CONTENT',\n /** Small Width */\n SMALL = 'SMALL',\n /** Width will match the original asset width */\n ORIGINAL = 'ORIGINAL',\n /** coast-to-coast display */\n FULL_WIDTH = 'FULL_WIDTH',\n}\n\n/** @enumType */\nexport type WidthTypeWithLiterals =\n | WidthType\n | 'CONTENT'\n | 'SMALL'\n | 'ORIGINAL'\n | 'FULL_WIDTH';\n\nexport interface PluginContainerDataWidth\n extends PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\n/** @oneof */\nexport interface PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\nexport enum PluginContainerDataAlignment {\n /** Center Alignment */\n CENTER = 'CENTER',\n /** Left Alignment */\n LEFT = 'LEFT',\n /** Right Alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type PluginContainerDataAlignmentWithLiterals =\n | PluginContainerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface Spoiler {\n /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */\n enabled?: boolean | null;\n /** The description displayed on top of the spoiler cover. */\n description?: string | null;\n /** The text for the button used to remove the spoiler cover. */\n buttonText?: string | null;\n}\n\nexport interface Height {\n /** A custom height value in pixels. */\n custom?: string | null;\n}\n\nexport enum ButtonDataType {\n /** Regular link button */\n LINK = 'LINK',\n /** Triggers custom action that is defined in plugin configuration by the consumer */\n ACTION = 'ACTION',\n}\n\n/** @enumType */\nexport type ButtonDataTypeWithLiterals = ButtonDataType | 'LINK' | 'ACTION';\n\nexport interface Styles {\n /**\n * Deprecated: Use `borderWidth` and `borderRadius` instead.\n * @deprecated\n */\n border?: Border;\n /**\n * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.\n * @deprecated\n */\n colors?: Colors;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /**\n * Deprecated: Use `borderWidth` for normal/hover states instead.\n * @deprecated\n */\n borderWidthHover?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface Link extends LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n /**\n * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:\n * `SELF` - Default. Opens the linked document in the same frame as the link.\n * `BLANK` - Opens the linked document in a new browser tab or window.\n * `PARENT` - Opens the linked document in the link's parent frame.\n * `TOP` - Opens the linked document in the full body of the link's browser tab or window.\n */\n target?: TargetWithLiterals;\n /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */\n rel?: Rel;\n /** A serialized object used for a custom or external link panel. */\n customData?: string | null;\n}\n\n/** @oneof */\nexport interface LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n}\n\nexport enum Target {\n /** Opens the linked document in the same frame as it was clicked (this is default) */\n SELF = 'SELF',\n /** Opens the linked document in a new window or tab */\n BLANK = 'BLANK',\n /** Opens the linked document in the parent frame */\n PARENT = 'PARENT',\n /** Opens the linked document in the full body of the window */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type TargetWithLiterals = Target | 'SELF' | 'BLANK' | 'PARENT' | 'TOP';\n\nexport interface Rel {\n /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */\n nofollow?: boolean | null;\n /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */\n sponsored?: boolean | null;\n /** Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. */\n ugc?: boolean | null;\n /** Indicates that this link protect referral information from being passed to the target website. */\n noreferrer?: boolean | null;\n}\n\nexport interface CodeBlockData {\n /** Styling for the code block's text. */\n textStyle?: TextStyle;\n}\n\nexport interface TextStyle {\n /** Text alignment. Defaults to `AUTO`. */\n textAlignment?: TextAlignmentWithLiterals;\n /** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */\n lineHeight?: string | null;\n}\n\nexport enum TextAlignment {\n /** browser default, eqivalent to `initial` */\n AUTO = 'AUTO',\n /** Left align */\n LEFT = 'LEFT',\n /** Right align */\n RIGHT = 'RIGHT',\n /** Center align */\n CENTER = 'CENTER',\n /** Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line */\n JUSTIFY = 'JUSTIFY',\n}\n\n/** @enumType */\nexport type TextAlignmentWithLiterals =\n | TextAlignment\n | 'AUTO'\n | 'LEFT'\n | 'RIGHT'\n | 'CENTER'\n | 'JUSTIFY';\n\nexport interface DividerData {\n /** Styling for the divider's container. */\n containerData?: PluginContainerData;\n /** Divider line style. */\n lineStyle?: LineStyleWithLiterals;\n /** Divider width. */\n width?: WidthWithLiterals;\n /** Divider alignment. */\n alignment?: DividerDataAlignmentWithLiterals;\n}\n\nexport enum LineStyle {\n /** Single Line */\n SINGLE = 'SINGLE',\n /** Double Line */\n DOUBLE = 'DOUBLE',\n /** Dashed Line */\n DASHED = 'DASHED',\n /** Dotted Line */\n DOTTED = 'DOTTED',\n}\n\n/** @enumType */\nexport type LineStyleWithLiterals =\n | LineStyle\n | 'SINGLE'\n | 'DOUBLE'\n | 'DASHED'\n | 'DOTTED';\n\nexport enum Width {\n /** Large line */\n LARGE = 'LARGE',\n /** Medium line */\n MEDIUM = 'MEDIUM',\n /** Small line */\n SMALL = 'SMALL',\n}\n\n/** @enumType */\nexport type WidthWithLiterals = Width | 'LARGE' | 'MEDIUM' | 'SMALL';\n\nexport enum DividerDataAlignment {\n /** Center alignment */\n CENTER = 'CENTER',\n /** Left alignment */\n LEFT = 'LEFT',\n /** Right alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type DividerDataAlignmentWithLiterals =\n | DividerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface FileData {\n /** Styling for the file's container. */\n containerData?: PluginContainerData;\n /** The source for the file's data. */\n src?: FileSource;\n /** File name. */\n name?: string | null;\n /** File type. */\n type?: string | null;\n /**\n * Use `sizeInKb` instead.\n * @deprecated\n */\n size?: number | null;\n /** Settings for PDF files. */\n pdfSettings?: PDFSettings;\n /** File MIME type. */\n mimeType?: string | null;\n /** File path. */\n path?: string | null;\n /** File size in KB. */\n sizeInKb?: string | null;\n}\n\nexport enum ViewMode {\n /** No PDF view */\n NONE = 'NONE',\n /** Full PDF view */\n FULL = 'FULL',\n /** Mini PDF view */\n MINI = 'MINI',\n}\n\n/** @enumType */\nexport type ViewModeWithLiterals = ViewMode | 'NONE' | 'FULL' | 'MINI';\n\nexport interface FileSource extends FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n /** Indicates whether the file's source is private. Defaults to `false`. */\n private?: boolean | null;\n}\n\n/** @oneof */\nexport interface FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n}\n\nexport interface PDFSettings {\n /**\n * PDF view mode. One of the following:\n * `NONE` : The PDF isn't displayed.\n * `FULL` : A full page view of the PDF is displayed.\n * `MINI` : A mini view of the PDF is displayed.\n */\n viewMode?: ViewModeWithLiterals;\n /** Sets whether the PDF download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the PDF print button is disabled. Defaults to `false`. */\n disablePrint?: boolean | null;\n}\n\nexport interface GalleryData {\n /** Styling for the gallery's container. */\n containerData?: PluginContainerData;\n /** The items in the gallery. */\n items?: Item[];\n /** Options for defining the gallery's appearance. */\n options?: GalleryOptions;\n /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Sets whether the gallery's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n}\n\nexport interface Media {\n /** The source for the media's data. */\n src?: FileSource;\n /** Media width in pixels. */\n width?: number | null;\n /** Media height in pixels. */\n height?: number | null;\n /** Media duration in seconds. Only relevant for audio and video files. */\n duration?: number | null;\n}\n\nexport interface Image {\n /** Image file details. */\n media?: Media;\n /** Link details for images that are links. */\n link?: Link;\n}\n\nexport interface Video {\n /** Video file details. */\n media?: Media;\n /** Video thumbnail file details. */\n thumbnail?: Media;\n}\n\nexport interface Item extends ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n /** Item title. */\n title?: string | null;\n /** Item's alternative text. */\n altText?: string | null;\n}\n\n/** @oneof */\nexport interface ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n}\n\nexport interface GalleryOptions {\n /** Gallery layout. */\n layout?: GalleryOptionsLayout;\n /** Styling for gallery items. */\n item?: ItemStyle;\n /** Styling for gallery thumbnail images. */\n thumbnails?: Thumbnails;\n}\n\nexport enum LayoutType {\n /** Collage type */\n COLLAGE = 'COLLAGE',\n /** Masonry type */\n MASONRY = 'MASONRY',\n /** Grid type */\n GRID = 'GRID',\n /** Thumbnail type */\n THUMBNAIL = 'THUMBNAIL',\n /** Slider type */\n SLIDER = 'SLIDER',\n /** Slideshow type */\n SLIDESHOW = 'SLIDESHOW',\n /** Panorama type */\n PANORAMA = 'PANORAMA',\n /** Column type */\n COLUMN = 'COLUMN',\n /** Magic type */\n MAGIC = 'MAGIC',\n /** Fullsize images type */\n FULLSIZE = 'FULLSIZE',\n}\n\n/** @enumType */\nexport type LayoutTypeWithLiterals =\n | LayoutType\n | 'COLLAGE'\n | 'MASONRY'\n | 'GRID'\n | 'THUMBNAIL'\n | 'SLIDER'\n | 'SLIDESHOW'\n | 'PANORAMA'\n | 'COLUMN'\n | 'MAGIC'\n | 'FULLSIZE';\n\nexport enum Orientation {\n /** Rows Orientation */\n ROWS = 'ROWS',\n /** Columns Orientation */\n COLUMNS = 'COLUMNS',\n}\n\n/** @enumType */\nexport type OrientationWithLiterals = Orientation | 'ROWS' | 'COLUMNS';\n\nexport enum Crop {\n /** Crop to fill */\n FILL = 'FILL',\n /** Crop to fit */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type CropWithLiterals = Crop | 'FILL' | 'FIT';\n\nexport enum ThumbnailsAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Right alignment */\n RIGHT = 'RIGHT',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n /** Left alignment */\n LEFT = 'LEFT',\n /** No thumbnail */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type ThumbnailsAlignmentWithLiterals =\n | ThumbnailsAlignment\n | 'TOP'\n | 'RIGHT'\n | 'BOTTOM'\n | 'LEFT'\n | 'NONE';\n\nexport interface GalleryOptionsLayout {\n /** Gallery layout type. */\n type?: LayoutTypeWithLiterals;\n /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */\n horizontalScroll?: boolean | null;\n /** Gallery orientation. */\n orientation?: OrientationWithLiterals;\n /** The number of columns to display on full size screens. */\n numberOfColumns?: number | null;\n /** The number of columns to display on mobile screens. */\n mobileNumberOfColumns?: number | null;\n}\n\nexport interface ItemStyle {\n /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */\n targetSize?: number | null;\n /** Item ratio */\n ratio?: number | null;\n /** Sets how item images are cropped. */\n crop?: CropWithLiterals;\n /** The spacing between items in pixels. */\n spacing?: number | null;\n}\n\nexport interface Thumbnails {\n /** Thumbnail alignment. */\n placement?: ThumbnailsAlignmentWithLiterals;\n /** Spacing between thumbnails in pixels. */\n spacing?: number | null;\n}\n\nexport interface GIFData {\n /** Styling for the GIF's container. */\n containerData?: PluginContainerData;\n /** The source of the full size GIF. */\n original?: GIF;\n /** The source of the downsized GIF. */\n downsized?: GIF;\n /** Height in pixels. */\n height?: number;\n /** Width in pixels. */\n width?: number;\n /** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */\n gifType?: GIFTypeWithLiterals;\n}\n\nexport interface GIF {\n /**\n * GIF format URL.\n * @format WEB_URL\n */\n gif?: string | null;\n /**\n * MP4 format URL.\n * @format WEB_URL\n */\n mp4?: string | null;\n /**\n * Thumbnail URL.\n * @format WEB_URL\n */\n still?: string | null;\n}\n\nexport enum GIFType {\n NORMAL = 'NORMAL',\n STICKER = 'STICKER',\n}\n\n/** @enumType */\nexport type GIFTypeWithLiterals = GIFType | 'NORMAL' | 'STICKER';\n\nexport interface HeadingData {\n /** Heading level from 1-6. */\n level?: number;\n /** Styling for the heading text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n}\n\nexport interface HTMLData extends HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n /** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */\n containerData?: PluginContainerData;\n /** The type of HTML code. */\n source?: SourceWithLiterals;\n /** If container height is aligned with its content height. Defaults to `true`. */\n autoHeight?: boolean | null;\n}\n\n/** @oneof */\nexport interface HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n}\n\nexport enum Source {\n HTML = 'HTML',\n ADSENSE = 'ADSENSE',\n AI = 'AI',\n}\n\n/** @enumType */\nexport type SourceWithLiterals = Source | 'HTML' | 'ADSENSE' | 'AI';\n\nexport interface ImageData {\n /** Styling for the image's container. */\n containerData?: PluginContainerData;\n /** Image file details. */\n image?: Media;\n /** Link details for images that are links. */\n link?: Link;\n /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Image's alternative text. */\n altText?: string | null;\n /**\n * Deprecated: use Caption node instead.\n * @deprecated\n */\n caption?: string | null;\n /** Sets whether the image's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */\n decorative?: boolean | null;\n /** Styling for the image. */\n styles?: ImageDataStyles;\n}\n\nexport interface StylesBorder {\n /** Border width in pixels. */\n width?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** Border radius in pixels. */\n radius?: number | null;\n}\n\nexport interface ImageDataStyles {\n /** Border attributes. */\n border?: StylesBorder;\n}\n\nexport interface LinkPreviewData {\n /** Styling for the link preview's container. */\n containerData?: PluginContainerData;\n /** Link details. */\n link?: Link;\n /** Preview title. */\n title?: string | null;\n /** Preview thumbnail URL. */\n thumbnailUrl?: string | null;\n /** Preview description. */\n description?: string | null;\n /** The preview content as HTML. */\n html?: string | null;\n /** Styling for the link preview. */\n styles?: LinkPreviewDataStyles;\n}\n\nexport enum StylesPosition {\n /** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Thumbnail positioned at the top */\n TOP = 'TOP',\n /** Thumbnail hidden and not displayed */\n HIDDEN = 'HIDDEN',\n}\n\n/** @enumType */\nexport type StylesPositionWithLiterals =\n | StylesPosition\n | 'START'\n | 'END'\n | 'TOP'\n | 'HIDDEN';\n\nexport interface LinkPreviewDataStyles {\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Title color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Subtitle color as a hexadecimal value.\n * @format COLOR_HEX\n */\n subtitleColor?: string | null;\n /**\n * Link color as a hexadecimal value.\n * @format COLOR_HEX\n */\n linkColor?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Position of thumbnail. Defaults to `START`. */\n thumbnailPosition?: StylesPositionWithLiterals;\n}\n\nexport interface MapData {\n /** Styling for the map's container. */\n containerData?: PluginContainerData;\n /** Map settings. */\n mapSettings?: MapSettings;\n}\n\nexport interface MapSettings {\n /** The address to display on the map. */\n address?: string | null;\n /** Sets whether the map is draggable. */\n draggable?: boolean | null;\n /** Sets whether the location marker is visible. */\n marker?: boolean | null;\n /** Sets whether street view control is enabled. */\n streetViewControl?: boolean | null;\n /** Sets whether zoom control is enabled. */\n zoomControl?: boolean | null;\n /** Location latitude. */\n lat?: number | null;\n /** Location longitude. */\n lng?: number | null;\n /** Location name. */\n locationName?: string | null;\n /** Sets whether view mode control is enabled. */\n viewModeControl?: boolean | null;\n /** Initial zoom value. */\n initialZoom?: number | null;\n /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */\n mapType?: MapTypeWithLiterals;\n}\n\nexport enum MapType {\n /** Roadmap map type */\n ROADMAP = 'ROADMAP',\n /** Satellite map type */\n SATELITE = 'SATELITE',\n /** Hybrid map type */\n HYBRID = 'HYBRID',\n /** Terrain map type */\n TERRAIN = 'TERRAIN',\n}\n\n/** @enumType */\nexport type MapTypeWithLiterals =\n | MapType\n | 'ROADMAP'\n | 'SATELITE'\n | 'HYBRID'\n | 'TERRAIN';\n\nexport interface ParagraphData {\n /** Styling for the paragraph text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n /** Paragraph level */\n level?: number | null;\n}\n\nexport interface PollData {\n /** Styling for the poll's container. */\n containerData?: PluginContainerData;\n /** Poll data. */\n poll?: Poll;\n /** Layout settings for the poll and voting options. */\n layout?: PollDataLayout;\n /** Styling for the poll and voting options. */\n design?: Design;\n}\n\nexport enum ViewRole {\n /** Only Poll creator can view the results */\n CREATOR = 'CREATOR',\n /** Anyone who voted can see the results */\n VOTERS = 'VOTERS',\n /** Anyone can see the results, even if one didn't vote */\n EVERYONE = 'EVERYONE',\n}\n\n/** @enumType */\nexport type ViewRoleWithLiterals = ViewRole | 'CREATOR' | 'VOTERS' | 'EVERYONE';\n\nexport enum VoteRole {\n /** Logged in member */\n SITE_MEMBERS = 'SITE_MEMBERS',\n /** Anyone */\n ALL = 'ALL',\n}\n\n/** @enumType */\nexport type VoteRoleWithLiterals = VoteRole | 'SITE_MEMBERS' | 'ALL';\n\nexport interface Permissions {\n /** Sets who can view the poll results. */\n view?: ViewRoleWithLiterals;\n /** Sets who can vote. */\n vote?: VoteRoleWithLiterals;\n /** Sets whether one voter can vote multiple times. Defaults to `false`. */\n allowMultipleVotes?: boolean | null;\n}\n\nexport interface Option {\n /** Option ID. */\n id?: string | null;\n /** Option title. */\n title?: string | null;\n /** The image displayed with the option. */\n image?: Media;\n}\n\nexport interface Settings {\n /** Permissions settings for voting. */\n permissions?: Permissions;\n /** Sets whether voters are displayed in the vote results. Defaults to `true`. */\n showVoters?: boolean | null;\n /** Sets whether the vote count is displayed. Defaults to `true`. */\n showVotesCount?: boolean | null;\n}\n\nexport enum PollLayoutType {\n /** List */\n LIST = 'LIST',\n /** Grid */\n GRID = 'GRID',\n}\n\n/** @enumType */\nexport type PollLayoutTypeWithLiterals = PollLayoutType | 'LIST' | 'GRID';\n\nexport enum PollLayoutDirection {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type PollLayoutDirectionWithLiterals =\n | PollLayoutDirection\n | 'LTR'\n | 'RTL';\n\nexport interface PollLayout {\n /** The layout for displaying the voting options. */\n type?: PollLayoutTypeWithLiterals;\n /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */\n direction?: PollLayoutDirectionWithLiterals;\n /** Sets whether to display the main poll image. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport interface OptionLayout {\n /** Sets whether to display option images. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport enum BackgroundType {\n /** Color background type */\n COLOR = 'COLOR',\n /** Image background type */\n IMAGE = 'IMAGE',\n /** Gradiant background type */\n GRADIENT = 'GRADIENT',\n}\n\n/** @enumType */\nexport type BackgroundTypeWithLiterals =\n | BackgroundType\n | 'COLOR'\n | 'IMAGE'\n | 'GRADIENT';\n\nexport interface Gradient {\n /** The gradient angle in degrees. */\n angle?: number | null;\n /**\n * The start color as a hexademical value.\n * @format COLOR_HEX\n */\n startColor?: string | null;\n /**\n * The end color as a hexademical value.\n * @format COLOR_HEX\n */\n lastColor?: string | null;\n}\n\nexport interface Background extends BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n /** Background type. For each option, include the relevant details. */\n type?: BackgroundTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n}\n\nexport interface PollDesign {\n /** Background styling. */\n background?: Background;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface OptionDesign {\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface Poll {\n /** Poll ID. */\n id?: string | null;\n /** Poll title. */\n title?: string | null;\n /** Poll creator ID. */\n creatorId?: string | null;\n /** Main poll image. */\n image?: Media;\n /** Voting options. */\n options?: Option[];\n /** The poll's permissions and display settings. */\n settings?: Settings;\n}\n\nexport interface PollDataLayout {\n /** Poll layout settings. */\n poll?: PollLayout;\n /** Voting otpions layout settings. */\n options?: OptionLayout;\n}\n\nexport interface Design {\n /** Styling for the poll. */\n poll?: PollDesign;\n /** Styling for voting options. */\n options?: OptionDesign;\n}\n\nexport interface TextData {\n /** The text to apply decorations to. */\n text?: string;\n /** The decorations to apply. */\n decorations?: Decoration[];\n}\n\n/** Adds appearence changes to text */\nexport interface Decoration extends DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n /** Data for a font family decoration. */\n fontFamilyData?: FontFamilyData;\n /** The type of decoration to apply. */\n type?: DecorationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n /** Data for a font family decoration. */\n fontFamilyData?: FontFamilyData;\n}\n\nexport enum DecorationType {\n BOLD = 'BOLD',\n ITALIC = 'ITALIC',\n UNDERLINE = 'UNDERLINE',\n SPOILER = 'SPOILER',\n ANCHOR = 'ANCHOR',\n MENTION = 'MENTION',\n LINK = 'LINK',\n COLOR = 'COLOR',\n FONT_SIZE = 'FONT_SIZE',\n EXTERNAL = 'EXTERNAL',\n STRIKETHROUGH = 'STRIKETHROUGH',\n SUPERSCRIPT = 'SUPERSCRIPT',\n SUBSCRIPT = 'SUBSCRIPT',\n FONT_FAMILY = 'FONT_FAMILY',\n}\n\n/** @enumType */\nexport type DecorationTypeWithLiterals =\n | DecorationType\n | 'BOLD'\n | 'ITALIC'\n | 'UNDERLINE'\n | 'SPOILER'\n | 'ANCHOR'\n | 'MENTION'\n | 'LINK'\n | 'COLOR'\n | 'FONT_SIZE'\n | 'EXTERNAL'\n | 'STRIKETHROUGH'\n | 'SUPERSCRIPT'\n | 'SUBSCRIPT'\n | 'FONT_FAMILY';\n\nexport interface AnchorData {\n /** The target node's ID. */\n anchor?: string;\n}\n\nexport interface ColorData {\n /** The text's background color as a hexadecimal value. */\n background?: string | null;\n /** The text's foreground color as a hexadecimal value. */\n foreground?: string | null;\n}\n\nexport interface LinkData {\n /** Link details. */\n link?: Link;\n}\n\nexport interface MentionData {\n /** The mentioned user's name. */\n name?: string;\n /** The version of the user's name that appears after the `@` character in the mention. */\n slug?: string;\n /** Mentioned user's ID. */\n id?: string | null;\n}\n\nexport interface FontSizeData {\n /** The units used for the font size. */\n unit?: FontTypeWithLiterals;\n /** Font size value. */\n value?: number | null;\n}\n\nexport enum FontType {\n PX = 'PX',\n EM = 'EM',\n}\n\n/** @enumType */\nexport type FontTypeWithLiterals = FontType | 'PX' | 'EM';\n\nexport interface SpoilerData {\n /** Spoiler ID. */\n id?: string | null;\n}\n\nexport interface FontFamilyData {\n /** @maxLength 1000 */\n value?: string | null;\n}\n\nexport interface AppEmbedData extends AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n /** The type of Wix App content being embedded. */\n type?: AppTypeWithLiterals;\n /** The ID of the embedded content. */\n itemId?: string | null;\n /** The name of the embedded content. */\n name?: string | null;\n /**\n * Deprecated: Use `image` instead.\n * @deprecated\n */\n imageSrc?: string | null;\n /** The URL for the embedded content. */\n url?: string | null;\n /** An image for the embedded content. */\n image?: Media;\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Whether to hide the title. */\n hideTitle?: boolean | null;\n /** Whether to hide the price. */\n hidePrice?: boolean | null;\n /** Whether to hide the description (Event and Booking). */\n hideDescription?: boolean | null;\n /** Whether to hide the date and time (Event). */\n hideDateTime?: boolean | null;\n /** Whether to hide the location (Event). */\n hideLocation?: boolean | null;\n /** Whether to hide the duration (Booking). */\n hideDuration?: boolean | null;\n /** Whether to hide the button. */\n hideButton?: boolean | null;\n /** Whether to hide the ribbon. */\n hideRibbon?: boolean | null;\n /** Button styling options. */\n buttonStyles?: ButtonStyles;\n /** Image styling options. */\n imageStyles?: ImageStyles;\n /** Ribbon styling options. */\n ribbonStyles?: RibbonStyles;\n /** Card styling options. */\n cardStyles?: CardStyles;\n /** Styling for the app embed's container. */\n containerData?: PluginContainerData;\n /** Pricing data for embedded Wix App content. */\n pricingData?: PricingData;\n}\n\n/** @oneof */\nexport interface AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n}\n\nexport enum Position {\n /** Image positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Image positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Image positioned at the top */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type PositionWithLiterals = Position | 'START' | 'END' | 'TOP';\n\nexport enum AspectRatio {\n /** 1:1 aspect ratio */\n SQUARE = 'SQUARE',\n /** 16:9 aspect ratio */\n RECTANGLE = 'RECTANGLE',\n}\n\n/** @enumType */\nexport type AspectRatioWithLiterals = AspectRatio | 'SQUARE' | 'RECTANGLE';\n\nexport enum Resizing {\n /** Fill the container, may crop the image */\n FILL = 'FILL',\n /** Fit the image within the container */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type ResizingWithLiterals = Resizing | 'FILL' | 'FIT';\n\nexport enum Placement {\n /** Ribbon placed on the image */\n IMAGE = 'IMAGE',\n /** Ribbon placed on the product information */\n PRODUCT_INFO = 'PRODUCT_INFO',\n}\n\n/** @enumType */\nexport type PlacementWithLiterals = Placement | 'IMAGE' | 'PRODUCT_INFO';\n\nexport enum Type {\n /** Card with visible border and background */\n CONTAINED = 'CONTAINED',\n /** Card without visible border */\n FRAMELESS = 'FRAMELESS',\n}\n\n/** @enumType */\nexport type TypeWithLiterals = Type | 'CONTAINED' | 'FRAMELESS';\n\nexport enum Alignment {\n /** Content aligned to start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Content centered */\n CENTER = 'CENTER',\n /** Content aligned to end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n}\n\n/** @enumType */\nexport type AlignmentWithLiterals = Alignment | 'START' | 'CENTER' | 'END';\n\nexport enum Layout {\n /** Elements stacked vertically */\n STACKED = 'STACKED',\n /** Elements arranged horizontally */\n SIDE_BY_SIDE = 'SIDE_BY_SIDE',\n}\n\n/** @enumType */\nexport type LayoutWithLiterals = Layout | 'STACKED' | 'SIDE_BY_SIDE';\n\nexport enum AppType {\n PRODUCT = 'PRODUCT',\n EVENT = 'EVENT',\n BOOKING = 'BOOKING',\n}\n\n/** @enumType */\nexport type AppTypeWithLiterals = AppType | 'PRODUCT' | 'EVENT' | 'BOOKING';\n\nexport interface BookingData {\n /** Booking duration in minutes. */\n durations?: string | null;\n}\n\nexport interface EventData {\n /** Event schedule. */\n scheduling?: string | null;\n /** Event location. */\n location?: string | null;\n}\n\nexport interface ButtonStyles {\n /** Text to display on the button. */\n buttonText?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface ImageStyles {\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Position of image. Defaults to `START`. */\n imagePosition?: PositionWithLiterals;\n /** Aspect ratio for the image. Defaults to `SQUARE`. */\n aspectRatio?: AspectRatioWithLiterals;\n /** How the image should be resized. Defaults to `FILL`. */\n resizing?: ResizingWithLiterals;\n /**\n * Image border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Image border width in pixels. */\n borderWidth?: number | null;\n /** Image border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface RibbonStyles {\n /** Text to display on the ribbon. */\n ribbonText?: string | null;\n /**\n * Ribbon background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Ribbon text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Ribbon border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Ribbon border width in pixels. */\n borderWidth?: number | null;\n /** Ribbon border radius in pixels. */\n borderRadius?: number | null;\n /** Placement of the ribbon. Defaults to `IMAGE`. */\n ribbonPlacement?: PlacementWithLiterals;\n}\n\nexport interface CardStyles {\n /**\n * Card background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Card border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Card border width in pixels. */\n borderWidth?: number | null;\n /** Card border radius in pixels. */\n borderRadius?: number | null;\n /** Card type. Defaults to `CONTAINED`. */\n type?: TypeWithLiterals;\n /** Content alignment. Defaults to `START`. */\n alignment?: AlignmentWithLiterals;\n /** Layout for title and price. Defaults to `STACKED`. */\n titlePriceLayout?: LayoutWithLiterals;\n /**\n * Title text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n}\n\nexport interface PricingData {\n /**\n * Minimum numeric price value as string (e.g., \"10.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueFrom?: string | null;\n /**\n * Maximum numeric price value as string (e.g., \"19.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueTo?: string | null;\n /**\n * Numeric price value as string after discount application (e.g., \"15.99\").\n * @decimalValue options { maxScale:2 }\n */\n discountedValue?: string | null;\n /**\n * Currency of the value in ISO 4217 format (e.g., \"USD\", \"EUR\").\n * @format CURRENCY\n */\n currency?: string | null;\n /**\n * Pricing plan ID.\n * @format GUID\n */\n pricingPlanId?: string | null;\n}\n\nexport interface VideoData {\n /** Styling for the video's container. */\n containerData?: PluginContainerData;\n /** Video details. */\n video?: Media;\n /** Video thumbnail details. */\n thumbnail?: Media;\n /** Sets whether the video's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Video title. */\n title?: string | null;\n /** Video options. */\n options?: PlaybackOptions;\n}\n\nexport interface PlaybackOptions {\n /** Sets whether the media will automatically start playing. */\n autoPlay?: boolean | null;\n /** Sets whether media's will be looped. */\n playInLoop?: boolean | null;\n /** Sets whether media's controls will be shown. */\n showControls?: boolean | null;\n}\n\nexport interface EmbedData {\n /** Styling for the oEmbed node's container. */\n containerData?: PluginContainerData;\n /** An [oEmbed](https://www.oembed.com) object. */\n oembed?: Oembed;\n /** Origin asset source. */\n src?: string | null;\n}\n\nexport interface Oembed {\n /** The resource type. */\n type?: string | null;\n /** The width of the resource specified in the `url` property in pixels. */\n width?: number | null;\n /** The height of the resource specified in the `url` property in pixels. */\n height?: number | null;\n /** Resource title. */\n title?: string | null;\n /** The source URL for the resource. */\n url?: string | null;\n /** HTML for embedding a video player. The HTML should have no padding or margins. */\n html?: string | null;\n /** The name of the author or owner of the resource. */\n authorName?: string | null;\n /** The URL for the author or owner of the resource. */\n authorUrl?: string | null;\n /** The name of the resource provider. */\n providerName?: string | null;\n /** The URL for the resource provider. */\n providerUrl?: string | null;\n /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */\n thumbnailUrl?: string | null;\n /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */\n thumbnailWidth?: string | null;\n /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */\n thumbnailHeight?: string | null;\n /** The URL for an embedded viedo. */\n videoUrl?: string | null;\n /** The oEmbed version number. This value must be `1.0`. */\n version?: string | null;\n}\n\nexport interface CollapsibleListData {\n /** Styling for the collapsible list's container. */\n containerData?: PluginContainerData;\n /** If `true`, only one item can be expanded at a time. Defaults to `false`. */\n expandOnlyOne?: boolean | null;\n /** Sets which items are expanded when the page loads. */\n initialExpandedItems?: InitialExpandedItemsWithLiterals;\n /** The direction of the text in the list. Either left-to-right or right-to-left. */\n direction?: DirectionWithLiterals;\n /** If `true`, The collapsible item will appear in search results as an FAQ. */\n isQapageData?: boolean | null;\n}\n\nexport enum InitialExpandedItems {\n /** First item will be expended initally */\n FIRST = 'FIRST',\n /** All items will expended initally */\n ALL = 'ALL',\n /** All items collapsed initally */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type InitialExpandedItemsWithLiterals =\n | InitialExpandedItems\n | 'FIRST'\n | 'ALL'\n | 'NONE';\n\nexport enum Direction {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type DirectionWithLiterals = Direction | 'LTR' | 'RTL';\n\nexport interface TableData {\n /** Styling for the table's container. */\n containerData?: PluginContainerData;\n /** The table's dimensions. */\n dimensions?: Dimensions;\n /**\n * Deprecated: Use `rowHeader` and `columnHeader` instead.\n * @deprecated\n */\n header?: boolean | null;\n /** Sets whether the table's first row is a header. Defaults to `false`. */\n rowHeader?: boolean | null;\n /** Sets whether the table's first column is a header. Defaults to `false`. */\n columnHeader?: boolean | null;\n /** The spacing between cells in pixels. Defaults to `0`. */\n cellSpacing?: number | null;\n /**\n * Padding in pixels for cells. Follows CSS order: top, right, bottom, left.\n * @maxSize 4\n */\n cellPadding?: number[];\n}\n\nexport interface Dimensions {\n /** An array representing relative width of each column in relation to the other columns. */\n colsWidthRatio?: number[];\n /** An array representing the height of each row in pixels. */\n rowsHeight?: number[];\n /** An array representing the minimum width of each column in pixels. */\n colsMinWidth?: number[];\n}\n\nexport interface TableCellData {\n /** Styling for the cell's background color and text alignment. */\n cellStyle?: CellStyle;\n /** The cell's border colors. */\n borderColors?: BorderColors;\n /** Defines how many columns the cell spans. Default: 1. */\n colspan?: number | null;\n /** Defines how many rows the cell spans. Default: 1. */\n rowspan?: number | null;\n /** The cell's border widths. */\n borderWidths?: BorderWidths;\n}\n\nexport enum VerticalAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Middle alignment */\n MIDDLE = 'MIDDLE',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n}\n\n/** @enumType */\nexport type VerticalAlignmentWithLiterals =\n | VerticalAlignment\n | 'TOP'\n | 'MIDDLE'\n | 'BOTTOM';\n\nexport interface CellStyle {\n /** Vertical alignment for the cell's text. */\n verticalAlignment?: VerticalAlignmentWithLiterals;\n /**\n * Cell background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n}\n\nexport interface BorderColors {\n /**\n * Left border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n left?: string | null;\n /**\n * Right border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n right?: string | null;\n /**\n * Top border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n top?: string | null;\n /**\n * Bottom border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n bottom?: string | null;\n}\n\nexport interface BorderWidths {\n /** Left border width in pixels. */\n left?: number | null;\n /** Right border width in pixels. */\n right?: number | null;\n /** Top border width in pixels. */\n top?: number | null;\n /** Bottom border width in pixels. */\n bottom?: number | null;\n}\n\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n * The JSON representation for `NullValue` is JSON `null`.\n */\nexport enum NullValue {\n /** Null value. */\n NULL_VALUE = 'NULL_VALUE',\n}\n\n/** @enumType */\nexport type NullValueWithLiterals = NullValue | 'NULL_VALUE';\n\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n */\nexport interface ListValue {\n /** Repeated field of dynamically typed values. */\n values?: any[];\n}\n\nexport interface AudioData {\n /** Styling for the audio node's container. */\n containerData?: PluginContainerData;\n /** Audio file details. */\n audio?: Media;\n /** Sets whether the audio node's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Cover image. */\n coverImage?: Media;\n /** Track name. */\n name?: string | null;\n /** Author name. */\n authorName?: string | null;\n /** An HTML version of the audio node. */\n html?: string | null;\n}\n\nexport interface OrderedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n /** List start number. */\n start?: number | null;\n}\n\nexport interface BulletedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n}\n\nexport interface BlockquoteData {\n /** Indentation level from 1-4. */\n indentation?: number;\n}\n\nexport interface CaptionData {\n textStyle?: TextStyle;\n}\n\nexport interface LayoutData {\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /** Background image. */\n backgroundImage?: BackgroundImage;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border */\n borderRadius?: number | null;\n /**\n * Backdrop color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backdropColor?: string | null;\n /** Backdrop image.radius in pixels. */\n backdropImage?: BackgroundImage;\n /** Backdrop top padding. */\n backdropPaddingTop?: number | null;\n /** Backdrop bottom padding */\n backdropPaddingBottom?: number | null;\n /** Horizontal and vertical gap between columns */\n gap?: number | null;\n /**\n * Padding in pixels for cells. Follows CSS order: top, right, bottom, left\n * @maxSize 4\n */\n cellPadding?: number[];\n /** Vertical alignment for the cell's items. */\n cellVerticalAlignment?: VerticalAlignmentAlignmentWithLiterals;\n /** Responsiveness behaviour of columns when responsiveness applies. Either stacks or wrappers. */\n responsivenessBehaviour?: ResponsivenessBehaviourWithLiterals;\n /** Size in pixels when responsiveness_behaviour applies */\n responsivenessBreakpoint?: number | null;\n /** Styling for the layout's container. */\n containerData?: PluginContainerData;\n /** Defines where selected design propertied applies to */\n designTarget?: DesignTargetWithLiterals;\n}\n\nexport enum Scaling {\n /** Auto image scaling */\n AUTO = 'AUTO',\n /** Contain image scaling */\n CONTAIN = 'CONTAIN',\n /** Cover image scaling */\n COVER = 'COVER',\n}\n\n/** @enumType */\nexport type ScalingWithLiterals = Scaling | 'AUTO' | 'CONTAIN' | 'COVER';\n\nexport enum ImagePosition {\n /** Image positioned at the center */\n CENTER = 'CENTER',\n /** Image positioned on the left */\n CENTER_LEFT = 'CENTER_LEFT',\n /** Image positioned on the right */\n CENTER_RIGHT = 'CENTER_RIGHT',\n /** Image positioned at the center top */\n TOP = 'TOP',\n /** Image positioned at the top left */\n TOP_LEFT = 'TOP_LEFT',\n /** Image positioned at the top right */\n TOP_RIGHT = 'TOP_RIGHT',\n /** Image positioned at the center bottom */\n BOTTOM = 'BOTTOM',\n /** Image positioned at the bottom left */\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n /** Image positioned at the bottom right */\n BOTTOM_RIGHT = 'BOTTOM_RIGHT',\n}\n\n/** @enumType */\nexport type ImagePositionWithLiterals =\n | ImagePosition\n | 'CENTER'\n | 'CENTER_LEFT'\n | 'CENTER_RIGHT'\n | 'TOP'\n | 'TOP_LEFT'\n | 'TOP_RIGHT'\n | 'BOTTOM'\n | 'BOTTOM_LEFT'\n | 'BOTTOM_RIGHT';\n\nexport interface BackgroundImage {\n /** Background image. */\n media?: Media;\n /** Background image opacity. */\n opacity?: number | null;\n /** Background image scaling. */\n scaling?: ScalingWithLiterals;\n /** Position of background. Defaults to `CENTER`. */\n position?: ImagePositionWithLiterals;\n}\n\nexport enum VerticalAlignmentAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Middle alignment */\n MIDDLE = 'MIDDLE',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n}\n\n/** @enumType */\nexport type VerticalAlignmentAlignmentWithLiterals =\n | VerticalAlignmentAlignment\n | 'TOP'\n | 'MIDDLE'\n | 'BOTTOM';\n\nexport enum ResponsivenessBehaviour {\n /** Stacking of columns */\n STACK = 'STACK',\n /** Wrapping of columns */\n WRAP = 'WRAP',\n}\n\n/** @enumType */\nexport type ResponsivenessBehaviourWithLiterals =\n | ResponsivenessBehaviour\n | 'STACK'\n | 'WRAP';\n\nexport enum DesignTarget {\n /** Design applied to layout */\n LAYOUT = 'LAYOUT',\n /** Design applied to cells */\n CELL = 'CELL',\n}\n\n/** @enumType */\nexport type DesignTargetWithLiterals = DesignTarget | 'LAYOUT' | 'CELL';\n\nexport interface LayoutCellData {\n /** Size of the cell in 12 columns grid. */\n colSpan?: number | null;\n}\n\nexport interface ShapeData {\n /** Styling for the shape's container. */\n containerData?: PluginContainerData;\n /** Shape file details. */\n shape?: Media;\n /** Styling for the shape. */\n styles?: ShapeDataStyles;\n}\n\nexport interface ShapeDataStyles {\n /**\n * Shape fill color as a hexadecimal value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** Map of original color keys to their new color values. */\n colors?: Record<string, string>;\n}\n\nexport interface Metadata {\n /** Schema version. */\n version?: number;\n /**\n * When the object was created.\n * @readonly\n * @deprecated\n */\n createdTimestamp?: Date | null;\n /**\n * When the object was most recently updated.\n * @deprecated\n */\n updatedTimestamp?: Date | null;\n /** Object ID. */\n _id?: string | null;\n}\n\nexport interface DocumentStyle {\n /** Styling for H1 nodes. */\n headerOne?: TextNodeStyle;\n /** Styling for H2 nodes. */\n headerTwo?: TextNodeStyle;\n /** Styling for H3 nodes. */\n headerThree?: TextNodeStyle;\n /** Styling for H4 nodes. */\n headerFour?: TextNodeStyle;\n /** Styling for H5 nodes. */\n headerFive?: TextNodeStyle;\n /** Styling for H6 nodes. */\n headerSix?: TextNodeStyle;\n /** Styling for paragraph nodes. */\n paragraph?: TextNodeStyle;\n /** Styling for block quote nodes. */\n blockquote?: TextNodeStyle;\n /** Styling for code block nodes. */\n codeBlock?: TextNodeStyle;\n}\n\nexport interface TextNodeStyle {\n /** The decorations to apply to the node. */\n decorations?: Decoration[];\n /** Padding and background color for the node. */\n nodeStyle?: NodeStyle;\n /** Line height for text in the node. */\n lineHeight?: string | null;\n}\n\nexport interface Mention extends MentionIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Group ID. See the Groups API for more details.\n * @format GUID\n */\n groupId?: string | null;\n}\n\n/** @oneof */\nexport interface MentionIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Group ID. See the Groups API for more details.\n * @format GUID\n */\n groupId?: string | null;\n}\n\nexport interface Attachment extends AttachmentMediaOneOf {\n /** Information about the image. */\n image?: string;\n /** Information about the video. */\n video?: string;\n /** Information about the audio. */\n audio?: string;\n /** Information about the document. */\n document?: string;\n /**\n * Mime type of attachment.\n * @maxLength 3000\n */\n mimeType?: string | null;\n}\n\n/** @oneof */\nexport interface AttachmentMediaOneOf {\n /** Information about the image. */\n image?: string;\n /** Information about the video. */\n video?: string;\n /** Information about the audio. */\n audio?: string;\n /** Information about the document. */\n document?: string;\n}\n\nexport interface VideoResolution {\n /** Video URL. */\n url?: string;\n /** Video height. */\n height?: number;\n /** Video width. */\n width?: number;\n /** Video format for example, mp4, hls. */\n format?: string;\n /**\n * Video quality. For example: 480p, 720p.\n * @readonly\n */\n quality?: string | null;\n /**\n * Video filename.\n * @readonly\n */\n filename?: string | null;\n /**\n * Video duration in seconds.\n * @readonly\n */\n durationInSeconds?: number | null;\n /**\n * When true, this is a protected asset, and calling the URL will return a 403 error.\n * In order to access private assets, make a request to:\n * `GenerateFileDownloadUrl` with the WixMedia id and specify the asset_key in the request\n * @readonly\n */\n private?: boolean | null;\n /**\n * Key to identify the video resolution's relationship to the original media in WixMedia.\n * Can be used to request a download for the specific video resolution.\n * For example: 480p.mp4, 720p.mp4, 1080p.mp4, trailer-720p.mp4, clip-720p.mp4\n * @readonly\n */\n assetKey?: string | null;\n}\n\nexport interface ContentAuthor extends ContentAuthorAuthorOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Application ID. For more information, see [Authenticate as an App Instance](https://dev.wix.com/docs/build-apps/develop-your-app/access/authentication/authenticate-as-an-app-instance).\n * @format GUID\n */\n appId?: string | null;\n}\n\n/** @oneof */\nexport interface ContentAuthorAuthorOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Application ID. For more information, see [Authenticate as an App Instance](https://dev.wix.com/docs/build-apps/develop-your-app/access/authentication/authenticate-as-an-app-instance).\n * @format GUID\n */\n appId?: string | null;\n}\n\nexport interface CommentAuthor extends CommentAuthorIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n}\n\n/** @oneof */\nexport interface CommentAuthorIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n}\n\nexport interface ParentComment {\n /**\n * Comment ID of the parent comment.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Author of the parent comment.\n * @readonly\n */\n author?: CommentAuthor;\n /**\n * Parent comment status.\n * @readonly\n */\n status?: StatusWithLiterals;\n}\n\nexport enum Status {\n /** Unknown status. */\n UNKNOWN = 'UNKNOWN',\n /** This comment is published and publicly visible. */\n PUBLISHED = 'PUBLISHED',\n /** This comment is deleted. */\n DELETED = 'DELETED',\n /** This comment is pending moderation. Moderation is not currently supported. */\n PENDING = 'PENDING',\n /** This comment has been hidden by a site moderator. */\n HIDDEN = 'HIDDEN',\n}\n\n/** @enumType */\nexport type StatusWithLiterals =\n | Status\n | 'UNKNOWN'\n | 'PUBLISHED'\n | 'DELETED'\n | 'PENDING'\n | 'HIDDEN';\n\nexport interface VoteSummary {\n /** Number of upvotes less downvotes on this comment. */\n netVoteCount?: number;\n /** Number of upvotes on this comment. */\n upvoteCount?: number;\n /** Number of downvotes on this comment. */\n downvoteCount?: number;\n}\n\nexport interface CommentReactionSummary {\n /** Total amount of reactions. */\n total?: number;\n /**\n * Number of each type of reaction. `key` is the code for a reaction type and\n * `value` is the amount of that reaction type.\n */\n reactionCodeCount?: Record<string, number>;\n}\n\nexport interface InvalidateCache extends InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n /**\n * tell us why you're invalidating the cache. You don't need to add your app name\n * @maxLength 256\n */\n reason?: string | null;\n /** Is local DS */\n localDc?: boolean;\n hardPurge?: boolean;\n}\n\n/** @oneof */\nexport interface InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n}\n\nexport interface App {\n /**\n * The AppDefId\n * @minLength 1\n */\n appDefId?: string;\n /**\n * The instance Id\n * @format GUID\n */\n instanceId?: string;\n}\n\nexport interface Page {\n /**\n * the msid the page is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Page ID\n * @minLength 1\n */\n pageId?: string;\n}\n\nexport interface URI {\n /**\n * the msid the URI is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes\n * @minLength 1\n */\n uriPath?: string;\n}\n\nexport interface File {\n /**\n * the msid the file is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by filename (for media files such as PDFs)\n * @minLength 1\n * @maxLength 256\n */\n fileName?: string;\n}\n\nexport interface CustomTag {\n /**\n * the msid the tag is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Tag to invalidate by\n * @minLength 1\n * @maxLength 256\n */\n tag?: string;\n}\n\nexport interface CommentModerated {\n comment?: Comment;\n moderationAction?: ActionWithLiterals;\n}\n\nexport enum Action {\n /** Unknown content. */\n UNKNOWN = 'UNKNOWN',\n /** Approve draft content. */\n APPROVE = 'APPROVE',\n /** Reject draft content. */\n REJECT = 'REJECT',\n}\n\n/** @enumType */\nexport type ActionWithLiterals = Action | 'UNKNOWN' | 'APPROVE' | 'REJECT';\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 UpdateInternalDocumentsEvent\n extends UpdateInternalDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: InternalDocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update internal documents matching filter */\n updateByFilter?: InternalDocumentUpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: InternalUpdateExistingOperation;\n /** insert/update documents with versioning */\n versionedUpdate?: VersionedDocumentUpdateOperation;\n /** delete by document ids with versioning */\n versionedDeleteByIds?: VersionedDeleteByIdsOperation;\n /**\n * type of the documents\n * @minLength 2\n */\n documentType?: string;\n /**\n * language of the documents (mandatory)\n * @minLength 2\n */\n language?: string | null;\n /**\n * one or more search documents\n * @deprecated\n */\n addDocuments?: InternalDocument[];\n /**\n * one or more ids of indexed documents to be removed. Removal will happen before addition (if both provided)\n * @deprecated\n */\n removeDocumentIds?: string[];\n /** id to pass to processing notification */\n correlationId?: string | null;\n /** when event was created / issued */\n issuedAt?: Date | null;\n}\n\n/** @oneof */\nexport interface UpdateInternalDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: InternalDocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update internal documents matching filter */\n updateByFilter?: InternalDocumentUpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: InternalUpdateExistingOperation;\n /** insert/update documents with versioning */\n versionedUpdate?: VersionedDocumentUpdateOperation;\n /** delete by document ids with versioning */\n versionedDeleteByIds?: VersionedDeleteByIdsOperation;\n}\n\nexport interface InternalDocument {\n /** document with mandatory fields (id) and with fields specific to the type of the document */\n document?: Record<string, any> | null;\n}\n\nexport interface InternalDocumentUpdateOperation {\n /** documents to index or update */\n documents?: InternalDocument[];\n}\n\nexport interface DeleteByIdsOperation {\n /** ids of the documents to delete */\n documentIds?: string[];\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface DeleteByFilterOperation {\n /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */\n filter?: Record<string, any> | null;\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface InternalDocumentUpdateByFilterOperation {\n /** documents matching this filter will be updated */\n filter?: Record<string, any> | null;\n /** partial document to apply */\n document?: InternalDocument;\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface InternalUpdateExistingOperation {\n /** documents to update */\n documents?: InternalDocument[];\n}\n\nexport interface VersionedDocumentUpdateOperation {\n /** documents to create or overwrite */\n documents?: InternalDocument[];\n /** versioning mode to use instead of default */\n versioningMode?: VersioningModeWithLiterals;\n}\n\nexport enum VersioningMode {\n /** use default versioning mode agreed with search team */\n DEFAULT = 'DEFAULT',\n /** execute only if version is greater than existing */\n GREATER_THAN = 'GREATER_THAN',\n /** execute only if version is greater or equal to existing */\n GREATER_OR_EQUAL = 'GREATER_OR_EQUAL',\n}\n\n/** @enumType */\nexport type VersioningModeWithLiterals =\n | VersioningMode\n | 'DEFAULT'\n | 'GREATER_THAN'\n | 'GREATER_OR_EQUAL';\n\nexport interface VersionedDeleteByIdsOperation {\n /** ids with version of the documents to delete */\n documentIds?: VersionedDocumentId[];\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface VersionedDocumentId {\n /** document id */\n documentId?: string;\n /** document version */\n version?: string;\n /** versioning mode to use instead of default */\n versioningMode?: VersioningModeWithLiterals;\n}\n\nexport interface CreateCommentRequest {\n /** Comment to create. */\n comment?: Comment;\n}\n\nexport interface ContactDetails {}\n\nexport interface CreateCommentResponse {\n /** Created comment. */\n comment?: Comment;\n}\n\nexport interface ResourceCommentCountChanged {\n /** ID of the app that the comment is added to. */\n appId?: string;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum, the `forumPostId` is used as both the `contextId` and the `resourceId`.\n */\n contextId?: string;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum, the `forumPostId` is used as both the `resourceId` and the `contextId`.\n */\n resourceId?: string;\n /** How many comments are published for the resource. */\n publishedCommentCount?: number;\n}\n\nexport interface GetCommentRequest {\n /**\n * ID of the comment to retrieve.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface GetCommentResponse {\n /** Retrieved comment. */\n comment?: Comment;\n}\n\n/** Comment info to update. */\nexport interface UpdateCommentRequest {\n /** Comment info to update. */\n comment?: Comment;\n}\n\nexport interface UpdateCommentResponse {\n /** Updated comment. */\n comment?: Comment;\n}\n\nexport interface CommentContentChanged {\n /** Comment ID. */\n commentId?: string;\n /** Content before the update. */\n previousContent?: CommentContent;\n /** Content after the update. */\n currentContent?: CommentContent;\n}\n\nexport interface DeleteCommentRequest {\n /**\n * ID of the comment to delete.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface DeleteCommentResponse {}\n\nexport interface CommentDeleted {\n comment?: Comment;\n}\n\nexport interface ModerateDraftContentRequest {\n /**\n * ID of the comment to moderate.\n * @format GUID\n */\n commentId: string;\n /**\n * Revision number, which increments by `1` each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n */\n revision: string | null;\n /** Draft content action. */\n draftContentAction?: ActionWithLiterals;\n}\n\nexport interface ModerateDraftContentResponse {\n /** Moderated comment. */\n comment?: Comment;\n}\n\nexport interface CommentPublished {\n /** Comment info. */\n comment?: Comment;\n /** Whether this is the first comment publish. */\n firstPublish?: boolean;\n}\n\nexport interface CommentHidden {\n comment?: Comment;\n}\n\nexport interface QueryCommentsRequest {\n /**\n * App ID to query comments for.\n * @format GUID\n */\n appId: string;\n /** Query options. */\n query: CursorQuery;\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 5\n */\n sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryCommentsResponse {\n /** Retrieved comments. */\n comments?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in current page. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface MarkCommentRequest {\n /**\n * ID of the comment to mark.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface MarkCommentResponse {\n /** Marked comment. */\n comment?: Comment;\n}\n\nexport interface CommentMarked {\n comment?: Comment;\n}\n\nexport interface UnmarkCommentRequest {\n /**\n * ID of the comment to unmark.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface UnmarkCommentResponse {\n /** Unmarked comment. */\n comment?: Comment;\n}\n\nexport interface CommentUnmarked {\n comment?: Comment;\n}\n\nexport interface HideCommentRequest {\n /**\n * ID of the comment to hide.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface HideCommentResponse {\n /** Hidden comment. */\n comment?: Comment;\n}\n\nexport interface PublishCommentRequest {\n /**\n * ID of the comment to publish.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface PublishCommentResponse {\n /** Published comment. */\n comment?: Comment;\n}\n\n/** Count comments options. */\nexport interface CountCommentsRequest {\n /**\n * App ID to count the comments of.\n * @format GUID\n */\n appId?: string;\n /** Filter to identify the comments that need to be counted. */\n filter?: Record<string, any> | null;\n}\n\nexport interface CountCommentsResponse {\n /** Number of comments. */\n count?: number;\n}\n\nexport interface ListCommentsByResourceRequest {\n /**\n * ID of the app from which the comments are listed.\n * @format GUID\n */\n appId: string;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum, the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @maxLength 128\n */\n contextId: string;\n /**\n * Reserved for internal use.\n * @maxLength 128\n */\n contextType?: string;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum, the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @maxLength 128\n */\n resourceId: string;\n /** Comment sort. Is ignored if `cursorPaging.cursor` is defined. */\n commentSort?: CommentSort;\n /** Reply sort. Is ignored if `cursorPaging.cursor` is defined. */\n replySort?: ReplySort;\n /** Cursor paging. */\n cursorPaging?: ListCommentsByResourceCursorPaging;\n}\n\nexport interface CommentSort {\n /** Sort order. */\n order?: OrderWithLiterals;\n /**\n * If set to `true`, marked comments appear in the original order, and not at the top of the list.\n *\n * Default: `false`. This means that marked comments are prioritized and listed first.\n */\n keepMarkedInOriginalOrder?: boolean;\n}\n\nexport enum Order {\n /** Unknown order. */\n UNKNOWN_ORDER = 'UNKNOWN_ORDER',\n /** Oldest comments appear at the top of the list. */\n OLDEST_FIRST = 'OLDEST_FIRST',\n /** Newest comments appear at the top of the list. */\n NEWEST_FIRST = 'NEWEST_FIRST',\n /** Comments with the highest reaction count appear at the top of the list. */\n REACTION_COUNT = 'REACTION_COUNT',\n /** Comments with the highest vote count appear at the top of the list. */\n NET_VOTE_COUNT = 'NET_VOTE_COUNT',\n /** Comments with the highest rating appear at the top of the list. */\n RATING = 'RATING',\n /** Comments with the lowest vote count appear at the top of the list. */\n NET_VOTE_COUNT_ASC = 'NET_VOTE_COUNT_ASC',\n /** Comments with the lowest rating appear at the top of the list. */\n RATING_ASC = 'RATING_ASC',\n}\n\n/** @enumType */\nexport type OrderWithLiterals =\n | Order\n | 'UNKNOWN_ORDER'\n | 'OLDEST_FIRST'\n | 'NEWEST_FIRST'\n | 'REACTION_COUNT'\n | 'NET_VOTE_COUNT'\n | 'RATING'\n | 'NET_VOTE_COUNT_ASC'\n | 'RATING_ASC';\n\nexport interface ReplySort {\n /** Sort order. */\n order?: ReplySortOrderWithLiterals;\n /**\n * Whether the marked comments are listed in the original order.\n *\n * If set to `true`, marked comments appear in the original order, and not at the top of the list.\n *\n * Default: `false`. In this case marked comments are prioritized and listed first.\n */\n keepMarkedInOriginalOrder?: boolean;\n}\n\nexport enum ReplySortOrder {\n /** Unknown order. */\n UNKNOWN_ORDER = 'UNKNOWN_ORDER',\n /** Oldest comments appear at the top of the list. */\n OLDEST_FIRST = 'OLDEST_FIRST',\n /** Newest comments appear at the top of the list. */\n NEWEST_FIRST = 'NEWEST_FIRST',\n /** Comments with the highest reaction count appear at the top of the list. */\n REACTION_COUNT = 'REACTION_COUNT',\n}\n\n/** @enumType */\nexport type ReplySortOrderWithLiterals =\n | ReplySortOrder\n | 'UNKNOWN_ORDER'\n | 'OLDEST_FIRST'\n | 'NEWEST_FIRST'\n | 'REACTION_COUNT';\n\nexport interface ListCommentsByResourceCursorPaging {\n /** Pointer to the next or previous page in the list of results. */\n cursor?: string | null;\n /**\n * Number of items to return.\n * @min 1\n * @max 100\n */\n limit?: number | null;\n /**\n * Maximum number of replies in a response. Only applicable to parent comments.\n * @max 100\n */\n repliesLimit?: number | null;\n}\n\nexport interface ListCommentsByResourceResponse {\n /** Listed comments. */\n comments?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n /** Listed comment replies. */\n commentReplies?: Record<string, RepliesListResponse>;\n}\n\nexport interface RepliesListResponse {\n /** Listed comment replies. */\n replies?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface GetCommentThreadRequest {\n /**\n * App ID.\n * @maxLength 128\n * @deprecated App ID.\n * @targetRemovalDate 2024-11-01\n */\n appId?: string;\n /**\n * Comment ID.\n * @format GUID\n */\n commentId: string;\n /** Comment sorting. */\n commentSort?: CommentSort;\n /** Reply sorting. */\n replySort?: ReplySort;\n}\n\nexport interface GetCommentThreadResponse {\n /** Retrieved replies. */\n comments?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n /** Retrieved replies of a reply. */\n commentReplies?: Record<string, RepliesListResponse>;\n}\n\nexport interface BulkPublishCommentRequest {\n /**\n * ID of the app where to publish the comment.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be published. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\nexport interface BulkPublishCommentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkHideCommentRequest {\n /**\n * ID of the app where to hide the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be hidden. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\nexport interface BulkHideCommentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkDeleteCommentRequest {\n /**\n * ID of the app where to delete the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be deleted. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\nexport interface BulkDeleteCommentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkModerateDraftContentRequest {\n /**\n * ID of the app where to moderate the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comment content that needs to be moderated. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Action to do regarding draft content */\n draftContentAction: ActionWithLiterals;\n}\n\nexport interface BulkModerateDraftContentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkMoveCommentByFilterRequest {\n /**\n * ID of the app from which to move the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be moved. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Where to move the comment. */\n destination?: Destination;\n}\n\nexport interface Destination {\n /**\n * Context ID of where to move the comment to.\n * @maxLength 128\n */\n contextId?: string;\n /**\n * Resource ID of where to move the comment to.\n * @maxLength 128\n */\n resourceId?: string;\n}\n\nexport interface BulkMoveCommentByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface CommentMoved {\n comment?: Comment;\n destination?: Destination;\n}\n\n/** @docsIgnore */\nexport type CreateCommentApplicationErrors = {\n code?: 'INVALID_CAPTCHA';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type UpdateCommentApplicationErrors = {\n code?: 'INVALID_CAPTCHA';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type CountCommentsApplicationErrors = {\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 CommentDeletedEnvelope {\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is deleted.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_deleted\n * @slug deleted\n */\nexport declare function onCommentDeleted(\n handler: (event: CommentDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentContentChangedEnvelope {\n data: CommentContentChanged;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when comment content is updated.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_content_changed\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_content_changed\n */\nexport declare function onCommentContentChanged(\n handler: (event: CommentContentChangedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentHiddenEnvelope {\n data: CommentHidden;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is hidden.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_hidden\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_hidden\n */\nexport declare function onCommentHidden(\n handler: (event: CommentHiddenEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentMarkedEnvelope {\n data: CommentMarked;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is marked.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_marked\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_marked\n */\nexport declare function onCommentMarked(\n handler: (event: CommentMarkedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentMovedEnvelope {\n data: CommentMoved;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is moved.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_moved\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_moved\n */\nexport declare function onCommentMoved(\n handler: (event: CommentMovedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentPublishedEnvelope {\n data: CommentPublished;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is published.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_published\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_published\n */\nexport declare function onCommentPublished(\n handler: (event: CommentPublishedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentUnmarkedEnvelope {\n data: CommentUnmarked;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is unmarked.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_unmarked\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_unmarked\n */\nexport declare function onCommentUnmarked(\n handler: (event: CommentUnmarkedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentCreatedEnvelope {\n entity: Comment;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is created.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_created\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug created\n */\nexport declare function onCommentCreated(\n handler: (event: CommentCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentResourceCommentCountChangedEnvelope {\n data: ResourceCommentCountChanged;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when the total number of comments has changed in a resource.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_resource_comment_count_changed\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug resource_comment_count_changed\n */\nexport declare function onCommentResourceCommentCountChanged(\n handler: (\n event: CommentResourceCommentCountChangedEnvelope\n ) => void | Promise<void>\n): void;\n\nexport interface CommentUpdatedEnvelope {\n entity: Comment;\n metadata: EventMetadata;\n /** @hidden */\n modifiedFields: Record<string, any>;\n}\n\n/**\n * Triggered when a comment is updated.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_updated\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug updated\n */\nexport declare function onCommentUpdated(\n handler: (event: CommentUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a new comment and publishes it.\n *\n * The `appId`, `contextId`, and `resourceId` are all required and associate the created comment with the specific\n * resource it responds to. See **Integrations** in the Comments introduction for a list of integrated scopes for these fields.\n *\n * If the created comment is a direct response to another comment, the `commentId` of the parent comment should be passed\n * as `parentComment.id` in this comment's request. See **Terminology** in the Comments introduction for additional information on parent comments and replies.\n * @param comment - Comment to create.\n * @public\n * @requiredField comment\n * @requiredField comment.appId\n * @requiredField comment.content\n * @requiredField comment.contextId\n * @requiredField comment.resourceId\n * @permissionId WIX_COMMENTS.COMMENT_CREATE\n * @permissionId WIX_COMMENTS.COMMENT_OVERRIDE_AUTHOR\n * @permissionId WIX_COMMENTS.COMMENT_OVERRIDE_COMMENT_DATE\n * @applicableIdentity APP\n * @returns Created comment.\n * @fqn wix.comments.ng.v1.CommentsNg.CreateComment\n */\nexport async function createComment(\n comment: NonNullablePaths<\n Comment,\n `appId` | `content` | `contextId` | `resourceId`,\n 2\n >\n): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: CreateCommentApplicationErrors;\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({ comment: comment }, [\n 'comment.content.richContent',\n 'comment.draftContent.richContent',\n ]),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformSDKAudioToRESTAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformSDKDocumentToRESTDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.createComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )?.comment!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { comment: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['comment']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves a comment.\n * @param commentId - ID of the comment to retrieve.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @applicableIdentity APP\n * @returns Retrieved comment.\n * @fqn wix.comments.ng.v1.CommentsNg.GetComment\n */\nexport async function getComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.getComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )?.comment!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Updates a comment.\n *\n * Each time the comment is updated, `revision` increments by 1. The current `revision` must be\n * passed when updating the comment. This ensures you're working with the latest comment and\n * prevents unintended overwrites.\n * @param _id - Comment ID.\n * @public\n * @requiredField _id\n * @requiredField comment\n * @requiredField comment.revision\n * @permissionId WIX_COMMENTS.COMMENT_UPDATE\n * @applicableIdentity APP\n * @returns Updated comment.\n * @fqn wix.comments.ng.v1.CommentsNg.UpdateComment\n */\nexport async function updateComment(\n _id: string,\n comment: NonNullablePaths<UpdateComment, `revision`, 2>\n): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: UpdateCommentApplicationErrors;\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 { comment: { ...comment, id: _id } },\n ['comment.content.richContent', 'comment.draftContent.richContent']\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformSDKAudioToRESTAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformSDKDocumentToRESTDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.updateComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )?.comment!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { comment: '$[1]' },\n explicitPathsToArguments: { 'comment.id': '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['_id', 'comment']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateComment {\n /**\n * Comment ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the comment was created.\n *\n * **Note:** This is the date from the system database, not the actual date when the comment was created. For example, if you migrate comments created in 2016, the `createdDate` field will show the current year. For the actual creation date, see the `commentDate` field.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the comment was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the app that the comment is added to.\n * @format GUID\n * @immutable\n */\n appId?: string | null;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @immutable\n * @maxLength 128\n */\n contextId?: string | null;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @immutable\n * @maxLength 128\n */\n resourceId?: string | null;\n /** Published comment content. */\n content?: CommentContent;\n /**\n * Comment's author.\n * @immutable\n */\n author?: CommentAuthor;\n /**\n * Parent comment information.\n *\n * Only present if this comment is in a direct reply to another comment.\n * See **Terminology** in the Comments introduction\n * for more information about parent comments.\n */\n parentComment?: ParentComment;\n /**\n * Number of comments that reply to this comment.\n * @readonly\n */\n replyCount?: number;\n /**\n * Summary of votes.\n * @readonly\n */\n voteSummary?: VoteSummary;\n /**\n * Comment status.\n * @readonly\n */\n status?: StatusWithLiterals;\n /**\n * Comment rating.\n * @readonly\n */\n rating?: number | null;\n /**\n * Summary of reactions.\n * @readonly\n */\n reactionSummary?: CommentReactionSummary;\n /** Whether the comment is marked. */\n marked?: boolean;\n /**\n * Date and time when the comment was actually created.\n * @immutable\n */\n commentDate?: Date | null;\n /**\n * Whether the comment has the updated content.\n * @readonly\n */\n contentEdited?: boolean | null;\n}\n\n/**\n * Deletes a comment.\n *\n * This method deletes the `content` of the comment and sets its `status` to `DELETED`.\n * @param commentId - ID of the comment to delete.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_DELETE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.DeleteComment\n */\nexport async function deleteComment(commentId: string): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.deleteComment(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Moderates the draft content of a comment.\n *\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate multiple comments, call Bulk Moderate Draft Content.\n * @param commentId - ID of the comment to moderate.\n * @param revision - Revision number, which increments by `1` each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n * @public\n * @requiredField commentId\n * @requiredField revision\n * @permissionId WIX_COMMENTS.COMMENT_MODERATE_DRAFT_CONTENT\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.ModerateDraftContent\n */\nexport async function moderateDraftContent(\n commentId: string,\n revision: string,\n options?: ModerateDraftContentOptions\n): Promise<\n NonNullablePaths<\n ModerateDraftContentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n commentId: commentId,\n revision: revision,\n draftContentAction: options?.draftContentAction,\n },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.moderateDraftContent(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n commentId: '$[0]',\n revision: '$[1]',\n draftContentAction: '$[2].draftContentAction',\n },\n singleArgumentUnchanged: false,\n },\n ['commentId', 'revision', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ModerateDraftContentOptions {\n /** Draft content action. */\n draftContentAction?: ActionWithLiterals;\n}\n\n/**\n * Creates a query to retrieve a list of comments.\n *\n * The `queryComments()` function builds a query to retrieve a list of comments and returns a [`CommentsQueryBuilder`](#commentsquerybuilder) object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#commentsquerybuilder/find) function.\n *\n * You can refine the query by chaining `CommentsQueryBuilder` functions onto the query. `CommentsQueryBuilder` functions enable you to sort, filter, and control the results that `queryComments()` returns.\n *\n * `queryComments()` runs with the following `CommentsQueryBuilder` default that you can override:\n * + `ascending(\"_id\")`\n *\n * The functions that are chained to `queryComments()` are applied in the order they are called. For example, if you apply `ascending(\"voteSummary.netVoteCount\")` and then `ascending(\"replyCount\")`, the results are sorted first by the `\"voteSummary.netVoteCount\"`, and then, if there are multiple results with the same `\"voteSummary.netVoteCount\"`, the items are sorted by `\"replyCount\"`.\n *\n * The following `CommentsQueryBuilder` functions are supported for the `queryComments()` function. For a full description of the comment object, see the object returned for the [`items`](#commentsqueryresult/items) property in [`CommentsQueryResult`](#commentsqueryresult).\n * @public\n * @permissionId WIX_COMMENTS.COMMENT_QUERY\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.QueryComments\n */\nexport function queryComments(\n options: QueryCommentsOptions\n): CommentsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Comment,\n 'CURSOR',\n QueryCommentsRequest,\n QueryCommentsResponse\n >({\n func: async (payload: QueryCommentsRequest) => {\n const reqOpts = ambassadorWixCommentsV2Comment.queryComments({\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: QueryCommentsRequest['query']) => {\n const args = [query, options] as [\n QueryCommentsRequest['query'],\n QueryCommentsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest(\n { ...args?.[1], query: args?.[0] },\n []\n );\n },\n responseTransformer: ({ data }: HttpResponse<QueryCommentsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\n );\n\n return {\n items: transformedData?.comments,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryCommentsOptions {\n /**\n * App ID to query comments for.\n * @format GUID\n */\n appId: string;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface CommentsQueryResult extends QueryCursorResult {\n items: Comment[];\n query: CommentsQueryBuilder;\n next: () => Promise<CommentsQueryResult>;\n prev: () => Promise<CommentsQueryResult>;\n}\n\nexport interface CommentsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n eq: (\n propertyName:\n | '_id'\n | 'contextId'\n | 'resourceId'\n | 'author.userId'\n | 'author.memberId'\n | 'author.visitorId'\n | 'parentComment.id'\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'status'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ne: (\n propertyName:\n | '_id'\n | 'contextId'\n | 'resourceId'\n | 'author.userId'\n | 'author.memberId'\n | 'author.visitorId'\n | 'parentComment.id'\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'status'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ge: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n gt: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n le: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n lt: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n */\n hasSome: (propertyName: string, value: any[]) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n */\n hasAll: (propertyName: string, value: any[]) => CommentsQueryBuilder;\n in: (\n propertyName:\n | '_id'\n | 'contextId'\n | 'resourceId'\n | 'author.userId'\n | 'author.memberId'\n | 'author.visitorId'\n | 'parentComment.id'\n | 'status',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n ascending: (\n ...propertyNames: Array<\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked'\n >\n ) => CommentsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n descending: (\n ...propertyNames: Array<\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked'\n >\n ) => CommentsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n limit: (limit: number) => CommentsQueryBuilder;\n /** @param cursor - A pointer to specific record */\n skipTo: (cursor: string) => CommentsQueryBuilder;\n find: () => Promise<CommentsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.comments.ng.v1.CommentsNg.QueryComments\n * @requiredField query\n * @requiredField options\n */\nexport async function typedQueryComments(\n query: CommentQuery,\n options: QueryCommentsOptions\n): Promise<\n NonNullablePaths<\n QueryCommentsResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\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, ...options },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.queryComments(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: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\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 CommentQuerySpec extends QuerySpec {\n paging: 'cursor';\n wql: [\n {\n fields: ['_id'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['contextId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['resourceId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['author.userId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['author.memberId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['author.visitorId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['parentComment._id'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['replyCount'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['status'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['voteSummary.netVoteCount'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['rating'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['reactionSummary.total'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['marked'];\n operators: ['$eq', '$ne'];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n Comment,\n CommentQuerySpec\n>;\nexport type CommentQuery = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonQueryWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 5 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonQueryWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n }[];\n};\n\nexport const utils = {\n ...createQueryUtils<Comment, CommentQuerySpec, CommentQuery>(),\n};\n\n/**\n * Sets `marked` to `TRUE` to mark a comment.\n *\n * Call Query Comments to filter for marked comments to then apply customization to.\n * See Sample Flows for an example.\n * @param commentId - ID of the comment to mark.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_MARK\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.MarkComment\n */\nexport async function markComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n MarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.markComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Sets `marked` to `FALSE` to unmark a comment.\n * @param commentId - ID of the comment to unmark.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_MARK\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.UnmarkComment\n */\nexport async function unmarkComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n UnmarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.unmarkComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Hides a comment in a widget. The comment status becomes `HIDDEN`.\n * @param commentId - ID of the comment to hide.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_HIDE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.HideComment\n */\nexport async function hideComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n HideCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.hideComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Publishes a comment with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n *\n * To publish a new comment, call Create Comment.\n * @param commentId - ID of the comment to publish.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_PUBLISH\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.PublishComment\n */\nexport async function publishComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n PublishCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.publishComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Counts comments, given the specified filtering. Comments with the `HIDDEN` status are not included in the response.\n * @param appId - App ID to count the comments of.\n * @public\n * @requiredField appId\n * @permissionId WIX_COMMENTS.COMMENT_COUNT\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.CountComments\n */\nexport async function countComments(\n appId: string,\n options?: CountCommentsOptions\n): Promise<\n NonNullablePaths<CountCommentsResponse, `count`, 2> & {\n __applicationErrorsType?: CountCommentsApplicationErrors;\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 { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.countComments(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CountCommentsOptions {\n /** Filter to identify the comments that need to be counted. */\n filter?: Record<string, any> | null;\n}\n\n/**\n * Lists published comments and replies from a specified resource, such as a blog post.\n * @param appId - ID of the app from which the comments are listed.\n * @public\n * @requiredField appId\n * @requiredField options.contextId\n * @requiredField options.resourceId\n * @permissionId WIX_COMMENTS.COMMENT_LIST\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.ListCommentsByResource\n */\nexport async function listCommentsByResource(\n appId: string,\n options?: NonNullablePaths<\n ListCommentsByResourceOptions,\n `contextId` | `resourceId`,\n 2\n >\n): Promise<\n NonNullablePaths<\n ListCommentsByResourceResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\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 {\n appId: appId,\n contextId: options?.contextId,\n contextType: options?.contextType,\n resourceId: options?.resourceId,\n commentSort: options?.commentSort,\n replySort: options?.replySort,\n cursorPaging: options?.cursorPaging,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixCommentsV2Comment.listCommentsByResource(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: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n { path: 'commentReplies.*.replies.content.attachments.image' },\n { path: 'commentReplies.*.replies.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n { path: 'commentReplies.*.replies.content.attachments.video' },\n { path: 'commentReplies.*.replies.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n { path: 'commentReplies.*.replies.content.attachments.audio' },\n { path: 'commentReplies.*.replies.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n { path: 'commentReplies.*.replies.content.attachments.document' },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document',\n },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n appId: '$[0]',\n contextId: '$[1].contextId',\n contextType: '$[1].contextType',\n resourceId: '$[1].resourceId',\n commentSort: '$[1].commentSort',\n replySort: '$[1].replySort',\n cursorPaging: '$[1].cursorPaging',\n },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListCommentsByResourceOptions {\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum, the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @maxLength 128\n */\n contextId: string;\n /**\n * Reserved for internal use.\n * @maxLength 128\n */\n contextType?: string;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum, the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @maxLength 128\n */\n resourceId: string;\n /** Comment sort. Is ignored if `cursorPaging.cursor` is defined. */\n commentSort?: CommentSort;\n /** Reply sort. Is ignored if `cursorPaging.cursor` is defined. */\n replySort?: ReplySort;\n /** Cursor paging. */\n cursorPaging?: ListCommentsByResourceCursorPaging;\n}\n\n/**\n * Returns a thread of a comment or a reply.\n *\n * If you request a comment thread, the method returns a single comment with cursors. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n *\n * If you request a reply thread, the method returns a reply with its parent comment. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n * @param commentId - Comment ID.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_THREAD\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.GetCommentThread\n */\nexport async function getCommentThread(\n commentId: string,\n options?: GetCommentThreadOptions\n): Promise<\n NonNullablePaths<\n GetCommentThreadResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\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 {\n commentId: commentId,\n appId: options?.appId,\n commentSort: options?.commentSort,\n replySort: options?.replySort,\n },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.getCommentThread(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: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n { path: 'commentReplies.*.replies.content.attachments.image' },\n { path: 'commentReplies.*.replies.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n { path: 'commentReplies.*.replies.content.attachments.video' },\n { path: 'commentReplies.*.replies.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n { path: 'commentReplies.*.replies.content.attachments.audio' },\n { path: 'commentReplies.*.replies.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n { path: 'commentReplies.*.replies.content.attachments.document' },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document',\n },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n commentId: '$[0]',\n appId: '$[1].appId',\n commentSort: '$[1].commentSort',\n replySort: '$[1].replySort',\n },\n singleArgumentUnchanged: false,\n },\n ['commentId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetCommentThreadOptions {\n /**\n * App ID.\n * @maxLength 128\n * @deprecated App ID.\n * @targetRemovalDate 2024-11-01\n */\n appId?: string;\n /** Comment sorting. */\n commentSort?: CommentSort;\n /** Reply sorting. */\n replySort?: ReplySort;\n}\n\n/**\n * Publishes multiple comments with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n * @param appId - ID of the app where to publish the comment.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_PUBLISH\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkPublishComment\n */\nexport async function bulkPublishComment(\n appId: string,\n options: NonNullablePaths<BulkPublishCommentOptions, `filter`, 2>\n): Promise<NonNullablePaths<BulkPublishCommentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.bulkPublishComment(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkPublishCommentOptions {\n /** Filter to identify the comments that need to be published. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\n/**\n * Hides multiple comments. The comment status becomes `HIDDEN`.\n * @param appId - ID of the app where to hide the comments.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_HIDE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkHideComment\n */\nexport async function bulkHideComment(\n appId: string,\n options: NonNullablePaths<BulkHideCommentOptions, `filter`, 2>\n): Promise<NonNullablePaths<BulkHideCommentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.bulkHideComment(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkHideCommentOptions {\n /** Filter to identify the comments that need to be hidden. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\n/**\n * Deletes multiple comments.\n * @param appId - ID of the app where to delete the comments.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_DELETE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkDeleteComment\n */\nexport async function bulkDeleteComment(\n appId: string,\n options: NonNullablePaths<BulkDeleteCommentOptions, `filter`, 2>\n): Promise<NonNullablePaths<BulkDeleteCommentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.bulkDeleteComment(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkDeleteCommentOptions {\n /** Filter to identify the comments that need to be deleted. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\n/**\n * Moderates the draft content of multiple comments that match the specified filter.\n *\n * The same action, `APPROVE` or `REJECT`, applies to all comments that match the filter.\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate a single comment, call Moderate Draft Content.\n * @param appId - ID of the app where to moderate the comments.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.draftContentAction\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_MODERATE_DRAFT_CONTENT\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkModerateDraftContent\n */\nexport async function bulkModerateDraftContent(\n appId: string,\n options: NonNullablePaths<\n BulkModerateDraftContentOptions,\n `draftContentAction` | `filter`,\n 2\n >\n): Promise<NonNullablePaths<BulkModerateDraftContentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n appId: appId,\n filter: options?.filter,\n draftContentAction: options?.draftContentAction,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixCommentsV2Comment.bulkModerateDraftContent(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 appId: '$[0]',\n filter: '$[1].filter',\n draftContentAction: '$[1].draftContentAction',\n },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkModerateDraftContentOptions {\n /** Filter to identify the comment content that needs to be moderated. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Action to do regarding draft content */\n draftContentAction: ActionWithLiterals;\n}\n\n/**\n * Moves multiple comments to another resource.\n * @param appId - ID of the app from which to move the comments.\n * @public\n * @requiredField appId\n * @requiredField options.destination.contextId\n * @requiredField options.destination.resourceId\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_MOVE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkMoveCommentByFilter\n */\nexport async function bulkMoveCommentByFilter(\n appId: string,\n options?: NonNullablePaths<\n BulkMoveCommentByFilterOptions,\n `destination.contextId` | `destination.resourceId` | `filter`,\n 3\n >\n): Promise<NonNullablePaths<BulkMoveCommentByFilterResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n appId: appId,\n filter: options?.filter,\n destination: options?.destination,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixCommentsV2Comment.bulkMoveCommentByFilter(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 appId: '$[0]',\n filter: '$[1].filter',\n destination: '$[1].destination',\n },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkMoveCommentByFilterOptions {\n /** Filter to identify the comments that need to be moved. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Where to move the comment. */\n destination?: Destination;\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 { 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 resolveWixCommentsNgV1CommentsNgUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'www.wixapis.com': [\n {\n srcPath: '/comments/v1/comments',\n destPath: '/v1/comments',\n },\n {\n srcPath: '/comments/v1/bulk/comments',\n destPath: '/v1/bulk/comments',\n },\n ],\n _: [\n {\n srcPath: '/_api/comments-ng/v1',\n destPath: '/v1',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/_api/comments-ng/v1',\n destPath: '/v1',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/comments-ng/v1',\n destPath: '/v1',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/comments-ng',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_comments_comments';\n\n/**\n * Creates a new comment and publishes it.\n *\n * The `appId`, `contextId`, and `resourceId` are all required and associate the created comment with the specific\n * resource it responds to. See **Integrations** in the Comments introduction for a list of integrated scopes for these fields.\n *\n * If the created comment is a direct response to another comment, the `commentId` of the parent comment should be passed\n * as `parentComment.id` in this comment's request. See **Terminology** in the Comments introduction for additional information on parent comments and replies.\n */\nexport function createComment(payload: object): RequestOptionsFactory<any> {\n function __createComment({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n { path: 'comment.content.attachments.document.urlExpirationDate' },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'comment.draftContent.attachments.image.urlExpirationDate' },\n { path: 'comment.draftContent.attachments.video.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.draftContent.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lat' },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lng' },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.CreateComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createComment;\n}\n\n/** Retrieves a comment. */\nexport function getComment(payload: object): RequestOptionsFactory<any> {\n function __getComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'GET' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.GetComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}',\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: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getComment;\n}\n\n/**\n * Updates a comment.\n *\n * Each time the comment is updated, `revision` increments by 1. The current `revision` must be\n * passed when updating the comment. This ensures you're working with the latest comment and\n * prevents unintended overwrites.\n */\nexport function updateComment(payload: object): RequestOptionsFactory<any> {\n function __updateComment({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n { path: 'comment.content.attachments.document.urlExpirationDate' },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'comment.draftContent.attachments.image.urlExpirationDate' },\n { path: 'comment.draftContent.attachments.video.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.draftContent.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lat' },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lng' },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PATCH' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.UpdateComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{comment.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: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateComment;\n}\n\n/**\n * Deletes a comment.\n *\n * This method deletes the `content` of the comment and sets its `status` to `DELETED`.\n */\nexport function deleteComment(payload: object): RequestOptionsFactory<any> {\n function __deleteComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'DELETE' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.DeleteComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteComment;\n}\n\n/**\n * Moderates the draft content of a comment.\n *\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate multiple comments, call Bulk Moderate Draft Content.\n */\nexport function moderateDraftContent(\n payload: object\n): RequestOptionsFactory<any> {\n function __moderateDraftContent({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.ModerateDraftContent',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/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: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __moderateDraftContent;\n}\n\n/**\n * Creates a query to retrieve a list of comments.\n *\n * The `queryComments()` function builds a query to retrieve a list of comments and returns a [`CommentsQueryBuilder`](#commentsquerybuilder) object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#commentsquerybuilder/find) function.\n *\n * You can refine the query by chaining `CommentsQueryBuilder` functions onto the query. `CommentsQueryBuilder` functions enable you to sort, filter, and control the results that `queryComments()` returns.\n *\n * `queryComments()` runs with the following `CommentsQueryBuilder` default that you can override:\n * + `ascending(\"_id\")`\n *\n * The functions that are chained to `queryComments()` are applied in the order they are called. For example, if you apply `ascending(\"voteSummary.netVoteCount\")` and then `ascending(\"replyCount\")`, the results are sorted first by the `\"voteSummary.netVoteCount\"`, and then, if there are multiple results with the same `\"voteSummary.netVoteCount\"`, the items are sorted by `\"replyCount\"`.\n *\n * The following `CommentsQueryBuilder` functions are supported for the `queryComments()` function. For a full description of the comment object, see the object returned for the [`items`](#commentsqueryresult/items) property in [`CommentsQueryResult`](#commentsqueryresult).\n */\nexport function queryComments(payload: object): RequestOptionsFactory<any> {\n function __queryComments({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.QueryComments',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/query-cursor',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comments.createdDate' },\n { path: 'comments.updatedDate' },\n { path: 'comments.commentDate' },\n { path: 'comments.content.commentDate' },\n {\n path: 'comments.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'comments.content.attachments.image.urlExpirationDate' },\n { path: 'comments.content.attachments.video.urlExpirationDate' },\n {\n path: 'comments.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comments.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comments.content.attachments.document.urlExpirationDate',\n },\n { path: 'comments.draftContent.commentDate' },\n {\n path: 'comments.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comments.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comments.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __queryComments;\n}\n\n/**\n * Sets `marked` to `TRUE` to mark a comment.\n *\n * Call Query Comments to filter for marked comments to then apply customization to.\n * See Sample Flows for an example.\n */\nexport function markComment(payload: object): RequestOptionsFactory<any> {\n function __markComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.MarkComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/mark',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __markComment;\n}\n\n/** Sets `marked` to `FALSE` to unmark a comment. */\nexport function unmarkComment(payload: object): RequestOptionsFactory<any> {\n function __unmarkComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.UnmarkComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/unmark',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __unmarkComment;\n}\n\n/** Hides a comment in a widget. The comment status becomes `HIDDEN`. */\nexport function hideComment(payload: object): RequestOptionsFactory<any> {\n function __hideComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.HideComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/hide',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __hideComment;\n}\n\n/**\n * Publishes a comment with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n *\n * To publish a new comment, call Create Comment.\n */\nexport function publishComment(payload: object): RequestOptionsFactory<any> {\n function __publishComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.PublishComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/publish',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __publishComment;\n}\n\n/** Counts comments, given the specified filtering. Comments with the `HIDDEN` status are not included in the response. */\nexport function countComments(payload: object): RequestOptionsFactory<any> {\n function __countComments({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.CountComments',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/count',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __countComments;\n}\n\n/** Lists published comments and replies from a specified resource, such as a blog post. */\nexport function listCommentsByResource(\n payload: object\n): RequestOptionsFactory<any> {\n function __listCommentsByResource({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'GET' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.ListCommentsByResource',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/list-by-resource',\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: 'comments.createdDate' },\n { path: 'comments.updatedDate' },\n { path: 'comments.commentDate' },\n { path: 'comments.content.commentDate' },\n {\n path: 'comments.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'comments.content.attachments.image.urlExpirationDate' },\n { path: 'comments.content.attachments.video.urlExpirationDate' },\n {\n path: 'comments.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comments.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comments.content.attachments.document.urlExpirationDate',\n },\n { path: 'comments.draftContent.commentDate' },\n {\n path: 'comments.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comments.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.createdDate' },\n { path: 'commentReplies.*.replies.updatedDate' },\n { path: 'commentReplies.*.replies.commentDate' },\n { path: 'commentReplies.*.replies.content.commentDate' },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.draftContent.commentDate' },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comments.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listCommentsByResource;\n}\n\n/**\n * Returns a thread of a comment or a reply.\n *\n * If you request a comment thread, the method returns a single comment with cursors. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n *\n * If you request a reply thread, the method returns a reply with its parent comment. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n */\nexport function getCommentThread(payload: object): RequestOptionsFactory<any> {\n function __getCommentThread({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'GET' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.GetCommentThread',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/thread',\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: 'comments.createdDate' },\n { path: 'comments.updatedDate' },\n { path: 'comments.commentDate' },\n { path: 'comments.content.commentDate' },\n {\n path: 'comments.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'comments.content.attachments.image.urlExpirationDate' },\n { path: 'comments.content.attachments.video.urlExpirationDate' },\n {\n path: 'comments.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comments.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comments.content.attachments.document.urlExpirationDate',\n },\n { path: 'comments.draftContent.commentDate' },\n {\n path: 'comments.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comments.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.createdDate' },\n { path: 'commentReplies.*.replies.updatedDate' },\n { path: 'commentReplies.*.replies.commentDate' },\n { path: 'commentReplies.*.replies.content.commentDate' },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.draftContent.commentDate' },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comments.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getCommentThread;\n}\n\n/** Publishes multiple comments with the `HIDDEN` status. The comment status becomes `PUBLISHED`. */\nexport function bulkPublishComment(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkPublishComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkPublishComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/publish-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkPublishComment;\n}\n\n/** Hides multiple comments. The comment status becomes `HIDDEN`. */\nexport function bulkHideComment(payload: object): RequestOptionsFactory<any> {\n function __bulkHideComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkHideComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/hide-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkHideComment;\n}\n\n/** Deletes multiple comments. */\nexport function bulkDeleteComment(payload: object): RequestOptionsFactory<any> {\n function __bulkDeleteComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkDeleteComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/delete-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkDeleteComment;\n}\n\n/**\n * Moderates the draft content of multiple comments that match the specified filter.\n *\n * The same action, `APPROVE` or `REJECT`, applies to all comments that match the filter.\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate a single comment, call Moderate Draft Content.\n */\nexport function bulkModerateDraftContent(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkModerateDraftContent({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkModerateDraftContent',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/moderate-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkModerateDraftContent;\n}\n\n/** Moves multiple comments to another resource. */\nexport function bulkMoveCommentByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkMoveCommentByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkMoveCommentByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/move-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkMoveCommentByFilter;\n}\n","import {\n createComment as publicCreateComment,\n getComment as publicGetComment,\n updateComment as publicUpdateComment,\n deleteComment as publicDeleteComment,\n moderateDraftContent as publicModerateDraftContent,\n queryComments as publicQueryComments,\n typedQueryComments as publicTypedQueryComments,\n markComment as publicMarkComment,\n unmarkComment as publicUnmarkComment,\n hideComment as publicHideComment,\n publishComment as publicPublishComment,\n countComments as publicCountComments,\n listCommentsByResource as publicListCommentsByResource,\n getCommentThread as publicGetCommentThread,\n bulkPublishComment as publicBulkPublishComment,\n bulkHideComment as publicBulkHideComment,\n bulkDeleteComment as publicBulkDeleteComment,\n bulkModerateDraftContent as publicBulkModerateDraftContent,\n bulkMoveCommentByFilter as publicBulkMoveCommentByFilter,\n} from './comments-v2-comment-comments.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 CommentQuery,\n CommentsQueryBuilder,\n QueryCommentsOptions,\n typedQueryComments as universalTypedQueryComments,\n} from './comments-v2-comment-comments.universal.js';\nimport { onCommentDeleted as publicOnCommentDeleted } from './comments-v2-comment-comments.public.js';\nimport { onCommentContentChanged as publicOnCommentContentChanged } from './comments-v2-comment-comments.public.js';\nimport { onCommentHidden as publicOnCommentHidden } from './comments-v2-comment-comments.public.js';\nimport { onCommentMarked as publicOnCommentMarked } from './comments-v2-comment-comments.public.js';\nimport { onCommentMoved as publicOnCommentMoved } from './comments-v2-comment-comments.public.js';\nimport { onCommentPublished as publicOnCommentPublished } from './comments-v2-comment-comments.public.js';\nimport { onCommentUnmarked as publicOnCommentUnmarked } from './comments-v2-comment-comments.public.js';\nimport { onCommentCreated as publicOnCommentCreated } from './comments-v2-comment-comments.public.js';\nimport { onCommentResourceCommentCountChanged as publicOnCommentResourceCommentCountChanged } from './comments-v2-comment-comments.public.js';\nimport { onCommentUpdated as publicOnCommentUpdated } from './comments-v2-comment-comments.public.js';\n\nfunction customQueryComments(httpClient: HttpClient) {\n const router = createQueryOverloadRouter({\n builderQueryFunction: (options: QueryCommentsOptions) =>\n publicQueryComments(httpClient)(options),\n typedQueryFunction: (query: CommentQuery, options: QueryCommentsOptions) =>\n publicTypedQueryComments(httpClient)(query, options),\n hasOptionsParameter: true,\n });\n\n function overloadedQuery(\n query: CommentQuery,\n options: QueryCommentsOptions\n ): ReturnType<typeof universalTypedQueryComments>;\n function overloadedQuery(options: QueryCommentsOptions): CommentsQueryBuilder;\n function overloadedQuery(\n queryOrOptions?: CommentQuery | QueryCommentsOptions,\n options?: QueryCommentsOptions\n ): any {\n return router(...arguments);\n }\n\n return overloadedQuery;\n}\n\nexport const createComment: MaybeContext<\n BuildRESTFunction<typeof publicCreateComment> & typeof publicCreateComment\n> = /*#__PURE__*/ createRESTModule(publicCreateComment);\nexport const getComment: MaybeContext<\n BuildRESTFunction<typeof publicGetComment> & typeof publicGetComment\n> = /*#__PURE__*/ createRESTModule(publicGetComment);\nexport const updateComment: MaybeContext<\n BuildRESTFunction<typeof publicUpdateComment> & typeof publicUpdateComment\n> = /*#__PURE__*/ createRESTModule(publicUpdateComment);\nexport const deleteComment: MaybeContext<\n BuildRESTFunction<typeof publicDeleteComment> & typeof publicDeleteComment\n> = /*#__PURE__*/ createRESTModule(publicDeleteComment);\nexport const moderateDraftContent: MaybeContext<\n BuildRESTFunction<typeof publicModerateDraftContent> &\n typeof publicModerateDraftContent\n> = /*#__PURE__*/ createRESTModule(publicModerateDraftContent);\nexport const markComment: MaybeContext<\n BuildRESTFunction<typeof publicMarkComment> & typeof publicMarkComment\n> = /*#__PURE__*/ createRESTModule(publicMarkComment);\nexport const unmarkComment: MaybeContext<\n BuildRESTFunction<typeof publicUnmarkComment> & typeof publicUnmarkComment\n> = /*#__PURE__*/ createRESTModule(publicUnmarkComment);\nexport const hideComment: MaybeContext<\n BuildRESTFunction<typeof publicHideComment> & typeof publicHideComment\n> = /*#__PURE__*/ createRESTModule(publicHideComment);\nexport const publishComment: MaybeContext<\n BuildRESTFunction<typeof publicPublishComment> & typeof publicPublishComment\n> = /*#__PURE__*/ createRESTModule(publicPublishComment);\nexport const countComments: MaybeContext<\n BuildRESTFunction<typeof publicCountComments> & typeof publicCountComments\n> = /*#__PURE__*/ createRESTModule(publicCountComments);\nexport const listCommentsByResource: MaybeContext<\n BuildRESTFunction<typeof publicListCommentsByResource> &\n typeof publicListCommentsByResource\n> = /*#__PURE__*/ createRESTModule(publicListCommentsByResource);\nexport const getCommentThread: MaybeContext<\n BuildRESTFunction<typeof publicGetCommentThread> &\n typeof publicGetCommentThread\n> = /*#__PURE__*/ createRESTModule(publicGetCommentThread);\nexport const bulkPublishComment: MaybeContext<\n BuildRESTFunction<typeof publicBulkPublishComment> &\n typeof publicBulkPublishComment\n> = /*#__PURE__*/ createRESTModule(publicBulkPublishComment);\nexport const bulkHideComment: MaybeContext<\n BuildRESTFunction<typeof publicBulkHideComment> & typeof publicBulkHideComment\n> = /*#__PURE__*/ createRESTModule(publicBulkHideComment);\nexport const bulkDeleteComment: MaybeContext<\n BuildRESTFunction<typeof publicBulkDeleteComment> &\n typeof publicBulkDeleteComment\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteComment);\nexport const bulkModerateDraftContent: MaybeContext<\n BuildRESTFunction<typeof publicBulkModerateDraftContent> &\n typeof publicBulkModerateDraftContent\n> = /*#__PURE__*/ createRESTModule(publicBulkModerateDraftContent);\nexport const bulkMoveCommentByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkMoveCommentByFilter> &\n typeof publicBulkMoveCommentByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkMoveCommentByFilter);\nexport const queryComments: MaybeContext<\n BuildRESTFunction<typeof customQueryComments> & typeof customQueryComments\n> = /*#__PURE__*/ createRESTModule(customQueryComments);\n/**\n * Triggered when a comment is deleted.\n */\nexport const onCommentDeleted: BuildEventDefinition<\n typeof publicOnCommentDeleted\n> &\n typeof publicOnCommentDeleted = createEventModule(publicOnCommentDeleted);\n/**\n * Triggered when comment content is updated.\n */\nexport const onCommentContentChanged: BuildEventDefinition<\n typeof publicOnCommentContentChanged\n> &\n typeof publicOnCommentContentChanged = createEventModule(\n publicOnCommentContentChanged\n);\n/**\n * Triggered when a comment is hidden.\n */\nexport const onCommentHidden: BuildEventDefinition<\n typeof publicOnCommentHidden\n> &\n typeof publicOnCommentHidden = createEventModule(publicOnCommentHidden);\n/**\n * Triggered when a comment is marked.\n */\nexport const onCommentMarked: BuildEventDefinition<\n typeof publicOnCommentMarked\n> &\n typeof publicOnCommentMarked = createEventModule(publicOnCommentMarked);\n/**\n * Triggered when a comment is moved.\n */\nexport const onCommentMoved: BuildEventDefinition<typeof publicOnCommentMoved> &\n typeof publicOnCommentMoved = createEventModule(publicOnCommentMoved);\n/**\n * Triggered when a comment is published.\n */\nexport const onCommentPublished: BuildEventDefinition<\n typeof publicOnCommentPublished\n> &\n typeof publicOnCommentPublished = createEventModule(publicOnCommentPublished);\n/**\n * Triggered when a comment is unmarked.\n */\nexport const onCommentUnmarked: BuildEventDefinition<\n typeof publicOnCommentUnmarked\n> &\n typeof publicOnCommentUnmarked = createEventModule(publicOnCommentUnmarked);\n/**\n * Triggered when a comment is created.\n */\nexport const onCommentCreated: BuildEventDefinition<\n typeof publicOnCommentCreated\n> &\n typeof publicOnCommentCreated = createEventModule(publicOnCommentCreated);\n/**\n * Triggered when the total number of comments has changed in a resource.\n */\nexport const onCommentResourceCommentCountChanged: BuildEventDefinition<\n typeof publicOnCommentResourceCommentCountChanged\n> &\n typeof publicOnCommentResourceCommentCountChanged = createEventModule(\n publicOnCommentResourceCommentCountChanged\n);\n/**\n * Triggered when a comment is updated.\n */\nexport const onCommentUpdated: BuildEventDefinition<\n typeof publicOnCommentUpdated\n> &\n typeof publicOnCommentUpdated = createEventModule(publicOnCommentUpdated);\n\nexport {\n NodeType,\n WidthType,\n PluginContainerDataAlignment,\n ButtonDataType,\n Target,\n TextAlignment,\n LineStyle,\n Width,\n DividerDataAlignment,\n ViewMode,\n LayoutType,\n Orientation,\n Crop,\n ThumbnailsAlignment,\n GIFType,\n Source,\n StylesPosition,\n MapType,\n ViewRole,\n VoteRole,\n PollLayoutType,\n PollLayoutDirection,\n BackgroundType,\n DecorationType,\n FontType,\n Position,\n AspectRatio,\n Resizing,\n Placement,\n Type,\n Alignment,\n Layout,\n AppType,\n InitialExpandedItems,\n Direction,\n VerticalAlignment,\n NullValue,\n Scaling,\n ImagePosition,\n VerticalAlignmentAlignment,\n ResponsivenessBehaviour,\n DesignTarget,\n Status,\n Action,\n WebhookIdentityType,\n VersioningMode,\n SortOrder,\n Order,\n ReplySortOrder,\n} from './comments-v2-comment-comments.universal.js';\nexport {\n Comment,\n CommentContent,\n RichContent,\n Node,\n NodeDataOneOf,\n NodeStyle,\n ButtonData,\n Border,\n Colors,\n PluginContainerData,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Spoiler,\n Height,\n Styles,\n Link,\n LinkDataOneOf,\n Rel,\n CodeBlockData,\n TextStyle,\n DividerData,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n PDFSettings,\n GalleryData,\n Media,\n Image,\n Video,\n Item,\n ItemDataOneOf,\n GalleryOptions,\n GalleryOptionsLayout,\n ItemStyle,\n Thumbnails,\n GIFData,\n GIF,\n HeadingData,\n HTMLData,\n HTMLDataDataOneOf,\n ImageData,\n StylesBorder,\n ImageDataStyles,\n LinkPreviewData,\n LinkPreviewDataStyles,\n MapData,\n MapSettings,\n ParagraphData,\n PollData,\n Permissions,\n Option,\n Settings,\n PollLayout,\n OptionLayout,\n Gradient,\n Background,\n BackgroundBackgroundOneOf,\n PollDesign,\n OptionDesign,\n Poll,\n PollDataLayout,\n Design,\n TextData,\n Decoration,\n DecorationDataOneOf,\n AnchorData,\n ColorData,\n LinkData,\n MentionData,\n FontSizeData,\n SpoilerData,\n FontFamilyData,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n BookingData,\n EventData,\n ButtonStyles,\n ImageStyles,\n RibbonStyles,\n CardStyles,\n PricingData,\n VideoData,\n PlaybackOptions,\n EmbedData,\n Oembed,\n CollapsibleListData,\n TableData,\n Dimensions,\n TableCellData,\n CellStyle,\n BorderColors,\n BorderWidths,\n ListValue,\n AudioData,\n OrderedListData,\n BulletedListData,\n BlockquoteData,\n CaptionData,\n LayoutData,\n BackgroundImage,\n LayoutCellData,\n ShapeData,\n ShapeDataStyles,\n Metadata,\n DocumentStyle,\n TextNodeStyle,\n Mention,\n MentionIdentityOneOf,\n Attachment,\n AttachmentMediaOneOf,\n VideoResolution,\n ContentAuthor,\n ContentAuthorAuthorOneOf,\n CommentAuthor,\n CommentAuthorIdentityOneOf,\n ParentComment,\n VoteSummary,\n CommentReactionSummary,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n App,\n Page,\n URI,\n File,\n CustomTag,\n CommentModerated,\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 UpdateInternalDocumentsEvent,\n UpdateInternalDocumentsEventOperationOneOf,\n InternalDocument,\n InternalDocumentUpdateOperation,\n DeleteByIdsOperation,\n DeleteByFilterOperation,\n InternalDocumentUpdateByFilterOperation,\n InternalUpdateExistingOperation,\n VersionedDocumentUpdateOperation,\n VersionedDeleteByIdsOperation,\n VersionedDocumentId,\n CreateCommentRequest,\n ContactDetails,\n CreateCommentResponse,\n ResourceCommentCountChanged,\n GetCommentRequest,\n GetCommentResponse,\n UpdateCommentRequest,\n UpdateCommentResponse,\n CommentContentChanged,\n DeleteCommentRequest,\n DeleteCommentResponse,\n CommentDeleted,\n ModerateDraftContentRequest,\n ModerateDraftContentResponse,\n CommentPublished,\n CommentHidden,\n QueryCommentsRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Sorting,\n CursorPaging,\n QueryCommentsResponse,\n CursorPagingMetadata,\n Cursors,\n MarkCommentRequest,\n MarkCommentResponse,\n CommentMarked,\n UnmarkCommentRequest,\n UnmarkCommentResponse,\n CommentUnmarked,\n HideCommentRequest,\n HideCommentResponse,\n PublishCommentRequest,\n PublishCommentResponse,\n CountCommentsRequest,\n CountCommentsResponse,\n ListCommentsByResourceRequest,\n CommentSort,\n ReplySort,\n ListCommentsByResourceCursorPaging,\n ListCommentsByResourceResponse,\n RepliesListResponse,\n GetCommentThreadRequest,\n GetCommentThreadResponse,\n BulkPublishCommentRequest,\n BulkPublishCommentResponse,\n BulkHideCommentRequest,\n BulkHideCommentResponse,\n BulkDeleteCommentRequest,\n BulkDeleteCommentResponse,\n BulkModerateDraftContentRequest,\n BulkModerateDraftContentResponse,\n BulkMoveCommentByFilterRequest,\n Destination,\n BulkMoveCommentByFilterResponse,\n CommentMoved,\n BaseEventMetadata,\n EventMetadata,\n AccountInfoMetadata,\n CommentDeletedEnvelope,\n CommentContentChangedEnvelope,\n CommentHiddenEnvelope,\n CommentMarkedEnvelope,\n CommentMovedEnvelope,\n CommentPublishedEnvelope,\n CommentUnmarkedEnvelope,\n CommentCreatedEnvelope,\n CommentResourceCommentCountChangedEnvelope,\n CommentUpdatedEnvelope,\n UpdateComment,\n ModerateDraftContentOptions,\n QueryCommentsOptions,\n CommentsQueryResult,\n CommentsQueryBuilder,\n CommentQuerySpec,\n CountCommentsOptions,\n ListCommentsByResourceOptions,\n GetCommentThreadOptions,\n BulkPublishCommentOptions,\n BulkHideCommentOptions,\n BulkDeleteCommentOptions,\n BulkModerateDraftContentOptions,\n BulkMoveCommentByFilterOptions,\n} from './comments-v2-comment-comments.universal.js';\nexport { utils } from './comments-v2-comment-comments.universal.js';\nexport {\n NodeTypeWithLiterals,\n WidthTypeWithLiterals,\n PluginContainerDataAlignmentWithLiterals,\n ButtonDataTypeWithLiterals,\n TargetWithLiterals,\n TextAlignmentWithLiterals,\n LineStyleWithLiterals,\n WidthWithLiterals,\n DividerDataAlignmentWithLiterals,\n ViewModeWithLiterals,\n LayoutTypeWithLiterals,\n OrientationWithLiterals,\n CropWithLiterals,\n ThumbnailsAlignmentWithLiterals,\n GIFTypeWithLiterals,\n SourceWithLiterals,\n StylesPositionWithLiterals,\n MapTypeWithLiterals,\n ViewRoleWithLiterals,\n VoteRoleWithLiterals,\n PollLayoutTypeWithLiterals,\n PollLayoutDirectionWithLiterals,\n BackgroundTypeWithLiterals,\n DecorationTypeWithLiterals,\n FontTypeWithLiterals,\n PositionWithLiterals,\n AspectRatioWithLiterals,\n ResizingWithLiterals,\n PlacementWithLiterals,\n TypeWithLiterals,\n AlignmentWithLiterals,\n LayoutWithLiterals,\n AppTypeWithLiterals,\n InitialExpandedItemsWithLiterals,\n DirectionWithLiterals,\n VerticalAlignmentWithLiterals,\n NullValueWithLiterals,\n ScalingWithLiterals,\n ImagePositionWithLiterals,\n VerticalAlignmentAlignmentWithLiterals,\n ResponsivenessBehaviourWithLiterals,\n DesignTargetWithLiterals,\n StatusWithLiterals,\n ActionWithLiterals,\n WebhookIdentityTypeWithLiterals,\n VersioningModeWithLiterals,\n SortOrderWithLiterals,\n OrderWithLiterals,\n ReplySortOrderWithLiterals,\n CreateCommentApplicationErrors,\n UpdateCommentApplicationErrors,\n CountCommentsApplicationErrors,\n CommonQueryWithEntityContext,\n CommentQuery,\n} from './comments-v2-comment-comments.universal.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAAA;AAAA,EAAA,uBAAAC;AAAA,EAAA,gCAAAC;AAAA,EAAA,+BAAAC;AAAA,EAAA,0BAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,8BAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,+BAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA,0BAAAC;AAAA,EAAA,4CAAAC;AAAA,EAAA,yBAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,IAAAC,iCAAwD;AACxD,IAAAC,gBAA6C;AAC7C,IAAAC,mBAAmD;AACnD,IAAAC,gBAA6C;AAC7C,IAAAC,gBAA6C;AAC7C,IAAAC,oBAAqD;AACrD,IAAAC,0BAA+B;AAC/B,IAAAC,mBAAiD;AACjD,uBAA8D;;;ACR9D,6BAAoD;AACpD,2BAA6B;AAC7B,oCAGO;;;ACLP,0BAAkC;AAClC,mBAA6C;AAC7C,IAAAC,gBAA6C;AAC7C,uBAAqD;AACrD,IAAAC,oBAAqD;AACrD,6BAA+B;AAC/B,IAAAC,uBAA2B;AAI3B,SAAS,oCACP,MACA;AACA,QAAM,mBAAmB;AAAA,IACvB,mBAAmB;AAAA,MACjB;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,GAAG;AAAA,MACD;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,wBAAwB;AAAA,MACtB;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,MACnB;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,sBAAsB;AAAA,MACpB;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,aAAO,iCAAW,OAAO,OAAO,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC7D;AAEA,IAAM,eAAe;AAWd,SAAS,cAAc,SAA6C;AACzE,WAAS,gBAAgB,EAAE,KAAK,GAAQ;AACtC,UAAM,qBAAiB,uCAAe,SAAS;AAAA,MAC7C;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,UACL,EAAE,MAAM,sBAAsB;AAAA,UAC9B,EAAE,MAAM,sBAAsB;AAAA,UAC9B,EAAE,MAAM,sBAAsB;AAAA,UAC9B,EAAE,MAAM,8BAA8B;AAAA,UACtC,EAAE,MAAM,wDAAwD;AAAA,UAChE,EAAE,MAAM,wDAAwD;AAAA,UAChE,EAAE,MAAM,sDAAsD;AAAA,UAC9D,EAAE,MAAM,sDAAsD;AAAA,UAC9D;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA,EAAE,MAAM,sDAAsD;AAAA,UAC9D,EAAE,MAAM,yDAAyD;AAAA,UACjE,EAAE,MAAM,mCAAmC;AAAA,UAC3C;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA,EAAE,MAAM,2DAA2D;AAAA,UACnE,EAAE,MAAM,2DAA2D;AAAA,UACnE;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA,EAAE,MAAM,2DAA2D;AAAA,UACnE;AAAA,YACE,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,UACL;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA,EAAE,MAAM,4DAA4D;AAAA,UACpE,EAAE,MAAM,4DAA4D;AAAA,UACpE;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,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ACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,c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YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,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aAAa;AAAA,QACb,OAAO;AAAA,UACL;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;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ACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,Y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","names":["bulkDeleteComment","bulkHideComment","bulkModerateDraftContent","bulkMoveCommentByFilter","bulkPublishComment","countComments","createComment","deleteComment","getComment","getCommentThread","hideComment","listCommentsByResource","markComment","moderateDraftContent","onCommentContentChanged","onCommentCreated","onCommentDeleted","onCommentHidden","onCommentMarked","onCommentMoved","onCommentPublished","onCommentResourceCommentCountChanged","onCommentUnmarked","onCommentUpdated","publishComment","queryComments","unmarkComment","updateComment","import_rename_all_nested_keys","import_audio","import_document","import_float","import_image","import_timestamp","import_transform_paths","import_video_v2","import_float","import_timestamp","import_rest_modules","payload","import_audio","import_image","import_video_v2","import_document","import_transform_paths","NodeType","WidthType","PluginContainerDataAlignment","ButtonDataType","Target","TextAlignment","LineStyle","Width","DividerDataAlignment","ViewMode","LayoutType","Orientation","Crop","ThumbnailsAlignment","GIFType","Source","StylesPosition","MapType","ViewRole","VoteRole","PollLayoutType","PollLayoutDirection","BackgroundType","DecorationType","FontType","Position","AspectRatio","Resizing","Placement","Type","Alignment","Layout","AppType","InitialExpandedItems","Direction","VerticalAlignment","NullValue","Scaling","ImagePosition","VerticalAlignmentAlignment","ResponsivenessBehaviour","DesignTarget","Status","Action","WebhookIdentityType","VersioningMode","SortOrder","Order","ReplySortOrder","createComment","sdkTransformError","getComment","updateComment","deleteComment","moderateDraftContent","queryComments","markComment","unmarkComment","hideComment","publishComment","countComments","listCommentsByResource","getCommentThread","bulkPublishComment","bulkHideComment","bulkDeleteComment","bulkModerateDraftContent","bulkMoveCommentByFilter","createComment","getComment","updateComment","deleteComment","moderateDraftContent","queryComments","typedQueryComments","markComment","unmarkComment","hideComment","publishComment","countComments","listCommentsByResource","getCommentThread","bulkPublishComment","bulkHideComment","bulkDeleteComment","bulkModerateDraftContent","bulkMoveCommentByFilter","import_rest_modules","queryComments","typedQueryComments","createComment","getComment","updateComment","deleteComment","moderateDraftContent","markComment","unmarkComment","hideComment","publishComment","countComments","listCommentsByResource","getCommentThread","bulkPublishComment","bulkHideComment","bulkDeleteComment","bulkModerateDraftContent","bulkMoveCommentByFilter","onCommentDeleted","onCommentContentChanged","onCommentHidden","onCommentMarked","onCommentMoved","onCommentPublished","onCommentUnmarked","onCommentCreated","onCommentResourceCommentCountChanged","onCommentUpdated"]}
1
+ {"version":3,"sources":["../../../index.ts","../../../src/comments-v2-comment-comments.public.ts","../../../src/comments-v2-comment-comments.universal.ts","../../../src/comments-v2-comment-comments.http.ts","../../../src/comments-v2-comment-comments.context.ts"],"sourcesContent":["export * from './src/comments-v2-comment-comments.context.js';\n","import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTAudioToSDKAudio } from '@wix/sdk-runtime/transformations/audio';\nimport { transformRESTDocumentToSDKDocument } from '@wix/sdk-runtime/transformations/document';\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 BulkDeleteCommentOptions,\n BulkDeleteCommentResponse,\n BulkHideCommentOptions,\n BulkHideCommentResponse,\n BulkModerateDraftContentOptions,\n BulkModerateDraftContentResponse,\n BulkMoveCommentByFilterOptions,\n BulkMoveCommentByFilterResponse,\n BulkPublishCommentOptions,\n BulkPublishCommentResponse,\n Comment,\n CommentContentChangedEnvelope,\n CommentCreatedEnvelope,\n CommentDeletedEnvelope,\n CommentHiddenEnvelope,\n CommentMarkedEnvelope,\n CommentMovedEnvelope,\n CommentPublishedEnvelope,\n CommentQuery,\n CommentResourceCommentCountChangedEnvelope,\n CommentUnmarkedEnvelope,\n CommentUpdatedEnvelope,\n CommentsQueryBuilder,\n CountCommentsApplicationErrors,\n CountCommentsOptions,\n CountCommentsResponse,\n CreateCommentApplicationErrors,\n GetCommentThreadOptions,\n GetCommentThreadResponse,\n HideCommentResponse,\n ListCommentsByResourceOptions,\n ListCommentsByResourceResponse,\n MarkCommentResponse,\n ModerateDraftContentOptions,\n ModerateDraftContentResponse,\n PublishCommentResponse,\n QueryCommentsOptions,\n QueryCommentsResponse,\n UnmarkCommentResponse,\n UpdateComment,\n UpdateCommentApplicationErrors,\n bulkDeleteComment as universalBulkDeleteComment,\n bulkHideComment as universalBulkHideComment,\n bulkModerateDraftContent as universalBulkModerateDraftContent,\n bulkMoveCommentByFilter as universalBulkMoveCommentByFilter,\n bulkPublishComment as universalBulkPublishComment,\n countComments as universalCountComments,\n createComment as universalCreateComment,\n deleteComment as universalDeleteComment,\n getComment as universalGetComment,\n getCommentThread as universalGetCommentThread,\n hideComment as universalHideComment,\n listCommentsByResource as universalListCommentsByResource,\n markComment as universalMarkComment,\n moderateDraftContent as universalModerateDraftContent,\n publishComment as universalPublishComment,\n queryComments as universalQueryComments,\n typedQueryComments as universalTypedQueryComments,\n unmarkComment as universalUnmarkComment,\n updateComment as universalUpdateComment,\n} from './comments-v2-comment-comments.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/comments' };\n\nexport function createComment(httpClient: HttpClient): CreateCommentSignature {\n return (\n comment: NonNullablePaths<\n Comment,\n `appId` | `content` | `contextId` | `resourceId`,\n 2\n >\n ) =>\n universalCreateComment(\n comment,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateCommentSignature {\n /**\n * Creates a new comment and publishes it.\n *\n * The `appId`, `contextId`, and `resourceId` are all required and associate the created comment with the specific\n * resource it responds to. See **Integrations** in the Comments introduction for a list of integrated scopes for these fields.\n *\n * If the created comment is a direct response to another comment, the `commentId` of the parent comment should be passed\n * as `parentComment.id` in this comment's request. See **Terminology** in the Comments introduction for additional information on parent comments and replies.\n * @param - Comment to create.\n * @returns Created comment.\n */\n (\n comment: NonNullablePaths<\n Comment,\n `appId` | `content` | `contextId` | `resourceId`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: CreateCommentApplicationErrors;\n }\n >;\n}\n\nexport function getComment(httpClient: HttpClient): GetCommentSignature {\n return (commentId: string) =>\n universalGetComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetCommentSignature {\n /**\n * Retrieves a comment.\n * @param - ID of the comment to retrieve.\n * @returns Retrieved comment.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n >\n >;\n}\n\nexport function updateComment(httpClient: HttpClient): UpdateCommentSignature {\n return (\n _id: string,\n comment: NonNullablePaths<UpdateComment, `revision`, 2>\n ) =>\n universalUpdateComment(\n _id,\n comment,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateCommentSignature {\n /**\n * Updates a comment.\n *\n * Each time the comment is updated, `revision` increments by 1. The current `revision` must be\n * passed when updating the comment. This ensures you're working with the latest comment and\n * prevents unintended overwrites.\n * @param - Comment ID.\n * @returns Updated comment.\n */\n (\n _id: string,\n comment: NonNullablePaths<UpdateComment, `revision`, 2>\n ): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: UpdateCommentApplicationErrors;\n }\n >;\n}\n\nexport function deleteComment(httpClient: HttpClient): DeleteCommentSignature {\n return (commentId: string) =>\n universalDeleteComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteCommentSignature {\n /**\n * Deletes a comment.\n *\n * This method deletes the `content` of the comment and sets its `status` to `DELETED`.\n * @param - ID of the comment to delete.\n */\n (commentId: string): Promise<void>;\n}\n\nexport function moderateDraftContent(\n httpClient: HttpClient\n): ModerateDraftContentSignature {\n return (\n commentId: string,\n revision: string,\n options?: ModerateDraftContentOptions\n ) =>\n universalModerateDraftContent(\n commentId,\n revision,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ModerateDraftContentSignature {\n /**\n * Moderates the draft content of a comment.\n *\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate multiple comments, call Bulk Moderate Draft Content.\n * @param - ID of the comment to moderate.\n * @param - Revision number, which increments by `1` each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n */\n (\n commentId: string,\n revision: string,\n options?: ModerateDraftContentOptions\n ): Promise<\n NonNullablePaths<\n ModerateDraftContentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function queryComments(httpClient: HttpClient): QueryCommentsSignature {\n return (options: QueryCommentsOptions) =>\n universalQueryComments(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryCommentsSignature {\n /**\n * Creates a query to retrieve a list of comments.\n *\n * The `queryComments()` function builds a query to retrieve a list of comments and returns a [`CommentsQueryBuilder`](#commentsquerybuilder) object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#commentsquerybuilder/find) function.\n *\n * You can refine the query by chaining `CommentsQueryBuilder` functions onto the query. `CommentsQueryBuilder` functions enable you to sort, filter, and control the results that `queryComments()` returns.\n *\n * `queryComments()` runs with the following `CommentsQueryBuilder` default that you can override:\n * + `ascending(\"_id\")`\n *\n * The functions that are chained to `queryComments()` are applied in the order they are called. For example, if you apply `ascending(\"voteSummary.netVoteCount\")` and then `ascending(\"replyCount\")`, the results are sorted first by the `\"voteSummary.netVoteCount\"`, and then, if there are multiple results with the same `\"voteSummary.netVoteCount\"`, the items are sorted by `\"replyCount\"`.\n *\n * The following `CommentsQueryBuilder` functions are supported for the `queryComments()` function. For a full description of the comment object, see the object returned for the [`items`](#commentsqueryresult/items) property in [`CommentsQueryResult`](#commentsqueryresult).\n */\n (options: QueryCommentsOptions): CommentsQueryBuilder;\n}\n\nexport function typedQueryComments(\n httpClient: HttpClient\n): TypedQueryCommentsSignature {\n return (query: CommentQuery, options: QueryCommentsOptions) =>\n universalTypedQueryComments(\n query,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface TypedQueryCommentsSignature {\n /** */\n (query: CommentQuery, options: QueryCommentsOptions): Promise<\n NonNullablePaths<\n QueryCommentsResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\n 5\n >\n >;\n}\n\nexport function markComment(httpClient: HttpClient): MarkCommentSignature {\n return (commentId: string) =>\n universalMarkComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface MarkCommentSignature {\n /**\n * Sets `marked` to `TRUE` to mark a comment.\n *\n * Call Query Comments to filter for marked comments to then apply customization to.\n * See Sample Flows for an example.\n * @param - ID of the comment to mark.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n MarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function unmarkComment(httpClient: HttpClient): UnmarkCommentSignature {\n return (commentId: string) =>\n universalUnmarkComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UnmarkCommentSignature {\n /**\n * Sets `marked` to `FALSE` to unmark a comment.\n * @param - ID of the comment to unmark.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n UnmarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function hideComment(httpClient: HttpClient): HideCommentSignature {\n return (commentId: string) =>\n universalHideComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface HideCommentSignature {\n /**\n * Hides a comment in a widget. The comment status becomes `HIDDEN`.\n * @param - ID of the comment to hide.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n HideCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function publishComment(\n httpClient: HttpClient\n): PublishCommentSignature {\n return (commentId: string) =>\n universalPublishComment(\n commentId,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface PublishCommentSignature {\n /**\n * Publishes a comment with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n *\n * To publish a new comment, call Create Comment.\n * @param - ID of the comment to publish.\n */\n (commentId: string): Promise<\n NonNullablePaths<\n PublishCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n >;\n}\n\nexport function countComments(httpClient: HttpClient): CountCommentsSignature {\n return (appId: string, options?: CountCommentsOptions) =>\n universalCountComments(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CountCommentsSignature {\n /**\n * Counts comments, given the specified filtering. Comments with the `HIDDEN` status are not included in the response.\n * @param - App ID to count the comments of.\n */\n (appId: string, options?: CountCommentsOptions): Promise<\n NonNullablePaths<CountCommentsResponse, `count`, 2> & {\n __applicationErrorsType?: CountCommentsApplicationErrors;\n }\n >;\n}\n\nexport function listCommentsByResource(\n httpClient: HttpClient\n): ListCommentsByResourceSignature {\n return (\n appId: string,\n options?: NonNullablePaths<\n ListCommentsByResourceOptions,\n `contextId` | `resourceId`,\n 2\n >\n ) =>\n universalListCommentsByResource(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListCommentsByResourceSignature {\n /**\n * Lists published comments and replies from a specified resource, such as a blog post.\n * @param - ID of the app from which the comments are listed.\n */\n (\n appId: string,\n options?: NonNullablePaths<\n ListCommentsByResourceOptions,\n `contextId` | `resourceId`,\n 2\n >\n ): Promise<\n NonNullablePaths<\n ListCommentsByResourceResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\n 5\n >\n >;\n}\n\nexport function getCommentThread(\n httpClient: HttpClient\n): GetCommentThreadSignature {\n return (commentId: string, options?: GetCommentThreadOptions) =>\n universalGetCommentThread(\n commentId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetCommentThreadSignature {\n /**\n * Returns a thread of a comment or a reply.\n *\n * If you request a comment thread, the method returns a single comment with cursors. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n *\n * If you request a reply thread, the method returns a reply with its parent comment. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n * @param - Comment ID.\n */\n (commentId: string, options?: GetCommentThreadOptions): Promise<\n NonNullablePaths<\n GetCommentThreadResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\n 5\n >\n >;\n}\n\nexport function bulkPublishComment(\n httpClient: HttpClient\n): BulkPublishCommentSignature {\n return (\n appId: string,\n options: NonNullablePaths<BulkPublishCommentOptions, `filter`, 2>\n ) =>\n universalBulkPublishComment(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkPublishCommentSignature {\n /**\n * Publishes multiple comments with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n * @param - ID of the app where to publish the comment.\n */\n (\n appId: string,\n options: NonNullablePaths<BulkPublishCommentOptions, `filter`, 2>\n ): Promise<NonNullablePaths<BulkPublishCommentResponse, `jobId`, 2>>;\n}\n\nexport function bulkHideComment(\n httpClient: HttpClient\n): BulkHideCommentSignature {\n return (\n appId: string,\n options: NonNullablePaths<BulkHideCommentOptions, `filter`, 2>\n ) =>\n universalBulkHideComment(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkHideCommentSignature {\n /**\n * Hides multiple comments. The comment status becomes `HIDDEN`.\n * @param - ID of the app where to hide the comments.\n */\n (\n appId: string,\n options: NonNullablePaths<BulkHideCommentOptions, `filter`, 2>\n ): Promise<NonNullablePaths<BulkHideCommentResponse, `jobId`, 2>>;\n}\n\nexport function bulkDeleteComment(\n httpClient: HttpClient\n): BulkDeleteCommentSignature {\n return (\n appId: string,\n options: NonNullablePaths<BulkDeleteCommentOptions, `filter`, 2>\n ) =>\n universalBulkDeleteComment(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkDeleteCommentSignature {\n /**\n * Deletes multiple comments.\n * @param - ID of the app where to delete the comments.\n */\n (\n appId: string,\n options: NonNullablePaths<BulkDeleteCommentOptions, `filter`, 2>\n ): Promise<NonNullablePaths<BulkDeleteCommentResponse, `jobId`, 2>>;\n}\n\nexport function bulkModerateDraftContent(\n httpClient: HttpClient\n): BulkModerateDraftContentSignature {\n return (\n appId: string,\n options: NonNullablePaths<\n BulkModerateDraftContentOptions,\n `draftContentAction` | `filter`,\n 2\n >\n ) =>\n universalBulkModerateDraftContent(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkModerateDraftContentSignature {\n /**\n * Moderates the draft content of multiple comments that match the specified filter.\n *\n * The same action, `APPROVE` or `REJECT`, applies to all comments that match the filter.\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate a single comment, call Moderate Draft Content.\n * @param - ID of the app where to moderate the comments.\n */\n (\n appId: string,\n options: NonNullablePaths<\n BulkModerateDraftContentOptions,\n `draftContentAction` | `filter`,\n 2\n >\n ): Promise<NonNullablePaths<BulkModerateDraftContentResponse, `jobId`, 2>>;\n}\n\nexport function bulkMoveCommentByFilter(\n httpClient: HttpClient\n): BulkMoveCommentByFilterSignature {\n return (\n appId: string,\n options?: NonNullablePaths<\n BulkMoveCommentByFilterOptions,\n `destination.contextId` | `destination.resourceId` | `filter`,\n 3\n >\n ) =>\n universalBulkMoveCommentByFilter(\n appId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface BulkMoveCommentByFilterSignature {\n /**\n * Moves multiple comments to another resource.\n * @param - ID of the app from which to move the comments.\n */\n (\n appId: string,\n options?: NonNullablePaths<\n BulkMoveCommentByFilterOptions,\n `destination.contextId` | `destination.resourceId` | `filter`,\n 3\n >\n ): Promise<NonNullablePaths<BulkMoveCommentByFilterResponse, `jobId`, 2>>;\n}\n\nexport const onCommentDeleted = EventDefinition(\n 'wix.comments.v2.comment_deleted',\n true,\n (event: CommentDeletedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'undefined.createdDate' },\n { path: 'undefined.updatedDate' },\n { path: 'undefined.commentDate' },\n { path: 'undefined.content.commentDate' },\n { path: 'undefined.content.richContent.metadata.createdTimestamp' },\n { path: 'undefined.content.richContent.metadata.updatedTimestamp' },\n { path: 'undefined.draftContent.commentDate' },\n {\n path: 'undefined.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'undefined.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'undefined.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'undefined.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'undefined.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'undefined.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'undefined.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'undefined.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'undefined.content.attachments.image' },\n { path: 'undefined.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'undefined.content.attachments.video' },\n { path: 'undefined.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'undefined.content.attachments.audio' },\n { path: 'undefined.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'undefined.content.attachments.document' },\n { path: 'undefined.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentDeletedEnvelope>();\nexport const onCommentContentChanged = EventDefinition(\n 'wix.comments.v2.comment_comment_content_changed',\n true,\n (event: CommentContentChangedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.previousContent.commentDate' },\n {\n path: 'data.previousContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.previousContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.currentContent.commentDate' },\n {\n path: 'data.currentContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.currentContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.previousContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.previousContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.previousContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.previousContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.previousContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.currentContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.currentContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.currentContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.currentContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.previousContent.attachments.image' },\n { path: 'data.currentContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.previousContent.attachments.video' },\n { path: 'data.currentContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.previousContent.attachments.audio' },\n { path: 'data.currentContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.previousContent.attachments.document' },\n { path: 'data.currentContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentContentChangedEnvelope>();\nexport const onCommentHidden = EventDefinition(\n 'wix.comments.v2.comment_comment_hidden',\n true,\n (event: CommentHiddenEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentHiddenEnvelope>();\nexport const onCommentMarked = EventDefinition(\n 'wix.comments.v2.comment_comment_marked',\n true,\n (event: CommentMarkedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentMarkedEnvelope>();\nexport const onCommentMoved = EventDefinition(\n 'wix.comments.v2.comment_comment_moved',\n true,\n (event: CommentMovedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentMovedEnvelope>();\nexport const onCommentPublished = EventDefinition(\n 'wix.comments.v2.comment_comment_published',\n true,\n (event: CommentPublishedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentPublishedEnvelope>();\nexport const onCommentUnmarked = EventDefinition(\n 'wix.comments.v2.comment_comment_unmarked',\n true,\n (event: CommentUnmarkedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'data.comment.createdDate' },\n { path: 'data.comment.updatedDate' },\n { path: 'data.comment.commentDate' },\n { path: 'data.comment.content.commentDate' },\n {\n path: 'data.comment.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'data.comment.draftContent.commentDate' },\n {\n path: 'data.comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'data.comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'data.comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'data.comment.content.attachments.image' },\n { path: 'data.comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'data.comment.content.attachments.video' },\n { path: 'data.comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'data.comment.content.attachments.audio' },\n { path: 'data.comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'data.comment.content.attachments.document' },\n { path: 'data.comment.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentUnmarkedEnvelope>();\nexport const onCommentCreated = EventDefinition(\n 'wix.comments.v2.comment_created',\n true,\n (event: CommentCreatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.commentDate' },\n { path: 'entity.content.commentDate' },\n { path: 'entity.content.richContent.metadata.createdTimestamp' },\n { path: 'entity.content.richContent.metadata.updatedTimestamp' },\n { path: 'entity.draftContent.commentDate' },\n {\n path: 'entity.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'entity.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'entity.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.content.attachments.image' },\n { path: 'entity.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.content.attachments.video' },\n { path: 'entity.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'entity.content.attachments.audio' },\n { path: 'entity.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'entity.content.attachments.document' },\n { path: 'entity.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentCreatedEnvelope>();\nexport const onCommentResourceCommentCountChanged = EventDefinition(\n 'wix.comments.v2.comment_resource_comment_count_changed',\n true,\n (event: CommentResourceCommentCountChangedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [{ path: 'metadata.eventTime' }],\n },\n ])\n )\n)<CommentResourceCommentCountChangedEnvelope>();\nexport const onCommentUpdated = EventDefinition(\n 'wix.comments.v2.comment_updated',\n true,\n (event: CommentUpdatedEnvelope) =>\n renameKeysFromRESTResponseToSDKResponse(\n transformPaths(event, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'entity.createdDate' },\n { path: 'entity.updatedDate' },\n { path: 'entity.commentDate' },\n { path: 'entity.content.commentDate' },\n { path: 'entity.content.richContent.metadata.createdTimestamp' },\n { path: 'entity.content.richContent.metadata.updatedTimestamp' },\n { path: 'entity.draftContent.commentDate' },\n {\n path: 'entity.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'entity.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'metadata.eventTime' },\n { path: 'modifiedFields.createdDate' },\n { path: 'modifiedFields.updatedDate' },\n { path: 'modifiedFields.commentDate' },\n { path: 'modifiedFields.content.commentDate' },\n {\n path: 'modifiedFields.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'modifiedFields.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'modifiedFields.draftContent.commentDate' },\n {\n path: 'modifiedFields.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'modifiedFields.draftContent.richContent.metadata.updatedTimestamp',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'entity.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'entity.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'entity.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'entity.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'modifiedFields.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'modifiedFields.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'entity.content.attachments.image' },\n { path: 'entity.draftContent.attachments.image' },\n { path: 'modifiedFields.content.attachments.image' },\n { path: 'modifiedFields.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'entity.content.attachments.video' },\n { path: 'entity.draftContent.attachments.video' },\n { path: 'modifiedFields.content.attachments.video' },\n { path: 'modifiedFields.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'entity.content.attachments.audio' },\n { path: 'entity.draftContent.attachments.audio' },\n { path: 'modifiedFields.content.attachments.audio' },\n { path: 'modifiedFields.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'entity.content.attachments.document' },\n { path: 'entity.draftContent.attachments.document' },\n { path: 'modifiedFields.content.attachments.document' },\n { path: 'modifiedFields.draftContent.attachments.document' },\n ],\n },\n ])\n )\n)<CommentUpdatedEnvelope>();\n\nexport {\n AccountInfo,\n AccountInfoMetadata,\n Action,\n ActionEvent,\n Alignment,\n AnchorData,\n App,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n AppType,\n AspectRatio,\n Attachment,\n AttachmentMediaOneOf,\n AudioData,\n Background,\n BackgroundBackgroundOneOf,\n BackgroundImage,\n BackgroundType,\n Banner,\n BaseEventMetadata,\n BlockquoteData,\n BookingData,\n Border,\n BorderColors,\n BorderWidths,\n BulkDeleteCommentOptions,\n BulkDeleteCommentRequest,\n BulkDeleteCommentResponse,\n BulkHideCommentOptions,\n BulkHideCommentRequest,\n BulkHideCommentResponse,\n BulkModerateDraftContentOptions,\n BulkModerateDraftContentRequest,\n BulkModerateDraftContentResponse,\n BulkMoveCommentByFilterOptions,\n BulkMoveCommentByFilterRequest,\n BulkMoveCommentByFilterResponse,\n BulkPublishCommentOptions,\n BulkPublishCommentRequest,\n BulkPublishCommentResponse,\n BulletedListData,\n ButtonData,\n ButtonDataType,\n ButtonStyles,\n CaptionData,\n CardStyles,\n CellStyle,\n CodeBlockData,\n CollapsibleListData,\n ColorData,\n Colors,\n Comment,\n CommentAuthor,\n CommentAuthorIdentityOneOf,\n CommentContent,\n CommentContentChanged,\n CommentContentChangedEnvelope,\n CommentCreatedEnvelope,\n CommentDeleted,\n CommentDeletedEnvelope,\n CommentHidden,\n CommentHiddenEnvelope,\n CommentMarked,\n CommentMarkedEnvelope,\n CommentModerated,\n CommentMoved,\n CommentMovedEnvelope,\n CommentPublished,\n CommentPublishedEnvelope,\n CommentQuerySpec,\n CommentReactionSummary,\n CommentResourceCommentCountChangedEnvelope,\n CommentSort,\n CommentUnmarked,\n CommentUnmarkedEnvelope,\n CommentUpdatedEnvelope,\n CommentsQueryBuilder,\n CommentsQueryResult,\n ContactDetails,\n ContentAuthor,\n ContentAuthorAuthorOneOf,\n CountCommentsOptions,\n CountCommentsRequest,\n CountCommentsResponse,\n CreateCommentRequest,\n CreateCommentResponse,\n Crop,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Cursors,\n CustomTag,\n Decoration,\n DecorationDataOneOf,\n DecorationType,\n DeleteByFilterOperation,\n DeleteByIdsOperation,\n DeleteCommentRequest,\n DeleteCommentResponse,\n Design,\n DesignTarget,\n Destination,\n Dimensions,\n Direction,\n DividerData,\n DividerDataAlignment,\n DocumentStyle,\n DomainEvent,\n DomainEventBodyOneOf,\n EmbedData,\n Empty,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n EventData,\n EventMetadata,\n File,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n FontFamilyData,\n FontSizeData,\n FontType,\n GIF,\n GIFData,\n GIFType,\n GalleryData,\n GalleryOptions,\n GalleryOptionsLayout,\n GetCommentRequest,\n GetCommentResponse,\n GetCommentThreadOptions,\n GetCommentThreadRequest,\n GetCommentThreadResponse,\n Gradient,\n HTMLData,\n HTMLDataDataOneOf,\n HeadingData,\n Height,\n HideCommentRequest,\n HideCommentResponse,\n IdentificationData,\n IdentificationDataIdOneOf,\n Image,\n ImageData,\n ImageDataStyles,\n ImagePosition,\n ImageStyles,\n InitialExpandedItems,\n InternalDocument,\n InternalDocumentUpdateByFilterOperation,\n InternalDocumentUpdateOperation,\n InternalUpdateExistingOperation,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n Item,\n ItemDataOneOf,\n ItemStyle,\n Layout,\n LayoutCellData,\n LayoutData,\n LayoutType,\n LineStyle,\n Link,\n LinkData,\n LinkDataOneOf,\n LinkPreviewData,\n LinkPreviewDataStyles,\n ListCommentsByResourceCursorPaging,\n ListCommentsByResourceOptions,\n ListCommentsByResourceRequest,\n ListCommentsByResourceResponse,\n ListValue,\n MapData,\n MapSettings,\n MapType,\n MarkCommentRequest,\n MarkCommentResponse,\n Media,\n Mention,\n MentionData,\n MentionIdentityOneOf,\n MessageEnvelope,\n Metadata,\n ModerateDraftContentOptions,\n ModerateDraftContentRequest,\n ModerateDraftContentResponse,\n Node,\n NodeDataOneOf,\n NodeStyle,\n NodeType,\n NullValue,\n Oembed,\n Option,\n OptionDesign,\n OptionLayout,\n Order,\n OrderedListData,\n Orientation,\n Origin,\n PDFSettings,\n Page,\n ParagraphData,\n ParentComment,\n Permissions,\n Placement,\n PlaybackOptions,\n PluginContainerData,\n PluginContainerDataAlignment,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Poll,\n PollData,\n PollDataLayout,\n PollDesign,\n PollLayout,\n PollLayoutDirection,\n PollLayoutType,\n Position,\n PricingData,\n PublishCommentRequest,\n PublishCommentResponse,\n QueryCommentsOptions,\n QueryCommentsRequest,\n QueryCommentsResponse,\n Rel,\n RepliesListResponse,\n ReplySort,\n ReplySortOrder,\n Resizing,\n ResourceCommentCountChanged,\n ResponsivenessBehaviour,\n RestoreInfo,\n RibbonStyles,\n RichContent,\n Scaling,\n Settings,\n ShapeData,\n ShapeDataStyles,\n SortOrder,\n Sorting,\n Source,\n Spoiler,\n SpoilerData,\n Status,\n Styles,\n StylesBorder,\n StylesPosition,\n TableCellData,\n TableData,\n Target,\n TextAlignment,\n TextData,\n TextNodeStyle,\n TextStyle,\n Thumbnails,\n ThumbnailsAlignment,\n Type,\n URI,\n UnmarkCommentRequest,\n UnmarkCommentResponse,\n UpdateComment,\n UpdateCommentRequest,\n UpdateCommentResponse,\n UpdateInternalDocumentsEvent,\n UpdateInternalDocumentsEventOperationOneOf,\n VersionedDeleteByIdsOperation,\n VersionedDocumentId,\n VersionedDocumentUpdateOperation,\n VersioningMode,\n VerticalAlignment,\n VerticalAlignmentAlignment,\n Video,\n VideoData,\n VideoResolution,\n ViewMode,\n ViewRole,\n VoteRole,\n VoteSummary,\n WebhookIdentityType,\n Width,\n WidthType,\n utils,\n} from './comments-v2-comment-comments.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 ambassadorWixCommentsV2Comment from './comments-v2-comment-comments.http.js';\n// @ts-ignore\nimport { transformSDKAudioToRESTAudio } from '@wix/sdk-runtime/transformations/audio';\nimport { transformRESTAudioToSDKAudio } from '@wix/sdk-runtime/transformations/audio';\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 { transformSDKDocumentToRESTDocument } from '@wix/sdk-runtime/transformations/document';\nimport { transformRESTDocumentToSDKDocument } from '@wix/sdk-runtime/transformations/document';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\n\n/**\n * A comment is a user-generated message in response to a specific resource. It allows site visitors\n * to share feedback or engage in discussions around different types of resources, including blog posts, forum threads,\n * or other site content. Comments are composed of text, images, videos, or other forms of media.\n */\nexport interface Comment {\n /**\n * Comment ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the comment was created.\n *\n * **Note:** This is the date from the system database, not the actual date when the comment was created. For example, if you migrate comments created in 2016, the `createdDate` field will show the current year. For the actual creation date, see the `commentDate` field.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the comment was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the app that the comment is added to.\n * @format GUID\n * @immutable\n */\n appId?: string | null;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @immutable\n * @maxLength 128\n */\n contextId?: string | null;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @immutable\n * @maxLength 128\n */\n resourceId?: string | null;\n /** Published comment content. */\n content?: CommentContent;\n /**\n * Comment's author.\n * @immutable\n */\n author?: CommentAuthor;\n /**\n * Parent comment information.\n *\n * Only present if this comment is in a direct reply to another comment.\n * See **Terminology** in the Comments introduction\n * for more information about parent comments.\n */\n parentComment?: ParentComment;\n /**\n * Number of comments that reply to this comment.\n * @readonly\n */\n replyCount?: number;\n /**\n * Summary of votes.\n * @readonly\n */\n voteSummary?: VoteSummary;\n /**\n * Comment status.\n * @readonly\n */\n status?: StatusWithLiterals;\n /**\n * Comment rating.\n * @readonly\n */\n rating?: number | null;\n /**\n * Summary of reactions.\n * @readonly\n */\n reactionSummary?: CommentReactionSummary;\n /** Whether the comment is marked. */\n marked?: boolean;\n /**\n * Date and time when the comment was actually created.\n * @immutable\n */\n commentDate?: Date | null;\n /**\n * Whether the comment has the updated content.\n * @readonly\n */\n contentEdited?: boolean | null;\n}\n\n/** Comment content. */\nexport interface CommentContent {\n /**\n * Comment rich content.\n *\n * <widget src=\"https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component\" exampleid=\"5693ba57-d141-42bf-a0d6-1eb11c73bddf\" plugins=\"emoji.heading.indent.lineSpacing.actionButton.audio.codeBlock.collapsibleList.divider.file.gallery.giphy.hashtag.html.image.link.linkButton.linkPreview.mentions.poll.spoiler.table.textColor.textHighlight.verticalEmbed.video\">\n * <a href=\"https://dev.wix.com/docs/ricos/api-reference/ricos-document\">See Ricos document reference</a>\n * </widget>\n */\n richContent?: RichContent;\n /**\n * People to tag with this comment.\n *\n * People can include users, members, visitors, or groups.\n * @maxSize 10\n */\n mentions?: Mention[];\n /**\n * Content attachments.\n * @maxSize 10\n */\n attachments?: Attachment[];\n}\n\nexport interface RichContent {\n /** Node objects representing a rich content document. */\n nodes?: Node[];\n /** Object metadata. */\n metadata?: Metadata;\n /** Global styling for header, paragraph, block quote, and code block nodes in the object. */\n documentStyle?: DocumentStyle;\n}\n\nexport interface Node extends NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** Data for a layout node. Reserved for future use. */\n layoutData?: LayoutData;\n /** Data for a cell node. */\n layoutCellData?: LayoutCellData;\n /** Data for a shape node. */\n shapeData?: ShapeData;\n /** Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format. */\n type?: NodeTypeWithLiterals;\n /** Node ID. */\n id?: string;\n /** A list of child nodes. */\n nodes?: Node[];\n /** Padding and background color styling for the node. */\n style?: NodeStyle;\n}\n\n/** @oneof */\nexport interface NodeDataOneOf {\n /** Data for a button node. */\n buttonData?: ButtonData;\n /** Data for a code block node. */\n codeBlockData?: CodeBlockData;\n /** Data for a divider node. */\n dividerData?: DividerData;\n /** Data for a file node. */\n fileData?: FileData;\n /** Data for a gallery node. */\n galleryData?: GalleryData;\n /** Data for a GIF node. */\n gifData?: GIFData;\n /** Data for a heading node. */\n headingData?: HeadingData;\n /** Data for an embedded HTML node. */\n htmlData?: HTMLData;\n /** Data for an image node. */\n imageData?: ImageData;\n /** Data for a link preview node. */\n linkPreviewData?: LinkPreviewData;\n /** @deprecated */\n mapData?: MapData;\n /** Data for a paragraph node. */\n paragraphData?: ParagraphData;\n /** Data for a poll node. */\n pollData?: PollData;\n /** Data for a text node. Used to apply decorations to text. */\n textData?: TextData;\n /** Data for an app embed node. */\n appEmbedData?: AppEmbedData;\n /** Data for a video node. */\n videoData?: VideoData;\n /** Data for an oEmbed node. */\n embedData?: EmbedData;\n /** Data for a collapsible list node. */\n collapsibleListData?: CollapsibleListData;\n /** Data for a table node. */\n tableData?: TableData;\n /** Data for a table cell node. */\n tableCellData?: TableCellData;\n /** Data for a custom external node. */\n externalData?: Record<string, any> | null;\n /** Data for an audio node. */\n audioData?: AudioData;\n /** Data for an ordered list node. */\n orderedListData?: OrderedListData;\n /** Data for a bulleted list node. */\n bulletedListData?: BulletedListData;\n /** Data for a block quote node. */\n blockquoteData?: BlockquoteData;\n /** Data for a caption node. */\n captionData?: CaptionData;\n /** Data for a layout node. Reserved for future use. */\n layoutData?: LayoutData;\n /** Data for a cell node. */\n layoutCellData?: LayoutCellData;\n /** Data for a shape node. */\n shapeData?: ShapeData;\n}\n\nexport enum NodeType {\n PARAGRAPH = 'PARAGRAPH',\n TEXT = 'TEXT',\n HEADING = 'HEADING',\n BULLETED_LIST = 'BULLETED_LIST',\n ORDERED_LIST = 'ORDERED_LIST',\n LIST_ITEM = 'LIST_ITEM',\n BLOCKQUOTE = 'BLOCKQUOTE',\n CODE_BLOCK = 'CODE_BLOCK',\n VIDEO = 'VIDEO',\n DIVIDER = 'DIVIDER',\n FILE = 'FILE',\n GALLERY = 'GALLERY',\n GIF = 'GIF',\n HTML = 'HTML',\n IMAGE = 'IMAGE',\n LINK_PREVIEW = 'LINK_PREVIEW',\n /** @deprecated */\n MAP = 'MAP',\n POLL = 'POLL',\n APP_EMBED = 'APP_EMBED',\n BUTTON = 'BUTTON',\n COLLAPSIBLE_LIST = 'COLLAPSIBLE_LIST',\n TABLE = 'TABLE',\n EMBED = 'EMBED',\n COLLAPSIBLE_ITEM = 'COLLAPSIBLE_ITEM',\n COLLAPSIBLE_ITEM_TITLE = 'COLLAPSIBLE_ITEM_TITLE',\n COLLAPSIBLE_ITEM_BODY = 'COLLAPSIBLE_ITEM_BODY',\n TABLE_CELL = 'TABLE_CELL',\n TABLE_ROW = 'TABLE_ROW',\n EXTERNAL = 'EXTERNAL',\n AUDIO = 'AUDIO',\n CAPTION = 'CAPTION',\n LAYOUT = 'LAYOUT',\n LAYOUT_CELL = 'LAYOUT_CELL',\n SHAPE = 'SHAPE',\n}\n\n/** @enumType */\nexport type NodeTypeWithLiterals =\n | NodeType\n | 'PARAGRAPH'\n | 'TEXT'\n | 'HEADING'\n | 'BULLETED_LIST'\n | 'ORDERED_LIST'\n | 'LIST_ITEM'\n | 'BLOCKQUOTE'\n | 'CODE_BLOCK'\n | 'VIDEO'\n | 'DIVIDER'\n | 'FILE'\n | 'GALLERY'\n | 'GIF'\n | 'HTML'\n | 'IMAGE'\n | 'LINK_PREVIEW'\n | 'MAP'\n | 'POLL'\n | 'APP_EMBED'\n | 'BUTTON'\n | 'COLLAPSIBLE_LIST'\n | 'TABLE'\n | 'EMBED'\n | 'COLLAPSIBLE_ITEM'\n | 'COLLAPSIBLE_ITEM_TITLE'\n | 'COLLAPSIBLE_ITEM_BODY'\n | 'TABLE_CELL'\n | 'TABLE_ROW'\n | 'EXTERNAL'\n | 'AUDIO'\n | 'CAPTION'\n | 'LAYOUT'\n | 'LAYOUT_CELL'\n | 'SHAPE';\n\nexport interface NodeStyle {\n /** The top padding value in pixels. */\n paddingTop?: string | null;\n /** The bottom padding value in pixels. */\n paddingBottom?: string | null;\n /** The background color as a hexadecimal value. */\n backgroundColor?: string | null;\n}\n\nexport interface ButtonData {\n /** Styling for the button's container. */\n containerData?: PluginContainerData;\n /** The button type. */\n type?: ButtonDataTypeWithLiterals;\n /** Styling for the button. */\n styles?: Styles;\n /** The text to display on the button. */\n text?: string | null;\n /** Button link details. */\n link?: Link;\n}\n\nexport interface Border {\n /**\n * Deprecated: Use `borderWidth` in `styles` instead.\n * @deprecated\n */\n width?: number | null;\n /**\n * Deprecated: Use `borderRadius` in `styles` instead.\n * @deprecated\n */\n radius?: number | null;\n}\n\nexport interface Colors {\n /**\n * Deprecated: Use `textColor` in `styles` instead.\n * @deprecated\n */\n text?: string | null;\n /**\n * Deprecated: Use `borderColor` in `styles` instead.\n * @deprecated\n */\n border?: string | null;\n /**\n * Deprecated: Use `backgroundColor` in `styles` instead.\n * @deprecated\n */\n background?: string | null;\n}\n\nexport interface PluginContainerData {\n /** The width of the node when it's displayed. */\n width?: PluginContainerDataWidth;\n /** The node's alignment within its container. */\n alignment?: PluginContainerDataAlignmentWithLiterals;\n /** Spoiler cover settings for the node. */\n spoiler?: Spoiler;\n /** The height of the node when it's displayed. */\n height?: Height;\n /** Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */\n textWrap?: boolean | null;\n}\n\nexport enum WidthType {\n /** Width matches the content width */\n CONTENT = 'CONTENT',\n /** Small Width */\n SMALL = 'SMALL',\n /** Width will match the original asset width */\n ORIGINAL = 'ORIGINAL',\n /** coast-to-coast display */\n FULL_WIDTH = 'FULL_WIDTH',\n}\n\n/** @enumType */\nexport type WidthTypeWithLiterals =\n | WidthType\n | 'CONTENT'\n | 'SMALL'\n | 'ORIGINAL'\n | 'FULL_WIDTH';\n\nexport interface PluginContainerDataWidth\n extends PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\n/** @oneof */\nexport interface PluginContainerDataWidthDataOneOf {\n /**\n * One of the following predefined width options:\n * `CONTENT`: The width of the container matches the content width.\n * `SMALL`: A small width.\n * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.\n * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.\n */\n size?: WidthTypeWithLiterals;\n /** A custom width value in pixels. */\n custom?: string | null;\n}\n\nexport enum PluginContainerDataAlignment {\n /** Center Alignment */\n CENTER = 'CENTER',\n /** Left Alignment */\n LEFT = 'LEFT',\n /** Right Alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type PluginContainerDataAlignmentWithLiterals =\n | PluginContainerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface Spoiler {\n /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */\n enabled?: boolean | null;\n /** The description displayed on top of the spoiler cover. */\n description?: string | null;\n /** The text for the button used to remove the spoiler cover. */\n buttonText?: string | null;\n}\n\nexport interface Height {\n /** A custom height value in pixels. */\n custom?: string | null;\n}\n\nexport enum ButtonDataType {\n /** Regular link button */\n LINK = 'LINK',\n /** Triggers custom action that is defined in plugin configuration by the consumer */\n ACTION = 'ACTION',\n}\n\n/** @enumType */\nexport type ButtonDataTypeWithLiterals = ButtonDataType | 'LINK' | 'ACTION';\n\nexport interface Styles {\n /**\n * Deprecated: Use `borderWidth` and `borderRadius` instead.\n * @deprecated\n */\n border?: Border;\n /**\n * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.\n * @deprecated\n */\n colors?: Colors;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /**\n * Deprecated: Use `borderWidth` for normal/hover states instead.\n * @deprecated\n */\n borderWidthHover?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface Link extends LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n /**\n * he HTML `target` attribute value for the link. This property defines where the linked document opens as follows:\n * `SELF` - Default. Opens the linked document in the same frame as the link.\n * `BLANK` - Opens the linked document in a new browser tab or window.\n * `PARENT` - Opens the linked document in the link's parent frame.\n * `TOP` - Opens the linked document in the full body of the link's browser tab or window.\n */\n target?: TargetWithLiterals;\n /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */\n rel?: Rel;\n /** A serialized object used for a custom or external link panel. */\n customData?: string | null;\n}\n\n/** @oneof */\nexport interface LinkDataOneOf {\n /** The absolute URL for the linked document. */\n url?: string;\n /** The target node's ID. Used for linking to another node in this object. */\n anchor?: string;\n}\n\nexport enum Target {\n /** Opens the linked document in the same frame as it was clicked (this is default) */\n SELF = 'SELF',\n /** Opens the linked document in a new window or tab */\n BLANK = 'BLANK',\n /** Opens the linked document in the parent frame */\n PARENT = 'PARENT',\n /** Opens the linked document in the full body of the window */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type TargetWithLiterals = Target | 'SELF' | 'BLANK' | 'PARENT' | 'TOP';\n\nexport interface Rel {\n /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */\n nofollow?: boolean | null;\n /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */\n sponsored?: boolean | null;\n /** Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. */\n ugc?: boolean | null;\n /** Indicates that this link protect referral information from being passed to the target website. */\n noreferrer?: boolean | null;\n}\n\nexport interface CodeBlockData {\n /** Styling for the code block's text. */\n textStyle?: TextStyle;\n}\n\nexport interface TextStyle {\n /** Text alignment. Defaults to `AUTO`. */\n textAlignment?: TextAlignmentWithLiterals;\n /** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */\n lineHeight?: string | null;\n}\n\nexport enum TextAlignment {\n /** browser default, eqivalent to `initial` */\n AUTO = 'AUTO',\n /** Left align */\n LEFT = 'LEFT',\n /** Right align */\n RIGHT = 'RIGHT',\n /** Center align */\n CENTER = 'CENTER',\n /** Text is spaced to line up its left and right edges to the left and right edges of the line box, except for the last line */\n JUSTIFY = 'JUSTIFY',\n}\n\n/** @enumType */\nexport type TextAlignmentWithLiterals =\n | TextAlignment\n | 'AUTO'\n | 'LEFT'\n | 'RIGHT'\n | 'CENTER'\n | 'JUSTIFY';\n\nexport interface DividerData {\n /** Styling for the divider's container. */\n containerData?: PluginContainerData;\n /** Divider line style. */\n lineStyle?: LineStyleWithLiterals;\n /** Divider width. */\n width?: WidthWithLiterals;\n /** Divider alignment. */\n alignment?: DividerDataAlignmentWithLiterals;\n}\n\nexport enum LineStyle {\n /** Single Line */\n SINGLE = 'SINGLE',\n /** Double Line */\n DOUBLE = 'DOUBLE',\n /** Dashed Line */\n DASHED = 'DASHED',\n /** Dotted Line */\n DOTTED = 'DOTTED',\n}\n\n/** @enumType */\nexport type LineStyleWithLiterals =\n | LineStyle\n | 'SINGLE'\n | 'DOUBLE'\n | 'DASHED'\n | 'DOTTED';\n\nexport enum Width {\n /** Large line */\n LARGE = 'LARGE',\n /** Medium line */\n MEDIUM = 'MEDIUM',\n /** Small line */\n SMALL = 'SMALL',\n}\n\n/** @enumType */\nexport type WidthWithLiterals = Width | 'LARGE' | 'MEDIUM' | 'SMALL';\n\nexport enum DividerDataAlignment {\n /** Center alignment */\n CENTER = 'CENTER',\n /** Left alignment */\n LEFT = 'LEFT',\n /** Right alignment */\n RIGHT = 'RIGHT',\n}\n\n/** @enumType */\nexport type DividerDataAlignmentWithLiterals =\n | DividerDataAlignment\n | 'CENTER'\n | 'LEFT'\n | 'RIGHT';\n\nexport interface FileData {\n /** Styling for the file's container. */\n containerData?: PluginContainerData;\n /** The source for the file's data. */\n src?: FileSource;\n /** File name. */\n name?: string | null;\n /** File type. */\n type?: string | null;\n /**\n * Use `sizeInKb` instead.\n * @deprecated\n */\n size?: number | null;\n /** Settings for PDF files. */\n pdfSettings?: PDFSettings;\n /** File MIME type. */\n mimeType?: string | null;\n /** File path. */\n path?: string | null;\n /** File size in KB. */\n sizeInKb?: string | null;\n}\n\nexport enum ViewMode {\n /** No PDF view */\n NONE = 'NONE',\n /** Full PDF view */\n FULL = 'FULL',\n /** Mini PDF view */\n MINI = 'MINI',\n}\n\n/** @enumType */\nexport type ViewModeWithLiterals = ViewMode | 'NONE' | 'FULL' | 'MINI';\n\nexport interface FileSource extends FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n /** Indicates whether the file's source is private. Defaults to `false`. */\n private?: boolean | null;\n}\n\n/** @oneof */\nexport interface FileSourceDataOneOf {\n /** The absolute URL for the file's source. */\n url?: string | null;\n /**\n * Custom ID. Use `id` instead.\n * @deprecated\n */\n custom?: string | null;\n /** An ID that's resolved to a URL by a resolver function. */\n id?: string | null;\n}\n\nexport interface PDFSettings {\n /**\n * PDF view mode. One of the following:\n * `NONE` : The PDF isn't displayed.\n * `FULL` : A full page view of the PDF is displayed.\n * `MINI` : A mini view of the PDF is displayed.\n */\n viewMode?: ViewModeWithLiterals;\n /** Sets whether the PDF download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the PDF print button is disabled. Defaults to `false`. */\n disablePrint?: boolean | null;\n}\n\nexport interface GalleryData {\n /** Styling for the gallery's container. */\n containerData?: PluginContainerData;\n /** The items in the gallery. */\n items?: Item[];\n /** Options for defining the gallery's appearance. */\n options?: GalleryOptions;\n /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Sets whether the gallery's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n}\n\nexport interface Media {\n /** The source for the media's data. */\n src?: FileSource;\n /** Media width in pixels. */\n width?: number | null;\n /** Media height in pixels. */\n height?: number | null;\n /** Media duration in seconds. Only relevant for audio and video files. */\n duration?: number | null;\n}\n\nexport interface Image {\n /** Image file details. */\n media?: Media;\n /** Link details for images that are links. */\n link?: Link;\n}\n\nexport interface Video {\n /** Video file details. */\n media?: Media;\n /** Video thumbnail file details. */\n thumbnail?: Media;\n}\n\nexport interface Item extends ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n /** Item title. */\n title?: string | null;\n /** Item's alternative text. */\n altText?: string | null;\n}\n\n/** @oneof */\nexport interface ItemDataOneOf {\n /** An image item. */\n image?: Image;\n /** A video item. */\n video?: Video;\n}\n\nexport interface GalleryOptions {\n /** Gallery layout. */\n layout?: GalleryOptionsLayout;\n /** Styling for gallery items. */\n item?: ItemStyle;\n /** Styling for gallery thumbnail images. */\n thumbnails?: Thumbnails;\n}\n\nexport enum LayoutType {\n /** Collage type */\n COLLAGE = 'COLLAGE',\n /** Masonry type */\n MASONRY = 'MASONRY',\n /** Grid type */\n GRID = 'GRID',\n /** Thumbnail type */\n THUMBNAIL = 'THUMBNAIL',\n /** Slider type */\n SLIDER = 'SLIDER',\n /** Slideshow type */\n SLIDESHOW = 'SLIDESHOW',\n /** Panorama type */\n PANORAMA = 'PANORAMA',\n /** Column type */\n COLUMN = 'COLUMN',\n /** Magic type */\n MAGIC = 'MAGIC',\n /** Fullsize images type */\n FULLSIZE = 'FULLSIZE',\n}\n\n/** @enumType */\nexport type LayoutTypeWithLiterals =\n | LayoutType\n | 'COLLAGE'\n | 'MASONRY'\n | 'GRID'\n | 'THUMBNAIL'\n | 'SLIDER'\n | 'SLIDESHOW'\n | 'PANORAMA'\n | 'COLUMN'\n | 'MAGIC'\n | 'FULLSIZE';\n\nexport enum Orientation {\n /** Rows Orientation */\n ROWS = 'ROWS',\n /** Columns Orientation */\n COLUMNS = 'COLUMNS',\n}\n\n/** @enumType */\nexport type OrientationWithLiterals = Orientation | 'ROWS' | 'COLUMNS';\n\nexport enum Crop {\n /** Crop to fill */\n FILL = 'FILL',\n /** Crop to fit */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type CropWithLiterals = Crop | 'FILL' | 'FIT';\n\nexport enum ThumbnailsAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Right alignment */\n RIGHT = 'RIGHT',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n /** Left alignment */\n LEFT = 'LEFT',\n /** No thumbnail */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type ThumbnailsAlignmentWithLiterals =\n | ThumbnailsAlignment\n | 'TOP'\n | 'RIGHT'\n | 'BOTTOM'\n | 'LEFT'\n | 'NONE';\n\nexport interface GalleryOptionsLayout {\n /** Gallery layout type. */\n type?: LayoutTypeWithLiterals;\n /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */\n horizontalScroll?: boolean | null;\n /** Gallery orientation. */\n orientation?: OrientationWithLiterals;\n /** The number of columns to display on full size screens. */\n numberOfColumns?: number | null;\n /** The number of columns to display on mobile screens. */\n mobileNumberOfColumns?: number | null;\n}\n\nexport interface ItemStyle {\n /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */\n targetSize?: number | null;\n /** Item ratio */\n ratio?: number | null;\n /** Sets how item images are cropped. */\n crop?: CropWithLiterals;\n /** The spacing between items in pixels. */\n spacing?: number | null;\n}\n\nexport interface Thumbnails {\n /** Thumbnail alignment. */\n placement?: ThumbnailsAlignmentWithLiterals;\n /** Spacing between thumbnails in pixels. */\n spacing?: number | null;\n}\n\nexport interface GIFData {\n /** Styling for the GIF's container. */\n containerData?: PluginContainerData;\n /** The source of the full size GIF. */\n original?: GIF;\n /** The source of the downsized GIF. */\n downsized?: GIF;\n /** Height in pixels. */\n height?: number;\n /** Width in pixels. */\n width?: number;\n /** Type of GIF (Sticker or NORMAL). Defaults to `NORMAL`. */\n gifType?: GIFTypeWithLiterals;\n}\n\nexport interface GIF {\n /**\n * GIF format URL.\n * @format WEB_URL\n */\n gif?: string | null;\n /**\n * MP4 format URL.\n * @format WEB_URL\n */\n mp4?: string | null;\n /**\n * Thumbnail URL.\n * @format WEB_URL\n */\n still?: string | null;\n}\n\nexport enum GIFType {\n NORMAL = 'NORMAL',\n STICKER = 'STICKER',\n}\n\n/** @enumType */\nexport type GIFTypeWithLiterals = GIFType | 'NORMAL' | 'STICKER';\n\nexport interface HeadingData {\n /** Heading level from 1-6. */\n level?: number;\n /** Styling for the heading text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n}\n\nexport interface HTMLData extends HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n /** Styling for the HTML node's container. Height property is irrelevant for HTML embeds when autoHeight is set to `true`. */\n containerData?: PluginContainerData;\n /** The type of HTML code. */\n source?: SourceWithLiterals;\n /** If container height is aligned with its content height. Defaults to `true`. */\n autoHeight?: boolean | null;\n}\n\n/** @oneof */\nexport interface HTMLDataDataOneOf {\n /** The URL for the HTML code for the node. */\n url?: string;\n /** The HTML code for the node. */\n html?: string;\n /**\n * Whether this is an AdSense element. Use `source` instead.\n * @deprecated\n */\n isAdsense?: boolean | null;\n}\n\nexport enum Source {\n HTML = 'HTML',\n ADSENSE = 'ADSENSE',\n AI = 'AI',\n}\n\n/** @enumType */\nexport type SourceWithLiterals = Source | 'HTML' | 'ADSENSE' | 'AI';\n\nexport interface ImageData {\n /** Styling for the image's container. */\n containerData?: PluginContainerData;\n /** Image file details. */\n image?: Media;\n /** Link details for images that are links. */\n link?: Link;\n /** Sets whether the image expands to full screen when clicked. Defaults to `false`. */\n disableExpand?: boolean | null;\n /** Image's alternative text. */\n altText?: string | null;\n /**\n * Deprecated: use Caption node instead.\n * @deprecated\n */\n caption?: string | null;\n /** Sets whether the image's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Sets whether the image is decorative and does not need an explanation. Defaults to `false`. */\n decorative?: boolean | null;\n /** Styling for the image. */\n styles?: ImageDataStyles;\n}\n\nexport interface StylesBorder {\n /** Border width in pixels. */\n width?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** Border radius in pixels. */\n radius?: number | null;\n}\n\nexport interface ImageDataStyles {\n /** Border attributes. */\n border?: StylesBorder;\n}\n\nexport interface LinkPreviewData {\n /** Styling for the link preview's container. */\n containerData?: PluginContainerData;\n /** Link details. */\n link?: Link;\n /** Preview title. */\n title?: string | null;\n /** Preview thumbnail URL. */\n thumbnailUrl?: string | null;\n /** Preview description. */\n description?: string | null;\n /** The preview content as HTML. */\n html?: string | null;\n /** Styling for the link preview. */\n styles?: LinkPreviewDataStyles;\n}\n\nexport enum StylesPosition {\n /** Thumbnail positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Thumbnail positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Thumbnail positioned at the top */\n TOP = 'TOP',\n /** Thumbnail hidden and not displayed */\n HIDDEN = 'HIDDEN',\n}\n\n/** @enumType */\nexport type StylesPositionWithLiterals =\n | StylesPosition\n | 'START'\n | 'END'\n | 'TOP'\n | 'HIDDEN';\n\nexport interface LinkPreviewDataStyles {\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Title color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Subtitle color as a hexadecimal value.\n * @format COLOR_HEX\n */\n subtitleColor?: string | null;\n /**\n * Link color as a hexadecimal value.\n * @format COLOR_HEX\n */\n linkColor?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Position of thumbnail. Defaults to `START`. */\n thumbnailPosition?: StylesPositionWithLiterals;\n}\n\nexport interface MapData {\n /** Styling for the map's container. */\n containerData?: PluginContainerData;\n /** Map settings. */\n mapSettings?: MapSettings;\n}\n\nexport interface MapSettings {\n /** The address to display on the map. */\n address?: string | null;\n /** Sets whether the map is draggable. */\n draggable?: boolean | null;\n /** Sets whether the location marker is visible. */\n marker?: boolean | null;\n /** Sets whether street view control is enabled. */\n streetViewControl?: boolean | null;\n /** Sets whether zoom control is enabled. */\n zoomControl?: boolean | null;\n /** Location latitude. */\n lat?: number | null;\n /** Location longitude. */\n lng?: number | null;\n /** Location name. */\n locationName?: string | null;\n /** Sets whether view mode control is enabled. */\n viewModeControl?: boolean | null;\n /** Initial zoom value. */\n initialZoom?: number | null;\n /** Map type. `HYBRID` is a combination of the `ROADMAP` and `SATELLITE` map types. */\n mapType?: MapTypeWithLiterals;\n}\n\nexport enum MapType {\n /** Roadmap map type */\n ROADMAP = 'ROADMAP',\n /** Satellite map type */\n SATELITE = 'SATELITE',\n /** Hybrid map type */\n HYBRID = 'HYBRID',\n /** Terrain map type */\n TERRAIN = 'TERRAIN',\n}\n\n/** @enumType */\nexport type MapTypeWithLiterals =\n | MapType\n | 'ROADMAP'\n | 'SATELITE'\n | 'HYBRID'\n | 'TERRAIN';\n\nexport interface ParagraphData {\n /** Styling for the paragraph text. */\n textStyle?: TextStyle;\n /** Indentation level from 1-4. */\n indentation?: number | null;\n /** Paragraph level */\n level?: number | null;\n}\n\nexport interface PollData {\n /** Styling for the poll's container. */\n containerData?: PluginContainerData;\n /** Poll data. */\n poll?: Poll;\n /** Layout settings for the poll and voting options. */\n layout?: PollDataLayout;\n /** Styling for the poll and voting options. */\n design?: Design;\n}\n\nexport enum ViewRole {\n /** Only Poll creator can view the results */\n CREATOR = 'CREATOR',\n /** Anyone who voted can see the results */\n VOTERS = 'VOTERS',\n /** Anyone can see the results, even if one didn't vote */\n EVERYONE = 'EVERYONE',\n}\n\n/** @enumType */\nexport type ViewRoleWithLiterals = ViewRole | 'CREATOR' | 'VOTERS' | 'EVERYONE';\n\nexport enum VoteRole {\n /** Logged in member */\n SITE_MEMBERS = 'SITE_MEMBERS',\n /** Anyone */\n ALL = 'ALL',\n}\n\n/** @enumType */\nexport type VoteRoleWithLiterals = VoteRole | 'SITE_MEMBERS' | 'ALL';\n\nexport interface Permissions {\n /** Sets who can view the poll results. */\n view?: ViewRoleWithLiterals;\n /** Sets who can vote. */\n vote?: VoteRoleWithLiterals;\n /** Sets whether one voter can vote multiple times. Defaults to `false`. */\n allowMultipleVotes?: boolean | null;\n}\n\nexport interface Option {\n /** Option ID. */\n id?: string | null;\n /** Option title. */\n title?: string | null;\n /** The image displayed with the option. */\n image?: Media;\n}\n\nexport interface Settings {\n /** Permissions settings for voting. */\n permissions?: Permissions;\n /** Sets whether voters are displayed in the vote results. Defaults to `true`. */\n showVoters?: boolean | null;\n /** Sets whether the vote count is displayed. Defaults to `true`. */\n showVotesCount?: boolean | null;\n}\n\nexport enum PollLayoutType {\n /** List */\n LIST = 'LIST',\n /** Grid */\n GRID = 'GRID',\n}\n\n/** @enumType */\nexport type PollLayoutTypeWithLiterals = PollLayoutType | 'LIST' | 'GRID';\n\nexport enum PollLayoutDirection {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type PollLayoutDirectionWithLiterals =\n | PollLayoutDirection\n | 'LTR'\n | 'RTL';\n\nexport interface PollLayout {\n /** The layout for displaying the voting options. */\n type?: PollLayoutTypeWithLiterals;\n /** The direction of the text displayed in the voting options. Text can be displayed either right-to-left or left-to-right. */\n direction?: PollLayoutDirectionWithLiterals;\n /** Sets whether to display the main poll image. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport interface OptionLayout {\n /** Sets whether to display option images. Defaults to `false`. */\n enableImage?: boolean | null;\n}\n\nexport enum BackgroundType {\n /** Color background type */\n COLOR = 'COLOR',\n /** Image background type */\n IMAGE = 'IMAGE',\n /** Gradiant background type */\n GRADIENT = 'GRADIENT',\n}\n\n/** @enumType */\nexport type BackgroundTypeWithLiterals =\n | BackgroundType\n | 'COLOR'\n | 'IMAGE'\n | 'GRADIENT';\n\nexport interface Gradient {\n /** The gradient angle in degrees. */\n angle?: number | null;\n /**\n * The start color as a hexademical value.\n * @format COLOR_HEX\n */\n startColor?: string | null;\n /**\n * The end color as a hexademical value.\n * @format COLOR_HEX\n */\n lastColor?: string | null;\n}\n\nexport interface Background extends BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n /** Background type. For each option, include the relevant details. */\n type?: BackgroundTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface BackgroundBackgroundOneOf {\n /**\n * The background color as a hexademical value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** An image to use for the background. */\n image?: Media;\n /** Details for a gradient background. */\n gradient?: Gradient;\n}\n\nexport interface PollDesign {\n /** Background styling. */\n background?: Background;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface OptionDesign {\n /** Border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface Poll {\n /** Poll ID. */\n id?: string | null;\n /** Poll title. */\n title?: string | null;\n /** Poll creator ID. */\n creatorId?: string | null;\n /** Main poll image. */\n image?: Media;\n /** Voting options. */\n options?: Option[];\n /** The poll's permissions and display settings. */\n settings?: Settings;\n}\n\nexport interface PollDataLayout {\n /** Poll layout settings. */\n poll?: PollLayout;\n /** Voting otpions layout settings. */\n options?: OptionLayout;\n}\n\nexport interface Design {\n /** Styling for the poll. */\n poll?: PollDesign;\n /** Styling for voting options. */\n options?: OptionDesign;\n}\n\nexport interface TextData {\n /** The text to apply decorations to. */\n text?: string;\n /** The decorations to apply. */\n decorations?: Decoration[];\n}\n\n/** Adds appearence changes to text */\nexport interface Decoration extends DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n /** Data for a font family decoration. */\n fontFamilyData?: FontFamilyData;\n /** The type of decoration to apply. */\n type?: DecorationTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface DecorationDataOneOf {\n /** Data for an anchor link decoration. */\n anchorData?: AnchorData;\n /** Data for a color decoration. */\n colorData?: ColorData;\n /** Data for an external link decoration. */\n linkData?: LinkData;\n /** Data for a mention decoration. */\n mentionData?: MentionData;\n /** Data for a font size decoration. */\n fontSizeData?: FontSizeData;\n /** Font weight for a bold decoration. */\n fontWeightValue?: number | null;\n /** Data for an italic decoration. Defaults to `true`. */\n italicData?: boolean | null;\n /** Data for an underline decoration. Defaults to `true`. */\n underlineData?: boolean | null;\n /** Data for a spoiler decoration. */\n spoilerData?: SpoilerData;\n /** Data for a strikethrough decoration. Defaults to `true`. */\n strikethroughData?: boolean | null;\n /** Data for a superscript decoration. Defaults to `true`. */\n superscriptData?: boolean | null;\n /** Data for a subscript decoration. Defaults to `true`. */\n subscriptData?: boolean | null;\n /** Data for a font family decoration. */\n fontFamilyData?: FontFamilyData;\n}\n\nexport enum DecorationType {\n BOLD = 'BOLD',\n ITALIC = 'ITALIC',\n UNDERLINE = 'UNDERLINE',\n SPOILER = 'SPOILER',\n ANCHOR = 'ANCHOR',\n MENTION = 'MENTION',\n LINK = 'LINK',\n COLOR = 'COLOR',\n FONT_SIZE = 'FONT_SIZE',\n EXTERNAL = 'EXTERNAL',\n STRIKETHROUGH = 'STRIKETHROUGH',\n SUPERSCRIPT = 'SUPERSCRIPT',\n SUBSCRIPT = 'SUBSCRIPT',\n FONT_FAMILY = 'FONT_FAMILY',\n}\n\n/** @enumType */\nexport type DecorationTypeWithLiterals =\n | DecorationType\n | 'BOLD'\n | 'ITALIC'\n | 'UNDERLINE'\n | 'SPOILER'\n | 'ANCHOR'\n | 'MENTION'\n | 'LINK'\n | 'COLOR'\n | 'FONT_SIZE'\n | 'EXTERNAL'\n | 'STRIKETHROUGH'\n | 'SUPERSCRIPT'\n | 'SUBSCRIPT'\n | 'FONT_FAMILY';\n\nexport interface AnchorData {\n /** The target node's ID. */\n anchor?: string;\n}\n\nexport interface ColorData {\n /** The text's background color as a hexadecimal value. */\n background?: string | null;\n /** The text's foreground color as a hexadecimal value. */\n foreground?: string | null;\n}\n\nexport interface LinkData {\n /** Link details. */\n link?: Link;\n}\n\nexport interface MentionData {\n /** The mentioned user's name. */\n name?: string;\n /** The version of the user's name that appears after the `@` character in the mention. */\n slug?: string;\n /** Mentioned user's ID. */\n id?: string | null;\n}\n\nexport interface FontSizeData {\n /** The units used for the font size. */\n unit?: FontTypeWithLiterals;\n /** Font size value. */\n value?: number | null;\n}\n\nexport enum FontType {\n PX = 'PX',\n EM = 'EM',\n}\n\n/** @enumType */\nexport type FontTypeWithLiterals = FontType | 'PX' | 'EM';\n\nexport interface SpoilerData {\n /** Spoiler ID. */\n id?: string | null;\n}\n\nexport interface FontFamilyData {\n /** @maxLength 1000 */\n value?: string | null;\n}\n\nexport interface AppEmbedData extends AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n /** The type of Wix App content being embedded. */\n type?: AppTypeWithLiterals;\n /** The ID of the embedded content. */\n itemId?: string | null;\n /** The name of the embedded content. */\n name?: string | null;\n /**\n * Deprecated: Use `image` instead.\n * @deprecated\n */\n imageSrc?: string | null;\n /** The URL for the embedded content. */\n url?: string | null;\n /** An image for the embedded content. */\n image?: Media;\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Whether to hide the title. */\n hideTitle?: boolean | null;\n /** Whether to hide the price. */\n hidePrice?: boolean | null;\n /** Whether to hide the description (Event and Booking). */\n hideDescription?: boolean | null;\n /** Whether to hide the date and time (Event). */\n hideDateTime?: boolean | null;\n /** Whether to hide the location (Event). */\n hideLocation?: boolean | null;\n /** Whether to hide the duration (Booking). */\n hideDuration?: boolean | null;\n /** Whether to hide the button. */\n hideButton?: boolean | null;\n /** Whether to hide the ribbon. */\n hideRibbon?: boolean | null;\n /** Button styling options. */\n buttonStyles?: ButtonStyles;\n /** Image styling options. */\n imageStyles?: ImageStyles;\n /** Ribbon styling options. */\n ribbonStyles?: RibbonStyles;\n /** Card styling options. */\n cardStyles?: CardStyles;\n /** Styling for the app embed's container. */\n containerData?: PluginContainerData;\n /** Pricing data for embedded Wix App content. */\n pricingData?: PricingData;\n}\n\n/** @oneof */\nexport interface AppEmbedDataAppDataOneOf {\n /** Data for embedded Wix Bookings content. */\n bookingData?: BookingData;\n /** Data for embedded Wix Events content. */\n eventData?: EventData;\n}\n\nexport enum Position {\n /** Image positioned at the start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Image positioned at the end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n /** Image positioned at the top */\n TOP = 'TOP',\n}\n\n/** @enumType */\nexport type PositionWithLiterals = Position | 'START' | 'END' | 'TOP';\n\nexport enum AspectRatio {\n /** 1:1 aspect ratio */\n SQUARE = 'SQUARE',\n /** 16:9 aspect ratio */\n RECTANGLE = 'RECTANGLE',\n}\n\n/** @enumType */\nexport type AspectRatioWithLiterals = AspectRatio | 'SQUARE' | 'RECTANGLE';\n\nexport enum Resizing {\n /** Fill the container, may crop the image */\n FILL = 'FILL',\n /** Fit the image within the container */\n FIT = 'FIT',\n}\n\n/** @enumType */\nexport type ResizingWithLiterals = Resizing | 'FILL' | 'FIT';\n\nexport enum Placement {\n /** Ribbon placed on the image */\n IMAGE = 'IMAGE',\n /** Ribbon placed on the product information */\n PRODUCT_INFO = 'PRODUCT_INFO',\n}\n\n/** @enumType */\nexport type PlacementWithLiterals = Placement | 'IMAGE' | 'PRODUCT_INFO';\n\nexport enum Type {\n /** Card with visible border and background */\n CONTAINED = 'CONTAINED',\n /** Card without visible border */\n FRAMELESS = 'FRAMELESS',\n}\n\n/** @enumType */\nexport type TypeWithLiterals = Type | 'CONTAINED' | 'FRAMELESS';\n\nexport enum Alignment {\n /** Content aligned to start (left in LTR layouts, right in RTL layouts) */\n START = 'START',\n /** Content centered */\n CENTER = 'CENTER',\n /** Content aligned to end (right in LTR layouts, left in RTL layouts) */\n END = 'END',\n}\n\n/** @enumType */\nexport type AlignmentWithLiterals = Alignment | 'START' | 'CENTER' | 'END';\n\nexport enum Layout {\n /** Elements stacked vertically */\n STACKED = 'STACKED',\n /** Elements arranged horizontally */\n SIDE_BY_SIDE = 'SIDE_BY_SIDE',\n}\n\n/** @enumType */\nexport type LayoutWithLiterals = Layout | 'STACKED' | 'SIDE_BY_SIDE';\n\nexport enum AppType {\n PRODUCT = 'PRODUCT',\n EVENT = 'EVENT',\n BOOKING = 'BOOKING',\n}\n\n/** @enumType */\nexport type AppTypeWithLiterals = AppType | 'PRODUCT' | 'EVENT' | 'BOOKING';\n\nexport interface BookingData {\n /** Booking duration in minutes. */\n durations?: string | null;\n}\n\nexport interface EventData {\n /** Event schedule. */\n scheduling?: string | null;\n /** Event location. */\n location?: string | null;\n}\n\nexport interface ButtonStyles {\n /** Text to display on the button. */\n buttonText?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border radius in pixels. */\n borderRadius?: number | null;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Border color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n borderColorHover?: string | null;\n /**\n * Text color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n textColorHover?: string | null;\n /**\n * Background color as a hexadecimal value (hover state).\n * @format COLOR_HEX\n */\n backgroundColorHover?: string | null;\n /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */\n buttonSize?: string | null;\n}\n\nexport interface ImageStyles {\n /** Whether to hide the image. */\n hideImage?: boolean | null;\n /** Position of image. Defaults to `START`. */\n imagePosition?: PositionWithLiterals;\n /** Aspect ratio for the image. Defaults to `SQUARE`. */\n aspectRatio?: AspectRatioWithLiterals;\n /** How the image should be resized. Defaults to `FILL`. */\n resizing?: ResizingWithLiterals;\n /**\n * Image border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Image border width in pixels. */\n borderWidth?: number | null;\n /** Image border radius in pixels. */\n borderRadius?: number | null;\n}\n\nexport interface RibbonStyles {\n /** Text to display on the ribbon. */\n ribbonText?: string | null;\n /**\n * Ribbon background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Ribbon text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n /**\n * Ribbon border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Ribbon border width in pixels. */\n borderWidth?: number | null;\n /** Ribbon border radius in pixels. */\n borderRadius?: number | null;\n /** Placement of the ribbon. Defaults to `IMAGE`. */\n ribbonPlacement?: PlacementWithLiterals;\n}\n\nexport interface CardStyles {\n /**\n * Card background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /**\n * Card border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Card border width in pixels. */\n borderWidth?: number | null;\n /** Card border radius in pixels. */\n borderRadius?: number | null;\n /** Card type. Defaults to `CONTAINED`. */\n type?: TypeWithLiterals;\n /** Content alignment. Defaults to `START`. */\n alignment?: AlignmentWithLiterals;\n /** Layout for title and price. Defaults to `STACKED`. */\n titlePriceLayout?: LayoutWithLiterals;\n /**\n * Title text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n titleColor?: string | null;\n /**\n * Text color as a hexadecimal value.\n * @format COLOR_HEX\n */\n textColor?: string | null;\n}\n\nexport interface PricingData {\n /**\n * Minimum numeric price value as string (e.g., \"10.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueFrom?: string | null;\n /**\n * Maximum numeric price value as string (e.g., \"19.99\").\n * @decimalValue options { maxScale:2 }\n */\n valueTo?: string | null;\n /**\n * Numeric price value as string after discount application (e.g., \"15.99\").\n * @decimalValue options { maxScale:2 }\n */\n discountedValue?: string | null;\n /**\n * Currency of the value in ISO 4217 format (e.g., \"USD\", \"EUR\").\n * @format CURRENCY\n */\n currency?: string | null;\n /**\n * Pricing plan ID.\n * @format GUID\n */\n pricingPlanId?: string | null;\n}\n\nexport interface VideoData {\n /** Styling for the video's container. */\n containerData?: PluginContainerData;\n /** Video details. */\n video?: Media;\n /** Video thumbnail details. */\n thumbnail?: Media;\n /** Sets whether the video's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Video title. */\n title?: string | null;\n /** Video options. */\n options?: PlaybackOptions;\n}\n\nexport interface PlaybackOptions {\n /** Sets whether the media will automatically start playing. */\n autoPlay?: boolean | null;\n /** Sets whether media's will be looped. */\n playInLoop?: boolean | null;\n /** Sets whether media's controls will be shown. */\n showControls?: boolean | null;\n}\n\nexport interface EmbedData {\n /** Styling for the oEmbed node's container. */\n containerData?: PluginContainerData;\n /** An [oEmbed](https://www.oembed.com) object. */\n oembed?: Oembed;\n /** Origin asset source. */\n src?: string | null;\n}\n\nexport interface Oembed {\n /** The resource type. */\n type?: string | null;\n /** The width of the resource specified in the `url` property in pixels. */\n width?: number | null;\n /** The height of the resource specified in the `url` property in pixels. */\n height?: number | null;\n /** Resource title. */\n title?: string | null;\n /** The source URL for the resource. */\n url?: string | null;\n /** HTML for embedding a video player. The HTML should have no padding or margins. */\n html?: string | null;\n /** The name of the author or owner of the resource. */\n authorName?: string | null;\n /** The URL for the author or owner of the resource. */\n authorUrl?: string | null;\n /** The name of the resource provider. */\n providerName?: string | null;\n /** The URL for the resource provider. */\n providerUrl?: string | null;\n /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */\n thumbnailUrl?: string | null;\n /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */\n thumbnailWidth?: string | null;\n /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */\n thumbnailHeight?: string | null;\n /** The URL for an embedded viedo. */\n videoUrl?: string | null;\n /** The oEmbed version number. This value must be `1.0`. */\n version?: string | null;\n}\n\nexport interface CollapsibleListData {\n /** Styling for the collapsible list's container. */\n containerData?: PluginContainerData;\n /** If `true`, only one item can be expanded at a time. Defaults to `false`. */\n expandOnlyOne?: boolean | null;\n /** Sets which items are expanded when the page loads. */\n initialExpandedItems?: InitialExpandedItemsWithLiterals;\n /** The direction of the text in the list. Either left-to-right or right-to-left. */\n direction?: DirectionWithLiterals;\n /** If `true`, The collapsible item will appear in search results as an FAQ. */\n isQapageData?: boolean | null;\n}\n\nexport enum InitialExpandedItems {\n /** First item will be expended initally */\n FIRST = 'FIRST',\n /** All items will expended initally */\n ALL = 'ALL',\n /** All items collapsed initally */\n NONE = 'NONE',\n}\n\n/** @enumType */\nexport type InitialExpandedItemsWithLiterals =\n | InitialExpandedItems\n | 'FIRST'\n | 'ALL'\n | 'NONE';\n\nexport enum Direction {\n /** Left-to-right */\n LTR = 'LTR',\n /** Right-to-left */\n RTL = 'RTL',\n}\n\n/** @enumType */\nexport type DirectionWithLiterals = Direction | 'LTR' | 'RTL';\n\nexport interface TableData {\n /** Styling for the table's container. */\n containerData?: PluginContainerData;\n /** The table's dimensions. */\n dimensions?: Dimensions;\n /**\n * Deprecated: Use `rowHeader` and `columnHeader` instead.\n * @deprecated\n */\n header?: boolean | null;\n /** Sets whether the table's first row is a header. Defaults to `false`. */\n rowHeader?: boolean | null;\n /** Sets whether the table's first column is a header. Defaults to `false`. */\n columnHeader?: boolean | null;\n /** The spacing between cells in pixels. Defaults to `0`. */\n cellSpacing?: number | null;\n /**\n * Padding in pixels for cells. Follows CSS order: top, right, bottom, left.\n * @maxSize 4\n */\n cellPadding?: number[];\n}\n\nexport interface Dimensions {\n /** An array representing relative width of each column in relation to the other columns. */\n colsWidthRatio?: number[];\n /** An array representing the height of each row in pixels. */\n rowsHeight?: number[];\n /** An array representing the minimum width of each column in pixels. */\n colsMinWidth?: number[];\n}\n\nexport interface TableCellData {\n /** Styling for the cell's background color and text alignment. */\n cellStyle?: CellStyle;\n /** The cell's border colors. */\n borderColors?: BorderColors;\n /** Defines how many columns the cell spans. Default: 1. */\n colspan?: number | null;\n /** Defines how many rows the cell spans. Default: 1. */\n rowspan?: number | null;\n /** The cell's border widths. */\n borderWidths?: BorderWidths;\n}\n\nexport enum VerticalAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Middle alignment */\n MIDDLE = 'MIDDLE',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n}\n\n/** @enumType */\nexport type VerticalAlignmentWithLiterals =\n | VerticalAlignment\n | 'TOP'\n | 'MIDDLE'\n | 'BOTTOM';\n\nexport interface CellStyle {\n /** Vertical alignment for the cell's text. */\n verticalAlignment?: VerticalAlignmentWithLiterals;\n /**\n * Cell background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n}\n\nexport interface BorderColors {\n /**\n * Left border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n left?: string | null;\n /**\n * Right border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n right?: string | null;\n /**\n * Top border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n top?: string | null;\n /**\n * Bottom border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n bottom?: string | null;\n}\n\nexport interface BorderWidths {\n /** Left border width in pixels. */\n left?: number | null;\n /** Right border width in pixels. */\n right?: number | null;\n /** Top border width in pixels. */\n top?: number | null;\n /** Bottom border width in pixels. */\n bottom?: number | null;\n}\n\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n * The JSON representation for `NullValue` is JSON `null`.\n */\nexport enum NullValue {\n /** Null value. */\n NULL_VALUE = 'NULL_VALUE',\n}\n\n/** @enumType */\nexport type NullValueWithLiterals = NullValue | 'NULL_VALUE';\n\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n */\nexport interface ListValue {\n /** Repeated field of dynamically typed values. */\n values?: any[];\n}\n\nexport interface AudioData {\n /** Styling for the audio node's container. */\n containerData?: PluginContainerData;\n /** Audio file details. */\n audio?: Media;\n /** Sets whether the audio node's download button is disabled. Defaults to `false`. */\n disableDownload?: boolean | null;\n /** Cover image. */\n coverImage?: Media;\n /** Track name. */\n name?: string | null;\n /** Author name. */\n authorName?: string | null;\n /** An HTML version of the audio node. */\n html?: string | null;\n}\n\nexport interface OrderedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n /** List start number. */\n start?: number | null;\n}\n\nexport interface BulletedListData {\n /** Indentation level from 0-4. */\n indentation?: number;\n /** Offset level from 0-4. */\n offset?: number | null;\n}\n\nexport interface BlockquoteData {\n /** Indentation level from 1-4. */\n indentation?: number;\n}\n\nexport interface CaptionData {\n textStyle?: TextStyle;\n}\n\nexport interface LayoutData {\n /**\n * Background color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backgroundColor?: string | null;\n /** Background image. */\n backgroundImage?: BackgroundImage;\n /**\n * Border color as a hexadecimal value.\n * @format COLOR_HEX\n */\n borderColor?: string | null;\n /** Border width in pixels. */\n borderWidth?: number | null;\n /** Border */\n borderRadius?: number | null;\n /**\n * Backdrop color as a hexadecimal value.\n * @format COLOR_HEX\n */\n backdropColor?: string | null;\n /** Backdrop image.radius in pixels. */\n backdropImage?: BackgroundImage;\n /** Backdrop top padding. */\n backdropPaddingTop?: number | null;\n /** Backdrop bottom padding */\n backdropPaddingBottom?: number | null;\n /** Horizontal and vertical gap between columns */\n gap?: number | null;\n /**\n * Padding in pixels for cells. Follows CSS order: top, right, bottom, left\n * @maxSize 4\n */\n cellPadding?: number[];\n /** Vertical alignment for the cell's items. */\n cellVerticalAlignment?: VerticalAlignmentAlignmentWithLiterals;\n /** Responsiveness behaviour of columns when responsiveness applies. Either stacks or wrappers. */\n responsivenessBehaviour?: ResponsivenessBehaviourWithLiterals;\n /** Size in pixels when responsiveness_behaviour applies */\n responsivenessBreakpoint?: number | null;\n /** Styling for the layout's container. */\n containerData?: PluginContainerData;\n /** Defines where selected design propertied applies to */\n designTarget?: DesignTargetWithLiterals;\n /** Banner configuration. When present, this layout is displayed as a banner. */\n banner?: Banner;\n}\n\nexport enum Scaling {\n /** Auto image scaling */\n AUTO = 'AUTO',\n /** Contain image scaling */\n CONTAIN = 'CONTAIN',\n /** Cover image scaling */\n COVER = 'COVER',\n}\n\n/** @enumType */\nexport type ScalingWithLiterals = Scaling | 'AUTO' | 'CONTAIN' | 'COVER';\n\nexport enum ImagePosition {\n /** Image positioned at the center */\n CENTER = 'CENTER',\n /** Image positioned on the left */\n CENTER_LEFT = 'CENTER_LEFT',\n /** Image positioned on the right */\n CENTER_RIGHT = 'CENTER_RIGHT',\n /** Image positioned at the center top */\n TOP = 'TOP',\n /** Image positioned at the top left */\n TOP_LEFT = 'TOP_LEFT',\n /** Image positioned at the top right */\n TOP_RIGHT = 'TOP_RIGHT',\n /** Image positioned at the center bottom */\n BOTTOM = 'BOTTOM',\n /** Image positioned at the bottom left */\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n /** Image positioned at the bottom right */\n BOTTOM_RIGHT = 'BOTTOM_RIGHT',\n}\n\n/** @enumType */\nexport type ImagePositionWithLiterals =\n | ImagePosition\n | 'CENTER'\n | 'CENTER_LEFT'\n | 'CENTER_RIGHT'\n | 'TOP'\n | 'TOP_LEFT'\n | 'TOP_RIGHT'\n | 'BOTTOM'\n | 'BOTTOM_LEFT'\n | 'BOTTOM_RIGHT';\n\nexport interface BackgroundImage {\n /** Background image. */\n media?: Media;\n /** Background image opacity. */\n opacity?: number | null;\n /** Background image scaling. */\n scaling?: ScalingWithLiterals;\n /** Position of background. Defaults to `CENTER`. */\n position?: ImagePositionWithLiterals;\n}\n\nexport enum VerticalAlignmentAlignment {\n /** Top alignment */\n TOP = 'TOP',\n /** Middle alignment */\n MIDDLE = 'MIDDLE',\n /** Bottom alignment */\n BOTTOM = 'BOTTOM',\n}\n\n/** @enumType */\nexport type VerticalAlignmentAlignmentWithLiterals =\n | VerticalAlignmentAlignment\n | 'TOP'\n | 'MIDDLE'\n | 'BOTTOM';\n\nexport enum ResponsivenessBehaviour {\n /** Stacking of columns */\n STACK = 'STACK',\n /** Wrapping of columns */\n WRAP = 'WRAP',\n}\n\n/** @enumType */\nexport type ResponsivenessBehaviourWithLiterals =\n | ResponsivenessBehaviour\n | 'STACK'\n | 'WRAP';\n\nexport enum DesignTarget {\n /** Design applied to layout */\n LAYOUT = 'LAYOUT',\n /** Design applied to cells */\n CELL = 'CELL',\n}\n\n/** @enumType */\nexport type DesignTargetWithLiterals = DesignTarget | 'LAYOUT' | 'CELL';\n\nexport interface LayoutCellData {\n /** Size of the cell in 12 columns grid. */\n colSpan?: number | null;\n}\n\nexport interface ShapeData {\n /** Styling for the shape's container. */\n containerData?: PluginContainerData;\n /** Shape file details. */\n shape?: Media;\n /** Styling for the shape. */\n styles?: ShapeDataStyles;\n}\n\nexport interface ShapeDataStyles {\n /**\n * Shape fill color as a hexadecimal value.\n * @format COLOR_HEX\n */\n color?: string | null;\n /** Map of original color keys to their new color values. */\n colors?: Record<string, string>;\n}\n\nexport interface Metadata {\n /** Schema version. */\n version?: number;\n /**\n * When the object was created.\n * @readonly\n * @deprecated\n */\n createdTimestamp?: Date | null;\n /**\n * When the object was most recently updated.\n * @deprecated\n */\n updatedTimestamp?: Date | null;\n /** Object ID. */\n _id?: string | null;\n}\n\nexport interface DocumentStyle {\n /** Styling for H1 nodes. */\n headerOne?: TextNodeStyle;\n /** Styling for H2 nodes. */\n headerTwo?: TextNodeStyle;\n /** Styling for H3 nodes. */\n headerThree?: TextNodeStyle;\n /** Styling for H4 nodes. */\n headerFour?: TextNodeStyle;\n /** Styling for H5 nodes. */\n headerFive?: TextNodeStyle;\n /** Styling for H6 nodes. */\n headerSix?: TextNodeStyle;\n /** Styling for paragraph nodes. */\n paragraph?: TextNodeStyle;\n /** Styling for block quote nodes. */\n blockquote?: TextNodeStyle;\n /** Styling for code block nodes. */\n codeBlock?: TextNodeStyle;\n}\n\nexport interface TextNodeStyle {\n /** The decorations to apply to the node. */\n decorations?: Decoration[];\n /** Padding and background color for the node. */\n nodeStyle?: NodeStyle;\n /** Line height for text in the node. */\n lineHeight?: string | null;\n}\n\nexport interface Mention extends MentionIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Group ID. See the Groups API for more details.\n * @format GUID\n */\n groupId?: string | null;\n}\n\n/** @oneof */\nexport interface MentionIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Group ID. See the Groups API for more details.\n * @format GUID\n */\n groupId?: string | null;\n}\n\nexport interface Attachment extends AttachmentMediaOneOf {\n /** Information about the image. */\n image?: string;\n /** Information about the video. */\n video?: string;\n /** Information about the audio. */\n audio?: string;\n /** Information about the document. */\n document?: string;\n /**\n * Mime type of attachment.\n * @maxLength 3000\n */\n mimeType?: string | null;\n}\n\n/** @oneof */\nexport interface AttachmentMediaOneOf {\n /** Information about the image. */\n image?: string;\n /** Information about the video. */\n video?: string;\n /** Information about the audio. */\n audio?: string;\n /** Information about the document. */\n document?: string;\n}\n\nexport interface VideoResolution {\n /** Video URL. */\n url?: string;\n /** Video height. */\n height?: number;\n /** Video width. */\n width?: number;\n /** Video format for example, mp4, hls. */\n format?: string;\n /**\n * Video quality. For example: 480p, 720p.\n * @readonly\n */\n quality?: string | null;\n /**\n * Video filename.\n * @readonly\n */\n filename?: string | null;\n /**\n * Video duration in seconds.\n * @readonly\n */\n durationInSeconds?: number | null;\n /**\n * When true, this is a protected asset, and calling the URL will return a 403 error.\n * In order to access private assets, make a request to:\n * `GenerateFileDownloadUrl` with the WixMedia id and specify the asset_key in the request\n * @readonly\n */\n private?: boolean | null;\n /**\n * Key to identify the video resolution's relationship to the original media in WixMedia.\n * Can be used to request a download for the specific video resolution.\n * For example: 480p.mp4, 720p.mp4, 1080p.mp4, trailer-720p.mp4, clip-720p.mp4\n * @readonly\n */\n assetKey?: string | null;\n}\n\nexport interface ContentAuthor extends ContentAuthorAuthorOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Application ID. For more information, see [Authenticate as an App Instance](https://dev.wix.com/docs/build-apps/develop-your-app/access/authentication/authenticate-as-an-app-instance).\n * @format GUID\n */\n appId?: string | null;\n}\n\n/** @oneof */\nexport interface ContentAuthorAuthorOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n /**\n * Application ID. For more information, see [Authenticate as an App Instance](https://dev.wix.com/docs/build-apps/develop-your-app/access/authentication/authenticate-as-an-app-instance).\n * @format GUID\n */\n appId?: string | null;\n}\n\nexport interface CommentAuthor extends CommentAuthorIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n}\n\n/** @oneof */\nexport interface CommentAuthorIdentityOneOf {\n /**\n * Wix user ID.\n * @format GUID\n */\n userId?: string | null;\n /**\n * Member ID. See the Members API for more details.\n * @format GUID\n */\n memberId?: string | null;\n /**\n * Visitor ID.\n * @format GUID\n */\n visitorId?: string | null;\n}\n\nexport interface ParentComment {\n /**\n * Comment ID of the parent comment.\n * @format GUID\n * @immutable\n */\n _id?: string | null;\n /**\n * Author of the parent comment.\n * @readonly\n */\n author?: CommentAuthor;\n /**\n * Parent comment status.\n * @readonly\n */\n status?: StatusWithLiterals;\n}\n\nexport enum Status {\n /** Unknown status. */\n UNKNOWN = 'UNKNOWN',\n /** This comment is published and publicly visible. */\n PUBLISHED = 'PUBLISHED',\n /** This comment is deleted. */\n DELETED = 'DELETED',\n /** This comment is pending moderation. Moderation is not currently supported. */\n PENDING = 'PENDING',\n /** This comment has been hidden by a site moderator. */\n HIDDEN = 'HIDDEN',\n}\n\n/** @enumType */\nexport type StatusWithLiterals =\n | Status\n | 'UNKNOWN'\n | 'PUBLISHED'\n | 'DELETED'\n | 'PENDING'\n | 'HIDDEN';\n\nexport interface VoteSummary {\n /** Number of upvotes less downvotes on this comment. */\n netVoteCount?: number;\n /** Number of upvotes on this comment. */\n upvoteCount?: number;\n /** Number of downvotes on this comment. */\n downvoteCount?: number;\n}\n\nexport interface CommentReactionSummary {\n /** Total amount of reactions. */\n total?: number;\n /**\n * Number of each type of reaction. `key` is the code for a reaction type and\n * `value` is the amount of that reaction type.\n */\n reactionCodeCount?: Record<string, number>;\n}\n\nexport interface InvalidateCache extends InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n /**\n * tell us why you're invalidating the cache. You don't need to add your app name\n * @maxLength 256\n */\n reason?: string | null;\n /** Is local DS */\n localDc?: boolean;\n hardPurge?: boolean;\n}\n\n/** @oneof */\nexport interface InvalidateCacheGetByOneOf {\n /**\n * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!\n * @format GUID\n */\n siteId?: string;\n /** Invalidate by App */\n app?: App;\n /** Invalidate by page id */\n page?: Page;\n /** Invalidate by URI path */\n uri?: URI;\n /** Invalidate by file (for media files such as PDFs) */\n file?: File;\n /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */\n customTag?: CustomTag;\n}\n\nexport interface App {\n /**\n * The AppDefId\n * @minLength 1\n */\n appDefId?: string;\n /**\n * The instance Id\n * @format GUID\n */\n instanceId?: string;\n}\n\nexport interface Page {\n /**\n * the msid the page is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by Page ID\n * @minLength 1\n */\n pageId?: string;\n}\n\nexport interface URI {\n /**\n * the msid the URI is on\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes\n * @minLength 1\n */\n uriPath?: string;\n}\n\nexport interface File {\n /**\n * the msid the file is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Invalidate by filename (for media files such as PDFs)\n * @minLength 1\n * @maxLength 256\n */\n fileName?: string;\n}\n\nexport interface CustomTag {\n /**\n * the msid the tag is related to\n * @format GUID\n */\n metaSiteId?: string;\n /**\n * Tag to invalidate by\n * @minLength 1\n * @maxLength 256\n */\n tag?: string;\n}\n\nexport interface CommentModerated {\n comment?: Comment;\n moderationAction?: ActionWithLiterals;\n}\n\nexport enum Action {\n /** Unknown content. */\n UNKNOWN = 'UNKNOWN',\n /** Approve draft content. */\n APPROVE = 'APPROVE',\n /** Reject draft content. */\n REJECT = 'REJECT',\n}\n\n/** @enumType */\nexport type ActionWithLiterals = Action | 'UNKNOWN' | 'APPROVE' | 'REJECT';\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 enum Origin {\n /** Banner originated from an image */\n IMAGE = 'IMAGE',\n /** Banner originated from a layout */\n LAYOUT = 'LAYOUT',\n}\n\n/** @enumType */\nexport type OriginWithLiterals = Origin | 'IMAGE' | 'LAYOUT';\n\nexport interface Banner {\n /** Origin of the banner */\n origin?: OriginWithLiterals;\n}\n\nexport interface UpdateInternalDocumentsEvent\n extends UpdateInternalDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: InternalDocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update internal documents matching filter */\n updateByFilter?: InternalDocumentUpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: InternalUpdateExistingOperation;\n /** insert/update documents with versioning */\n versionedUpdate?: VersionedDocumentUpdateOperation;\n /** delete by document ids with versioning */\n versionedDeleteByIds?: VersionedDeleteByIdsOperation;\n /**\n * type of the documents\n * @minLength 2\n */\n documentType?: string;\n /**\n * language of the documents (mandatory)\n * @minLength 2\n */\n language?: string | null;\n /**\n * one or more search documents\n * @deprecated\n */\n addDocuments?: InternalDocument[];\n /**\n * one or more ids of indexed documents to be removed. Removal will happen before addition (if both provided)\n * @deprecated\n */\n removeDocumentIds?: string[];\n /** id to pass to processing notification */\n correlationId?: string | null;\n /** when event was created / issued */\n issuedAt?: Date | null;\n}\n\n/** @oneof */\nexport interface UpdateInternalDocumentsEventOperationOneOf {\n /** insert/update documents */\n update?: InternalDocumentUpdateOperation;\n /** delete by document ids */\n deleteByIds?: DeleteByIdsOperation;\n /** delete documents matching filter */\n deleteByFilter?: DeleteByFilterOperation;\n /** update internal documents matching filter */\n updateByFilter?: InternalDocumentUpdateByFilterOperation;\n /** update only existing documents */\n updateExisting?: InternalUpdateExistingOperation;\n /** insert/update documents with versioning */\n versionedUpdate?: VersionedDocumentUpdateOperation;\n /** delete by document ids with versioning */\n versionedDeleteByIds?: VersionedDeleteByIdsOperation;\n}\n\nexport interface InternalDocument {\n /** document with mandatory fields (id) and with fields specific to the type of the document */\n document?: Record<string, any> | null;\n}\n\nexport interface InternalDocumentUpdateOperation {\n /** documents to index or update */\n documents?: InternalDocument[];\n}\n\nexport interface DeleteByIdsOperation {\n /** ids of the documents to delete */\n documentIds?: string[];\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface DeleteByFilterOperation {\n /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */\n filter?: Record<string, any> | null;\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface InternalDocumentUpdateByFilterOperation {\n /** documents matching this filter will be updated */\n filter?: Record<string, any> | null;\n /** partial document to apply */\n document?: InternalDocument;\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface InternalUpdateExistingOperation {\n /** documents to update */\n documents?: InternalDocument[];\n}\n\nexport interface VersionedDocumentUpdateOperation {\n /** documents to create or overwrite */\n documents?: InternalDocument[];\n /** versioning mode to use instead of default */\n versioningMode?: VersioningModeWithLiterals;\n}\n\nexport enum VersioningMode {\n /** use default versioning mode agreed with search team */\n DEFAULT = 'DEFAULT',\n /** execute only if version is greater than existing */\n GREATER_THAN = 'GREATER_THAN',\n /** execute only if version is greater or equal to existing */\n GREATER_OR_EQUAL = 'GREATER_OR_EQUAL',\n}\n\n/** @enumType */\nexport type VersioningModeWithLiterals =\n | VersioningMode\n | 'DEFAULT'\n | 'GREATER_THAN'\n | 'GREATER_OR_EQUAL';\n\nexport interface VersionedDeleteByIdsOperation {\n /** ids with version of the documents to delete */\n documentIds?: VersionedDocumentId[];\n /**\n * tenant id for custom tenancy strategy\n * @minLength 2\n * @maxLength 300\n */\n tenantId?: string | null;\n}\n\nexport interface VersionedDocumentId {\n /** document id */\n documentId?: string;\n /** document version */\n version?: string;\n /** versioning mode to use instead of default */\n versioningMode?: VersioningModeWithLiterals;\n}\n\nexport interface CreateCommentRequest {\n /** Comment to create. */\n comment?: Comment;\n}\n\nexport interface ContactDetails {}\n\nexport interface CreateCommentResponse {\n /** Created comment. */\n comment?: Comment;\n}\n\nexport interface ResourceCommentCountChanged {\n /** ID of the app that the comment is added to. */\n appId?: string;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum, the `forumPostId` is used as both the `contextId` and the `resourceId`.\n */\n contextId?: string;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum, the `forumPostId` is used as both the `resourceId` and the `contextId`.\n */\n resourceId?: string;\n /** How many comments are published for the resource. */\n publishedCommentCount?: number;\n}\n\nexport interface GetCommentRequest {\n /**\n * ID of the comment to retrieve.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface GetCommentResponse {\n /** Retrieved comment. */\n comment?: Comment;\n}\n\n/** Comment info to update. */\nexport interface UpdateCommentRequest {\n /** Comment info to update. */\n comment?: Comment;\n}\n\nexport interface UpdateCommentResponse {\n /** Updated comment. */\n comment?: Comment;\n}\n\nexport interface CommentContentChanged {\n /** Comment ID. */\n commentId?: string;\n /** Content before the update. */\n previousContent?: CommentContent;\n /** Content after the update. */\n currentContent?: CommentContent;\n}\n\nexport interface DeleteCommentRequest {\n /**\n * ID of the comment to delete.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface DeleteCommentResponse {}\n\nexport interface CommentDeleted {\n comment?: Comment;\n}\n\nexport interface ModerateDraftContentRequest {\n /**\n * ID of the comment to moderate.\n * @format GUID\n */\n commentId: string;\n /**\n * Revision number, which increments by `1` each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n */\n revision: string | null;\n /** Draft content action. */\n draftContentAction?: ActionWithLiterals;\n}\n\nexport interface ModerateDraftContentResponse {\n /** Moderated comment. */\n comment?: Comment;\n}\n\nexport interface CommentPublished {\n /** Comment info. */\n comment?: Comment;\n /** Whether this is the first comment publish. */\n firstPublish?: boolean;\n}\n\nexport interface CommentHidden {\n comment?: Comment;\n}\n\nexport interface QueryCommentsRequest {\n /**\n * App ID to query comments for.\n * @format GUID\n */\n appId: string;\n /** Query options. */\n query: CursorQuery;\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n * @maxSize 5\n */\n sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryCommentsResponse {\n /** Retrieved comments. */\n comments?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in current page. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface MarkCommentRequest {\n /**\n * ID of the comment to mark.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface MarkCommentResponse {\n /** Marked comment. */\n comment?: Comment;\n}\n\nexport interface CommentMarked {\n comment?: Comment;\n}\n\nexport interface UnmarkCommentRequest {\n /**\n * ID of the comment to unmark.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface UnmarkCommentResponse {\n /** Unmarked comment. */\n comment?: Comment;\n}\n\nexport interface CommentUnmarked {\n comment?: Comment;\n}\n\nexport interface HideCommentRequest {\n /**\n * ID of the comment to hide.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface HideCommentResponse {\n /** Hidden comment. */\n comment?: Comment;\n}\n\nexport interface PublishCommentRequest {\n /**\n * ID of the comment to publish.\n * @format GUID\n */\n commentId: string;\n}\n\nexport interface PublishCommentResponse {\n /** Published comment. */\n comment?: Comment;\n}\n\n/** Count comments options. */\nexport interface CountCommentsRequest {\n /**\n * App ID to count the comments of.\n * @format GUID\n */\n appId?: string;\n /** Filter to identify the comments that need to be counted. */\n filter?: Record<string, any> | null;\n}\n\nexport interface CountCommentsResponse {\n /** Number of comments. */\n count?: number;\n}\n\nexport interface ListCommentsByResourceRequest {\n /**\n * ID of the app from which the comments are listed.\n * @format GUID\n */\n appId: string;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum, the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @maxLength 128\n */\n contextId: string;\n /**\n * Reserved for internal use.\n * @maxLength 128\n */\n contextType?: string;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum, the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @maxLength 128\n */\n resourceId: string;\n /** Comment sort. Is ignored if `cursorPaging.cursor` is defined. */\n commentSort?: CommentSort;\n /** Reply sort. Is ignored if `cursorPaging.cursor` is defined. */\n replySort?: ReplySort;\n /** Cursor paging. */\n cursorPaging?: ListCommentsByResourceCursorPaging;\n}\n\nexport interface CommentSort {\n /** Sort order. */\n order?: OrderWithLiterals;\n /**\n * If set to `true`, marked comments appear in the original order, and not at the top of the list.\n *\n * Default: `false`. This means that marked comments are prioritized and listed first.\n */\n keepMarkedInOriginalOrder?: boolean;\n}\n\nexport enum Order {\n /** Unknown order. */\n UNKNOWN_ORDER = 'UNKNOWN_ORDER',\n /** Oldest comments appear at the top of the list. */\n OLDEST_FIRST = 'OLDEST_FIRST',\n /** Newest comments appear at the top of the list. */\n NEWEST_FIRST = 'NEWEST_FIRST',\n /** Comments with the highest reaction count appear at the top of the list. */\n REACTION_COUNT = 'REACTION_COUNT',\n /** Comments with the highest vote count appear at the top of the list. */\n NET_VOTE_COUNT = 'NET_VOTE_COUNT',\n /** Comments with the highest rating appear at the top of the list. */\n RATING = 'RATING',\n /** Comments with the lowest vote count appear at the top of the list. */\n NET_VOTE_COUNT_ASC = 'NET_VOTE_COUNT_ASC',\n /** Comments with the lowest rating appear at the top of the list. */\n RATING_ASC = 'RATING_ASC',\n}\n\n/** @enumType */\nexport type OrderWithLiterals =\n | Order\n | 'UNKNOWN_ORDER'\n | 'OLDEST_FIRST'\n | 'NEWEST_FIRST'\n | 'REACTION_COUNT'\n | 'NET_VOTE_COUNT'\n | 'RATING'\n | 'NET_VOTE_COUNT_ASC'\n | 'RATING_ASC';\n\nexport interface ReplySort {\n /** Sort order. */\n order?: ReplySortOrderWithLiterals;\n /**\n * Whether the marked comments are listed in the original order.\n *\n * If set to `true`, marked comments appear in the original order, and not at the top of the list.\n *\n * Default: `false`. In this case marked comments are prioritized and listed first.\n */\n keepMarkedInOriginalOrder?: boolean;\n}\n\nexport enum ReplySortOrder {\n /** Unknown order. */\n UNKNOWN_ORDER = 'UNKNOWN_ORDER',\n /** Oldest comments appear at the top of the list. */\n OLDEST_FIRST = 'OLDEST_FIRST',\n /** Newest comments appear at the top of the list. */\n NEWEST_FIRST = 'NEWEST_FIRST',\n /** Comments with the highest reaction count appear at the top of the list. */\n REACTION_COUNT = 'REACTION_COUNT',\n}\n\n/** @enumType */\nexport type ReplySortOrderWithLiterals =\n | ReplySortOrder\n | 'UNKNOWN_ORDER'\n | 'OLDEST_FIRST'\n | 'NEWEST_FIRST'\n | 'REACTION_COUNT';\n\nexport interface ListCommentsByResourceCursorPaging {\n /** Pointer to the next or previous page in the list of results. */\n cursor?: string | null;\n /**\n * Number of items to return.\n * @min 1\n * @max 100\n */\n limit?: number | null;\n /**\n * Maximum number of replies in a response. Only applicable to parent comments.\n * @max 100\n */\n repliesLimit?: number | null;\n}\n\nexport interface ListCommentsByResourceResponse {\n /** Listed comments. */\n comments?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n /** Listed comment replies. */\n commentReplies?: Record<string, RepliesListResponse>;\n}\n\nexport interface RepliesListResponse {\n /** Listed comment replies. */\n replies?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface GetCommentThreadRequest {\n /**\n * App ID.\n * @maxLength 128\n * @deprecated App ID.\n * @targetRemovalDate 2024-11-01\n */\n appId?: string;\n /**\n * Comment ID.\n * @format GUID\n */\n commentId: string;\n /** Comment sorting. */\n commentSort?: CommentSort;\n /** Reply sorting. */\n replySort?: ReplySort;\n}\n\nexport interface GetCommentThreadResponse {\n /** Retrieved replies. */\n comments?: Comment[];\n /** Paging metadata. */\n pagingMetadata?: CursorPagingMetadata;\n /** Retrieved replies of a reply. */\n commentReplies?: Record<string, RepliesListResponse>;\n}\n\nexport interface BulkPublishCommentRequest {\n /**\n * ID of the app where to publish the comment.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be published. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\nexport interface BulkPublishCommentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkHideCommentRequest {\n /**\n * ID of the app where to hide the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be hidden. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\nexport interface BulkHideCommentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkDeleteCommentRequest {\n /**\n * ID of the app where to delete the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be deleted. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\nexport interface BulkDeleteCommentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkModerateDraftContentRequest {\n /**\n * ID of the app where to moderate the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comment content that needs to be moderated. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Action to do regarding draft content */\n draftContentAction: ActionWithLiterals;\n}\n\nexport interface BulkModerateDraftContentResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface BulkMoveCommentByFilterRequest {\n /**\n * ID of the app from which to move the comments.\n * @format GUID\n */\n appId: string;\n /** Filter to identify the comments that need to be moved. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Where to move the comment. */\n destination?: Destination;\n}\n\nexport interface Destination {\n /**\n * Context ID of where to move the comment to.\n * @maxLength 128\n */\n contextId?: string;\n /**\n * Resource ID of where to move the comment to.\n * @maxLength 128\n */\n resourceId?: string;\n}\n\nexport interface BulkMoveCommentByFilterResponse {\n /**\n * Job ID.\n *\n * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.\n * @format GUID\n */\n jobId?: string;\n}\n\nexport interface CommentMoved {\n comment?: Comment;\n destination?: Destination;\n}\n\n/** @docsIgnore */\nexport type CreateCommentApplicationErrors = {\n code?: 'INVALID_CAPTCHA';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type UpdateCommentApplicationErrors = {\n code?: 'INVALID_CAPTCHA';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type CountCommentsApplicationErrors = {\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 CommentDeletedEnvelope {\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is deleted.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_deleted\n * @slug deleted\n */\nexport declare function onCommentDeleted(\n handler: (event: CommentDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentContentChangedEnvelope {\n data: CommentContentChanged;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when comment content is updated.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_content_changed\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_content_changed\n */\nexport declare function onCommentContentChanged(\n handler: (event: CommentContentChangedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentHiddenEnvelope {\n data: CommentHidden;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is hidden.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_hidden\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_hidden\n */\nexport declare function onCommentHidden(\n handler: (event: CommentHiddenEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentMarkedEnvelope {\n data: CommentMarked;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is marked.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_marked\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_marked\n */\nexport declare function onCommentMarked(\n handler: (event: CommentMarkedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentMovedEnvelope {\n data: CommentMoved;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is moved.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_moved\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_moved\n */\nexport declare function onCommentMoved(\n handler: (event: CommentMovedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentPublishedEnvelope {\n data: CommentPublished;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is published.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_published\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_published\n */\nexport declare function onCommentPublished(\n handler: (event: CommentPublishedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentUnmarkedEnvelope {\n data: CommentUnmarked;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is unmarked.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_comment_unmarked\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug comment_unmarked\n */\nexport declare function onCommentUnmarked(\n handler: (event: CommentUnmarkedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentCreatedEnvelope {\n entity: Comment;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when a comment is created.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_created\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug created\n */\nexport declare function onCommentCreated(\n handler: (event: CommentCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface CommentResourceCommentCountChangedEnvelope {\n data: ResourceCommentCountChanged;\n metadata: EventMetadata;\n}\n\n/**\n * Triggered when the total number of comments has changed in a resource.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_resource_comment_count_changed\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug resource_comment_count_changed\n */\nexport declare function onCommentResourceCommentCountChanged(\n handler: (\n event: CommentResourceCommentCountChangedEnvelope\n ) => void | Promise<void>\n): void;\n\nexport interface CommentUpdatedEnvelope {\n entity: Comment;\n metadata: EventMetadata;\n /** @hidden */\n modifiedFields: Record<string, any>;\n}\n\n/**\n * Triggered when a comment is updated.\n * @permissionScope Read Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.READ.COMMENTS\n * @permissionScope Manage Comments\n * @permissionScopeId SCOPE.DC_COMMENTS.MANAGE.COMMENTS\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @webhook\n * @eventType wix.comments.v2.comment_updated\n * @serviceIdentifier wix.comments.ng.v1.CommentsNg\n * @slug updated\n */\nexport declare function onCommentUpdated(\n handler: (event: CommentUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Creates a new comment and publishes it.\n *\n * The `appId`, `contextId`, and `resourceId` are all required and associate the created comment with the specific\n * resource it responds to. See **Integrations** in the Comments introduction for a list of integrated scopes for these fields.\n *\n * If the created comment is a direct response to another comment, the `commentId` of the parent comment should be passed\n * as `parentComment.id` in this comment's request. See **Terminology** in the Comments introduction for additional information on parent comments and replies.\n * @param comment - Comment to create.\n * @public\n * @requiredField comment\n * @requiredField comment.appId\n * @requiredField comment.content\n * @requiredField comment.contextId\n * @requiredField comment.resourceId\n * @permissionId WIX_COMMENTS.COMMENT_CREATE\n * @permissionId WIX_COMMENTS.COMMENT_OVERRIDE_AUTHOR\n * @permissionId WIX_COMMENTS.COMMENT_OVERRIDE_COMMENT_DATE\n * @applicableIdentity APP\n * @returns Created comment.\n * @fqn wix.comments.ng.v1.CommentsNg.CreateComment\n */\nexport async function createComment(\n comment: NonNullablePaths<\n Comment,\n `appId` | `content` | `contextId` | `resourceId`,\n 2\n >\n): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: CreateCommentApplicationErrors;\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({ comment: comment }, [\n 'comment.content.richContent',\n 'comment.draftContent.richContent',\n ]),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformSDKAudioToRESTAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformSDKDocumentToRESTDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.createComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )?.comment!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { comment: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['comment']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves a comment.\n * @param commentId - ID of the comment to retrieve.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_READ\n * @applicableIdentity APP\n * @returns Retrieved comment.\n * @fqn wix.comments.ng.v1.CommentsNg.GetComment\n */\nexport async function getComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.getComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )?.comment!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Updates a comment.\n *\n * Each time the comment is updated, `revision` increments by 1. The current `revision` must be\n * passed when updating the comment. This ensures you're working with the latest comment and\n * prevents unintended overwrites.\n * @param _id - Comment ID.\n * @public\n * @requiredField _id\n * @requiredField comment\n * @requiredField comment.revision\n * @permissionId WIX_COMMENTS.COMMENT_UPDATE\n * @applicableIdentity APP\n * @returns Updated comment.\n * @fqn wix.comments.ng.v1.CommentsNg.UpdateComment\n */\nexport async function updateComment(\n _id: string,\n comment: NonNullablePaths<UpdateComment, `revision`, 2>\n): Promise<\n NonNullablePaths<\n Comment,\n | `content.mentions`\n | `content.attachments`\n | `parentComment.status`\n | `replyCount`\n | `voteSummary.netVoteCount`\n | `voteSummary.upvoteCount`\n | `voteSummary.downvoteCount`\n | `status`\n | `reactionSummary.total`\n | `marked`,\n 3\n > & {\n __applicationErrorsType?: UpdateCommentApplicationErrors;\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 { comment: { ...comment, id: _id } },\n ['comment.content.richContent', 'comment.draftContent.richContent']\n ),\n [\n {\n transformFn: transformSDKImageToRESTImage,\n paths: [\n { path: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformSDKVideoV2ToRESTVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformSDKAudioToRESTAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformSDKDocumentToRESTDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.updateComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )?.comment!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { comment: '$[1]' },\n explicitPathsToArguments: { 'comment.id': '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['_id', 'comment']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateComment {\n /**\n * Comment ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the comment was created.\n *\n * **Note:** This is the date from the system database, not the actual date when the comment was created. For example, if you migrate comments created in 2016, the `createdDate` field will show the current year. For the actual creation date, see the `commentDate` field.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the comment was last updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the app that the comment is added to.\n * @format GUID\n * @immutable\n */\n appId?: string | null;\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @immutable\n * @maxLength 128\n */\n contextId?: string | null;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum,\n * the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @immutable\n * @maxLength 128\n */\n resourceId?: string | null;\n /** Published comment content. */\n content?: CommentContent;\n /**\n * Comment's author.\n * @immutable\n */\n author?: CommentAuthor;\n /**\n * Parent comment information.\n *\n * Only present if this comment is in a direct reply to another comment.\n * See **Terminology** in the Comments introduction\n * for more information about parent comments.\n */\n parentComment?: ParentComment;\n /**\n * Number of comments that reply to this comment.\n * @readonly\n */\n replyCount?: number;\n /**\n * Summary of votes.\n * @readonly\n */\n voteSummary?: VoteSummary;\n /**\n * Comment status.\n * @readonly\n */\n status?: StatusWithLiterals;\n /**\n * Comment rating.\n * @readonly\n */\n rating?: number | null;\n /**\n * Summary of reactions.\n * @readonly\n */\n reactionSummary?: CommentReactionSummary;\n /** Whether the comment is marked. */\n marked?: boolean;\n /**\n * Date and time when the comment was actually created.\n * @immutable\n */\n commentDate?: Date | null;\n /**\n * Whether the comment has the updated content.\n * @readonly\n */\n contentEdited?: boolean | null;\n}\n\n/**\n * Deletes a comment.\n *\n * This method deletes the `content` of the comment and sets its `status` to `DELETED`.\n * @param commentId - ID of the comment to delete.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_DELETE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.DeleteComment\n */\nexport async function deleteComment(commentId: string): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.deleteComment(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Moderates the draft content of a comment.\n *\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate multiple comments, call Bulk Moderate Draft Content.\n * @param commentId - ID of the comment to moderate.\n * @param revision - Revision number, which increments by `1` each time the comment is updated.\n *\n * To prevent conflicting changes, the current `revision` must be passed when updating the comment.\n * @public\n * @requiredField commentId\n * @requiredField revision\n * @permissionId WIX_COMMENTS.COMMENT_MODERATE_DRAFT_CONTENT\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.ModerateDraftContent\n */\nexport async function moderateDraftContent(\n commentId: string,\n revision: string,\n options?: ModerateDraftContentOptions\n): Promise<\n NonNullablePaths<\n ModerateDraftContentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n commentId: commentId,\n revision: revision,\n draftContentAction: options?.draftContentAction,\n },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.moderateDraftContent(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n commentId: '$[0]',\n revision: '$[1]',\n draftContentAction: '$[2].draftContentAction',\n },\n singleArgumentUnchanged: false,\n },\n ['commentId', 'revision', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ModerateDraftContentOptions {\n /** Draft content action. */\n draftContentAction?: ActionWithLiterals;\n}\n\n/**\n * Creates a query to retrieve a list of comments.\n *\n * The `queryComments()` function builds a query to retrieve a list of comments and returns a [`CommentsQueryBuilder`](#commentsquerybuilder) object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#commentsquerybuilder/find) function.\n *\n * You can refine the query by chaining `CommentsQueryBuilder` functions onto the query. `CommentsQueryBuilder` functions enable you to sort, filter, and control the results that `queryComments()` returns.\n *\n * `queryComments()` runs with the following `CommentsQueryBuilder` default that you can override:\n * + `ascending(\"_id\")`\n *\n * The functions that are chained to `queryComments()` are applied in the order they are called. For example, if you apply `ascending(\"voteSummary.netVoteCount\")` and then `ascending(\"replyCount\")`, the results are sorted first by the `\"voteSummary.netVoteCount\"`, and then, if there are multiple results with the same `\"voteSummary.netVoteCount\"`, the items are sorted by `\"replyCount\"`.\n *\n * The following `CommentsQueryBuilder` functions are supported for the `queryComments()` function. For a full description of the comment object, see the object returned for the [`items`](#commentsqueryresult/items) property in [`CommentsQueryResult`](#commentsqueryresult).\n * @public\n * @permissionId WIX_COMMENTS.COMMENT_QUERY\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.QueryComments\n */\nexport function queryComments(\n options: QueryCommentsOptions\n): CommentsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Comment,\n 'CURSOR',\n QueryCommentsRequest,\n QueryCommentsResponse\n >({\n func: async (payload: QueryCommentsRequest) => {\n const reqOpts = ambassadorWixCommentsV2Comment.queryComments({\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: QueryCommentsRequest['query']) => {\n const args = [query, options] as [\n QueryCommentsRequest['query'],\n QueryCommentsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest(\n { ...args?.[1], query: args?.[0] },\n []\n );\n },\n responseTransformer: ({ data }: HttpResponse<QueryCommentsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [\n {\n transformFn: transformRESTImageToSDKImage,\n paths: [\n { path: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\n );\n\n return {\n items: transformedData?.comments,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryCommentsOptions {\n /**\n * App ID to query comments for.\n * @format GUID\n */\n appId: string;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface CommentsQueryResult extends QueryCursorResult {\n items: Comment[];\n query: CommentsQueryBuilder;\n next: () => Promise<CommentsQueryResult>;\n prev: () => Promise<CommentsQueryResult>;\n}\n\nexport interface CommentsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n eq: (\n propertyName:\n | '_id'\n | 'contextId'\n | 'resourceId'\n | 'author.userId'\n | 'author.memberId'\n | 'author.visitorId'\n | 'parentComment.id'\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'status'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ne: (\n propertyName:\n | '_id'\n | 'contextId'\n | 'resourceId'\n | 'author.userId'\n | 'author.memberId'\n | 'author.visitorId'\n | 'parentComment.id'\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'status'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n ge: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n gt: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n le: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n */\n lt: (\n propertyName:\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n */\n hasSome: (propertyName: string, value: any[]) => CommentsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `values`.\n * @param values - List of values to compare against.\n */\n hasAll: (propertyName: string, value: any[]) => CommentsQueryBuilder;\n in: (\n propertyName:\n | '_id'\n | 'contextId'\n | 'resourceId'\n | 'author.userId'\n | 'author.memberId'\n | 'author.visitorId'\n | 'parentComment.id'\n | 'status',\n value: any\n ) => CommentsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n ascending: (\n ...propertyNames: Array<\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked'\n >\n ) => CommentsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n descending: (\n ...propertyNames: Array<\n | 'replyCount'\n | 'voteSummary.netVoteCount'\n | 'rating'\n | 'reactionSummary.total'\n | 'marked'\n >\n ) => CommentsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n limit: (limit: number) => CommentsQueryBuilder;\n /** @param cursor - A pointer to specific record */\n skipTo: (cursor: string) => CommentsQueryBuilder;\n find: () => Promise<CommentsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.comments.ng.v1.CommentsNg.QueryComments\n * @requiredField query\n * @requiredField options\n */\nexport async function typedQueryComments(\n query: CommentQuery,\n options: QueryCommentsOptions\n): Promise<\n NonNullablePaths<\n QueryCommentsResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\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, ...options },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.queryComments(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: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\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 CommentQuerySpec extends QuerySpec {\n paging: 'cursor';\n wql: [\n {\n fields: ['_id'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['contextId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['resourceId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['author.userId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['author.memberId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['author.visitorId'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['parentComment._id'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['replyCount'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['status'];\n operators: ['$eq', '$in', '$ne'];\n sort: 'NONE';\n },\n {\n fields: ['voteSummary.netVoteCount'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['rating'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['reactionSummary.total'];\n operators: ['$eq', '$gt', '$gte', '$lt', '$lte', '$ne'];\n sort: 'BOTH';\n },\n {\n fields: ['marked'];\n operators: ['$eq', '$ne'];\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n Comment,\n CommentQuerySpec\n>;\nexport type CommentQuery = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). \n */\n filter?: CommonQueryWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n @maxSize: 5 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonQueryWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n }[];\n};\n\nexport const utils = {\n ...createQueryUtils<Comment, CommentQuerySpec, CommentQuery>(),\n};\n\n/**\n * Sets `marked` to `TRUE` to mark a comment.\n *\n * Call Query Comments to filter for marked comments to then apply customization to.\n * See Sample Flows for an example.\n * @param commentId - ID of the comment to mark.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_MARK\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.MarkComment\n */\nexport async function markComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n MarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.markComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Sets `marked` to `FALSE` to unmark a comment.\n * @param commentId - ID of the comment to unmark.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_MARK\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.UnmarkComment\n */\nexport async function unmarkComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n UnmarkCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.unmarkComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Hides a comment in a widget. The comment status becomes `HIDDEN`.\n * @param commentId - ID of the comment to hide.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_HIDE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.HideComment\n */\nexport async function hideComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n HideCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.hideComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Publishes a comment with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n *\n * To publish a new comment, call Create Comment.\n * @param commentId - ID of the comment to publish.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_PUBLISH\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.PublishComment\n */\nexport async function publishComment(\n commentId: string\n): Promise<\n NonNullablePaths<\n PublishCommentResponse,\n | `comment.content.mentions`\n | `comment.content.attachments`\n | `comment.parentComment.status`\n | `comment.replyCount`\n | `comment.voteSummary.netVoteCount`\n | `comment.voteSummary.upvoteCount`\n | `comment.voteSummary.downvoteCount`\n | `comment.status`\n | `comment.reactionSummary.total`\n | `comment.marked`,\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(\n { commentId: commentId },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.publishComment(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: 'comment.content.attachments.image' },\n { path: 'comment.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comment.content.attachments.video' },\n { path: 'comment.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comment.content.attachments.audio' },\n { path: 'comment.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comment.content.attachments.document' },\n { path: 'comment.draftContent.attachments.document' },\n ],\n },\n ]),\n ['comment.content.richContent', 'comment.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { commentId: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['commentId']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Counts comments, given the specified filtering. Comments with the `HIDDEN` status are not included in the response.\n * @param appId - App ID to count the comments of.\n * @public\n * @requiredField appId\n * @permissionId WIX_COMMENTS.COMMENT_COUNT\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.CountComments\n */\nexport async function countComments(\n appId: string,\n options?: CountCommentsOptions\n): Promise<\n NonNullablePaths<CountCommentsResponse, `count`, 2> & {\n __applicationErrorsType?: CountCommentsApplicationErrors;\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 { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.countComments(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CountCommentsOptions {\n /** Filter to identify the comments that need to be counted. */\n filter?: Record<string, any> | null;\n}\n\n/**\n * Lists published comments and replies from a specified resource, such as a blog post.\n * @param appId - ID of the app from which the comments are listed.\n * @public\n * @requiredField appId\n * @requiredField options.contextId\n * @requiredField options.resourceId\n * @permissionId WIX_COMMENTS.COMMENT_LIST\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.ListCommentsByResource\n */\nexport async function listCommentsByResource(\n appId: string,\n options?: NonNullablePaths<\n ListCommentsByResourceOptions,\n `contextId` | `resourceId`,\n 2\n >\n): Promise<\n NonNullablePaths<\n ListCommentsByResourceResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\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 {\n appId: appId,\n contextId: options?.contextId,\n contextType: options?.contextType,\n resourceId: options?.resourceId,\n commentSort: options?.commentSort,\n replySort: options?.replySort,\n cursorPaging: options?.cursorPaging,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixCommentsV2Comment.listCommentsByResource(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: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n { path: 'commentReplies.*.replies.content.attachments.image' },\n { path: 'commentReplies.*.replies.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n { path: 'commentReplies.*.replies.content.attachments.video' },\n { path: 'commentReplies.*.replies.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n { path: 'commentReplies.*.replies.content.attachments.audio' },\n { path: 'commentReplies.*.replies.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n { path: 'commentReplies.*.replies.content.attachments.document' },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document',\n },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n appId: '$[0]',\n contextId: '$[1].contextId',\n contextType: '$[1].contextType',\n resourceId: '$[1].resourceId',\n commentSort: '$[1].commentSort',\n replySort: '$[1].replySort',\n cursorPaging: '$[1].cursorPaging',\n },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListCommentsByResourceOptions {\n /**\n * ID of the specific context the comment is in response to.\n *\n * Within some Wix apps, the `contextId` will be the same as the `resourceId`. For example in Wix Forum, the `forumPostId` is used as both the `contextId` and the `resourceId`.\n * @maxLength 128\n */\n contextId: string;\n /**\n * Reserved for internal use.\n * @maxLength 128\n */\n contextType?: string;\n /**\n * ID of the specific resource that the comment is in response to.\n *\n * Within some Wix apps, the `resourceId` will be the same as the `contextId`. For example in Wix Forum, the `forumPostId` is used as both the `resourceId` and the `contextId`.\n * @maxLength 128\n */\n resourceId: string;\n /** Comment sort. Is ignored if `cursorPaging.cursor` is defined. */\n commentSort?: CommentSort;\n /** Reply sort. Is ignored if `cursorPaging.cursor` is defined. */\n replySort?: ReplySort;\n /** Cursor paging. */\n cursorPaging?: ListCommentsByResourceCursorPaging;\n}\n\n/**\n * Returns a thread of a comment or a reply.\n *\n * If you request a comment thread, the method returns a single comment with cursors. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n *\n * If you request a reply thread, the method returns a reply with its parent comment. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n * @param commentId - Comment ID.\n * @public\n * @requiredField commentId\n * @permissionId WIX_COMMENTS.COMMENT_THREAD\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.GetCommentThread\n */\nexport async function getCommentThread(\n commentId: string,\n options?: GetCommentThreadOptions\n): Promise<\n NonNullablePaths<\n GetCommentThreadResponse,\n | `comments`\n | `comments.${number}.parentComment.status`\n | `comments.${number}.replyCount`\n | `comments.${number}.voteSummary.netVoteCount`\n | `comments.${number}.voteSummary.upvoteCount`\n | `comments.${number}.voteSummary.downvoteCount`\n | `comments.${number}.status`\n | `comments.${number}.reactionSummary.total`\n | `comments.${number}.marked`,\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 {\n commentId: commentId,\n appId: options?.appId,\n commentSort: options?.commentSort,\n replySort: options?.replySort,\n },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.getCommentThread(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: 'comments.content.attachments.image' },\n { path: 'comments.draftContent.attachments.image' },\n { path: 'commentReplies.*.replies.content.attachments.image' },\n { path: 'commentReplies.*.replies.draftContent.attachments.image' },\n ],\n },\n {\n transformFn: transformRESTVideoV2ToSDKVideoV2,\n paths: [\n { path: 'comments.content.attachments.video' },\n { path: 'comments.draftContent.attachments.video' },\n { path: 'commentReplies.*.replies.content.attachments.video' },\n { path: 'commentReplies.*.replies.draftContent.attachments.video' },\n ],\n },\n {\n transformFn: transformRESTAudioToSDKAudio,\n paths: [\n { path: 'comments.content.attachments.audio' },\n { path: 'comments.draftContent.attachments.audio' },\n { path: 'commentReplies.*.replies.content.attachments.audio' },\n { path: 'commentReplies.*.replies.draftContent.attachments.audio' },\n ],\n },\n {\n transformFn: transformRESTDocumentToSDKDocument,\n paths: [\n { path: 'comments.content.attachments.document' },\n { path: 'comments.draftContent.attachments.document' },\n { path: 'commentReplies.*.replies.content.attachments.document' },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document',\n },\n ],\n },\n ]),\n ['comments.content.richContent', 'comments.draftContent.richContent']\n )!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n commentId: '$[0]',\n appId: '$[1].appId',\n commentSort: '$[1].commentSort',\n replySort: '$[1].replySort',\n },\n singleArgumentUnchanged: false,\n },\n ['commentId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetCommentThreadOptions {\n /**\n * App ID.\n * @maxLength 128\n * @deprecated App ID.\n * @targetRemovalDate 2024-11-01\n */\n appId?: string;\n /** Comment sorting. */\n commentSort?: CommentSort;\n /** Reply sorting. */\n replySort?: ReplySort;\n}\n\n/**\n * Publishes multiple comments with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n * @param appId - ID of the app where to publish the comment.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_PUBLISH\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkPublishComment\n */\nexport async function bulkPublishComment(\n appId: string,\n options: NonNullablePaths<BulkPublishCommentOptions, `filter`, 2>\n): Promise<NonNullablePaths<BulkPublishCommentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.bulkPublishComment(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkPublishCommentOptions {\n /** Filter to identify the comments that need to be published. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\n/**\n * Hides multiple comments. The comment status becomes `HIDDEN`.\n * @param appId - ID of the app where to hide the comments.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_HIDE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkHideComment\n */\nexport async function bulkHideComment(\n appId: string,\n options: NonNullablePaths<BulkHideCommentOptions, `filter`, 2>\n): Promise<NonNullablePaths<BulkHideCommentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.bulkHideComment(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkHideCommentOptions {\n /** Filter to identify the comments that need to be hidden. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\n/**\n * Deletes multiple comments.\n * @param appId - ID of the app where to delete the comments.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_DELETE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkDeleteComment\n */\nexport async function bulkDeleteComment(\n appId: string,\n options: NonNullablePaths<BulkDeleteCommentOptions, `filter`, 2>\n): Promise<NonNullablePaths<BulkDeleteCommentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n { appId: appId, filter: options?.filter },\n []\n );\n\n const reqOpts = ambassadorWixCommentsV2Comment.bulkDeleteComment(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: { appId: '$[0]', filter: '$[1].filter' },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkDeleteCommentOptions {\n /** Filter to identify the comments that need to be deleted. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n}\n\n/**\n * Moderates the draft content of multiple comments that match the specified filter.\n *\n * The same action, `APPROVE` or `REJECT`, applies to all comments that match the filter.\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate a single comment, call Moderate Draft Content.\n * @param appId - ID of the app where to moderate the comments.\n * @public\n * @requiredField appId\n * @requiredField options\n * @requiredField options.draftContentAction\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_MODERATE_DRAFT_CONTENT\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkModerateDraftContent\n */\nexport async function bulkModerateDraftContent(\n appId: string,\n options: NonNullablePaths<\n BulkModerateDraftContentOptions,\n `draftContentAction` | `filter`,\n 2\n >\n): Promise<NonNullablePaths<BulkModerateDraftContentResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n appId: appId,\n filter: options?.filter,\n draftContentAction: options?.draftContentAction,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixCommentsV2Comment.bulkModerateDraftContent(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 appId: '$[0]',\n filter: '$[1].filter',\n draftContentAction: '$[1].draftContentAction',\n },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkModerateDraftContentOptions {\n /** Filter to identify the comment content that needs to be moderated. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Action to do regarding draft content */\n draftContentAction: ActionWithLiterals;\n}\n\n/**\n * Moves multiple comments to another resource.\n * @param appId - ID of the app from which to move the comments.\n * @public\n * @requiredField appId\n * @requiredField options.destination.contextId\n * @requiredField options.destination.resourceId\n * @requiredField options.filter\n * @permissionId WIX_COMMENTS.BULK_COMMENT_MOVE\n * @applicableIdentity APP\n * @fqn wix.comments.ng.v1.CommentsNg.BulkMoveCommentByFilter\n */\nexport async function bulkMoveCommentByFilter(\n appId: string,\n options?: NonNullablePaths<\n BulkMoveCommentByFilterOptions,\n `destination.contextId` | `destination.resourceId` | `filter`,\n 3\n >\n): Promise<NonNullablePaths<BulkMoveCommentByFilterResponse, `jobId`, 2>> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest(\n {\n appId: appId,\n filter: options?.filter,\n destination: options?.destination,\n },\n []\n );\n\n const reqOpts =\n ambassadorWixCommentsV2Comment.bulkMoveCommentByFilter(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 appId: '$[0]',\n filter: '$[1].filter',\n destination: '$[1].destination',\n },\n singleArgumentUnchanged: false,\n },\n ['appId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface BulkMoveCommentByFilterOptions {\n /** Filter to identify the comments that need to be moved. Each key corresponds to an option name, and its values correspond to the choices for this option. For example, {`\"resourceId\"`: `\"64ad407e0bf87891bba7de3a\"`, `\"parentComment.id\"`: `\"726cb137-a9c3-408b-9cc2-2b64c6be8a95\"`}. */\n filter: Record<string, any> | null;\n /** Where to move the comment. */\n destination?: Destination;\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 { 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 resolveWixCommentsNgV1CommentsNgUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'www.wixapis.com': [\n {\n srcPath: '/comments/v1/comments',\n destPath: '/v1/comments',\n },\n {\n srcPath: '/comments/v1/bulk/comments',\n destPath: '/v1/bulk/comments',\n },\n ],\n _: [\n {\n srcPath: '/_api/comments-ng/v1',\n destPath: '/v1',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/_api/comments-ng/v1',\n destPath: '/v1',\n },\n ],\n 'www._base_domain_': [\n {\n srcPath: '/_api/comments-ng/v1',\n destPath: '/v1',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/_api/comments-ng',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_comments_comments';\n\n/**\n * Creates a new comment and publishes it.\n *\n * The `appId`, `contextId`, and `resourceId` are all required and associate the created comment with the specific\n * resource it responds to. See **Integrations** in the Comments introduction for a list of integrated scopes for these fields.\n *\n * If the created comment is a direct response to another comment, the `commentId` of the parent comment should be passed\n * as `parentComment.id` in this comment's request. See **Terminology** in the Comments introduction for additional information on parent comments and replies.\n */\nexport function createComment(payload: object): RequestOptionsFactory<any> {\n function __createComment({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n { path: 'comment.content.attachments.document.urlExpirationDate' },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'comment.draftContent.attachments.image.urlExpirationDate' },\n { path: 'comment.draftContent.attachments.video.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.draftContent.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lat' },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lng' },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.CreateComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createComment;\n}\n\n/** Retrieves a comment. */\nexport function getComment(payload: object): RequestOptionsFactory<any> {\n function __getComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'GET' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.GetComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}',\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: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getComment;\n}\n\n/**\n * Updates a comment.\n *\n * Each time the comment is updated, `revision` increments by 1. The current `revision` must be\n * passed when updating the comment. This ensures you're working with the latest comment and\n * prevents unintended overwrites.\n */\nexport function updateComment(payload: object): RequestOptionsFactory<any> {\n function __updateComment({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n { path: 'comment.content.attachments.document.urlExpirationDate' },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n { path: 'comment.draftContent.attachments.image.urlExpirationDate' },\n { path: 'comment.draftContent.attachments.video.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.draftContent.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformSDKFloatToRESTFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lat' },\n { path: 'comment.content.richContent.nodes.mapData.mapSettings.lng' },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PATCH' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.UpdateComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{comment.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: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateComment;\n}\n\n/**\n * Deletes a comment.\n *\n * This method deletes the `content` of the comment and sets its `status` to `DELETED`.\n */\nexport function deleteComment(payload: object): RequestOptionsFactory<any> {\n function __deleteComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'DELETE' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.DeleteComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteComment;\n}\n\n/**\n * Moderates the draft content of a comment.\n *\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate multiple comments, call Bulk Moderate Draft Content.\n */\nexport function moderateDraftContent(\n payload: object\n): RequestOptionsFactory<any> {\n function __moderateDraftContent({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.ModerateDraftContent',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/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: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __moderateDraftContent;\n}\n\n/**\n * Creates a query to retrieve a list of comments.\n *\n * The `queryComments()` function builds a query to retrieve a list of comments and returns a [`CommentsQueryBuilder`](#commentsquerybuilder) object.\n *\n * The returned object contains the query definition, which is typically used to run the query using the [`find()`](#commentsquerybuilder/find) function.\n *\n * You can refine the query by chaining `CommentsQueryBuilder` functions onto the query. `CommentsQueryBuilder` functions enable you to sort, filter, and control the results that `queryComments()` returns.\n *\n * `queryComments()` runs with the following `CommentsQueryBuilder` default that you can override:\n * + `ascending(\"_id\")`\n *\n * The functions that are chained to `queryComments()` are applied in the order they are called. For example, if you apply `ascending(\"voteSummary.netVoteCount\")` and then `ascending(\"replyCount\")`, the results are sorted first by the `\"voteSummary.netVoteCount\"`, and then, if there are multiple results with the same `\"voteSummary.netVoteCount\"`, the items are sorted by `\"replyCount\"`.\n *\n * The following `CommentsQueryBuilder` functions are supported for the `queryComments()` function. For a full description of the comment object, see the object returned for the [`items`](#commentsqueryresult/items) property in [`CommentsQueryResult`](#commentsqueryresult).\n */\nexport function queryComments(payload: object): RequestOptionsFactory<any> {\n function __queryComments({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.QueryComments',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/query-cursor',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comments.createdDate' },\n { path: 'comments.updatedDate' },\n { path: 'comments.commentDate' },\n { path: 'comments.content.commentDate' },\n {\n path: 'comments.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'comments.content.attachments.image.urlExpirationDate' },\n { path: 'comments.content.attachments.video.urlExpirationDate' },\n {\n path: 'comments.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comments.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comments.content.attachments.document.urlExpirationDate',\n },\n { path: 'comments.draftContent.commentDate' },\n {\n path: 'comments.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comments.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comments.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __queryComments;\n}\n\n/**\n * Sets `marked` to `TRUE` to mark a comment.\n *\n * Call Query Comments to filter for marked comments to then apply customization to.\n * See Sample Flows for an example.\n */\nexport function markComment(payload: object): RequestOptionsFactory<any> {\n function __markComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.MarkComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/mark',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __markComment;\n}\n\n/** Sets `marked` to `FALSE` to unmark a comment. */\nexport function unmarkComment(payload: object): RequestOptionsFactory<any> {\n function __unmarkComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.UnmarkComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/unmark',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __unmarkComment;\n}\n\n/** Hides a comment in a widget. The comment status becomes `HIDDEN`. */\nexport function hideComment(payload: object): RequestOptionsFactory<any> {\n function __hideComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.HideComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/hide',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __hideComment;\n}\n\n/**\n * Publishes a comment with the `HIDDEN` status. The comment status becomes `PUBLISHED`.\n *\n * To publish a new comment, call Create Comment.\n */\nexport function publishComment(payload: object): RequestOptionsFactory<any> {\n function __publishComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.PublishComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/publish',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: [\n { path: 'comment.createdDate' },\n { path: 'comment.updatedDate' },\n { path: 'comment.commentDate' },\n { path: 'comment.content.commentDate' },\n { path: 'comment.content.richContent.metadata.createdTimestamp' },\n { path: 'comment.content.richContent.metadata.updatedTimestamp' },\n { path: 'comment.content.attachments.image.urlExpirationDate' },\n { path: 'comment.content.attachments.video.urlExpirationDate' },\n {\n path: 'comment.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comment.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comment.content.attachments.document.urlExpirationDate',\n },\n { path: 'comment.draftContent.commentDate' },\n {\n path: 'comment.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comment.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comment.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comment.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comment.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comment.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comment.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comment.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __publishComment;\n}\n\n/** Counts comments, given the specified filtering. Comments with the `HIDDEN` status are not included in the response. */\nexport function countComments(payload: object): RequestOptionsFactory<any> {\n function __countComments({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.CountComments',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/count',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __countComments;\n}\n\n/** Lists published comments and replies from a specified resource, such as a blog post. */\nexport function listCommentsByResource(\n payload: object\n): RequestOptionsFactory<any> {\n function __listCommentsByResource({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'GET' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.ListCommentsByResource',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/list-by-resource',\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: 'comments.createdDate' },\n { path: 'comments.updatedDate' },\n { path: 'comments.commentDate' },\n { path: 'comments.content.commentDate' },\n {\n path: 'comments.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'comments.content.attachments.image.urlExpirationDate' },\n { path: 'comments.content.attachments.video.urlExpirationDate' },\n {\n path: 'comments.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comments.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comments.content.attachments.document.urlExpirationDate',\n },\n { path: 'comments.draftContent.commentDate' },\n {\n path: 'comments.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comments.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.createdDate' },\n { path: 'commentReplies.*.replies.updatedDate' },\n { path: 'commentReplies.*.replies.commentDate' },\n { path: 'commentReplies.*.replies.content.commentDate' },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.draftContent.commentDate' },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comments.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __listCommentsByResource;\n}\n\n/**\n * Returns a thread of a comment or a reply.\n *\n * If you request a comment thread, the method returns a single comment with cursors. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n *\n * If you request a reply thread, the method returns a reply with its parent comment. With cursors (`pagingMetadata.cursors.next` or `pagingMetadata.cursors.prev`) you can load replies by calling the List Comments by Resource method.\n */\nexport function getCommentThread(payload: object): RequestOptionsFactory<any> {\n function __getCommentThread({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'GET' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.GetCommentThread',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/comments/{commentId}/thread',\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: 'comments.createdDate' },\n { path: 'comments.updatedDate' },\n { path: 'comments.commentDate' },\n { path: 'comments.content.commentDate' },\n {\n path: 'comments.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.content.richContent.metadata.updatedTimestamp',\n },\n { path: 'comments.content.attachments.image.urlExpirationDate' },\n { path: 'comments.content.attachments.video.urlExpirationDate' },\n {\n path: 'comments.content.attachments.video.posters.urlExpirationDate',\n },\n { path: 'comments.content.attachments.audio.urlExpirationDate' },\n {\n path: 'comments.content.attachments.document.urlExpirationDate',\n },\n { path: 'comments.draftContent.commentDate' },\n {\n path: 'comments.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'comments.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'comments.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'comments.draftContent.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.createdDate' },\n { path: 'commentReplies.*.replies.updatedDate' },\n { path: 'commentReplies.*.replies.commentDate' },\n { path: 'commentReplies.*.replies.content.commentDate' },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.content.attachments.document.urlExpirationDate',\n },\n { path: 'commentReplies.*.replies.draftContent.commentDate' },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.createdTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.metadata.updatedTimestamp',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.image.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.video.posters.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.audio.urlExpirationDate',\n },\n {\n path: 'commentReplies.*.replies.draftContent.attachments.document.urlExpirationDate',\n },\n ],\n },\n {\n transformFn: transformRESTFloatToSDKFloat,\n paths: [\n {\n path: 'comments.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'comments.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'comments.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'comments.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.content.richContent.nodes.shapeData.shape.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.image.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.items.video.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.galleryData.options.item.ratio',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.imageData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lat',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.mapData.mapSettings.lng',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.poll.options.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.pollData.design.poll.background.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.appEmbedData.image.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.video.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.videoData.thumbnail.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.audio.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.audioData.coverImage.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backgroundImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.layoutData.backdropImage.media.duration',\n },\n {\n path: 'commentReplies.*.replies.draftContent.richContent.nodes.shapeData.shape.duration',\n },\n ],\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getCommentThread;\n}\n\n/** Publishes multiple comments with the `HIDDEN` status. The comment status becomes `PUBLISHED`. */\nexport function bulkPublishComment(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkPublishComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkPublishComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/publish-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkPublishComment;\n}\n\n/** Hides multiple comments. The comment status becomes `HIDDEN`. */\nexport function bulkHideComment(payload: object): RequestOptionsFactory<any> {\n function __bulkHideComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkHideComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/hide-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkHideComment;\n}\n\n/** Deletes multiple comments. */\nexport function bulkDeleteComment(payload: object): RequestOptionsFactory<any> {\n function __bulkDeleteComment({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkDeleteComment',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/delete-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkDeleteComment;\n}\n\n/**\n * Moderates the draft content of multiple comments that match the specified filter.\n *\n * The same action, `APPROVE` or `REJECT`, applies to all comments that match the filter.\n * - `APPROVE`: Moves `draftContent` to `content` and updates the comment `status` to `PUBLISHED`.\n *\n * - `REJECT`: Handles the draft content based on the current comment status:\n * - If the comment `status` is `PUBLISHED`, clears `draftContent`.\n * - If the comment `status` is `PENDING`, keeps `draftContent` unchanged and changes `status` to `HIDDEN`.\n *\n * To moderate a single comment, call Moderate Draft Content.\n */\nexport function bulkModerateDraftContent(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkModerateDraftContent({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'POST' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkModerateDraftContent',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/moderate-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkModerateDraftContent;\n}\n\n/** Moves multiple comments to another resource. */\nexport function bulkMoveCommentByFilter(\n payload: object\n): RequestOptionsFactory<any> {\n function __bulkMoveCommentByFilter({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.comments.v2.comment',\n method: 'PUT' as any,\n methodFqn: 'wix.comments.ng.v1.CommentsNg.BulkMoveCommentByFilter',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixCommentsNgV1CommentsNgUrl({\n protoPath: '/v1/bulk/comments/move-by-filter',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __bulkMoveCommentByFilter;\n}\n","import {\n createComment as publicCreateComment,\n getComment as publicGetComment,\n updateComment as publicUpdateComment,\n deleteComment as publicDeleteComment,\n moderateDraftContent as publicModerateDraftContent,\n queryComments as publicQueryComments,\n typedQueryComments as publicTypedQueryComments,\n markComment as publicMarkComment,\n unmarkComment as publicUnmarkComment,\n hideComment as publicHideComment,\n publishComment as publicPublishComment,\n countComments as publicCountComments,\n listCommentsByResource as publicListCommentsByResource,\n getCommentThread as publicGetCommentThread,\n bulkPublishComment as publicBulkPublishComment,\n bulkHideComment as publicBulkHideComment,\n bulkDeleteComment as publicBulkDeleteComment,\n bulkModerateDraftContent as publicBulkModerateDraftContent,\n bulkMoveCommentByFilter as publicBulkMoveCommentByFilter,\n} from './comments-v2-comment-comments.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 CommentQuery,\n CommentsQueryBuilder,\n QueryCommentsOptions,\n typedQueryComments as universalTypedQueryComments,\n} from './comments-v2-comment-comments.universal.js';\nimport { onCommentDeleted as publicOnCommentDeleted } from './comments-v2-comment-comments.public.js';\nimport { onCommentContentChanged as publicOnCommentContentChanged } from './comments-v2-comment-comments.public.js';\nimport { onCommentHidden as publicOnCommentHidden } from './comments-v2-comment-comments.public.js';\nimport { onCommentMarked as publicOnCommentMarked } from './comments-v2-comment-comments.public.js';\nimport { onCommentMoved as publicOnCommentMoved } from './comments-v2-comment-comments.public.js';\nimport { onCommentPublished as publicOnCommentPublished } from './comments-v2-comment-comments.public.js';\nimport { onCommentUnmarked as publicOnCommentUnmarked } from './comments-v2-comment-comments.public.js';\nimport { onCommentCreated as publicOnCommentCreated } from './comments-v2-comment-comments.public.js';\nimport { onCommentResourceCommentCountChanged as publicOnCommentResourceCommentCountChanged } from './comments-v2-comment-comments.public.js';\nimport { onCommentUpdated as publicOnCommentUpdated } from './comments-v2-comment-comments.public.js';\n\nfunction customQueryComments(httpClient: HttpClient) {\n const router = createQueryOverloadRouter({\n builderQueryFunction: (options: QueryCommentsOptions) =>\n publicQueryComments(httpClient)(options),\n typedQueryFunction: (query: CommentQuery, options: QueryCommentsOptions) =>\n publicTypedQueryComments(httpClient)(query, options),\n hasOptionsParameter: true,\n });\n\n function overloadedQuery(\n query: CommentQuery,\n options: QueryCommentsOptions\n ): ReturnType<typeof universalTypedQueryComments>;\n function overloadedQuery(options: QueryCommentsOptions): CommentsQueryBuilder;\n function overloadedQuery(\n queryOrOptions?: CommentQuery | QueryCommentsOptions,\n options?: QueryCommentsOptions\n ): any {\n return router(...arguments);\n }\n\n return overloadedQuery;\n}\n\nexport const createComment: MaybeContext<\n BuildRESTFunction<typeof publicCreateComment> & typeof publicCreateComment\n> = /*#__PURE__*/ createRESTModule(publicCreateComment);\nexport const getComment: MaybeContext<\n BuildRESTFunction<typeof publicGetComment> & typeof publicGetComment\n> = /*#__PURE__*/ createRESTModule(publicGetComment);\nexport const updateComment: MaybeContext<\n BuildRESTFunction<typeof publicUpdateComment> & typeof publicUpdateComment\n> = /*#__PURE__*/ createRESTModule(publicUpdateComment);\nexport const deleteComment: MaybeContext<\n BuildRESTFunction<typeof publicDeleteComment> & typeof publicDeleteComment\n> = /*#__PURE__*/ createRESTModule(publicDeleteComment);\nexport const moderateDraftContent: MaybeContext<\n BuildRESTFunction<typeof publicModerateDraftContent> &\n typeof publicModerateDraftContent\n> = /*#__PURE__*/ createRESTModule(publicModerateDraftContent);\nexport const markComment: MaybeContext<\n BuildRESTFunction<typeof publicMarkComment> & typeof publicMarkComment\n> = /*#__PURE__*/ createRESTModule(publicMarkComment);\nexport const unmarkComment: MaybeContext<\n BuildRESTFunction<typeof publicUnmarkComment> & typeof publicUnmarkComment\n> = /*#__PURE__*/ createRESTModule(publicUnmarkComment);\nexport const hideComment: MaybeContext<\n BuildRESTFunction<typeof publicHideComment> & typeof publicHideComment\n> = /*#__PURE__*/ createRESTModule(publicHideComment);\nexport const publishComment: MaybeContext<\n BuildRESTFunction<typeof publicPublishComment> & typeof publicPublishComment\n> = /*#__PURE__*/ createRESTModule(publicPublishComment);\nexport const countComments: MaybeContext<\n BuildRESTFunction<typeof publicCountComments> & typeof publicCountComments\n> = /*#__PURE__*/ createRESTModule(publicCountComments);\nexport const listCommentsByResource: MaybeContext<\n BuildRESTFunction<typeof publicListCommentsByResource> &\n typeof publicListCommentsByResource\n> = /*#__PURE__*/ createRESTModule(publicListCommentsByResource);\nexport const getCommentThread: MaybeContext<\n BuildRESTFunction<typeof publicGetCommentThread> &\n typeof publicGetCommentThread\n> = /*#__PURE__*/ createRESTModule(publicGetCommentThread);\nexport const bulkPublishComment: MaybeContext<\n BuildRESTFunction<typeof publicBulkPublishComment> &\n typeof publicBulkPublishComment\n> = /*#__PURE__*/ createRESTModule(publicBulkPublishComment);\nexport const bulkHideComment: MaybeContext<\n BuildRESTFunction<typeof publicBulkHideComment> & typeof publicBulkHideComment\n> = /*#__PURE__*/ createRESTModule(publicBulkHideComment);\nexport const bulkDeleteComment: MaybeContext<\n BuildRESTFunction<typeof publicBulkDeleteComment> &\n typeof publicBulkDeleteComment\n> = /*#__PURE__*/ createRESTModule(publicBulkDeleteComment);\nexport const bulkModerateDraftContent: MaybeContext<\n BuildRESTFunction<typeof publicBulkModerateDraftContent> &\n typeof publicBulkModerateDraftContent\n> = /*#__PURE__*/ createRESTModule(publicBulkModerateDraftContent);\nexport const bulkMoveCommentByFilter: MaybeContext<\n BuildRESTFunction<typeof publicBulkMoveCommentByFilter> &\n typeof publicBulkMoveCommentByFilter\n> = /*#__PURE__*/ createRESTModule(publicBulkMoveCommentByFilter);\nexport const queryComments: MaybeContext<\n BuildRESTFunction<typeof customQueryComments> & typeof customQueryComments\n> = /*#__PURE__*/ createRESTModule(customQueryComments);\n/**\n * Triggered when a comment is deleted.\n */\nexport const onCommentDeleted: BuildEventDefinition<\n typeof publicOnCommentDeleted\n> &\n typeof publicOnCommentDeleted = createEventModule(publicOnCommentDeleted);\n/**\n * Triggered when comment content is updated.\n */\nexport const onCommentContentChanged: BuildEventDefinition<\n typeof publicOnCommentContentChanged\n> &\n typeof publicOnCommentContentChanged = createEventModule(\n publicOnCommentContentChanged\n);\n/**\n * Triggered when a comment is hidden.\n */\nexport const onCommentHidden: BuildEventDefinition<\n typeof publicOnCommentHidden\n> &\n typeof publicOnCommentHidden = createEventModule(publicOnCommentHidden);\n/**\n * Triggered when a comment is marked.\n */\nexport const onCommentMarked: BuildEventDefinition<\n typeof publicOnCommentMarked\n> &\n typeof publicOnCommentMarked = createEventModule(publicOnCommentMarked);\n/**\n * Triggered when a comment is moved.\n */\nexport const onCommentMoved: BuildEventDefinition<typeof publicOnCommentMoved> &\n typeof publicOnCommentMoved = createEventModule(publicOnCommentMoved);\n/**\n * Triggered when a comment is published.\n */\nexport const onCommentPublished: BuildEventDefinition<\n typeof publicOnCommentPublished\n> &\n typeof publicOnCommentPublished = createEventModule(publicOnCommentPublished);\n/**\n * Triggered when a comment is unmarked.\n */\nexport const onCommentUnmarked: BuildEventDefinition<\n typeof publicOnCommentUnmarked\n> &\n typeof publicOnCommentUnmarked = createEventModule(publicOnCommentUnmarked);\n/**\n * Triggered when a comment is created.\n */\nexport const onCommentCreated: BuildEventDefinition<\n typeof publicOnCommentCreated\n> &\n typeof publicOnCommentCreated = createEventModule(publicOnCommentCreated);\n/**\n * Triggered when the total number of comments has changed in a resource.\n */\nexport const onCommentResourceCommentCountChanged: BuildEventDefinition<\n typeof publicOnCommentResourceCommentCountChanged\n> &\n typeof publicOnCommentResourceCommentCountChanged = createEventModule(\n publicOnCommentResourceCommentCountChanged\n);\n/**\n * Triggered when a comment is updated.\n */\nexport const onCommentUpdated: BuildEventDefinition<\n typeof publicOnCommentUpdated\n> &\n typeof publicOnCommentUpdated = createEventModule(publicOnCommentUpdated);\n\nexport {\n NodeType,\n WidthType,\n PluginContainerDataAlignment,\n ButtonDataType,\n Target,\n TextAlignment,\n LineStyle,\n Width,\n DividerDataAlignment,\n ViewMode,\n LayoutType,\n Orientation,\n Crop,\n ThumbnailsAlignment,\n GIFType,\n Source,\n StylesPosition,\n MapType,\n ViewRole,\n VoteRole,\n PollLayoutType,\n PollLayoutDirection,\n BackgroundType,\n DecorationType,\n FontType,\n Position,\n AspectRatio,\n Resizing,\n Placement,\n Type,\n Alignment,\n Layout,\n AppType,\n InitialExpandedItems,\n Direction,\n VerticalAlignment,\n NullValue,\n Scaling,\n ImagePosition,\n VerticalAlignmentAlignment,\n ResponsivenessBehaviour,\n DesignTarget,\n Status,\n Action,\n WebhookIdentityType,\n Origin,\n VersioningMode,\n SortOrder,\n Order,\n ReplySortOrder,\n} from './comments-v2-comment-comments.universal.js';\nexport {\n Comment,\n CommentContent,\n RichContent,\n Node,\n NodeDataOneOf,\n NodeStyle,\n ButtonData,\n Border,\n Colors,\n PluginContainerData,\n PluginContainerDataWidth,\n PluginContainerDataWidthDataOneOf,\n Spoiler,\n Height,\n Styles,\n Link,\n LinkDataOneOf,\n Rel,\n CodeBlockData,\n TextStyle,\n DividerData,\n FileData,\n FileSource,\n FileSourceDataOneOf,\n PDFSettings,\n GalleryData,\n Media,\n Image,\n Video,\n Item,\n ItemDataOneOf,\n GalleryOptions,\n GalleryOptionsLayout,\n ItemStyle,\n Thumbnails,\n GIFData,\n GIF,\n HeadingData,\n HTMLData,\n HTMLDataDataOneOf,\n ImageData,\n StylesBorder,\n ImageDataStyles,\n LinkPreviewData,\n LinkPreviewDataStyles,\n MapData,\n MapSettings,\n ParagraphData,\n PollData,\n Permissions,\n Option,\n Settings,\n PollLayout,\n OptionLayout,\n Gradient,\n Background,\n BackgroundBackgroundOneOf,\n PollDesign,\n OptionDesign,\n Poll,\n PollDataLayout,\n Design,\n TextData,\n Decoration,\n DecorationDataOneOf,\n AnchorData,\n ColorData,\n LinkData,\n MentionData,\n FontSizeData,\n SpoilerData,\n FontFamilyData,\n AppEmbedData,\n AppEmbedDataAppDataOneOf,\n BookingData,\n EventData,\n ButtonStyles,\n ImageStyles,\n RibbonStyles,\n CardStyles,\n PricingData,\n VideoData,\n PlaybackOptions,\n EmbedData,\n Oembed,\n CollapsibleListData,\n TableData,\n Dimensions,\n TableCellData,\n CellStyle,\n BorderColors,\n BorderWidths,\n ListValue,\n AudioData,\n OrderedListData,\n BulletedListData,\n BlockquoteData,\n CaptionData,\n LayoutData,\n BackgroundImage,\n LayoutCellData,\n ShapeData,\n ShapeDataStyles,\n Metadata,\n DocumentStyle,\n TextNodeStyle,\n Mention,\n MentionIdentityOneOf,\n Attachment,\n AttachmentMediaOneOf,\n VideoResolution,\n ContentAuthor,\n ContentAuthorAuthorOneOf,\n CommentAuthor,\n CommentAuthorIdentityOneOf,\n ParentComment,\n VoteSummary,\n CommentReactionSummary,\n InvalidateCache,\n InvalidateCacheGetByOneOf,\n App,\n Page,\n URI,\n File,\n CustomTag,\n CommentModerated,\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 Banner,\n UpdateInternalDocumentsEvent,\n UpdateInternalDocumentsEventOperationOneOf,\n InternalDocument,\n InternalDocumentUpdateOperation,\n DeleteByIdsOperation,\n DeleteByFilterOperation,\n InternalDocumentUpdateByFilterOperation,\n InternalUpdateExistingOperation,\n VersionedDocumentUpdateOperation,\n VersionedDeleteByIdsOperation,\n VersionedDocumentId,\n CreateCommentRequest,\n ContactDetails,\n CreateCommentResponse,\n ResourceCommentCountChanged,\n GetCommentRequest,\n GetCommentResponse,\n UpdateCommentRequest,\n UpdateCommentResponse,\n CommentContentChanged,\n DeleteCommentRequest,\n DeleteCommentResponse,\n CommentDeleted,\n ModerateDraftContentRequest,\n ModerateDraftContentResponse,\n CommentPublished,\n CommentHidden,\n QueryCommentsRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Sorting,\n CursorPaging,\n QueryCommentsResponse,\n CursorPagingMetadata,\n Cursors,\n MarkCommentRequest,\n MarkCommentResponse,\n CommentMarked,\n UnmarkCommentRequest,\n UnmarkCommentResponse,\n CommentUnmarked,\n HideCommentRequest,\n HideCommentResponse,\n PublishCommentRequest,\n PublishCommentResponse,\n CountCommentsRequest,\n CountCommentsResponse,\n ListCommentsByResourceRequest,\n CommentSort,\n ReplySort,\n ListCommentsByResourceCursorPaging,\n ListCommentsByResourceResponse,\n RepliesListResponse,\n GetCommentThreadRequest,\n GetCommentThreadResponse,\n BulkPublishCommentRequest,\n BulkPublishCommentResponse,\n BulkHideCommentRequest,\n BulkHideCommentResponse,\n BulkDeleteCommentRequest,\n BulkDeleteCommentResponse,\n BulkModerateDraftContentRequest,\n BulkModerateDraftContentResponse,\n BulkMoveCommentByFilterRequest,\n Destination,\n BulkMoveCommentByFilterResponse,\n CommentMoved,\n BaseEventMetadata,\n EventMetadata,\n AccountInfoMetadata,\n CommentDeletedEnvelope,\n CommentContentChangedEnvelope,\n CommentHiddenEnvelope,\n CommentMarkedEnvelope,\n CommentMovedEnvelope,\n CommentPublishedEnvelope,\n CommentUnmarkedEnvelope,\n CommentCreatedEnvelope,\n CommentResourceCommentCountChangedEnvelope,\n CommentUpdatedEnvelope,\n UpdateComment,\n ModerateDraftContentOptions,\n QueryCommentsOptions,\n CommentsQueryResult,\n CommentsQueryBuilder,\n CommentQuerySpec,\n CountCommentsOptions,\n ListCommentsByResourceOptions,\n GetCommentThreadOptions,\n BulkPublishCommentOptions,\n BulkHideCommentOptions,\n BulkDeleteCommentOptions,\n BulkModerateDraftContentOptions,\n BulkMoveCommentByFilterOptions,\n} from './comments-v2-comment-comments.universal.js';\nexport { utils } from './comments-v2-comment-comments.universal.js';\nexport {\n NodeTypeWithLiterals,\n WidthTypeWithLiterals,\n PluginContainerDataAlignmentWithLiterals,\n ButtonDataTypeWithLiterals,\n TargetWithLiterals,\n TextAlignmentWithLiterals,\n LineStyleWithLiterals,\n WidthWithLiterals,\n DividerDataAlignmentWithLiterals,\n ViewModeWithLiterals,\n LayoutTypeWithLiterals,\n OrientationWithLiterals,\n CropWithLiterals,\n ThumbnailsAlignmentWithLiterals,\n GIFTypeWithLiterals,\n SourceWithLiterals,\n StylesPositionWithLiterals,\n MapTypeWithLiterals,\n ViewRoleWithLiterals,\n VoteRoleWithLiterals,\n PollLayoutTypeWithLiterals,\n PollLayoutDirectionWithLiterals,\n BackgroundTypeWithLiterals,\n DecorationTypeWithLiterals,\n FontTypeWithLiterals,\n PositionWithLiterals,\n AspectRatioWithLiterals,\n ResizingWithLiterals,\n PlacementWithLiterals,\n TypeWithLiterals,\n AlignmentWithLiterals,\n LayoutWithLiterals,\n AppTypeWithLiterals,\n InitialExpandedItemsWithLiterals,\n DirectionWithLiterals,\n VerticalAlignmentWithLiterals,\n NullValueWithLiterals,\n ScalingWithLiterals,\n ImagePositionWithLiterals,\n VerticalAlignmentAlignmentWithLiterals,\n ResponsivenessBehaviourWithLiterals,\n DesignTargetWithLiterals,\n StatusWithLiterals,\n ActionWithLiterals,\n WebhookIdentityTypeWithLiterals,\n OriginWithLiterals,\n VersioningModeWithLiterals,\n SortOrderWithLiterals,\n OrderWithLiterals,\n ReplySortOrderWithLiterals,\n CreateCommentApplicationErrors,\n UpdateCommentApplicationErrors,\n CountCommentsApplicationErrors,\n CommonQueryWithEntityContext,\n CommentQuery,\n} from './comments-v2-comment-comments.universal.js';\n"],"mappings":"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AAA,UACL;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA,EAAE,MAAM,4DAA4D;AAAA,UACpE,EAAE,MAAM,4DAA4D;AAAA,UACpE;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;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AAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;A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AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,YACR;AAAA,YACA;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YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;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YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,MAAM;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","names":["bulkDeleteComment","bulkHideComment","bulkModerateDraftContent","bulkMoveCommentByFilter","bulkPublishComment","countComments","createComment","deleteComment","getComment","getCommentThread","hideComment","listCommentsByResource","markComment","moderateDraftContent","onCommentContentChanged","onCommentCreated","onCommentDeleted","onCommentHidden","onCommentMarked","onCommentMoved","onCommentPublished","onCommentResourceCommentCountChanged","onCommentUnmarked","onCommentUpdated","publishComment","queryComments","unmarkComment","updateComment","import_rename_all_nested_keys","import_audio","import_document","import_float","import_image","import_timestamp","import_transform_paths","import_video_v2","import_float","import_timestamp","import_rest_modules","payload","import_audio","import_image","import_video_v2","import_document","import_transform_paths","NodeType","WidthType","PluginContainerDataAlignment","ButtonDataType","Target","TextAlignment","LineStyle","Width","DividerDataAlignment","ViewMode","LayoutType","Orientation","Crop","ThumbnailsAlignment","GIFType","Source","StylesPosition","MapType","ViewRole","VoteRole","PollLayoutType","PollLayoutDirection","BackgroundType","DecorationType","FontType","Position","AspectRatio","Resizing","Placement","Type","Alignment","Layout","AppType","InitialExpandedItems","Direction","VerticalAlignment","NullValue","Scaling","ImagePosition","VerticalAlignmentAlignment","ResponsivenessBehaviour","DesignTarget","Status","Action","WebhookIdentityType","Origin","VersioningMode","SortOrder","Order","ReplySortOrder","createComment","sdkTransformError","getComment","updateComment","deleteComment","moderateDraftContent","queryComments","markComment","unmarkComment","hideComment","publishComment","countComments","listCommentsByResource","getCommentThread","bulkPublishComment","bulkHideComment","bulkDeleteComment","bulkModerateDraftContent","bulkMoveCommentByFilter","createComment","getComment","updateComment","deleteComment","moderateDraftContent","queryComments","typedQueryComments","markComment","unmarkComment","hideComment","publishComment","countComments","listCommentsByResource","getCommentThread","bulkPublishComment","bulkHideComment","bulkDeleteComment","bulkModerateDraftContent","bulkMoveCommentByFilter","import_rest_modules","queryComments","typedQueryComments","createComment","getComment","updateComment","deleteComment","moderateDraftContent","markComment","unmarkComment","hideComment","publishComment","countComments","listCommentsByResource","getCommentThread","bulkPublishComment","bulkHideComment","bulkDeleteComment","bulkModerateDraftContent","bulkMoveCommentByFilter","onCommentDeleted","onCommentContentChanged","onCommentHidden","onCommentMarked","onCommentMoved","onCommentPublished","onCommentUnmarked","onCommentCreated","onCommentResourceCommentCountChanged","onCommentUpdated"]}