@cstar.help/js 0.4.0 → 0.5.1

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.
package/dist/index.d.ts CHANGED
@@ -419,6 +419,38 @@ interface WebhookTestResult {
419
419
  responseTimeMs: number;
420
420
  error: string | null;
421
421
  }
422
+ /** Parameters for subscribing (REST Hooks / Zapier protocol). */
423
+ interface WebhookSubscribeParams {
424
+ targetUrl: string;
425
+ event: string;
426
+ }
427
+ /** A REST Hooks subscription. */
428
+ interface WebhookSubscription {
429
+ id: string;
430
+ object: 'webhook';
431
+ [key: string]: unknown;
432
+ }
433
+ /** Parameters for registering a CLI listener. */
434
+ interface WebhookListenerParams {
435
+ forwardUrl: string;
436
+ events?: string[];
437
+ }
438
+ /** A registered CLI listener. */
439
+ interface WebhookListener {
440
+ listenerId: string;
441
+ secret: string;
442
+ }
443
+ /** Parameters for triggering a test webhook event. */
444
+ interface WebhookTriggerTestParams {
445
+ event: string;
446
+ data?: Record<string, unknown>;
447
+ }
448
+ /** Result of triggering a test webhook event. */
449
+ interface WebhookTriggerTestResult {
450
+ event: string;
451
+ deliveredTo: number;
452
+ [key: string]: unknown;
453
+ }
422
454
 
423
455
  /** Manage webhook endpoints. */
424
456
  declare class WebhooksResource extends BaseResource<Webhook, WebhookListParams, WebhookCreateParams, WebhookUpdateParams> {
@@ -427,6 +459,178 @@ declare class WebhooksResource extends BaseResource<Webhook, WebhookListParams,
427
459
  test(webhookId: string, params?: {
428
460
  event?: WebhookEventType;
429
461
  }): Promise<ApiResponse<WebhookTestResult>>;
462
+ /** Fire a test webhook event to all active webhooks and CLI listeners. */
463
+ triggerTest(params: WebhookTriggerTestParams, options?: RequestOptions): Promise<ApiResponse<WebhookTriggerTestResult>>;
464
+ /** Get a sample webhook payload for an event type (used by Zapier). */
465
+ sample(event: string): Promise<ApiResponse<unknown[]>>;
466
+ /** Subscribe to an event (REST Hooks / Zapier protocol). */
467
+ subscribe(params: WebhookSubscribeParams, options?: RequestOptions): Promise<ApiResponse<WebhookSubscription>>;
468
+ /** Unsubscribe from an event (REST Hooks / Zapier protocol). Returns void (204 No Content). */
469
+ unsubscribe(subscriptionId: string): Promise<void>;
470
+ /** Register a CLI listener (returns listenerId and signing secret). */
471
+ listen(params: WebhookListenerParams, options?: RequestOptions): Promise<ApiResponse<WebhookListener>>;
472
+ /** Deregister a CLI listener. */
473
+ unlisten(listenerId: string): Promise<ApiResponse<{
474
+ deleted: true;
475
+ listenerId: string;
476
+ }>>;
477
+ }
478
+
479
+ /** A condition in an automation rule. */
480
+ interface AutomationCondition {
481
+ field: string;
482
+ operator: string;
483
+ value?: unknown;
484
+ }
485
+ /** Condition groups (all must match AND at least one any must match). */
486
+ interface AutomationConditions {
487
+ all: AutomationCondition[];
488
+ any: AutomationCondition[];
489
+ }
490
+ /** An action in an automation rule. */
491
+ interface AutomationAction {
492
+ type: string;
493
+ [key: string]: unknown;
494
+ }
495
+ /** A cStar automation rule. */
496
+ interface AutomationRule {
497
+ id: string;
498
+ object: 'automation_rule';
499
+ name: string;
500
+ description: string;
501
+ triggerEvent: string;
502
+ triggerFilter: Record<string, unknown>;
503
+ conditions: AutomationConditions;
504
+ actions: AutomationAction[];
505
+ enabled: boolean;
506
+ position: number;
507
+ stopAfter: boolean;
508
+ maxExecutionsPerTicket: number;
509
+ cooldownSeconds: number;
510
+ executionCount: number;
511
+ lastExecutedAt: string | null;
512
+ createdBy: string | null;
513
+ createdAt: string;
514
+ updatedAt: string;
515
+ }
516
+ /** An automation execution log entry. */
517
+ interface AutomationExecution {
518
+ id: string;
519
+ object: 'automation_execution';
520
+ ruleId: string;
521
+ ruleName: string | null;
522
+ triggerEvent: string;
523
+ resourceType: string;
524
+ resourceId: string;
525
+ conditionsMatched: boolean;
526
+ actionsExecuted: Array<{
527
+ action: string;
528
+ success: boolean;
529
+ error?: string;
530
+ }>;
531
+ skippedReason: string | null;
532
+ dryRun: boolean;
533
+ executionMs: number;
534
+ createdAt: string;
535
+ }
536
+ /** Parameters for listing automation rules. */
537
+ interface AutomationListParams extends PaginationParams {
538
+ enabled?: boolean;
539
+ triggerEvent?: string;
540
+ }
541
+ /** Parameters for creating an automation rule. */
542
+ interface AutomationCreateParams {
543
+ name: string;
544
+ description?: string;
545
+ triggerEvent: string;
546
+ triggerFilter?: Record<string, unknown>;
547
+ conditions?: AutomationConditions;
548
+ actions?: AutomationAction[];
549
+ enabled?: boolean;
550
+ stopAfter?: boolean;
551
+ maxExecutionsPerTicket?: number;
552
+ cooldownSeconds?: number;
553
+ }
554
+ /** Parameters for updating an automation rule. */
555
+ interface AutomationUpdateParams {
556
+ name?: string;
557
+ description?: string;
558
+ triggerEvent?: string;
559
+ triggerFilter?: Record<string, unknown>;
560
+ conditions?: AutomationConditions;
561
+ actions?: AutomationAction[];
562
+ enabled?: boolean;
563
+ stopAfter?: boolean;
564
+ maxExecutionsPerTicket?: number;
565
+ cooldownSeconds?: number;
566
+ }
567
+ /** Parameters for listing executions. */
568
+ interface AutomationExecutionListParams extends PaginationParams {
569
+ triggerEvent?: string;
570
+ resourceId?: string;
571
+ }
572
+ /** Result of a dry-run test. */
573
+ interface AutomationTestResult {
574
+ wouldMatch: boolean;
575
+ conditionResults: {
576
+ all: Array<{
577
+ field: string;
578
+ operator: string;
579
+ value: unknown;
580
+ actual: unknown;
581
+ passed: boolean;
582
+ }>;
583
+ any: Array<{
584
+ field: string;
585
+ operator: string;
586
+ value: unknown;
587
+ actual: unknown;
588
+ passed: boolean;
589
+ }>;
590
+ };
591
+ actionsWouldExecute: Array<{
592
+ action: string;
593
+ success: boolean;
594
+ preview?: string;
595
+ }>;
596
+ }
597
+
598
+ /** Manage automation rules. */
599
+ declare class AutomationsResource extends BaseResource<AutomationRule, AutomationListParams, AutomationCreateParams, AutomationUpdateParams> {
600
+ constructor(client: HttpClient);
601
+ /** Toggle a rule's enabled state. */
602
+ toggle(ruleId: string, enabled?: boolean): Promise<ApiResponse<AutomationRule>>;
603
+ /** Reorder rules by providing an ordered array of IDs. */
604
+ reorder(orderedIds: string[]): Promise<ApiResponse<AutomationRule[]>>;
605
+ /** Dry-run a rule against a specific resource (no actions executed). */
606
+ test(ruleId: string, params: {
607
+ resourceType: string;
608
+ resourceId: string;
609
+ }): Promise<ApiResponse<AutomationTestResult>>;
610
+ /** Get execution history for a specific rule. */
611
+ executions(ruleId: string, params?: AutomationExecutionListParams): Promise<ListResponse<AutomationExecution>>;
612
+ /** Get all execution history for the team. */
613
+ allExecutions(params?: AutomationExecutionListParams): Promise<ListResponse<AutomationExecution>>;
614
+ /** Test conditions against sample data (without a rule). */
615
+ evaluate(params: {
616
+ conditions: {
617
+ all: Array<{
618
+ field: string;
619
+ operator: string;
620
+ value?: unknown;
621
+ }>;
622
+ any: Array<{
623
+ field: string;
624
+ operator: string;
625
+ value?: unknown;
626
+ }>;
627
+ };
628
+ data: Record<string, unknown>;
629
+ changes?: Record<string, unknown>;
630
+ }): Promise<ApiResponse<{
631
+ matched: boolean;
632
+ conditionResults: unknown;
633
+ }>>;
430
634
  }
431
635
 
432
636
  /** A cStar article category. */
@@ -572,6 +776,1502 @@ declare class CommunityTopicsResource extends BaseResource<CommunityTopic, Recor
572
776
  constructor(client: HttpClient);
573
777
  }
574
778
 
