@trii/types 2.10.656 → 2.10.658

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 (90) hide show
  1. package/dist/Collections/Api.d.ts +41 -0
  2. package/dist/Collections/Api.js +2 -0
  3. package/dist/Collections/Commission.d.ts +52 -0
  4. package/dist/Collections/Commission.js +10 -0
  5. package/dist/Collections/Common.d.ts +78 -0
  6. package/dist/Collections/Common.js +39 -0
  7. package/dist/Collections/Dashboard.d.ts +27 -0
  8. package/dist/Collections/Dashboard.js +2 -0
  9. package/dist/Collections/Debt.d.ts +97 -0
  10. package/dist/Collections/Debt.js +12 -0
  11. package/dist/Collections/Interest.d.ts +38 -0
  12. package/dist/Collections/Interest.js +25 -0
  13. package/dist/Collections/Payment.d.ts +87 -0
  14. package/dist/Collections/Payment.js +21 -0
  15. package/dist/Collections/PaymentPlan.d.ts +87 -0
  16. package/dist/Collections/PaymentPlan.js +21 -0
  17. package/dist/Collections/PaymentPlanConfiguration.d.ts +100 -0
  18. package/dist/Collections/PaymentPlanConfiguration.js +34 -0
  19. package/dist/Collections/Portfolio.d.ts +52 -0
  20. package/dist/Collections/Portfolio.js +12 -0
  21. package/dist/Collections/Promise.d.ts +49 -0
  22. package/dist/Collections/Promise.js +25 -0
  23. package/dist/Collections/index.d.ts +11 -0
  24. package/dist/Collections/index.js +27 -0
  25. package/dist/Common/Channels/Channel.d.ts +6 -1
  26. package/dist/Common/Channels/Channel.js +6 -1
  27. package/dist/Common/Channels/WhatsApp.d.ts +22 -0
  28. package/dist/Common/Channels/WhatsApp.js +7 -1
  29. package/dist/Common/Messages/Message.d.ts +9 -0
  30. package/dist/Common/Messages/Message.js +6 -1
  31. package/dist/Conversations/Conversation.d.ts +15 -0
  32. package/dist/Conversations/Conversation.js +8 -1
  33. package/dist/Reports/ScheduledReport.d.ts +146 -0
  34. package/dist/Reports/ScheduledReport.js +37 -1
  35. package/dist/Sales/Api.d.ts +40 -0
  36. package/dist/Sales/Api.js +2 -0
  37. package/dist/Sales/Common.d.ts +72 -0
  38. package/dist/Sales/Common.js +31 -0
  39. package/dist/Sales/Dashboard.d.ts +25 -0
  40. package/dist/Sales/Dashboard.js +2 -0
  41. package/dist/Sales/Lead.d.ts +99 -0
  42. package/dist/Sales/Lead.js +8 -0
  43. package/dist/Sales/index.d.ts +4 -0
  44. package/dist/Sales/index.js +20 -0
  45. package/dist/Spaces/spaces.d.ts +1 -0
  46. package/dist/Tickets/AI.d.ts +400 -0
  47. package/dist/Tickets/AI.js +113 -0
  48. package/dist/Tickets/AdvancedApi.d.ts +486 -0
  49. package/dist/Tickets/AdvancedApi.js +108 -0
  50. package/dist/Tickets/Api.d.ts +62 -0
  51. package/dist/Tickets/Api.js +8 -0
  52. package/dist/Tickets/Approval.d.ts +139 -0
  53. package/dist/Tickets/Approval.js +30 -0
  54. package/dist/Tickets/Automation.d.ts +237 -0
  55. package/dist/Tickets/Automation.js +74 -0
  56. package/dist/Tickets/Category.d.ts +25 -0
  57. package/dist/Tickets/Category.js +2 -0
  58. package/dist/Tickets/Common.d.ts +90 -0
  59. package/dist/Tickets/Common.js +38 -0
  60. package/dist/Tickets/Conversation.d.ts +68 -0
  61. package/dist/Tickets/Conversation.js +30 -0
  62. package/dist/Tickets/Dashboard.d.ts +408 -0
  63. package/dist/Tickets/Dashboard.js +206 -0
  64. package/dist/Tickets/Fields.d.ts +133 -0
  65. package/dist/Tickets/Fields.js +44 -0
  66. package/dist/Tickets/Layouts.d.ts +63 -0
  67. package/dist/Tickets/Layouts.js +22 -0
  68. package/dist/Tickets/Routing.d.ts +290 -0
  69. package/dist/Tickets/Routing.js +87 -0
  70. package/dist/Tickets/Satisfaction.d.ts +31 -0
  71. package/dist/Tickets/Satisfaction.js +9 -0
  72. package/dist/Tickets/Security.d.ts +302 -0
  73. package/dist/Tickets/Security.js +107 -0
  74. package/dist/Tickets/SelfService.d.ts +255 -0
  75. package/dist/Tickets/SelfService.js +56 -0
  76. package/dist/Tickets/Sla.d.ts +253 -0
  77. package/dist/Tickets/Sla.js +73 -0
  78. package/dist/Tickets/Task.d.ts +122 -0
  79. package/dist/Tickets/Task.js +17 -0
  80. package/dist/Tickets/Ticket.d.ts +133 -0
  81. package/dist/Tickets/Ticket.js +2 -0
  82. package/dist/Tickets/Views.d.ts +77 -0
  83. package/dist/Tickets/Views.js +23 -0
  84. package/dist/Tickets/Workflow.d.ts +109 -0
  85. package/dist/Tickets/Workflow.js +44 -0
  86. package/dist/Tickets/index.d.ts +20 -1
  87. package/dist/Tickets/index.js +20 -1
  88. package/dist/index.d.ts +2 -0
  89. package/dist/index.js +3 -1
  90. package/package.json +1 -1
