@trii/types 2.10.729 → 2.10.731

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 (163) hide show
  1. package/dist/AI/MapPolygon.d.ts +22 -0
  2. package/dist/Conversations/Classifications/ClassificationTaxonomy.d.ts +67 -0
  3. package/dist/Conversations/Classifications/ClassificationTaxonomy.js +5 -0
  4. package/dist/Conversations/Classifications/ConversationClassificationEvaluation.d.ts +67 -0
  5. package/dist/Conversations/Classifications/ConversationClassificationEvaluation.js +2 -0
  6. package/dist/Conversations/Classifications/ConversationClassificationEvents.d.ts +29 -0
  7. package/dist/Conversations/Classifications/ConversationClassificationEvents.js +8 -0
  8. package/dist/Conversations/Classifications/index.d.ts +3 -0
  9. package/dist/{src/Automations/Triggers → Conversations/Classifications}/index.js +3 -1
  10. package/dist/Conversations/DashBoard/dashboardForms.d.ts +44 -0
  11. package/dist/Conversations/DashBoard/dashboardForms.js +24 -0
  12. package/dist/Conversations/Flows/Nodes/NodeAIChatBot.d.ts +0 -0
  13. package/dist/Conversations/Flows/Nodes/NodeAIChatBot.js +0 -0
  14. package/dist/Conversations/Flows/Nodes/NodeApi.d.ts +2 -0
  15. package/dist/Conversations/Flows/Nodes/NodeApi.js +183 -0
  16. package/dist/Conversations/Flows/Nodes/NodeBotIA.d.ts +15 -0
  17. package/dist/Conversations/Flows/Nodes/NodeBotIA.js +6 -0
  18. package/dist/Conversations/Flows/Nodes/NodeChatBotIA.d.ts +15 -0
  19. package/dist/Conversations/Flows/Nodes/NodeChatBotIA.js +6 -0
  20. package/dist/Conversations/Flows/Nodes/NodeConditional.d.ts +0 -0
  21. package/dist/Conversations/Flows/Nodes/NodeConditional.js +0 -0
  22. package/dist/Conversations/Flows/Nodes/NodeContactSearch.d.ts +0 -0
  23. package/dist/Conversations/Flows/Nodes/NodeContactSearch.js +0 -0
  24. package/dist/Conversations/Flows/Nodes/NodeContactUpdate.d.ts +0 -0
  25. package/dist/Conversations/Flows/Nodes/NodeContactUpdate.js +0 -0
  26. package/dist/Conversations/Flows/Nodes/NodeConversationAssignTo.d.ts +0 -0
  27. package/dist/Conversations/Flows/Nodes/NodeConversationAssignTo.js +0 -0
  28. package/dist/Conversations/Flows/Nodes/NodeConversationFinalize.d.ts +0 -0
  29. package/dist/Conversations/Flows/Nodes/NodeConversationFinalize.js +0 -0
  30. package/dist/Conversations/Flows/Nodes/NodeConversationUpdate.d.ts +0 -0
  31. package/dist/Conversations/Flows/Nodes/NodeConversationUpdate.js +0 -0
  32. package/dist/Conversations/Flows/Nodes/NodeFillForm.d.ts +0 -0
  33. package/dist/Conversations/Flows/Nodes/NodeFillForm.js +0 -0
  34. package/dist/Conversations/Flows/Nodes/NodeFillTicket.d.ts +1 -0
  35. package/dist/Conversations/Flows/Nodes/NodeFillTicket.js +9 -0
  36. package/dist/Conversations/Flows/Nodes/NodeGoogleCalendar.d.ts +20 -0
  37. package/dist/Conversations/Flows/Nodes/NodeGoogleCalendar.js +2 -0
  38. package/dist/Conversations/Flows/Nodes/NodeGoogleMaps copy.d.ts +12 -0
  39. package/dist/Conversations/Flows/Nodes/NodeGoogleMaps copy.js +6 -0
  40. package/dist/Conversations/Flows/Nodes/NodeGoogleMaps.d.ts +15 -0
  41. package/dist/Conversations/Flows/Nodes/NodeGoogleMaps.js +2 -0
  42. package/dist/Conversations/Flows/Nodes/NodeMsgReply.d.ts +0 -0
  43. package/dist/Conversations/Flows/Nodes/NodeMsgReply.js +0 -0
  44. package/dist/Conversations/Flows/Nodes/NodeMsgSend.d.ts +0 -0
  45. package/dist/Conversations/Flows/Nodes/NodeMsgSend.js +0 -0
  46. package/dist/Conversations/Flows/Nodes/NodeMsgText.d.ts +1 -0
  47. package/dist/Conversations/Flows/Nodes/NodeMsgText.js +27 -0
  48. package/dist/Conversations/Flows/Nodes/NodeMsgWaitResponse.d.ts +0 -0
  49. package/dist/Conversations/Flows/Nodes/NodeMsgWaitResponse.js +0 -0
  50. package/dist/Conversations/Flows/Nodes/NodeRedirect.d.ts +0 -0
  51. package/dist/Conversations/Flows/Nodes/NodeRedirect.js +0 -0
  52. package/dist/Conversations/Flows/Nodes/NodeSendEmail.d.ts +0 -0
  53. package/dist/Conversations/Flows/Nodes/NodeSendEmail.js +0 -0
  54. package/dist/Conversations/Flows/Nodes/NodeSqlQuery.d.ts +0 -0
  55. package/dist/Conversations/Flows/Nodes/NodeSqlQuery.js +0 -0
  56. package/dist/Conversations/Flows/Nodes/NodeStart.d.ts +0 -0
  57. package/dist/Conversations/Flows/Nodes/NodeStart.js +0 -0
  58. package/dist/Conversations/Flows/Nodes/NodeTimeScheduleControl.d.ts +0 -0
  59. package/dist/Conversations/Flows/Nodes/NodeTimeScheduleControl.js +0 -0
  60. package/dist/Conversations/Flows/Nodes/NodeTimeTimer.d.ts +0 -0
  61. package/dist/Conversations/Flows/Nodes/NodeTimeTimer.js +0 -0
  62. package/dist/Conversations/Flows/Nodes/NodeTimeWaitUntil.d.ts +0 -0
  63. package/dist/Conversations/Flows/Nodes/NodeTimeWaitUntil.js +0 -0
  64. package/dist/Conversations/Flows/Nodes/NodeToolCalculator.d.ts +2 -0
  65. package/dist/Conversations/Flows/Nodes/NodeToolCalculator.js +37 -0
  66. package/dist/Conversations/Flows/Nodes/NodeToolContacts.d.ts +2 -0
  67. package/dist/Conversations/Flows/Nodes/NodeToolContacts.js +59 -0
  68. package/dist/Conversations/Flows/Nodes/NodeToolFunction.d.ts +2 -0
  69. package/dist/Conversations/Flows/Nodes/NodeToolFunction.js +45 -0
  70. package/dist/Conversations/Flows/Nodes/NodeToolGoogleCalendar.d.ts +2 -0
  71. package/dist/Conversations/Flows/Nodes/NodeToolGoogleCalendar.js +87 -0
  72. package/dist/Conversations/Flows/Nodes/NodeToolGoogleMaps.d.ts +1 -0
  73. package/dist/Conversations/Flows/Nodes/NodeToolGoogleMaps.js +2 -0
  74. package/dist/Conversations/Flows/Nodes/NodeToolKnowledge.d.ts +2 -0
  75. package/dist/Conversations/Flows/Nodes/NodeToolKnowledge.js +52 -0
  76. package/dist/Conversations/Flows/Nodes/NodeToolMapsCheckPolygon.d.ts +2 -0
  77. package/dist/Conversations/Flows/Nodes/NodeToolMapsCheckPolygon.js +59 -0
  78. package/dist/Conversations/Flows/Nodes/NodeToolMcpClient.d.ts +2 -0
  79. package/dist/Conversations/Flows/Nodes/NodeToolMcpClient.js +45 -0
  80. package/dist/Conversations/Flows/Nodes/NodeToolShoppingCart.d.ts +2 -0
  81. package/dist/Conversations/Flows/Nodes/NodeToolShoppingCart.js +81 -0
  82. package/dist/Conversations/Flows/Nodes/index.d.ts +24 -0
  83. package/dist/Conversations/Flows/Nodes/index.js +40 -0
  84. package/dist/Conversations/InboxCounters.d.ts +18 -0
  85. package/dist/Conversations/InboxCounters.js +2 -0
  86. package/dist/Conversations/index.d.ts +1 -0
  87. package/dist/Conversations/index.js +1 -0
  88. package/dist/Presence/ChannelRoutingState.d.ts +17 -0
  89. package/dist/Presence/ChannelRoutingState.js +9 -0
  90. package/dist/Tickets/AccessLevel.d.ts +5 -0
  91. package/dist/Tickets/AccessLevel.js +9 -0
  92. package/dist/Tickets/Common.d.ts +62 -0
  93. package/dist/Tickets/CustomerNotification.d.ts +192 -0
  94. package/dist/Tickets/CustomerNotification.js +54 -0
  95. package/dist/Tickets/Notes.d.ts +13 -0
  96. package/dist/Tickets/Notes.js +10 -0
  97. package/dist/Tickets/QuickResponse.d.ts +64 -0
  98. package/dist/Tickets/QuickResponse.js +41 -0
  99. package/dist/Tickets/Task.d.ts +11 -0
  100. package/dist/Tickets/Ticket.d.ts +2 -0
  101. package/dist/Tickets/index.d.ts +3 -0
  102. package/dist/Tickets/index.js +3 -0
  103. package/dist/src/Automations/Capabilities/Capability.d.ts +0 -33
  104. package/dist/src/Automations/Capabilities/Capability.js +1 -15
  105. package/dist/src/Automations/Common.d.ts +0 -47
  106. package/dist/src/Automations/Common.js +0 -22
  107. package/dist/src/Automations/Events/Event.d.ts +4 -59
  108. package/dist/src/Automations/Events/Event.js +0 -17
  109. package/dist/src/Automations/Executions/Execution.d.ts +4 -188
  110. package/dist/src/Automations/Executions/Execution.js +1 -54
  111. package/dist/src/Automations/Executions/index.d.ts +0 -1
  112. package/dist/src/Automations/Executions/index.js +0 -1
  113. package/dist/src/Automations/Flows/Canvas.d.ts +4 -27
  114. package/dist/src/Automations/Flows/Canvas.js +1 -10
  115. package/dist/src/Automations/Flows/Flow.d.ts +3 -55
  116. package/dist/src/Automations/Flows/Flow.js +1 -25
  117. package/dist/src/Automations/Nodes/Node.d.ts +3 -44
  118. package/dist/src/Automations/Nodes/Node.js +1 -10
  119. package/dist/src/Automations/index.d.ts +0 -1
  120. package/dist/src/Automations/index.js +0 -1
  121. package/dist/src/Common/Channels/Channel.d.ts +4 -6
  122. package/dist/src/Common/Channels/Email.d.ts +0 -1
  123. package/dist/src/Common/Channels/Facebook.d.ts +0 -1
  124. package/dist/src/Common/Channels/Form.d.ts +0 -1
  125. package/dist/src/Common/Channels/GoogleBusiness.d.ts +0 -1
  126. package/dist/src/Common/Channels/Instagram.d.ts +0 -1
  127. package/dist/src/Common/Channels/MercadoLibre.d.ts +0 -1
  128. package/dist/src/Common/Channels/WebChat.d.ts +0 -1
  129. package/dist/src/Contacts/index.d.ts +0 -2
  130. package/dist/src/Contacts/index.js +0 -2
  131. package/dist/src/Conversations/Assignment.d.ts +1 -101
  132. package/dist/src/Conversations/Conversation.d.ts +0 -169
  133. package/dist/src/PublicAPI/apiKey.d.ts +3 -92
  134. package/dist/src/PublicAPI/apiKey.js +0 -27
  135. package/dist/src/Tickets/AI.d.ts +2 -50
  136. package/dist/src/Tickets/AdvancedApi.d.ts +2 -142
  137. package/dist/src/Tickets/AdvancedApi.js +1 -28
  138. package/dist/src/Tickets/Approval.d.ts +4 -20
  139. package/dist/src/Tickets/Automation.d.ts +2 -46
  140. package/dist/src/Tickets/Dashboard.d.ts +0 -1
  141. package/dist/src/Tickets/Fields.d.ts +0 -3
  142. package/dist/src/Tickets/Routing.d.ts +3 -105
  143. package/dist/src/Tickets/Routing.js +1 -7
  144. package/dist/src/Tickets/Security.d.ts +4 -271
  145. package/dist/src/Tickets/Security.js +1 -10
  146. package/dist/src/Tickets/SelfService.d.ts +0 -190
  147. package/dist/src/Tickets/Sla.d.ts +0 -140
  148. package/dist/src/index.d.ts +0 -1
  149. package/dist/src/index.js +1 -2
  150. package/package.json +12 -12
  151. package/dist/src/Automations/Executions/Testing.d.ts +0 -166
  152. package/dist/src/Automations/Executions/Testing.js +0 -54
  153. package/dist/src/Automations/Triggers/Trigger.d.ts +0 -112
  154. package/dist/src/Automations/Triggers/Trigger.js +0 -66
  155. package/dist/src/Automations/Triggers/index.d.ts +0 -1
  156. package/dist/src/Contacts/CommunicationEndpoint.d.ts +0 -107
  157. package/dist/src/Contacts/CommunicationEndpoint.js +0 -39
  158. package/dist/src/Contacts/CommunicationMethod.d.ts +0 -9
  159. package/dist/src/Events/DomainEventTypes.d.ts +0 -51
  160. package/dist/src/Events/DomainEventTypes.js +0 -49
  161. package/dist/src/Events/index.d.ts +0 -1
  162. package/dist/src/Events/index.js +0 -17
  163. /package/dist/{src/Contacts/CommunicationMethod.js → AI/MapPolygon.js} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -19,3 +19,4 @@ export * from './Queue';