779
+ /** A team member (agent). */
780
+ interface Member {
781
+ id: string;
782
+ object: 'member';
783
+ userId: string;
784
+ name: string;
785
+ email: string;
786
+ avatarUrl: string | null;
787
+ role: string;
788
+ roleDisplayName: string;
789
+ permissions: string[];
790
+ level: number;
791
+ xp: number;
792
+ joinedAt: string;
793
+ }
794
+ /** Parameters for listing members. */
795
+ interface MemberListParams extends PaginationParams {
796
+ role?: string;
797
+ }
798
+ /** Parameters for updating a member. */
799
+ interface MemberUpdateParams {
800
+ role?: string;
801
+ }
802
+ /** A team invite. */
803
+ interface Invite {
804
+ id: string;
805
+ object: 'invite';
806
+ email: string;
807
+ role: string;
808
+ status: string;
809
+ inviterName: string | null;
810
+ inviterEmail: string | null;
811
+ createdAt: string;
812
+ expiresAt: string;
813
+ }
814
+ /** Parameters for listing invites. */
815
+ interface InviteListParams extends PaginationParams {
816
+ status?: string;
817
+ }
818
+ /** Parameters for creating an invite. */
819
+ interface InviteCreateParams {
820
+ email: string;
821
+ role?: string;
822
+ }
823
+
824
+ /** Manage team invites as a sub-resource. */
825
+ declare class InvitesResource {
826
+ private readonly client;
827
+ constructor(client: HttpClient);
828
+ /** List pending invites. */
829
+ list(params?: InviteListParams): Promise<ListResponse<Invite>>;
830
+ /** Create and send a new invite. */
831
+ create(params: InviteCreateParams, options?: RequestOptions): Promise<ApiResponse<Invite>>;
832
+ /** Revoke a pending invite. */
833
+ del(inviteId: string): Promise<ApiResponse<DeleteResponse>>;
834
+ }
835
+ /** Manage team members. */
836
+ declare class MembersResource {
837
+ private readonly client;
838
+ /** Sub-resource for team invites. */
839
+ readonly invites: InvitesResource;
840
+ constructor(client: HttpClient);
841
+ /** List all team members. */
842
+ list(params?: MemberListParams): Promise<ListResponse<Member>>;
843
+ /** Get a single member by membership ID. */
844
+ get(memberId: string): Promise<ApiResponse<Member>>;
845
+ /** Update a member's role. */
846
+ update(memberId: string, params: MemberUpdateParams): Promise<ApiResponse<Member>>;
847
+ /** Remove a member from the team. */
848
+ del(memberId: string): Promise<ApiResponse<DeleteResponse>>;
849
+ }
850
+
851
+ /** Team settings object. */
852
+ interface TeamSettings {
853
+ object: 'settings';
854
+ teamName: string;
855
+ teamSlug: string;
856
+ [key: string]: unknown;
857
+ }
858
+ /** Parameters for updating team settings. */
859
+ interface TeamSettingsUpdateParams {
860
+ [key: string]: unknown;
861
+ }
862
+ /** A ticket status configuration. */
863
+ interface TicketStatus {
864
+ key: string;
865
+ object: 'status';
866
+ label: string;
867
+ color: string;
868
+ position: number;
869
+ isDefault: boolean;
870
+ isProtected: boolean;
871
+ }
872
+ /** Parameters for creating a status. */
873
+ interface StatusCreateParams {
874
+ key: string;
875
+ label: string;
876
+ color?: string;
877
+ }
878
+ /** Parameters for updating a status. */
879
+ interface StatusUpdateParams {
880
+ label?: string;
881
+ color?: string;
882
+ }
883
+ /** A quick reply template. */
884
+ interface QuickReply {
885
+ id: string;
886
+ object: 'quick_reply';
887
+ title: string;
888
+ body: string;
889
+ category: string | null;
890
+ position: number;
891
+ createdAt: string;
892
+ updatedAt: string;
893
+ }
894
+ /** Parameters for creating a quick reply. */
895
+ interface QuickReplyCreateParams {
896
+ title: string;
897
+ body: string;
898
+ category?: string;
899
+ }
900
+ /** Parameters for updating a quick reply. */
901
+ interface QuickReplyUpdateParams {
902
+ title?: string;
903
+ body?: string;
904
+ category?: string;
905
+ }
906
+ /** Business hours configuration. */
907
+ interface BusinessHours {
908
+ object: 'business_hours';
909
+ enabled: boolean;
910
+ timezone: string;
911
+ schedule: Record<string, {
912
+ enabled: boolean;
913
+ start: string;
914
+ end: string;
915
+ }>;
916
+ }
917
+ /** Parameters for updating business hours. */
918
+ interface BusinessHoursUpdateParams {
919
+ enabled?: boolean;
920
+ timezone?: string;
921
+ schedule?: Record<string, {
922
+ enabled: boolean;
923
+ start: string;
924
+ end: string;
925
+ }>;
926
+ }
927
+ /** Widget configuration. */
928
+ interface WidgetSettings {
929
+ object: 'widget_settings';
930
+ [key: string]: unknown;
931
+ }
932
+ /** Parameters for updating widget settings. */
933
+ interface WidgetSettingsUpdateParams {
934
+ [key: string]: unknown;
935
+ }
936
+
937
+ /** Manage ticket status configurations. */
938
+ declare class StatusesResource {
939
+ private readonly client;
940
+ constructor(client: HttpClient);
941
+ /** List all statuses. */
942
+ list(): Promise<ApiResponse<TicketStatus[]>>;
943
+ /** Create a new status. */
944
+ create(params: StatusCreateParams, options?: RequestOptions): Promise<ApiResponse<TicketStatus>>;
945
+ /** Update a status. */
946
+ update(statusKey: string, params: StatusUpdateParams): Promise<ApiResponse<TicketStatus>>;
947
+ /** Delete a status. */
948
+ del(statusKey: string): Promise<ApiResponse<DeleteResponse>>;
949
+ /** Reorder statuses. */
950
+ reorder(orderedKeys: string[]): Promise<ApiResponse<TicketStatus[]>>;
951
+ }
952
+ /** Manage quick reply templates. */
953
+ declare class QuickRepliesResource {
954
+ private readonly client;
955
+ constructor(client: HttpClient);
956
+ /** List all quick replies. */
957
+ list(): Promise<ApiResponse<QuickReply[]>>;
958
+ /** Create a new quick reply. */
959
+ create(params: QuickReplyCreateParams, options?: RequestOptions): Promise<ApiResponse<QuickReply>>;
960
+ /** Update a quick reply. */
961
+ update(replyId: string, params: QuickReplyUpdateParams): Promise<ApiResponse<QuickReply>>;
962
+ /** Delete a quick reply. */
963
+ del(replyId: string): Promise<ApiResponse<DeleteResponse>>;
964
+ /** Reorder quick replies. */
965
+ reorder(orderedIds: string[]): Promise<ApiResponse<QuickReply[]>>;
966
+ }
967
+ /** Manage team settings. */
968
+ declare class SettingsResource {
969
+ private readonly client;
970
+ /** Ticket status configuration. */
971
+ readonly statuses: StatusesResource;
972
+ /** Quick reply templates. */
973
+ readonly quickReplies: QuickRepliesResource;
974
+ constructor(client: HttpClient);
975
+ /** Get all team settings. */
976
+ get(): Promise<ApiResponse<TeamSettings>>;
977
+ /** Update team settings (bulk). */
978
+ update(params: TeamSettingsUpdateParams): Promise<ApiResponse<TeamSettings>>;
979
+ /** Get business hours configuration. */
980
+ getBusinessHours(): Promise<ApiResponse<BusinessHours>>;
981
+ /** Update business hours configuration. */
982
+ updateBusinessHours(params: BusinessHoursUpdateParams): Promise<ApiResponse<BusinessHours>>;
983
+ /** Get widget settings. */
984
+ getWidget(): Promise<ApiResponse<WidgetSettings>>;
985
+ /** Update widget settings. */
986
+ updateWidget(params: WidgetSettingsUpdateParams): Promise<ApiResponse<WidgetSettings>>;
987
+ }
988
+
989
+ /** A notification. */
990
+ interface Notification {
991
+ id: string;
992
+ object: 'notification';
993
+ type: string;
994
+ title: string;
995
+ body: string | null;
996
+ resourceType: string | null;
997
+ resourceId: string | null;
998
+ actorId: string | null;
999
+ actorName: string | null;
1000
+ read: boolean;
1001
+ readAt: string | null;
1002
+ createdAt: string;
1003
+ }
1004
+ /** Parameters for listing notifications. */
1005
+ interface NotificationListParams extends PaginationParams {
1006
+ unreadOnly?: boolean;
1007
+ }
1008
+ /** Unread count response. */
1009
+ interface UnreadCount {
1010
+ object: 'unread_count';
1011
+ count: number;
1012
+ }
1013
+
1014
+ /** Manage notifications. */
1015
+ declare class NotificationsResource {
1016
+ private readonly client;
1017
+ constructor(client: HttpClient);
1018
+ /** List notifications for a user. */
1019
+ list(params: NotificationListParams & {
1020
+ userId: string;
1021
+ }): Promise<ListResponse<Notification>>;
1022
+ /** Get unread notification count for a user. */
1023
+ unreadCount(userId: string): Promise<ApiResponse<UnreadCount>>;
1024
+ /** Mark a single notification as read. */
1025
+ markRead(notificationId: string, userId: string): Promise<ApiResponse<Notification>>;
1026
+ /** Mark all notifications as read. */
1027
+ markAllRead(userId: string): Promise<ApiResponse<{
1028
+ markedRead: number;
1029
+ }>>;
1030
+ /** Delete (dismiss) a notification. For broadcast notifications, pass userId as a query param. */
1031
+ del(notificationId: string, params?: {
1032
+ userId?: string;
1033
+ }): Promise<ApiResponse<DeleteResponse>>;
1034
+ }
1035
+
1036
+ /** A mention. */
1037
+ interface Mention {
1038
+ id: string;
1039
+ object: 'mention';
1040
+ senderId: string;
1041
+ senderName: string | null;
1042
+ recipientId: string;
1043
+ recipientName: string | null;
1044
+ ticketId: string | null;
1045
+ ticketTitle: string | null;
1046
+ isRead: boolean;
1047
+ createdAt: string;
1048
+ }
1049
+ /** Parameters for listing mentions. */
1050
+ interface MentionListParams extends PaginationParams {
1051
+ isRead?: string;
1052
+ }
1053
+ /** Unread mention count. */
1054
+ interface MentionUnreadCount {
1055
+ unreadCount: number;
1056
+ }
1057
+
1058
+ /** Manage @mentions. */
1059
+ declare class MentionsResource {
1060
+ private readonly client;
1061
+ constructor(client: HttpClient);
1062
+ /** List mentions for a user. */
1063
+ list(params: MentionListParams & {
1064
+ userId: string;
1065
+ }): Promise<ListResponse<Mention>>;
1066
+ /** Get unread mention count for a user. */
1067
+ unreadCount(userId: string): Promise<ApiResponse<MentionUnreadCount>>;
1068
+ /** Mark a single mention as read. */
1069
+ markRead(mentionId: string): Promise<ApiResponse<{
1070
+ id: string;
1071
+ isRead: true;
1072
+ }>>;
1073
+ /** Mark all mentions as read for a user. */
1074
+ markAllRead(userId: string): Promise<ApiResponse<{
1075
+ markedRead: number;
1076
+ }>>;
1077
+ }
1078
+
1079
+ /** A file attachment. */
1080
+ interface Attachment {
1081
+ id: string;
1082
+ object: 'attachment';
1083
+ filename: string;
1084
+ contentType: string;
1085
+ size: number;
1086
+ url: string;
1087
+ ticketId: string | null;
1088
+ uploadedBy: string | null;
1089
+ createdAt: string;
1090
+ }
1091
+ /** Parameters for listing attachments. */
1092
+ interface AttachmentListParams extends PaginationParams {
1093
+ ticketId?: string;
1094
+ }
1095
+
1096
+ /** Manage file attachments. */
1097
+ declare class AttachmentsResource {
1098
+ private readonly client;
1099
+ constructor(client: HttpClient);
1100
+ /** List attachments. */
1101
+ list(params?: AttachmentListParams): Promise<ListResponse<Attachment>>;
1102
+ /** Get a single attachment. */
1103
+ get(attachmentId: string): Promise<ApiResponse<Attachment>>;
1104
+ /** Delete an attachment. */
1105
+ del(attachmentId: string): Promise<ApiResponse<DeleteResponse>>;
1106
+ }
1107
+
1108
+ /** A custom field definition. */
1109
+ interface CustomField {
1110
+ id: string;
1111
+ object: 'custom_field';
1112
+ name: string;
1113
+ key: string;
1114
+ type: 'text' | 'number' | 'select' | 'multiselect' | 'date' | 'boolean';
1115
+ entityType: 'tickets' | 'customers';
1116
+ description: string | null;
1117
+ required: boolean;
1118
+ options: string[] | null;
1119
+ position: number;
1120
+ createdAt: string;
1121
+ updatedAt: string;
1122
+ }
1123
+ /** Parameters for listing custom fields. */
1124
+ interface CustomFieldListParams extends PaginationParams {
1125
+ entityType?: 'tickets' | 'customers';
1126
+ }
1127
+ /** Parameters for creating a custom field. */
1128
+ interface CustomFieldCreateParams {
1129
+ name: string;
1130
+ key: string;
1131
+ type: 'text' | 'number' | 'select' | 'multiselect' | 'date' | 'boolean';
1132
+ entityType: 'tickets' | 'customers';
1133
+ description?: string;
1134
+ required?: boolean;
1135
+ options?: string[];
1136
+ }
1137
+ /** Parameters for updating a custom field. */
1138
+ interface CustomFieldUpdateParams {
1139
+ name?: string;
1140
+ description?: string;
1141
+ required?: boolean;
1142
+ options?: string[];
1143
+ }
1144
+
1145
+ /** Manage custom field definitions. */
1146
+ declare class CustomFieldsResource {
1147
+ private readonly client;
1148
+ constructor(client: HttpClient);
1149
+ /** List custom fields. */
1150
+ list(params?: CustomFieldListParams): Promise<ListResponse<CustomField>>;
1151
+ /** Get a single custom field. */
1152
+ get(fieldId: string): Promise<ApiResponse<CustomField>>;
1153
+ /** Create a custom field. */
1154
+ create(params: CustomFieldCreateParams, options?: RequestOptions): Promise<ApiResponse<CustomField>>;
1155
+ /** Update a custom field. */
1156
+ update(fieldId: string, params: CustomFieldUpdateParams): Promise<ApiResponse<CustomField>>;
1157
+ /** Delete a custom field. */
1158
+ del(fieldId: string): Promise<ApiResponse<DeleteResponse>>;
1159
+ /** Reorder custom fields. */
1160
+ reorder(orderedIds: string[]): Promise<ApiResponse<CustomField[]>>;
1161
+ }
1162
+
1163
+ /** An SLA rule. */
1164
+ interface SlaRule {
1165
+ id: string;
1166
+ object: 'sla_rule';
1167
+ name: string;
1168
+ description: string | null;
1169
+ priority: string;
1170
+ responseTarget: number;
1171
+ resolutionTarget: number;
1172
+ businessHoursOnly: boolean;
1173
+ enabled: boolean;
1174
+ position: number;
1175
+ createdAt: string;
1176
+ updatedAt: string;
1177
+ }
1178
+ /** Parameters for listing SLA rules. */
1179
+ interface SlaRuleListParams extends PaginationParams {
1180
+ enabled?: boolean;
1181
+ }
1182
+ /** Parameters for creating an SLA rule. */
1183
+ interface SlaRuleCreateParams {
1184
+ name: string;
1185
+ description?: string;
1186
+ priority: string;
1187
+ responseTarget: number;
1188
+ resolutionTarget: number;
1189
+ businessHoursOnly?: boolean;
1190
+ enabled?: boolean;
1191
+ }
1192
+ /** Parameters for updating an SLA rule. */
1193
+ interface SlaRuleUpdateParams {
1194
+ name?: string;
1195
+ description?: string;
1196
+ priority?: string;
1197
+ responseTarget?: number;
1198
+ resolutionTarget?: number;
1199
+ businessHoursOnly?: boolean;
1200
+ enabled?: boolean;
1201
+ }
1202
+ /** Parameters for SLA metrics query. */
1203
+ interface SlaMetricsParams {
1204
+ period?: 'day' | 'week' | 'month' | 'quarter';
1205
+ startDate?: string;
1206
+ endDate?: string;
1207
+ agentId?: string;
1208
+ }
1209
+ /** SLA compliance metrics response. */
1210
+ interface SlaMetrics {
1211
+ object: 'sla_metrics';
1212
+ period: string;
1213
+ [key: string]: unknown;
1214
+ }
1215
+
1216
+ /** Manage SLA rules and metrics. */
1217
+ declare class SlaResource {
1218
+ private readonly client;
1219
+ constructor(client: HttpClient);
1220
+ /** List SLA rules. */
1221
+ list(params?: SlaRuleListParams): Promise<ListResponse<SlaRule>>;
1222
+ /** Create an SLA rule. */
1223
+ create(params: SlaRuleCreateParams, options?: RequestOptions): Promise<ApiResponse<SlaRule>>;
1224
+ /** Update an SLA rule. */
1225
+ update(ruleId: string, params: SlaRuleUpdateParams): Promise<ApiResponse<SlaRule>>;
1226
+ /** Delete an SLA rule. */
1227
+ del(ruleId: string): Promise<ApiResponse<DeleteResponse>>;
1228
+ /** Reorder SLA rules by providing an ordered array of IDs. */
1229
+ reorder(orderedIds: string[]): Promise<ApiResponse<SlaRule[]>>;
1230
+ /** Get SLA compliance metrics. */
1231
+ metrics(params?: SlaMetricsParams): Promise<ApiResponse<SlaMetrics>>;
1232
+ }
1233
+
1234
+ /**
1235
+ * Analytics response. Shape varies by `type` parameter:
1236
+ * - overview/tickets: tickets, priorities, statusBreakdown, responseTime, resolutionTime
1237
+ * - performance: agents array
1238
+ * - library: totalArticles, publishedArticles, draftArticles
1239
+ */
1240
+ interface AnalyticsOverview {
1241
+ object: 'analytics';
1242
+ type: string;
1243
+ period: string;
1244
+ /** Present for type=overview and type=tickets */
1245
+ tickets?: {
1246
+ total: number;
1247
+ new: number;
1248
+ closed: number;
1249
+ open: number;
1250
+ };
1251
+ priorities?: Record<string, number>;
1252
+ statusBreakdown?: Record<string, number>;
1253
+ responseTime?: {
1254
+ avgSeconds: number | null;
1255
+ samplesCount: number;
1256
+ };
1257
+ resolutionTime?: {
1258
+ avgSeconds: number | null;
1259
+ samplesCount: number;
1260
+ };
1261
+ /** Present for type=performance */
1262
+ agents?: Array<{
1263
+ agentId: string;
1264
+ ticketsClosed: number;
1265
+ avgResponseSeconds: number | null;
1266
+ goldTier: number;
1267
+ missedSla: number;
1268
+ }>;
1269
+ /** Present for type=library */
1270
+ totalArticles?: number;
1271
+ publishedArticles?: number;
1272
+ draftArticles?: number;
1273
+ [key: string]: unknown;
1274
+ }
1275
+ /** Analytics query parameters. */
1276
+ interface AnalyticsParams {
1277
+ type?: 'overview' | 'tickets' | 'performance' | 'library';
1278
+ period?: 'day' | 'week' | 'month' | 'quarter';
1279
+ agentId?: string;
1280
+ }
1281
+ /** CSAT statistics (from /csat/stats). */
1282
+ interface CsatStats {
1283
+ object: 'csat_stats';
1284
+ period: string;
1285
+ totalSent: number;
1286
+ totalCompleted: number;
1287
+ responseRate: number;
1288
+ averageRating: number | null;
1289
+ distribution: Record<string, number>;
1290
+ positiveRate: number;
1291
+ }
1292
+ /** A CSAT survey (from /csat/surveys). */
1293
+ interface CsatSurvey {
1294
+ id: string;
1295
+ object: 'csat_survey';
1296
+ ticketId: string;
1297
+ customerId: string | null;
1298
+ agentId: string | null;
1299
+ rating: number | null;
1300
+ comment: string | null;
1301
+ sentAt: string | null;
1302
+ completedAt: string | null;
1303
+ expiresAt: string | null;
1304
+ createdAt: string;
1305
+ }
1306
+ /** Parameters for listing CSAT surveys. */
1307
+ interface CsatSurveyListParams extends PaginationParams {
1308
+ completed?: string;
1309
+ agentId?: string;
1310
+ }
1311
+ /** Parameters for creating a CSAT survey. */
1312
+ interface CsatSurveyCreateParams {
1313
+ ticketId: string;
1314
+ customerId?: string;
1315
+ agentId?: string;
1316
+ }
1317
+ /** CSAT settings. */
1318
+ interface CsatSettings {
1319
+ object: 'csat_settings';
1320
+ enabled: boolean;
1321
+ delayMinutes: number;
1322
+ expirationDays: number;
1323
+ }
1324
+ /** Parameters for updating CSAT settings. */
1325
+ interface CsatSettingsUpdateParams {
1326
+ enabled?: boolean;
1327
+ delayMinutes?: number;
1328
+ expirationDays?: number;
1329
+ }
1330
+
1331
+ /** Manage CSAT surveys. */
1332
+ declare class CsatSurveysResource {
1333
+ private readonly client;
1334
+ constructor(client: HttpClient);
1335
+ /** List CSAT surveys. */
1336
+ list(params?: CsatSurveyListParams): Promise<ListResponse<CsatSurvey>>;
1337
+ /** Get a single CSAT survey. */
1338
+ get(surveyId: string): Promise<ApiResponse<CsatSurvey>>;
1339
+ /** Create and send a CSAT survey. */
1340
+ create(params: CsatSurveyCreateParams): Promise<ApiResponse<CsatSurvey>>;
1341
+ }
1342
+ /** Access analytics and CSAT data. */
1343
+ declare class AnalyticsResource {
1344
+ private readonly client;
1345
+ /** CSAT surveys sub-resource. */
1346
+ readonly csatSurveys: CsatSurveysResource;
1347
+ constructor(client: HttpClient);
1348
+ /** Get analytics data. Specify type to control the response shape. */
1349
+ get(params?: AnalyticsParams): Promise<ApiResponse<AnalyticsOverview>>;
1350
+ /** Get analytics overview (shortcut for type=overview). */
1351
+ overview(params?: Omit<AnalyticsParams, 'type'>): Promise<ApiResponse<AnalyticsOverview>>;
1352
+ /** Get agent performance stats (shortcut for type=performance). */
1353
+ performance(params?: Omit<AnalyticsParams, 'type'> & {
1354
+ agentId?: string;
1355
+ }): Promise<ApiResponse<AnalyticsOverview>>;
1356
+ /** Get library analytics (shortcut for type=library). */
1357
+ library(params?: Omit<AnalyticsParams, 'type'>): Promise<ApiResponse<AnalyticsOverview>>;
1358
+ /** Get CSAT statistics. */
1359
+ csatStats(params?: {
1360
+ period?: string;
1361
+ agentId?: string;
1362
+ }): Promise<ApiResponse<CsatStats>>;
1363
+ /** Get CSAT settings. */
1364
+ csatSettings(): Promise<ApiResponse<CsatSettings>>;
1365
+ /** Update CSAT settings. */
1366
+ updateCsatSettings(params: CsatSettingsUpdateParams): Promise<ApiResponse<CsatSettings>>;
1367
+ }
1368
+
1369
+ /** Bulk operation result. */
1370
+ interface BulkResult {
1371
+ object: 'bulk_result';
1372
+ action: string;
1373
+ resource: string;
1374
+ total: number;
1375
+ succeeded: number;
1376
+ failed: number;
1377
+ errors: Array<{
1378
+ id: string;
1379
+ error: string;
1380
+ }>;
1381
+ }
1382
+ /** Parameters for a bulk update. */
1383
+ interface BulkUpdateParams {
1384
+ resource: 'tickets' | 'customers' | 'articles';
1385
+ ids: string[];
1386
+ data: Record<string, unknown>;
1387
+ }
1388
+ /** Parameters for a bulk delete. */
1389
+ interface BulkDeleteParams {
1390
+ resource: 'tickets' | 'customers' | 'articles';
1391
+ ids: string[];
1392
+ }
1393
+
1394
+ /** Perform bulk operations on resources. */
1395
+ declare class BulkResource {
1396
+ private readonly client;
1397
+ constructor(client: HttpClient);
1398
+ /** Bulk update resources. */
1399
+ update(params: BulkUpdateParams, options?: RequestOptions): Promise<ApiResponse<BulkResult>>;
1400
+ /** Bulk delete resources. */
1401
+ del(params: BulkDeleteParams, options?: RequestOptions): Promise<ApiResponse<BulkResult>>;
1402
+ }
1403
+
1404
+ /** Export request parameters. */
1405
+ interface ExportCreateParams {
1406
+ resources: Array<{
1407
+ type: 'tickets' | 'customers' | 'articles';
1408
+ filters?: Record<string, unknown>;
1409
+ }>;
1410
+ format?: 'json' | 'csv';
1411
+ }
1412
+ /** Export response. */
1413
+ interface ExportResult {
1414
+ object: 'export';
1415
+ format: string;
1416
+ resources: Record<string, unknown[]> | string;
1417
+ totalRows: number;
1418
+ }
1419
+
1420
+ /** Import request parameters. */
1421
+ interface ImportCreateParams {
1422
+ resource: 'tickets' | 'customers' | 'articles';
1423
+ records: Record<string, unknown>[];
1424
+ mergeStrategy?: 'skip' | 'overwrite' | 'merge';
1425
+ }
1426
+ /** Import result. */
1427
+ interface ImportResult {
1428
+ object: 'import_result';
1429
+ resource: string;
1430
+ total: number;
1431
+ created: number;
1432
+ updated: number;
1433
+ skipped: number;
1434
+ errors: Array<{
1435
+ index: number;
1436
+ error: string;
1437
+ }>;
1438
+ }
1439
+ /** Import log entry. */
1440
+ interface ImportLog {
1441
+ id: string;
1442
+ object: 'import_log';
1443
+ resource: string;
1444
+ status: string;
1445
+ totalRecords: number;
1446
+ created: number;
1447
+ updated: number;
1448
+ skipped: number;
1449
+ errors: number;
1450
+ createdAt: string;
1451
+ }
1452
+ /** Parameters for listing import logs. */
1453
+ interface ImportLogListParams extends PaginationParams {
1454
+ resource?: string;
1455
+ }
1456
+
1457
+ /** Export data from your team. */
1458
+ declare class ExportResource {
1459
+ private readonly client;
1460
+ constructor(client: HttpClient);
1461
+ /** Create an export. Returns exported data synchronously. */
1462
+ create(params: ExportCreateParams, options?: RequestOptions): Promise<ApiResponse<ExportResult>>;
1463
+ }
1464
+ /** Import data into your team. */
1465
+ declare class ImportResource {
1466
+ private readonly client;
1467
+ constructor(client: HttpClient);
1468
+ /** Run an import. Processes records synchronously (max 500). */
1469
+ create(params: ImportCreateParams, options?: RequestOptions): Promise<ApiResponse<ImportResult>>;
1470
+ /** List import history logs. */
1471
+ logs(params?: ImportLogListParams): Promise<ListResponse<ImportLog>>;
1472
+ /** Get a single import log. */
1473
+ getLog(logId: string): Promise<ApiResponse<ImportLog>>;
1474
+ }
1475
+
1476
+ /** An audit log entry. */
1477
+ interface AuditLogEntry {
1478
+ id: string;
1479
+ object: 'audit_log_entry';
1480
+ action: string;
1481
+ resourceType: string;
1482
+ resourceId: string | null;
1483
+ actorId: string | null;
1484
+ actorName: string | null;
1485
+ actorType: string;
1486
+ details: Record<string, unknown>;
1487
+ ipAddress: string | null;
1488
+ createdAt: string;
1489
+ }
1490
+ /** Parameters for listing audit log entries. */
1491
+ interface AuditLogListParams extends PaginationParams {
1492
+ action?: string;
1493
+ resourceType?: string;
1494
+ resourceId?: string;
1495
+ actorId?: string;
1496
+ startDate?: string;
1497
+ endDate?: string;
1498
+ }
1499
+
1500
+ /** Access the audit log. */
1501
+ declare class AuditLogResource {
1502
+ private readonly client;
1503
+ constructor(client: HttpClient);
1504
+ /** List audit log entries. */
1505
+ list(params?: AuditLogListParams): Promise<ListResponse<AuditLogEntry>>;
1506
+ }
1507
+
1508
+ /** Search result item. Shape varies by type. */
1509
+ interface SearchResult {
1510
+ type: 'ticket' | 'customer' | 'article';
1511
+ id: string;
1512
+ /** Title (tickets, articles) or name (customers). */
1513
+ title?: string;
1514
+ name?: string;
1515
+ email?: string;
1516
+ status?: string;
1517
+ priority?: string;
1518
+ [key: string]: unknown;
1519
+ }
1520
+ /** Search parameters. */
1521
+ interface SearchParams {
1522
+ query: string;
1523
+ types?: Array<'tickets' | 'customers' | 'articles'>;
1524
+ limit?: number;
1525
+ }
1526
+
1527
+ /** Search across tickets, customers, and articles. */
1528
+ declare class SearchResource {
1529
+ private readonly client;
1530
+ constructor(client: HttpClient);
1531
+ /** Perform a cross-resource search. */
1532
+ query(params: SearchParams): Promise<ApiResponse<SearchResult[]>>;
1533
+ }
1534
+
1535
+ /** A tag with usage count. */
1536
+ interface Tag {
1537
+ object: 'tag';
1538
+ name: string;
1539
+ count: number;
1540
+ }
1541
+ /** Parameters for listing tags. */
1542
+ interface TagListParams extends PaginationParams {
1543
+ search?: string;
1544
+ }
1545
+
1546
+ /** Manage tags. */
1547
+ declare class TagsResource {
1548
+ private readonly client;
1549
+ constructor(client: HttpClient);
1550
+ /** List all tags with usage counts. */
1551
+ list(params?: TagListParams): Promise<ListResponse<Tag>>;
1552
+ /** Create a tag. */
1553
+ create(name: string, options?: RequestOptions): Promise<ApiResponse<Tag>>;
1554
+ /** Delete a tag. */
1555
+ del(name: string): Promise<ApiResponse<DeleteResponse>>;
1556
+ }
1557
+
1558
+ /** An activity/timeline event. */
1559
+ interface ActivityEvent {
1560
+ id: string;
1561
+ object: 'activity';
1562
+ type: string;
1563
+ resourceType: string;
1564
+ resourceId: string | null;
1565
+ actorId: string | null;
1566
+ actorName: string | null;
1567
+ description: string;
1568
+ details: Record<string, unknown>;
1569
+ createdAt: string;
1570
+ }
1571
+ /** Parameters for listing activity. */
1572
+ interface ActivityListParams extends PaginationParams {
1573
+ resourceType?: string;
1574
+ resourceId?: string;
1575
+ type?: string;
1576
+ }
1577
+
1578
+ /** Access the activity feed. */
1579
+ declare class ActivityResource {
1580
+ private readonly client;
1581
+ constructor(client: HttpClient);
1582
+ /** List recent activity events. */
1583
+ list(params?: ActivityListParams): Promise<ListResponse<ActivityEvent>>;
1584
+ }
1585
+
1586
+ /** A customer group/segment. */
1587
+ interface CustomerGroup {
1588
+ id: string;
1589
+ object: 'customer_group';
1590
+ name: string;
1591
+ description: string | null;
1592
+ filters: Record<string, unknown>;
1593
+ customerCount: number;
1594
+ createdAt: string;
1595
+ updatedAt: string;
1596
+ }
1597
+ /** Parameters for listing customer groups. */
1598
+ interface CustomerGroupListParams extends PaginationParams {
1599
+ search?: string;
1600
+ }
1601
+ /** Parameters for creating a customer group. */
1602
+ interface CustomerGroupCreateParams {
1603
+ name: string;
1604
+ description?: string;
1605
+ filters?: Record<string, unknown>;
1606
+ }
1607
+ /** Parameters for updating a customer group. */
1608
+ interface CustomerGroupUpdateParams {
1609
+ name?: string;
1610
+ description?: string;
1611
+ filters?: Record<string, unknown>;
1612
+ }
1613
+ /** Parameters for listing group members. */
1614
+ interface CustomerGroupMemberListParams extends PaginationParams {
1615
+ }
1616
+ /** Parameters for adding members to a group. */
1617
+ interface CustomerGroupAddMembersParams {
1618
+ customerId?: string;
1619
+ customerIds?: string[];
1620
+ }
1621
+ /** Group members list result. */
1622
+ interface CustomerGroupMembersResult {
1623
+ data: Array<{
1624
+ id: string;
1625
+ object: 'customer';
1626
+ name: string | null;
1627
+ email: string | null;
1628
+ sentiment: string;
1629
+ tags: string[];
1630
+ joinedGroupAt: string;
1631
+ }>;
1632
+ pagination: {
1633
+ total: number;
1634
+ page: number;
1635
+ pageSize: number;
1636
+ hasMore: boolean;
1637
+ };
1638
+ }
1639
+ /** Result of adding members to a group. */
1640
+ interface CustomerGroupAddResult {
1641
+ added: number;
1642
+ total: number;
1643
+ skipped: number;
1644
+ }
1645
+ /** Result of removing a member from a group. */
1646
+ interface CustomerGroupRemoveResult {
1647
+ removed: true;
1648
+ customerId: string;
1649
+ groupId: string;
1650
+ }
1651
+
1652
+ /** Manage group memberships as a sub-resource. */
1653
+ declare class CustomerGroupMembersResource {
1654
+ private readonly client;
1655
+ constructor(client: HttpClient);
1656
+ /** List members in a group. */
1657
+ list(groupId: string, params?: CustomerGroupMemberListParams): Promise<ApiResponse<CustomerGroupMembersResult>>;
1658
+ /** Add member(s) to a group. */
1659
+ add(groupId: string, params: CustomerGroupAddMembersParams, options?: RequestOptions): Promise<ApiResponse<CustomerGroupAddResult>>;
1660
+ /** Remove a member from a group. */
1661
+ remove(groupId: string, customerId: string): Promise<ApiResponse<CustomerGroupRemoveResult>>;
1662
+ }
1663
+ /** Manage customer groups/segments. */
1664
+ declare class CustomerGroupsResource extends BaseResource<CustomerGroup, CustomerGroupListParams, CustomerGroupCreateParams, CustomerGroupUpdateParams> {
1665
+ /** Sub-resource for group memberships. */
1666
+ readonly members: CustomerGroupMembersResource;
1667
+ constructor(client: HttpClient);
1668
+ }
1669
+
1670
+ /** Player stats. */
1671
+ interface Player {
1672
+ object: 'player';
1673
+ userId: string;
1674
+ name: string | null;
1675
+ level: number;
1676
+ xp: number;
1677
+ xpToNextLevel: number;
1678
+ totalXp: number;
1679
+ streak: number;
1680
+ ticketsResolved: number;
1681
+ rank: number | null;
1682
+ scores: {
1683
+ daily: number;
1684
+ weekly: number;
1685
+ allTime: number;
1686
+ };
1687
+ [key: string]: unknown;
1688
+ }
1689
+ /** Boss state. */
1690
+ interface Boss {
1691
+ object: 'boss';
1692
+ active: boolean;
1693
+ name: string | null;
1694
+ title: string | null;
1695
+ difficulty: string | null;
1696
+ health: number;
1697
+ maxHealth: number;
1698
+ healthPercent: number;
1699
+ abilities: Record<string, unknown> | null;
1700
+ participants: Array<{
1701
+ userId: string;
1702
+ name: string | null;
1703
+ damage: number;
1704
+ }>;
1705
+ spawnedAt: string | null;
1706
+ }
1707
+ /** Boss damage result. */
1708
+ interface BossDamageResult {
1709
+ object: 'boss_damage';
1710
+ damage: number;
1711
+ bossHealth: number;
1712
+ bossMaxHealth: number;
1713
+ defeated: boolean;
1714
+ [key: string]: unknown;
1715
+ }
1716
+ /** Boss defeat record. */
1717
+ interface BossDefeat {
1718
+ id: string;
1719
+ object: 'boss_defeat';
1720
+ bossName: string;
1721
+ difficulty: string;
1722
+ defeatedAt: string;
1723
+ participants: Array<{
1724
+ userId: string;
1725
+ name: string | null;
1726
+ damage: number;
1727
+ }>;
1728
+ [key: string]: unknown;
1729
+ }
1730
+ /** Parameters for listing boss defeats. */
1731
+ interface BossDefeatListParams extends PaginationParams {
1732
+ }
1733
+ /** Parameters for spawning a boss. */
1734
+ interface BossSpawnParams {
1735
+ difficulty?: 'easy' | 'medium' | 'hard';
1736
+ }
1737
+ /** Parameters for dealing boss damage. */
1738
+ interface BossDamageParams {
1739
+ userId: string;
1740
+ ticketId: string;
1741
+ }
1742
+ /** Leaderboard entry. */
1743
+ interface LeaderboardEntry {
1744
+ object: 'leaderboard_entry';
1745
+ rank: number;
1746
+ userId: string;
1747
+ name: string | null;
1748
+ avatarUrl: string | null;
1749
+ score: number;
1750
+ level: number;
1751
+ }
1752
+ /** Leaderboard parameters. */
1753
+ interface LeaderboardParams extends PaginationParams {
1754
+ period?: 'daily' | 'weekly' | 'allTime';
1755
+ }
1756
+ /** An achievement. */
1757
+ interface Achievement {
1758
+ id: string;
1759
+ object: 'achievement';
1760
+ name: string;
1761
+ description: string | null;
1762
+ category: string | null;
1763
+ icon: string | null;
1764
+ xpReward: number;
1765
+ unlocked: boolean;
1766
+ unlockedAt: string | null;
1767
+ progress?: {
1768
+ current: number;
1769
+ target: number;
1770
+ };
1771
+ }
1772
+ /** Parameters for listing achievements. */
1773
+ interface AchievementListParams extends PaginationParams {
1774
+ category?: string;
1775
+ }
1776
+ /** A daily quest. */
1777
+ interface Quest {
1778
+ id: string;
1779
+ object: 'quest';
1780
+ title: string;
1781
+ description: string | null;
1782
+ type: string;
1783
+ target: number;
1784
+ current: number;
1785
+ completed: boolean;
1786
+ xpReward: number;
1787
+ completedAt: string | null;
1788
+ }
1789
+ /** A daily puzzle. */
1790
+ interface Puzzle {
1791
+ id: string;
1792
+ object: 'puzzle';
1793
+ type: string;
1794
+ difficulty: string;
1795
+ data: Record<string, unknown>;
1796
+ completed: boolean;
1797
+ xpReward: number;
1798
+ }
1799
+ /** Puzzle completion parameters. */
1800
+ interface PuzzleCompleteParams {
1801
+ userId: string;
1802
+ answer: string;
1803
+ }
1804
+ /** Puzzle completion result. */
1805
+ interface PuzzleCompleteResult {
1806
+ object: 'puzzle_result';
1807
+ correct: boolean;
1808
+ xpAwarded: number;
1809
+ streak: number;
1810
+ }
1811
+ /** Puzzle streak info. */
1812
+ interface PuzzleStreak {
1813
+ object: 'puzzle_streak';
1814
+ userId: string;
1815
+ currentStreak: number;
1816
+ longestStreak: number;
1817
+ totalCompleted: number;
1818
+ }
1819
+ /** A one-up (kudos to a teammate). */
1820
+ interface OneUp {
1821
+ id: string;
1822
+ object: 'one_up';
1823
+ senderId: string;
1824
+ senderName: string | null;
1825
+ recipientId: string;
1826
+ recipientName: string | null;
1827
+ message: string | null;
1828
+ createdAt: string;
1829
+ }
1830
+ /** Parameters for listing one-ups. */
1831
+ interface OneUpListParams extends PaginationParams {
1832
+ userId?: string;
1833
+ }
1834
+ /** Parameters for sending a one-up. */
1835
+ interface OneUpCreateParams {
1836
+ recipientId: string;
1837
+ message?: string;
1838
+ userId: string;
1839
+ }
1840
+ /** Remaining one-ups info. */
1841
+ interface OneUpRemaining {
1842
+ object: 'one_up_remaining';
1843
+ remaining: number;
1844
+ limit: number;
1845
+ resetsAt: string;
1846
+ }
1847
+ /** A high five (kudos between teams). */
1848
+ interface HighFive {
1849
+ id: string;
1850
+ object: 'high_five';
1851
+ senderTeamId: string;
1852
+ senderTeamName: string | null;
1853
+ recipientTeamId: string;
1854
+ recipientTeamName: string | null;
1855
+ senderId: string;
1856
+ senderName: string | null;
1857
+ message: string | null;
1858
+ createdAt: string;
1859
+ }
1860
+ /** Parameters for listing high fives. */
1861
+ interface HighFiveListParams extends PaginationParams {
1862
+ }
1863
+ /** Parameters for sending a high five. */
1864
+ interface HighFiveCreateParams {
1865
+ recipientTeamId: string;
1866
+ message?: string;
1867
+ userId: string;
1868
+ }
1869
+ /** Can-send check result. */
1870
+ interface HighFiveCanSend {
1871
+ object: 'high_five_can_send';
1872
+ canSend: boolean;
1873
+ reason: string | null;
1874
+ }
1875
+ /** An unlocked cosmetic. */
1876
+ interface Cosmetic {
1877
+ id: string;
1878
+ object: 'cosmetic';
1879
+ type: string;
1880
+ name: string;
1881
+ rarity: string | null;
1882
+ unlockedAt: string;
1883
+ }
1884
+ /** Cosmetic preferences. */
1885
+ interface CosmeticPreferences {
1886
+ object: 'cosmetic_preferences';
1887
+ [key: string]: unknown;
1888
+ }
1889
+ /** A game season. */
1890
+ interface Season {
1891
+ id: string;
1892
+ object: 'season';
1893
+ name: string;
1894
+ number: number;
1895
+ startDate: string;
1896
+ endDate: string;
1897
+ active: boolean;
1898
+ daysRemaining: number | null;
1899
+ }
1900
+ /** Season stats for a user. */
1901
+ interface SeasonStats {
1902
+ object: 'season_stats';
1903
+ seasonId: string;
1904
+ userId: string;
1905
+ xp: number;
1906
+ level: number;
1907
+ ticketsResolved: number;
1908
+ [key: string]: unknown;
1909
+ }
1910
+ /** Skill tree data. */
1911
+ interface SkillTree {
1912
+ object: 'skill_tree';
1913
+ skills: Array<{
1914
+ id: string;
1915
+ name: string;
1916
+ description: string;
1917
+ category: string;
1918
+ maxLevel: number;
1919
+ currentLevel: number;
1920
+ bonuses: Record<string, unknown>;
1921
+ }>;
1922
+ availablePoints: number;
1923
+ totalPointsSpent: number;
1924
+ }
1925
+ /** Skill allocation parameters. */
1926
+ interface SkillAllocateParams {
1927
+ skillId: string;
1928
+ userId: string;
1929
+ }
1930
+ /** Skill allocation result. */
1931
+ interface SkillAllocateResult {
1932
+ object: 'skill_allocate';
1933
+ skillId: string;
1934
+ newLevel: number;
1935
+ remainingPoints: number;
1936
+ }
1937
+ /** Game balance configuration (read-only constants from /game/config). */
1938
+ interface GameConfig {
1939
+ object: 'game_config';
1940
+ rewards: Record<string, unknown>;
1941
+ streaks: Record<string, unknown>;
1942
+ combo: Record<string, unknown>;
1943
+ boss: Record<string, unknown>;
1944
+ scoring: Record<string, unknown>;
1945
+ leveling: Record<string, unknown>;
1946
+ social: Record<string, unknown>;
1947
+ }
1948
+
1949
+ declare class BossResource {
1950
+ private readonly client;
1951
+ constructor(client: HttpClient);
1952
+ /** Get current boss state. */
1953
+ current(): Promise<ApiResponse<Boss>>;
1954
+ /** Check if a boss is active (lightweight). */
1955
+ isActive(): Promise<ApiResponse<{
1956
+ active: boolean;
1957
+ }>>;
1958
+ /** Spawn a new boss. */
1959
+ spawn(params?: BossSpawnParams, options?: RequestOptions): Promise<ApiResponse<Boss>>;
1960
+ /** Deal damage to the current boss. */
1961
+ damage(params: BossDamageParams, options?: RequestOptions): Promise<ApiResponse<BossDamageResult>>;
1962
+ /** List boss defeat history. */
1963
+ defeats(params?: BossDefeatListParams): Promise<ListResponse<BossDefeat>>;
1964
+ /** Get a single defeat record. */
1965
+ getDefeat(defeatId: string): Promise<ApiResponse<BossDefeat>>;
1966
+ }
1967
+ declare class AchievementsResource {
1968
+ private readonly client;
1969
+ constructor(client: HttpClient);
1970
+ /** List all achievements with progress. */
1971
+ list(params?: AchievementListParams): Promise<ApiResponse<{
1972
+ object: 'achievement_list';
1973
+ data: Achievement[];
1974
+ summary: {
1975
+ total: number;
1976
+ unlocked: number;
1977
+ totalXpEarned: number;
1978
+ totalGoldEarned: number;
1979
+ byCategory: Record<string, {
1980
+ total: number;
1981
+ unlocked: number;
1982
+ }>;
1983
+ byRarity: Record<string, {
1984
+ total: number;
1985
+ unlocked: number;
1986
+ }>;
1987
+ };
1988
+ }>>;
1989
+ /** List unlocked achievements only. */
1990
+ unlocked(params?: {
1991
+ userId: string;
1992
+ }): Promise<ApiResponse<Achievement[]>>;
1993
+ /** Get a single achievement. */
1994
+ get(achievementId: string, params?: {
1995
+ userId?: string;
1996
+ }): Promise<ApiResponse<Achievement>>;
1997
+ /** Get recently unlocked achievements across the team. */
1998
+ recent(params?: {
1999
+ limit?: number;
2000
+ }): Promise<ApiResponse<{
2001
+ object: 'list';
2002
+ data: Achievement[];
2003
+ }>>;
2004
+ }
2005
+ declare class GameActivityResource {
2006
+ private readonly client;
2007
+ constructor(client: HttpClient);
2008
+ /** Get the team activity feed. */
2009
+ list(params?: {
2010
+ limit?: number;
2011
+ before?: string;
2012
+ }): Promise<ApiResponse<{
2013
+ object: 'list';
2014
+ data: unknown[];
2015
+ cursor: string | null;
2016
+ }>>;
2017
+ /** Get activity for a specific member. */
2018
+ forMember(memberId: string, params?: {
2019
+ limit?: number;
2020
+ }): Promise<ApiResponse<{
2021
+ object: 'list';
2022
+ data: unknown[];
2023
+ }>>;
2024
+ }
2025
+ declare class QuestsResource {
2026
+ private readonly client;
2027
+ constructor(client: HttpClient);
2028
+ /** Get today's quests. */
2029
+ today(params?: {
2030
+ userId?: string;
2031
+ }): Promise<ApiResponse<Quest[]>>;
2032
+ /** Get quest history. */
2033
+ history(params?: {
2034
+ userId?: string;
2035
+ page?: number;
2036
+ pageSize?: number;
2037
+ }): Promise<ApiResponse<unknown>>;
2038
+ }
2039
+ declare class PuzzlesResource {
2040
+ private readonly client;
2041
+ constructor(client: HttpClient);
2042
+ /** Get today's puzzle. */
2043
+ today(params?: {
2044
+ userId?: string;
2045
+ }): Promise<ApiResponse<Puzzle>>;
2046
+ /** Submit a puzzle answer. */
2047
+ complete(params: PuzzleCompleteParams, options?: RequestOptions): Promise<ApiResponse<PuzzleCompleteResult>>;
2048
+ /** Get puzzle streak for a user. */
2049
+ streak(params: {
2050
+ userId: string;
2051
+ }): Promise<ApiResponse<PuzzleStreak>>;
2052
+ /** Get puzzle leaderboard. */
2053
+ leaderboard(params?: {
2054
+ type?: 'scores' | 'streaks';
2055
+ limit?: number;
2056
+ }): Promise<ApiResponse<unknown>>;
2057
+ }
2058
+ declare class OneUpsResource {
2059
+ private readonly client;
2060
+ constructor(client: HttpClient);
2061
+ /** List one-ups. */
2062
+ list(params?: OneUpListParams): Promise<ListResponse<OneUp>>;
2063
+ /** Send a one-up. */
2064
+ send(params: OneUpCreateParams, options?: RequestOptions): Promise<ApiResponse<OneUp>>;
2065
+ /** Check remaining free one-ups today. */
2066
+ remaining(params: {
2067
+ userId: string;
2068
+ }): Promise<ApiResponse<OneUpRemaining>>;
2069
+ }
2070
+ declare class HighFivesResource {
2071
+ private readonly client;
2072
+ constructor(client: HttpClient);
2073
+ /** List high fives. */
2074
+ list(params?: HighFiveListParams): Promise<ListResponse<HighFive>>;
2075
+ /** Send a high five. */
2076
+ send(params: HighFiveCreateParams, options?: RequestOptions): Promise<ApiResponse<HighFive>>;
2077
+ /** Check if you can send a high five to a team. */
2078
+ canSend(recipientTeamId: string, params: {
2079
+ userId: string;
2080
+ }): Promise<ApiResponse<HighFiveCanSend>>;
2081
+ }
2082
+ declare class CosmeticsResource {
2083
+ private readonly client;
2084
+ constructor(client: HttpClient);
2085
+ /** List unlocked cosmetics. */
2086
+ list(params?: {
2087
+ userId?: string;
2088
+ }): Promise<ApiResponse<Cosmetic[]>>;
2089
+ /** Get cosmetic preferences. */
2090
+ getPreferences(params: {
2091
+ userId: string;
2092
+ }): Promise<ApiResponse<CosmeticPreferences>>;
2093
+ /** Update cosmetic preferences. */
2094
+ updatePreferences(params: Record<string, unknown>): Promise<ApiResponse<CosmeticPreferences>>;
2095
+ }
2096
+ declare class SeasonsResource {
2097
+ private readonly client;
2098
+ constructor(client: HttpClient);
2099
+ /** List all seasons. */
2100
+ list(): Promise<ApiResponse<Season[]>>;
2101
+ /** Get the current active season. */
2102
+ current(): Promise<ApiResponse<Season>>;
2103
+ /** Get user stats for a season. */
2104
+ stats(seasonId: string, params: {
2105
+ userId: string;
2106
+ }): Promise<ApiResponse<SeasonStats>>;
2107
+ }
2108
+ declare class SkillsResource {
2109
+ private readonly client;
2110
+ constructor(client: HttpClient);
2111
+ /** Get the skill tree with current allocations. */
2112
+ get(params: {
2113
+ userId: string;
2114
+ }): Promise<ApiResponse<SkillTree>>;
2115
+ /** Allocate a skill point. */
2116
+ allocate(params: SkillAllocateParams, options?: RequestOptions): Promise<ApiResponse<SkillAllocateResult>>;
2117
+ /** Reset all skill allocations. */
2118
+ reset(params: {
2119
+ userId: string;
2120
+ }, options?: RequestOptions): Promise<ApiResponse<SkillTree>>;
2121
+ }
2122
+ /** Access all gamification features. */
2123
+ declare class GameResource {
2124
+ private readonly client;
2125
+ /** Boss battles. */
2126
+ readonly boss: BossResource;
2127
+ /** Achievements. */
2128
+ readonly achievements: AchievementsResource;
2129
+ /** Daily quests. */
2130
+ readonly quests: QuestsResource;
2131
+ /** Daily puzzles. */
2132
+ readonly puzzles: PuzzlesResource;
2133
+ /** One-ups (teammate kudos). */
2134
+ readonly oneUps: OneUpsResource;
2135
+ /** High fives (team-to-team kudos). */
2136
+ readonly highFives: HighFivesResource;
2137
+ /** Cosmetics. */
2138
+ readonly cosmetics: CosmeticsResource;
2139
+ /** Seasons. */
2140
+ readonly seasons: SeasonsResource;
2141
+ /** Skill tree. */
2142
+ readonly skills: SkillsResource;
2143
+ /** Game activity feed. */
2144
+ readonly activity: GameActivityResource;
2145
+ constructor(client: HttpClient);
2146
+ /** Get current player stats. */
2147
+ player(params?: {
2148
+ userId?: string;
2149
+ }): Promise<ApiResponse<Player>>;
2150
+ /** Get a specific player's stats by membership ID. */
2151
+ getPlayer(memberId: string): Promise<ApiResponse<Player>>;
2152
+ /** Get the team leaderboard. */
2153
+ leaderboard(params?: LeaderboardParams): Promise<ApiResponse<LeaderboardEntry[]>>;
2154
+ /** Get the current user's leaderboard position. */
2155
+ myRank(params?: {
2156
+ userId?: string;
2157
+ period?: string;
2158
+ }): Promise<ApiResponse<LeaderboardEntry>>;
2159
+ /** Get game balance configuration (read-only constants). */
2160
+ config(): Promise<ApiResponse<GameConfig>>;
2161
+ }
2162
+
2163
+ /** AI action types. */
2164
+ type AiAction = 'auto-tag' | 'suggest-reply' | 'summarize' | 'improve';
2165
+ /** Parameters for an AI action. */
2166
+ interface AiActionParams {
2167
+ action: AiAction;
2168
+ ticketId?: string;
2169
+ text?: string;
2170
+ context?: Record<string, unknown>;
2171
+ }
2172
+ /** AI action result. */
2173
+ interface AiActionResult {
2174
+ object: 'ai_result';
2175
+ action: AiAction;
2176
+ result: unknown;
2177
+ }
2178
+
2179
+ /** AI-powered actions (auto-tag, suggest reply, summarize, improve). */
2180
+ declare class AiResource {
2181
+ private readonly client;
2182
+ constructor(client: HttpClient);
2183
+ /** Run an AI action. */
2184
+ run(params: AiActionParams, options?: RequestOptions): Promise<ApiResponse<AiActionResult>>;
2185
+ /** Auto-tag a ticket. */
2186
+ autoTag(ticketId: string): Promise<ApiResponse<AiActionResult>>;
2187
+ /** Suggest a reply for a ticket. */
2188
+ suggestReply(ticketId: string): Promise<ApiResponse<AiActionResult>>;
2189
+ /** Summarize a ticket. */
2190
+ summarize(ticketId: string): Promise<ApiResponse<AiActionResult>>;
2191
+ /** Improve text. */
2192
+ improve(text: string): Promise<ApiResponse<AiActionResult>>;
2193
+ }
2194
+
2195
+ /** A saved view / filter preset. */
2196
+ interface SavedView {
2197
+ id: string;
2198
+ object: 'saved_view';
2199
+ name: string;
2200
+ description: string | null;
2201
+ entityType: 'tickets' | 'customers' | 'articles' | 'community_posts';
2202
+ filters: Record<string, unknown>;
2203
+ sortField: string;
2204
+ sortDirection: 'asc' | 'desc';
2205
+ visibility: 'private' | 'team';
2206
+ createdBy: string | null;
2207
+ createdAt: string;
2208
+ updatedAt: string;
2209
+ }
2210
+ /** Parameters for listing views. */
2211
+ interface ViewListParams extends PaginationParams {
2212
+ entityType?: string;
2213
+ }
2214
+ /** Parameters for creating a view. */
2215
+ interface ViewCreateParams {
2216
+ name: string;
2217
+ description?: string;
2218
+ entityType: 'tickets' | 'customers' | 'articles' | 'community_posts';
2219
+ filters?: Record<string, unknown>;
2220
+ sortField?: string;
2221
+ sortDirection?: 'asc' | 'desc';
2222
+ visibility?: 'private' | 'team';
2223
+ }
2224
+ /** Parameters for updating a view. */
2225
+ interface ViewUpdateParams {
2226
+ name?: string;
2227
+ description?: string;
2228
+ filters?: Record<string, unknown>;
2229
+ sortField?: string;
2230
+ sortDirection?: 'asc' | 'desc';
2231
+ visibility?: 'private' | 'team';
2232
+ }
2233
+ /** Parameters for executing a view. */
2234
+ interface ViewExecuteParams extends PaginationParams {
2235
+ }
2236
+
2237
+ /** Manage saved views (saved filters). */
2238
+ declare class ViewsResource extends BaseResource<SavedView, ViewListParams, ViewCreateParams, ViewUpdateParams> {
2239
+ constructor(client: HttpClient);
2240
+ /** Execute a view — returns the filtered results. The server uses the view's entity_type to determine which table to query. */
2241
+ execute(viewId: string, params?: ViewExecuteParams): Promise<ListResponse<unknown>>;
2242
+ }
2243
+
2244
+ /** Subscription status. */
2245
+ interface Subscription {
2246
+ object: 'subscription';
2247
+ status: string;
2248
+ plan: string | null;
2249
+ currentPeriodStart: string | null;
2250
+ currentPeriodEnd: string | null;
2251
+ cancelAtPeriodEnd: boolean;
2252
+ memberCount: number;
2253
+ [key: string]: unknown;
2254
+ }
2255
+ /** Billing portal result. */
2256
+ interface BillingPortal {
2257
+ object: 'billing_portal';
2258
+ url: string;
2259
+ }
2260
+ /** Parameters for creating a billing portal session. */
2261
+ interface BillingPortalParams {
2262
+ returnUrl?: string;
2263
+ }
2264
+
2265
+ /** Access billing and subscription data. */
2266
+ declare class BillingResource {
2267
+ private readonly client;
2268
+ constructor(client: HttpClient);
2269
+ /** Get current subscription status. */
2270
+ subscription(): Promise<ApiResponse<Subscription>>;
2271
+ /** Create a Stripe billing portal session. */
2272
+ portal(params?: BillingPortalParams): Promise<ApiResponse<BillingPortal>>;
2273
+ }
2274
+
575
2275
  /** Error type constants matching the cStar API. */
