@natsuneko-laboratory/catalyst-sdk 0.7.3 → 1.0.0-alpha.3

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.mts CHANGED
@@ -34,11 +34,41 @@ interface EgeriaUserProfile {
34
34
  website: string;
35
35
  additionalWebsites: string[];
36
36
  }
37
+ /** The `profileEmoji` shown alongside a "standard" (unicode) emoji value. */
38
+ interface ProfileEmojiStandard {
39
+ type: "standard";
40
+ value: string;
41
+ imageUrl: string;
42
+ }
43
+ /** The `profileEmoji` shown when the user selected one of their custom reactions. */
44
+ interface ProfileEmojiCustom {
45
+ type: "custom";
46
+ id: string;
47
+ shortcode: string;
48
+ displayName: string;
49
+ imageUrl: string;
50
+ width: number;
51
+ height: number;
52
+ }
53
+ /** Discriminated union (on `type`) modeling the response's `profileEmoji` field. */
54
+ type ProfileEmoji = ProfileEmojiStandard | ProfileEmojiCustom;
55
+ /** Request-shaped `profileEmoji` variant for `PATCH /egeria/v1/me` (fewer fields than the response). */
56
+ interface ProfileEmojiStandardRequest {
57
+ type: "standard";
58
+ value: string;
59
+ }
60
+ /** Request-shaped `profileEmoji` variant referencing an existing custom reaction by id. */
61
+ interface ProfileEmojiCustomRequest {
62
+ type: "custom";
63
+ customReactionId: string;
64
+ }
65
+ type ProfileEmojiRequest = ProfileEmojiStandardRequest | ProfileEmojiCustomRequest;
37
66
  interface EgeriaUser {
38
67
  id: string;
39
68
  screenName: string;
40
69
  displayName: string;
41
- profile?: EgeriaUserProfile;
70
+ profile?: EgeriaUserProfile | null;
71
+ profileEmoji?: ProfileEmoji | null;
42
72
  }
