@rocksky/sdk 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +5 -0
  2. package/dist/generated/types.d.ts +1812 -0
  3. package/dist/generated/types.d.ts.map +1 -0
  4. package/dist/http.d.ts +2 -2
  5. package/dist/http.d.ts.map +1 -1
  6. package/dist/namespaces/_helpers.d.ts +1 -1
  7. package/dist/namespaces/_helpers.d.ts.map +1 -1
  8. package/dist/namespaces/actor.d.ts +13 -23
  9. package/dist/namespaces/actor.d.ts.map +1 -1
  10. package/dist/namespaces/album.d.ts +5 -11
  11. package/dist/namespaces/album.d.ts.map +1 -1
  12. package/dist/namespaces/apikey.d.ts +4 -17
  13. package/dist/namespaces/apikey.d.ts.map +1 -1
  14. package/dist/namespaces/artist.d.ts +8 -23
  15. package/dist/namespaces/artist.d.ts.map +1 -1
  16. package/dist/namespaces/charts.d.ts +6 -18
  17. package/dist/namespaces/charts.d.ts.map +1 -1
  18. package/dist/namespaces/dropbox.d.ts +6 -13
  19. package/dist/namespaces/dropbox.d.ts.map +1 -1
  20. package/dist/namespaces/feed.d.ts +12 -31
  21. package/dist/namespaces/feed.d.ts.map +1 -1
  22. package/dist/namespaces/googledrive.d.ts +5 -10
  23. package/dist/namespaces/googledrive.d.ts.map +1 -1
  24. package/dist/namespaces/graph.d.ts +9 -22
  25. package/dist/namespaces/graph.d.ts.map +1 -1
  26. package/dist/namespaces/like.d.ts +7 -8
  27. package/dist/namespaces/like.d.ts.map +1 -1
  28. package/dist/namespaces/mirror.d.ts +3 -7
  29. package/dist/namespaces/mirror.d.ts.map +1 -1
  30. package/dist/namespaces/player.d.ts +13 -35
  31. package/dist/namespaces/player.d.ts.map +1 -1
  32. package/dist/namespaces/playlist.d.ts +10 -34
  33. package/dist/namespaces/playlist.d.ts.map +1 -1
  34. package/dist/namespaces/scrobble.d.ts +4 -35
  35. package/dist/namespaces/scrobble.d.ts.map +1 -1
  36. package/dist/namespaces/shout.d.ts +11 -32
  37. package/dist/namespaces/shout.d.ts.map +1 -1
  38. package/dist/namespaces/song.d.ts +4 -38
  39. package/dist/namespaces/song.d.ts.map +1 -1
  40. package/dist/namespaces/spotify.d.ts +4 -7
  41. package/dist/namespaces/spotify.d.ts.map +1 -1
  42. package/dist/namespaces/stats.d.ts +4 -8
  43. package/dist/namespaces/stats.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/generated/types.ts +2019 -0
  46. package/src/http.ts +3 -3
  47. package/src/namespaces/_helpers.ts +1 -1
  48. package/src/namespaces/actor.ts +23 -19
  49. package/src/namespaces/album.ts +9 -9
  50. package/src/namespaces/apikey.ts +9 -9
  51. package/src/namespaces/artist.ts +15 -21
  52. package/src/namespaces/charts.ts +10 -19
  53. package/src/namespaces/dropbox.ts +11 -5
  54. package/src/namespaces/feed.ts +22 -16
  55. package/src/namespaces/googledrive.ts +9 -4
  56. package/src/namespaces/graph.ts +15 -16
  57. package/src/namespaces/like.ts +12 -6
  58. package/src/namespaces/mirror.ts +3 -7
  59. package/src/namespaces/player.ts +25 -27
  60. package/src/namespaces/playlist.ts +19 -9
  61. package/src/namespaces/scrobble.ts +8 -34
  62. package/src/namespaces/shout.ts +21 -12
  63. package/src/namespaces/song.ts +15 -36
  64. package/src/namespaces/spotify.ts +7 -3
  65. package/src/namespaces/stats.ts +7 -3
