@wix/auto_sdk_feedback_comments 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,677 @@
1
+ import { NonNullablePaths } from '@wix/sdk-types';
2
+
3
+ /**
4
+ * A Comment is a note left on a specific location of a site page as part of a feedback session.
5
+ *
6
+ * Site visitors leave comments while reviewing a site; the site owner reads them, triages them by
7
+ * `status`, replies to them, and deletes them.
8
+ */
9
+ interface Comment {
10
+ /**
11
+ * Comment ID.
12
+ * @format GUID
13
+ * @readonly
14
+ */
15
+ _id?: string;
16
+ /**
17
+ * Revision number, which increments by 1 each time the Comment is updated.
18
+ * To prevent conflicting changes,
19
+ * the current revision must be passed when updating the Comment.
20
+ *
21
+ * Ignored when creating a Comment.
22
+ * @readonly
23
+ */
24
+ revision?: string | null;
25
+ /**
26
+ * Date and time the Comment was created.
27
+ * @readonly
28
+ */
29
+ _createdDate?: Date | null;
30
+ /**
31
+ * Date and time the Comment was last updated.
32
+ * @readonly
33
+ */
34
+ _updatedDate?: Date | null;
35
+ /**
36
+ * ID of the feedback session the Comment belongs to.
37
+ * @format GUID
38
+ * @readonly
39
+ */
40
+ feedbackId?: string;
41
+ /**
42
+ * ID of the site the Comment was left on.
43
+ * @format GUID
44
+ * @readonly
45
+ */
46
+ metaSiteId?: string;
47
+ /**
48
+ * ID of the Wix user or site visitor who left the Comment.
49
+ * @format GUID
50
+ * @readonly
51
+ */
52
+ commenterId?: string;
53
+ /**
54
+ * Text of the Comment.
55
+ * @minLength 2
56
+ * @maxLength 2000
57
+ */
58
+ message?: string;
59
+ /**
60
+ * Triage status of the Comment.
61
+ *
62
+ * Read-only: the site owner changes it with Update Comment Status, and no other flow may set it.
63
+ * @readonly
64
+ */
65
+ status?: StatusWithLiterals;
66
+ /** Where on the page the Comment is anchored. */
67
+ commentLocation?: CommentLocation;
68
+ /**
69
+ * Replies to the Comment, ordered oldest first.
70
+ *
71
+ * A reply is addressed by its index in this list, so indexes shift when a reply is deleted.
72
+ * Pass the Comment's current `revision` when updating or deleting a reply to be sure the index
73
+ * you're addressing is still the one you read.
74
+ * @readonly
75
+ * @maxSize 1000
76
+ */
77
+ replies?: CommentReply[];
78
+ /**
79
+ * Whether the Comment was migrated from the legacy feedback server.
80
+ * @internal
81
+ * @readonly
82
+ */
83
+ migrated?: boolean;
84
+ }
85
+ /** Triage status of a comment. */
86
+ declare enum Status {
87
+ /** The comment hasn't been read yet. */
88
+ NEW = "NEW",
89
+ /** The comment has been read but isn't resolved. */
90
+ OPEN = "OPEN",
91
+ /** The comment has been dealt with. */
92
+ RESOLVED = "RESOLVED"
93
+ }
94
+ /** @enumType */
95
+ type StatusWithLiterals = Status | 'NEW' | 'OPEN' | 'RESOLVED';
96
+ /** Where on a site page a Comment is anchored. */
97
+ interface CommentLocation {
98
+ /**
99
+ * ID of the editor page the Comment was left on.
100
+ * @maxLength 100
101
+ */
102
+ pageId?: string;
103
+ /** Horizontal position of the Comment on the page. */
104
+ x?: number;
105
+ /** Vertical position of the Comment on the page. */
106
+ y?: number;
107
+ /** Responsive-design breakpoint the Comment was left at. */
108
+ breakpoint?: Breakpoint;
109
+ /**
110
+ * Inner path of the Wix dynamic page the Comment was left on.
111
+ * @maxLength 2048
112
+ */
113
+ innerPath?: string;
114
+ /** Position of the Comment relative to the element it's attached to. */
115
+ position?: Position;
116
+ }
117
+ /** Responsive-design breakpoint a Comment was left at. */
118
+ interface Breakpoint {
119
+ /**
120
+ * Breakpoint ID.
121
+ * @maxLength 100
122
+ */
123
+ _id?: string;
124
+ /** Lowest viewport width the breakpoint applies to, in pixels. */
125
+ minWidth?: number;
126
+ /** Highest viewport width the breakpoint applies to, in pixels. */
127
+ maxWidth?: number;
128
+ }
129
+ /** Position of a Comment relative to the page element it's attached to. */
130
+ interface Position {
131
+ /**
132
+ * DOM selector of the target element.
133
+ * @maxLength 1024
134
+ */
135
+ selector?: string;
136
+ /** Horizontal offset within the element, as a percentage of its width. */
137
+ offsetXPct?: number;
138
+ /** Vertical offset within the element, as a percentage of its height. */
139
+ offsetYPct?: number;
140
+ /**
141
+ * Inner path of the Wix dynamic page the element is on.
142
+ * @maxLength 2048
143
+ */
144
+ innerPath?: string;
145
+ }
146
+ /** A reply to a Comment. */
147
+ interface CommentReply {
148
+ /**
149
+ * ID of the Wix user or site visitor who wrote the reply.
150
+ * @format GUID
151
+ * @readonly
152
+ */
153
+ replierId?: string;
154
+ /**
155
+ * Text of the reply.
156
+ * @minLength 1
157
+ * @maxLength 2000
158
+ */
159
+ message?: string;
160
+ /**
161
+ * Date and time the reply was created.
162
+ * @readonly
163
+ */
164
+ _createdDate?: Date | null;
165
+ }
166
+ interface GetCommentRequest {
167
+ /**
168
+ * ID of the Comment to retrieve.
169
+ * @format GUID
170
+ */
171
+ commentId: string;
172
+ }
173
+ interface GetCommentResponse {
174
+ /** The requested Comment. */
175
+ comment?: Comment;
176
+ }
177
+ interface QueryCommentsRequest {
178
+ /** Query options. */
179
+ query?: CursorQuery;
180
+ }
181
+ interface CursorQuery extends CursorQueryPagingMethodOneOf {
182
+ /**
183
+ * Cursor paging options.
184
+ *
185
+ * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).
186
+ */
187
+ cursorPaging?: CursorPaging;
188
+ /**
189
+ * Filter object.
190
+ *
191
+ * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).
192
+ */
193
+ filter?: Record<string, any> | null;
194
+ /**
195
+ * Sort object.
196
+ *
197
+ * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).
198
+ * @maxSize 5
199
+ */
200
+ sort?: Sorting[];
201
+ }
202
+ /** @oneof */
203
+ interface CursorQueryPagingMethodOneOf {
204
+ /**
205
+ * Cursor paging options.
206
+ *
207
+ * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).
208
+ */
209
+ cursorPaging?: CursorPaging;
210
+ }
211
+ interface Sorting {
212
+ /**
213
+ * Name of the field to sort by.
214
+ * @maxLength 512
215
+ */
216
+ fieldName?: string;
217
+ /** Sort order. */
218
+ order?: SortOrderWithLiterals;
219
+ }
220
+ declare enum SortOrder {
221
+ ASC = "ASC",
222
+ DESC = "DESC"
223
+ }
224
+ /** @enumType */
225
+ type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';
226
+ interface CursorPaging {
227
+ /**
228
+ * Maximum number of items to return in the results.
229
+ * @max 100
230
+ */
231
+ limit?: number | null;
232
+ /**
233
+ * Pointer to the next or previous page in the list of results.
234
+ *
235
+ * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
236
+ * Not relevant for the first request.
237
+ * @maxLength 16000
238
+ */
239
+ cursor?: string | null;
240
+ }
241
+ interface QueryCommentsResponse {
242
+ /** The retrieved Comments. */
243
+ comments?: Comment[];
244
+ /** Paging metadata. */
245
+ pagingMetadata?: CursorPagingMetadata;
246
+ }
247
+ interface CursorPagingMetadata {
248
+ /** Number of items returned in current page. */
249
+ count?: number | null;
250
+ /** Cursor strings that point to the next page, previous page, or both. */
251
+ cursors?: Cursors;
252
+ /**
253
+ * Whether there are more pages to retrieve following the current page.
254
+ *
255
+ * + `true`: Another page of results can be retrieved.
256
+ * + `false`: This is the last page.
257
+ */
258
+ hasNext?: boolean | null;
259
+ }
260
+ interface Cursors {
261
+ /**
262
+ * Cursor string pointing to the next page in the list of results.
263
+ * @maxLength 16000
264
+ */
265
+ next?: string | null;
266
+ /**
267
+ * Cursor pointing to the previous page in the list of results.
268
+ * @maxLength 16000
269
+ */
270
+ prev?: string | null;
271
+ }
272
+ interface UpdateCommentStatusRequest {
273
+ /**
274
+ * ID of the Comment to triage.
275
+ * @format GUID
276
+ */
277
+ commentId: string;
278
+ /** Status to set on the Comment. */
279
+ status: StatusWithLiterals;
280
+ /** Current revision of the Comment. */
281
+ revision: string | null;
282
+ }
283
+ interface UpdateCommentStatusResponse {
284
+ /** The updated Comment. */
285
+ comment?: Comment;
286
+ }
287
+ interface DeleteCommentRequest {
288
+ /**
289
+ * ID of the Comment to delete.
290
+ * @format GUID
291
+ */
292
+ commentId: string;
293
+ }
294
+ interface DeleteCommentResponse {
295
+ }
296
+ interface CreateCommentReplyRequest {
297
+ /**
298
+ * ID of the Comment to reply to.
299
+ * @format GUID
300
+ */
301
+ commentId: string;
302
+ /** The reply to add. Only `message` is honored. */
303
+ reply: CommentReply;
304
+ /** Current revision of the Comment. */
305
+ revision: string | null;
306
+ }
307
+ interface CreateCommentReplyResponse {
308
+ /** The Comment, including the new reply. */
309
+ comment?: Comment;
310
+ }
311
+ interface UpdateCommentReplyRequest {
312
+ /**
313
+ * ID of the Comment the reply belongs to.
314
+ * @format GUID
315
+ */
316
+ commentId: string;
317
+ /** Position of the reply in the Comment's `replies` list. */
318
+ replyIndex: number;
319
+ /**
320
+ * New text for the reply.
321
+ * @minLength 1
322
+ * @maxLength 2000
323
+ */
324
+ message: string;
325
+ /** Current revision of the Comment. */
326
+ revision: string | null;
327
+ }
328
+ interface UpdateCommentReplyResponse {
329
+ /** The Comment, including the updated reply. */
330
+ comment?: Comment;
331
+ }
332
+ interface DeleteCommentReplyRequest {
333
+ /**
334
+ * ID of the Comment the reply belongs to.
335
+ * @format GUID
336
+ */
337
+ commentId: string;
338
+ /** Position of the reply in the Comment's `replies` list. */
339
+ replyIndex: number;
340
+ /** Current revision of the Comment. */
341
+ revision: string | null;
342
+ }
343
+ interface DeleteCommentReplyResponse {
344
+ /** The Comment, without the deleted reply. */
345
+ comment?: Comment;
346
+ }
347
+ interface DomainEvent extends DomainEventBodyOneOf {
348
+ createdEvent?: EntityCreatedEvent;
349
+ updatedEvent?: EntityUpdatedEvent;
350
+ deletedEvent?: EntityDeletedEvent;
351
+ actionEvent?: ActionEvent;
352
+ /** Event ID. With this ID you can easily spot duplicated events and ignore them. */
353
+ _id?: string;
354
+ /**
355
+ * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.
356
+ * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
357
+ */
358
+ entityFqdn?: string;
359
+ /**
360
+ * Event action name, placed at the top level to make it easier for users to dispatch messages.
361
+ * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
362
+ */
363
+ slug?: string;
364
+ /** ID of the entity associated with the event. */
365
+ entityId?: string;
366
+ /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
367
+ eventTime?: Date | null;
368
+ /**
369
+ * Whether the event was triggered as a result of a privacy regulation application
370
+ * (for example, GDPR).
371
+ */
372
+ triggeredByAnonymizeRequest?: boolean | null;
373
+ /** If present, indicates the action that triggered the event. */
374
+ originatedFrom?: string | null;
375
+ /**
376
+ * 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.
377
+ * 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.
378
+ */
379
+ entityEventSequence?: string | null;
380
+ }
381
+ /** @oneof */
382
+ interface DomainEventBodyOneOf {
383
+ createdEvent?: EntityCreatedEvent;
384
+ updatedEvent?: EntityUpdatedEvent;
385
+ deletedEvent?: EntityDeletedEvent;
386
+ actionEvent?: ActionEvent;
387
+ }
388
+ interface EntityCreatedEvent {
389
+ entity?: string;
390
+ }
391
+ interface RestoreInfo {
392
+ deletedDate?: Date | null;
393
+ }
394
+ interface EntityUpdatedEvent {
395
+ /**
396
+ * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
397
+ * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
398
+ * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
399
+ */
400
+ currentEntity?: string;
401
+ }
402
+ interface EntityDeletedEvent {
403
+ /** Entity that was deleted. */
404
+ deletedEntity?: string | null;
405
+ }
406
+ interface ActionEvent {
407
+ body?: string;
408
+ }
409
+ interface MessageEnvelope {
410
+ /**
411
+ * App instance ID.
412
+ * @format GUID
413
+ */
414
+ instanceId?: string | null;
415
+ /**
416
+ * Event type.
417
+ * @maxLength 150
418
+ */
419
+ eventType?: string;
420
+ /** The identification type and identity data. */
421
+ identity?: IdentificationData;
422
+ /** Stringify payload. */
423
+ data?: string;
424
+ /** Details related to the account */
425
+ accountInfo?: AccountInfo;
426
+ }
427
+ interface IdentificationData extends IdentificationDataIdOneOf {
428
+ /**
429
+ * ID of a site visitor that has not logged in to the site.
430
+ * @format GUID
431
+ */
432
+ anonymousVisitorId?: string;
433
+ /**
434
+ * ID of a site visitor that has logged in to the site.
435
+ * @format GUID
436
+ */
437
+ memberId?: string;
438
+ /**
439
+ * ID of a Wix user (site owner, contributor, etc.).
440
+ * @format GUID
441
+ */
442
+ wixUserId?: string;
443
+ /**
444
+ * ID of an app.
445
+ * @format GUID
446
+ */
447
+ appId?: string;
448
+ /** @readonly */
449
+ identityType?: WebhookIdentityTypeWithLiterals;
450
+ }
451
+ /** @oneof */
452
+ interface IdentificationDataIdOneOf {
453
+ /**
454
+ * ID of a site visitor that has not logged in to the site.
455
+ * @format GUID
456
+ */
457
+ anonymousVisitorId?: string;
458
+ /**
459
+ * ID of a site visitor that has logged in to the site.
460
+ * @format GUID
461
+ */
462
+ memberId?: string;
463
+ /**
464
+ * ID of a Wix user (site owner, contributor, etc.).
465
+ * @format GUID
466
+ */
467
+ wixUserId?: string;
468
+ /**
469
+ * ID of an app.
470
+ * @format GUID
471
+ */
472
+ appId?: string;
473
+ }
474
+ declare enum WebhookIdentityType {
475
+ UNKNOWN = "UNKNOWN",
476
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
477
+ MEMBER = "MEMBER",
478
+ WIX_USER = "WIX_USER",
479
+ APP = "APP"
480
+ }
481
+ /** @enumType */
482
+ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
483
+ interface AccountInfo {
484
+ /**
485
+ * ID of the Wix account associated with the event.
486
+ * @format GUID
487
+ */
488
+ accountId?: string | null;
489
+ /**
490
+ * ID of the parent Wix account. Only included when accountId belongs to a child account.
491
+ * @format GUID
492
+ */
493
+ parentAccountId?: string | null;
494
+ /**
495
+ * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.
496
+ * @format GUID
497
+ */
498
+ siteId?: string | null;
499
+ }
500
+ interface CreateCommentRequest {
501
+ /**
502
+ * ID of the feedback session to leave the Comment on.
503
+ * @format GUID
504
+ */
505
+ feedbackId?: string;
506
+ /** The Comment to leave. */
507
+ comment?: Comment;
508
+ }
509
+ interface CreateCommentResponse {
510
+ /** The created Comment. */
511
+ comment?: Comment;
512
+ }
513
+ interface UpdateCommentRequest {
514
+ /**
515
+ * The Comment to update, carrying its `id`, its current `revision`, and the new values for the
516
+ * fields named in `field_mask`.
517
+ */
518
+ comment?: Comment;
519
+ /**
520
+ * Fields to update: `message`, `comment_location`, or both.
521
+ * @internal
522
+ */
523
+ fieldMask?: string[];
524
+ }
525
+ interface UpdateCommentResponse {
526
+ /** The updated Comment. */
527
+ comment?: Comment;
528
+ }
529
+ /**
530
+ * Retrieves a Comment.
531
+ * @param commentId - ID of the Comment to retrieve.
532
+ * @internal
533
+ * @documentationMaturity preview
534
+ * @requiredField commentId
535
+ * @permissionId partners:feedback:v1:comment:get_comment
536
+ * @returns The requested Comment.
537
+ * @fqn wix.partners.feedback.v1.Comments.GetComment
538
+ */
539
+ declare function getComment(commentId: string): Promise<NonNullablePaths<Comment, `_id` | `feedbackId` | `metaSiteId` | `commenterId` | `message` | `status` | `commentLocation.pageId` | `commentLocation.x` | `commentLocation.y` | `commentLocation.breakpoint._id` | `commentLocation.breakpoint.minWidth` | `commentLocation.breakpoint.maxWidth` | `commentLocation.innerPath` | `commentLocation.position.selector` | `commentLocation.position.offsetXPct` | `commentLocation.position.offsetYPct` | `commentLocation.position.innerPath` | `replies` | `replies.${number}.replierId` | `replies.${number}.message`, 2>>;
540
+ /**
541
+ * Retrieves a list of Comments, given the provided [paging, filtering, and sorting][1].
542
+ *
543
+ * Up to 1,000 Comments can be returned per request.
544
+ *
545
+ * To learn how to query Comments, see [API Query Language][2].
546
+ *
547
+ * [1]: https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging
548
+ * [2]: https://dev.wix.com/docs/rest/articles/getting-started/api-query-language
549
+ * @param query - Query options.
550
+ * @internal
551
+ * @documentationMaturity preview
552
+ * @requiredField query
553
+ * @permissionId partners:feedback:v1:comment:query_comments
554
+ * @fqn wix.partners.feedback.v1.Comments.QueryComments
555
+ */
556
+ declare function queryComments(query: CursorQuery): Promise<NonNullablePaths<QueryCommentsResponse, `comments` | `comments.${number}._id` | `comments.${number}.feedbackId` | `comments.${number}.metaSiteId` | `comments.${number}.commenterId` | `comments.${number}.message` | `comments.${number}.status` | `comments.${number}.commentLocation.pageId` | `comments.${number}.commentLocation.x` | `comments.${number}.commentLocation.y` | `comments.${number}.commentLocation.breakpoint._id` | `comments.${number}.commentLocation.breakpoint.minWidth` | `comments.${number}.commentLocation.breakpoint.maxWidth` | `comments.${number}.commentLocation.innerPath` | `comments.${number}.commentLocation.position.selector` | `comments.${number}.commentLocation.position.offsetXPct` | `comments.${number}.commentLocation.position.offsetYPct` | `comments.${number}.commentLocation.position.innerPath`, 4>>;
557
+ /**
558
+ * Updates the triage status of a Comment.
559
+ *
560
+ * This is the only part of a Comment the site owner may change — the text belongs to whoever
561
+ * wrote it.
562
+ *
563
+ * Each time the Comment is updated, `revision` increments by 1. The current `revision` must be
564
+ * passed, which ensures you're working with the latest Comment and prevents unintended
565
+ * overwrites.
566
+ * @param commentId - ID of the Comment to triage.
567
+ * @param status - Status to set on the Comment.
568
+ * @internal
569
+ * @documentationMaturity preview
570
+ * @requiredField commentId
571
+ * @requiredField options
572
+ * @requiredField options.revision
573
+ * @requiredField status
574
+ * @permissionId partners:feedback:v1:comment:update_comment_status
575
+ * @fqn wix.partners.feedback.v1.Comments.UpdateCommentStatus
576
+ */
577
+ declare function updateCommentStatus(commentId: string, status: StatusWithLiterals, options: NonNullablePaths<UpdateCommentStatusOptions, `revision`, 0>): Promise<NonNullablePaths<UpdateCommentStatusResponse, `comment._id` | `comment.feedbackId` | `comment.metaSiteId` | `comment.commenterId` | `comment.message` | `comment.status` | `comment.commentLocation.pageId` | `comment.commentLocation.x` | `comment.commentLocation.y` | `comment.commentLocation.breakpoint._id` | `comment.commentLocation.breakpoint.minWidth` | `comment.commentLocation.breakpoint.maxWidth` | `comment.commentLocation.innerPath` | `comment.commentLocation.position.selector` | `comment.commentLocation.position.offsetXPct` | `comment.commentLocation.position.offsetYPct` | `comment.commentLocation.position.innerPath` | `comment.replies` | `comment.replies.${number}.replierId` | `comment.replies.${number}.message`, 3>>;
578
+ interface UpdateCommentStatusOptions {
579
+ /** Current revision of the Comment. */
580
+ revision: string | null;
581
+ }
582
+ /**
583
+ * Deletes a Comment.
584
+ *
585
+ * Deleting a Comment also deletes its replies.
586
+ * @param commentId - ID of the Comment to delete.
587
+ * @internal
588
+ * @documentationMaturity preview
589
+ * @requiredField commentId
590
+ * @permissionId partners:feedback:v1:comment:delete_comment
591
+ * @fqn wix.partners.feedback.v1.Comments.DeleteComment
592
+ */
593
+ declare function deleteComment(commentId: string): Promise<void>;
594
+ /**
595
+ * Adds a reply to a Comment.
596
+ *
597
+ * The reply is attributed to the calling user, or to the calling app when the call carries no
598
+ * user identity.
599
+ * @param commentId - ID of the Comment to reply to.
600
+ * @param reply - The reply to add. Only `message` is honored.
601
+ * @internal
602
+ * @documentationMaturity preview
603
+ * @requiredField commentId
604
+ * @requiredField options
605
+ * @requiredField options.revision
606
+ * @requiredField reply
607
+ * @requiredField reply.message
608
+ * @permissionId partners:feedback:v1:comment:create_comment_reply
609
+ * @fqn wix.partners.feedback.v1.Comments.CreateCommentReply
610
+ */
611
+ declare function createCommentReply(commentId: string, reply: NonNullablePaths<CommentReply, `message`, 0>, options: NonNullablePaths<CreateCommentReplyOptions, `revision`, 0>): Promise<NonNullablePaths<CreateCommentReplyResponse, `comment._id` | `comment.feedbackId` | `comment.metaSiteId` | `comment.commenterId` | `comment.message` | `comment.status` | `comment.commentLocation.pageId` | `comment.commentLocation.x` | `comment.commentLocation.y` | `comment.commentLocation.breakpoint._id` | `comment.commentLocation.breakpoint.minWidth` | `comment.commentLocation.breakpoint.maxWidth` | `comment.commentLocation.innerPath` | `comment.commentLocation.position.selector` | `comment.commentLocation.position.offsetXPct` | `comment.commentLocation.position.offsetYPct` | `comment.commentLocation.position.innerPath` | `comment.replies` | `comment.replies.${number}.replierId` | `comment.replies.${number}.message`, 3>>;
612
+ interface CreateCommentReplyOptions {
613
+ /** Current revision of the Comment. */
614
+ revision: string | null;
615
+ }
616
+ /**
617
+ * Updates the text of one of the caller's own replies to a Comment.
618
+ *
619
+ * The reply is addressed by `reply_index`, its position in the Comment's `replies` list. Because
620
+ * indexes shift when a reply is deleted, the Comment's current `revision` must be passed; a stale
621
+ * `revision` is rejected rather than applied to whichever reply now sits at that index.
622
+ * @param message - New text for the reply.
623
+ * @internal
624
+ * @documentationMaturity preview
625
+ * @requiredField identifiers
626
+ * @requiredField identifiers.commentId
627
+ * @requiredField identifiers.replyIndex
628
+ * @requiredField message
629
+ * @requiredField options
630
+ * @requiredField options.revision
631
+ * @permissionId partners:feedback:v1:comment:update_comment_reply
632
+ * @fqn wix.partners.feedback.v1.Comments.UpdateCommentReply
633
+ */
634
+ declare function updateCommentReply(identifiers: NonNullablePaths<UpdateCommentReplyIdentifiers, `commentId` | `replyIndex`, 0>, message: string, options: NonNullablePaths<UpdateCommentReplyOptions, `revision`, 0>): Promise<NonNullablePaths<UpdateCommentReplyResponse, `comment._id` | `comment.feedbackId` | `comment.metaSiteId` | `comment.commenterId` | `comment.message` | `comment.status` | `comment.commentLocation.pageId` | `comment.commentLocation.x` | `comment.commentLocation.y` | `comment.commentLocation.breakpoint._id` | `comment.commentLocation.breakpoint.minWidth` | `comment.commentLocation.breakpoint.maxWidth` | `comment.commentLocation.innerPath` | `comment.commentLocation.position.selector` | `comment.commentLocation.position.offsetXPct` | `comment.commentLocation.position.offsetYPct` | `comment.commentLocation.position.innerPath` | `comment.replies` | `comment.replies.${number}.replierId` | `comment.replies.${number}.message`, 3>>;
635
+ interface UpdateCommentReplyIdentifiers {
636
+ /**
637
+ * ID of the Comment the reply belongs to.
638
+ * @format GUID
639
+ */
640
+ commentId: string;
641
+ /** Position of the reply in the Comment's `replies` list. */
642
+ replyIndex: number;
643
+ }
644
+ interface UpdateCommentReplyOptions {
645
+ /** Current revision of the Comment. */
646
+ revision: string | null;
647
+ }
648
+ /**
649
+ * Deletes a reply to a Comment.
650
+ *
651
+ * The site owner may delete any reply, not only their own, as part of moderating the Comment.
652
+ *
653
+ * The reply is addressed by `reply_index`, its position in the Comment's `replies` list. Because
654
+ * indexes shift when a reply is deleted, the Comment's current `revision` must be passed; a stale
655
+ * `revision` is rejected rather than applied to whichever reply now sits at that index.
656
+ * @param revision - Current revision of the Comment.
657
+ * @internal
658
+ * @documentationMaturity preview
659
+ * @requiredField identifiers
660
+ * @requiredField identifiers.commentId
661
+ * @requiredField identifiers.replyIndex
662
+ * @requiredField revision
663
+ * @permissionId partners:feedback:v1:comment:delete_comment_reply
664
+ * @fqn wix.partners.feedback.v1.Comments.DeleteCommentReply
665
+ */
666
+ declare function deleteCommentReply(identifiers: NonNullablePaths<DeleteCommentReplyIdentifiers, `commentId` | `replyIndex`, 0>, revision: string): Promise<NonNullablePaths<DeleteCommentReplyResponse, `comment._id` | `comment.feedbackId` | `comment.metaSiteId` | `comment.commenterId` | `comment.message` | `comment.status` | `comment.commentLocation.pageId` | `comment.commentLocation.x` | `comment.commentLocation.y` | `comment.commentLocation.breakpoint._id` | `comment.commentLocation.breakpoint.minWidth` | `comment.commentLocation.breakpoint.maxWidth` | `comment.commentLocation.innerPath` | `comment.commentLocation.position.selector` | `comment.commentLocation.position.offsetXPct` | `comment.commentLocation.position.offsetYPct` | `comment.commentLocation.position.innerPath` | `comment.replies` | `comment.replies.${number}.replierId` | `comment.replies.${number}.message`, 3>>;
667
+ interface DeleteCommentReplyIdentifiers {
668
+ /**
669
+ * ID of the Comment the reply belongs to.
670
+ * @format GUID
671
+ */
672
+ commentId: string;
673
+ /** Position of the reply in the Comment's `replies` list. */
674
+ replyIndex: number;
675
+ }
676
+
677
+ export { type AccountInfo, type ActionEvent, type Breakpoint, type Comment, type CommentLocation, type CommentReply, type CreateCommentReplyOptions, type CreateCommentReplyRequest, type CreateCommentReplyResponse, type CreateCommentRequest, type CreateCommentResponse, type CursorPaging, type CursorPagingMetadata, type CursorQuery, type CursorQueryPagingMethodOneOf, type Cursors, type DeleteCommentReplyIdentifiers, type DeleteCommentReplyRequest, type DeleteCommentReplyResponse, type DeleteCommentRequest, type DeleteCommentResponse, type DomainEvent, type DomainEventBodyOneOf, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type GetCommentRequest, type GetCommentResponse, type IdentificationData, type IdentificationDataIdOneOf, type MessageEnvelope, type Position, type QueryCommentsRequest, type QueryCommentsResponse, type RestoreInfo, SortOrder, type SortOrderWithLiterals, type Sorting, Status, type StatusWithLiterals, type UpdateCommentReplyIdentifiers, type UpdateCommentReplyOptions, type UpdateCommentReplyRequest, type UpdateCommentReplyResponse, type UpdateCommentRequest, type UpdateCommentResponse, type UpdateCommentStatusOptions, type UpdateCommentStatusRequest, type UpdateCommentStatusResponse, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, createCommentReply, deleteComment, deleteCommentReply, getComment, queryComments, updateCommentReply, updateCommentStatus };