576
2276
  declare const ErrorType: {
577
2277
  readonly AUTHENTICATION_ERROR: "authentication_error";
@@ -633,12 +2333,23 @@ interface CStarClientConfig {
633
2333
  timeout?: number;
634
2334
  }
635
2335
  /**
636
- * The cStar API client.
2336
+ * The cStar admin API client. **Server-side only.**
2337
+ *
2338
+ * Requires a secret API key (`sk_live_*` or `sk_test_*`). Never use this in
2339
+ * client-side / browser code — your secret key would be exposed to anyone
2340
+ * viewing your site.
2341
+ *
2342
+ * For client-side integrations, use:
2343
+ * - `@cstar.help/js/chat` — Customer chat widget (publishable key)
2344
+ * - `@cstar.help/js/library` — Public knowledge base (no auth)
2345
+ * - `@cstar.help/js/community` — Public community forum (no auth)
637
2346
  *
638
2347
  * ```typescript
2348
+ * import { CStarClient } from '@cstar.help/js';
2349
+ *
639
2350
  * const cstar = new CStarClient({
640
- * apiKey: 'sk_test_abc123...',
641
- * teamId: 'your-team-id',
2351
+ * apiKey: process.env.CSTAR_SECRET_KEY, // sk_live_... or sk_test_...
2352
+ * teamId: process.env.CSTAR_TEAM_ID,
642
2353
  * });
643
2354
  *
644
2355
  * const { data } = await cstar.tickets.list({ status: 'open' });
@@ -653,6 +2364,8 @@ declare class CStarClient {
653
2364
  readonly articles: ArticlesResource;
654
2365
  /** Manage webhook endpoints. */
655
2366
  readonly webhooks: WebhooksResource;
2367
+ /** Manage automation rules. */
2368
+ readonly automations: AutomationsResource;
656
2369
  /** Manage article categories. */
657
2370
  readonly categories: CategoriesResource;
658
2371
  /** Manage community posts and topics. */
@@ -660,10 +2373,50 @@ declare class CStarClient {
660
2373
  readonly posts: CommunityPostsResource;
661
2374
  readonly topics: CommunityTopicsResource;
662
2375
  };
2376
+ /** Manage team members and invites. */
2377
+ readonly members: MembersResource;
2378
+ /** Manage team settings, statuses, quick replies, business hours, and widget. */
2379
+ readonly settings: SettingsResource;
2380
+ /** Manage notifications. */
2381
+ readonly notifications: NotificationsResource;
2382
+ /** Manage @mentions. */
2383
+ readonly mentions: MentionsResource;
2384
+ /** Manage file attachments. */
2385
+ readonly attachments: AttachmentsResource;
2386
+ /** Manage custom field definitions. */
2387
+ readonly customFields: CustomFieldsResource;
2388
+ /** Manage SLA rules. */
2389
+ readonly sla: SlaResource;
2390
+ /** Access analytics and CSAT data. */
2391
+ readonly analytics: AnalyticsResource;
2392
+ /** Perform bulk operations. */
2393
+ readonly bulk: BulkResource;
2394
+ /** Export data. */
2395
+ readonly export: ExportResource;
2396
+ /** Import data. */
2397
+ readonly import: ImportResource;
2398
+ /** Access the audit log. */
2399
+ readonly auditLog: AuditLogResource;
2400
+ /** Search across resources. */
2401
+ readonly search: SearchResource;
2402
+ /** Manage tags. */
2403
+ readonly tags: TagsResource;
2404
+ /** Access the activity feed. */
2405
+ readonly activity: ActivityResource;
2406
+ /** Manage customer groups/segments. */
2407
+ readonly customerGroups: CustomerGroupsResource;
2408
+ /** Access all gamification features. */
2409
+ readonly game: GameResource;
2410
+ /** AI-powered actions. */
2411
+ readonly ai: AiResource;
2412
+ /** Manage saved views. */
2413
+ readonly views: ViewsResource;
2414
+ /** Access billing and subscription data. */
2415
+ readonly billing: BillingResource;
663
2416
  private readonly client;
664
2417
  constructor(config: CStarClientConfig);
665
2418
  /** Whether this client is using test mode keys (sk_test_* or pk_test_*). */
666
2419
  get isTestMode(): boolean;
667
2420
  }