@@ -0,0 +1,1812 @@
1
+ export interface BlobRef {
2
+ $type?: "blob";
3
+ ref?: {
4
+ $link?: string;
5
+ };
6
+ mimeType?: string;
7
+ size?: number;
8
+ }
9
+ export type CidLink = string;
10
+ export type DateTime = string;
11
+ export type AtUri = string;
12
+ export type AtIdentifier = string;
13
+ export type Did = string;
14
+ export type Cid = string;
15
+ export type Uri = string;
16
+ export interface ActorArtistViewBasic {
17
+ id?: string;
18
+ name?: string;
19
+ picture?: Uri;
20
+ uri?: AtUri;
21
+ user1Rank?: number;
22
+ user2Rank?: number;
23
+ weight?: number;
24
+ }
25
+ export interface ActorCompatibilityViewBasic {
26
+ compatibilityLevel?: number;
27
+ compatibilityPercentage?: number;
28
+ sharedArtists?: number;
29
+ topSharedArtistNames?: string[];
30
+ topSharedDetailedArtists?: ActorArtistViewBasic[];
31
+ user1ArtistCount?: number;
32
+ user2ArtistCount?: number;
33
+ }
34
+ export interface ActorNeighbourViewBasic {
35
+ userId?: string;
36
+ did?: string;
37
+ handle?: string;
38
+ displayName?: string;
39
+ /** The URL of the actor's avatar image. */
40
+ avatar?: Uri;
41
+ /** The number of artists shared with the actor. */
42
+ sharedArtistsCount?: number;
43
+ /** The similarity score with the actor. */
44
+ similarityScore?: number;
45
+ /** The top shared artist names with the actor. */
46
+ topSharedArtistNames?: string[];
47
+ /** The top shared artist details with the actor. */
48
+ topSharedArtistsDetails?: ArtistViewBasic[];
49
+ }
50
+ export interface ActorProfileViewBasic {
51
+ /** The unique identifier of the actor. */
52
+ id?: string;
53
+ /** The DID of the actor. */
54
+ did?: string;
55
+ /** The handle of the actor. */
56
+ handle?: string;
57
+ /** The display name of the actor. */
58
+ displayName?: string;
59
+ /** The URL of the actor's avatar image. */
60
+ avatar?: Uri;
61
+ /** The date and time when the actor was created. */
62
+ createdAt?: DateTime;
63
+ /** The date and time when the actor was last updated. */
64
+ updatedAt?: DateTime;
65
+ }
66
+ export interface ActorProfileViewDetailed {
67
+ /** The unique identifier of the actor. */
68
+ id?: string;
69
+ /** The DID of the actor. */
70
+ did?: string;
71
+ /** The handle of the actor. */
72
+ handle?: string;
73
+ /** The display name of the actor. */
74
+ displayName?: string;
75
+ /** The URL of the actor's avatar image. */
76
+ avatar?: Uri;
77
+ /** The date and time when the actor was created. */
78
+ createdAt?: DateTime;
79
+ /** The date and time when the actor was last updated. */
80
+ updatedAt?: DateTime;
81
+ }
82
+ export interface ActorTrackView {
83
+ /** The name of the track. */
84
+ name: string;
85
+ /** The primary artist name. */
86
+ artist: string;
87
+ /** The album name. */
88
+ album?: string;
89
+ /** URL of the album cover image. */
90
+ albumCoverUrl?: Uri;
91
+ /** Track duration in milliseconds. */
92
+ durationMs?: number;
93
+ /** Music service source, e.g. 'spotify' or 'listenbrainz'. */
94
+ source?: string;
95
+ /** MusicBrainz recording ID, if available. */
96
+ recordingMbId?: string;
97
+ }
98
+ export interface AddDirectoryToQueueParams {
99
+ playerId?: string;
100
+ /** The directory to add to the queue */
101
+ directory: string;
102
+ /** Position in the queue to insert the directory at, defaults to the end if not specified */
103
+ position?: number;
104
+ /** Whether to shuffle the added directory in the queue */
105
+ shuffle?: boolean;
106
+ }
107
+ export interface AddItemsToQueueParams {
108
+ playerId?: string;
109
+ items: string[];
110
+ /** Position in the queue to insert the items at, defaults to the end if not specified */
111
+ position?: number;
112
+ /** Whether to shuffle the added items in the queue */
113
+ shuffle?: boolean;
114
+ }
115
+ export interface AlbumRecord {
116
+ /** The title of the album. */
117
+ title: string;
118
+ /** The artist of the album. */
119
+ artist: string;
120
+ /** The duration of the album in seconds. */
121
+ duration?: number;
122
+ /** The release date of the album. */
123
+ releaseDate?: DateTime;
124
+ /** The year the album was released. */
125
+ year?: number;
126
+ /** The genre of the album. */
127
+ genre?: string;
128
+ /** The album art of the album. */
129
+ albumArt?: BlobRef;
130
+ /** The URL of the album art of the album. */
131
+ albumArtUrl?: Uri;
132
+ /** The tags of the album. */
133
+ tags?: string[];
134
+ /** The YouTube link of the album. */
135
+ youtubeLink?: Uri;
136
+ /** The Spotify link of the album. */
137
+ spotifyLink?: Uri;
138
+ /** The tidal link of the album. */
139
+ tidalLink?: Uri;
140
+ /** The Apple Music link of the album. */
141
+ appleMusicLink?: Uri;
142
+ /** The date and time when the album was created. */
143
+ createdAt: DateTime;
144
+ }
145
+ export interface AlbumViewBasic {
146
+ /** The unique identifier of the album. */
147
+ id?: string;
148
+ /** The URI of the album. */
149
+ uri?: AtUri;
150
+ /** The title of the album. */
151
+ title?: string;
152
+ /** The artist of the album. */
153
+ artist?: string;
154
+ /** The URI of the album's artist. */
155
+ artistUri?: AtUri;
156
+ /** The year the album was released. */
157
+ year?: number;
158
+ /** The URL of the album art image. */
159
+ albumArt?: Uri;
160
+ /** The release date of the album. */
161
+ releaseDate?: string;
162
+ /** The SHA256 hash of the album. */
163
+ sha256?: string;
164
+ /** The number of times the album has been played. */
165
+ playCount?: number;
166
+ /** The number of unique listeners who have played the album. */
167
+ uniqueListeners?: number;
168
+ }
169
+ export interface AlbumViewDetailed {
170
+ /** The unique identifier of the album. */
171
+ id?: string;
172
+ /** The URI of the album. */
173
+ uri?: AtUri;
174
+ /** The title of the album. */
175
+ title?: string;
176
+ /** The artist of the album. */
177
+ artist?: string;
178
+ /** The URI of the album's artist. */
179
+ artistUri?: AtUri;
180
+ /** The year the album was released. */
181
+ year?: number;
182
+ /** The URL of the album art image. */
183
+ albumArt?: Uri;
184
+ /** The release date of the album. */
185
+ releaseDate?: string;
186
+ /** The SHA256 hash of the album. */
187
+ sha256?: string;
188
+ /** The number of times the album has been played. */
189
+ playCount?: number;
190
+ /** The number of unique listeners who have played the album. */
191
+ uniqueListeners?: number;
192
+ tags?: string[];
193
+ tracks?: SongViewBasic[];
194
+ }
195
+ export interface ApiKeyView {
196
+ /** The unique identifier of the API key. */
197
+ id?: string;
198
+ /** The name of the API key. */
199
+ name?: string;
200
+ /** A description for the API key. */
201
+ description?: string;
202
+ /** The date and time when the API key was created. */
203
+ createdAt?: DateTime;
204
+ }
205
+ export interface ArtistListenerViewBasic {
206
+ /** The unique identifier of the actor. */
207
+ id?: string;
208
+ /** The DID of the listener. */
209
+ did?: string;
210
+ /** The handle of the listener. */
211
+ handle?: string;
212
+ /** The display name of the listener. */
213
+ displayName?: string;
214
+ /** The URL of the listener's avatar image. */
215
+ avatar?: Uri;
216
+ mostListenedSong?: ArtistSongViewBasic;
217
+ /** The total number of plays by the listener. */
218
+ totalPlays?: number;
219
+ /** The rank of the listener among all listeners of the artist. */
220
+ rank?: number;
221
+ }
222
+ export interface ArtistMbid {
223
+ /** The MusicBrainz Identifier (MBID) of the artist. */
224
+ mbid?: string;
225
+ /** The name of the artist. */
226
+ name?: string;
227
+ }
228
+ export interface ArtistRecentListenerView {
229
+ /** The unique identifier of the listener. */
230
+ id?: string;
231
+ /** The DID of the listener. */
232
+ did?: string;
233
+ /** The handle of the listener. */
234
+ handle?: string;
235
+ /** The display name of the listener. */
236
+ displayName?: string;
237
+ /** The URL of the listener's avatar image. */
238
+ avatar?: Uri;
239
+ /** The timestamp of the listener's most recent scrobble of this artist. */
240
+ timestamp?: DateTime;
241
+ /** The URI of the listener's most recent scrobble of this artist. */
242
+ scrobbleUri?: AtUri;
243
+ }
244
+ export interface ArtistRecord {
245
+ /** The name of the artist. */
246
+ name: string;
247
+ /** The biography of the artist. */
248
+ bio?: string;
249
+ /** The picture of the artist. */
250
+ picture?: BlobRef;
251
+ /** The URL of the picture of the artist. */
252
+ pictureUrl?: Uri;
253
+ /** The tags of the artist. */
254
+ tags?: string[];
255
+ /** The birth date of the artist. */
256
+ born?: DateTime;
257
+ /** The death date of the artist. */
258
+ died?: DateTime;
259
+ /** The birth place of the artist. */
260
+ bornIn?: string;
261
+ /** The date when the artist was created. */
262
+ createdAt: DateTime;
263
+ }
264
+ export interface ArtistSongViewBasic {
265
+ /** The URI of the song. */
266
+ uri?: AtUri;
267
+ /** The title of the song. */
268
+ title?: string;
269
+ /** The number of times the song has been played. */
270
+ playCount?: number;
271
+ }
272
+ export interface ArtistViewBasic {
273
+ /** The unique identifier of the artist. */
274
+ id?: string;
275
+ /** The URI of the artist. */
276
+ uri?: AtUri;
277
+ /** The name of the artist. */
278
+ name?: string;
279
+ /** The picture of the artist. */
280
+ picture?: string;
281
+ /** The SHA256 hash of the artist. */
282
+ sha256?: string;
283
+ /** The number of times the artist has been played. */
284
+ playCount?: number;
285
+ /** The number of unique listeners who have played the artist. */
286
+ uniqueListeners?: number;
287
+ tags?: string[];
288
+ }
289
+ export interface ArtistViewDetailed {
290
+ /** The unique identifier of the artist. */
291
+ id?: string;
292
+ /** The URI of the artist. */
293
+ uri?: AtUri;
294
+ /** The name of the artist. */
295
+ name?: string;
296
+ /** The picture of the artist. */
297
+ picture?: string;
298
+ /** The SHA256 hash of the artist. */
299
+ sha256?: string;
300
+ /** The number of times the artist has been played. */
301
+ playCount?: number;
302
+ /** The number of unique listeners who have played the artist. */
303
+ uniqueListeners?: number;
304
+ tags?: string[];
305
+ }
306
+ export interface ChartsScrobbleViewBasic {
307
+ /** The date of the scrobble. */
308
+ date?: DateTime;
309
+ /** The number of scrobbles on this date. */
310
+ count?: number;
311
+ }
312
+ export interface ChartsView {
313
+ scrobbles?: ChartsScrobbleViewBasic[];
314
+ }
315
+ export interface CreateApikeyInput {
316
+ /** The name of the API key. */
317
+ name: string;
318
+ /** A description for the API key. */
319
+ description?: string;
320
+ }
321
+ export interface CreatePlaylistParams {
322
+ /** The name of the playlist */
323
+ name: string;
324
+ /** A brief description of the playlist */
325
+ description?: string;
326
+ }
327
+ export interface CreateScrobbleInput {
328
+ /** The title of the track being scrobbled */
329
+ title: string;
330
+ /** The artist of the track being scrobbled */
331
+ artist: string;
332
+ /** The album of the track being scrobbled */
333
+ album?: string;
334
+ /** The duration of the track in milliseconds */
335
+ duration?: number;
336
+ /** The MusicBrainz ID of the track, if available */
337
+ mbId?: string;
338
+ /** The International Standard Recording Code (ISRC) of the track, if available */
339
+ isrc?: string;
340
+ /** The URL of the album art for the track */
341
+ albumArt?: Uri;
342
+ /** The track number of the track in the album */
343
+ trackNumber?: number;
344
+ /** The release date of the track, formatted as YYYY-MM-DD */
345
+ releaseDate?: string;
346
+ /** The year the track was released */
347
+ year?: number;
348
+ /** The disc number of the track in the album, if applicable */
349
+ discNumber?: number;
350
+ /** The lyrics of the track, if available */
351
+ lyrics?: string;
352
+ /** The composer of the track, if available */
353
+ composer?: string;
354
+ /** The copyright message for the track, if available */
355
+ copyrightMessage?: string;
356
+ /** The record label of the track, if available */
357
+ label?: string;
358
+ /** The URL of the artist's picture, if available */
359
+ artistPicture?: Uri;
360
+ /** The Spotify link for the track, if available */
361
+ spotifyLink?: Uri;
362
+ /** The Last.fm link for the track, if available */
363
+ lastfmLink?: Uri;
364
+ /** The Tidal link for the track, if available */
365
+ tidalLink?: Uri;
366
+ /** The Apple Music link for the track, if available */
367
+ appleMusicLink?: Uri;
368
+ /** The Youtube link for the track, if available */
369
+ youtubeLink?: Uri;
370
+ /** The Deezer link for the track, if available */
371
+ deezerLink?: Uri;
372
+ /** The timestamp of the scrobble in seconds since epoch (Unix timestamp) */
373
+ timestamp?: number;
374
+ }
375
+ export interface CreateShoutInput {
376
+ /** The content of the shout */
377
+ message?: string;
378
+ }
379
+ export interface CreateSongInput {
380
+ /** The title of the song */
381
+ title: string;
382
+ /** The artist of the song */
383
+ artist: string;
384
+ /** The album artist of the song, if different from the main artist */
385
+ albumArtist: string;
386
+ /** The album of the song, if applicable */
387
+ album: string;
388
+ /** The duration of the song in seconds */
389
+ duration?: number;
390
+ /** The MusicBrainz ID of the song, if available */
391
+ mbId?: string;
392
+ /** The International Standard Recording Code (ISRC) of the song, if available */
393
+ isrc?: string;
394
+ /** The URL of the album art for the song */
395
+ albumArt?: Uri;
396
+ /** The track number of the song in the album, if applicable */
397
+ trackNumber?: number;
398
+ /** The release date of the song, formatted as YYYY-MM-DD */
399
+ releaseDate?: string;
400
+ /** The year the song was released */
401
+ year?: number;
402
+ /** The disc number of the song in the album, if applicable */
403
+ discNumber?: number;
404
+ /** The lyrics of the song, if available */
405
+ lyrics?: string;
406
+ }
407
+ export interface DescribeFeedGeneratorOutput {
408
+ /** The DID of the feed generator. */
409
+ did?: AtIdentifier;
410
+ /** List of feed URIs generated by this feed generator. */
411
+ feeds?: FeedUriView[];
412
+ }
413
+ export interface DescribeFeedGeneratorParams {
414
+ }
415
+ export interface DislikeShoutInput {
416
+ /** The unique identifier of the shout to dislike */
417
+ uri?: AtUri;
418
+ }
419
+ export interface DislikeSongInput {
420
+ /** The unique identifier of the song to dislike */
421
+ uri?: AtUri;
422
+ }
423
+ export interface DownloadFileParams {
424
+ /** The unique identifier of the file to download */
425
+ fileId: string;
426
+ }
427
+ export interface DropboxFileListView {
428
+ /** A list of files in the Dropbox. */
429
+ files?: DropboxFileView[];
430
+ }
431
+ export interface DropboxFileView {
432
+ /** The unique identifier of the file. */
433
+ id?: string;
434
+ /** The name of the file. */
435
+ name?: string;
436
+ /** The lowercased path of the file. */
437
+ pathLower?: string;
438
+ /** The display path of the file. */
439
+ pathDisplay?: string;
440
+ /** The last modified date and time of the file on the client. */
441
+ clientModified?: DateTime;
442
+ /** The last modified date and time of the file on the server. */
443
+ serverModified?: DateTime;
444
+ }
445
+ export interface DropboxTemporaryLinkView {
446
+ /** The temporary link to access the file. */
447
+ link?: Uri;
448
+ }
449
+ export interface FeedGeneratorsView {
450
+ feeds?: FeedGeneratorView[];
451
+ }
452
+ export interface FeedGeneratorView {
453
+ id?: string;
454
+ name?: string;
455
+ description?: string;
456
+ uri?: AtUri;
457
+ avatar?: Uri;
458
+ creator?: ActorProfileViewBasic;
459
+ }
460
+ export interface FeedItemView {
461
+ scrobble?: ScrobbleViewBasic;
462
+ }
463
+ export interface FeedRecommendationsView {
464
+ recommendations?: FeedRecommendationView[];
465
+ cursor?: string;
466
+ }
467
+ export interface FeedRecommendationView {
468
+ title?: string;
469
+ artist?: string;
470
+ album?: string;
471
+ albumArt?: Uri;
472
+ trackUri?: AtUri;
473
+ artistUri?: AtUri;
474
+ albumUri?: AtUri;
475
+ genres?: string[];
476
+ recommendationScore?: number;
477
+ /** neighbour | social | serendipity */
478
+ source?: string;
479
+ likesCount?: number;
480
+ }
481
+ export interface FeedRecommendedAlbumsView {
482
+ albums?: FeedRecommendedAlbumView[];
483
+ cursor?: string;
484
+ }
485
+ export interface FeedRecommendedAlbumView {
486
+ id?: string;
487
+ uri?: AtUri;
488
+ title?: string;
489
+ artist?: string;
490
+ artistUri?: AtUri;
491
+ year?: number;
492
+ albumArt?: Uri;
493
+ recommendationScore?: number;
494
+ /** known-artist | new-artist | serendipity */
495
+ source?: string;
496
+ }
497
+ export interface FeedRecommendedArtistsView {
498
+ artists?: FeedRecommendedArtistView[];
499
+ cursor?: string;
500
+ }
501
+ export interface FeedRecommendedArtistView {
502
+ id?: string;
503
+ uri?: AtUri;
504
+ name?: string;
505
+ picture?: Uri;
506
+ genres?: string[];
507
+ recommendationScore?: number;
508
+ /** neighbour | social | serendipity */
509
+ source?: string;
510
+ }
511
+ export interface FeedSearchResultsView {
512
+ hits?: SongViewBasic | AlbumViewBasic | ArtistViewBasic | PlaylistViewBasic | ActorProfileViewBasic[];
513
+ processingTimeMs?: number;
514
+ limit?: number;
515
+ offset?: number;
516
+ estimatedTotalHits?: number;
517
+ }
518
+ export interface FeedStoriesView {
519
+ stories?: FeedStoryView[];
520
+ }
521
+ export interface FeedStoryView {
522
+ album?: string;
523
+ albumArt?: Uri;
524
+ albumArtist?: string;
525
+ albumUri?: AtUri;
526
+ artist?: string;
527
+ artistUri?: AtUri;
528
+ avatar?: Uri;
529
+ createdAt?: string;
530
+ did?: AtIdentifier;
531
+ handle?: string;
532
+ id?: string;
533
+ title?: string;
534
+ trackId?: string;
535
+ trackUri?: AtUri;
536
+ uri?: AtUri;
537
+ }
538
+ export interface FeedUriView {
539
+ /** The feed URI. */
540
+ uri?: AtUri;
541
+ }
542
+ export interface FeedView {
543
+ feed?: FeedItemView[];
544
+ /** The pagination cursor for the next set of results. */
545
+ cursor?: string;
546
+ }
547
+ export interface FollowAccountOutput {
548
+ subject: ActorProfileViewBasic;
549
+ followers: ActorProfileViewBasic[];
550
+ /** A cursor value to pass to subsequent calls to get the next page of results. */
551
+ cursor?: string;
552
+ }
553
+ export interface FollowAccountParams {
554
+ account: AtIdentifier;
555
+ }
556
+ export interface FollowRecord {
557
+ createdAt: DateTime;
558
+ subject: Did;
559
+ via?: StrongRef;
560
+ }
561
+ export interface GeneratorRecord {
562
+ did: Did;
563
+ avatar?: BlobRef;
564
+ displayName: string;
565
+ description?: string;
566
+ createdAt: DateTime;
567
+ }
568
+ export interface GetActorAlbumsOutput {
569
+ albums?: AlbumViewBasic[];
570
+ }
571
+ export interface GetActorAlbumsParams {
572
+ /** The DID or handle of the actor */
573
+ did: AtIdentifier;
574
+ /** The maximum number of albums to return */
575
+ limit?: number;
576
+ /** The offset for pagination */
577
+ offset?: number;
578
+ /** The start date to filter albums from (ISO 8601 format) */
579
+ startDate?: DateTime;
580
+ /** The end date to filter albums to (ISO 8601 format) */
581
+ endDate?: DateTime;
582
+ }
583
+ export interface GetActorArtistsOutput {
584
+ artists?: ArtistViewBasic[];
585
+ }
586
+ export interface GetActorArtistsParams {
587
+ /** The DID or handle of the actor */
588
+ did: AtIdentifier;
589
+ /** The maximum number of albums to return */
590
+ limit?: number;
591
+ /** The offset for pagination */
592
+ offset?: number;
593
+ /** The start date to filter albums from (ISO 8601 format) */
594
+ startDate?: DateTime;
595
+ /** The end date to filter albums to (ISO 8601 format) */
596
+ endDate?: DateTime;
597
+ }
598
+ export interface GetActorCompatibilityOutput {
599
+ compatibility?: ActorCompatibilityViewBasic;
600
+ }
601
+ export interface GetActorCompatibilityParams {
602
+ /** DID or handle to get compatibility for */
603
+ did: AtIdentifier;
604
+ }
605
+ export interface GetActorLovedSongsOutput {
606
+ tracks?: SongViewBasic[];
607
+ }
608
+ export interface GetActorLovedSongsParams {
609
+ /** The DID or handle of the actor */
610
+ did: AtIdentifier;
611
+ /** The maximum number of albums to return */
612
+ limit?: number;
613
+ /** The offset for pagination */
614
+ offset?: number;
615
+ }
616
+ export interface GetActorNeighboursOutput {
617
+ neighbours?: ActorNeighbourViewBasic[];
618
+ }
619
+ export interface GetActorNeighboursParams {
620
+ /** The DID or handle of the actor */
621
+ did: AtIdentifier;
622
+ }
623
+ export interface GetActorPlaylistsOutput {
624
+ playlists?: PlaylistViewBasic[];
625
+ }
626
+ export interface GetActorPlaylistsParams {
627
+ /** The DID or handle of the actor */
628
+ did: AtIdentifier;
629
+ /** The maximum number of albums to return */
630
+ limit?: number;
631
+ /** The offset for pagination */
632
+ offset?: number;
633
+ }
634
+ export interface GetActorScrobblesOutput {
635
+ scrobbles?: ScrobbleViewBasic[];
636
+ }
637
+ export interface GetActorScrobblesParams {
638
+ /** The DID or handle of the actor */
639
+ did: AtIdentifier;
640
+ /** The maximum number of albums to return */
641
+ limit?: number;
642
+ /** The offset for pagination */
643
+ offset?: number;
644
+ }
645
+ export interface GetActorSongsOutput {
646
+ songs?: SongViewBasic[];
647
+ }
648
+ export interface GetActorSongsParams {
649
+ /** The DID or handle of the actor */
650
+ did: AtIdentifier;
651
+ /** The maximum number of albums to return */
652
+ limit?: number;
653
+ /** The offset for pagination */
654
+ offset?: number;
655
+ /** The start date to filter albums from (ISO 8601 format) */
656
+ startDate?: DateTime;
657
+ /** The end date to filter albums to (ISO 8601 format) */
658
+ endDate?: DateTime;
659
+ }
660
+ export interface GetAlbumParams {
661
+ /** The URI of the album to retrieve. */
662
+ uri: AtUri;
663
+ }
664
+ export interface GetAlbumRecommendationsParams {
665
+ /** DID or handle of the user to recommend for. */
666
+ did: string;
667
+ limit?: number;
668
+ }
669
+ export interface GetAlbumShoutsOutput {
670
+ shouts?: unknown[];
671
+ }
672
+ export interface GetAlbumShoutsParams {
673
+ /** The unique identifier of the album to retrieve shouts for */
674
+ uri: AtUri;
675
+ /** The maximum number of shouts to return */
676
+ limit?: number;
677
+ /** The number of shouts to skip before starting to collect the result set */
678
+ offset?: number;
679
+ }
680
+ export interface GetAlbumsOutput {
681
+ albums?: AlbumViewBasic[];
682
+ }
683
+ export interface GetAlbumsParams {
684
+ /** The maximum number of albums to return */
685
+ limit?: number;
686
+ /** The offset for pagination */
687
+ offset?: number;
688
+ /** The genre to filter artists by */
689
+ genre?: string;
690
+ }
691
+ export interface GetAlbumTracksOutput {
692
+ tracks?: SongViewBasic[];
693
+ }
694
+ export interface GetAlbumTracksParams {
695
+ /** The URI of the album to retrieve tracks from */
696
+ uri: AtUri;
697
+ }
698
+ export interface GetApikeysOutput {
699
+ apiKeys?: unknown[];
700
+ }
701
+ export interface GetApikeysParams {
702
+ /** The number of API keys to skip before starting to collect the result set. */
703
+ offset?: number;
704
+ /** The number of API keys to return per page. */
705
+ limit?: number;
706
+ }
707
+ export interface GetArtistAlbumsOutput {
708
+ albums?: AlbumViewBasic[];
709
+ }
710
+ export interface GetArtistAlbumsParams {
711
+ /** The URI of the artist to retrieve albums from */
712
+ uri: AtUri;
713
+ }
714
+ export interface GetArtistListenersOutput {
715
+ listeners?: ArtistListenerViewBasic[];
716
+ }
717
+ export interface GetArtistListenersParams {
718
+ /** The URI of the artist to retrieve listeners from */
719
+ uri: AtUri;
720
+ /** Number of items to skip before returning results */
721
+ offset?: number;
722
+ /** Maximum number of results to return */
723
+ limit?: number;
724
+ }
725
+ export interface GetArtistParams {
726
+ /** The URI of the artist to retrieve details from */
727
+ uri: AtUri;
728
+ }
729
+ export interface GetArtistRecentListenersOutput {
730
+ listeners?: ArtistRecentListenerView[];
731
+ }
732
+ export interface GetArtistRecentListenersParams {
733
+ /** The URI of the artist to retrieve recent listeners from */
734
+ uri: AtUri;
735
+ /** Number of items to skip before returning results */
736
+ offset?: number;
737
+ /** Maximum number of results to return */
738
+ limit?: number;
739
+ }
740
+ export interface GetArtistRecommendationsParams {
741
+ /** DID or handle of the user to recommend for. */
742
+ did: string;
743
+ limit?: number;
744
+ }
745
+ export interface GetArtistShoutsOutput {
746
+ shouts?: unknown[];
747
+ }
748
+ export interface GetArtistShoutsParams {
749
+ /** The URI of the artist to retrieve shouts for */
750
+ uri: AtUri;
751
+ /** The maximum number of shouts to return */
752
+ limit?: number;
753
+ /** The number of shouts to skip before starting to collect the result set */
754
+ offset?: number;
755
+ }
756
+ export interface GetArtistsOutput {
757
+ artists?: ArtistViewBasic[];
758
+ }
759
+ export interface GetArtistsParams {
760
+ /** The maximum number of artists to return */
761
+ limit?: number;
762
+ /** The offset for pagination */
763
+ offset?: number;
764
+ /** The names of the artists to return */
765
+ names?: string;
766
+ /** The genre to filter artists by */
767
+ genre?: string;
768
+ }
769
+ export interface GetArtistTracksOutput {
770
+ tracks?: SongViewBasic[];
771
+ }
772
+ export interface GetArtistTracksParams {
773
+ /** The URI of the artist to retrieve albums from */
774
+ uri?: AtUri;
775
+ /** The maximum number of tracks to return */
776
+ limit?: number;
777
+ /** The offset for pagination */
778
+ offset?: number;
779
+ }
780
+ export interface GetCurrentlyPlayingParams {
781
+ playerId?: string;
782
+ /** Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user. */
783
+ actor?: AtIdentifier;
784
+ }
785
+ export interface GetFeedGeneratorOutput {
786
+ view?: FeedGeneratorView;
787
+ }
788
+ export interface GetFeedGeneratorParams {
789
+ /** AT-URI of the feed generator record. */
790
+ feed: AtUri;
791
+ }
792
+ export interface GetFeedGeneratorsParams {
793
+ /** The maximum number of feed generators to return. */
794
+ size?: number;
795
+ }
796
+ export interface GetFeedParams {
797
+ /** The feed URI. */
798
+ feed: AtUri;
799
+ /** The maximum number of scrobbles to return */
800
+ limit?: number;
801
+ /** The cursor for pagination */
802
+ cursor?: string;
803
+ }
804
+ export interface GetFeedSkeletonOutput {
805
+ scrobbles?: ScrobbleViewBasic[];
806
+ /** The pagination cursor for the next set of results. */
807
+ cursor?: string;
808
+ }
809
+ export interface GetFeedSkeletonParams {
810
+ /** The feed URI. */
811
+ feed: AtUri;
812
+ /** The maximum number of scrobbles to return */
813
+ limit?: number;
814
+ /** The offset for pagination */
815
+ offset?: number;
816
+ /** The pagination cursor. */
817
+ cursor?: string;
818
+ }
819
+ export interface GetFileParams {
820
+ /** The unique identifier of the file to retrieve */
821
+ fileId: string;
822
+ }
823
+ export interface GetFilesParams {
824
+ /** Path to the Dropbox folder or root directory */
825
+ at?: string;
826
+ }
827
+ export interface GetFollowersOutput {
828
+ subject: ActorProfileViewBasic;
829
+ followers: ActorProfileViewBasic[];
830
+ /** A cursor value to pass to subsequent calls to get the next page of results. */
831
+ cursor?: string;
832
+ /** The total number of followers. */
833
+ count?: number;
834
+ }
835
+ export interface GetFollowersParams {
836
+ actor: AtIdentifier;
837
+ limit?: number;
838
+ /** If provided, filters the followers to only include those with DIDs in this list. */
839
+ dids?: Did[];
840
+ cursor?: string;
841
+ }
842
+ export interface GetFollowsOutput {
843
+ subject: ActorProfileViewBasic;
844
+ follows: ActorProfileViewBasic[];
845
+ /** A cursor value to pass to subsequent calls to get the next page of results. */
846
+ cursor?: string;
847
+ /** The total number of follows. */
848
+ count?: number;
849
+ }
850
+ export interface GetFollowsParams {
851
+ actor: AtIdentifier;
852
+ limit?: number;
853
+ /** If provided, filters the follows to only include those with DIDs in this list. */
854
+ dids?: Did[];
855
+ cursor?: string;
856
+ }
857
+ export interface GetKnownFollowersOutput {
858
+ subject: ActorProfileViewBasic;
859
+ followers: ActorProfileViewBasic[];
860
+ /** A cursor value to pass to subsequent calls to get the next page of results. */
861
+ cursor?: string;
862
+ }
863
+ export interface GetKnownFollowersParams {
864
+ actor: AtIdentifier;
865
+ limit?: number;
866
+ cursor?: string;
867
+ }
868
+ export interface GetMetadataParams {
869
+ /** Path to the file or folder in Dropbox */
870
+ path: string;
871
+ }
872
+ export interface GetMirrorSourcesOutput {
873
+ sources: MirrorSourceView[];
874
+ }
875
+ export interface GetMirrorSourcesParams {
876
+ }
877
+ export interface GetPlaybackQueueParams {
878
+ playerId?: string;
879
+ }
880
+ export interface GetPlaylistParams {
881
+ /** The URI of the playlist to retrieve. */
882
+ uri: AtUri;
883
+ }
884
+ export interface GetPlaylistsOutput {
885
+ playlists?: PlaylistViewBasic[];
886
+ }
887
+ export interface GetPlaylistsParams {
888
+ /** The maximum number of playlists to return. */
889
+ limit?: number;
890
+ /** The offset for pagination, used to skip a number of playlists. */
891
+ offset?: number;
892
+ }
893
+ export interface GetProfileParams {
894
+ /** The DID or handle of the actor */
895
+ did?: AtIdentifier;
896
+ }
897
+ export interface GetProfileShoutsOutput {
898
+ shouts?: unknown[];
899
+ }
900
+ export interface GetProfileShoutsParams {
901
+ /** The DID or handle of the actor */
902
+ did: AtIdentifier;
903
+ /** The offset for pagination */
904
+ offset?: number;
905
+ /** The maximum number of shouts to return */
906
+ limit?: number;
907
+ }
908
+ export interface GetRecommendationsParams {
909
+ /** DID or handle of the user to recommend for. */
910
+ did: string;
911
+ limit?: number;
912
+ }
913
+ export interface GetScrobbleParams {
914
+ /** The unique identifier of the scrobble */
915
+ uri: AtUri;
916
+ }
917
+ export interface GetScrobblesChartParams {
918
+ /** The DID or handle of the actor */
919
+ did?: AtIdentifier;
920
+ /** The URI of the artist to filter by */
921
+ artisturi?: AtUri;
922
+ /** The URI of the album to filter by */
923
+ albumuri?: AtUri;
924
+ /** The URI of the track to filter by */
925
+ songuri?: AtUri;
926
+ /** The genre to filter by */
927
+ genre?: string;
928
+ /** Start date (ISO 8601). Defaults to 6 months ago. */
929
+ from?: string;
930
+ /** End date (ISO 8601). Defaults to today. */
931
+ to?: string;
932
+ }
933
+ export interface GetScrobblesOutput {
934
+ scrobbles?: ScrobbleViewBasic[];
935
+ }
936
+ export interface GetScrobblesParams {
937
+ /** The DID or handle of the actor */
938
+ did?: AtIdentifier;
939
+ /** If true, only return scrobbles from actors the viewer is following. */
940
+ following?: boolean;
941
+ /** The maximum number of scrobbles to return */
942
+ limit?: number;
943
+ /** The offset for pagination */
944
+ offset?: number;
945
+ }
946
+ export interface GetShoutRepliesOutput {
947
+ shouts?: unknown[];
948
+ }
949
+ export interface GetShoutRepliesParams {
950
+ /** The URI of the shout to retrieve replies for */
951
+ uri: AtUri;
952
+ /** The maximum number of shouts to return */
953
+ limit?: number;
954
+ /** The number of shouts to skip before starting to collect the result set */
955
+ offset?: number;
956
+ }
957
+ export interface GetSongParams {
958
+ /** The AT-URI of the song to retrieve */
959
+ uri?: AtUri;
960
+ /** The MusicBrainz ID of the song to retrieve */
961
+ mbid?: string;
962
+ /** The International Standard Recording Code (ISRC) of the song to retrieve */
963
+ isrc?: string;
964
+ /** The Spotify track ID of the song to retrieve (resolved internally to the Spotify track URL) */
965
+ spotifyId?: string;
966
+ }
967
+ export interface GetSongRecentListenersOutput {
968
+ listeners?: SongRecentListenerView[];
969
+ }
970
+ export interface GetSongRecentListenersParams {
971
+ /** The URI of the song to retrieve recent listeners from */
972
+ uri: AtUri;
973
+ /** Number of items to skip before returning results */
974
+ offset?: number;
975
+ /** Maximum number of results to return */
976
+ limit?: number;
977
+ }
978
+ export interface GetSongsOutput {
979
+ songs?: SongViewBasic[];
980
+ }
981
+ export interface GetSongsParams {
982
+ /** The maximum number of songs to return */
983
+ limit?: number;
984
+ /** The offset for pagination */
985
+ offset?: number;
986
+ /** The genre to filter artists by */
987
+ genre?: string;
988
+ /** Filter songs by MusicBrainz ID */
989
+ mbid?: string;
990
+ /** Filter songs by International Standard Recording Code (ISRC) */
991
+ isrc?: string;
992
+ /** Filter songs by Spotify track ID (resolved internally to the Spotify track URL) */
993
+ spotifyId?: string;
994
+ }
995
+ export interface GetStatsParams {
996
+ /** The DID or handle of the user to get stats for. */
997
+ did: AtIdentifier;
998
+ }
999
+ export interface GetStoriesParams {
1000
+ /** The maximum number of stories to return. */
1001
+ size?: number;
1002
+ }
1003
+ export interface GetTemporaryLinkParams {
1004
+ /** Path to the file in Dropbox */
1005
+ path: string;
1006
+ }
1007
+ export interface GetTopArtistsOutput {
1008
+ artists?: ArtistViewBasic[];
1009
+ }
1010
+ export interface GetTopArtistsParams {
1011
+ /** The maximum number of artists to return */
1012
+ limit?: number;
1013
+ /** The offset for pagination */
1014
+ offset?: number;
1015
+ /** The start date to filter artists from (ISO 8601 format) */
1016
+ startDate?: DateTime;
1017
+ /** The end date to filter artists to (ISO 8601 format) */
1018
+ endDate?: DateTime;
1019
+ }
1020
+ export interface GetTopTracksOutput {
1021
+ tracks?: SongViewBasic[];
1022
+ }
1023
+ export interface GetTopTracksParams {
1024
+ /** The maximum number of tracks to return */
1025
+ limit?: number;
1026
+ /** The offset for pagination */
1027
+ offset?: number;
1028
+ /** The start date to filter tracks from (ISO 8601 format) */
1029
+ startDate?: DateTime;
1030
+ /** The end date to filter tracks to (ISO 8601 format) */
1031
+ endDate?: DateTime;
1032
+ }
1033
+ export interface GetTrackShoutsOutput {
1034
+ shouts?: unknown[];
1035
+ }
1036
+ export interface GetTrackShoutsParams {
1037
+ /** The URI of the track to retrieve shouts for */
1038
+ uri: AtUri;
1039
+ }
1040
+ export interface GetWrappedParams {
1041
+ /** The DID or handle of the user */
1042
+ did: AtIdentifier;
1043
+ /** The year to get wrapped stats for (defaults to current year) */
1044
+ year?: number;
1045
+ }
1046
+ export interface GoogledriveFileListView {
1047
+ files?: GoogledriveFileView[];
1048
+ }
1049
+ export interface GoogledriveFileView {
1050
+ /** The unique identifier of the file. */
1051
+ id?: string;
1052
+ }
1053
+ /** indicates that a handle or DID could not be resolved */
1054
+ export interface GraphNotFoundActor {
1055
+ actor: AtIdentifier;
1056
+ notFound: boolean;
1057
+ }
1058
+ export interface GraphRelationship {
1059
+ did: Did;
1060
+ /** if the actor follows this DID, this is the AT-URI of the follow record */
1061
+ following?: AtUri;
1062
+ /** if the actor is followed by this DID, contains the AT-URI of the follow record */
1063
+ followedBy?: AtUri;
1064
+ }
1065
+ export interface InsertDirectoryParams {
1066
+ /** The URI of the playlist to start */
1067
+ uri: AtUri;
1068
+ /** The directory (id) to insert into the playlist */
1069
+ directory: string;
1070
+ /** The position in the playlist to insert the directory at, if not specified, the directory will be appended */
1071
+ position?: number;
1072
+ }
1073
+ export interface InsertFilesParams {
1074
+ /** The URI of the playlist to start */
1075
+ uri: AtUri;
1076
+ files: string[];
1077
+ /** The position in the playlist to insert the files at, if not specified, files will be appended */
1078
+ position?: number;
1079
+ }
1080
+ export interface LikeRecord {
1081
+ /** The date when the like was created. */
1082
+ createdAt: DateTime;
1083
+ subject: StrongRef;
1084
+ }
1085
+ export interface LikeShoutInput {
1086
+ /** The unique identifier of the shout to like */
1087
+ uri?: AtUri;
1088
+ }
1089
+ export interface LikeSongInput {
1090
+ /** The unique identifier of the song to like */
1091
+ uri?: AtUri;
1092
+ }
1093
+ export interface MatchSongParams {
1094
+ /** The title of the song to retrieve */
1095
+ title: string;
1096
+ /** The artist of the song to retrieve */
1097
+ artist: string;
1098
+ /** Optional MusicBrainz recording ID to anchor the match */
1099
+ mbId?: string;
1100
+ /** Optional International Standard Recording Code (ISRC) to anchor the match */
1101
+ isrc?: string;
1102
+ }
1103
+ export interface MirrorSourceView {
1104
+ /** One of: lastfm, listenbrainz, tealfm */
1105
+ provider: string;
1106
+ /** Whether scrobbles from this source are being mirrored into Rocksky. */
1107
+ enabled: boolean;
1108
+ /** Username on the external service (Last.fm / ListenBrainz). Null for Teal.fm. */
1109
+ externalUsername?: string;
1110
+ /** True when an API key is stored. Last.fm/ListenBrainz only; always false for Teal.fm. */
1111
+ hasCredentials: boolean;
1112
+ /** The last time the mirror process successfully polled this source. */
1113
+ lastPolledAt?: DateTime;
1114
+ /** Watermark — scrobbles from the external service older than this are skipped. */
1115
+ lastScrobbleSeenAt?: DateTime;
1116
+ }
1117
+ export interface NextParams {
1118
+ playerId?: string;
1119
+ }
1120
+ export interface PauseParams {
1121
+ playerId?: string;
1122
+ }
1123
+ export interface PlayDirectoryParams {
1124
+ playerId?: string;
1125
+ directoryId: string;
1126
+ shuffle?: boolean;
1127
+ recurse?: boolean;
1128
+ position?: number;
1129
+ }
1130
+ export interface PlayerCurrentlyPlayingViewDetailed {
1131
+ /** The title of the currently playing track */
1132
+ title?: string;
1133
+ }
1134
+ export interface PlayerPlaybackQueueViewDetailed {
1135
+ tracks?: SongViewBasic[];
1136
+ }
1137
+ export interface PlayFileParams {
1138
+ playerId?: string;
1139
+ fileId: string;
1140
+ }
1141
+ export interface PlaylistItemRecord {
1142
+ subject: StrongRef;
1143
+ /** The date the playlist was created. */
1144
+ createdAt: DateTime;
1145
+ track: SongViewBasic;
1146
+ /** The order of the item in the playlist. */
1147
+ order: number;
1148
+ }
1149
+ export interface PlaylistRecord {
1150
+ /** The name of the playlist. */
1151
+ name: string;
1152
+ /** The playlist description. */
1153
+ description?: string;
1154
+ /** The picture of the playlist. */
1155
+ picture?: BlobRef;
1156
+ /** The URL of the picture of the artist. */
1157
+ pictureUrl?: Uri;
1158
+ /** The date the playlist was created. */
1159
+ createdAt: DateTime;
1160
+ /** The Spotify link of the playlist. */
1161
+ spotifyLink?: string;
1162
+ /** The Tidal link of the playlist. */
1163
+ tidalLink?: string;
1164
+ /** The YouTube link of the playlist. */
1165
+ youtubeLink?: string;
1166
+ /** The Apple Music link of the playlist. */
1167
+ appleMusicLink?: string;
1168
+ }
1169
+ /** Basic view of a playlist, including its metadata */
1170
+ export interface PlaylistViewBasic {
1171
+ /** The unique identifier of the playlist. */
1172
+ id?: string;
1173
+ /** The title of the playlist. */
1174
+ title?: string;
1175
+ /** The URI of the playlist. */
1176
+ uri?: AtUri;
1177
+ /** The DID of the curator of the playlist. */
1178
+ curatorDid?: AtIdentifier;
1179
+ /** The handle of the curator of the playlist. */
1180
+ curatorHandle?: AtIdentifier;
1181
+ /** The name of the curator of the playlist. */
1182
+ curatorName?: string;
1183
+ /** The URL of the avatar image of the curator. */
1184
+ curatorAvatarUrl?: Uri;
1185
+ /** A description of the playlist. */
1186
+ description?: string;
1187
+ /** The URL of the cover image for the playlist. */
1188
+ coverImageUrl?: Uri;
1189
+ /** The date and time when the playlist was created. */
1190
+ createdAt?: DateTime;
1191
+ /** The number of tracks in the playlist. */
1192
+ trackCount?: number;
1193
+ }
1194
+ /** Detailed view of a playlist, including its tracks and metadata */
1195
+ export interface PlaylistViewDetailed {
1196
+ /** The unique identifier of the playlist. */
1197
+ id?: string;
1198
+ /** The title of the playlist. */
1199
+ title?: string;
1200
+ /** The URI of the playlist. */
1201
+ uri?: AtUri;
1202
+ /** The DID of the curator of the playlist. */
1203
+ curatorDid?: AtIdentifier;
1204
+ /** The handle of the curator of the playlist. */
1205
+ curatorHandle?: AtIdentifier;
1206
+ /** The name of the curator of the playlist. */
1207
+ curatorName?: string;
1208
+ /** The URL of the avatar image of the curator. */
1209
+ curatorAvatarUrl?: Uri;
1210
+ /** A description of the playlist. */
1211
+ description?: string;
1212
+ /** The URL of the cover image for the playlist. */
1213
+ coverImageUrl?: Uri;
1214
+ /** The date and time when the playlist was created. */
1215
+ createdAt?: DateTime;
1216
+ /** A list of tracks in the playlist. */
1217
+ tracks?: SongViewBasic[];
1218
+ }
1219
+ export interface PlayParams {
1220
+ playerId?: string;
1221
+ }
1222
+ export interface PreviousParams {
1223
+ playerId?: string;
1224
+ }
1225
+ export interface ProfileRecord {
1226
+ displayName?: string;
1227
+ /** Free-form profile description text. */
1228
+ description?: string;
1229
+ /** Small image to be displayed next to posts from account. AKA, 'profile picture' */
1230
+ avatar?: BlobRef;
1231
+ /** Larger horizontal image to display behind profile view. */
1232
+ banner?: BlobRef;
1233
+ /** Self-label values, specific to the Bluesky application, on the overall account. */
1234
+ labels?: unknown;
1235
+ joinedViaStarterPack?: StrongRef;
1236
+ createdAt?: DateTime;
1237
+ }
1238
+ export interface PutMirrorSourceInput {
1239
+ /** One of: lastfm, listenbrainz, tealfm */
1240
+ provider: string;
1241
+ /** Enable or disable mirroring for this provider. */
1242
+ enabled?: boolean;
1243
+ /** External username (Last.fm / ListenBrainz). Required when enabling those providers. Ignored for Teal.fm. */
1244
+ externalUsername?: string;
1245
+ /** API key / token to be encrypted at rest. Omit to leave the existing key unchanged. Pass an empty string to clear it. */
1246
+ apiKey?: string;
1247
+ }
1248
+ export interface RadioRecord {
1249
+ /** The name of the radio station. */
1250
+ name: string;
1251
+ /** The URL of the radio station. */
1252
+ url: Uri;
1253
+ /** A description of the radio station. */
1254
+ description?: string;
1255
+ /** The genre of the radio station. */
1256
+ genre?: string;
1257
+ /** The logo of the radio station. */
1258
+ logo?: BlobRef;
1259
+ /** The website of the radio station. */
1260
+ website?: Uri;
1261
+ /** The date when the radio station was created. */
1262
+ createdAt: DateTime;
1263
+ }
1264
+ export interface RadioViewBasic {
1265
+ /** The unique identifier of the radio. */
1266
+ id?: string;
1267
+ /** The name of the radio. */
1268
+ name?: string;
1269
+ /** A brief description of the radio. */
1270
+ description?: string;
1271
+ /** The date and time when the radio was created. */
1272
+ createdAt?: DateTime;
1273
+ }
1274
+ export interface RadioViewDetailed {
1275
+ /** The unique identifier of the radio. */
1276
+ id?: string;
1277
+ /** The name of the radio. */
1278
+ name?: string;
1279
+ /** A brief description of the radio. */
1280
+ description?: string;
1281
+ /** The website of the radio. */
1282
+ website?: Uri;
1283
+ /** The streaming URL of the radio. */
1284
+ url?: Uri;
1285
+ /** The genre of the radio. */
1286
+ genre?: string;
1287
+ /** The logo of the radio station. */
1288
+ logo?: string;
1289
+ /** The date and time when the radio was created. */
1290
+ createdAt?: DateTime;
1291
+ }
1292
+ export interface RemoveApikeyParams {
1293
+ /** The ID of the API key to remove. */
1294
+ id: string;
1295
+ }
1296
+ export interface RemovePlaylistParams {
1297
+ /** The URI of the playlist to remove */
1298
+ uri: AtUri;
1299
+ }
1300
+ export interface RemoveShoutParams {
1301
+ /** The ID of the shout to be removed */
1302
+ id: string;
1303
+ }
1304
+ export interface RemoveTrackParams {
1305
+ /** The URI of the playlist to remove the track from */
1306
+ uri: AtUri;
1307
+ /** The position of the track to remove in the playlist */
1308
+ position: number;
1309
+ }
1310
+ export interface ReplyShoutInput {
1311
+ /** The unique identifier of the shout to reply to */
1312
+ shoutId: string;
1313
+ /** The content of the reply */
1314
+ message: string;
1315
+ }
1316
+ export interface ReportShoutInput {
1317
+ /** The unique identifier of the shout to report */
1318
+ shoutId: string;
1319
+ /** The reason for reporting the shout */
1320
+ reason?: string;
1321
+ }
1322
+ export interface ScrobbleFirstScrobbleView {
1323
+ /** The handle of the user who first scrobbled this song. */
1324
+ handle?: string;
1325
+ /** The avatar URL of the user who first scrobbled this song. */
1326
+ avatar?: Uri;
1327
+ /** The timestamp of the first scrobble. */
1328
+ timestamp?: DateTime;
1329
+ }
1330
+ export interface ScrobbleRecord {
1331
+ /** The title of the song. */
1332
+ title: string;
1333
+ /** The artist of the song. */
1334
+ artist: string;
1335
+ /** The artists of the song with MusicBrainz IDs. */
1336
+ artists?: ArtistMbid[];
1337
+ /** The album artist of the song. */
1338
+ albumArtist: string;
1339
+ /** The album of the song. */
1340
+ album: string;
1341
+ /** The duration of the song in milliseconds. */
1342
+ duration: number;
1343
+ /** The track number of the song in the album. */
1344
+ trackNumber?: number;
1345
+ /** The disc number of the song in the album. */
1346
+ discNumber?: number;
1347
+ /** The release date of the song. */
1348
+ releaseDate?: DateTime;
1349
+ /** The year the song was released. */
1350
+ year?: number;
1351
+ /** The genre of the song. */
1352
+ genre?: string;
1353
+ /** The tags of the song. */
1354
+ tags?: string[];
1355
+ /** The composer of the song. */
1356
+ composer?: string;
1357
+ /** The lyrics of the song. */
1358
+ lyrics?: string;
1359
+ /** The copyright message of the song. */
1360
+ copyrightMessage?: string;
1361
+ /** Informations about the song */
1362
+ wiki?: string;
1363
+ /** The album art of the song. */
1364
+ albumArt?: BlobRef;
1365
+ /** The URL of the album art of the song. */
1366
+ albumArtUrl?: Uri;
1367
+ /** The YouTube link of the song. */
1368
+ youtubeLink?: Uri;
1369
+ /** The Spotify link of the song. */
1370
+ spotifyLink?: Uri;
1371
+ /** The Tidal link of the song. */
1372
+ tidalLink?: Uri;
1373
+ /** The Apple Music link of the song. */
1374
+ appleMusicLink?: Uri;
1375
+ /** The date when the song was created. */
1376
+ createdAt: DateTime;
1377
+ /** The MusicBrainz ID of the song. */
1378
+ mbid?: string;
1379
+ /** The label of the song. */
1380
+ label?: string;
1381
+ /** The International Standard Recording Code (ISRC) of the song. */
1382
+ isrc?: string;
1383
+ }
1384
+ export interface ScrobbleViewBasic {
1385
+ /** The unique identifier of the scrobble. */
1386
+ id?: string;
1387
+ /** The handle of the user who created the scrobble. */
1388
+ user?: string;
1389
+ /** The display name of the user who created the scrobble. */
1390
+ userDisplayName?: string;
1391
+ /** The avatar URL of the user who created the scrobble. */
1392
+ userAvatar?: Uri;
1393
+ /** The title of the scrobble. */
1394
+ title?: string;
1395
+ /** The artist of the song. */
1396
+ artist?: string;
1397
+ /** The URI of the artist. */
1398
+ artistUri?: AtUri;
1399
+ /** The album of the song. */
1400
+ album?: string;
1401
+ /** The URI of the album. */
1402
+ albumUri?: AtUri;
1403
+ /** The album art URL of the song. */
1404
+ cover?: Uri;
1405
+ /** The timestamp when the scrobble was created. */
1406
+ date?: DateTime;
1407
+ /** The URI of the scrobble. */
1408
+ uri?: Uri;
1409
+ /** The SHA256 hash of the scrobble data. */
1410
+ sha256?: string;
1411
+ liked?: boolean;
1412
+ likesCount?: number;
1413
+ }
1414
+ export interface ScrobbleViewDetailed {
1415
+ /** The unique identifier of the scrobble. */
1416
+ id?: string;
1417
+ /** The handle of the user who created the scrobble. */
1418
+ user?: string;
1419
+ /** The title of the scrobble. */
1420
+ title?: string;
1421
+ /** The artist of the song. */
1422
+ artist?: string;
1423
+ /** The URI of the artist. */
1424
+ artistUri?: AtUri;
1425
+ /** The album of the song. */
1426
+ album?: string;
1427
+ /** The URI of the album. */
1428
+ albumUri?: AtUri;
1429
+ /** The album art URL of the song. */
1430
+ cover?: Uri;
1431
+ /** The timestamp when the scrobble was created. */
1432
+ date?: DateTime;
1433
+ /** The URI of the scrobble. */
1434
+ uri?: Uri;
1435
+ /** The SHA256 hash of the scrobble data. */
1436
+ sha256?: string;
1437
+ liked?: boolean;
1438
+ likesCount?: number;
1439
+ /** The number of listeners */
1440
+ listeners?: number;
1441
+ /** The number of scrobbles for this song */
1442
+ scrobbles?: number;
1443
+ artists?: ArtistViewBasic[];
1444
+ /** The first scrobble of this song on Rocksky. */
1445
+ firstScrobble?: ScrobbleFirstScrobbleView;
1446
+ }
1447
+ export interface SearchParams {
1448
+ /** The search query string */
1449
+ query: string;
1450
+ }
1451
+ export interface SeekParams {
1452
+ playerId?: string;
1453
+ /** The position in seconds to seek to */
1454
+ position: number;
1455
+ }
1456
+ export interface ShoutAuthor {
1457
+ /** The unique identifier of the author. */
1458
+ id?: string;
1459
+ /** The decentralized identifier (DID) of the author. */
1460
+ did?: AtIdentifier;
1461
+ /** The handle of the author. */
1462
+ handle?: AtIdentifier;
1463
+ /** The display name of the author. */
1464
+ displayName?: string;
1465
+ /** The URL of the author's avatar image. */
1466
+ avatar?: Uri;
1467
+ }
1468
+ export interface ShoutRecord {
1469
+ /** The message of the shout. */
1470
+ message: string;
1471
+ /** The date when the shout was created. */
1472
+ createdAt: DateTime;
1473
+ parent?: StrongRef;
1474
+ subject: StrongRef;
1475
+ }
1476
+ export interface ShoutView {
1477
+ /** The unique identifier of the shout. */
1478
+ id?: string;
1479
+ /** The content of the shout. */
1480
+ message?: string;
1481
+ /** The ID of the parent shout if this is a reply, otherwise null. */
1482
+ parent?: string;
1483
+ /** The date and time when the shout was created. */
1484
+ createdAt?: DateTime;
1485
+ /** The author of the shout. */
1486
+ author?: ShoutAuthor;
1487
+ }
1488
+ export interface SongFirstScrobbleView {
1489
+ /** The handle of the user who first scrobbled this song. */
1490
+ handle?: string;
1491
+ /** The avatar URL of the user who first scrobbled this song. */
1492
+ avatar?: Uri;
1493
+ /** The timestamp of the first scrobble. */
1494
+ timestamp?: DateTime;
1495
+ }
1496
+ export interface SongRecentListenerView {
1497
+ /** The unique identifier of the listener. */
1498
+ id?: string;
1499
+ /** The DID of the listener. */
1500
+ did?: string;
1501
+ /** The handle of the listener. */
1502
+ handle?: string;
1503
+ /** The display name of the listener. */
1504
+ displayName?: string;
1505
+ /** The URL of the listener's avatar image. */
1506
+ avatar?: Uri;
1507
+ /** The timestamp of the listener's most recent scrobble of this song. */
1508
+ timestamp?: DateTime;
1509
+ /** The URI of the listener's most recent scrobble of this song. */
1510
+ scrobbleUri?: AtUri;
1511
+ }
1512
+ export interface SongRecord {
1513
+ /** The title of the song. */
1514
+ title: string;
1515
+ /** The artist of the song. */
1516
+ artist: string;
1517
+ /** The artists of the song with MusicBrainz IDs. */
1518
+ artists?: ArtistMbid[];
1519
+ /** The album artist of the song. */
1520
+ albumArtist: string;
1521
+ /** The album of the song. */
1522
+ album: string;
1523
+ /** The duration of the song in milliseconds. */
1524
+ duration: number;
1525
+ /** The track number of the song in the album. */
1526
+ trackNumber?: number;
1527
+ /** The disc number of the song in the album. */
1528
+ discNumber?: number;
1529
+ /** The release date of the song. */
1530
+ releaseDate?: DateTime;
1531
+ /** The year the song was released. */
1532
+ year?: number;
1533
+ /** The genre of the song. */
1534
+ genre?: string;
1535
+ /** The tags of the song. */
1536
+ tags?: string[];
1537
+ /** The composer of the song. */
1538
+ composer?: string;
1539
+ /** The lyrics of the song. */
1540
+ lyrics?: string;
1541
+ /** The copyright message of the song. */
1542
+ copyrightMessage?: string;
1543
+ /** Informations about the song */
1544
+ wiki?: string;
1545
+ /** The album art of the song. */
1546
+ albumArt?: BlobRef;
1547
+ /** The URL of the album art of the song. */
1548
+ albumArtUrl?: Uri;
1549
+ /** The YouTube link of the song. */
1550
+ youtubeLink?: Uri;
1551
+ /** The Spotify link of the song. */
1552
+ spotifyLink?: Uri;
1553
+ /** The Tidal link of the song. */
1554
+ tidalLink?: Uri;
1555
+ /** The Apple Music link of the song. */
1556
+ appleMusicLink?: Uri;
1557
+ /** The date when the song was created. */
1558
+ createdAt: DateTime;
1559
+ /** The MusicBrainz ID of the song. */
1560
+ mbid?: string;
1561
+ /** The label of the song. */
1562
+ label?: string;
1563
+ /** The International Standard Recording Code (ISRC) of the song. */
1564
+ isrc?: string;
1565
+ }
1566
+ export interface SongViewBasic {
1567
+ /** The unique identifier of the song. */
1568
+ id?: string;
1569
+ /** The title of the song. */
1570
+ title?: string;
1571
+ /** The artist of the song. */
1572
+ artist?: string;
1573
+ /** The artist of the album the song belongs to. */
1574
+ albumArtist?: string;
1575
+ /** The URL of the album art image. */
1576
+ albumArt?: Uri;
1577
+ /** The URI of the song. */
1578
+ uri?: AtUri;
1579
+ /** The album of the song. */
1580
+ album?: string;
1581
+ /** The duration of the song in milliseconds. */
1582
+ duration?: number;
1583
+ /** The track number of the song in the album. */
1584
+ trackNumber?: number;
1585
+ /** The disc number of the song in the album. */
1586
+ discNumber?: number;
1587
+ /** The number of times the song has been played. */
1588
+ playCount?: number;
1589
+ /** The number of unique listeners who have played the song. */
1590
+ uniqueListeners?: number;
1591
+ /** The URI of the album the song belongs to. */
1592
+ albumUri?: AtUri;
1593
+ /** The URI of the artist of the song. */
1594
+ artistUri?: AtUri;
1595
+ /** The SHA256 hash of the song. */
1596
+ sha256?: string;
1597
+ /** The MusicBrainz ID of the song. */
1598
+ mbid?: string;
1599
+ /** The International Standard Recording Code (ISRC) of the song. */
1600
+ isrc?: string;
1601
+ tags?: string[];
1602
+ /** The timestamp when the song was created. */
1603
+ createdAt?: DateTime;
1604
+ }
1605
+ export interface SongViewDetailed {
1606
+ /** The unique identifier of the song. */
1607
+ id?: string;
1608
+ /** The title of the song. */
1609
+ title?: string;
1610
+ /** The artist of the song. */
1611
+ artist?: string;
1612
+ /** The artist of the album the song belongs to. */
1613
+ albumArtist?: string;
1614
+ /** The URL of the album art image. */
1615
+ albumArt?: Uri;
1616
+ /** The URI of the song. */
1617
+ uri?: AtUri;
1618
+ /** The album of the song. */
1619
+ album?: string;
1620
+ /** The duration of the song in milliseconds. */
1621
+ duration?: number;
1622
+ /** The track number of the song in the album. */
1623
+ trackNumber?: number;
1624
+ /** The disc number of the song in the album. */
1625
+ discNumber?: number;
1626
+ /** The number of times the song has been played. */
1627
+ playCount?: number;
1628
+ /** The number of unique listeners who have played the song. */
1629
+ uniqueListeners?: number;
1630
+ /** The URI of the album the song belongs to. */
1631
+ albumUri?: AtUri;
1632
+ /** The URI of the artist of the song. */
1633
+ artistUri?: AtUri;
1634
+ /** The SHA256 hash of the song. */
1635
+ sha256?: string;
1636
+ /** The MusicBrainz ID of the song. */
1637
+ mbid?: string;
1638
+ /** The International Standard Recording Code (ISRC) of the song. */
1639
+ isrc?: string;
1640
+ tags?: string[];
1641
+ /** The timestamp when the song was created. */
1642
+ createdAt?: DateTime;
1643
+ artists?: ArtistViewBasic[];
1644
+ /** The first scrobble of this song on Rocksky. */
1645
+ firstScrobble?: SongFirstScrobbleView;
1646
+ }
1647
+ export interface SpotifyTrackView {
1648
+ /** The unique identifier of the Spotify track. */
1649
+ id?: string;
1650
+ /** The name of the track. */
1651
+ name?: string;
1652
+ /** The name of the artist. */
1653
+ artist?: string;
1654
+ /** The name of the album. */
1655
+ album?: string;
1656
+ /** The duration of the track in milliseconds. */
1657
+ duration?: number;
1658
+ /** A URL to a preview of the track. */
1659
+ previewUrl?: string;
1660
+ }
1661
+ export interface StartPlaylistParams {
1662
+ /** The URI of the playlist to start */
1663
+ uri: AtUri;
1664
+ /** Whether to shuffle the playlist when starting it */
1665
+ shuffle?: boolean;
1666
+ /** The position in the playlist to start from, if not specified, starts from the beginning */
1667
+ position?: number;
1668
+ }
1669
+ export interface StatsView {
1670
+ /** The total number of scrobbles. */
1671
+ scrobbles?: number;
1672
+ /** The total number of unique artists scrobbled. */
1673
+ artists?: number;
1674
+ /** The total number of tracks marked as loved. */
1675
+ lovedTracks?: number;
1676
+ /** The total number of unique albums scrobbled. */
1677
+ albums?: number;
1678
+ /** The total number of unique tracks scrobbled. */
1679
+ tracks?: number;
1680
+ }
1681
+ export interface StatsWrappedAlbum {
1682
+ /** The unique identifier of the album. */
1683
+ id?: string;
1684
+ /** The title of the album. */
1685
+ title?: string;
1686
+ /** The artist of the album. */
1687
+ artist?: string;
1688
+ /** The album art URL. */
1689
+ albumArt?: string;
1690
+ /** The AT-URI of the album. */
1691
+ uri?: AtUri;
1692
+ /** Number of plays in the wrapped period. */
1693
+ playCount?: number;
1694
+ }
1695
+ export interface StatsWrappedArtist {
1696
+ /** The unique identifier of the artist. */
1697
+ id?: string;
1698
+ /** The name of the artist. */
1699
+ name?: string;
1700
+ /** The picture URL of the artist. */
1701
+ picture?: string;
1702
+ /** The AT-URI of the artist. */
1703
+ uri?: AtUri;
1704
+ /** Number of plays in the wrapped period. */
1705
+ playCount?: number;
1706
+ }
1707
+ export interface StatsWrappedDayCount {
1708
+ /** The date (YYYY-MM-DD). */
1709
+ date?: string;
1710
+ /** Number of scrobbles on this day. */
1711
+ count?: number;
1712
+ }
1713
+ export interface StatsWrappedGenreCount {
1714
+ /** The genre name. */
1715
+ genre?: string;
1716
+ /** Number of scrobbles for this genre. */
1717
+ count?: number;
1718
+ }
1719
+ export interface StatsWrappedMilestone {
1720
+ /** The title of the track. */
1721
+ trackTitle?: string;
1722
+ /** The name of the artist. */
1723
+ artistName?: string;
1724
+ /** The timestamp of the scrobble. */
1725
+ timestamp?: DateTime;
1726
+ /** AT-URI of the track record, used to build a clickable link to the song page. */
1727
+ trackUri?: AtUri;
1728
+ }
1729
+ export interface StatsWrappedMonthCount {
1730
+ /** Month number (1-12). */
1731
+ month?: number;
1732
+ /** Number of scrobbles in this month. */
1733
+ count?: number;
1734
+ }
1735
+ export interface StatsWrappedTrack {
1736
+ /** The unique identifier of the track. */
1737
+ id?: string;
1738
+ /** The title of the track. */
1739
+ title?: string;
1740
+ /** The artist of the track. */
1741
+ artist?: string;
1742
+ /** The album art URL. */
1743
+ albumArt?: string;
1744
+ /** The AT-URI of the track. */
1745
+ uri?: AtUri;
1746
+ /** The AT-URI of the artist. */
1747
+ artistUri?: AtUri;
1748
+ /** The AT-URI of the album. */
1749
+ albumUri?: AtUri;
1750
+ /** Number of plays in the wrapped period. */
1751
+ playCount?: number;
1752
+ }
1753
+ export interface StatsWrappedView {
1754
+ /** The year of the wrapped stats. */
1755
+ year?: number;
1756
+ /** Total scrobbles in the year. */
1757
+ totalScrobbles?: number;
1758
+ /** Total listening time in minutes. */
1759
+ totalListeningTimeMinutes?: number;
1760
+ /** Top 5 artists by play count. */
1761
+ topArtists?: StatsWrappedArtist[];
1762
+ /** Top 5 tracks by play count. */
1763
+ topTracks?: StatsWrappedTrack[];
1764
+ /** Top 5 albums by play count. */
1765
+ topAlbums?: StatsWrappedAlbum[];
1766
+ /** Top genres by play count. */
1767
+ topGenres?: StatsWrappedGenreCount[];
1768
+ /** Scrobble counts per month. */
1769
+ scrobblesPerMonth?: StatsWrappedMonthCount[];
1770
+ /** The most active day of the year. */
1771
+ mostActiveDay?: StatsWrappedDayCount;
1772
+ /** The most active hour of the day (0-23). */
1773
+ mostActiveHour?: number;
1774
+ /** Number of artists heard for the first time this year. */
1775
+ newArtistsCount?: number;
1776
+ /** Longest consecutive days streak. */
1777
+ longestStreak?: number;
1778
+ /** The first scrobble of the year. */
1779
+ firstScrobble?: StatsWrappedMilestone;
1780
+ /** The last scrobble of the year. */
1781
+ lastScrobble?: StatsWrappedMilestone;
1782
+ }
1783
+ export interface StatusRecord {
1784
+ /** The track currently being played. */
1785
+ track: ActorTrackView;
1786
+ /** When the track started playing. */
1787
+ startedAt: DateTime;
1788
+ /** When the status expires. Defaults to startedAt plus track duration plus idle time. */
1789
+ expiresAt?: DateTime;
1790
+ }
1791
+ export interface StrongRef {
1792
+ uri: AtUri;
1793
+ cid: Cid;
1794
+ }
1795
+ export interface UnfollowAccountOutput {
1796
+ subject: ActorProfileViewBasic;
1797
+ followers: ActorProfileViewBasic[];
1798
+ /** A cursor value to pass to subsequent calls to get the next page of results. */
1799
+ cursor?: string;
1800
+ }
1801
+ export interface UnfollowAccountParams {
1802
+ account: AtIdentifier;
1803
+ }
1804
+ export interface UpdateApikeyInput {
1805
+ /** The ID of the API key to update. */
1806
+ id: string;
1807
+ /** The new name of the API key. */
1808
+ name: string;
1809
+ /** A new description for the API key. */
1810
+ description?: string;
1811
+ }
1812
+ //# sourceMappingURL=types.d.ts.map