@@ -0,0 +1,302 @@
1
+ import { ITicketAuditedEntity, TicketPropertyValue } from "./Common";
2
+ import { TicketConditionOperator } from "./Workflow";
3
+ export declare enum TicketSecurityResourceType {
4
+ TICKET = "TICKET",
5
+ CATEGORY = "CATEGORY",
6
+ VIEW = "VIEW",
7
+ FIELD = "FIELD",
8
+ COMMENT = "COMMENT",
9
+ ATTACHMENT = "ATTACHMENT",
10
+ REPORT = "REPORT",
11
+ EXPORT = "EXPORT",
12
+ CONFIGURATION = "CONFIGURATION"
13
+ }
14
+ export declare enum TicketSecurityOperation {
15
+ CREATE = "CREATE",
16
+ READ = "READ",
17
+ UPDATE = "UPDATE",
18
+ DELETE = "DELETE",
19
+ ASSIGN = "ASSIGN",
20
+ TRANSITION = "TRANSITION",
21
+ COMMENT_PUBLIC = "COMMENT_PUBLIC",
22
+ COMMENT_INTERNAL = "COMMENT_INTERNAL",
23
+ VIEW_INTERNAL_COMMENTS = "VIEW_INTERNAL_COMMENTS",
24
+ VIEW_PII = "VIEW_PII",
25
+ REDACT = "REDACT",
26
+ EXPORT = "EXPORT",
27
+ MANAGE = "MANAGE",
28
+ IMPERSONATE = "IMPERSONATE"
29
+ }
30
+ export declare enum TicketPolicyEffect {
31
+ ALLOW = "ALLOW",
32
+ DENY = "DENY"
33
+ }
34
+ export declare enum TicketPolicyConditionGroupOperator {
35
+ AND = "AND",
36
+ OR = "OR"
37
+ }
38
+ export declare enum TicketSensitivityLevel {
39
+ PUBLIC = "PUBLIC",
40
+ INTERNAL = "INTERNAL",
41
+ CONFIDENTIAL = "CONFIDENTIAL",
42
+ RESTRICTED = "RESTRICTED"
43
+ }
44
+ export declare enum TicketDataClassification {
45
+ PUBLIC = "PUBLIC",
46
+ INTERNAL = "INTERNAL",
47
+ CONFIDENTIAL = "CONFIDENTIAL",
48
+ PII = "PII",
49
+ SENSITIVE_PII = "SENSITIVE_PII",
50
+ FINANCIAL = "FINANCIAL",
51
+ HEALTH = "HEALTH",
52
+ LEGAL = "LEGAL"
53
+ }
54
+ export declare enum TicketMaskingStrategy {
55
+ NONE = "NONE",
56
+ FULL = "FULL",
57
+ PARTIAL = "PARTIAL",
58
+ HASH = "HASH",
59
+ TOKENIZE = "TOKENIZE"
60
+ }
61
+ export declare enum TicketRedactionStatus {
62
+ REQUESTED = "REQUESTED",
63
+ PROCESSING = "PROCESSING",
64
+ COMPLETED = "COMPLETED",
65
+ REJECTED = "REJECTED",
66
+ FAILED = "FAILED"
67
+ }
68
+ export declare enum TicketRetentionAction {
69
+ ARCHIVE = "ARCHIVE",
70
+ ANONYMIZE = "ANONYMIZE",
71
+ DELETE = "DELETE",
72
+ REVIEW = "REVIEW"
73
+ }
74
+ export declare enum TicketLegalHoldStatus {
75
+ ACTIVE = "ACTIVE",
76
+ RELEASED = "RELEASED"
77
+ }
78
+ export declare enum TicketAccessAuditAction {
79
+ READ = "READ",
80
+ SEARCH = "SEARCH",
81
+ DOWNLOAD_ATTACHMENT = "DOWNLOAD_ATTACHMENT",
82
+ EXPORT = "EXPORT",
83
+ VIEW_PII = "VIEW_PII",
84
+ REDACT = "REDACT",
85
+ IMPERSONATE = "IMPERSONATE",
86
+ DELEGATED_ACCESS = "DELEGATED_ACCESS"
87
+ }
88
+ export declare enum TicketDelegatedAccessStatus {
89
+ PENDING = "PENDING",
90
+ ACTIVE = "ACTIVE",
91
+ REVOKED = "REVOKED",
92
+ EXPIRED = "EXPIRED",
93
+ REJECTED = "REJECTED"
94
+ }
95
+ export interface ITicketSecuritySubject {
96
+ /** When every selector is false or empty, the subject matches nobody. */
97
+ allAuthenticated?: boolean;
98
+ allAgents?: boolean;
99
+ allCustomers?: boolean;
100
+ userIds?: string[];
101
+ roleIds?: string[];
102
+ groupIds?: string[];
103
+ organizationIds?: string[];
104
+ contactSegmentIds?: string[];
105
+ includeTicketRequester?: boolean;
106
+ includeAssignee?: boolean;
107
+ includeGroupMembers?: boolean;
108
+ }
109
+ export interface ITicketSecurityScope {
110
+ spaceIds?: string[];
111
+ brandIds?: string[];
112
+ organizationIds?: string[];
113
+ categoryIds?: string[];
114
+ assignedGroupIds?: string[];
115
+ channelIds?: string[];
116
+ sensitivityLevels?: TicketSensitivityLevel[];
117
+ }
118
+ export interface ITicketSecurityCondition {
119
+ fieldNameKey: string;
120
+ operator: TicketConditionOperator;
121
+ expectedValue?: TicketPropertyValue;
122
+ }
123
+ export interface ITicketSecurityConditionGroup {
124
+ operator: TicketPolicyConditionGroupOperator;
125
+ conditions?: ITicketSecurityCondition[];
126
+ groups?: ITicketSecurityConditionGroup[];
127
+ }
128
+ export interface ITicketFieldPermission {
129
+ fieldNameKey: string;
130
+ operations: TicketSecurityOperation[];
131
+ effect: TicketPolicyEffect;
132
+ maskingStrategy?: TicketMaskingStrategy;
133
+ }
134
+ export interface ITicketSecurityPolicy extends ITicketAuditedEntity {
135
+ name: string;
136
+ description?: string;
137
+ enabled: boolean;
138
+ priority: number;
139
+ effect: TicketPolicyEffect;
140
+ resourceTypes: TicketSecurityResourceType[];
141
+ operations: TicketSecurityOperation[];
142
+ subjects: ITicketSecuritySubject;
143
+ scope?: ITicketSecurityScope;
144
+ conditions?: ITicketSecurityConditionGroup;
145
+ fieldPermissions?: ITicketFieldPermission[];
146
+ validFrom?: Date;
147
+ validUntil?: Date;
148
+ }
149
+ export interface ITicketFieldSecurityDefinition extends ITicketAuditedEntity {
150
+ fieldNameKey: string;
151
+ classification: TicketDataClassification;
152
+ containsPii: boolean;
153
+ maskingStrategy: TicketMaskingStrategy;
154
+ searchableWhenMasked?: boolean;
155
+ exportable: boolean;
156
+ retentionPolicyId?: string;
157
+ }
158
+ export interface ITicketSecurityState {
159
+ sensitivity: TicketSensitivityLevel;
160
+ policyIds?: string[];
161
+ organizationId?: string;
162
+ brandId?: string;
163
+ restrictedGroupIds?: string[];
164
+ containsPii: boolean;
165
+ legalHold: boolean;
166
+ }
167
+ export interface ITicketRedactionRequest {
168
+ id: string;
169
+ spaceId: string;
170
+ ticketId: string;
171
+ fieldNameKeys?: string[];
172
+ messageIds?: string[];
173
+ attachmentIds?: string[];
174
+ reason: string;
175
+ requestedAt: Date;
176
+ requestedBy: string;
177
+ approvedAt?: Date;
178
+ approvedBy?: string;
179
+ status: TicketRedactionStatus;
180
+ completedAt?: Date;
181
+ error?: string;
182
+ }
183
+ export interface ITicketRetentionPolicy extends ITicketAuditedEntity {
184
+ name: string;
185
+ description?: string;
186
+ retentionDays: number;
187
+ action: TicketRetentionAction;
188
+ categoryIds?: string[];
189
+ dataClassifications?: TicketDataClassification[];
190
+ preserveAuditLog: boolean;
191
+ enabled: boolean;
192
+ }
193
+ export interface ITicketLegalHold {
194
+ id: string;
195
+ spaceId: string;
196
+ ticketId: string;
197
+ name: string;
198
+ reason: string;
199
+ status: TicketLegalHoldStatus;
200
+ placedAt: Date;
201
+ placedBy: string;
202
+ releasedAt?: Date;
203
+ releasedBy?: string;
204
+ externalMatterId?: string;
205
+ }
206
+ export interface ITicketAccessAuditEvent {
207
+ id: string;
208
+ spaceId: string;
209
+ ticketId?: string;
210
+ actorId: string;
211
+ effectiveUserId: string;
212
+ action: TicketAccessAuditAction;
213
+ resourceType: TicketSecurityResourceType;
214
+ resourceId?: string;
215
+ fieldNameKeys?: string[];
216
+ purpose?: string;
217
+ ipAddress?: string;
218
+ userAgent?: string;
219
+ correlationId?: string;
220
+ occurredAt: Date;
221
+ allowed: boolean;
222
+ policyIds?: string[];
223
+ denialReason?: string;
224
+ }
225
+ export interface ITicketImpersonationSession {
226
+ id: string;
227
+ spaceId: string;
228
+ actorId: string;
229
+ impersonatedUserId: string;
230
+ reason: string;
231
+ approvedBy?: string;
232
+ startedAt: Date;
233
+ expiresAt: Date;
234
+ endedAt?: Date;
235
+ }
236
+ export interface ITicketDelegatedAccess {
237
+ id: string;
238
+ spaceId: string;
239
+ grantorId: string;
240
+ delegateId: string;
241
+ operations: TicketSecurityOperation[];
242
+ scope?: ITicketSecurityScope;
243
+ status: TicketDelegatedAccessStatus;
244
+ reason?: string;
245
+ requestedAt: Date;
246
+ startsAt: Date;
247
+ expiresAt: Date;
248
+ approvedBy?: string;
249
+ revokedAt?: Date;
250
+ revokedBy?: string;
251
+ }
252
+ export interface ITicketAuthorizationRequest {
253
+ actorId: string;
254
+ effectiveUserId?: string;
255
+ operation: TicketSecurityOperation;
256
+ resourceType: TicketSecurityResourceType;
257
+ resourceId?: string;
258
+ ticketId?: string;
259
+ fieldNameKeys?: string[];
260
+ context?: {
261
+ [key: string]: TicketPropertyValue;
262
+ };
263
+ }
264
+ export interface ITicketAuthorizationDecision {
265
+ allowed: boolean;
266
+ policyIds: string[];
267
+ deniedFieldNameKeys?: string[];
268
+ maskedFieldNameKeys?: string[];
269
+ reason?: string;
270
+ evaluatedAt: Date;
271
+ }
272
+ export interface ICreateTicketRedactionRequestDto {
273
+ expectedVersion: number;
274
+ fieldNameKeys?: string[];
275
+ messageIds?: string[];
276
+ attachmentIds?: string[];
277
+ reason: string;
278
+ }
279
+ export interface ICreateTicketLegalHoldDto {
280
+ expectedVersion: number;
281
+ name: string;
282
+ reason: string;
283
+ externalMatterId?: string;
284
+ }
285
+ export interface IReleaseTicketLegalHoldDto {
286
+ expectedVersion: number;
287
+ legalHoldId: string;
288
+ reason: string;
289
+ }
290
+ export interface ICreateTicketDelegatedAccessDto {
291
+ delegateId: string;
292
+ operations: TicketSecurityOperation[];
293
+ scope?: ITicketSecurityScope;
294
+ reason?: string;
295
+ startsAt: Date;
296
+ expiresAt: Date;
297
+ }
298
+ export interface IStartTicketImpersonationDto {
299
+ impersonatedUserId: string;
300
+ reason: string;
301
+ expiresAt: Date;
302
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketDelegatedAccessStatus = exports.TicketAccessAuditAction = exports.TicketLegalHoldStatus = exports.TicketRetentionAction = exports.TicketRedactionStatus = exports.TicketMaskingStrategy = exports.TicketDataClassification = exports.TicketSensitivityLevel = exports.TicketPolicyConditionGroupOperator = exports.TicketPolicyEffect = exports.TicketSecurityOperation = exports.TicketSecurityResourceType = void 0;
4
+ var TicketSecurityResourceType;
5
+ (function (TicketSecurityResourceType) {
6
+ TicketSecurityResourceType["TICKET"] = "TICKET";
7
+ TicketSecurityResourceType["CATEGORY"] = "CATEGORY";
8
+ TicketSecurityResourceType["VIEW"] = "VIEW";
9
+ TicketSecurityResourceType["FIELD"] = "FIELD";
10
+ TicketSecurityResourceType["COMMENT"] = "COMMENT";
11
+ TicketSecurityResourceType["ATTACHMENT"] = "ATTACHMENT";
12
+ TicketSecurityResourceType["REPORT"] = "REPORT";
13
+ TicketSecurityResourceType["EXPORT"] = "EXPORT";
14
+ TicketSecurityResourceType["CONFIGURATION"] = "CONFIGURATION";
15
+ })(TicketSecurityResourceType || (exports.TicketSecurityResourceType = TicketSecurityResourceType = {}));
16
+ var TicketSecurityOperation;
17
+ (function (TicketSecurityOperation) {
18
+ TicketSecurityOperation["CREATE"] = "CREATE";
19
+ TicketSecurityOperation["READ"] = "READ";
20
+ TicketSecurityOperation["UPDATE"] = "UPDATE";
21
+ TicketSecurityOperation["DELETE"] = "DELETE";
22
+ TicketSecurityOperation["ASSIGN"] = "ASSIGN";
23
+ TicketSecurityOperation["TRANSITION"] = "TRANSITION";
24
+ TicketSecurityOperation["COMMENT_PUBLIC"] = "COMMENT_PUBLIC";
25
+ TicketSecurityOperation["COMMENT_INTERNAL"] = "COMMENT_INTERNAL";
26
+ TicketSecurityOperation["VIEW_INTERNAL_COMMENTS"] = "VIEW_INTERNAL_COMMENTS";
27
+ TicketSecurityOperation["VIEW_PII"] = "VIEW_PII";
28
+ TicketSecurityOperation["REDACT"] = "REDACT";
29
+ TicketSecurityOperation["EXPORT"] = "EXPORT";
30
+ TicketSecurityOperation["MANAGE"] = "MANAGE";
31
+ TicketSecurityOperation["IMPERSONATE"] = "IMPERSONATE";
32
+ })(TicketSecurityOperation || (exports.TicketSecurityOperation = TicketSecurityOperation = {}));
33
+ var TicketPolicyEffect;
34
+ (function (TicketPolicyEffect) {
35
+ TicketPolicyEffect["ALLOW"] = "ALLOW";
36
+ TicketPolicyEffect["DENY"] = "DENY";
37
+ })(TicketPolicyEffect || (exports.TicketPolicyEffect = TicketPolicyEffect = {}));
38
+ var TicketPolicyConditionGroupOperator;
39
+ (function (TicketPolicyConditionGroupOperator) {
40
+ TicketPolicyConditionGroupOperator["AND"] = "AND";
41
+ TicketPolicyConditionGroupOperator["OR"] = "OR";
42
+ })(TicketPolicyConditionGroupOperator || (exports.TicketPolicyConditionGroupOperator = TicketPolicyConditionGroupOperator = {}));
43
+ var TicketSensitivityLevel;
44
+ (function (TicketSensitivityLevel) {
45
+ TicketSensitivityLevel["PUBLIC"] = "PUBLIC";
46
+ TicketSensitivityLevel["INTERNAL"] = "INTERNAL";
47
+ TicketSensitivityLevel["CONFIDENTIAL"] = "CONFIDENTIAL";
48
+ TicketSensitivityLevel["RESTRICTED"] = "RESTRICTED";
49
+ })(TicketSensitivityLevel || (exports.TicketSensitivityLevel = TicketSensitivityLevel = {}));
50
+ var TicketDataClassification;
51
+ (function (TicketDataClassification) {
52
+ TicketDataClassification["PUBLIC"] = "PUBLIC";
53
+ TicketDataClassification["INTERNAL"] = "INTERNAL";
54
+ TicketDataClassification["CONFIDENTIAL"] = "CONFIDENTIAL";
55
+ TicketDataClassification["PII"] = "PII";
56
+ TicketDataClassification["SENSITIVE_PII"] = "SENSITIVE_PII";
57
+ TicketDataClassification["FINANCIAL"] = "FINANCIAL";
58
+ TicketDataClassification["HEALTH"] = "HEALTH";
59
+ TicketDataClassification["LEGAL"] = "LEGAL";
60
+ })(TicketDataClassification || (exports.TicketDataClassification = TicketDataClassification = {}));
61
+ var TicketMaskingStrategy;
62
+ (function (TicketMaskingStrategy) {
63
+ TicketMaskingStrategy["NONE"] = "NONE";
64
+ TicketMaskingStrategy["FULL"] = "FULL";
65
+ TicketMaskingStrategy["PARTIAL"] = "PARTIAL";
66
+ TicketMaskingStrategy["HASH"] = "HASH";
67
+ TicketMaskingStrategy["TOKENIZE"] = "TOKENIZE";
68
+ })(TicketMaskingStrategy || (exports.TicketMaskingStrategy = TicketMaskingStrategy = {}));
69
+ var TicketRedactionStatus;
70
+ (function (TicketRedactionStatus) {
71
+ TicketRedactionStatus["REQUESTED"] = "REQUESTED";
72
+ TicketRedactionStatus["PROCESSING"] = "PROCESSING";
73
+ TicketRedactionStatus["COMPLETED"] = "COMPLETED";
74
+ TicketRedactionStatus["REJECTED"] = "REJECTED";
75
+ TicketRedactionStatus["FAILED"] = "FAILED";
76
+ })(TicketRedactionStatus || (exports.TicketRedactionStatus = TicketRedactionStatus = {}));
77
+ var TicketRetentionAction;
78
+ (function (TicketRetentionAction) {
79
+ TicketRetentionAction["ARCHIVE"] = "ARCHIVE";
80
+ TicketRetentionAction["ANONYMIZE"] = "ANONYMIZE";
81
+ TicketRetentionAction["DELETE"] = "DELETE";
82
+ TicketRetentionAction["REVIEW"] = "REVIEW";
83
+ })(TicketRetentionAction || (exports.TicketRetentionAction = TicketRetentionAction = {}));
84
+ var TicketLegalHoldStatus;
85
+ (function (TicketLegalHoldStatus) {
86
+ TicketLegalHoldStatus["ACTIVE"] = "ACTIVE";
87
+ TicketLegalHoldStatus["RELEASED"] = "RELEASED";
88
+ })(TicketLegalHoldStatus || (exports.TicketLegalHoldStatus = TicketLegalHoldStatus = {}));
89
+ var TicketAccessAuditAction;
90
+ (function (TicketAccessAuditAction) {
91
+ TicketAccessAuditAction["READ"] = "READ";
92
+ TicketAccessAuditAction["SEARCH"] = "SEARCH";
93
+ TicketAccessAuditAction["DOWNLOAD_ATTACHMENT"] = "DOWNLOAD_ATTACHMENT";
94
+ TicketAccessAuditAction["EXPORT"] = "EXPORT";
95
+ TicketAccessAuditAction["VIEW_PII"] = "VIEW_PII";
96
+ TicketAccessAuditAction["REDACT"] = "REDACT";
97
+ TicketAccessAuditAction["IMPERSONATE"] = "IMPERSONATE";
98
+ TicketAccessAuditAction["DELEGATED_ACCESS"] = "DELEGATED_ACCESS";
99
+ })(TicketAccessAuditAction || (exports.TicketAccessAuditAction = TicketAccessAuditAction = {}));
100
+ var TicketDelegatedAccessStatus;
101
+ (function (TicketDelegatedAccessStatus) {
102
+ TicketDelegatedAccessStatus["PENDING"] = "PENDING";
103
+ TicketDelegatedAccessStatus["ACTIVE"] = "ACTIVE";
104
+ TicketDelegatedAccessStatus["REVOKED"] = "REVOKED";
105
+ TicketDelegatedAccessStatus["EXPIRED"] = "EXPIRED";
106
+ TicketDelegatedAccessStatus["REJECTED"] = "REJECTED";
107
+ })(TicketDelegatedAccessStatus || (exports.TicketDelegatedAccessStatus = TicketDelegatedAccessStatus = {}));
@@ -0,0 +1,255 @@
1
+ import { ChannelType } from "../Common/Channels/ChannelType";
2
+ import { ITicketAuditedEntity, ITicketProperty, TicketPriority } from "./Common";
3
+ import { ITicketMessageReference } from "./Conversation";
4
+ export declare enum TicketPortalAuthenticationMode {
5
+ PUBLIC = "PUBLIC",
6
+ OPTIONAL = "OPTIONAL",
7
+ REQUIRED = "REQUIRED"
8
+ }
9
+ export declare enum TicketRequestDraftStatus {
10
+ DRAFT = "DRAFT",
11
+ VALIDATING = "VALIDATING",
12
+ READY = "READY",
13
+ SUBMITTED = "SUBMITTED",
14
+ EXPIRED = "EXPIRED",
15
+ CANCELLED = "CANCELLED"
16
+ }
17
+ export declare enum TicketCustomerAction {
18
+ COMMENT = "COMMENT",
19
+ ADD_ATTACHMENT = "ADD_ATTACHMENT",
20
+ CANCEL = "CANCEL",
21
+ REOPEN = "REOPEN",
22
+ COMPLETE_FORM = "COMPLETE_FORM",
23
+ APPROVE = "APPROVE"
24
+ }
25
+ export declare enum TicketAudienceRuleEffect {
26
+ ALLOW = "ALLOW",
27
+ DENY = "DENY"
28
+ }
29
+ export declare enum TicketNotificationEvent {
30
+ CREATED = "CREATED",
31
+ PUBLIC_REPLY = "PUBLIC_REPLY",
32
+ PUBLIC_STATUS_CHANGED = "PUBLIC_STATUS_CHANGED",
33
+ ACTION_REQUIRED = "ACTION_REQUIRED",
34
+ RESOLVED = "RESOLVED",
35
+ REOPENED = "REOPENED",
36
+ SATISFACTION_REQUESTED = "SATISFACTION_REQUESTED"
37
+ }
38
+ export declare enum TicketDeflectionOutcome {
39
+ SUGGESTION_SHOWN = "SUGGESTION_SHOWN",
40
+ ARTICLE_OPENED = "ARTICLE_OPENED",
41
+ KNOWN_ISSUE_OPENED = "KNOWN_ISSUE_OPENED",
42
+ ABANDONED = "ABANDONED",
43
+ TICKET_CREATED = "TICKET_CREATED"
44
+ }
45
+ export declare enum TicketKnowledgeReferenceType {
46
+ ARTICLE = "ARTICLE",
47
+ COLLECTION = "COLLECTION",
48
+ FOLDER = "FOLDER"
49
+ }
50
+ export interface ITicketPortal extends ITicketAuditedEntity {
51
+ name: string;
52
+ slug: string;
53
+ title: string;
54
+ description?: string;
55
+ logoUrl?: string;
56
+ faviconUrl?: string;
57
+ primaryColor?: string;
58
+ defaultLocale: string;
59
+ supportedLocales?: string[];
60
+ authenticationMode: TicketPortalAuthenticationMode;
61
+ allowTicketCreation: boolean;
62
+ allowTicketTracking: boolean;
63
+ allowComments: boolean;
64
+ allowReopen: boolean;
65
+ allowCancellation: boolean;
66
+ termsDocumentId?: string;
67
+ privacyDocumentId?: string;
68
+ enabled: boolean;
69
+ }
70
+ export interface ITicketRequestType extends ITicketAuditedEntity {
71
+ name: string;
72
+ description?: string;
73
+ categoryId: string;
74
+ icon?: string;
75
+ formId: string;
76
+ formVersion?: number;
77
+ workflowId?: string;
78
+ defaultPriority?: TicketPriority;
79
+ defaultAssignedGroupId?: string;
80
+ slaPolicyId?: string;
81
+ publicStatusSchemeId?: string;
82
+ fieldDefinitionIds?: string[];
83
+ layoutIds?: string[];
84
+ audiencePolicyId?: string;
85
+ enabled: boolean;
86
+ }
87
+ export interface IServiceCatalog extends ITicketAuditedEntity {
88
+ portalId: string;
89
+ name: string;
90
+ description?: string;
91
+ order?: number;
92
+ enabled: boolean;
93
+ }
94
+ export interface IServiceCatalogSection extends ITicketAuditedEntity {
95
+ catalogId: string;
96
+ parentSectionId?: string;
97
+ name: string;
98
+ description?: string;
99
+ icon?: string;
100
+ order: number;
101
+ enabled: boolean;
102
+ }
103
+ export interface IServiceCatalogItem extends ITicketAuditedEntity {
104
+ catalogId: string;
105
+ sectionId?: string;
106
+ requestTypeId: string;
107
+ name: string;
108
+ shortDescription?: string;
109
+ imageUrl?: string;
110
+ order: number;
111
+ estimatedDeliveryMinutes?: number;
112
+ audiencePolicyId?: string;
113
+ enabled: boolean;
114
+ }
115
+ export interface ITicketAudienceRule {
116
+ id: string;
117
+ effect: TicketAudienceRuleEffect;
118
+ authenticatedOnly?: boolean;
119
+ organizationIds?: string[];
120
+ contactSegmentIds?: string[];
121
+ contactIds?: string[];
122
+ roleIds?: string[];
123
+ countries?: string[];
124
+ }
125
+ export interface ITicketAudiencePolicy extends ITicketAuditedEntity {
126
+ name: string;
127
+ description?: string;
128
+ defaultEffect: TicketAudienceRuleEffect;
129
+ rules: ITicketAudienceRule[];
130
+ enabled: boolean;
131
+ }
132
+ export interface ITicketRequestDraft {
133
+ id: string;
134
+ spaceId: string;
135
+ portalId: string;
136
+ requestTypeId: string;
137
+ contactId?: string;
138
+ formId: string;
139
+ formVersion?: number;
140
+ formSubmissionId?: string;
141
+ status: TicketRequestDraftStatus;
142
+ createdAt: Date;
143
+ updatedAt?: Date;
144
+ expiresAt: Date;
145
+ submittedTicketId?: string;
146
+ }
147
+ export interface ITicketPublicStatus extends ITicketAuditedEntity {
148
+ name: string;
149
+ description?: string;
150
+ color?: string;
151
+ icon?: string;
152
+ order: number;
153
+ }
154
+ export interface ITicketPublicStatusMapping extends ITicketAuditedEntity {
155
+ schemeId: string;
156
+ publicStatusId: string;
157
+ internalStatusIds: string[];
158
+ }
159
+ export interface ITicketPublicStatusScheme extends ITicketAuditedEntity {
160
+ name: string;
161
+ description?: string;
162
+ defaultPublicStatusId?: string;
163
+ enabled: boolean;
164
+ }
165
+ /** Safe customer projection; internal activity, notes, routing and SLA details are intentionally excluded. */
166
+ export interface ICustomerTicketView {
167
+ id: string;
168
+ number: number;
169
+ title: string;
170
+ description?: string;
171
+ requestTypeId?: string;
172
+ categoryId: string;
173
+ publicStatus: ITicketPublicStatus;
174
+ priority?: TicketPriority;
175
+ publicProperties?: ITicketProperty[];
176
+ createdAt: Date;
177
+ updatedAt?: Date;
178
+ resolvedAt?: Date;
179
+ messages?: ITicketMessageReference[];
180
+ availableActions: TicketCustomerAction[];
181
+ }
182
+ /** Reference only. Article content and lifecycle remain authoritative in Docs/Knowledge. */
183
+ export interface ITicketKnowledgeReference extends ITicketAuditedEntity {
184
+ referenceType: TicketKnowledgeReferenceType;
185
+ documentId: string;
186
+ portalIds?: string[];
187
+ requestTypeIds?: string[];
188
+ categoryIds?: string[];
189
+ locales?: string[];
190
+ audiencePolicyId?: string;
191
+ order?: number;
192
+ enabled: boolean;
193
+ }
194
+ /** Rules may work globally at portal level and become more specific by request type/category. */
195
+ export interface ITicketDeflectionRule extends ITicketAuditedEntity {
196
+ name: string;
197
+ portalId: string;
198
+ requestTypeIds?: string[];
199
+ categoryIds?: string[];
200
+ knowledgeReferenceIds?: string[];
201
+ includeKnownIssues?: boolean;
202
+ minimumScore?: number;
203
+ maximumSuggestions?: number;
204
+ audiencePolicyId?: string;
205
+ enabled: boolean;
206
+ }
207
+ export interface ITicketDeflectionSuggestion {
208
+ knowledgeReferenceId?: string;
209
+ knownIssueTicketId?: string;
210
+ score?: number;
211
+ position: number;
212
+ }
213
+ export interface ITicketDeflectionEvent {
214
+ id: string;
215
+ spaceId: string;
216
+ portalId: string;
217
+ sessionId: string;
218
+ contactId?: string;
219
+ requestTypeId?: string;
220
+ categoryId?: string;
221
+ query: string;
222
+ suggestions: ITicketDeflectionSuggestion[];
223
+ selectedKnowledgeReferenceId?: string;
224
+ selectedKnownIssueTicketId?: string;
225
+ outcome: TicketDeflectionOutcome;
226
+ createdTicketId?: string;
227
+ occurredAt: Date;
228
+ }
229
+ export interface ITicketCustomerNotificationPreference {
230
+ id: string;
231
+ spaceId: string;
232
+ contactId: string;
233
+ portalId?: string;
234
+ locale?: string;
235
+ channelTypes: ChannelType[];
236
+ enabledEvents: TicketNotificationEvent[];
237
+ mutedTicketIds?: string[];
238
+ updatedAt: Date;
239
+ }
240
+ export interface ICreateTicketRequestDraftDto {
241
+ portalId: string;
242
+ requestTypeId: string;
243
+ contactId?: string;
244
+ }
245
+ export interface ISubmitTicketRequestDto {
246
+ draftId: string;
247
+ formSubmissionId: string;
248
+ idempotencyKey: string;
249
+ }
250
+ export interface ICustomerTicketActionDto {
251
+ action: TicketCustomerAction;
252
+ comment?: string;
253
+ attachmentIds?: string[];
254
+ formSubmissionId?: string;
255
+ }