668
2421
 
669
- export { type ApiErrorBody, type ApiResponse, type Article, type ArticleCreateParams, type ArticleListParams, type ArticleUpdateParams, CStarAuthenticationError, CStarClient, type CStarClientConfig, CStarError, CStarNotFoundError, CStarRateLimitError, CStarValidationError, type Category, type CategoryCreateParams, type CategoryListParams, type CategoryUpdateParams, type CommunityComment, type CommunityCommentCreateParams, type CommunityPost, type CommunityPostCreateParams, type CommunityPostListParams, type CommunityPostUpdateParams, type CommunityTopic, type Customer, type CustomerCreateParams, type CustomerListParams, type CustomerUpdateParams, type DeleteResponse, ErrorType, type ListResponse, type Message, type MessageCreateParams, type Metadata, type PaginationInfo, type PaginationParams, type RequestOptions, type Ticket, type TicketCreateParams, type TicketCustomerSummary, type TicketListParams, type TicketUpdateParams, type Webhook, type WebhookCreateParams, type WebhookEvent, type WebhookEventData, type WebhookEventType, type WebhookListParams, type WebhookTestResult, type WebhookUpdateParams };
2422
+ export { type Achievement, type AchievementListParams, type ActivityEvent, type ActivityListParams, type AiAction, type AiActionParams, type AiActionResult, type AnalyticsOverview, type AnalyticsParams, type ApiErrorBody, type ApiResponse, type Article, type ArticleCreateParams, type ArticleListParams, type ArticleUpdateParams, type Attachment, type AttachmentListParams, type AuditLogEntry, type AuditLogListParams, type AutomationAction, type AutomationCondition, type AutomationConditions, type AutomationCreateParams, type AutomationExecution, type AutomationExecutionListParams, type AutomationListParams, type AutomationRule, type AutomationTestResult, type AutomationUpdateParams, type BillingPortal, type BillingPortalParams, type Boss, type BossDamageParams, type BossDamageResult, type BossDefeat, type BossDefeatListParams, type BossSpawnParams, type BulkDeleteParams, type BulkResult, type BulkUpdateParams, type BusinessHours, type BusinessHoursUpdateParams, CStarAuthenticationError, CStarClient, type CStarClientConfig, CStarError, CStarNotFoundError, CStarRateLimitError, CStarValidationError, type Category, type CategoryCreateParams, type CategoryListParams, type CategoryUpdateParams, type CommunityComment, type CommunityCommentCreateParams, type CommunityPost, type CommunityPostCreateParams, type CommunityPostListParams, type CommunityPostUpdateParams, type CommunityTopic, type Cosmetic, type CosmeticPreferences, type CsatSettings, type CsatSettingsUpdateParams, type CsatStats, type CsatSurvey, type CsatSurveyCreateParams, type CsatSurveyListParams, type CustomField, type CustomFieldCreateParams, type CustomFieldListParams, type CustomFieldUpdateParams, type Customer, type CustomerCreateParams, type CustomerGroup, type CustomerGroupAddMembersParams, type CustomerGroupAddResult, type CustomerGroupCreateParams, type CustomerGroupListParams, type CustomerGroupMemberListParams, type CustomerGroupMembersResult, type CustomerGroupRemoveResult, type CustomerGroupUpdateParams, type CustomerListParams, type CustomerUpdateParams, type DeleteResponse, ErrorType, type ExportCreateParams, type ExportResult, type GameConfig, type HighFive, type HighFiveCanSend, type HighFiveCreateParams, type HighFiveListParams, type ImportCreateParams, type ImportLog, type ImportLogListParams, type ImportResult, type Invite, type InviteCreateParams, type InviteListParams, type LeaderboardEntry, type LeaderboardParams, type ListResponse, type Member, type MemberListParams, type MemberUpdateParams, type Mention, type MentionListParams, type MentionUnreadCount, type Message, type MessageCreateParams, type Metadata, type Notification, type NotificationListParams, type OneUp, type OneUpCreateParams, type OneUpListParams, type OneUpRemaining, type PaginationInfo, type PaginationParams, type Player, type Puzzle, type PuzzleCompleteParams, type PuzzleCompleteResult, type PuzzleStreak, type Quest, type QuickReply, type QuickReplyCreateParams, type QuickReplyUpdateParams, type RequestOptions, type SavedView, type SearchParams, type SearchResult, type Season, type SeasonStats, type SkillAllocateParams, type SkillAllocateResult, type SkillTree, type SlaMetrics, type SlaMetricsParams, type SlaRule, type SlaRuleCreateParams, type SlaRuleListParams, type SlaRuleUpdateParams, type StatusCreateParams, type StatusUpdateParams, type Subscription, type Tag, type TagListParams, type TeamSettings, type TeamSettingsUpdateParams, type Ticket, type TicketCreateParams, type TicketCustomerSummary, type TicketListParams, type TicketStatus, type TicketUpdateParams, type UnreadCount, type ViewCreateParams, type ViewExecuteParams, type ViewListParams, type ViewUpdateParams, type Webhook, type WebhookCreateParams, type WebhookEvent, type WebhookEventData, type WebhookEventType, type WebhookListParams, type WebhookListener, type WebhookListenerParams, type WebhookSubscribeParams, type WebhookSubscription, type WebhookTestResult, type WebhookTriggerTestParams, type WebhookTriggerTestResult, type WebhookUpdateParams, type WidgetSettings, type WidgetSettingsUpdateParams };