@groovenet/contracts 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1026 @@
1
+ import { z } from "zod";
2
+ export declare const spinSelectionModeSchema: z.ZodEnum<{
3
+ automatic: "automatic";
4
+ playlist: "playlist";
5
+ sides: "sides";
6
+ tracks: "tracks";
7
+ }>;
8
+ export declare const spinProvenanceSchema: z.ZodEnum<{
9
+ automatic: "automatic";
10
+ manual: "manual";
11
+ playlist: "playlist";
12
+ }>;
13
+ export declare const spinSelectionTypeSchema: z.ZodEnum<{
14
+ side: "side";
15
+ track: "track";
16
+ }>;
17
+ export declare const SPIN_SELECTION_MODES: ("automatic" | "playlist" | "sides" | "tracks")[];
18
+ export declare const SPIN_PROVENANCES: ("automatic" | "manual" | "playlist")[];
19
+ export declare const SPIN_SELECTION_TYPES: ("side" | "track")[];
20
+ export declare const spinTrackRefSchema: z.ZodObject<{
21
+ track_id: z.ZodString;
22
+ friend_id: z.ZodNumber;
23
+ }, z.core.$strip>;
24
+ export declare const spinSessionSchema: z.ZodObject<{
25
+ id: z.ZodNumber;
26
+ friend_id: z.ZodNumber;
27
+ release_id: z.ZodString;
28
+ medium: z.ZodLiteral<"vinyl">;
29
+ selection_mode: z.ZodEnum<{
30
+ automatic: "automatic";
31
+ playlist: "playlist";
32
+ sides: "sides";
33
+ tracks: "tracks";
34
+ }>;
35
+ played_at: z.ZodString;
36
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
38
+ provenance: z.ZodOptional<z.ZodEnum<{
39
+ automatic: "automatic";
40
+ manual: "manual";
41
+ playlist: "playlist";
42
+ }>>;
43
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
44
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
45
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
46
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
47
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
49
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ created_at: z.ZodString;
51
+ updated_at: z.ZodString;
52
+ }, z.core.$strip>;
53
+ export declare const spinSelectionSchema: z.ZodObject<{
54
+ id: z.ZodOptional<z.ZodNumber>;
55
+ session_id: z.ZodOptional<z.ZodNumber>;
56
+ ordinal: z.ZodNumber;
57
+ selection_type: z.ZodEnum<{
58
+ side: "side";
59
+ track: "track";
60
+ }>;
61
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
62
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
63
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
64
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
65
+ created_at: z.ZodOptional<z.ZodString>;
66
+ }, z.core.$strip>;
67
+ export declare const trackSpinEventSchema: z.ZodObject<{
68
+ id: z.ZodOptional<z.ZodNumber>;
69
+ session_id: z.ZodOptional<z.ZodNumber>;
70
+ friend_id: z.ZodNumber;
71
+ release_id: z.ZodString;
72
+ track_id: z.ZodString;
73
+ played_at: z.ZodString;
74
+ ordinal: z.ZodNumber;
75
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
76
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
+ title_snapshot: z.ZodOptional<z.ZodString>;
78
+ artist_snapshot: z.ZodOptional<z.ZodString>;
79
+ album_snapshot: z.ZodOptional<z.ZodString>;
80
+ created_at: z.ZodOptional<z.ZodString>;
81
+ }, z.core.$strip>;
82
+ export declare const spinDerivedSchema: z.ZodObject<{
83
+ is_full_album_spin: z.ZodBoolean;
84
+ selected_side_count: z.ZodNumber;
85
+ album_side_count: z.ZodNumber;
86
+ track_count: z.ZodNumber;
87
+ }, z.core.$strip>;
88
+ export declare const spinAlbumSummarySchema: z.ZodObject<{
89
+ title: z.ZodNullable<z.ZodString>;
90
+ artist: z.ZodNullable<z.ZodString>;
91
+ thumbnail: z.ZodNullable<z.ZodString>;
92
+ }, z.core.$strip>;
93
+ /** A session with what was played; `album` is joined in on list and edit responses. */
94
+ export declare const spinSessionDetailSchema: z.ZodObject<{
95
+ session: z.ZodObject<{
96
+ id: z.ZodNumber;
97
+ friend_id: z.ZodNumber;
98
+ release_id: z.ZodString;
99
+ medium: z.ZodLiteral<"vinyl">;
100
+ selection_mode: z.ZodEnum<{
101
+ automatic: "automatic";
102
+ playlist: "playlist";
103
+ sides: "sides";
104
+ tracks: "tracks";
105
+ }>;
106
+ played_at: z.ZodString;
107
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
108
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
109
+ provenance: z.ZodOptional<z.ZodEnum<{
110
+ automatic: "automatic";
111
+ manual: "manual";
112
+ playlist: "playlist";
113
+ }>>;
114
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
115
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
116
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
117
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
118
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
119
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
120
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
121
+ created_at: z.ZodString;
122
+ updated_at: z.ZodString;
123
+ }, z.core.$strip>;
124
+ selections: z.ZodArray<z.ZodObject<{
125
+ id: z.ZodOptional<z.ZodNumber>;
126
+ session_id: z.ZodOptional<z.ZodNumber>;
127
+ ordinal: z.ZodNumber;
128
+ selection_type: z.ZodEnum<{
129
+ side: "side";
130
+ track: "track";
131
+ }>;
132
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
133
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
134
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
135
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
136
+ created_at: z.ZodOptional<z.ZodString>;
137
+ }, z.core.$strip>>;
138
+ track_events: z.ZodArray<z.ZodObject<{
139
+ id: z.ZodOptional<z.ZodNumber>;
140
+ session_id: z.ZodOptional<z.ZodNumber>;
141
+ friend_id: z.ZodNumber;
142
+ release_id: z.ZodString;
143
+ track_id: z.ZodString;
144
+ played_at: z.ZodString;
145
+ ordinal: z.ZodNumber;
146
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
+ title_snapshot: z.ZodOptional<z.ZodString>;
149
+ artist_snapshot: z.ZodOptional<z.ZodString>;
150
+ album_snapshot: z.ZodOptional<z.ZodString>;
151
+ created_at: z.ZodOptional<z.ZodString>;
152
+ }, z.core.$strip>>;
153
+ derived: z.ZodObject<{
154
+ is_full_album_spin: z.ZodBoolean;
155
+ selected_side_count: z.ZodNumber;
156
+ album_side_count: z.ZodNumber;
157
+ track_count: z.ZodNumber;
158
+ }, z.core.$strip>;
159
+ album: z.ZodOptional<z.ZodNullable<z.ZodObject<{
160
+ title: z.ZodNullable<z.ZodString>;
161
+ artist: z.ZodNullable<z.ZodString>;
162
+ thumbnail: z.ZodNullable<z.ZodString>;
163
+ }, z.core.$strip>>>;
164
+ }, z.core.$strip>;
165
+ export declare const spinCreateResponseSchema: z.ZodObject<{
166
+ session: z.ZodObject<{
167
+ id: z.ZodNumber;
168
+ friend_id: z.ZodNumber;
169
+ release_id: z.ZodString;
170
+ medium: z.ZodLiteral<"vinyl">;
171
+ selection_mode: z.ZodEnum<{
172
+ automatic: "automatic";
173
+ playlist: "playlist";
174
+ sides: "sides";
175
+ tracks: "tracks";
176
+ }>;
177
+ played_at: z.ZodString;
178
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
179
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
180
+ provenance: z.ZodOptional<z.ZodEnum<{
181
+ automatic: "automatic";
182
+ manual: "manual";
183
+ playlist: "playlist";
184
+ }>>;
185
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
186
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
187
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
188
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
189
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
190
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
191
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
192
+ created_at: z.ZodString;
193
+ updated_at: z.ZodString;
194
+ }, z.core.$strip>;
195
+ selections: z.ZodArray<z.ZodObject<{
196
+ id: z.ZodOptional<z.ZodNumber>;
197
+ session_id: z.ZodOptional<z.ZodNumber>;
198
+ ordinal: z.ZodNumber;
199
+ selection_type: z.ZodEnum<{
200
+ side: "side";
201
+ track: "track";
202
+ }>;
203
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
204
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
205
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
206
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
207
+ created_at: z.ZodOptional<z.ZodString>;
208
+ }, z.core.$strip>>;
209
+ expanded_tracks: z.ZodArray<z.ZodObject<{
210
+ id: z.ZodOptional<z.ZodNumber>;
211
+ session_id: z.ZodOptional<z.ZodNumber>;
212
+ friend_id: z.ZodNumber;
213
+ release_id: z.ZodString;
214
+ track_id: z.ZodString;
215
+ played_at: z.ZodString;
216
+ ordinal: z.ZodNumber;
217
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
218
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
219
+ title_snapshot: z.ZodOptional<z.ZodString>;
220
+ artist_snapshot: z.ZodOptional<z.ZodString>;
221
+ album_snapshot: z.ZodOptional<z.ZodString>;
222
+ created_at: z.ZodOptional<z.ZodString>;
223
+ }, z.core.$strip>>;
224
+ derived: z.ZodObject<{
225
+ is_full_album_spin: z.ZodBoolean;
226
+ selected_side_count: z.ZodNumber;
227
+ album_side_count: z.ZodNumber;
228
+ track_count: z.ZodNumber;
229
+ }, z.core.$strip>;
230
+ }, z.core.$strip>;
231
+ export declare const spinUpdateResponseSchema: z.ZodObject<{
232
+ session: z.ZodObject<{
233
+ id: z.ZodNumber;
234
+ friend_id: z.ZodNumber;
235
+ release_id: z.ZodString;
236
+ medium: z.ZodLiteral<"vinyl">;
237
+ selection_mode: z.ZodEnum<{
238
+ automatic: "automatic";
239
+ playlist: "playlist";
240
+ sides: "sides";
241
+ tracks: "tracks";
242
+ }>;
243
+ played_at: z.ZodString;
244
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
245
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
246
+ provenance: z.ZodOptional<z.ZodEnum<{
247
+ automatic: "automatic";
248
+ manual: "manual";
249
+ playlist: "playlist";
250
+ }>>;
251
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
252
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
253
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
254
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
255
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
256
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
257
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
258
+ created_at: z.ZodString;
259
+ updated_at: z.ZodString;
260
+ }, z.core.$strip>;
261
+ selections: z.ZodArray<z.ZodObject<{
262
+ id: z.ZodOptional<z.ZodNumber>;
263
+ session_id: z.ZodOptional<z.ZodNumber>;
264
+ ordinal: z.ZodNumber;
265
+ selection_type: z.ZodEnum<{
266
+ side: "side";
267
+ track: "track";
268
+ }>;
269
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
270
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
271
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
272
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
273
+ created_at: z.ZodOptional<z.ZodString>;
274
+ }, z.core.$strip>>;
275
+ track_events: z.ZodArray<z.ZodObject<{
276
+ id: z.ZodOptional<z.ZodNumber>;
277
+ session_id: z.ZodOptional<z.ZodNumber>;
278
+ friend_id: z.ZodNumber;
279
+ release_id: z.ZodString;
280
+ track_id: z.ZodString;
281
+ played_at: z.ZodString;
282
+ ordinal: z.ZodNumber;
283
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
284
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
285
+ title_snapshot: z.ZodOptional<z.ZodString>;
286
+ artist_snapshot: z.ZodOptional<z.ZodString>;
287
+ album_snapshot: z.ZodOptional<z.ZodString>;
288
+ created_at: z.ZodOptional<z.ZodString>;
289
+ }, z.core.$strip>>;
290
+ derived: z.ZodObject<{
291
+ is_full_album_spin: z.ZodBoolean;
292
+ selected_side_count: z.ZodNumber;
293
+ album_side_count: z.ZodNumber;
294
+ track_count: z.ZodNumber;
295
+ }, z.core.$strip>;
296
+ album: z.ZodOptional<z.ZodNullable<z.ZodObject<{
297
+ title: z.ZodNullable<z.ZodString>;
298
+ artist: z.ZodNullable<z.ZodString>;
299
+ thumbnail: z.ZodNullable<z.ZodString>;
300
+ }, z.core.$strip>>>;
301
+ }, z.core.$strip>;
302
+ export declare const spinListResponseSchema: z.ZodObject<{
303
+ items: z.ZodArray<z.ZodObject<{
304
+ session: z.ZodObject<{
305
+ id: z.ZodNumber;
306
+ friend_id: z.ZodNumber;
307
+ release_id: z.ZodString;
308
+ medium: z.ZodLiteral<"vinyl">;
309
+ selection_mode: z.ZodEnum<{
310
+ automatic: "automatic";
311
+ playlist: "playlist";
312
+ sides: "sides";
313
+ tracks: "tracks";
314
+ }>;
315
+ played_at: z.ZodString;
316
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
317
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
318
+ provenance: z.ZodOptional<z.ZodEnum<{
319
+ automatic: "automatic";
320
+ manual: "manual";
321
+ playlist: "playlist";
322
+ }>>;
323
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
324
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
325
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
326
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
327
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
328
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
329
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
330
+ created_at: z.ZodString;
331
+ updated_at: z.ZodString;
332
+ }, z.core.$strip>;
333
+ selections: z.ZodArray<z.ZodObject<{
334
+ id: z.ZodOptional<z.ZodNumber>;
335
+ session_id: z.ZodOptional<z.ZodNumber>;
336
+ ordinal: z.ZodNumber;
337
+ selection_type: z.ZodEnum<{
338
+ side: "side";
339
+ track: "track";
340
+ }>;
341
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
342
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
343
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
344
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
345
+ created_at: z.ZodOptional<z.ZodString>;
346
+ }, z.core.$strip>>;
347
+ track_events: z.ZodArray<z.ZodObject<{
348
+ id: z.ZodOptional<z.ZodNumber>;
349
+ session_id: z.ZodOptional<z.ZodNumber>;
350
+ friend_id: z.ZodNumber;
351
+ release_id: z.ZodString;
352
+ track_id: z.ZodString;
353
+ played_at: z.ZodString;
354
+ ordinal: z.ZodNumber;
355
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
356
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
357
+ title_snapshot: z.ZodOptional<z.ZodString>;
358
+ artist_snapshot: z.ZodOptional<z.ZodString>;
359
+ album_snapshot: z.ZodOptional<z.ZodString>;
360
+ created_at: z.ZodOptional<z.ZodString>;
361
+ }, z.core.$strip>>;
362
+ derived: z.ZodObject<{
363
+ is_full_album_spin: z.ZodBoolean;
364
+ selected_side_count: z.ZodNumber;
365
+ album_side_count: z.ZodNumber;
366
+ track_count: z.ZodNumber;
367
+ }, z.core.$strip>;
368
+ album: z.ZodOptional<z.ZodNullable<z.ZodObject<{
369
+ title: z.ZodNullable<z.ZodString>;
370
+ artist: z.ZodNullable<z.ZodString>;
371
+ thumbnail: z.ZodNullable<z.ZodString>;
372
+ }, z.core.$strip>>>;
373
+ }, z.core.$strip>>;
374
+ limit: z.ZodNumber;
375
+ offset: z.ZodNumber;
376
+ }, z.core.$strip>;
377
+ export declare const spinDeleteResponseSchema: z.ZodObject<{
378
+ success: z.ZodBoolean;
379
+ session: z.ZodObject<{
380
+ id: z.ZodNumber;
381
+ friend_id: z.ZodNumber;
382
+ release_id: z.ZodString;
383
+ medium: z.ZodLiteral<"vinyl">;
384
+ selection_mode: z.ZodEnum<{
385
+ automatic: "automatic";
386
+ playlist: "playlist";
387
+ sides: "sides";
388
+ tracks: "tracks";
389
+ }>;
390
+ played_at: z.ZodString;
391
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
392
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
393
+ provenance: z.ZodOptional<z.ZodEnum<{
394
+ automatic: "automatic";
395
+ manual: "manual";
396
+ playlist: "playlist";
397
+ }>>;
398
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
399
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
400
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
401
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
402
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
403
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
404
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
405
+ created_at: z.ZodString;
406
+ updated_at: z.ZodString;
407
+ }, z.core.$strip>;
408
+ }, z.core.$strip>;
409
+ export declare const spinTopTrackSchema: z.ZodObject<{
410
+ friend_id: z.ZodNumber;
411
+ release_id: z.ZodString;
412
+ track_id: z.ZodString;
413
+ play_count: z.ZodNumber;
414
+ last_played_at: z.ZodString;
415
+ title_snapshot: z.ZodString;
416
+ artist_snapshot: z.ZodString;
417
+ album_snapshot: z.ZodString;
418
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
419
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
420
+ album_thumbnail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
421
+ audio_file_album_art_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
422
+ local_audio_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
423
+ bpm: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
424
+ key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
425
+ star_rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
426
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
427
+ library_identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
428
+ hasVectors: z.ZodOptional<z.ZodBoolean>;
429
+ track_genres: z.ZodOptional<z.ZodArray<z.ZodObject<{
430
+ id: z.ZodString;
431
+ name: z.ZodString;
432
+ slug: z.ZodString;
433
+ parent_id: z.ZodNullable<z.ZodString>;
434
+ parent_name: z.ZodNullable<z.ZodString>;
435
+ }, z.core.$strip>>>;
436
+ }, z.core.$strip>;
437
+ export declare const spinTopTracksResponseSchema: z.ZodObject<{
438
+ items: z.ZodArray<z.ZodObject<{
439
+ friend_id: z.ZodNumber;
440
+ release_id: z.ZodString;
441
+ track_id: z.ZodString;
442
+ play_count: z.ZodNumber;
443
+ last_played_at: z.ZodString;
444
+ title_snapshot: z.ZodString;
445
+ artist_snapshot: z.ZodString;
446
+ album_snapshot: z.ZodString;
447
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
448
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
449
+ album_thumbnail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
450
+ audio_file_album_art_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
451
+ local_audio_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
452
+ bpm: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
453
+ key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
454
+ star_rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
455
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
456
+ library_identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
457
+ hasVectors: z.ZodOptional<z.ZodBoolean>;
458
+ track_genres: z.ZodOptional<z.ZodArray<z.ZodObject<{
459
+ id: z.ZodString;
460
+ name: z.ZodString;
461
+ slug: z.ZodString;
462
+ parent_id: z.ZodNullable<z.ZodString>;
463
+ parent_name: z.ZodNullable<z.ZodString>;
464
+ }, z.core.$strip>>>;
465
+ }, z.core.$strip>>;
466
+ limit: z.ZodNumber;
467
+ offset: z.ZodNumber;
468
+ }, z.core.$strip>;
469
+ export declare const spinCreateObjectSchema: z.ZodObject<{
470
+ friend_id: z.ZodNumber;
471
+ release_id: z.ZodString;
472
+ played_at: z.ZodString;
473
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
474
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
475
+ side_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
476
+ track_refs: z.ZodOptional<z.ZodArray<z.ZodObject<{
477
+ track_id: z.ZodString;
478
+ friend_id: z.ZodNumber;
479
+ }, z.core.$strip>>>;
480
+ }, z.core.$strip>;
481
+ type SpinCreateFields = z.infer<typeof spinCreateObjectSchema>;
482
+ /** Exactly one non-empty selection; a single JSON Schema cannot say so. */
483
+ export declare function refineSpinCreate(value: SpinCreateFields, ctx: z.RefinementCtx): void;
484
+ export declare const spinCreateSchema: z.ZodObject<{
485
+ friend_id: z.ZodNumber;
486
+ release_id: z.ZodString;
487
+ played_at: z.ZodString;
488
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
489
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
490
+ side_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
491
+ track_refs: z.ZodOptional<z.ZodArray<z.ZodObject<{
492
+ track_id: z.ZodString;
493
+ friend_id: z.ZodNumber;
494
+ }, z.core.$strip>>>;
495
+ }, z.core.$strip>;
496
+ export declare const spinUpdateObjectSchema: z.ZodObject<{
497
+ friend_id: z.ZodNumber;
498
+ played_at: z.ZodOptional<z.ZodString>;
499
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
500
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
501
+ side_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
502
+ track_refs: z.ZodOptional<z.ZodArray<z.ZodObject<{
503
+ track_id: z.ZodString;
504
+ friend_id: z.ZodNumber;
505
+ }, z.core.$strip>>>;
506
+ }, z.core.$strip>;
507
+ type SpinUpdateFields = z.infer<typeof spinUpdateObjectSchema>;
508
+ /** At most one selection form, and something to change. */
509
+ export declare function refineSpinUpdate(value: SpinUpdateFields, ctx: z.RefinementCtx): void;
510
+ export declare const spinUpdateSchema: z.ZodObject<{
511
+ friend_id: z.ZodNumber;
512
+ played_at: z.ZodOptional<z.ZodString>;
513
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
514
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
515
+ side_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
516
+ track_refs: z.ZodOptional<z.ZodArray<z.ZodObject<{
517
+ track_id: z.ZodString;
518
+ friend_id: z.ZodNumber;
519
+ }, z.core.$strip>>>;
520
+ }, z.core.$strip>;
521
+ export declare const spinAggregateRequestSchema: z.ZodObject<{
522
+ since: z.ZodString;
523
+ source_id: z.ZodOptional<z.ZodString>;
524
+ }, z.core.$strip>;
525
+ export declare const spinAggregateSourceResultSchema: z.ZodObject<{
526
+ source_id: z.ZodString;
527
+ created: z.ZodNumber;
528
+ skipped: z.ZodNumber;
529
+ }, z.core.$strip>;
530
+ export declare const spinAggregateResultSchema: z.ZodObject<{
531
+ since: z.ZodString;
532
+ created: z.ZodNumber;
533
+ skipped: z.ZodNumber;
534
+ sources: z.ZodArray<z.ZodObject<{
535
+ source_id: z.ZodString;
536
+ created: z.ZodNumber;
537
+ skipped: z.ZodNumber;
538
+ }, z.core.$strip>>;
539
+ }, z.core.$strip>;
540
+ export declare const spinListQuerySchema: z.ZodObject<{
541
+ friend_id: z.ZodNumber;
542
+ release_id: z.ZodOptional<z.ZodString>;
543
+ track_id: z.ZodOptional<z.ZodString>;
544
+ from: z.ZodOptional<z.ZodString>;
545
+ to: z.ZodOptional<z.ZodString>;
546
+ limit: z.ZodOptional<z.ZodNumber>;
547
+ offset: z.ZodOptional<z.ZodNumber>;
548
+ }, z.core.$strip>;
549
+ export declare const spinTopTracksQuerySchema: z.ZodObject<{
550
+ friend_id: z.ZodNumber;
551
+ release_id: z.ZodOptional<z.ZodString>;
552
+ limit: z.ZodOptional<z.ZodNumber>;
553
+ offset: z.ZodOptional<z.ZodNumber>;
554
+ }, z.core.$strip>;
555
+ export type SpinSelectionMode = z.infer<typeof spinSelectionModeSchema>;
556
+ export type SpinProvenance = z.infer<typeof spinProvenanceSchema>;
557
+ export type SpinSelectionType = z.infer<typeof spinSelectionTypeSchema>;
558
+ export type SpinTrackRef = z.infer<typeof spinTrackRefSchema>;
559
+ export type SpinSession = z.infer<typeof spinSessionSchema>;
560
+ export type SpinSelection = z.infer<typeof spinSelectionSchema>;
561
+ export type TrackSpinEvent = z.infer<typeof trackSpinEventSchema>;
562
+ export type SpinDerived = z.infer<typeof spinDerivedSchema>;
563
+ export type SpinAlbumSummary = z.infer<typeof spinAlbumSummarySchema>;
564
+ export type SpinSessionDetail = z.infer<typeof spinSessionDetailSchema>;
565
+ export type SpinCreateResponse = z.infer<typeof spinCreateResponseSchema>;
566
+ export type SpinUpdateResponse = z.infer<typeof spinUpdateResponseSchema>;
567
+ export type SpinListResponse = z.infer<typeof spinListResponseSchema>;
568
+ export type SpinDeleteResponse = z.infer<typeof spinDeleteResponseSchema>;
569
+ export type SpinTopTrack = z.infer<typeof spinTopTrackSchema>;
570
+ export type SpinTopTracksResponse = z.infer<typeof spinTopTracksResponseSchema>;
571
+ export type SpinUpdateInput = z.infer<typeof spinUpdateSchema>;
572
+ export type SpinAggregateRequest = z.infer<typeof spinAggregateRequestSchema>;
573
+ export type SpinAggregateSourceResult = z.infer<typeof spinAggregateSourceResultSchema>;
574
+ export type SpinAggregateResult = z.infer<typeof spinAggregateResultSchema>;
575
+ export type SpinListQuery = z.infer<typeof spinListQuerySchema>;
576
+ export type SpinTopTracksQuery = z.infer<typeof spinTopTracksQuerySchema>;
577
+ type SpinCreateBase = Omit<SpinCreateFields, "side_keys" | "track_refs">;
578
+ /**
579
+ * Played sides, or played tracks. The schema's refinement enforces "exactly
580
+ * one"; this type states it for callers.
581
+ */
582
+ export type SpinCreateInput = (SpinCreateBase & {
583
+ side_keys: string[];
584
+ track_refs?: never;
585
+ }) | (SpinCreateBase & {
586
+ side_keys?: never;
587
+ track_refs: SpinTrackRef[];
588
+ });
589
+ export declare const spinJsonSchemas: {
590
+ SpinSelectionMode: z.core.ZodStandardJSONSchemaPayload<z.ZodEnum<{
591
+ automatic: "automatic";
592
+ playlist: "playlist";
593
+ sides: "sides";
594
+ tracks: "tracks";
595
+ }>>;
596
+ SpinProvenance: z.core.ZodStandardJSONSchemaPayload<z.ZodEnum<{
597
+ automatic: "automatic";
598
+ manual: "manual";
599
+ playlist: "playlist";
600
+ }>>;
601
+ SpinSelectionType: z.core.ZodStandardJSONSchemaPayload<z.ZodEnum<{
602
+ side: "side";
603
+ track: "track";
604
+ }>>;
605
+ SpinTrackRef: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
606
+ track_id: z.ZodString;
607
+ friend_id: z.ZodNumber;
608
+ }, z.core.$strip>>;
609
+ SpinSession: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
610
+ id: z.ZodNumber;
611
+ friend_id: z.ZodNumber;
612
+ release_id: z.ZodString;
613
+ medium: z.ZodLiteral<"vinyl">;
614
+ selection_mode: z.ZodEnum<{
615
+ automatic: "automatic";
616
+ playlist: "playlist";
617
+ sides: "sides";
618
+ tracks: "tracks";
619
+ }>;
620
+ played_at: z.ZodString;
621
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
622
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
623
+ provenance: z.ZodOptional<z.ZodEnum<{
624
+ automatic: "automatic";
625
+ manual: "manual";
626
+ playlist: "playlist";
627
+ }>>;
628
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
629
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
630
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
631
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
632
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
633
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
634
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
635
+ created_at: z.ZodString;
636
+ updated_at: z.ZodString;
637
+ }, z.core.$strip>>;
638
+ SpinSelection: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
639
+ id: z.ZodOptional<z.ZodNumber>;
640
+ session_id: z.ZodOptional<z.ZodNumber>;
641
+ ordinal: z.ZodNumber;
642
+ selection_type: z.ZodEnum<{
643
+ side: "side";
644
+ track: "track";
645
+ }>;
646
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
647
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
648
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
649
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
650
+ created_at: z.ZodOptional<z.ZodString>;
651
+ }, z.core.$strip>>;
652
+ TrackSpinEvent: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
653
+ id: z.ZodOptional<z.ZodNumber>;
654
+ session_id: z.ZodOptional<z.ZodNumber>;
655
+ friend_id: z.ZodNumber;
656
+ release_id: z.ZodString;
657
+ track_id: z.ZodString;
658
+ played_at: z.ZodString;
659
+ ordinal: z.ZodNumber;
660
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
661
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
662
+ title_snapshot: z.ZodOptional<z.ZodString>;
663
+ artist_snapshot: z.ZodOptional<z.ZodString>;
664
+ album_snapshot: z.ZodOptional<z.ZodString>;
665
+ created_at: z.ZodOptional<z.ZodString>;
666
+ }, z.core.$strip>>;
667
+ SpinDerived: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
668
+ is_full_album_spin: z.ZodBoolean;
669
+ selected_side_count: z.ZodNumber;
670
+ album_side_count: z.ZodNumber;
671
+ track_count: z.ZodNumber;
672
+ }, z.core.$strip>>;
673
+ SpinAlbumSummary: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
674
+ title: z.ZodNullable<z.ZodString>;
675
+ artist: z.ZodNullable<z.ZodString>;
676
+ thumbnail: z.ZodNullable<z.ZodString>;
677
+ }, z.core.$strip>>;
678
+ SpinSessionDetail: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
679
+ session: z.ZodObject<{
680
+ id: z.ZodNumber;
681
+ friend_id: z.ZodNumber;
682
+ release_id: z.ZodString;
683
+ medium: z.ZodLiteral<"vinyl">;
684
+ selection_mode: z.ZodEnum<{
685
+ automatic: "automatic";
686
+ playlist: "playlist";
687
+ sides: "sides";
688
+ tracks: "tracks";
689
+ }>;
690
+ played_at: z.ZodString;
691
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
692
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
693
+ provenance: z.ZodOptional<z.ZodEnum<{
694
+ automatic: "automatic";
695
+ manual: "manual";
696
+ playlist: "playlist";
697
+ }>>;
698
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
699
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
700
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
701
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
702
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
703
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
704
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
705
+ created_at: z.ZodString;
706
+ updated_at: z.ZodString;
707
+ }, z.core.$strip>;
708
+ selections: z.ZodArray<z.ZodObject<{
709
+ id: z.ZodOptional<z.ZodNumber>;
710
+ session_id: z.ZodOptional<z.ZodNumber>;
711
+ ordinal: z.ZodNumber;
712
+ selection_type: z.ZodEnum<{
713
+ side: "side";
714
+ track: "track";
715
+ }>;
716
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
717
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
718
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
719
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
720
+ created_at: z.ZodOptional<z.ZodString>;
721
+ }, z.core.$strip>>;
722
+ track_events: z.ZodArray<z.ZodObject<{
723
+ id: z.ZodOptional<z.ZodNumber>;
724
+ session_id: z.ZodOptional<z.ZodNumber>;
725
+ friend_id: z.ZodNumber;
726
+ release_id: z.ZodString;
727
+ track_id: z.ZodString;
728
+ played_at: z.ZodString;
729
+ ordinal: z.ZodNumber;
730
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
731
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
732
+ title_snapshot: z.ZodOptional<z.ZodString>;
733
+ artist_snapshot: z.ZodOptional<z.ZodString>;
734
+ album_snapshot: z.ZodOptional<z.ZodString>;
735
+ created_at: z.ZodOptional<z.ZodString>;
736
+ }, z.core.$strip>>;
737
+ derived: z.ZodObject<{
738
+ is_full_album_spin: z.ZodBoolean;
739
+ selected_side_count: z.ZodNumber;
740
+ album_side_count: z.ZodNumber;
741
+ track_count: z.ZodNumber;
742
+ }, z.core.$strip>;
743
+ album: z.ZodOptional<z.ZodNullable<z.ZodObject<{
744
+ title: z.ZodNullable<z.ZodString>;
745
+ artist: z.ZodNullable<z.ZodString>;
746
+ thumbnail: z.ZodNullable<z.ZodString>;
747
+ }, z.core.$strip>>>;
748
+ }, z.core.$strip>>;
749
+ SpinCreateResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
750
+ session: z.ZodObject<{
751
+ id: z.ZodNumber;
752
+ friend_id: z.ZodNumber;
753
+ release_id: z.ZodString;
754
+ medium: z.ZodLiteral<"vinyl">;
755
+ selection_mode: z.ZodEnum<{
756
+ automatic: "automatic";
757
+ playlist: "playlist";
758
+ sides: "sides";
759
+ tracks: "tracks";
760
+ }>;
761
+ played_at: z.ZodString;
762
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
763
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
764
+ provenance: z.ZodOptional<z.ZodEnum<{
765
+ automatic: "automatic";
766
+ manual: "manual";
767
+ playlist: "playlist";
768
+ }>>;
769
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
770
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
771
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
772
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
773
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
774
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
775
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
776
+ created_at: z.ZodString;
777
+ updated_at: z.ZodString;
778
+ }, z.core.$strip>;
779
+ selections: z.ZodArray<z.ZodObject<{
780
+ id: z.ZodOptional<z.ZodNumber>;
781
+ session_id: z.ZodOptional<z.ZodNumber>;
782
+ ordinal: z.ZodNumber;
783
+ selection_type: z.ZodEnum<{
784
+ side: "side";
785
+ track: "track";
786
+ }>;
787
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
788
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
789
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
790
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
791
+ created_at: z.ZodOptional<z.ZodString>;
792
+ }, z.core.$strip>>;
793
+ expanded_tracks: z.ZodArray<z.ZodObject<{
794
+ id: z.ZodOptional<z.ZodNumber>;
795
+ session_id: z.ZodOptional<z.ZodNumber>;
796
+ friend_id: z.ZodNumber;
797
+ release_id: z.ZodString;
798
+ track_id: z.ZodString;
799
+ played_at: z.ZodString;
800
+ ordinal: z.ZodNumber;
801
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
802
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
803
+ title_snapshot: z.ZodOptional<z.ZodString>;
804
+ artist_snapshot: z.ZodOptional<z.ZodString>;
805
+ album_snapshot: z.ZodOptional<z.ZodString>;
806
+ created_at: z.ZodOptional<z.ZodString>;
807
+ }, z.core.$strip>>;
808
+ derived: z.ZodObject<{
809
+ is_full_album_spin: z.ZodBoolean;
810
+ selected_side_count: z.ZodNumber;
811
+ album_side_count: z.ZodNumber;
812
+ track_count: z.ZodNumber;
813
+ }, z.core.$strip>;
814
+ }, z.core.$strip>>;
815
+ SpinListResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
816
+ items: z.ZodArray<z.ZodObject<{
817
+ session: z.ZodObject<{
818
+ id: z.ZodNumber;
819
+ friend_id: z.ZodNumber;
820
+ release_id: z.ZodString;
821
+ medium: z.ZodLiteral<"vinyl">;
822
+ selection_mode: z.ZodEnum<{
823
+ automatic: "automatic";
824
+ playlist: "playlist";
825
+ sides: "sides";
826
+ tracks: "tracks";
827
+ }>;
828
+ played_at: z.ZodString;
829
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
830
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
831
+ provenance: z.ZodOptional<z.ZodEnum<{
832
+ automatic: "automatic";
833
+ manual: "manual";
834
+ playlist: "playlist";
835
+ }>>;
836
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
837
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
838
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
839
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
840
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
841
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
842
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
843
+ created_at: z.ZodString;
844
+ updated_at: z.ZodString;
845
+ }, z.core.$strip>;
846
+ selections: z.ZodArray<z.ZodObject<{
847
+ id: z.ZodOptional<z.ZodNumber>;
848
+ session_id: z.ZodOptional<z.ZodNumber>;
849
+ ordinal: z.ZodNumber;
850
+ selection_type: z.ZodEnum<{
851
+ side: "side";
852
+ track: "track";
853
+ }>;
854
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
855
+ track_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
856
+ friend_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
857
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
858
+ created_at: z.ZodOptional<z.ZodString>;
859
+ }, z.core.$strip>>;
860
+ track_events: z.ZodArray<z.ZodObject<{
861
+ id: z.ZodOptional<z.ZodNumber>;
862
+ session_id: z.ZodOptional<z.ZodNumber>;
863
+ friend_id: z.ZodNumber;
864
+ release_id: z.ZodString;
865
+ track_id: z.ZodString;
866
+ played_at: z.ZodString;
867
+ ordinal: z.ZodNumber;
868
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
869
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
870
+ title_snapshot: z.ZodOptional<z.ZodString>;
871
+ artist_snapshot: z.ZodOptional<z.ZodString>;
872
+ album_snapshot: z.ZodOptional<z.ZodString>;
873
+ created_at: z.ZodOptional<z.ZodString>;
874
+ }, z.core.$strip>>;
875
+ derived: z.ZodObject<{
876
+ is_full_album_spin: z.ZodBoolean;
877
+ selected_side_count: z.ZodNumber;
878
+ album_side_count: z.ZodNumber;
879
+ track_count: z.ZodNumber;
880
+ }, z.core.$strip>;
881
+ album: z.ZodOptional<z.ZodNullable<z.ZodObject<{
882
+ title: z.ZodNullable<z.ZodString>;
883
+ artist: z.ZodNullable<z.ZodString>;
884
+ thumbnail: z.ZodNullable<z.ZodString>;
885
+ }, z.core.$strip>>>;
886
+ }, z.core.$strip>>;
887
+ limit: z.ZodNumber;
888
+ offset: z.ZodNumber;
889
+ }, z.core.$strip>>;
890
+ SpinDeleteResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
891
+ success: z.ZodBoolean;
892
+ session: z.ZodObject<{
893
+ id: z.ZodNumber;
894
+ friend_id: z.ZodNumber;
895
+ release_id: z.ZodString;
896
+ medium: z.ZodLiteral<"vinyl">;
897
+ selection_mode: z.ZodEnum<{
898
+ automatic: "automatic";
899
+ playlist: "playlist";
900
+ sides: "sides";
901
+ tracks: "tracks";
902
+ }>;
903
+ played_at: z.ZodString;
904
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
905
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
906
+ provenance: z.ZodOptional<z.ZodEnum<{
907
+ automatic: "automatic";
908
+ manual: "manual";
909
+ playlist: "playlist";
910
+ }>>;
911
+ source_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
912
+ confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
913
+ playlist_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
914
+ live_set_performance_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
915
+ playlist_played_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
916
+ playlist_position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
917
+ corrected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
918
+ created_at: z.ZodString;
919
+ updated_at: z.ZodString;
920
+ }, z.core.$strip>;
921
+ }, z.core.$strip>>;
922
+ SpinTopTrack: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
923
+ friend_id: z.ZodNumber;
924
+ release_id: z.ZodString;
925
+ track_id: z.ZodString;
926
+ play_count: z.ZodNumber;
927
+ last_played_at: z.ZodString;
928
+ title_snapshot: z.ZodString;
929
+ artist_snapshot: z.ZodString;
930
+ album_snapshot: z.ZodString;
931
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
932
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
933
+ album_thumbnail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
934
+ audio_file_album_art_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
935
+ local_audio_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
936
+ bpm: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
937
+ key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
938
+ star_rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
939
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
940
+ library_identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
941
+ hasVectors: z.ZodOptional<z.ZodBoolean>;
942
+ track_genres: z.ZodOptional<z.ZodArray<z.ZodObject<{
943
+ id: z.ZodString;
944
+ name: z.ZodString;
945
+ slug: z.ZodString;
946
+ parent_id: z.ZodNullable<z.ZodString>;
947
+ parent_name: z.ZodNullable<z.ZodString>;
948
+ }, z.core.$strip>>>;
949
+ }, z.core.$strip>>;
950
+ SpinTopTracksResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
951
+ items: z.ZodArray<z.ZodObject<{
952
+ friend_id: z.ZodNumber;
953
+ release_id: z.ZodString;
954
+ track_id: z.ZodString;
955
+ play_count: z.ZodNumber;
956
+ last_played_at: z.ZodString;
957
+ title_snapshot: z.ZodString;
958
+ artist_snapshot: z.ZodString;
959
+ album_snapshot: z.ZodString;
960
+ side_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
961
+ position_snapshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
962
+ album_thumbnail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
963
+ audio_file_album_art_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
964
+ local_audio_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
965
+ bpm: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
966
+ key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
967
+ star_rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
968
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
969
+ library_identifier: z.ZodOptional<z.ZodNullable<z.ZodString>>;
970
+ hasVectors: z.ZodOptional<z.ZodBoolean>;
971
+ track_genres: z.ZodOptional<z.ZodArray<z.ZodObject<{
972
+ id: z.ZodString;
973
+ name: z.ZodString;
974
+ slug: z.ZodString;
975
+ parent_id: z.ZodNullable<z.ZodString>;
976
+ parent_name: z.ZodNullable<z.ZodString>;
977
+ }, z.core.$strip>>>;
978
+ }, z.core.$strip>>;
979
+ limit: z.ZodNumber;
980
+ offset: z.ZodNumber;
981
+ }, z.core.$strip>>;
982
+ SpinAggregateSourceResult: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
983
+ source_id: z.ZodString;
984
+ created: z.ZodNumber;
985
+ skipped: z.ZodNumber;
986
+ }, z.core.$strip>>;
987
+ SpinAggregateResult: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
988
+ since: z.ZodString;
989
+ created: z.ZodNumber;
990
+ skipped: z.ZodNumber;
991
+ sources: z.ZodArray<z.ZodObject<{
992
+ source_id: z.ZodString;
993
+ created: z.ZodNumber;
994
+ skipped: z.ZodNumber;
995
+ }, z.core.$strip>>;
996
+ }, z.core.$strip>>;
997
+ SpinCreateInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
998
+ friend_id: z.ZodNumber;
999
+ release_id: z.ZodString;
1000
+ played_at: z.ZodString;
1001
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1002
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1003
+ side_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
1004
+ track_refs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1005
+ track_id: z.ZodString;
1006
+ friend_id: z.ZodNumber;
1007
+ }, z.core.$strip>>>;
1008
+ }, z.core.$strip>>;
1009
+ SpinUpdateInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
1010
+ friend_id: z.ZodNumber;
1011
+ played_at: z.ZodOptional<z.ZodString>;
1012
+ note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1013
+ context_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1014
+ side_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
1015
+ track_refs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1016
+ track_id: z.ZodString;
1017
+ friend_id: z.ZodNumber;
1018
+ }, z.core.$strip>>>;
1019
+ }, z.core.$strip>>;
1020
+ SpinAggregateRequest: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
1021
+ since: z.ZodString;
1022
+ source_id: z.ZodOptional<z.ZodString>;
1023
+ }, z.core.$strip>>;
1024
+ };
1025
+ export {};
1026
+ //# sourceMappingURL=spins.d.ts.map