19
19
  export * from './Routing';
20
20
  export * from './Sla';
21
21
  export * from './Transfer';
22
+ export * from './Classifications';
@@ -58,3 +58,4 @@ __exportStar(require("./Queue"), exports);
58
58
  __exportStar(require("./Routing"), exports);
59
59
  __exportStar(require("./Sla"), exports);
60
60
  __exportStar(require("./Transfer"), exports);
61
+ __exportStar(require("./Classifications"), exports);
@@ -0,0 +1,17 @@
1
+ import { ChannelType } from "../Common/Channels/ChannelType";
2
+ export interface ChannelRoutingState {
3
+ spaceId: string;
4
+ userId: string;
5
+ channelType: ChannelType;
6
+ isEligible: boolean;
7
+ presenceStatus: RoutingPresenceStatus;
8
+ activeJobCount: number;
9
+ maxCapacity: number;
10
+ notRespondingDetectedAt?: Date;
11
+ updatedAt: Date;
12
+ }
13
+ export declare enum RoutingPresenceStatus {
14
+ IDLE = 0,
15
+ INTERACTING = 1,
16
+ BUSY = 2
17
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoutingPresenceStatus = void 0;
4
+ var RoutingPresenceStatus;
5
+ (function (RoutingPresenceStatus) {
6
+ RoutingPresenceStatus[RoutingPresenceStatus["IDLE"] = 0] = "IDLE";
7
+ RoutingPresenceStatus[RoutingPresenceStatus["INTERACTING"] = 1] = "INTERACTING";
8
+ RoutingPresenceStatus[RoutingPresenceStatus["BUSY"] = 2] = "BUSY";
9
+ })(RoutingPresenceStatus || (exports.RoutingPresenceStatus = RoutingPresenceStatus = {}));
@@ -0,0 +1,5 @@
1
+ export declare enum TicketAccessLevel {
2
+ ALL = "ALL",
3
+ GROUP = "GROUP",
4
+ AGENT = "AGENT"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketAccessLevel = void 0;
4
+ var TicketAccessLevel;
5
+ (function (TicketAccessLevel) {
6
+ TicketAccessLevel["ALL"] = "ALL";
7
+ TicketAccessLevel["GROUP"] = "GROUP";
8
+ TicketAccessLevel["AGENT"] = "AGENT";
9
+ })(TicketAccessLevel || (exports.TicketAccessLevel = TicketAccessLevel = {}));
@@ -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;
@@ -0,0 +1,192 @@
1
+ import type { ChannelType } from "../Common/Channels/ChannelType";
2
+ import type { ITicketAuditedEntity } from "./Common";
3
+ import type { TicketNotificationEvent } from "./SelfService";
4
+ /**
5
+ * Ticket-relative recipient roles for CUSTOMER notifications only.
6
+ * Intentionally excludes any agent/internal-group role — this is the
7
+ * enforcement point that keeps internal recipients out of customer-facing
8
+ * notifications.
9
+ */
10
+ export declare enum CustomerNotificationRecipientRole {
11
+ REQUESTER = "REQUESTER",
12
+ PARTICIPANT_CONTACTS = "PARTICIPANT_CONTACTS",
13
+ ACTION_ASSIGNEE = "ACTION_ASSIGNEE",
14
+ EXTERNAL_APPROVER = "EXTERNAL_APPROVER",
15
+ /** Members of the organization that have access to the ticket. */
16
+ ORGANIZATION_MEMBERS = "ORGANIZATION_MEMBERS",
17
+ /** Other external recipients defined by the domain/integration. */
18
+ OTHER_EXTERNAL_CONTACTS = "OTHER_EXTERNAL_CONTACTS"
19
+ }
20
+ /** Per event+channel+locale template selection. `templateId` points at a template SET id; `(channel, locale)` selects the VARIANT inside that set. */
21
+ export interface ICustomerNotificationTemplateBinding {
22
+ channel: ChannelType;
23
+ locale: string;
24
+ templateId: string;
25
+ }
26
+ /** Granular flags describing what the CUSTOMER may do for this event. Mandatory events MUST keep `canDisable: false`. */
27
+ export interface ICustomerNotificationEventCustomerPersonalization {
28
+ /** Customer may turn this event off entirely. */
29
+ canDisable: boolean;
30
+ /** Customer may pick which channels this event notifies them on. */
31
+ canChooseChannels: boolean;
32
+ /** Customer may mute this event for a single ticket. */
33
+ canMutePerTicket: boolean;
34
+ /** Customer may restore this event to the inherited/general values. */
35
+ canRestoreDefaults: boolean;
36
+ }
37
+ /** One configured `TicketNotificationEvent` inside a policy. */
38
+ export interface ICustomerNotificationEventConfig {
39
+ event: TicketNotificationEvent;
40
+ enabled: boolean;
41
+ /** Mandatory events cannot be disabled or muted. */
42
+ mandatory: boolean;
43
+ customerPersonalization: ICustomerNotificationEventCustomerPersonalization;
44
+ recipients: CustomerNotificationRecipientRole[];
45
+ channels: ChannelType[];
46
+ /**
47
+ * Admin-chosen fallback channel used ONLY when the contact lacks the data
48
+ * required for the primary channel — per-event, explicit, NOT an automatic
49
+ * global fallback. `null` = no alternative; the resolver surfaces a WARNING
50
+ * instead of substituting silently.
51
+ */
52
+ alternativeChannel: ChannelType | null;
53
+ templates: ICustomerNotificationTemplateBinding[];
54
+ }
55
+ /**
56
+ * Space-general (`portalId: null`) or per-portal (`portalId: string`)
57
+ * customer notification policy. Persisted as a single row with `events` as a
58
+ * JSONB array.
59
+ */
60
+ export interface ITicketCustomerNotificationPolicy extends ITicketAuditedEntity {
61
+ portalId: string | null;
62
+ enabled: boolean;
63
+ /** Policy display name. */
64
+ name?: string;
65
+ /** Policy display description. */
66
+ description?: string;
67
+ /**
68
+ * Policy-level master switch. When `false`, the resolver ignores the
69
+ * contact's `ITicketCustomerNotificationPreference` ENTIRELY for this
70
+ * policy — the general/portal policy's own decisions always apply,
71
+ * ticket-mute is never honored, and no event resolves with
72
+ * `origin: 'individual'`/`'muted'`. `true` (the column default) preserves
73
+ * default behavior.
74
+ */
75
+ respectIndividualPreferences: boolean;
76
+ defaultLocale: string;
77
+ fallbackLocale: string;
78
+ senderName?: string;
79
+ /**
80
+ * Opaque reference to a conversations-service email `IChannel.id`. Stored
81
+ * only; never resolved or validated against the conversations service.
82
+ * Kept as the EMAIL-only fallback for backward-compat — prefer
83
+ * `senderIdentityByChannel[EMAIL]` going forward.
84
+ */
85
+ senderIdentityId?: string;
86
+ /**
87
+ * Per-channel opaque sender-identity id override — a channel id (same
88
+ * `IChannel.id` reference as `senderIdentityId`) keyed by `ChannelType`.
89
+ */
90
+ senderIdentityByChannel?: Partial<Record<ChannelType, string>>;
91
+ replyToAddress?: string;
92
+ events: ICustomerNotificationEventConfig[];
93
+ }
94
+ /** HTML/TEXT content type. Numeric values mirror Marketing's shape by design. */
95
+ export declare enum TemplateContentType {
96
+ HTML = 1,
97
+ TEXT = 2
98
+ }
99
+ /** Per-variant lifecycle status. `DISABLED` keeps the variant persisted while making the `DISABLED_TEMPLATE` warning fire for any event still referencing it. */
100
+ export declare enum TemplateVariantStatus {
101
+ ENABLED = "ENABLED",
102
+ DISABLED = "DISABLED"
103
+ }
104
+ /**
105
+ * One channel+locale variant of a template set's content. `name` is an
106
+ * INTERNAL, admin-only label — never rendered to the customer. `signature` is
107
+ * per-variant free text.
108
+ */
109
+ export interface ICustomerNotificationTemplateVariant {
110
+ channel: ChannelType;
111
+ locale: string;
112
+ /** Internal name, never shown to the customer. */
113
+ name: string;
114
+ subject?: string;
115
+ content: string;
116
+ signature?: string;
117
+ /** Variable keys (from the vetted catalog) referenced by this variant's content. */
118
+ allowedVariables: string[];
119
+ contentType: TemplateContentType;
120
+ status: TemplateVariantStatus;
121
+ version: number;
122
+ }
123
+ /** One template SET per `TicketNotificationEvent`, holding every channel+locale VARIANT for that event. */
124
+ export interface ITicketCustomerNotificationTemplateSet extends ITicketAuditedEntity {
125
+ event: TicketNotificationEvent;
126
+ name: string;
127
+ variants: ICustomerNotificationTemplateVariant[];
128
+ }
129
+ export type ResolvedEventOrigin = "general" | "portal" | "individual" | "mandatory" | "muted";
130
+ /**
131
+ * Channel-agnostic warning codes the resolver can determine structurally.
132
+ * A strict subset of any richer client-side diagnostic code set.
133
+ */
134
+ export type ResolvedWarningCode = "EVENT_ACTIVE_WITHOUT_CHANNEL" | "EVENT_ACTIVE_WITHOUT_TEMPLATE" | "EVENT_ACTIVE_WITHOUT_RECIPIENTS" | "LANGUAGE_WITHOUT_TEMPLATE_OR_FALLBACK" | "INCOMPATIBLE_RECIPIENTS" | "MANDATORY_EVENT_ALLOWS_MUTE" | "PORTAL_DISABLED" | "DISABLED_TEMPLATE" | "INTERNAL_INFO_EXPOSING_VARIABLES" | "CUSTOMER_INVISIBLE_TEMPLATE_FIELDS";
135
+ export interface IResolvedCustomerNotificationWarning {
136
+ code: ResolvedWarningCode;
137
+ /** Omitted for policy-level codes (currently only `PORTAL_DISABLED`). */
138
+ event?: TicketNotificationEvent;
139
+ }
140
+ export interface IResolvedCustomerNotificationEventConfig {
141
+ event: TicketNotificationEvent;
142
+ enabled: boolean;
143
+ mandatory: boolean;
144
+ customerPersonalization: ICustomerNotificationEventCustomerPersonalization;
145
+ origin: ResolvedEventOrigin;
146
+ recipients: CustomerNotificationRecipientRole[];
147
+ /** Channels actually used after `alternativeChannel` substitution (if any). */
148
+ channels: ChannelType[];
149
+ /** Channels requested by the policy/preference, before substitution. */
150
+ requestedChannels: ChannelType[];
151
+ senderIdentityByChannel: Partial<Record<ChannelType, string>>;
152
+ /** The admin-configured substitute channel (verbatim from the stored event). `null` = none. */
153
+ alternativeChannel: ChannelType | null;
154
+ alternativeChannelApplied: boolean;
155
+ warning?: string;
156
+ templates: ICustomerNotificationTemplateBinding[];
157
+ resolvedTemplate?: ICustomerNotificationTemplateBinding;
158
+ }
159
+ export interface IResolvedCustomerNotificationConfig {
160
+ spaceId: string;
161
+ portalId: string | null;
162
+ policyOrigin: "portal" | "general";
163
+ defaultLocale: string;
164
+ fallbackLocale: string;
165
+ senderName?: string;
166
+ senderIdentityId?: string;
167
+ senderIdentityByChannel?: Partial<Record<ChannelType, string>>;
168
+ replyToAddress?: string;
169
+ /** Whole-ticket mute flag (from the preference's muted ticket ids). */
170
+ muted: boolean;
171
+ events: IResolvedCustomerNotificationEventConfig[];
172
+ warnings: IResolvedCustomerNotificationWarning[];
173
+ }
174
+ type AuditedEntityKeys = keyof ITicketAuditedEntity;
175
+ export type CreateCustomerNotificationPolicyDto = Omit<ITicketCustomerNotificationPolicy, AuditedEntityKeys | "enabled" | "respectIndividualPreferences"> & Partial<Pick<ITicketCustomerNotificationPolicy, "enabled" | "respectIndividualPreferences">>;
176
+ /**
177
+ * The clearable optionals are nullable: `null` explicitly CLEARS the stored
178
+ * value on a PATCH while an omitted key leaves it untouched. Do NOT narrow
179
+ * these back to `string | undefined` — that would make it impossible to erase
180
+ * an already-saved sender/reply-to/name.
181
+ */
182
+ export type UpdateCustomerNotificationPolicyDto = Partial<Omit<CreateCustomerNotificationPolicyDto, "name" | "description" | "senderName" | "senderIdentityId" | "senderIdentityByChannel" | "replyToAddress">> & {
183
+ name?: string | null;
184
+ description?: string | null;
185
+ senderName?: string | null;
186
+ senderIdentityId?: string | null;
187
+ senderIdentityByChannel?: Partial<Record<ChannelType, string>> | null;
188
+ replyToAddress?: string | null;
189
+ };
190
+ export type CreateCustomerNotificationTemplateSetDto = Omit<ITicketCustomerNotificationTemplateSet, AuditedEntityKeys>;
191
+ export type UpdateCustomerNotificationTemplateSetDto = Partial<CreateCustomerNotificationTemplateSetDto>;
192
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ // ---------------------------------------------------------------------------
3
+ // Customer notification settings — policy, content templates and the resolved
4
+ // effective-config contract.
5
+ //
6
+ // A policy is admin-configurable customer notification settings, either
7
+ // space-general (`portalId: null`) or per-portal (`portalId: string`). It
8
+ // combines with the pre-existing `ITicketCustomerNotificationPreference`
9
+ // (the INDIVIDUAL contact-level exception overlay, see SelfService) at
10
+ // resolution time; the resolved shape is `IResolvedCustomerNotificationConfig`
11
+ // below.
12
+ //
13
+ // `TemplateContentType` intentionally mirrors Marketing's HTML/TEXT shape
14
+ // (same numeric values) WITHOUT reusing Marketing's type — Tickets and
15
+ // Marketing are separate bounded contexts and must not share a runtime
16
+ // contract for this concern.
17
+ // ---------------------------------------------------------------------------
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.TemplateVariantStatus = exports.TemplateContentType = exports.CustomerNotificationRecipientRole = void 0;
20
+ // ---------------------------------------------------------------------------
21
+ // Policy
22
+ // ---------------------------------------------------------------------------
23
+ /**
24
+ * Ticket-relative recipient roles for CUSTOMER notifications only.
25
+ * Intentionally excludes any agent/internal-group role — this is the
26
+ * enforcement point that keeps internal recipients out of customer-facing
27
+ * notifications.
28
+ */
29
+ var CustomerNotificationRecipientRole;
30
+ (function (CustomerNotificationRecipientRole) {
31
+ CustomerNotificationRecipientRole["REQUESTER"] = "REQUESTER";
32
+ CustomerNotificationRecipientRole["PARTICIPANT_CONTACTS"] = "PARTICIPANT_CONTACTS";
33
+ CustomerNotificationRecipientRole["ACTION_ASSIGNEE"] = "ACTION_ASSIGNEE";
34
+ CustomerNotificationRecipientRole["EXTERNAL_APPROVER"] = "EXTERNAL_APPROVER";
35
+ /** Members of the organization that have access to the ticket. */
36
+ CustomerNotificationRecipientRole["ORGANIZATION_MEMBERS"] = "ORGANIZATION_MEMBERS";
37
+ /** Other external recipients defined by the domain/integration. */
38
+ CustomerNotificationRecipientRole["OTHER_EXTERNAL_CONTACTS"] = "OTHER_EXTERNAL_CONTACTS";
39
+ })(CustomerNotificationRecipientRole || (exports.CustomerNotificationRecipientRole = CustomerNotificationRecipientRole = {}));
40
+ // ---------------------------------------------------------------------------
41
+ // Content templates
42
+ // ---------------------------------------------------------------------------
43
+ /** HTML/TEXT content type. Numeric values mirror Marketing's shape by design. */
44
+ var TemplateContentType;
45
+ (function (TemplateContentType) {
46
+ TemplateContentType[TemplateContentType["HTML"] = 1] = "HTML";
47
+ TemplateContentType[TemplateContentType["TEXT"] = 2] = "TEXT";
48
+ })(TemplateContentType || (exports.TemplateContentType = TemplateContentType = {}));
49
+ /** Per-variant lifecycle status. `DISABLED` keeps the variant persisted while making the `DISABLED_TEMPLATE` warning fire for any event still referencing it. */
50
+ var TemplateVariantStatus;
51
+ (function (TemplateVariantStatus) {
52
+ TemplateVariantStatus["ENABLED"] = "ENABLED";
53
+ TemplateVariantStatus["DISABLED"] = "DISABLED";
54
+ })(TemplateVariantStatus || (exports.TemplateVariantStatus = TemplateVariantStatus = {}));
@@ -0,0 +1,13 @@
1
+ import type { ITicketAuditedEntity } from "./Common";
2
+ export interface ITicketNote extends ITicketAuditedEntity {
3
+ ticketId: string;
4
+ text: string;
5
+ version: number;
6
+ }
7
+ export interface CreateTicketNoteDto {
8
+ text: string;
9
+ }
10
+ export interface UpdateTicketNoteDto {
11
+ expectedVersion: number;
12
+ text: string;
13
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ // ---------------------------------------------------------------------------
3
+ // Ticket internal notes.
4
+ //
5
+ // Free-text internal annotations attached to a ticket, distinct from public
6
+ // replies and from the conversation timeline. Optimistic concurrency via
7
+ // version + expectedVersion on update, same pattern as the rest of the
8
+ // module.
9
+ // ---------------------------------------------------------------------------
10
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,64 @@
1
+ import type { ITicketAuditedEntity } from "./Common";
2
+ /** Whether the response is meant for a customer-visible reply, an internal note, or both. */
3
+ export declare enum QuickResponseContentType {
4
+ PUBLIC = "PUBLIC",
5
+ INTERNAL = "INTERNAL",
6
+ BOTH = "BOTH"
7
+ }
8
+ /** Per-response lifecycle status. `DISABLED` keeps the response persisted and assigned to its category. */
9
+ export declare enum QuickResponseStatus {
10
+ ENABLED = "ENABLED",
11
+ DISABLED = "DISABLED"
12
+ }
13
+ /**
14
+ * Fixed, closed list of supported content languages. Extending this list is a
15
+ * deliberate, versioned change — a caller cannot introduce an arbitrary
16
+ * locale.
17
+ */
18
+ export declare enum LanguageCode {
19
+ ES = "ES",
20
+ EN = "EN",
21
+ PT = "PT"
22
+ }
23
+ /**
24
+ * Own category taxonomy for quick responses. A response count is intentionally
25
+ * NOT part of this interface: it is DERIVED (COUNT of active responses in the
26
+ * category) and never persisted.
27
+ */
28
+ export interface ITicketQuickResponseCategory extends ITicketAuditedEntity {
29
+ name: string;
30
+ displayOrder: number;
31
+ enabled: boolean;
32
+ }
33
+ /**
34
+ * One prepared text. `applicableCategoryIds`/`applicableSubcategoryIds` point
35
+ * at real `ITicketCategory` rows. `roleIds`/`groupIds`/`userIds` express
36
+ * VISIBILITY only (discoverability), never extra ticket permissions. Empty
37
+ * visibility arrays mean "everyone".
38
+ */
39
+ export interface ITicketQuickResponse extends ITicketAuditedEntity {
40
+ title: string;
41
+ description?: string;
42
+ categoryId: string;
43
+ content: string;
44
+ contentType: QuickResponseContentType;
45
+ language: LanguageCode;
46
+ /** Catalog variable keys referenced by `content` (e.g. `ticketNumber`, `customerName`). */
47
+ variablesUsed: string[];
48
+ applicableCategoryIds: string[];
49
+ applicableSubcategoryIds: string[];
50
+ applicableRequestTypeIds: string[];
51
+ applicablePortalIds: string[];
52
+ /** Agent-group scope dimension (mirrors `groupIds`/`roleIds`/`userIds`). */
53
+ applicableGroupIds: string[];
54
+ roleIds: string[];
55
+ groupIds: string[];
56
+ userIds: string[];
57
+ status: QuickResponseStatus;
58
+ }
59
+ type AuditKeys = keyof ITicketAuditedEntity;
60
+ export type CreateTicketQuickResponseCategoryDto = Omit<ITicketQuickResponseCategory, AuditKeys>;
61
+ export type UpdateTicketQuickResponseCategoryDto = Partial<CreateTicketQuickResponseCategoryDto>;
62
+ export type CreateTicketQuickResponseDto = Omit<ITicketQuickResponse, AuditKeys>;
63
+ export type UpdateTicketQuickResponseDto = Partial<CreateTicketQuickResponseDto>;
64
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // ---------------------------------------------------------------------------
3
+ // Ticket quick responses ("Respuestas rápidas").
4
+ //
5
+ // A Tickets-owned library of prepared texts that agents insert manually into a
6
+ // public reply or an internal note. Fully independent from Conversaciones'
7
+ // `IQuickResponse` — there is no cross-reference to Conversaciones in the
8
+ // persisted schema.
9
+ //
10
+ // Category storage is a DEDICATED taxonomy (`ITicketQuickResponseCategory`),
11
+ // NOT a reuse of `ITicketCategory`. `applicableCategoryIds` /
12
+ // `applicableSubcategoryIds` are the only place this feature relates to
13
+ // `ITicketCategory` (subcategories are child `ticket_categories` rows via
14
+ // `parentId`, not a separate entity).
15
+ // ---------------------------------------------------------------------------
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.LanguageCode = exports.QuickResponseStatus = exports.QuickResponseContentType = void 0;
18
+ /** Whether the response is meant for a customer-visible reply, an internal note, or both. */
19
+ var QuickResponseContentType;
20
+ (function (QuickResponseContentType) {
21
+ QuickResponseContentType["PUBLIC"] = "PUBLIC";
22
+ QuickResponseContentType["INTERNAL"] = "INTERNAL";
23
+ QuickResponseContentType["BOTH"] = "BOTH";
24
+ })(QuickResponseContentType || (exports.QuickResponseContentType = QuickResponseContentType = {}));
25
+ /** Per-response lifecycle status. `DISABLED` keeps the response persisted and assigned to its category. */
26
+ var QuickResponseStatus;
27
+ (function (QuickResponseStatus) {
28
+ QuickResponseStatus["ENABLED"] = "ENABLED";
29
+ QuickResponseStatus["DISABLED"] = "DISABLED";
30
+ })(QuickResponseStatus || (exports.QuickResponseStatus = QuickResponseStatus = {}));
31
+ /**
32
+ * Fixed, closed list of supported content languages. Extending this list is a
33
+ * deliberate, versioned change — a caller cannot introduce an arbitrary
34
+ * locale.
35
+ */
36
+ var LanguageCode;
37
+ (function (LanguageCode) {
38
+ LanguageCode["ES"] = "ES";
39
+ LanguageCode["EN"] = "EN";
40
+ LanguageCode["PT"] = "PT";
41
+ })(LanguageCode || (exports.LanguageCode = LanguageCode = {}));
@@ -120,3 +120,14 @@ export interface IApplyTicketTaskTemplateDto {
120
120
  expectedTicketVersion: number;
121
121
  templateId: string;
122
122
  }
123
+ export interface CreateTaskDependencyDto {
124
+ successorTaskId: string;
125
+ type: TicketTaskDependencyType;
126
+ }
127
+ export interface DeleteTicketTaskOptions {
128
+ expectedTaskVersion?: number;
129
+ }
130
+ export interface TicketTaskListResult {
131
+ tasks: ITicketTask[];
132
+ dependencies: ITicketTaskDependency[];
133
+ }
@@ -39,6 +39,7 @@ export interface ITicket {
39
39
  externalReferences: ITicketExternalReference[];
40
40
  version: number;
41
41
  categoryId: string;
42
+ requestTypeId?: string;
42
43
  channelType?: ChannelType;
43
44
  channelId?: string;
44
45
  primaryConversationId?: string;
@@ -82,6 +83,7 @@ export interface ICreateTicketDto {
82
83
  source?: string;
83
84
  idempotencyKey?: string;
84
85
  categoryId: string;
86
+ requestTypeId?: string;
85
87
  channelType?: ChannelType;
86
88
  channelId?: string;
87
89
  primaryConversationId?: string;
@@ -10,6 +10,9 @@ export * from './Conversation';
10
10
  export * from './Routing';
11
11
  export * from './Approval';
12
12
  export * from './Task';
13
+ export * from './Notes';
14
+ export * from './QuickResponse';
15
+ export * from './CustomerNotification';
13
16
  export * from './SelfService';
14
17
  export * from './Security';
15
18
  export * from './AdvancedApi';
@@ -26,6 +26,9 @@ __exportStar(require("./Conversation"), exports);
26
26
  __exportStar(require("./Routing"), exports);
27
27
  __exportStar(require("./Approval"), exports);
28
28
  __exportStar(require("./Task"), exports);
29
+ __exportStar(require("./Notes"), exports);
30
+ __exportStar(require("./QuickResponse"), exports);
31
+ __exportStar(require("./CustomerNotification"), exports);
29
32
  __exportStar(require("./SelfService"), exports);
30
33
  __exportStar(require("./Security"), exports);
31
34
  __exportStar(require("./AdvancedApi"), exports);
@@ -4,37 +4,6 @@ export declare enum AutomationCapabilityKind {
4
4
  ACTION = "action",
5
5
  CONDITION = "condition"
6
6
  }
7
- export declare enum AutomationCapabilityEffectClass {
8
- NONE = "none",
9
- READ = "read",
10
- WRITE = "write",
11
- COMMUNICATION = "communication",
12
- BULK = "bulk"
13
- }
14
- export declare enum AutomationCapabilityIdempotency {
15
- NONE = "none",
16
- SUPPORTED = "supported",
17
- REQUIRED = "required"
18
- }
19
- /** Capacidades operativas que el runtime puede aplicar de forma confiable. */
20
- export interface AutomationCapabilityExecutionSupport {
21
- effectClass: AutomationCapabilityEffectClass;
22
- supportsSimulation: boolean;
23
- supportsTestTargets: boolean;
24
- supportsUntilNode: boolean;
25
- supportsFromNode: boolean;
26
- supportsNodeOnly: boolean;
27
- supportsCancellation: boolean;
28
- idempotency: AutomationCapabilityIdempotency;
29
- defaultTimeoutMs?: number | null;
30
- maxAttempts?: number | null;
31
- maxTestItems?: number | null;
32
- inputSchema?: AutomationJsonSchema | null;
33
- outputSchema?: AutomationJsonSchema | null;
34
- simulationOutputSchema?: AutomationJsonSchema | null;
35
- sensitivePaths?: string[] | null;
36
- requiredPermissions?: string[] | null;
37
- }
38
7
  /**
39
8
  * Capacidad publicada por una aplicación de negocio para que Automation pueda
40
9
  * descubrirla y representarla sin incorporar reglas de ese dominio.
@@ -50,8 +19,6 @@ export interface AutomationCapability {
50
19
  requiredPermissions: string[];
51
20
  enabled: boolean;
52
21
  version: number;
53
- /** Metadata opcional para definitions anteriores a la política de ejecución. */
54
- executionSupport?: AutomationCapabilityExecutionSupport | null;
55
22
  }
56
23
  export interface AutomationCapabilityQuery {
57
24
  sourceApplications?: AutomationSourceApplication[];
@@ -1,23 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutomationCapabilityIdempotency = exports.AutomationCapabilityEffectClass = exports.AutomationCapabilityKind = void 0;
3
+ exports.AutomationCapabilityKind = void 0;
4
4
  var AutomationCapabilityKind;
5
5
  (function (AutomationCapabilityKind) {
6
6
  AutomationCapabilityKind["TRIGGER"] = "trigger";
7
7
  AutomationCapabilityKind["ACTION"] = "action";
8
8
  AutomationCapabilityKind["CONDITION"] = "condition";
9
9
  })(AutomationCapabilityKind || (exports.AutomationCapabilityKind = AutomationCapabilityKind = {}));
10
- var AutomationCapabilityEffectClass;
11
- (function (AutomationCapabilityEffectClass) {
12
- AutomationCapabilityEffectClass["NONE"] = "none";
13
- AutomationCapabilityEffectClass["READ"] = "read";
14
- AutomationCapabilityEffectClass["WRITE"] = "write";
15
- AutomationCapabilityEffectClass["COMMUNICATION"] = "communication";
16
- AutomationCapabilityEffectClass["BULK"] = "bulk";
17
- })(AutomationCapabilityEffectClass || (exports.AutomationCapabilityEffectClass = AutomationCapabilityEffectClass = {}));
18
- var AutomationCapabilityIdempotency;
19
- (function (AutomationCapabilityIdempotency) {
20
- AutomationCapabilityIdempotency["NONE"] = "none";
21
- AutomationCapabilityIdempotency["SUPPORTED"] = "supported";
22
- AutomationCapabilityIdempotency["REQUIRED"] = "required";
23
- })(AutomationCapabilityIdempotency || (exports.AutomationCapabilityIdempotency = AutomationCapabilityIdempotency = {}));