@trii/types 2.10.729 → 2.10.730

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 (144) hide show
  1. package/dist/Automations/Events/Event.d.ts +3 -3
  2. package/dist/Contacts/CommunicationEndpoint.d.ts +8 -8
  3. package/dist/Conversations/Conversation.d.ts +8 -8
  4. package/dist/Conversations/DashBoard/dashboardForms.d.ts +44 -0
  5. package/dist/Conversations/DashBoard/dashboardForms.js +24 -0
  6. package/dist/Conversations/InboxCounters.d.ts +18 -0
  7. package/dist/Conversations/InboxMongo.d.ts +12 -12
  8. package/dist/Conversations/Routing.d.ts +10 -10
  9. package/dist/Events/DomainEventTypes.d.ts +23 -23
  10. package/dist/Tickets/Common.d.ts +62 -0
  11. package/dist/Tickets/CustomerNotification.d.ts +192 -0
  12. package/dist/Tickets/CustomerNotification.js +54 -0
  13. package/dist/Tickets/Notes.d.ts +13 -0
  14. package/dist/Tickets/Notes.js +10 -0
  15. package/dist/Tickets/QuickResponse.d.ts +64 -0
  16. package/dist/Tickets/QuickResponse.js +41 -0
  17. package/dist/Tickets/Task.d.ts +11 -0
  18. package/dist/Tickets/Ticket.d.ts +2 -0
  19. package/dist/Tickets/index.d.ts +3 -0
  20. package/dist/Tickets/index.js +3 -0
  21. package/dist/src/Common/Channels/Channel.d.ts +1 -28
  22. package/dist/src/Common/Channels/Email.d.ts +0 -1
  23. package/dist/src/Common/Channels/Facebook.d.ts +0 -1
  24. package/dist/src/Common/Channels/Form.d.ts +0 -1
  25. package/dist/src/Common/Channels/GoogleBusiness.d.ts +0 -1
  26. package/dist/src/Common/Channels/Instagram.d.ts +0 -1
  27. package/dist/src/Common/Channels/MercadoLibre.d.ts +0 -1
  28. package/dist/src/Common/Channels/WebChat.d.ts +0 -1
  29. package/dist/src/Contacts/contacts.d.ts +2 -2
  30. package/dist/src/Contacts/index.d.ts +0 -2
  31. package/dist/src/Contacts/index.js +0 -2
  32. package/dist/src/Conversations/Conversation.d.ts +48 -410
  33. package/dist/src/Conversations/Conversation.js +34 -14
  34. package/dist/src/Conversations/DashBoard/dashboard.d.ts +2 -2
  35. package/dist/src/Conversations/DashBoard/dashboardForms.d.ts +44 -0
  36. package/dist/src/Conversations/DashBoard/dashboardForms.js +24 -0
  37. package/dist/src/Conversations/Flows/Workflows/Workflow.d.ts +123 -280
  38. package/dist/src/Conversations/Flows/Workflows/Workflow.js +35 -85
  39. package/dist/src/Conversations/Groups/Group.d.ts +8 -2
  40. package/dist/src/Conversations/Groups/Group.js +6 -0
  41. package/dist/src/Conversations/Label.d.ts +1 -1
  42. package/dist/src/Conversations/WebHook.d.ts +1 -1
  43. package/dist/src/Conversations/index.d.ts +1 -9
  44. package/dist/src/Conversations/index.js +1 -9
  45. package/dist/src/PublicAPI/apiKey.d.ts +3 -92
  46. package/dist/src/PublicAPI/apiKey.js +0 -27
  47. package/dist/src/Tickets/AI.d.ts +2 -50
  48. package/dist/src/Tickets/AdvancedApi.d.ts +2 -142
  49. package/dist/src/Tickets/AdvancedApi.js +1 -28
  50. package/dist/src/Tickets/Approval.d.ts +4 -20
  51. package/dist/src/Tickets/Automation.d.ts +2 -46
  52. package/dist/src/Tickets/Category.d.ts +0 -18
  53. package/dist/src/Tickets/Dashboard.d.ts +0 -78
  54. package/dist/src/Tickets/Dashboard.js +1 -13
  55. package/dist/src/Tickets/Fields.d.ts +0 -4
  56. package/dist/src/Tickets/Layouts.d.ts +1 -3
  57. package/dist/src/Tickets/Routing.d.ts +3 -105
  58. package/dist/src/Tickets/Routing.js +1 -7
  59. package/dist/src/Tickets/Security.d.ts +4 -271
  60. package/dist/src/Tickets/Security.js +1 -10
  61. package/dist/src/Tickets/SelfService.d.ts +0 -190
  62. package/dist/src/Tickets/Sla.d.ts +0 -140
  63. package/dist/src/Tickets/Workflow.d.ts +0 -20
  64. package/dist/src/Users/UserTrii.d.ts +0 -10
  65. package/dist/src/Users/UserTrii.js +1 -8
  66. package/dist/src/index.d.ts +0 -4
  67. package/dist/src/index.js +1 -5
  68. package/package.json +12 -12
  69. package/dist/src/Automations/Capabilities/Capability.d.ts +0 -81
  70. package/dist/src/Automations/Capabilities/Capability.js +0 -23
  71. package/dist/src/Automations/Capabilities/index.d.ts +0 -1
  72. package/dist/src/Automations/Capabilities/index.js +0 -17
  73. package/dist/src/Automations/Common.d.ts +0 -94
  74. package/dist/src/Automations/Common.js +0 -40
  75. package/dist/src/Automations/Events/Event.d.ts +0 -96
  76. package/dist/src/Automations/Events/Event.js +0 -19
  77. package/dist/src/Automations/Events/index.d.ts +0 -1
  78. package/dist/src/Automations/Events/index.js +0 -17
  79. package/dist/src/Automations/Executions/Execution.d.ts +0 -298
  80. package/dist/src/Automations/Executions/Execution.js +0 -76
  81. package/dist/src/Automations/Executions/Testing.d.ts +0 -166
  82. package/dist/src/Automations/Executions/Testing.js +0 -54
  83. package/dist/src/Automations/Executions/index.d.ts +0 -2
  84. package/dist/src/Automations/Executions/index.js +0 -18
  85. package/dist/src/Automations/Flows/Canvas.d.ts +0 -109
  86. package/dist/src/Automations/Flows/Canvas.js +0 -43
  87. package/dist/src/Automations/Flows/Flow.d.ts +0 -154
  88. package/dist/src/Automations/Flows/Flow.js +0 -58
  89. package/dist/src/Automations/Flows/Requests.d.ts +0 -71
  90. package/dist/src/Automations/Flows/Validation.d.ts +0 -28
  91. package/dist/src/Automations/Flows/Validation.js +0 -9
  92. package/dist/src/Automations/Flows/index.d.ts +0 -4
  93. package/dist/src/Automations/Flows/index.js +0 -20
  94. package/dist/src/Automations/Nodes/Node.d.ts +0 -116
  95. package/dist/src/Automations/Nodes/Node.js +0 -27
  96. package/dist/src/Automations/Nodes/index.d.ts +0 -1
  97. package/dist/src/Automations/Nodes/index.js +0 -17
  98. package/dist/src/Automations/Triggers/Trigger.d.ts +0 -112
  99. package/dist/src/Automations/Triggers/Trigger.js +0 -66
  100. package/dist/src/Automations/Triggers/index.d.ts +0 -1
  101. package/dist/src/Automations/Triggers/index.js +0 -17
  102. package/dist/src/Automations/index.d.ts +0 -7
  103. package/dist/src/Automations/index.js +0 -23
  104. package/dist/src/Chats/Chat.d.ts +0 -61
  105. package/dist/src/Chats/Chat.js +0 -28
  106. package/dist/src/Contacts/CommunicationEndpoint.d.ts +0 -107
  107. package/dist/src/Contacts/CommunicationEndpoint.js +0 -39
  108. package/dist/src/Contacts/CommunicationMethod.d.ts +0 -9
  109. package/dist/src/Contacts/CommunicationMethod.js +0 -2
  110. package/dist/src/Conversations/Assignment.d.ts +0 -181
  111. package/dist/src/Conversations/Assignment.js +0 -4
  112. package/dist/src/Conversations/InboxMongo.d.ts +0 -154
  113. package/dist/src/Conversations/InboxMongo.js +0 -128
  114. package/dist/src/Conversations/InboxProjection.d.ts +0 -162
  115. package/dist/src/Conversations/InboxProjection.js +0 -2
  116. package/dist/src/Conversations/Outbox.d.ts +0 -24
  117. package/dist/src/Conversations/Outbox.js +0 -4
  118. package/dist/src/Conversations/Queue.d.ts +0 -107
  119. package/dist/src/Conversations/Queue.js +0 -4
  120. package/dist/src/Conversations/Routing.d.ts +0 -164
  121. package/dist/src/Conversations/Routing.js +0 -2
  122. package/dist/src/Conversations/Sla.d.ts +0 -227
  123. package/dist/src/Conversations/Sla.js +0 -6
  124. package/dist/src/Conversations/Transfer.d.ts +0 -73
  125. package/dist/src/Conversations/Transfer.js +0 -2
  126. package/dist/src/Events/DomainEventTypes.d.ts +0 -51
  127. package/dist/src/Events/DomainEventTypes.js +0 -49
  128. package/dist/src/Events/index.d.ts +0 -1
  129. package/dist/src/Events/index.js +0 -17
  130. package/dist/src/Forms/API.d.ts +0 -53
  131. package/dist/src/Forms/API.js +0 -2
  132. package/dist/src/Forms/SubmittedForm.d.ts +0 -56
  133. package/dist/src/Forms/SubmittedForm.js +0 -9
  134. package/dist/src/Forms/index.d.ts +0 -2
  135. package/dist/src/Forms/index.js +0 -18
  136. package/dist/src/Presence/AgentPause.d.ts +0 -24
  137. package/dist/src/Presence/AgentPause.js +0 -19
  138. package/dist/src/Presence/QueueParticipation.d.ts +0 -17
  139. package/dist/src/Presence/QueueParticipation.js +0 -2
  140. package/dist/src/Presence/QueueRoutingState.d.ts +0 -27
  141. package/dist/src/Presence/QueueRoutingState.js +0 -9
  142. package/dist/src/Presence/index.d.ts +0 -3
  143. package/dist/src/Presence/index.js +0 -19
  144. /package/dist/{src/Automations/Flows/Requests.js → Conversations/InboxCounters.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { AutomationCustomer, AutomationJsonObject, AutomationJsonSchema, AutomationResourceReference, AutomationSourceApplication } from '../Common';
2
2
  export declare const AUTOMATION_MESSAGE_SCHEMAS: {
3
- readonly DOMAIN_EVENT_V1: "automations.domain-event/v1";
4
- readonly START_REQUEST_V1: "automations.start-request/v1";
5
- readonly EXECUTION_WORK_ITEM_V1: "automations.execution.work-item/v1";
3
+ readonly DOMAIN_EVENT_V1: 'automations.domain-event/v1';
4
+ readonly START_REQUEST_V1: 'automations.start-request/v1';
5
+ readonly EXECUTION_WORK_ITEM_V1: 'automations.execution.work-item/v1';
6
6
  };
7
7
  export interface AutomationEventDefinition {
8
8
  eventType: string;
@@ -9,22 +9,22 @@ export declare enum CommunicationEndpointKind {
9
9
  */
10
10
  export declare const providerIdentityNamespaces: {
11
11
  readonly meta: {
12
- readonly instagramUser: "instagram_user";
13
- readonly messengerUser: "messenger_user";
14
- readonly whatsappUser: "whatsapp_user";
12
+ readonly instagramUser: 'instagram_user';
13
+ readonly messengerUser: 'messenger_user';
14
+ readonly whatsappUser: 'whatsapp_user';
15
15
  };
16
16
  readonly telegram: {
17
- readonly user: "user";
18
- readonly chat: "chat";
17
+ readonly user: 'user';
18
+ readonly chat: 'chat';
19
19
  };
20
20
  readonly trii: {
21
- readonly webchatVisitor: "webchat_visitor";
21
+ readonly webchatVisitor: 'webchat_visitor';
22
22
  };
23
23
  readonly mercadolibre: {
24
- readonly buyer: "buyer";
24
+ readonly buyer: 'buyer';
25
25
  };
26
26
  readonly google: {
27
- readonly businessMessagesUser: "business_messages_user";
27
+ readonly businessMessagesUser: 'business_messages_user';
28
28
  };
29
29
  };
30
30
  export type KnownIdentityProvider = keyof typeof providerIdentityNamespaces;
@@ -212,35 +212,35 @@ export type ConversationAssignmentSnapshot = {
212
212
  offerExpiresAt?: never;
213
213
  assignedAt?: never;
214
214
  acceptedAt?: never;
215
- } | QueuedConversationAssignmentBase & {
215
+ } | (QueuedConversationAssignmentBase & {
216
216
  status: 'queued' | 'routing';
217
217
  owner: NoConversationOwner;
218
218
  offeredAt?: never;
219
219
  offerExpiresAt?: never;
220
220
  assignedAt?: never;
221
221
  acceptedAt?: never;
222
- } | QueuedConversationAssignmentBase & {
222
+ }) | (QueuedConversationAssignmentBase & {
223
223
  status: 'offered';
224
224
  owner: UserConversationOwner;
225
225
  offeredAt: Date;
226
226
  offerExpiresAt?: Date;
227
227
  assignedAt?: never;
228
228
  acceptedAt?: never;
229
- } | QueuedConversationAssignmentBase & {
229
+ }) | (QueuedConversationAssignmentBase & {
230
230
  status: 'assigned';
231
231
  owner: UserConversationOwner;
232
232
  offeredAt?: Date;
233
233
  offerExpiresAt?: Date;
234
234
  assignedAt: Date;
235
235
  acceptedAt?: never;
236
- } | QueuedConversationAssignmentBase & {
236
+ }) | (QueuedConversationAssignmentBase & {
237
237
  status: 'accepted';
238
238
  owner: UserConversationOwner;
239
239
  offeredAt?: Date;
240
240
  offerExpiresAt?: Date;
241
241
  assignedAt: Date;
242
242
  acceptedAt: Date;
243
- };
243
+ });
244
244
  export type ActorType = 'user' | 'contact' | 'bot' | 'flow' | 'system';
245
245
  export type ParticipantRole = 'owner' | 'collaborator' | 'follower' | 'mentioned' | 'supervisor' | 'bot' | 'flow' | 'historical';
246
246
  export type ConversationEventType = 'conversation_created' | 'queued' | 'assigned' | 'accepted' | 'transferred' | 'consult_requested' | 'collaborator_added' | 'participant_added' | 'participant_removed' | 'participation_abandoned' | 'follow_started' | 'follow_stopped' | 'message_sent' | 'message_received' | 'internal_note_added' | 'bot_started' | 'bot_finished' | 'flow_started' | 'flow_finished' | 'status_changed' | 'resolved' | 'reopened' | 'sla_warning' | 'sla_breached' | 'sla_started' | 'sla_paused' | 'sla_resumed' | 'sla_met' | 'sla_overridden';
@@ -274,15 +274,15 @@ interface ConversationSubscriptionBase {
274
274
  * A subscription is persistent product intent. Assignment or participation
275
275
  * visibility must not create it unless an explicit auto-follow policy applies.
276
276
  */
277
- export type ConversationSubscription = ConversationSubscriptionBase & {
277
+ export type ConversationSubscription = (ConversationSubscriptionBase & {
278
278
  status: 'following';
279
279
  followedAt: Date;
280
280
  unfollowedAt?: never;
281
- } | ConversationSubscriptionBase & {
281
+ }) | (ConversationSubscriptionBase & {
282
282
  status: 'unfollowed';
283
283
  followedAt: Date;
284
284
  unfollowedAt: Date;
285
- };
285
+ });
286
286
  export interface PutConversationSubscriptionRequest {
287
287
  expectedVersion?: number;
288
288
  notifications: ConversationSubscriptionNotifications;
@@ -0,0 +1,44 @@
1
+ import { FormItemType } from "../../Common/Channels/Form";
2
+ export declare class DashBoardFormsSummaryInfo {
3
+ formId: string;
4
+ timeStart: Date;
5
+ timeEnd: Date;
6
+ completedForms: number;
7
+ records: DashBoardFormsQuestionSummary[];
8
+ }
9
+ export declare class DashBoardFormsQuestionSummary {
10
+ questionId: string;
11
+ question: string;
12
+ type: FormItemType;
13
+ count: number;
14
+ responses: DashBoardFormsResponseSummary[];
15
+ }
16
+ export declare class DashBoardFormsResponseSummary {
17
+ count: number;
18
+ responseTitle: string;
19
+ }
20
+ export declare class DashBoardFormsSubmittedFormsInfo {
21
+ formId: string;
22
+ timeStart: Date;
23
+ timeEnd: Date;
24
+ completedForms: number;
25
+ records: DashBoardFormsSubmittedFormRecord[];
26
+ }
27
+ export declare class DashBoardFormsSubmittedFormRecord {
28
+ id: string;
29
+ tags: FormTag[];
30
+ responses: DashBoardFormsSubmittedFormResponse[];
31
+ expireAt: Date;
32
+ createdAt: Date;
33
+ completedAt: Date;
34
+ }
35
+ export declare class DashBoardFormsSubmittedFormResponse {
36
+ questionId: string;
37
+ question: string;
38
+ type: FormItemType;
39
+ response: any;
40
+ }
41
+ export declare class FormTag {
42
+ name: string;
43
+ value: string;
44
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormTag = exports.DashBoardFormsSubmittedFormResponse = exports.DashBoardFormsSubmittedFormRecord = exports.DashBoardFormsSubmittedFormsInfo = exports.DashBoardFormsResponseSummary = exports.DashBoardFormsQuestionSummary = exports.DashBoardFormsSummaryInfo = void 0;
4
+ class DashBoardFormsSummaryInfo {
5
+ }
6
+ exports.DashBoardFormsSummaryInfo = DashBoardFormsSummaryInfo;
7
+ class DashBoardFormsQuestionSummary {
8
+ }
9
+ exports.DashBoardFormsQuestionSummary = DashBoardFormsQuestionSummary;
10
+ class DashBoardFormsResponseSummary {
11
+ }
12
+ exports.DashBoardFormsResponseSummary = DashBoardFormsResponseSummary;
13
+ class DashBoardFormsSubmittedFormsInfo {
14
+ }
15
+ exports.DashBoardFormsSubmittedFormsInfo = DashBoardFormsSubmittedFormsInfo;
16
+ class DashBoardFormsSubmittedFormRecord {
17
+ }
18
+ exports.DashBoardFormsSubmittedFormRecord = DashBoardFormsSubmittedFormRecord;
19
+ class DashBoardFormsSubmittedFormResponse {
20
+ }
21
+ exports.DashBoardFormsSubmittedFormResponse = DashBoardFormsSubmittedFormResponse;
22
+ class FormTag {
23
+ }
24
+ exports.FormTag = FormTag;
@@ -0,0 +1,18 @@
1
+ export interface InboxCounters {
2
+ spaceId: string;
3
+ userId: string;
4
+ pending: number;
5
+ following: number;
6
+ slaWarning: number;
7
+ slaBreached: number;
8
+ teamSlaBreached: number;
9
+ finalized: number;
10
+ spam: number;
11
+ tags: TagCount[];
12
+ updatedAt: Date;
13
+ }
14
+ export interface TagCount {
15
+ tagId: string;
16
+ name: string;
17
+ count: number;
18
+ }
@@ -11,7 +11,7 @@ export declare const INBOX_PROCESSOR_RECEIPTS_COLLECTION = "inbox_processor_rece
11
11
  * InboxAudienceResolver receives as input.
12
12
  */
13
13
  export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
14
- readonly name: "uq_subscription_user_conversation";
14
+ readonly name: 'uq_subscription_user_conversation';
15
15
  readonly key: {
16
16
  readonly spaceId: 1;
17
17
  readonly userId: 1;
@@ -19,7 +19,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
19
19
  };
20
20
  readonly unique: true;
21
21
  }, {
22
- readonly name: "ix_subscription_conversation_followers";
22
+ readonly name: 'ix_subscription_conversation_followers';
23
23
  readonly key: {
24
24
  readonly spaceId: 1;
25
25
  readonly conversationId: 1;
@@ -35,7 +35,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
35
35
  * must not combine multiple array paths.
36
36
  */
37
37
  export declare const USER_INBOX_ITEM_INDEXES: readonly [{
38
- readonly name: "uq_inbox_item_user_conversation";
38
+ readonly name: 'uq_inbox_item_user_conversation';
39
39
  readonly key: {
40
40
  readonly spaceId: 1;
41
41
  readonly userId: 1;
@@ -43,7 +43,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
43
43
  };
44
44
  readonly unique: true;
45
45
  }, {
46
- readonly name: "ix_inbox_view_activity";
46
+ readonly name: 'ix_inbox_view_activity';
47
47
  readonly key: {
48
48
  readonly spaceId: 1;
49
49
  readonly userId: 1;
@@ -53,7 +53,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
53
53
  readonly id: -1;
54
54
  };
55
55
  }, {
56
- readonly name: "ix_inbox_view_priority";
56
+ readonly name: 'ix_inbox_view_priority';
57
57
  readonly key: {
58
58
  readonly spaceId: 1;
59
59
  readonly userId: 1;
@@ -64,7 +64,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
64
64
  readonly id: -1;
65
65
  };
66
66
  }, {
67
- readonly name: "ix_inbox_view_status_activity";
67
+ readonly name: 'ix_inbox_view_status_activity';
68
68
  readonly key: {
69
69
  readonly spaceId: 1;
70
70
  readonly userId: 1;
@@ -74,7 +74,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
74
74
  readonly id: -1;
75
75
  };
76
76
  }, {
77
- readonly name: "ix_inbox_view_queue_activity";
77
+ readonly name: 'ix_inbox_view_queue_activity';
78
78
  readonly key: {
79
79
  readonly spaceId: 1;
80
80
  readonly userId: 1;
@@ -91,7 +91,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
91
91
  * spaceId + userId prefix.
92
92
  */
93
93
  export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
94
- readonly name: "uq_inbox_counter_user_view";
94
+ readonly name: 'uq_inbox_counter_user_view';
95
95
  readonly key: {
96
96
  readonly spaceId: 1;
97
97
  readonly userId: 1;
@@ -103,7 +103,7 @@ export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
103
103
  * MongoDB indexes for durable processor idempotency receipts.
104
104
  */
105
105
  export declare const INBOX_PROCESSOR_RECEIPT_INDEXES: readonly [{
106
- readonly name: "uq_inbox_processor_source_scope";
106
+ readonly name: 'uq_inbox_processor_source_scope';
107
107
  readonly key: {
108
108
  readonly processor: 1;
109
109
  readonly sourceEventId: 1;
@@ -144,11 +144,11 @@ interface InboxPageQueryBase {
144
144
  viewId: InboxViewId;
145
145
  limit: number;
146
146
  }
147
- export type InboxPageQuery = InboxPageQueryBase & {
147
+ export type InboxPageQuery = (InboxPageQueryBase & {
148
148
  sort: 'activity';
149
149
  cursor?: InboxActivityCursor;
150
- } | InboxPageQueryBase & {
150
+ }) | (InboxPageQueryBase & {
151
151
  sort: 'priority';
152
152
  cursor?: InboxPriorityCursor;
153
- };
153
+ });
154
154
  export {};
@@ -26,27 +26,27 @@ export interface PartyOwnerAssigneeResolver {
26
26
  mode: 'prefer' | 'required';
27
27
  }
28
28
  export type QueueOwnerAssigneeResolver = PartyOwnerAssigneeResolver;
29
- export type QueueRoutingPolicy = QueueRoutingPolicyBase & {
29
+ export type QueueRoutingPolicy = (QueueRoutingPolicyBase & {
30
30
  distributionMode: 'shared';
31
31
  strategy?: never;
32
32
  ownerResolver?: never;
33
- } | QueueRoutingPolicyBase & {
33
+ }) | (QueueRoutingPolicyBase & {
34
34
  distributionMode: 'manual_pull';
35
35
  strategy?: never;
36
36
  ownerResolver?: never;
37
- } | QueueRoutingPolicyBase & {
37
+ }) | (QueueRoutingPolicyBase & {
38
38
  distributionMode: 'exclusive';
39
39
  strategy: QueueRoutingStrategy;
40
- ownerResolver?: undefined | PartyOwnerAssigneeResolver & {
40
+ ownerResolver?: undefined | (PartyOwnerAssigneeResolver & {
41
41
  mode: 'prefer';
42
- };
43
- } | QueueRoutingPolicyBase & {
42
+ });
43
+ }) | (QueueRoutingPolicyBase & {
44
44
  distributionMode: 'exclusive';
45
45
  strategy?: never;
46
46
  ownerResolver: PartyOwnerAssigneeResolver & {
47
47
  mode: 'required';
48
48
  };
49
- };
49
+ });
50
50
  export type QueueRoutingConfig = QueueRoutingPolicy & {
51
51
  queueId: string;
52
52
  spaceId: string;
@@ -133,15 +133,15 @@ export type PartyOwnerAssigneeEvaluation = {
133
133
  }>;
134
134
  outcome: 'selected';
135
135
  nextStep?: never;
136
- } | FailedPartyOwnerEvaluation & {
136
+ } | (FailedPartyOwnerEvaluation & {
137
137
  type: 'party_owner';
138
138
  mode: 'prefer';
139
139
  nextStep: 'strategy';
140
- } | FailedPartyOwnerEvaluation & {
140
+ }) | (FailedPartyOwnerEvaluation & {
141
141
  type: 'party_owner';
142
142
  mode: 'required';
143
143
  nextStep: 'fallback';
144
- };
144
+ });
145
145
  export interface RoutingDecision {
146
146
  decisionId: string;
147
147
  spaceId: string;
@@ -9,39 +9,39 @@
9
9
  */
10
10
  export declare const DOMAIN_EVENT_TYPES: {
11
11
  readonly AUTOMATIONS: {
12
- readonly MANUAL: "automations.manual";
13
- readonly SCHEDULE_TICK: "automations.schedule.tick";
12
+ readonly MANUAL: 'automations.manual';
13
+ readonly SCHEDULE_TICK: 'automations.schedule.tick';
14
14
  };
15
15
  readonly CONTACTS: {
16
- readonly CONTACT_CREATED: "contacts.contact.created";
17
- readonly BUSINESS_CREATED: "contacts.business.created";
18
- readonly PROPERTY_CHANGED: "contacts.property.changed";
19
- readonly TAG_ADDED: "contacts.tag.added";
20
- readonly TAG_REMOVED: "contacts.tag.removed";
21
- readonly PROPERTY_DATE_REACHED: "contacts.property.date_reached";
16
+ readonly CONTACT_CREATED: 'contacts.contact.created';
17
+ readonly BUSINESS_CREATED: 'contacts.business.created';
18
+ readonly PROPERTY_CHANGED: 'contacts.property.changed';
19
+ readonly TAG_ADDED: 'contacts.tag.added';
20
+ readonly TAG_REMOVED: 'contacts.tag.removed';
21
+ readonly PROPERTY_DATE_REACHED: 'contacts.property.date_reached';
22
22
  };
23
23
  readonly CONVERSATIONS: {
24
- readonly CONVERSATION_CREATED: "conversations.conversation.created";
25
- readonly CONVERSATION_CLOSED: "conversations.conversation.closed";
26
- readonly MESSAGE_RECEIVED: "conversations.message.received";
27
- readonly AGENT_INTERVENED: "conversations.agent.intervened";
24
+ readonly CONVERSATION_CREATED: 'conversations.conversation.created';
25
+ readonly CONVERSATION_CLOSED: 'conversations.conversation.closed';
26
+ readonly MESSAGE_RECEIVED: 'conversations.message.received';
27
+ readonly AGENT_INTERVENED: 'conversations.agent.intervened';
28
28
  };
29
29
  readonly TICKETS: {
30
- readonly CREATED: "tickets.created";
31
- readonly STATUS_CHANGED: "tickets.status_changed";
32
- readonly PRIORITY_CHANGED: "tickets.priority_changed";
33
- readonly ASSIGNED: "tickets.assigned";
34
- readonly CUSTOMER_REPLIED: "tickets.customer_replied";
35
- readonly SLA_WARNING: "tickets.sla_warning";
36
- readonly SLA_BREACHED: "tickets.sla_breached";
37
- readonly CLOSED: "tickets.closed";
38
- readonly REOPENED: "tickets.reopened";
30
+ readonly CREATED: 'tickets.created';
31
+ readonly STATUS_CHANGED: 'tickets.status_changed';
32
+ readonly PRIORITY_CHANGED: 'tickets.priority_changed';
33
+ readonly ASSIGNED: 'tickets.assigned';
34
+ readonly CUSTOMER_REPLIED: 'tickets.customer_replied';
35
+ readonly SLA_WARNING: 'tickets.sla_warning';
36
+ readonly SLA_BREACHED: 'tickets.sla_breached';
37
+ readonly CLOSED: 'tickets.closed';
38
+ readonly REOPENED: 'tickets.reopened';
39
39
  };
40
40
  readonly FORMS: {
41
- readonly SUBMITTED: "forms.submitted";
41
+ readonly SUBMITTED: 'forms.submitted';
42
42
  };
43
43
  readonly INTEGRATIONS: {
44
- readonly WEBHOOK_RECEIVED: "integrations.webhook.received";
44
+ readonly WEBHOOK_RECEIVED: 'integrations.webhook.received';
45
45
  };
46
46
  };
47
47
  type Values<T> = T extends unknown ? T[keyof T] : never;
@@ -38,11 +38,73 @@ export interface ITicketProperty {
38
38
  nameKey: string;
39
39
  value: TicketPropertyValue;
40
40
  }
41
+ /**
42
+ * Referencia liviana de una etiqueta tal como aparece embebida en un ticket
43
+ * (solo lo necesario para pintarla). El catálogo administrable usa ITicketTag.
44
+ */
41
45
  export interface ITicketTagInfo {
42
46
  id: string;
43
47
  name: string;
44
48
  color?: string;
45
49
  }
50
+ /**
51
+ * Etiqueta administrable del catálogo. Shape propio (no extiende
52
+ * ITicketAuditedEntity a propósito): solo expone lo necesario para administrar
53
+ * el catálogo, sin `spaceId` ni autores (createdBy/updatedBy), que quedan
54
+ * internos al backend. Las fechas son opcionales porque una etiqueta recién
55
+ * creada aún no tiene `updatedAt`. La unicidad de nombre (con espacios
56
+ * normalizados e insensible a mayúsculas/minúsculas) es responsabilidad del
57
+ * backend, no del contrato.
58
+ */
59
+ export interface ITicketTag {
60
+ id: string;
61
+ name: string;
62
+ color?: string;
63
+ description?: string;
64
+ enabled: boolean;
65
+ createdAt?: Date;
66
+ updatedAt?: Date;
67
+ }
68
+ export interface ICreateTicketTagDto {
69
+ name: string;
70
+ color?: string;
71
+ description?: string;
72
+ }
73
+ export interface IUpdateTicketTagDto {
74
+ name?: string;
75
+ color?: string | null;
76
+ description?: string | null;
77
+ }
78
+ /**
79
+ * Proyección de consulta: el catálogo con la cantidad de usos y la última
80
+ * utilización. No se persiste en la entidad; el backend la calcula por join
81
+ * sobre las asociaciones ticket↔etiqueta.
82
+ */
83
+ export interface ITicketTagWithUsage extends ITicketTag {
84
+ usageCount?: number;
85
+ lastUsedAt?: Date;
86
+ }
87
+ /**
88
+ * Dependencias de una etiqueta: dónde se usa. Sirve para mostrar el impacto
89
+ * antes de desactivarla o eliminarla.
90
+ */
91
+ export interface ITicketTagDependencies {
92
+ tagId: string;
93
+ tickets: number;
94
+ views: number;
95
+ automations: number;
96
+ macros: number;
97
+ }
98
+ /** Reemplaza/fusiona una etiqueta por otra: reasigna los usos y desactiva la fuente. */
99
+ export interface IMergeTicketTagsDto {
100
+ sourceTagId: string;
101
+ targetTagId: string;
102
+ }
103
+ export interface IMergeTicketTagsResult {
104
+ targetTagId: string;
105
+ mergedSourceTagId: string;
106
+ reassignedUsages: number;
107
+ }
46
108
  export interface ITicketExternalReference {
47
109
  system: string;
48
110
  externalId: string;