43
73
  interface EgeriaUserWrapper {
44
74
  user: EgeriaUser;
@@ -50,6 +80,7 @@ interface EgeriaUpdateProfileRequest {
50
80
  screenName?: string;
51
81
  displayName?: string;
52
82
  profile?: EgeriaUserProfile;
83
+ profileEmoji?: ProfileEmojiRequest | null;
53
84
  }
54
85
 
55
86
  interface MediaMetadata {
@@ -73,7 +104,7 @@ interface MediaUploadUrls {
73
104
  }
74
105
  interface CatalystMediaWithMetadata {
75
106
  url: string;
76
- alt: string;
107
+ alt?: string;
77
108
  width: number;
78
109
  height: number;
79
110
  bytes: number;
@@ -91,6 +122,7 @@ interface CatalystReaction {
91
122
  url: string;
92
123
  count: number;
93
124
  hasSelfReaction?: boolean;
125
+ customReactionId?: string;
94
126
  }
95
127
  interface CatalystReactions {
96
128
  reactions: Record<string, CatalystReaction>;
@@ -102,6 +134,7 @@ interface CatalystCustomReaction {
102
134
  url: string;
103
135
  }
104
136
  type CatalystCustomReactionStatus = "active" | "moderated" | "hidden" | "disabled";
137
+ type CatalystCustomReactionVisibility = "private" | "followers" | "public";
105
138
  type SupporterTier = "none" | "tier_0" | "tier_1" | "tier_2" | "tier_3" | "tier_4" | "tier_5";
106
139
  interface CatalystUserCustomReaction {
107
140
  id: string;
@@ -111,6 +144,7 @@ interface CatalystUserCustomReaction {
111
144
  mimeType: string;
112
145
  sortOrder: number;
113
146
  status: CatalystCustomReactionStatus;
147
+ visibility: CatalystCustomReactionVisibility;
114
148
  createdAt: string;
115
149
  }
116
150
  interface CatalystCustomReactionList {
@@ -124,39 +158,6 @@ interface UpdateCustomReactionRequest {
124
158
  sortOrder?: number;
125
159
  }
126
160
 
127
- interface CatalystCreateContestRequest {
128
- title: string;
129
- description: string;
130
- theme: string;
131
- }
132
- interface CatalystEditContestRequest {
133
- title?: string;
134
- description?: string;
135
- theme?: string;
136
- terms?: string;
137
- headerUrl?: string;
138
- bannerUrl?: string;
139
- winnersOpenAt?: string;
140
- winnersMessageSendAt?: string;
141
- publishedAt?: string;
142
- application?: {
143
- since?: string;
144
- until?: string;
145
- allowSensitive: boolean;
146
- maxMediaPerEntry?: number | null;
147
- };
148
- voting?: {
149
- since?: string;
150
- until?: string;
151
- maxVotes?: number;
152
- isEnableVoting?: boolean;
153
- };
154
- winners?: {
155
- since?: string;
156
- until?: string;
157
- };
158
- ranks?: Omit<CatalystContestRank, "id" | "winners">[];
159
- }
160
161
  interface CatalystContestRank {
161
162
  id: string;
162
163
  name: string;
@@ -192,46 +193,13 @@ interface CatalystContest {
192
193
  };
193
194
  ranks: CatalystContestRank[];
194
195
  }
195
- interface CatalystContestAward {
196
- id: string;
197
- name: string;
198
- winners: (CatalystStatus & {
199
- message?: string | null;
200
- commentary?: string | null;
201
- attachment?: {
202
- name: string;
203
- id: string;
204
- } | null;
205
- })[];
206
- order: number;
207
- count: number;
208
- remaining: number;
196
+ interface CatalystContestWrapper {
197
+ contest: CatalystContest;
209
198
  }
210
- interface CatalystSetContestAwardRequest {
211
- status: string;
212
- message?: string;
213
- commentary?: string;
214
- }
215
- interface CatalystUnsetContestAwardRequest {
216
- status: string;
217
- message?: string;
218
- commentary?: string;
219
- }
220
- interface CatalystContestCollaborator {
221
- user: Omit<EgeriaUser, "profile">;
222
- role: "admin" | "collaborator" | "contributor";
223
- }
224
- interface CatalystContestAddCollaboratorRequest {
225
- userId: string;
226
- role: "collaborator" | "contributor";
227
- }
228
- interface CatalystContestRemoveCollaboratorRequest {
229
- userId: string;
230
- }
231
- interface CatalystContestPolls {
232
- status: CatalystStatus;
233
- count: number;
199
+ interface CatalystContestsWrapper {
200
+ contests: CatalystContest[];
234
201
  }
202
+ /** The current user's remaining vote allowance for a contest. */
235
203
  interface CatalystUserVoteRights {
236
204
  remaining: number;
237
205
  statuses: string[];
@@ -265,12 +233,24 @@ interface CatalystStatusV1_1 {
265
233
  visitor?: CatalystStatusVisitor;
266
234
  privacy: CatalystStatusPrivacy;
267
235
  }
268
- interface CatalystStatusWrapper {
236
+ /** Wrapper for `GET /catalyst/v1/status/{id}` (`{"status": StatusV1_0Response}`). */
237
+ interface CatalystStatusV1Wrapper {
238
+ status: CatalystStatus;
239
+ }
240
+ /** Wrapper for `GET /catalyst/v1.1/status/{id}` (`{"status": StatusV1_1Response}`). */
241
+ interface CatalystStatusV1_1Wrapper {
269
242
  status: CatalystStatusV1_1;
270
243
  }
244
+ /** Wrapper for `GET /catalyst/v1/random` (`{"status": StatusV1_0Response | null}`). */
245
+ interface CatalystRandomStatusWrapper {
246
+ status: CatalystStatus | null;
247
+ }
271
248
  interface CatalystStatuses {
272
249
  statuses: CatalystStatus[];
273
250
  }
251
+ interface CatalystStatusesV1_1 {
252
+ statuses: CatalystStatusV1_1[];
253
+ }
274
254
  interface CatalystCreateStatusRequest {
275
255
  description: string;
276
256
  isNsfw: boolean;
@@ -297,39 +277,69 @@ interface CatalystAlbum {
297
277
  user: EgeriaUser;
298
278
  statuses: CatalystStatus[];
299
279
  }
280
+ /** Wrapper for the `{"albums": [...]}` response shape, e.g. `GET /catalyst/v1/status/{id}/albums`. */
281
+ interface CatalystAlbumsWrapper {
282
+ albums: CatalystAlbum[];
283
+ }
300
284
  interface CatalystSmartAlbum {
301
285
  id: string;
302
286
  name: string;
303
287
  description: string;
304
288
  isAllowNsfw: boolean;
305
289
  isAllowOthers: boolean;
306
- since?: string;
307
- until?: string;
290
+ since?: string | null;
291
+ until?: string | null;
308
292
  isPublic: boolean;
309
293
  mode: CatalystAlbumDisplayMode;
310
294
  user: EgeriaUser | null;
311
- type?: string;
312
295
  statuses: CatalystStatus[];
313
296
  hashtags: string[];
314
297
  }
315
298
  interface CatalystSmartAlbums {
316
299
  albums: CatalystSmartAlbum[];
317
300
  }
318
- interface CatalystCreateAlbumRequest {
319
- title: string;
301
+ /** A "type"-discriminated album, returned by album-by-me/by-user/search endpoints which mix
302
+ * plain albums and smart albums in the same list (`AlbumOrSmartAlbumResponse`). */
303
+ interface CatalystAlbumOrSmartAlbum {
304
+ id: string;
305
+ name: string;
320
306
  description: string;
307
+ hashtags: string[];
308
+ isAllowNsfw: boolean;
309
+ isAllowOthers: boolean;
321
310
  isPublic: boolean;
311
+ since: string | null;
312
+ until: string | null;
322
313
  mode: CatalystAlbumDisplayMode;
314
+ user: EgeriaUser;
315
+ statuses: CatalystStatus[];
316
+ type: "album" | "smart-album";
317
+ }
318
+ interface CatalystAlbumOrSmartAlbums {
319
+ albums: CatalystAlbumOrSmartAlbum[];
320
+ }
321
+ interface CatalystCreateAlbumRequest {
322
+ title: string;
323
+ description?: string;
324
+ isPublic?: boolean;
325
+ mode?: CatalystAlbumDisplayMode;
323
326
  }
324
327
  interface CatalystEditAlbumRequest {
325
328
  title: string;
326
- description: string;
327
- isPublic: boolean;
328
- mode: CatalystAlbumDisplayMode;
329
+ description?: string;
330
+ isPublic?: boolean;
331
+ mode?: CatalystAlbumDisplayMode;
332
+ }
333
+ /** Shared request body for `PUT /catalyst/v1/album/by/id/{id}` (both insert and remove). */
334
+ interface CatalystInsertOrRemoveStatusAlbumRequest {
335
+ insert?: string;
336
+ remove?: string;
329
337
  }
338
+ /** @deprecated use {@link CatalystInsertOrRemoveStatusAlbumRequest} */
330
339
  interface CatalystInsertToAlbumRequest {
331
340
  insert: string;
332
341
  }
342
+ /** @deprecated use {@link CatalystInsertOrRemoveStatusAlbumRequest} */
333
343
  interface CatalystRemoveFromAlbumRequest {
334
344
  remove: string;
335
345
  }
@@ -341,7 +351,7 @@ interface CatalystCreateSmartAlbumRequest {
341
351
  until?: string;
342
352
  isAllowNsfw?: boolean;
343
353
  isAllowOthers?: boolean;
344
- isPublic: boolean;
354
+ isPublic?: boolean;
345
355
  mode?: CatalystAlbumDisplayMode;
346
356
  }
347
357
  interface CatalystEditSmartAlbumRequest {
@@ -352,9 +362,75 @@ interface CatalystEditSmartAlbumRequest {
352
362
  until?: string;
353
363
  isAllowNsfw?: boolean;
354
364
  isAllowOthers?: boolean;
355
- isPublic: boolean;
365
+ isPublic?: boolean;
356
366
  mode?: CatalystAlbumDisplayMode;
357
367
  }
368
+ type CatalystAlbumBookTemplate = "photo-book" | "record-book";
369
+ type CatalystAlbumBookQuality = "web" | "print";
370
+ type CatalystAlbumBookTocType = "per-post" | "page-only";
371
+ type CatalystAlbumBookStatus = "pending" | "processing" | "completed" | "failed";
372
+ /** `AlbumBookResponse` — a generated photo/record book for an album or smart album. */
373
+ interface CatalystAlbumBook {
374
+ id: string;
375
+ albumId: string | null;
376
+ smartAlbumId: string | null;
377
+ template: CatalystAlbumBookTemplate;
378
+ quality: CatalystAlbumBookQuality;
379
+ coverImageUrl: string | null;
380
+ subtitle: string | null;
381
+ customText: string | null;
382
+ showBody: boolean;
383
+ showDate: boolean;
384
+ showUrl: boolean;
385
+ tocType: CatalystAlbumBookTocType | null;
386
+ colophonText: string | null;
387
+ status: CatalystAlbumBookStatus;
388
+ errorMessage: string | null;
389
+ downloadUrl: string | null;
390
+ expiresAt: string | null;
391
+ createdAt: string | null;
392
+ updatedAt: string | null;
393
+ }
394
+ /** Request body for `POST /catalyst/v1/{album,smart-album}/by/id/{id}/book` (`CreateAlbumBook`). */
395
+ interface CatalystCreateAlbumBookRequest {
396
+ template: CatalystAlbumBookTemplate;
397
+ quality: CatalystAlbumBookQuality;
398
+ coverImageUrl?: string;
399
+ subtitle?: string;
400
+ customText?: string;
401
+ showBody?: boolean;
402
+ showDate?: boolean;
403
+ showUrl?: boolean;
404
+ showQrCode?: boolean;
405
+ tocType?: CatalystAlbumBookTocType;
406
+ colophonText?: string;
407
+ }
408
+
409
+ /** Generic `{"result": boolean}` response shape used by many mutation endpoints. */
410
+ interface CatalystResult {
411
+ result: boolean;
412
+ }
413
+ /** Generic `{"value": number}` response shape used by reaction toggle endpoints. */
414
+ interface CatalystReactionValue {
415
+ value: number;
416
+ }
417
+ /** Generic `{"message": string}` response shape. */
418
+ interface CatalystMessage {
419
+ message: string;
420
+ }
421
+ /** Total/offset counters used by several list endpoints. */
422
+ interface CountInfo {
423
+ total: number;
424
+ offset: number;
425
+ }
426
+ /** Page cursor metadata used by several list endpoints. */
427
+ interface PageInfo {
428
+ min: number;
429
+ max: number;
430
+ current: number;
431
+ next: number | null;
432
+ prev: number | null;
433
+ }
358
434
 
359
435
  interface CatalystRelationships {
360
436
  isMyself: boolean;
@@ -365,43 +441,55 @@ interface CatalystRelationships {
365
441
  interface CatalystRelationshipRequest {
366
442
  userId: string;
367
443
  }
444
+ /** Following/follower counts for a user. */
445
+ interface CatalystRelationshipsCount {
446
+ followings: number | null;
447
+ followers: number | null;
448
+ }
449
+ /** Paginated list of a user's followers or followings. */
450
+ interface CatalystFollowingOrFollowersList {
451
+ items: EgeriaUser[];
452
+ count: CountInfo;
453
+ page: PageInfo;
454
+ }
368
455
 
456
+ interface CatalystCreateFleetMediaPlacement {
457
+ posX: number;
458
+ posY: number;
459
+ scale?: number;
460
+ rotation?: number;
461
+ }
369
462
  interface CatalystCreateFleetMedia {
370
463
  url: string;
464
+ alt?: string;
371
465
  width: number;
372
466
  height: number;
373
467
  bytes: number;
374
- placement: {
375
- posX: number;
376
- posY: number;
377
- scale: number;
378
- rotation: number;
379
- };
380
- alt?: string | undefined;
468
+ placement: CatalystCreateFleetMediaPlacement;
381
469
  }
382
470
  interface CatalystCreateFleetText {
383
- backgroundColor: string;
384
471
  body: string;
385
- textStyle: "default" | "bold" | "serif" | "handwriting";
386
- textAlignment: "left" | "center" | "right";
387
- color: string;
472
+ backgroundColor?: string;
473
+ textStyle?: "default" | "bold" | "serif" | "handwriting";
474
+ textAlignment?: "left" | "center" | "right";
475
+ color?: string;
388
476
  posX: number;
389
477
  posY: number;
390
- scale: number;
391
- rotation: number;
478
+ scale?: number;
479
+ rotation?: number;
392
480
  }
393
481
  interface CatalystCreateFleetSticker {
394
482
  posX: number;
395
483
  posY: number;
396
- scale: number;
397
- rotation: number;
484
+ scale?: number;
485
+ rotation?: number;
398
486
  emoji: string;
399
487
  }
400
488
  interface CatalystCreateFleetRequest {
401
- backgroundColor: string;
402
- texts: CatalystCreateFleetText[];
489
+ backgroundColor?: string;
490
+ texts?: CatalystCreateFleetText[];
403
491
  media: CatalystCreateFleetMedia;
404
- stickers: CatalystCreateFleetSticker[];
492
+ stickers?: CatalystCreateFleetSticker[];
405
493
  }
406
494
  interface CatalystFleetText {
407
495
  id: string;
@@ -480,242 +568,221 @@ interface CatalystAnnouncement {
480
568
  until: string;
481
569
  url: string | null;
482
570
  }
571
+ /** Wrapper for the `{"announcements": [...]}` response shape. */
572
+ interface CatalystAnnouncementsWrapper {
573
+ announcements: CatalystAnnouncement[];
574
+ }
483
575
 
484
576
  interface ProfileTag {
485
577
  id: string;
486
578
  name: string;
487
579
  normalizedName: string;
488
580
  }
581
+ /** Wrapper for the `{"tags": [...]}` response shape. */
582
+ interface ProfileTagsWrapper {
583
+ tags: ProfileTag[];
584
+ }
489
585
  interface ProfileTagSuggestion {
490
586
  id: string;
491
587
  name: string;
492
588
  usageCount: number;
493
589
  }
590
+ /** Wrapper for the `{"tags": [...]}` response shape (profile tag suggestions). */
591
+ interface ProfileTagSuggestionsWrapper {
592
+ tags: ProfileTagSuggestion[];
593
+ }
494
594
  interface ProfileTagUser extends EgeriaUser {
495
595
  matchedTags: string[];
496
596
  }
597
+ /** Summary information for a profile tag (used within {@link ProfileTagUsersResult}). */
598
+ interface ProfileTagSummary {
599
+ name: string;
600
+ usageCount: number;
601
+ }
602
+ /** Result of listing users by profile tag, including cursor-based pagination. */
603
+ interface ProfileTagUsersResult {
604
+ tag: ProfileTagSummary;
605
+ users: ProfileTagUser[];
606
+ nextCursor: string | null;
607
+ }
497
608
  interface UpdateProfileTagsRequest {
498
609
  tags: string[];
499
610
  }
500
611
 
612
+ /** A single month bucket in the status archive. */
613
+ interface CatalystArchiveMonth {
614
+ year: number;
615
+ month: number;
616
+ count: number;
617
+ }
618
+ /** Wrapper for the `{"months": [...]}` response shape. */
619
+ interface CatalystArchiveMonths {
620
+ months: CatalystArchiveMonth[];
621
+ }
622
+
623
+ /** A single entry in the "rich" trending list (`GET /catalyst/v1/trend?format=rich`). */
624
+ interface CatalystRichTrendingItem {
625
+ tag: string;
626
+ rank: number;
627
+ previousRank: number | null;
628
+ movement: "up" | "down" | "same" | "new";
629
+ }
630
+
501
631
  declare class CatalystClient {
502
632
  private readonly http;
503
633
  constructor(http: HttpClient);
504
634
  createAlbum(data: CatalystCreateAlbumRequest): Promise<Identity>;
505
635
  getAlbum(id: string, opts?: {
636
+ limit?: number;
506
637
  since?: string;
507
638
  until?: string;
508
639
  }): Promise<CatalystAlbum>;
509
- editAlbum(id: string, data: CatalystEditAlbumRequest): Promise<void>;
510
- insertToAlbum(id: string, data: CatalystInsertToAlbumRequest): Promise<void>;
511
- removeFromAlbum(id: string, data: CatalystRemoveFromAlbumRequest): Promise<void>;
512
- deleteAlbum(id: string): Promise<void>;
513
- listAlbums(username: string, includeSmartAlbums?: boolean): Promise<CatalystSmartAlbums>;
514
- searchAlbums(q: string, includeSmartAlbums?: boolean): Promise<CatalystSmartAlbums>;
640
+ insertToAlbum(id: string, statusId: string): Promise<CatalystResult>;
641
+ removeFromAlbum(id: string, statusId: string): Promise<CatalystResult>;
642
+ editAlbum(id: string, data: CatalystEditAlbumRequest): Promise<CatalystResult>;
643
+ deleteAlbum(id: string): Promise<CatalystResult>;
644
+ getAlbumBooks(id: string): Promise<CatalystAlbumBook[]>;
645
+ createAlbumBook(id: string, data: CatalystCreateAlbumBookRequest): Promise<CatalystAlbumBook>;
646
+ getAlbumBook(id: string, bookId: string): Promise<CatalystAlbumBook>;
647
+ regenerateAlbumBook(id: string, bookId: string): Promise<CatalystAlbumBook>;
648
+ getAlbumsByMe(includeSmartAlbums?: boolean): Promise<CatalystAlbumOrSmartAlbum[]>;
649
+ listAlbums(username: string, includeSmartAlbum?: boolean): Promise<CatalystAlbumOrSmartAlbum[]>;
650
+ searchAlbums(q?: string, includeSmartAlbum?: boolean, until?: string): Promise<CatalystAlbumOrSmartAlbum[]>;
651
+ announcements(): Promise<CatalystAnnouncement[]>;
652
+ block(userId: string): Promise<CatalystResult>;
653
+ unblock(userId: string): Promise<CatalystResult>;
654
+ getContestsByMe(): Promise<CatalystContest[]>;
655
+ getContestBySlug(slug: string): Promise<CatalystContest>;
656
+ contestTimeline(slug: string): Promise<CatalystStatus[]>;
657
+ getContestVotes(slug: string): Promise<CatalystUserVoteRights>;
658
+ addContestVote(slug: string, status: string): Promise<CatalystResult>;
659
+ removeContestVote(slug: string, status: string): Promise<CatalystResult>;
660
+ getContestsByUser(userId: string): Promise<CatalystContest[]>;
661
+ currentContests(): Promise<CatalystContest[]>;
662
+ searchContests(q?: string, state?: string, id?: string): Promise<CatalystContest[]>;
515
663
  customReactions(): Promise<CatalystCustomReaction[]>;
516
- customUserReactions(): Promise<CatalystCustomReactionList>;
664
+ getCustomUserReactions(): Promise<CatalystCustomReactionList>;
665
+ /**
666
+ * Creates a custom reaction. `data` must include the `image`, `shortcode`, `displayName` and
667
+ * `visibility` ("private" | "followers" | "public") fields as multipart form fields.
668
+ */
517
669
  createCustomReaction(data: FormData): Promise<CatalystUserCustomReaction>;
518
- updateCustomReaction(id: string, data: UpdateCustomReactionRequest): Promise<void>;
670
+ updateCustomReaction(id: string, data: UpdateCustomReactionRequest): Promise<CatalystUserCustomReaction>;
519
671
  deleteCustomReaction(id: string): Promise<void>;
520
- block(data: CatalystRelationshipRequest): Promise<void>;
521
- unblock(data: CatalystRelationshipRequest): Promise<void>;
522
- relationships(id: string): Promise<CatalystRelationships>;
523
- follow(data: CatalystRelationshipRequest): Promise<void>;
524
- remove(data: CatalystRelationshipRequest): Promise<void>;
525
- followings(id: string, opts?: {
672
+ createFleet(data: CatalystCreateFleetRequest): Promise<Identity>;
673
+ fleetByUsername(username: string): Promise<CatalystFleet[]>;
674
+ fleets(): Promise<CatalystFleetRing[]>;
675
+ fleetById(id: string): Promise<CatalystFleet>;
676
+ deleteFleet(id: string): Promise<CatalystResult>;
677
+ reactFleet(id: string, symbol: string): Promise<CatalystReactionValue>;
678
+ unreactFleet(id: string, symbol: string): Promise<CatalystReactionValue>;
679
+ viewFleet(id: string): Promise<CatalystResult>;
680
+ fleetViewers(id: string): Promise<CatalystFleetViewer[]>;
681
+ getPrivacySettings(): Promise<CatalystPrivacySettings>;
682
+ updatePrivacySettings(data: CatalystPrivacySettingsRequest): Promise<CatalystPrivacySettings>;
683
+ updateProfileTags(data: UpdateProfileTagsRequest): Promise<ProfileTag[]>;
684
+ profileTagSuggestions(q: string): Promise<ProfileTagSuggestion[]>;
685
+ getUsersByProfileTag(name: string, cursor?: string): Promise<ProfileTagUsersResult>;
686
+ getProfileTagsByUser(id: string): Promise<ProfileTag[]>;
687
+ randomStatus(): Promise<CatalystStatus | null>;
688
+ randomStatusV1_1(): Promise<CatalystStatusV1_1>;
689
+ onThisDay(): Promise<CatalystStatusV1_1>;
690
+ createStatus(data: CatalystCreateStatusRequest): Promise<Identity>;
691
+ getStatus(id: string): Promise<CatalystStatus>;
692
+ getStatusV1_1(id: string): Promise<CatalystStatusV1_1>;
693
+ editStatus(id: string, description: string): Promise<Identity>;
694
+ deleteStatus(id: string): Promise<CatalystMessage>;
695
+ albumsInStatus(id: string): Promise<CatalystAlbum[]>;
696
+ isFavorited(id: string): Promise<boolean>;
697
+ favorite(id: string): Promise<CatalystResult>;
698
+ unfavorite(id: string): Promise<CatalystResult>;
699
+ reactions(id: string): Promise<Record<string, CatalystReaction>>;
700
+ reactWithCustomReaction(id: string, customReactionId: string): Promise<void>;
701
+ unreactWithCustomReaction(id: string, customReactionId: string): Promise<void>;
702
+ react(id: string, symbol: string): Promise<CatalystReactionValue>;
703
+ unreact(id: string, symbol: string): Promise<CatalystReactionValue>;
704
+ reportStatus(id: string, data: ReportRequest): Promise<Identity>;
705
+ bulkStatusReactions(ids: string[]): Promise<Record<string, Record<string, CatalystReaction>>>;
706
+ follow(userId: string): Promise<CatalystResult>;
707
+ remove(userId: string): Promise<CatalystResult>;
708
+ relationshipCounts(username: string): Promise<CatalystRelationshipsCount>;
709
+ followers(username: string, opts?: {
526
710
  page?: number;
527
- }): Promise<{
528
- items: EgeriaUser[];
529
- count: {
530
- total: number;
531
- offset: number;
532
- };
533
- page: {
534
- min: number;
535
- max: number;
536
- current: number;
537
- next: number | null;
538
- prev: number | null;
539
- };
540
- }>;
541
- followers(id: string, opts?: {
711
+ }): Promise<CatalystFollowingOrFollowersList>;
712
+ followings(username: string, opts?: {
542
713
  page?: number;
543
- }): Promise<{
544
- items: EgeriaUser[];
545
- count: {
546
- total: number;
547
- offset: number;
548
- };
549
- page: {
550
- min: number;
551
- max: number;
552
- current: number;
553
- next: number | null;
554
- prev: number | null;
555
- };
556
- }>;
557
- relationshipCounts(id: string): Promise<{
558
- followers: number | null;
559
- followings: number | null;
560
- }>;
714
+ }): Promise<CatalystFollowingOrFollowersList>;
715
+ relationships(id: string): Promise<CatalystRelationships>;
561
716
  createSmartAlbum(data: CatalystCreateSmartAlbumRequest): Promise<Identity>;
562
717
  getSmartAlbum(id: string, opts?: {
718
+ limit?: number;
563
719
  since?: string;
564
720
  until?: string;
565
721
  }): Promise<CatalystSmartAlbum>;
566
- editSmartAlbum(id: string, data: CatalystEditSmartAlbumRequest): Promise<void>;
567
- deleteSmartAlbum(id: string): Promise<void>;
568
- searchSmartAlbum(q: string): Promise<CatalystSmartAlbums>;
569
- createStatus(data: CatalystCreateStatusRequest): Promise<Identity>;
570
- getStatus(id: string): Promise<CatalystStatusWrapper>;
571
- editStatus(id: string, data: CatalystEditStatusRequest): Promise<void>;
572
- deleteStatus(id: string): Promise<void>;
573
- isFavorited(id: string): Promise<boolean>;
574
- favorite(id: string): Promise<void>;
575
- unfavorite(id: string): Promise<void>;
576
- reactions(id: string): Promise<CatalystReactions>;
577
- albumsInStatus(id: string): Promise<CatalystSmartAlbums>;
578
- react(id: string, symbol: string): Promise<void>;
579
- unreact(id: string, symbol: string): Promise<void>;
580
- contestTimeline(slug: string, opts?: {
722
+ editSmartAlbum(id: string, data: CatalystEditSmartAlbumRequest): Promise<CatalystSmartAlbum>;
723
+ deleteSmartAlbum(id: string): Promise<CatalystResult>;
724
+ getSmartAlbumBooks(id: string): Promise<CatalystAlbumBook[]>;
725
+ createSmartAlbumBook(id: string, data: CatalystCreateAlbumBookRequest): Promise<CatalystAlbumBook>;
726
+ getSmartAlbumBook(id: string, bookId: string): Promise<CatalystAlbumBook>;
727
+ regenerateSmartAlbumBook(id: string, bookId: string): Promise<CatalystAlbumBook>;
728
+ listSmartAlbumsByUser(userId: string): Promise<CatalystSmartAlbum[]>;
729
+ searchSmartAlbums(q?: string): Promise<CatalystSmartAlbum[]>;
730
+ archiveTimeline(opts: {
731
+ year: number;
732
+ month: number;
733
+ day?: number;
581
734
  since?: string;
582
735
  until?: string;
583
- }): Promise<CatalystStatuses>;
584
- favoriteTimeline(opts?: {
736
+ userId?: string;
737
+ limit?: number;
738
+ excludeSensitive?: boolean;
739
+ }): Promise<CatalystStatus[]>;
740
+ archiveMonths(): Promise<CatalystArchiveMonth[]>;
741
+ timelineByContestSlug(slug: string, opts?: {
585
742
  since?: string;
586
743
  until?: string;
587
- }): Promise<CatalystStatuses>;
588
- firehoseTimeline(opts?: {
744
+ }): Promise<CatalystStatus[]>;
745
+ favoriteTimeline(opts?: {
589
746
  since?: string;
590
747
  until?: string;
591
748
  }): Promise<CatalystStatusV1_1[]>;
592
- galleryTimeline(opts?: {
749
+ firehoseTimelineV1(opts?: {
593
750
  since?: string;
594
751
  until?: string;
595
- }): Promise<CatalystStatuses>;
596
- homeTimeline(opts?: {
752
+ }): Promise<CatalystStatus[]>;
753
+ galleryTimeline(opts?: {
597
754
  since?: string;
598
755
  until?: string;
599
- }): Promise<CatalystStatusV1_1[]>;
756
+ }): Promise<CatalystStatus[]>;
757
+ homeTimelineV1(): Promise<CatalystStatus[]>;
600
758
  searchTimeline(opts?: {
601
759
  q?: string;
602
760
  exact?: boolean;
603
761
  since?: string;
604
762
  until?: string;
605
- }): Promise<CatalystStatuses>;
763
+ }): Promise<CatalystStatus[]>;
606
764
  userTimeline(username: string, opts?: {
607
- trimUser?: boolean;
608
- excludeSensitive?: boolean;
609
765
  since?: string;
610
766
  until?: string;
611
- }): Promise<CatalystStatuses>;
767
+ limit?: number;
768
+ excludeSensitive?: boolean;
769
+ }): Promise<CatalystStatus[]>;
612
770
  userGalleryTimeline(username: string, opts?: {
613
771
  since?: string;
614
772
  until?: string;
615
- }): Promise<CatalystStatuses>;
616
- trend(): Promise<string[]>;
617
- createFleet(data: CatalystCreateFleetRequest): Promise<void>;
618
- fleetById(id: string): Promise<CatalystFleet>;
619
- deleteFleet(id: string): Promise<void>;
620
- viewFleet(id: string): Promise<void>;
621
- fleetViewers(id: string): Promise<CatalystFleetViewer[]>;
622
- reactFleet(id: string, symbol: string): Promise<void>;
623
- unreactFleet(id: string, symbol: string): Promise<void>;
624
- fleets(): Promise<CatalystFleetRing[]>;
625
- fleetByUsername(username: string): Promise<CatalystFleet[]>;
626
- createContest(data: CatalystCreateContestRequest): Promise<Identity>;
627
- getContestsByMe(): Promise<CatalystContest[]>;
628
- getContestBySlug(slug: string): Promise<{
629
- contest: CatalystContest;
630
- }>;
631
- editContest(slug: string, data: CatalystEditContestRequest): Promise<void>;
632
- getContestAwards(slug: string): Promise<{
633
- awards: CatalystContestAward[];
634
- }>;
635
- setContestAward(slug: string, id: string, data: CatalystSetContestAwardRequest): Promise<void>;
636
- unsetContestAward(slug: string, id: string, data: CatalystUnsetContestAwardRequest): Promise<void>;
637
- getContestCollaborators(slug: string): Promise<{
638
- collaborators: CatalystContestCollaborator[];
639
- }>;
640
- addContestCollaborator(slug: string, data: CatalystContestAddCollaboratorRequest): Promise<void>;
641
- removeContestCollaborator(slug: string, data: CatalystContestRemoveCollaboratorRequest): Promise<void>;
642
- copyContest(slug: string): Promise<Identity>;
643
- getAccessPermissionOfContest(slug: string): Promise<{
644
- result: "admin" | "collaborator" | "contributor" | "guest";
645
- }>;
646
- publishContest(slug: string): Promise<Identity>;
647
- addContestVoteToStatus(slug: string, id: string): Promise<void>;
648
- removeContestVoteFromStatus(slug: string, id: string): Promise<void>;
649
- getContestVotes(slug: string): Promise<CatalystUserVoteRights>;
650
- searchContest(state: string, q?: string): Promise<{
651
- contests: CatalystContest[];
652
- }>;
653
- reportStatus(id: string, data: ReportRequest): Promise<void>;
654
- getPrivacySettings(): Promise<CatalystPrivacySettings>;
655
- updatePrivacySettings(data: CatalystPrivacySettingsRequest): Promise<CatalystPrivacySettings>;
656
- announcements(): Promise<{
657
- announcements: CatalystAnnouncement[];
658
- }>;
659
- updateProfileTags(data: UpdateProfileTagsRequest): Promise<{
660
- tags: ProfileTag[];
661
- }>;
662
- profileTagSuggestions(q: string): Promise<{
663
- tags: ProfileTagSuggestion[];
664
- }>;
665
- getUsersByProfileTag(name: string, cursor?: string): Promise<{
666
- items: ProfileTagUser[];
667
- cursor: string | null;
668
- }>;
669
- getProfileTagsByUser(id: string): Promise<{
670
- tags: ProfileTag[];
671
- }>;
672
- randomStatus(): Promise<{
673
- status: CatalystStatus | null;
674
- }>;
675
- randomStatusByHashtag(q: string): Promise<{
676
- status: CatalystStatus | null;
677
- }>;
678
- bulkStatusReactions(ids: string[]): Promise<{
679
- reactions: Record<string, CatalystReactions>;
680
- }>;
681
- archiveTimeline(opts: {
682
- year: number;
683
- month: number;
684
- day?: number;
773
+ }): Promise<CatalystStatus[]>;
774
+ firehoseTimeline(opts?: {
685
775
  since?: string;
686
776
  until?: string;
687
- userId?: string;
688
- limit?: number;
689
- trimUser?: boolean;
690
- excludeSensitive?: boolean;
691
- }): Promise<{
692
- statuses: CatalystStatus[];
693
- }>;
694
- archiveMonths(): Promise<{
695
- months: {
696
- year: number;
697
- month: number;
698
- count: number;
699
- }[];
700
- }>;
701
- currentContests(): Promise<{
702
- contests: CatalystContest[];
703
- }>;
704
- getContestsByUser(username: string): Promise<{
705
- contests: CatalystContest[];
706
- }>;
707
- getContestPolls(slug: string): Promise<{
708
- polls: {
709
- status: CatalystStatus;
710
- count: number;
711
- }[];
712
- }>;
713
- getAlbumsByMe(includeSmartAlbums?: boolean): Promise<{
714
- albums: CatalystAlbum[];
715
- }>;
716
- listSmartAlbumsByUser(username: string): Promise<{
717
- albums: CatalystSmartAlbum[];
718
- }>;
777
+ trimVisitor?: boolean;
778
+ }): Promise<CatalystStatusV1_1[]>;
779
+ homeTimeline(opts?: {
780
+ since?: string;
781
+ until?: string;
782
+ trimVisitor?: boolean;
783
+ }): Promise<CatalystStatusV1_1[]>;
784
+ trend(): Promise<string[] | null>;
785
+ richTrend(): Promise<CatalystRichTrendingItem[] | null>;
719
786
  }
720
787
 
721
788
  declare class EgeriaClient {
@@ -728,11 +795,143 @@ declare class EgeriaClient {
728
795
  userByUsername(username: string): Promise<EgeriaUserWrapper | undefined>;
729
796
  }
730
797
 
798
+ interface EpiclesePlatform {
799
+ id: string;
800
+ name: string;
801
+ description: string;
802
+ url: string | null;
803
+ startAt: string | null;
804
+ }
805
+ interface EpiclesePlatformsWrapper {
806
+ platforms: EpiclesePlatform[];
807
+ }
808
+ interface EpiclesePlatformWrapper {
809
+ platform: EpiclesePlatform;
810
+ }
811
+ interface EpicleseAuthor {
812
+ id: string;
813
+ platformIdentifier: string;
814
+ platform: EpiclesePlatform | null;
815
+ name: string;
816
+ }
817
+ interface EpicleseAuthorWrapper {
818
+ author: EpicleseAuthor;
819
+ }
820
+ /** Paginated result of `GET /epiclese/v1/authors`. */
821
+ interface EpicleseAuthorsResult {
822
+ items: EpicleseAuthor[];
823
+ count: CountInfo;
824
+ page: PageInfo;
825
+ }
826
+ interface EpicleseWorld {
827
+ id: string;
828
+ platformIdentifier: string;
829
+ platform: EpiclesePlatform | null;
830
+ name: string;
831
+ author: EpicleseAuthor | null;
832
+ }
833
+ interface EpicleseWorldWrapper {
834
+ world: EpicleseWorld | null;
835
+ }
836
+ /** Internal wrapper for `GET /epiclese/v1/worlds` (`{"items": [...]}`, unwrapped by the client). */
837
+ interface EpicleseWorldsWrapper {
838
+ items: EpicleseWorld[];
839
+ }
840
+ interface EpicleseCreateAuthorRequest {
841
+ id?: string;
842
+ platformIdentifier: string;
843
+ platform: string;
844
+ name: string;
845
+ }
846
+ interface EpicleseCreateWorldRequest {
847
+ id?: string;
848
+ platformIdentifier: string;
849
+ platform: string;
850
+ name: string;
851
+ author: EpicleseCreateAuthorRequest | null;
852
+ }
853
+ interface EpicleseCreateStatusMetadataReferenceRequest {
854
+ x: number;
855
+ y: number;
856
+ /** UUID referencing another tag entry within the same batch request. */
857
+ reference?: string;
858
+ type: string;
859
+ name: string;
860
+ description?: string;
861
+ externalUrl?: string;
862
+ author?: EpicleseCreateAuthorRequest;
863
+ }
864
+ interface EpicleseCreateStatusMetadataTagRequest {
865
+ id: string;
866
+ platform?: string;
867
+ world?: EpicleseCreateWorldRequest;
868
+ users?: {
869
+ id: string;
870
+ }[];
871
+ reference: EpicleseCreateStatusMetadataReferenceRequest[];
872
+ privacyMetadata?: boolean;
873
+ }
874
+ interface EpicleseStatusMetadataReference {
875
+ type: string;
876
+ name: string;
877
+ description: string;
878
+ externalUrl: string | null;
879
+ author: EpicleseAuthor;
880
+ x: number;
881
+ y: number;
882
+ reference: string;
883
+ }
884
+ interface EpicleseStatusMetadataTag {
885
+ platform: string | null;
886
+ world: EpicleseWorld | null;
887
+ users: EgeriaUser[];
888
+ reference: EpicleseStatusMetadataReference[];
889
+ additionalData?: Record<string, string>;
890
+ additionalData2?: Record<string, {
891
+ value: string;
892
+ ref: string | null;
893
+ }>;
894
+ }
895
+ /** `EpicleseStatusMetadataResponse` — a map keyed by tag id. */
896
+ type EpicleseStatusMetadata = Record<string, EpicleseStatusMetadataTag>;
897
+
898
+ /** Client for Epiclese (world/author metadata) API endpoints. */
899
+ declare class EpicleseClient {
900
+ private readonly http;
901
+ constructor(http: HttpClient);
902
+ getAuthors(q?: string, platform?: string): Promise<EpicleseAuthorsResult>;
903
+ createAuthor(data: EpicleseCreateAuthorRequest): Promise<EpicleseAuthor>;
904
+ getPlatforms(): Promise<EpiclesePlatform[]>;
905
+ getPlatform(id: string): Promise<EpiclesePlatform>;
906
+ getStatusMetadata(statusId: string): Promise<EpicleseStatusMetadata>;
907
+ createStatusMetadata(statusId: string, tags: EpicleseCreateStatusMetadataTagRequest[]): Promise<EpicleseStatusMetadata>;
908
+ getWorlds(q?: string, platform?: string, offset?: number): Promise<EpicleseWorld[]>;
909
+ createWorld(data: EpicleseCreateWorldRequest): Promise<EpicleseWorld | null>;
910
+ resolveWorld(platform: string, name: string): Promise<EpicleseWorld | null>;
911
+ }
912
+
913
+ /** Client for Feature Flags API endpoints. */
914
+ declare class FeatureFlagsClient {
915
+ private readonly http;
916
+ constructor(http: HttpClient);
917
+ /** Gets the feature flags enabled for the current user. */
918
+ me(): Promise<string[]>;
919
+ }
920
+
731
921
  declare class MediaClient {
732
922
  private readonly http;
733
923
  constructor(http: HttpClient);
924
+ /** Gets a signed URL for uploading media (v1). */
925
+ uploadV1(): Promise<MediaUploadUrls>;
926
+ /**
927
+ * Downloads media by URL.
928
+ *
929
+ * Not documented in the current OpenAPI spec, but still supported by the live API.
930
+ */
734
931
  download(data: MediaDownloadRequest): Promise<ArrayBuffer>;
735
- delete(data: MediaDeleteRequest): Promise<void>;
932
+ /** Deletes media by URL. */
933
+ delete(url: string): Promise<boolean>;
934
+ /** Gets a signed URL for uploading media (v2). */
736
935
  upload(): Promise<MediaUploadUrls>;
737
936
  }
738
937
 
@@ -753,7 +952,7 @@ interface Notification {
753
952
  id: string;
754
953
  title: string;
755
954
  isGrouped: boolean;
756
- belongsTo: Record<string, unknown>;
955
+ belongsTo?: Record<string, unknown>;
757
956
  entities: NotificationGroup[];
758
957
  hasMore: boolean;
759
958
  read: boolean;
@@ -774,19 +973,26 @@ declare class SteambirdClient {
774
973
  readonly ISSUER_CATALYST_USER_MESSAGE = "natsuneko-laboratory:catalyst-message";
775
974
  readonly ISSUER_EGERIA_SYSTEM_MESSAGE = "natsuneko-laboratory:egeria";
776
975
  constructor(http: HttpClient);
777
- notifications(issuer: string, opts?: {
976
+ /** Gets notifications for a specific issuer, or all issuers if omitted. */
977
+ notifications(issuer?: string, opts?: {
778
978
  since?: string;
779
979
  until?: string;
780
- }): Promise<Notifications>;
781
- read(id: string): Promise<void>;
782
- readAll(issuer?: string): Promise<void>;
783
- unreads(issuers?: string[]): Promise<NotificationUnreadCount>;
980
+ }): Promise<Notification[]>;
981
+ read(id: string): Promise<CatalystResult>;
982
+ readAll(issuer?: string): Promise<CatalystResult>;
983
+ unreads(issuer?: string, issuers?: string[]): Promise<NotificationUnreadCount>;
784
984
  }
785
985
 
786
986
  interface Token {
787
987
  accessToken: string;
788
988
  refreshToken: string;
789
989
  tokenType: string;
990
+ /** Present on responses from the real token-exchange endpoint (e.g. "read write"). */
991
+ scope?: string;
992
+ /** ISO8601 timestamp string for when the access token expires. */
993
+ expiresAt?: string;
994
+ /** Seconds until the access token expires. */
995
+ expiresIn?: number;
790
996
  }
791
997
 
792
998
  declare class PKCE {
@@ -848,6 +1054,8 @@ declare class CatalystTS {
848
1054
  get egeria(): EgeriaClient;
849
1055
  get media(): MediaClient;
850
1056
  get steambird(): SteambirdClient;
1057
+ get epiclese(): EpicleseClient;
1058
+ get featureFlags(): FeatureFlagsClient;
851
1059
  }
852
1060
 
853
1061
  declare class ApiError extends Error {
@@ -868,74 +1076,132 @@ declare const PUBLIC_API_ENDPOINT = "https://api.natsuneko.com";
868
1076
  declare const PUBLIC_GRAPHQL_ENDPOINT = "https://graphql.natsuneko.com";
869
1077
  declare const PUBLIC_AUTHORIZE_ENDPOINT = "https://accounts.natsuneko.com/authorize";
870
1078
 
1079
+ /** Wrapper for the `{"flags": [...]}` response shape of `GET /feature-flags/v1/me`. */
1080
+ interface FeatureFlagsResponse {
1081
+ flags: string[];
1082
+ }
1083
+
871
1084
  declare const CatalystEndpoint: {
872
1085
  readonly createAlbum: (data: CatalystCreateAlbumRequest) => Endpoint;
873
1086
  readonly getAlbum: (id: string, opts?: {
1087
+ limit?: number;
874
1088
  since?: string;
875
1089
  until?: string;
876
1090
  }) => Endpoint;
1091
+ readonly insertToAlbum: (id: string, statusId: string) => Endpoint;
1092
+ readonly removeFromAlbum: (id: string, statusId: string) => Endpoint;
877
1093
  readonly editAlbum: (id: string, data: CatalystEditAlbumRequest) => Endpoint;
878
- readonly insertToAlbum: (id: string, data: CatalystInsertToAlbumRequest) => Endpoint;
879
- readonly removeFromAlbum: (id: string, data: CatalystRemoveFromAlbumRequest) => Endpoint;
880
1094
  readonly deleteAlbum: (id: string) => Endpoint;
881
- readonly listAlbums: (username: string, includeSmartAlbums?: boolean) => Endpoint;
882
- readonly searchAlbum: (q: string, includeSmartAlbums?: boolean) => Endpoint;
1095
+ readonly getAlbumBooks: (id: string) => Endpoint;
1096
+ readonly createAlbumBook: (id: string, data: CatalystCreateAlbumBookRequest) => Endpoint;
1097
+ readonly getAlbumBook: (id: string, bookId: string) => Endpoint;
1098
+ readonly regenerateAlbumBook: (id: string, bookId: string) => Endpoint;
1099
+ readonly getAlbumsByMe: (includeSmartAlbums?: boolean) => Endpoint;
1100
+ readonly listAlbums: (username: string, includeSmartAlbum?: boolean) => Endpoint;
1101
+ readonly searchAlbums: (q?: string, includeSmartAlbum?: boolean, until?: string) => Endpoint;
1102
+ readonly announcements: () => Endpoint;
1103
+ readonly block: (userId: string) => Endpoint;
1104
+ readonly unblock: (userId: string) => Endpoint;
1105
+ readonly getContestsByMe: () => Endpoint;
1106
+ readonly getContestBySlug: (slug: string) => Endpoint;
1107
+ readonly contestTimeline: (slug: string) => Endpoint;
1108
+ readonly getContestVotes: (slug: string) => Endpoint;
1109
+ readonly addContestVote: (slug: string, status: string) => Endpoint;
1110
+ readonly removeContestVote: (slug: string, status: string) => Endpoint;
1111
+ readonly getContestsByUser: (userId: string) => Endpoint;
1112
+ readonly currentContests: () => Endpoint;
1113
+ readonly searchContests: (q?: string, state?: string, id?: string) => Endpoint;
883
1114
  readonly customReactions: () => Endpoint;
884
- readonly customUserReactions: () => Endpoint;
1115
+ readonly getCustomUserReactions: () => Endpoint;
885
1116
  readonly createCustomReaction: (data: FormData) => Endpoint;
886
1117
  readonly updateCustomReaction: (id: string, data: UpdateCustomReactionRequest) => Endpoint;
887
1118
  readonly deleteCustomReaction: (id: string) => Endpoint;
888
- readonly block: (data: CatalystRelationshipRequest) => Endpoint;
889
- readonly unblock: (data: CatalystRelationshipRequest) => Endpoint;
890
- readonly relationships: (id: string) => Endpoint;
891
- readonly follow: (data: CatalystRelationshipRequest) => Endpoint;
892
- readonly remove: (data: CatalystRelationshipRequest) => Endpoint;
893
- readonly followings: (username: string, opts?: {
1119
+ readonly createFleet: (data: CatalystCreateFleetRequest) => Endpoint;
1120
+ readonly fleetByUsername: (username: string) => Endpoint;
1121
+ readonly fleets: () => Endpoint;
1122
+ readonly fleetById: (id: string) => Endpoint;
1123
+ readonly deleteFleet: (id: string) => Endpoint;
1124
+ readonly reactFleet: (id: string, symbol: string) => Endpoint;
1125
+ readonly unreactFleet: (id: string, symbol: string) => Endpoint;
1126
+ readonly viewFleet: (id: string) => Endpoint;
1127
+ readonly fleetViewers: (id: string) => Endpoint;
1128
+ readonly getPrivacySettings: () => Endpoint;
1129
+ readonly updatePrivacySettings: (data: CatalystPrivacySettingsRequest) => Endpoint;
1130
+ readonly updateProfileTags: (data: UpdateProfileTagsRequest) => Endpoint;
1131
+ readonly profileTagSuggestions: (q: string) => Endpoint;
1132
+ readonly getUsersByProfileTag: (name: string, cursor?: string) => Endpoint;
1133
+ readonly getProfileTagsByUser: (id: string) => Endpoint;
1134
+ readonly randomStatus: () => Endpoint;
1135
+ readonly randomStatusV1_1: () => Endpoint;
1136
+ readonly onThisDay: () => Endpoint;
1137
+ readonly createStatus: (data: CatalystCreateStatusRequest) => Endpoint;
1138
+ readonly getStatus: (id: string) => Endpoint;
1139
+ readonly getStatusV1_1: (id: string) => Endpoint;
1140
+ readonly editStatus: (id: string, data: CatalystEditStatusRequest) => Endpoint;
1141
+ readonly deleteStatus: (id: string) => Endpoint;
1142
+ readonly albumsInStatus: (id: string) => Endpoint;
1143
+ readonly isFavorited: (id: string) => Endpoint;
1144
+ readonly favorite: (id: string) => Endpoint;
1145
+ readonly unfavorite: (id: string) => Endpoint;
1146
+ readonly reactions: (id: string) => Endpoint;
1147
+ readonly reactWithCustomReaction: (id: string, customReactionId: string) => Endpoint;
1148
+ readonly unreactWithCustomReaction: (id: string, customReactionId: string) => Endpoint;
1149
+ readonly react: (id: string, symbol: string) => Endpoint;
1150
+ readonly unreact: (id: string, symbol: string) => Endpoint;
1151
+ readonly reportStatus: (id: string, data: ReportRequest) => Endpoint;
1152
+ readonly bulkStatusReactions: (ids: string[]) => Endpoint;
1153
+ readonly follow: (userId: string) => Endpoint;
1154
+ readonly remove: (userId: string) => Endpoint;
1155
+ readonly relationshipCounts: (username: string) => Endpoint;
1156
+ readonly followers: (username: string, opts?: {
894
1157
  page?: number;
895
1158
  }) => Endpoint;
896
- readonly followers: (username: string, opts?: {
1159
+ readonly followings: (username: string, opts?: {
897
1160
  page?: number;
898
1161
  }) => Endpoint;
899
- readonly relationshipCounts: (username: string) => Endpoint;
1162
+ readonly relationships: (id: string) => Endpoint;
900
1163
  readonly createSmartAlbum: (data: CatalystCreateSmartAlbumRequest) => Endpoint;
901
1164
  readonly getSmartAlbum: (id: string, opts?: {
1165
+ limit?: number;
902
1166
  since?: string;
903
1167
  until?: string;
904
1168
  }) => Endpoint;
905
1169
  readonly editSmartAlbum: (id: string, data: CatalystEditSmartAlbumRequest) => Endpoint;
906
1170
  readonly deleteSmartAlbum: (id: string) => Endpoint;
907
- readonly searchSmartAlbum: (q: string) => Endpoint;
908
- readonly createStatus: (data: CatalystCreateStatusRequest) => Endpoint;
909
- readonly getStatus: (id: string) => Endpoint;
910
- readonly editStatus: (id: string, data: CatalystEditStatusRequest) => Endpoint;
911
- readonly deleteStatus: (id: string) => Endpoint;
912
- readonly isFavorited: (id: string) => Endpoint;
913
- readonly favorite: (id: string) => Endpoint;
914
- readonly unfavorite: (id: string) => Endpoint;
915
- readonly reactions: (id: string) => Endpoint;
916
- readonly albumsInStatus: (id: string) => Endpoint;
917
- readonly react: (id: string, symbol: string) => Endpoint;
918
- readonly unreact: (id: string, symbol: string) => Endpoint;
919
- readonly contestTimeline: (slug: string, opts?: {
1171
+ readonly getSmartAlbumBooks: (id: string) => Endpoint;
1172
+ readonly createSmartAlbumBook: (id: string, data: CatalystCreateAlbumBookRequest) => Endpoint;
1173
+ readonly getSmartAlbumBook: (id: string, bookId: string) => Endpoint;
1174
+ readonly regenerateSmartAlbumBook: (id: string, bookId: string) => Endpoint;
1175
+ readonly listSmartAlbumsByUser: (userId: string) => Endpoint;
1176
+ readonly searchSmartAlbums: (q?: string) => Endpoint;
1177
+ readonly archiveTimeline: (opts: {
1178
+ year: number;
1179
+ month: number;
1180
+ day?: number;
920
1181
  since?: string;
921
1182
  until?: string;
1183
+ userId?: string;
1184
+ limit?: number;
1185
+ excludeSensitive?: boolean;
922
1186
  }) => Endpoint;
923
- readonly favoriteTimeline: (opts?: {
1187
+ readonly archiveMonths: () => Endpoint;
1188
+ readonly timelineByContestSlug: (slug: string, opts?: {
924
1189
  since?: string;
925
1190
  until?: string;
926
1191
  }) => Endpoint;
927
- readonly firehoseTimeline: (opts?: {
1192
+ readonly favoriteTimeline: (opts?: {
928
1193
  since?: string;
929
1194
  until?: string;
930
1195
  }) => Endpoint;
931
- readonly galleryTimeline: (opts?: {
1196
+ readonly firehoseTimelineV1: (opts?: {
932
1197
  since?: string;
933
1198
  until?: string;
934
1199
  }) => Endpoint;
935
- readonly homeTimeline: (opts?: {
1200
+ readonly galleryTimeline: (opts?: {
936
1201
  since?: string;
937
1202
  until?: string;
938
1203
  }) => Endpoint;
1204
+ readonly homeTimelineV1: () => Endpoint;
939
1205
  readonly searchTimeline: (opts?: {
940
1206
  q?: string;
941
1207
  exact?: boolean;
@@ -943,70 +1209,27 @@ declare const CatalystEndpoint: {
943
1209
  until?: string;
944
1210
  }) => Endpoint;
945
1211
  readonly userTimeline: (username: string, opts?: {
946
- trimUser?: boolean;
947
- excludeSensitive?: boolean;
948
1212
  since?: string;
949
1213
  until?: string;
1214
+ limit?: number;
1215
+ excludeSensitive?: boolean;
950
1216
  }) => Endpoint;
951
1217
  readonly userGalleryTimeline: (username: string, opts?: {
952
1218
  since?: string;
953
1219
  until?: string;
954
1220
  }) => Endpoint;
955
- readonly trend: () => Endpoint;
956
- readonly createFleet: (data: CatalystCreateFleetRequest) => Endpoint;
957
- readonly fleetById: (id: string) => Endpoint;
958
- readonly deleteFleet: (id: string) => Endpoint;
959
- readonly viewFleet: (id: string) => Endpoint;
960
- readonly fleetViewers: (id: string) => Endpoint;
961
- readonly reactFleet: (id: string, symbol: string) => Endpoint;
962
- readonly unreactFleet: (id: string, symbol: string) => Endpoint;
963
- readonly fleets: () => Endpoint;
964
- readonly fleetByUsername: (username: string) => Endpoint;
965
- readonly createContest: (data: CatalystCreateContestRequest) => Endpoint;
966
- readonly getContestsByMe: () => Endpoint;
967
- readonly getContestBySlug: (slug: string) => Endpoint;
968
- readonly editContest: (slug: string, data: CatalystEditContestRequest) => Endpoint;
969
- readonly getContestAwards: (slug: string) => Endpoint;
970
- readonly setContestAward: (slug: string, id: string, data: CatalystSetContestAwardRequest) => Endpoint;
971
- readonly unsetContestAward: (slug: string, id: string, data: CatalystUnsetContestAwardRequest) => Endpoint;
972
- readonly getContestCollaborators: (slug: string) => Endpoint;
973
- readonly addContestCollaborator: (slug: string, data: CatalystContestAddCollaboratorRequest) => Endpoint;
974
- readonly removeContestCollaborator: (slug: string, data: CatalystContestRemoveCollaboratorRequest) => Endpoint;
975
- readonly copyContest: (slug: string) => Endpoint;
976
- readonly getAccessPermissionOfContest: (slug: string) => Endpoint;
977
- readonly getContestPolls: (slug: string) => Endpoint;
978
- readonly publishContest: (slug: string) => Endpoint;
979
- readonly addContestVoteToStatus: (slug: string, id: string) => Endpoint;
980
- readonly removeContestVoteFromStatus: (slug: string, id: string) => Endpoint;
981
- readonly getContestVotes: (slug: string) => Endpoint;
982
- readonly searchContest: (state: string, q?: string) => Endpoint;
983
- readonly reportStatus: (id: string, data: ReportRequest) => Endpoint;
984
- readonly getPrivacySettings: () => Endpoint;
985
- readonly updatePrivacySettings: (data: CatalystPrivacySettingsRequest) => Endpoint;
986
- readonly announcements: () => Endpoint;
987
- readonly updateProfileTags: (data: UpdateProfileTagsRequest) => Endpoint;
988
- readonly profileTagSuggestions: (q: string) => Endpoint;
989
- readonly getUsersByProfileTag: (name: string, cursor?: string) => Endpoint;
990
- readonly getProfileTagsByUser: (id: string) => Endpoint;
991
- readonly randomStatus: () => Endpoint;
992
- readonly randomStatusByHashtag: (q: string) => Endpoint;
993
- readonly bulkStatusReactions: (ids: string[]) => Endpoint;
994
- readonly archiveTimeline: (opts: {
995
- year: number;
996
- month: number;
997
- day?: number;
1221
+ readonly firehoseTimeline: (opts?: {
998
1222
  since?: string;
999
1223
  until?: string;
1000
- userId?: string;
1001
- limit?: number;
1002
- trimUser?: boolean;
1003
- excludeSensitive?: boolean;
1224
+ trimVisitor?: boolean;
1004
1225
  }) => Endpoint;
1005
- readonly archiveMonths: () => Endpoint;
1006
- readonly currentContests: () => Endpoint;
1007
- readonly getContestsByUser: (username: string) => Endpoint;
1008
- readonly getAlbumsByMe: (includeSmartAlbums?: boolean) => Endpoint;
1009
- readonly listSmartAlbumsByUser: (username: string) => Endpoint;
1226
+ readonly homeTimeline: (opts?: {
1227
+ since?: string;
1228
+ until?: string;
1229
+ trimVisitor?: boolean;
1230
+ }) => Endpoint;
1231
+ readonly trend: () => Endpoint;
1232
+ readonly richTrend: () => Endpoint;
1010
1233
  };
1011
1234
 
1012
1235
  declare const EgeriaEndpoint: {
@@ -1017,20 +1240,40 @@ declare const EgeriaEndpoint: {
1017
1240
  readonly userByUsername: (username: string) => Endpoint;
1018
1241
  };
1019
1242
 
1243
+ declare const EpicleseEndpoint: {
1244
+ readonly getAuthors: (q?: string, platform?: string) => Endpoint;
1245
+ readonly createAuthor: (data: EpicleseCreateAuthorRequest) => Endpoint;
1246
+ readonly getPlatforms: () => Endpoint;
1247
+ readonly getPlatform: (id: string) => Endpoint;
1248
+ readonly getStatusMetadata: (statusId: string) => Endpoint;
1249
+ readonly createStatusMetadata: (statusId: string, data: EpicleseCreateStatusMetadataTagRequest[]) => Endpoint;
1250
+ readonly getWorlds: (q?: string, platform?: string, offset?: number) => Endpoint;
1251
+ readonly createWorld: (data: EpicleseCreateWorldRequest) => Endpoint;
1252
+ readonly resolveWorld: (platform: string, name: string) => Endpoint;
1253
+ };
1254
+
1255
+ declare const FeatureFlagsEndpoint: {
1256
+ readonly me: () => Endpoint;
1257
+ };
1258
+
1020
1259
  declare const MediaEndpoint: {
1260
+ /** Gets a signed URL for uploading media (v1). */
1261
+ readonly uploadV1: () => Endpoint;
1262
+ /** Not documented in the current OpenAPI spec, but still supported by the live API. */
1021
1263
  readonly download: (data: MediaDownloadRequest) => Endpoint;
1022
1264
  readonly delete: (data: MediaDeleteRequest) => Endpoint;
1265
+ /** Gets a signed URL for uploading media (v2). */
1023
1266
  readonly upload: () => Endpoint;
1024
1267
  };
1025
1268
 
1026
1269
  declare const SteambirdEndpoint: {
1027
- readonly notifications: (issuer: string, opts?: {
1270
+ readonly notifications: (issuer?: string, opts?: {
1028
1271
  since?: string;
1029
1272
  until?: string;
1030
1273
  }) => Endpoint;
1031
1274
  readonly read: (id: string) => Endpoint;
1032
1275
  readonly readAll: (issuer?: string) => Endpoint;
1033
- readonly unreads: (issuers?: string[]) => Endpoint;
1276
+ readonly unreads: (issuer?: string, issuers?: string[]) => Endpoint;
1034
1277
  };
1035
1278
 
1036
1279
  declare class AuthInterceptor implements RequestInterceptor {
@@ -1055,4 +1298,4 @@ declare class LoggingInterceptor implements RequestInterceptor {
1055
1298
  retry(request: Request, error: unknown): Promise<boolean>;
1056
1299
  }
1057
1300
 
1058
- export { ApiError, AuthInterceptor, type CatalystAlbum, type CatalystAlbumDisplayMode, type CatalystAnnouncement, CatalystClient, type CatalystContest, type CatalystContestAddCollaboratorRequest, type CatalystContestAward, type CatalystContestCollaborator, type CatalystContestPolls, type CatalystContestRank, type CatalystContestRemoveCollaboratorRequest, type CatalystContestState, type CatalystCreateAlbumRequest, type CatalystCreateContestRequest, type CatalystCreateFleetMedia, type CatalystCreateFleetRequest, type CatalystCreateFleetSticker, type CatalystCreateFleetText, type CatalystCreateSmartAlbumRequest, type CatalystCreateStatusRequest, type CatalystCustomReaction, type CatalystCustomReactionList, type CatalystCustomReactionStatus, type CatalystEditAlbumRequest, type CatalystEditContestRequest, type CatalystEditSmartAlbumRequest, type CatalystEditStatusRequest, CatalystEndpoint, CatalystError, type CatalystFleet, type CatalystFleetMedia, type CatalystFleetRing, type CatalystFleetSticker, type CatalystFleetText, type CatalystFleetViewer, type CatalystInsertToAlbumRequest, type CatalystMediaWithMetadata, type CatalystPrivacySettings, type CatalystPrivacySettingsRequest, type CatalystReaction, type CatalystReactions, type CatalystRelationshipRequest, type CatalystRelationships, type CatalystRemoveFromAlbumRequest, type CatalystSetContestAwardRequest, type CatalystSmartAlbum, type CatalystSmartAlbums, type CatalystStatus, type CatalystStatusContest, type CatalystStatusPrivacy, type CatalystStatusV1_1, type CatalystStatusVisitor, type CatalystStatusWrapper, type CatalystStatuses, CatalystTS, type CatalystTSOptions, type CatalystUnsetContestAwardRequest, type CatalystUserCustomReaction, type CatalystUserVoteRights, EgeriaClient, EgeriaEndpoint, type EgeriaUpdateProfileRequest, type EgeriaUser, type EgeriaUserProfile, type EgeriaUserWrapper, type EgeriaUsers, type Endpoint, HttpClient, type HttpMethod, ISSUER_CATALYST_SYSTEM_MESSAGE, ISSUER_CATALYST_USER_MESSAGE, ISSUER_EGERIA_SYSTEM_MESSAGE, type Identity, LoggingInterceptor, type Media, MediaClient, type MediaDeleteRequest, type MediaDownloadRequest, MediaEndpoint, type MediaMetadata, type MediaUploadUrls, type Notification, type NotificationAdditionalContext, type NotificationGroup, type NotificationUnreadCount, type Notifications, OAuth, OAuthError, PKCE, PUBLIC_API_ENDPOINT, PUBLIC_AUTHORIZE_ENDPOINT, PUBLIC_GRAPHQL_ENDPOINT, type ProfileTag, type ProfileTagSuggestion, type ProfileTagUser, type ReportRequest, type RequestInterceptor, SteambirdClient, SteambirdEndpoint, type SupporterTier, type Token, type UpdateCustomReactionRequest, type UpdateProfileTagsRequest, UserAgentInterceptor };
1301
+ export { ApiError, AuthInterceptor, type CatalystAlbum, type CatalystAlbumBook, type CatalystAlbumBookQuality, type CatalystAlbumBookStatus, type CatalystAlbumBookTemplate, type CatalystAlbumBookTocType, type CatalystAlbumDisplayMode, type CatalystAlbumOrSmartAlbum, type CatalystAlbumOrSmartAlbums, type CatalystAlbumsWrapper, type CatalystAnnouncement, type CatalystAnnouncementsWrapper, type CatalystArchiveMonth, type CatalystArchiveMonths, CatalystClient, type CatalystContest, type CatalystContestRank, type CatalystContestState, type CatalystContestWrapper, type CatalystContestsWrapper, type CatalystCreateAlbumBookRequest, type CatalystCreateAlbumRequest, type CatalystCreateFleetMedia, type CatalystCreateFleetMediaPlacement, type CatalystCreateFleetRequest, type CatalystCreateFleetSticker, type CatalystCreateFleetText, type CatalystCreateSmartAlbumRequest, type CatalystCreateStatusRequest, type CatalystCustomReaction, type CatalystCustomReactionList, type CatalystCustomReactionStatus, type CatalystCustomReactionVisibility, type CatalystEditAlbumRequest, type CatalystEditSmartAlbumRequest, type CatalystEditStatusRequest, CatalystEndpoint, CatalystError, type CatalystFleet, type CatalystFleetMedia, type CatalystFleetRing, type CatalystFleetSticker, type CatalystFleetText, type CatalystFleetViewer, type CatalystFollowingOrFollowersList, type CatalystInsertOrRemoveStatusAlbumRequest, type CatalystInsertToAlbumRequest, type CatalystMediaWithMetadata, type CatalystMessage, type CatalystPrivacySettings, type CatalystPrivacySettingsRequest, type CatalystRandomStatusWrapper, type CatalystReaction, type CatalystReactionValue, type CatalystReactions, type CatalystRelationshipRequest, type CatalystRelationships, type CatalystRelationshipsCount, type CatalystRemoveFromAlbumRequest, type CatalystResult, type CatalystRichTrendingItem, type CatalystSmartAlbum, type CatalystSmartAlbums, type CatalystStatus, type CatalystStatusContest, type CatalystStatusPrivacy, type CatalystStatusV1Wrapper, type CatalystStatusV1_1, type CatalystStatusV1_1Wrapper, type CatalystStatusVisitor, type CatalystStatuses, type CatalystStatusesV1_1, CatalystTS, type CatalystTSOptions, type CatalystUserCustomReaction, type CatalystUserVoteRights, type CountInfo, EgeriaClient, EgeriaEndpoint, type EgeriaUpdateProfileRequest, type EgeriaUser, type EgeriaUserProfile, type EgeriaUserWrapper, type EgeriaUsers, type Endpoint, type EpicleseAuthor, type EpicleseAuthorWrapper, type EpicleseAuthorsResult, EpicleseClient, type EpicleseCreateAuthorRequest, type EpicleseCreateStatusMetadataReferenceRequest, type EpicleseCreateStatusMetadataTagRequest, type EpicleseCreateWorldRequest, EpicleseEndpoint, type EpiclesePlatform, type EpiclesePlatformWrapper, type EpiclesePlatformsWrapper, type EpicleseStatusMetadata, type EpicleseStatusMetadataReference, type EpicleseStatusMetadataTag, type EpicleseWorld, type EpicleseWorldWrapper, type EpicleseWorldsWrapper, FeatureFlagsClient, FeatureFlagsEndpoint, type FeatureFlagsResponse, HttpClient, type HttpMethod, ISSUER_CATALYST_SYSTEM_MESSAGE, ISSUER_CATALYST_USER_MESSAGE, ISSUER_EGERIA_SYSTEM_MESSAGE, type Identity, LoggingInterceptor, type Media, MediaClient, type MediaDeleteRequest, type MediaDownloadRequest, MediaEndpoint, type MediaMetadata, type MediaUploadUrls, type Notification, type NotificationAdditionalContext, type NotificationGroup, type NotificationUnreadCount, type Notifications, OAuth, OAuthError, PKCE, PUBLIC_API_ENDPOINT, PUBLIC_AUTHORIZE_ENDPOINT, PUBLIC_GRAPHQL_ENDPOINT, type PageInfo, type ProfileEmoji, type ProfileEmojiCustom, type ProfileEmojiCustomRequest, type ProfileEmojiRequest, type ProfileEmojiStandard, type ProfileEmojiStandardRequest, type ProfileTag, type ProfileTagSuggestion, type ProfileTagSuggestionsWrapper, type ProfileTagSummary, type ProfileTagUser, type ProfileTagUsersResult, type ProfileTagsWrapper, type ReportRequest, type RequestInterceptor, SteambirdClient, SteambirdEndpoint, type SupporterTier, type Token, type UpdateCustomReactionRequest, type UpdateProfileTagsRequest, UserAgentInterceptor };