@sudobility/music_types 0.11.31 → 0.11.32

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,1696 @@
1
+ /**
2
+ * The project API payloads, the response envelope, and the error codes.
3
+ *
4
+ * `music_api` answers in these shapes and `music_client` parses them, so the
5
+ * two cannot drift as long as both import from here.
6
+ */
7
+ import { z } from "zod";
8
+ import type { ProjectStatus } from "./generation.js";
9
+ import type { Score, UUID } from "./score.js";
10
+ export type ProjectUiPrefs = {
11
+ zoom: number;
12
+ /**
13
+ * Track ids to draw. **Absent means every track is visible** — a project
14
+ * saved before this field existed, or one that never hid anything, needs no
15
+ * migration and no backfill. An empty array is not a valid value: a blank
16
+ * page is never what anyone meant.
17
+ *
18
+ * Ids naming tracks that no longer exist are ignored on load rather than
19
+ * treated as an error, so hiding a track, deleting it, and undoing the
20
+ * deletion all behave.
21
+ */
22
+ visibleTrackIds?: string[];
23
+ };
24
+ /** Project list item — everything but the (potentially large) score payload. */
25
+ export type ProjectSummary = {
26
+ id: string;
27
+ name: string;
28
+ createdAt: string;
29
+ updatedAt: string;
30
+ schemaVersion: number;
31
+ /** Required, not optional: a project always has a status, and a missing one would read as editable. */
32
+ status: ProjectStatus;
33
+ /** Why the last generation failed, or null. Survives navigating away, which the job row does not. */
34
+ lastGenerationError: string | null;
35
+ };
36
+ export type ProjectRecord = ProjectSummary & {
37
+ score: Score;
38
+ uiPrefs?: ProjectUiPrefs;
39
+ /** Which snapshot the live work descends from, so a new one attaches there. */
40
+ parentSnapshotId?: UUID | null;
41
+ };
42
+ /**
43
+ * What a *write* to a project returns: everything but the score.
44
+ *
45
+ * A create or an autosave sends the score and gets the identical bytes back,
46
+ * which no caller has ever read — the writer already holds the score it just
47
+ * sent. On a debounced autosave that echo doubled the cost of every edit, so
48
+ * reads return the score and writes return metadata about it.
49
+ */
50
+ export type ProjectSaveResult = Omit<ProjectRecord, "score">;
51
+ /**
52
+ * What a status poll returns. Deliberately small: an open editor asks for this
53
+ * every few seconds for the whole session.
54
+ *
55
+ * `parentSnapshotId` rides along because it is the one other field an editor
56
+ * needs while a project is open, and fetching the whole project to read it was
57
+ * the alternative.
58
+ */
59
+ /**
60
+ * Who the caller is, from `GET /me`.
61
+ *
62
+ * Exists for `siteAdmin`. The server grants administrators free generation —
63
+ * no quota, no balance check, no charge — and the client has to know, because
64
+ * it does its own courtesy gating on the balance. Without it an administrator
65
+ * is refused by their own UI on a request the server would have accepted.
66
+ */
67
+ export type CurrentUser = {
68
+ userId: string;
69
+ email: string | null;
70
+ siteAdmin: boolean;
71
+ };
72
+ export type ProjectStatusResult = {
73
+ status: ProjectStatus;
74
+ /**
75
+ * A freshness signal, not a timestamp to display. A client compares it with
76
+ * the one its own last write returned; a difference means the server's copy
77
+ * moved under it and must be re-read.
78
+ */
79
+ updatedAt: string;
80
+ lastGenerationError: string | null;
81
+ parentSnapshotId: UUID | null;
82
+ };
83
+ /**
84
+ * A project pinned at a moment, which never changes again.
85
+ *
86
+ * Holds its **own full copy** of the score rather than a delta: reconstructing
87
+ * a version by replaying diffs is exactly the thing that quietly stops being
88
+ * reproducible, and immutability is the whole point here.
89
+ */
90
+ export type Snapshot = {
91
+ id: UUID;
92
+ projectId: UUID;
93
+ /** The snapshot this one grew from. Null for the first in a project. */
94
+ parentId: UUID | null;
95
+ name: string;
96
+ score: Score;
97
+ uiPrefs?: ProjectUiPrefs;
98
+ /**
99
+ * Set when published; the public URL is /p/<publicId>. Absent when not.
100
+ *
101
+ * Publishing is metadata about *sharing*, not part of the music — which is
102
+ * why it may change on a snapshot that otherwise never does.
103
+ */
104
+ publicId?: string;
105
+ /** Shown on the Community list. Never the account email. */
106
+ publisherName?: string;
107
+ createdAt: string;
108
+ };
109
+ /** What an anonymous visitor receives. Carries no owner identity, by construction. */
110
+ export type PublishedSnapshot = {
111
+ publicId: string;
112
+ name: string;
113
+ publisherName: string;
114
+ score: Score;
115
+ createdAt: string;
116
+ };
117
+ /** One row of the Community list. No score — the list would be enormous. */
118
+ export type CommunityItem = Omit<PublishedSnapshot, "score">;
119
+ /** A snapshot without its score — what the picker lists, so it stays cheap. */
120
+ export type SnapshotSummary = Omit<Snapshot, "score" | "uiPrefs">;
121
+ export type ProjectCreateRequest = {
122
+ name: string;
123
+ score: Score;
124
+ uiPrefs?: ProjectUiPrefs;
125
+ };
126
+ export type ProjectUpdateRequest = {
127
+ name?: string;
128
+ score?: Score;
129
+ uiPrefs?: ProjectUiPrefs;
130
+ };
131
+ /**
132
+ * Duplicating is a server-side copy: the score is read and written inside the
133
+ * database and never crosses the wire in either direction.
134
+ */
135
+ export type ProjectDuplicateRequest = {
136
+ /** Defaults to "<original name> (copy)". */
137
+ name?: string;
138
+ };
139
+ export type ProjectListQuery = {
140
+ search?: string;
141
+ sort?: "updatedAt" | "name";
142
+ };
143
+ export declare const projectUiPrefsSchema: z.ZodObject<{
144
+ zoom: z.ZodNumber;
145
+ visibleTrackIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
146
+ }, z.core.$strip>;
147
+ export declare const projectSummarySchema: z.ZodObject<{
148
+ id: z.ZodString;
149
+ name: z.ZodString;
150
+ createdAt: z.ZodString;
151
+ updatedAt: z.ZodString;
152
+ schemaVersion: z.ZodNumber;
153
+ }, z.core.$strip>;
154
+ export declare const projectSaveResultSchema: z.ZodObject<{
155
+ id: z.ZodString;
156
+ name: z.ZodString;
157
+ createdAt: z.ZodString;
158
+ updatedAt: z.ZodString;
159
+ schemaVersion: z.ZodNumber;
160
+ uiPrefs: z.ZodOptional<z.ZodObject<{
161
+ zoom: z.ZodNumber;
162
+ visibleTrackIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
163
+ }, z.core.$strip>>;
164
+ parentSnapshotId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
+ }, z.core.$strip>;
166
+ export declare const projectRecordSchema: z.ZodObject<{
167
+ id: z.ZodString;
168
+ name: z.ZodString;
169
+ createdAt: z.ZodString;
170
+ updatedAt: z.ZodString;
171
+ schemaVersion: z.ZodNumber;
172
+ uiPrefs: z.ZodOptional<z.ZodObject<{
173
+ zoom: z.ZodNumber;
174
+ visibleTrackIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
175
+ }, z.core.$strip>>;
176
+ parentSnapshotId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
177
+ score: z.ZodObject<{
178
+ id: z.ZodString;
179
+ version: z.ZodNumber;
180
+ ppq: z.ZodNumber;
181
+ metadata: z.ZodObject<{
182
+ title: z.ZodString;
183
+ composer: z.ZodOptional<z.ZodString>;
184
+ description: z.ZodOptional<z.ZodString>;
185
+ createdAt: z.ZodString;
186
+ updatedAt: z.ZodString;
187
+ }, z.core.$strip>;
188
+ tempoMap: z.ZodArray<z.ZodObject<{
189
+ id: z.ZodString;
190
+ tick: z.ZodNumber;
191
+ bpm: z.ZodNumber;
192
+ }, z.core.$strip>>;
193
+ tracks: z.ZodArray<z.ZodObject<{
194
+ id: z.ZodString;
195
+ name: z.ZodString;
196
+ instrumentName: z.ZodString;
197
+ midiProgram: z.ZodNumber;
198
+ midiChannel: z.ZodNumber;
199
+ clef: z.ZodEnum<{
200
+ treble: "treble";
201
+ bass: "bass";
202
+ alto: "alto";
203
+ tenor: "tenor";
204
+ percussion: "percussion";
205
+ }>;
206
+ volume: z.ZodNumber;
207
+ pan: z.ZodNumber;
208
+ muted: z.ZodBoolean;
209
+ solo: z.ZodBoolean;
210
+ measures: z.ZodArray<z.ZodObject<{
211
+ id: z.ZodString;
212
+ index: z.ZodNumber;
213
+ startTick: z.ZodNumber;
214
+ durationTicks: z.ZodNumber;
215
+ timeSignature: z.ZodObject<{
216
+ numerator: z.ZodNumber;
217
+ denominator: z.ZodNumber;
218
+ }, z.core.$strip>;
219
+ keySignature: z.ZodObject<{
220
+ fifths: z.ZodNumber;
221
+ mode: z.ZodEnum<{
222
+ major: "major";
223
+ minor: "minor";
224
+ }>;
225
+ }, z.core.$strip>;
226
+ voices: z.ZodArray<z.ZodObject<{
227
+ id: z.ZodString;
228
+ name: z.ZodString;
229
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
230
+ id: z.ZodString;
231
+ pitch: z.ZodObject<{
232
+ step: z.ZodEnum<{
233
+ C: "C";
234
+ D: "D";
235
+ E: "E";
236
+ F: "F";
237
+ G: "G";
238
+ A: "A";
239
+ B: "B";
240
+ }>;
241
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
242
+ octave: z.ZodNumber;
243
+ }, z.core.$strip>;
244
+ startTick: z.ZodNumber;
245
+ durationTicks: z.ZodNumber;
246
+ velocity: z.ZodNumber;
247
+ voiceId: z.ZodString;
248
+ trackId: z.ZodString;
249
+ tieStart: z.ZodOptional<z.ZodBoolean>;
250
+ tieStop: z.ZodOptional<z.ZodBoolean>;
251
+ articulation: z.ZodOptional<z.ZodEnum<{
252
+ staccato: "staccato";
253
+ accent: "accent";
254
+ tenuto: "tenuto";
255
+ marcato: "marcato";
256
+ }>>;
257
+ fermata: z.ZodOptional<z.ZodBoolean>;
258
+ ornament: z.ZodOptional<z.ZodEnum<{
259
+ trill: "trill";
260
+ mordent: "mordent";
261
+ "inverted-mordent": "inverted-mordent";
262
+ turn: "turn";
263
+ }>>;
264
+ dynamic: z.ZodOptional<z.ZodEnum<{
265
+ ppp: "ppp";
266
+ pp: "pp";
267
+ p: "p";
268
+ mp: "mp";
269
+ mf: "mf";
270
+ f: "f";
271
+ ff: "ff";
272
+ fff: "fff";
273
+ }>>;
274
+ slurStart: z.ZodOptional<z.ZodBoolean>;
275
+ slurStop: z.ZodOptional<z.ZodBoolean>;
276
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
277
+ crescendo: "crescendo";
278
+ diminuendo: "diminuendo";
279
+ }>>;
280
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
281
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
282
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
283
+ "8va": "8va";
284
+ "8vb": "8vb";
285
+ "15ma": "15ma";
286
+ "15mb": "15mb";
287
+ }>>;
288
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
289
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
290
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
291
+ fingering: z.ZodOptional<z.ZodString>;
292
+ chordSymbol: z.ZodOptional<z.ZodString>;
293
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
294
+ pitch: z.ZodObject<{
295
+ step: z.ZodEnum<{
296
+ C: "C";
297
+ D: "D";
298
+ E: "E";
299
+ F: "F";
300
+ G: "G";
301
+ A: "A";
302
+ B: "B";
303
+ }>;
304
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
305
+ octave: z.ZodNumber;
306
+ }, z.core.$strip>;
307
+ durationTicks: z.ZodNumber;
308
+ slashed: z.ZodOptional<z.ZodBoolean>;
309
+ }, z.core.$strip>>>;
310
+ lyric: z.ZodOptional<z.ZodObject<{
311
+ text: z.ZodString;
312
+ syllabic: z.ZodOptional<z.ZodEnum<{
313
+ single: "single";
314
+ begin: "begin";
315
+ middle: "middle";
316
+ end: "end";
317
+ }>>;
318
+ }, z.core.$strip>>;
319
+ }, z.core.$strict>, z.ZodObject<{
320
+ id: z.ZodString;
321
+ startTick: z.ZodNumber;
322
+ durationTicks: z.ZodNumber;
323
+ voiceId: z.ZodString;
324
+ trackId: z.ZodString;
325
+ }, z.core.$strict>]>>;
326
+ }, z.core.$strip>>;
327
+ multiMeasureRestCount: z.ZodOptional<z.ZodNumber>;
328
+ repeatStart: z.ZodOptional<z.ZodBoolean>;
329
+ repeatEnd: z.ZodOptional<z.ZodBoolean>;
330
+ endingNumbers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
331
+ rehearsalMark: z.ZodOptional<z.ZodString>;
332
+ cue: z.ZodOptional<z.ZodObject<{
333
+ label: z.ZodString;
334
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
335
+ id: z.ZodString;
336
+ pitch: z.ZodObject<{
337
+ step: z.ZodEnum<{
338
+ C: "C";
339
+ D: "D";
340
+ E: "E";
341
+ F: "F";
342
+ G: "G";
343
+ A: "A";
344
+ B: "B";
345
+ }>;
346
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
347
+ octave: z.ZodNumber;
348
+ }, z.core.$strip>;
349
+ startTick: z.ZodNumber;
350
+ durationTicks: z.ZodNumber;
351
+ velocity: z.ZodNumber;
352
+ voiceId: z.ZodString;
353
+ trackId: z.ZodString;
354
+ tieStart: z.ZodOptional<z.ZodBoolean>;
355
+ tieStop: z.ZodOptional<z.ZodBoolean>;
356
+ articulation: z.ZodOptional<z.ZodEnum<{
357
+ staccato: "staccato";
358
+ accent: "accent";
359
+ tenuto: "tenuto";
360
+ marcato: "marcato";
361
+ }>>;
362
+ fermata: z.ZodOptional<z.ZodBoolean>;
363
+ ornament: z.ZodOptional<z.ZodEnum<{
364
+ trill: "trill";
365
+ mordent: "mordent";
366
+ "inverted-mordent": "inverted-mordent";
367
+ turn: "turn";
368
+ }>>;
369
+ dynamic: z.ZodOptional<z.ZodEnum<{
370
+ ppp: "ppp";
371
+ pp: "pp";
372
+ p: "p";
373
+ mp: "mp";
374
+ mf: "mf";
375
+ f: "f";
376
+ ff: "ff";
377
+ fff: "fff";
378
+ }>>;
379
+ slurStart: z.ZodOptional<z.ZodBoolean>;
380
+ slurStop: z.ZodOptional<z.ZodBoolean>;
381
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
382
+ crescendo: "crescendo";
383
+ diminuendo: "diminuendo";
384
+ }>>;
385
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
386
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
387
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
388
+ "8va": "8va";
389
+ "8vb": "8vb";
390
+ "15ma": "15ma";
391
+ "15mb": "15mb";
392
+ }>>;
393
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
394
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
395
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
396
+ fingering: z.ZodOptional<z.ZodString>;
397
+ chordSymbol: z.ZodOptional<z.ZodString>;
398
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
399
+ pitch: z.ZodObject<{
400
+ step: z.ZodEnum<{
401
+ C: "C";
402
+ D: "D";
403
+ E: "E";
404
+ F: "F";
405
+ G: "G";
406
+ A: "A";
407
+ B: "B";
408
+ }>;
409
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
410
+ octave: z.ZodNumber;
411
+ }, z.core.$strip>;
412
+ durationTicks: z.ZodNumber;
413
+ slashed: z.ZodOptional<z.ZodBoolean>;
414
+ }, z.core.$strip>>>;
415
+ lyric: z.ZodOptional<z.ZodObject<{
416
+ text: z.ZodString;
417
+ syllabic: z.ZodOptional<z.ZodEnum<{
418
+ single: "single";
419
+ begin: "begin";
420
+ middle: "middle";
421
+ end: "end";
422
+ }>>;
423
+ }, z.core.$strip>>;
424
+ }, z.core.$strict>, z.ZodObject<{
425
+ id: z.ZodString;
426
+ startTick: z.ZodNumber;
427
+ durationTicks: z.ZodNumber;
428
+ voiceId: z.ZodString;
429
+ trackId: z.ZodString;
430
+ }, z.core.$strict>]>>;
431
+ }, z.core.$strip>>;
432
+ clef: z.ZodOptional<z.ZodEnum<{
433
+ treble: "treble";
434
+ bass: "bass";
435
+ alto: "alto";
436
+ tenor: "tenor";
437
+ percussion: "percussion";
438
+ }>>;
439
+ pickup: z.ZodOptional<z.ZodBoolean>;
440
+ barline: z.ZodOptional<z.ZodEnum<{
441
+ double: "double";
442
+ final: "final";
443
+ }>>;
444
+ segno: z.ZodOptional<z.ZodBoolean>;
445
+ coda: z.ZodOptional<z.ZodBoolean>;
446
+ toCoda: z.ZodOptional<z.ZodBoolean>;
447
+ fine: z.ZodOptional<z.ZodBoolean>;
448
+ jump: z.ZodOptional<z.ZodEnum<{
449
+ "da-capo": "da-capo";
450
+ "da-capo-al-fine": "da-capo-al-fine";
451
+ "da-capo-al-coda": "da-capo-al-coda";
452
+ "dal-segno": "dal-segno";
453
+ "dal-segno-al-fine": "dal-segno-al-fine";
454
+ "dal-segno-al-coda": "dal-segno-al-coda";
455
+ }>>;
456
+ }, z.core.$strip>>;
457
+ }, z.core.$strip>>;
458
+ }, z.core.$strip>;
459
+ }, z.core.$strip>;
460
+ export declare const snapshotSummarySchema: z.ZodObject<{
461
+ id: z.ZodString;
462
+ projectId: z.ZodString;
463
+ parentId: z.ZodNullable<z.ZodString>;
464
+ name: z.ZodString;
465
+ createdAt: z.ZodString;
466
+ publicId: z.ZodOptional<z.ZodString>;
467
+ publisherName: z.ZodOptional<z.ZodString>;
468
+ }, z.core.$strip>;
469
+ export declare const snapshotSchema: z.ZodObject<{
470
+ id: z.ZodString;
471
+ projectId: z.ZodString;
472
+ parentId: z.ZodNullable<z.ZodString>;
473
+ name: z.ZodString;
474
+ createdAt: z.ZodString;
475
+ publicId: z.ZodOptional<z.ZodString>;
476
+ publisherName: z.ZodOptional<z.ZodString>;
477
+ score: z.ZodObject<{
478
+ id: z.ZodString;
479
+ version: z.ZodNumber;
480
+ ppq: z.ZodNumber;
481
+ metadata: z.ZodObject<{
482
+ title: z.ZodString;
483
+ composer: z.ZodOptional<z.ZodString>;
484
+ description: z.ZodOptional<z.ZodString>;
485
+ createdAt: z.ZodString;
486
+ updatedAt: z.ZodString;
487
+ }, z.core.$strip>;
488
+ tempoMap: z.ZodArray<z.ZodObject<{
489
+ id: z.ZodString;
490
+ tick: z.ZodNumber;
491
+ bpm: z.ZodNumber;
492
+ }, z.core.$strip>>;
493
+ tracks: z.ZodArray<z.ZodObject<{
494
+ id: z.ZodString;
495
+ name: z.ZodString;
496
+ instrumentName: z.ZodString;
497
+ midiProgram: z.ZodNumber;
498
+ midiChannel: z.ZodNumber;
499
+ clef: z.ZodEnum<{
500
+ treble: "treble";
501
+ bass: "bass";
502
+ alto: "alto";
503
+ tenor: "tenor";
504
+ percussion: "percussion";
505
+ }>;
506
+ volume: z.ZodNumber;
507
+ pan: z.ZodNumber;
508
+ muted: z.ZodBoolean;
509
+ solo: z.ZodBoolean;
510
+ measures: z.ZodArray<z.ZodObject<{
511
+ id: z.ZodString;
512
+ index: z.ZodNumber;
513
+ startTick: z.ZodNumber;
514
+ durationTicks: z.ZodNumber;
515
+ timeSignature: z.ZodObject<{
516
+ numerator: z.ZodNumber;
517
+ denominator: z.ZodNumber;
518
+ }, z.core.$strip>;
519
+ keySignature: z.ZodObject<{
520
+ fifths: z.ZodNumber;
521
+ mode: z.ZodEnum<{
522
+ major: "major";
523
+ minor: "minor";
524
+ }>;
525
+ }, z.core.$strip>;
526
+ voices: z.ZodArray<z.ZodObject<{
527
+ id: z.ZodString;
528
+ name: z.ZodString;
529
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
530
+ id: z.ZodString;
531
+ pitch: z.ZodObject<{
532
+ step: z.ZodEnum<{
533
+ C: "C";
534
+ D: "D";
535
+ E: "E";
536
+ F: "F";
537
+ G: "G";
538
+ A: "A";
539
+ B: "B";
540
+ }>;
541
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
542
+ octave: z.ZodNumber;
543
+ }, z.core.$strip>;
544
+ startTick: z.ZodNumber;
545
+ durationTicks: z.ZodNumber;
546
+ velocity: z.ZodNumber;
547
+ voiceId: z.ZodString;
548
+ trackId: z.ZodString;
549
+ tieStart: z.ZodOptional<z.ZodBoolean>;
550
+ tieStop: z.ZodOptional<z.ZodBoolean>;
551
+ articulation: z.ZodOptional<z.ZodEnum<{
552
+ staccato: "staccato";
553
+ accent: "accent";
554
+ tenuto: "tenuto";
555
+ marcato: "marcato";
556
+ }>>;
557
+ fermata: z.ZodOptional<z.ZodBoolean>;
558
+ ornament: z.ZodOptional<z.ZodEnum<{
559
+ trill: "trill";
560
+ mordent: "mordent";
561
+ "inverted-mordent": "inverted-mordent";
562
+ turn: "turn";
563
+ }>>;
564
+ dynamic: z.ZodOptional<z.ZodEnum<{
565
+ ppp: "ppp";
566
+ pp: "pp";
567
+ p: "p";
568
+ mp: "mp";
569
+ mf: "mf";
570
+ f: "f";
571
+ ff: "ff";
572
+ fff: "fff";
573
+ }>>;
574
+ slurStart: z.ZodOptional<z.ZodBoolean>;
575
+ slurStop: z.ZodOptional<z.ZodBoolean>;
576
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
577
+ crescendo: "crescendo";
578
+ diminuendo: "diminuendo";
579
+ }>>;
580
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
581
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
582
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
583
+ "8va": "8va";
584
+ "8vb": "8vb";
585
+ "15ma": "15ma";
586
+ "15mb": "15mb";
587
+ }>>;
588
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
589
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
590
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
591
+ fingering: z.ZodOptional<z.ZodString>;
592
+ chordSymbol: z.ZodOptional<z.ZodString>;
593
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
594
+ pitch: z.ZodObject<{
595
+ step: z.ZodEnum<{
596
+ C: "C";
597
+ D: "D";
598
+ E: "E";
599
+ F: "F";
600
+ G: "G";
601
+ A: "A";
602
+ B: "B";
603
+ }>;
604
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
605
+ octave: z.ZodNumber;
606
+ }, z.core.$strip>;
607
+ durationTicks: z.ZodNumber;
608
+ slashed: z.ZodOptional<z.ZodBoolean>;
609
+ }, z.core.$strip>>>;
610
+ lyric: z.ZodOptional<z.ZodObject<{
611
+ text: z.ZodString;
612
+ syllabic: z.ZodOptional<z.ZodEnum<{
613
+ single: "single";
614
+ begin: "begin";
615
+ middle: "middle";
616
+ end: "end";
617
+ }>>;
618
+ }, z.core.$strip>>;
619
+ }, z.core.$strict>, z.ZodObject<{
620
+ id: z.ZodString;
621
+ startTick: z.ZodNumber;
622
+ durationTicks: z.ZodNumber;
623
+ voiceId: z.ZodString;
624
+ trackId: z.ZodString;
625
+ }, z.core.$strict>]>>;
626
+ }, z.core.$strip>>;
627
+ multiMeasureRestCount: z.ZodOptional<z.ZodNumber>;
628
+ repeatStart: z.ZodOptional<z.ZodBoolean>;
629
+ repeatEnd: z.ZodOptional<z.ZodBoolean>;
630
+ endingNumbers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
631
+ rehearsalMark: z.ZodOptional<z.ZodString>;
632
+ cue: z.ZodOptional<z.ZodObject<{
633
+ label: z.ZodString;
634
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
635
+ id: z.ZodString;
636
+ pitch: z.ZodObject<{
637
+ step: z.ZodEnum<{
638
+ C: "C";
639
+ D: "D";
640
+ E: "E";
641
+ F: "F";
642
+ G: "G";
643
+ A: "A";
644
+ B: "B";
645
+ }>;
646
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
647
+ octave: z.ZodNumber;
648
+ }, z.core.$strip>;
649
+ startTick: z.ZodNumber;
650
+ durationTicks: z.ZodNumber;
651
+ velocity: z.ZodNumber;
652
+ voiceId: z.ZodString;
653
+ trackId: z.ZodString;
654
+ tieStart: z.ZodOptional<z.ZodBoolean>;
655
+ tieStop: z.ZodOptional<z.ZodBoolean>;
656
+ articulation: z.ZodOptional<z.ZodEnum<{
657
+ staccato: "staccato";
658
+ accent: "accent";
659
+ tenuto: "tenuto";
660
+ marcato: "marcato";
661
+ }>>;
662
+ fermata: z.ZodOptional<z.ZodBoolean>;
663
+ ornament: z.ZodOptional<z.ZodEnum<{
664
+ trill: "trill";
665
+ mordent: "mordent";
666
+ "inverted-mordent": "inverted-mordent";
667
+ turn: "turn";
668
+ }>>;
669
+ dynamic: z.ZodOptional<z.ZodEnum<{
670
+ ppp: "ppp";
671
+ pp: "pp";
672
+ p: "p";
673
+ mp: "mp";
674
+ mf: "mf";
675
+ f: "f";
676
+ ff: "ff";
677
+ fff: "fff";
678
+ }>>;
679
+ slurStart: z.ZodOptional<z.ZodBoolean>;
680
+ slurStop: z.ZodOptional<z.ZodBoolean>;
681
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
682
+ crescendo: "crescendo";
683
+ diminuendo: "diminuendo";
684
+ }>>;
685
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
686
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
687
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
688
+ "8va": "8va";
689
+ "8vb": "8vb";
690
+ "15ma": "15ma";
691
+ "15mb": "15mb";
692
+ }>>;
693
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
694
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
695
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
696
+ fingering: z.ZodOptional<z.ZodString>;
697
+ chordSymbol: z.ZodOptional<z.ZodString>;
698
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
699
+ pitch: z.ZodObject<{
700
+ step: z.ZodEnum<{
701
+ C: "C";
702
+ D: "D";
703
+ E: "E";
704
+ F: "F";
705
+ G: "G";
706
+ A: "A";
707
+ B: "B";
708
+ }>;
709
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
710
+ octave: z.ZodNumber;
711
+ }, z.core.$strip>;
712
+ durationTicks: z.ZodNumber;
713
+ slashed: z.ZodOptional<z.ZodBoolean>;
714
+ }, z.core.$strip>>>;
715
+ lyric: z.ZodOptional<z.ZodObject<{
716
+ text: z.ZodString;
717
+ syllabic: z.ZodOptional<z.ZodEnum<{
718
+ single: "single";
719
+ begin: "begin";
720
+ middle: "middle";
721
+ end: "end";
722
+ }>>;
723
+ }, z.core.$strip>>;
724
+ }, z.core.$strict>, z.ZodObject<{
725
+ id: z.ZodString;
726
+ startTick: z.ZodNumber;
727
+ durationTicks: z.ZodNumber;
728
+ voiceId: z.ZodString;
729
+ trackId: z.ZodString;
730
+ }, z.core.$strict>]>>;
731
+ }, z.core.$strip>>;
732
+ clef: z.ZodOptional<z.ZodEnum<{
733
+ treble: "treble";
734
+ bass: "bass";
735
+ alto: "alto";
736
+ tenor: "tenor";
737
+ percussion: "percussion";
738
+ }>>;
739
+ pickup: z.ZodOptional<z.ZodBoolean>;
740
+ barline: z.ZodOptional<z.ZodEnum<{
741
+ double: "double";
742
+ final: "final";
743
+ }>>;
744
+ segno: z.ZodOptional<z.ZodBoolean>;
745
+ coda: z.ZodOptional<z.ZodBoolean>;
746
+ toCoda: z.ZodOptional<z.ZodBoolean>;
747
+ fine: z.ZodOptional<z.ZodBoolean>;
748
+ jump: z.ZodOptional<z.ZodEnum<{
749
+ "da-capo": "da-capo";
750
+ "da-capo-al-fine": "da-capo-al-fine";
751
+ "da-capo-al-coda": "da-capo-al-coda";
752
+ "dal-segno": "dal-segno";
753
+ "dal-segno-al-fine": "dal-segno-al-fine";
754
+ "dal-segno-al-coda": "dal-segno-al-coda";
755
+ }>>;
756
+ }, z.core.$strip>>;
757
+ }, z.core.$strip>>;
758
+ }, z.core.$strip>;
759
+ uiPrefs: z.ZodOptional<z.ZodObject<{
760
+ zoom: z.ZodNumber;
761
+ visibleTrackIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
762
+ }, z.core.$strip>>;
763
+ }, z.core.$strip>;
764
+ /** What an anonymous visitor receives. Carries no owner identity, by construction. */
765
+ export declare const publishedSnapshotSchema: z.ZodObject<{
766
+ publicId: z.ZodString;
767
+ name: z.ZodString;
768
+ publisherName: z.ZodString;
769
+ score: z.ZodObject<{
770
+ id: z.ZodString;
771
+ version: z.ZodNumber;
772
+ ppq: z.ZodNumber;
773
+ metadata: z.ZodObject<{
774
+ title: z.ZodString;
775
+ composer: z.ZodOptional<z.ZodString>;
776
+ description: z.ZodOptional<z.ZodString>;
777
+ createdAt: z.ZodString;
778
+ updatedAt: z.ZodString;
779
+ }, z.core.$strip>;
780
+ tempoMap: z.ZodArray<z.ZodObject<{
781
+ id: z.ZodString;
782
+ tick: z.ZodNumber;
783
+ bpm: z.ZodNumber;
784
+ }, z.core.$strip>>;
785
+ tracks: z.ZodArray<z.ZodObject<{
786
+ id: z.ZodString;
787
+ name: z.ZodString;
788
+ instrumentName: z.ZodString;
789
+ midiProgram: z.ZodNumber;
790
+ midiChannel: z.ZodNumber;
791
+ clef: z.ZodEnum<{
792
+ treble: "treble";
793
+ bass: "bass";
794
+ alto: "alto";
795
+ tenor: "tenor";
796
+ percussion: "percussion";
797
+ }>;
798
+ volume: z.ZodNumber;
799
+ pan: z.ZodNumber;
800
+ muted: z.ZodBoolean;
801
+ solo: z.ZodBoolean;
802
+ measures: z.ZodArray<z.ZodObject<{
803
+ id: z.ZodString;
804
+ index: z.ZodNumber;
805
+ startTick: z.ZodNumber;
806
+ durationTicks: z.ZodNumber;
807
+ timeSignature: z.ZodObject<{
808
+ numerator: z.ZodNumber;
809
+ denominator: z.ZodNumber;
810
+ }, z.core.$strip>;
811
+ keySignature: z.ZodObject<{
812
+ fifths: z.ZodNumber;
813
+ mode: z.ZodEnum<{
814
+ major: "major";
815
+ minor: "minor";
816
+ }>;
817
+ }, z.core.$strip>;
818
+ voices: z.ZodArray<z.ZodObject<{
819
+ id: z.ZodString;
820
+ name: z.ZodString;
821
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
822
+ id: z.ZodString;
823
+ pitch: z.ZodObject<{
824
+ step: z.ZodEnum<{
825
+ C: "C";
826
+ D: "D";
827
+ E: "E";
828
+ F: "F";
829
+ G: "G";
830
+ A: "A";
831
+ B: "B";
832
+ }>;
833
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
834
+ octave: z.ZodNumber;
835
+ }, z.core.$strip>;
836
+ startTick: z.ZodNumber;
837
+ durationTicks: z.ZodNumber;
838
+ velocity: z.ZodNumber;
839
+ voiceId: z.ZodString;
840
+ trackId: z.ZodString;
841
+ tieStart: z.ZodOptional<z.ZodBoolean>;
842
+ tieStop: z.ZodOptional<z.ZodBoolean>;
843
+ articulation: z.ZodOptional<z.ZodEnum<{
844
+ staccato: "staccato";
845
+ accent: "accent";
846
+ tenuto: "tenuto";
847
+ marcato: "marcato";
848
+ }>>;
849
+ fermata: z.ZodOptional<z.ZodBoolean>;
850
+ ornament: z.ZodOptional<z.ZodEnum<{
851
+ trill: "trill";
852
+ mordent: "mordent";
853
+ "inverted-mordent": "inverted-mordent";
854
+ turn: "turn";
855
+ }>>;
856
+ dynamic: z.ZodOptional<z.ZodEnum<{
857
+ ppp: "ppp";
858
+ pp: "pp";
859
+ p: "p";
860
+ mp: "mp";
861
+ mf: "mf";
862
+ f: "f";
863
+ ff: "ff";
864
+ fff: "fff";
865
+ }>>;
866
+ slurStart: z.ZodOptional<z.ZodBoolean>;
867
+ slurStop: z.ZodOptional<z.ZodBoolean>;
868
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
869
+ crescendo: "crescendo";
870
+ diminuendo: "diminuendo";
871
+ }>>;
872
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
873
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
874
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
875
+ "8va": "8va";
876
+ "8vb": "8vb";
877
+ "15ma": "15ma";
878
+ "15mb": "15mb";
879
+ }>>;
880
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
881
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
882
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
883
+ fingering: z.ZodOptional<z.ZodString>;
884
+ chordSymbol: z.ZodOptional<z.ZodString>;
885
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
886
+ pitch: z.ZodObject<{
887
+ step: z.ZodEnum<{
888
+ C: "C";
889
+ D: "D";
890
+ E: "E";
891
+ F: "F";
892
+ G: "G";
893
+ A: "A";
894
+ B: "B";
895
+ }>;
896
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
897
+ octave: z.ZodNumber;
898
+ }, z.core.$strip>;
899
+ durationTicks: z.ZodNumber;
900
+ slashed: z.ZodOptional<z.ZodBoolean>;
901
+ }, z.core.$strip>>>;
902
+ lyric: z.ZodOptional<z.ZodObject<{
903
+ text: z.ZodString;
904
+ syllabic: z.ZodOptional<z.ZodEnum<{
905
+ single: "single";
906
+ begin: "begin";
907
+ middle: "middle";
908
+ end: "end";
909
+ }>>;
910
+ }, z.core.$strip>>;
911
+ }, z.core.$strict>, z.ZodObject<{
912
+ id: z.ZodString;
913
+ startTick: z.ZodNumber;
914
+ durationTicks: z.ZodNumber;
915
+ voiceId: z.ZodString;
916
+ trackId: z.ZodString;
917
+ }, z.core.$strict>]>>;
918
+ }, z.core.$strip>>;
919
+ multiMeasureRestCount: z.ZodOptional<z.ZodNumber>;
920
+ repeatStart: z.ZodOptional<z.ZodBoolean>;
921
+ repeatEnd: z.ZodOptional<z.ZodBoolean>;
922
+ endingNumbers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
923
+ rehearsalMark: z.ZodOptional<z.ZodString>;
924
+ cue: z.ZodOptional<z.ZodObject<{
925
+ label: z.ZodString;
926
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
927
+ id: z.ZodString;
928
+ pitch: z.ZodObject<{
929
+ step: z.ZodEnum<{
930
+ C: "C";
931
+ D: "D";
932
+ E: "E";
933
+ F: "F";
934
+ G: "G";
935
+ A: "A";
936
+ B: "B";
937
+ }>;
938
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
939
+ octave: z.ZodNumber;
940
+ }, z.core.$strip>;
941
+ startTick: z.ZodNumber;
942
+ durationTicks: z.ZodNumber;
943
+ velocity: z.ZodNumber;
944
+ voiceId: z.ZodString;
945
+ trackId: z.ZodString;
946
+ tieStart: z.ZodOptional<z.ZodBoolean>;
947
+ tieStop: z.ZodOptional<z.ZodBoolean>;
948
+ articulation: z.ZodOptional<z.ZodEnum<{
949
+ staccato: "staccato";
950
+ accent: "accent";
951
+ tenuto: "tenuto";
952
+ marcato: "marcato";
953
+ }>>;
954
+ fermata: z.ZodOptional<z.ZodBoolean>;
955
+ ornament: z.ZodOptional<z.ZodEnum<{
956
+ trill: "trill";
957
+ mordent: "mordent";
958
+ "inverted-mordent": "inverted-mordent";
959
+ turn: "turn";
960
+ }>>;
961
+ dynamic: z.ZodOptional<z.ZodEnum<{
962
+ ppp: "ppp";
963
+ pp: "pp";
964
+ p: "p";
965
+ mp: "mp";
966
+ mf: "mf";
967
+ f: "f";
968
+ ff: "ff";
969
+ fff: "fff";
970
+ }>>;
971
+ slurStart: z.ZodOptional<z.ZodBoolean>;
972
+ slurStop: z.ZodOptional<z.ZodBoolean>;
973
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
974
+ crescendo: "crescendo";
975
+ diminuendo: "diminuendo";
976
+ }>>;
977
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
978
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
979
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
980
+ "8va": "8va";
981
+ "8vb": "8vb";
982
+ "15ma": "15ma";
983
+ "15mb": "15mb";
984
+ }>>;
985
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
986
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
987
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
988
+ fingering: z.ZodOptional<z.ZodString>;
989
+ chordSymbol: z.ZodOptional<z.ZodString>;
990
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
991
+ pitch: z.ZodObject<{
992
+ step: z.ZodEnum<{
993
+ C: "C";
994
+ D: "D";
995
+ E: "E";
996
+ F: "F";
997
+ G: "G";
998
+ A: "A";
999
+ B: "B";
1000
+ }>;
1001
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1002
+ octave: z.ZodNumber;
1003
+ }, z.core.$strip>;
1004
+ durationTicks: z.ZodNumber;
1005
+ slashed: z.ZodOptional<z.ZodBoolean>;
1006
+ }, z.core.$strip>>>;
1007
+ lyric: z.ZodOptional<z.ZodObject<{
1008
+ text: z.ZodString;
1009
+ syllabic: z.ZodOptional<z.ZodEnum<{
1010
+ single: "single";
1011
+ begin: "begin";
1012
+ middle: "middle";
1013
+ end: "end";
1014
+ }>>;
1015
+ }, z.core.$strip>>;
1016
+ }, z.core.$strict>, z.ZodObject<{
1017
+ id: z.ZodString;
1018
+ startTick: z.ZodNumber;
1019
+ durationTicks: z.ZodNumber;
1020
+ voiceId: z.ZodString;
1021
+ trackId: z.ZodString;
1022
+ }, z.core.$strict>]>>;
1023
+ }, z.core.$strip>>;
1024
+ clef: z.ZodOptional<z.ZodEnum<{
1025
+ treble: "treble";
1026
+ bass: "bass";
1027
+ alto: "alto";
1028
+ tenor: "tenor";
1029
+ percussion: "percussion";
1030
+ }>>;
1031
+ pickup: z.ZodOptional<z.ZodBoolean>;
1032
+ barline: z.ZodOptional<z.ZodEnum<{
1033
+ double: "double";
1034
+ final: "final";
1035
+ }>>;
1036
+ segno: z.ZodOptional<z.ZodBoolean>;
1037
+ coda: z.ZodOptional<z.ZodBoolean>;
1038
+ toCoda: z.ZodOptional<z.ZodBoolean>;
1039
+ fine: z.ZodOptional<z.ZodBoolean>;
1040
+ jump: z.ZodOptional<z.ZodEnum<{
1041
+ "da-capo": "da-capo";
1042
+ "da-capo-al-fine": "da-capo-al-fine";
1043
+ "da-capo-al-coda": "da-capo-al-coda";
1044
+ "dal-segno": "dal-segno";
1045
+ "dal-segno-al-fine": "dal-segno-al-fine";
1046
+ "dal-segno-al-coda": "dal-segno-al-coda";
1047
+ }>>;
1048
+ }, z.core.$strip>>;
1049
+ }, z.core.$strip>>;
1050
+ }, z.core.$strip>;
1051
+ createdAt: z.ZodString;
1052
+ }, z.core.$strip>;
1053
+ /** One row of the Community list. No score — the list would be enormous. */
1054
+ export declare const communityItemSchema: z.ZodObject<{
1055
+ name: z.ZodString;
1056
+ createdAt: z.ZodString;
1057
+ publicId: z.ZodString;
1058
+ publisherName: z.ZodString;
1059
+ }, z.core.$strip>;
1060
+ export declare const publishRequestSchema: z.ZodObject<{
1061
+ publisherName: z.ZodString;
1062
+ }, z.core.$strip>;
1063
+ export declare const snapshotCreateRequestSchema: z.ZodObject<{
1064
+ name: z.ZodString;
1065
+ }, z.core.$strip>;
1066
+ export declare const projectCreateRequestSchema: z.ZodObject<{
1067
+ name: z.ZodString;
1068
+ score: z.ZodObject<{
1069
+ id: z.ZodString;
1070
+ version: z.ZodNumber;
1071
+ ppq: z.ZodNumber;
1072
+ metadata: z.ZodObject<{
1073
+ title: z.ZodString;
1074
+ composer: z.ZodOptional<z.ZodString>;
1075
+ description: z.ZodOptional<z.ZodString>;
1076
+ createdAt: z.ZodString;
1077
+ updatedAt: z.ZodString;
1078
+ }, z.core.$strip>;
1079
+ tempoMap: z.ZodArray<z.ZodObject<{
1080
+ id: z.ZodString;
1081
+ tick: z.ZodNumber;
1082
+ bpm: z.ZodNumber;
1083
+ }, z.core.$strip>>;
1084
+ tracks: z.ZodArray<z.ZodObject<{
1085
+ id: z.ZodString;
1086
+ name: z.ZodString;
1087
+ instrumentName: z.ZodString;
1088
+ midiProgram: z.ZodNumber;
1089
+ midiChannel: z.ZodNumber;
1090
+ clef: z.ZodEnum<{
1091
+ treble: "treble";
1092
+ bass: "bass";
1093
+ alto: "alto";
1094
+ tenor: "tenor";
1095
+ percussion: "percussion";
1096
+ }>;
1097
+ volume: z.ZodNumber;
1098
+ pan: z.ZodNumber;
1099
+ muted: z.ZodBoolean;
1100
+ solo: z.ZodBoolean;
1101
+ measures: z.ZodArray<z.ZodObject<{
1102
+ id: z.ZodString;
1103
+ index: z.ZodNumber;
1104
+ startTick: z.ZodNumber;
1105
+ durationTicks: z.ZodNumber;
1106
+ timeSignature: z.ZodObject<{
1107
+ numerator: z.ZodNumber;
1108
+ denominator: z.ZodNumber;
1109
+ }, z.core.$strip>;
1110
+ keySignature: z.ZodObject<{
1111
+ fifths: z.ZodNumber;
1112
+ mode: z.ZodEnum<{
1113
+ major: "major";
1114
+ minor: "minor";
1115
+ }>;
1116
+ }, z.core.$strip>;
1117
+ voices: z.ZodArray<z.ZodObject<{
1118
+ id: z.ZodString;
1119
+ name: z.ZodString;
1120
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1121
+ id: z.ZodString;
1122
+ pitch: z.ZodObject<{
1123
+ step: z.ZodEnum<{
1124
+ C: "C";
1125
+ D: "D";
1126
+ E: "E";
1127
+ F: "F";
1128
+ G: "G";
1129
+ A: "A";
1130
+ B: "B";
1131
+ }>;
1132
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1133
+ octave: z.ZodNumber;
1134
+ }, z.core.$strip>;
1135
+ startTick: z.ZodNumber;
1136
+ durationTicks: z.ZodNumber;
1137
+ velocity: z.ZodNumber;
1138
+ voiceId: z.ZodString;
1139
+ trackId: z.ZodString;
1140
+ tieStart: z.ZodOptional<z.ZodBoolean>;
1141
+ tieStop: z.ZodOptional<z.ZodBoolean>;
1142
+ articulation: z.ZodOptional<z.ZodEnum<{
1143
+ staccato: "staccato";
1144
+ accent: "accent";
1145
+ tenuto: "tenuto";
1146
+ marcato: "marcato";
1147
+ }>>;
1148
+ fermata: z.ZodOptional<z.ZodBoolean>;
1149
+ ornament: z.ZodOptional<z.ZodEnum<{
1150
+ trill: "trill";
1151
+ mordent: "mordent";
1152
+ "inverted-mordent": "inverted-mordent";
1153
+ turn: "turn";
1154
+ }>>;
1155
+ dynamic: z.ZodOptional<z.ZodEnum<{
1156
+ ppp: "ppp";
1157
+ pp: "pp";
1158
+ p: "p";
1159
+ mp: "mp";
1160
+ mf: "mf";
1161
+ f: "f";
1162
+ ff: "ff";
1163
+ fff: "fff";
1164
+ }>>;
1165
+ slurStart: z.ZodOptional<z.ZodBoolean>;
1166
+ slurStop: z.ZodOptional<z.ZodBoolean>;
1167
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
1168
+ crescendo: "crescendo";
1169
+ diminuendo: "diminuendo";
1170
+ }>>;
1171
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
1172
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
1173
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
1174
+ "8va": "8va";
1175
+ "8vb": "8vb";
1176
+ "15ma": "15ma";
1177
+ "15mb": "15mb";
1178
+ }>>;
1179
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
1180
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
1181
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
1182
+ fingering: z.ZodOptional<z.ZodString>;
1183
+ chordSymbol: z.ZodOptional<z.ZodString>;
1184
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
1185
+ pitch: z.ZodObject<{
1186
+ step: z.ZodEnum<{
1187
+ C: "C";
1188
+ D: "D";
1189
+ E: "E";
1190
+ F: "F";
1191
+ G: "G";
1192
+ A: "A";
1193
+ B: "B";
1194
+ }>;
1195
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1196
+ octave: z.ZodNumber;
1197
+ }, z.core.$strip>;
1198
+ durationTicks: z.ZodNumber;
1199
+ slashed: z.ZodOptional<z.ZodBoolean>;
1200
+ }, z.core.$strip>>>;
1201
+ lyric: z.ZodOptional<z.ZodObject<{
1202
+ text: z.ZodString;
1203
+ syllabic: z.ZodOptional<z.ZodEnum<{
1204
+ single: "single";
1205
+ begin: "begin";
1206
+ middle: "middle";
1207
+ end: "end";
1208
+ }>>;
1209
+ }, z.core.$strip>>;
1210
+ }, z.core.$strict>, z.ZodObject<{
1211
+ id: z.ZodString;
1212
+ startTick: z.ZodNumber;
1213
+ durationTicks: z.ZodNumber;
1214
+ voiceId: z.ZodString;
1215
+ trackId: z.ZodString;
1216
+ }, z.core.$strict>]>>;
1217
+ }, z.core.$strip>>;
1218
+ multiMeasureRestCount: z.ZodOptional<z.ZodNumber>;
1219
+ repeatStart: z.ZodOptional<z.ZodBoolean>;
1220
+ repeatEnd: z.ZodOptional<z.ZodBoolean>;
1221
+ endingNumbers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1222
+ rehearsalMark: z.ZodOptional<z.ZodString>;
1223
+ cue: z.ZodOptional<z.ZodObject<{
1224
+ label: z.ZodString;
1225
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1226
+ id: z.ZodString;
1227
+ pitch: z.ZodObject<{
1228
+ step: z.ZodEnum<{
1229
+ C: "C";
1230
+ D: "D";
1231
+ E: "E";
1232
+ F: "F";
1233
+ G: "G";
1234
+ A: "A";
1235
+ B: "B";
1236
+ }>;
1237
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1238
+ octave: z.ZodNumber;
1239
+ }, z.core.$strip>;
1240
+ startTick: z.ZodNumber;
1241
+ durationTicks: z.ZodNumber;
1242
+ velocity: z.ZodNumber;
1243
+ voiceId: z.ZodString;
1244
+ trackId: z.ZodString;
1245
+ tieStart: z.ZodOptional<z.ZodBoolean>;
1246
+ tieStop: z.ZodOptional<z.ZodBoolean>;
1247
+ articulation: z.ZodOptional<z.ZodEnum<{
1248
+ staccato: "staccato";
1249
+ accent: "accent";
1250
+ tenuto: "tenuto";
1251
+ marcato: "marcato";
1252
+ }>>;
1253
+ fermata: z.ZodOptional<z.ZodBoolean>;
1254
+ ornament: z.ZodOptional<z.ZodEnum<{
1255
+ trill: "trill";
1256
+ mordent: "mordent";
1257
+ "inverted-mordent": "inverted-mordent";
1258
+ turn: "turn";
1259
+ }>>;
1260
+ dynamic: z.ZodOptional<z.ZodEnum<{
1261
+ ppp: "ppp";
1262
+ pp: "pp";
1263
+ p: "p";
1264
+ mp: "mp";
1265
+ mf: "mf";
1266
+ f: "f";
1267
+ ff: "ff";
1268
+ fff: "fff";
1269
+ }>>;
1270
+ slurStart: z.ZodOptional<z.ZodBoolean>;
1271
+ slurStop: z.ZodOptional<z.ZodBoolean>;
1272
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
1273
+ crescendo: "crescendo";
1274
+ diminuendo: "diminuendo";
1275
+ }>>;
1276
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
1277
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
1278
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
1279
+ "8va": "8va";
1280
+ "8vb": "8vb";
1281
+ "15ma": "15ma";
1282
+ "15mb": "15mb";
1283
+ }>>;
1284
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
1285
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
1286
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
1287
+ fingering: z.ZodOptional<z.ZodString>;
1288
+ chordSymbol: z.ZodOptional<z.ZodString>;
1289
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
1290
+ pitch: z.ZodObject<{
1291
+ step: z.ZodEnum<{
1292
+ C: "C";
1293
+ D: "D";
1294
+ E: "E";
1295
+ F: "F";
1296
+ G: "G";
1297
+ A: "A";
1298
+ B: "B";
1299
+ }>;
1300
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1301
+ octave: z.ZodNumber;
1302
+ }, z.core.$strip>;
1303
+ durationTicks: z.ZodNumber;
1304
+ slashed: z.ZodOptional<z.ZodBoolean>;
1305
+ }, z.core.$strip>>>;
1306
+ lyric: z.ZodOptional<z.ZodObject<{
1307
+ text: z.ZodString;
1308
+ syllabic: z.ZodOptional<z.ZodEnum<{
1309
+ single: "single";
1310
+ begin: "begin";
1311
+ middle: "middle";
1312
+ end: "end";
1313
+ }>>;
1314
+ }, z.core.$strip>>;
1315
+ }, z.core.$strict>, z.ZodObject<{
1316
+ id: z.ZodString;
1317
+ startTick: z.ZodNumber;
1318
+ durationTicks: z.ZodNumber;
1319
+ voiceId: z.ZodString;
1320
+ trackId: z.ZodString;
1321
+ }, z.core.$strict>]>>;
1322
+ }, z.core.$strip>>;
1323
+ clef: z.ZodOptional<z.ZodEnum<{
1324
+ treble: "treble";
1325
+ bass: "bass";
1326
+ alto: "alto";
1327
+ tenor: "tenor";
1328
+ percussion: "percussion";
1329
+ }>>;
1330
+ pickup: z.ZodOptional<z.ZodBoolean>;
1331
+ barline: z.ZodOptional<z.ZodEnum<{
1332
+ double: "double";
1333
+ final: "final";
1334
+ }>>;
1335
+ segno: z.ZodOptional<z.ZodBoolean>;
1336
+ coda: z.ZodOptional<z.ZodBoolean>;
1337
+ toCoda: z.ZodOptional<z.ZodBoolean>;
1338
+ fine: z.ZodOptional<z.ZodBoolean>;
1339
+ jump: z.ZodOptional<z.ZodEnum<{
1340
+ "da-capo": "da-capo";
1341
+ "da-capo-al-fine": "da-capo-al-fine";
1342
+ "da-capo-al-coda": "da-capo-al-coda";
1343
+ "dal-segno": "dal-segno";
1344
+ "dal-segno-al-fine": "dal-segno-al-fine";
1345
+ "dal-segno-al-coda": "dal-segno-al-coda";
1346
+ }>>;
1347
+ }, z.core.$strip>>;
1348
+ }, z.core.$strip>>;
1349
+ }, z.core.$strip>;
1350
+ uiPrefs: z.ZodOptional<z.ZodObject<{
1351
+ zoom: z.ZodNumber;
1352
+ visibleTrackIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1353
+ }, z.core.$strip>>;
1354
+ }, z.core.$strip>;
1355
+ export declare const projectUpdateRequestSchema: z.ZodObject<{
1356
+ name: z.ZodOptional<z.ZodString>;
1357
+ score: z.ZodOptional<z.ZodObject<{
1358
+ id: z.ZodString;
1359
+ version: z.ZodNumber;
1360
+ ppq: z.ZodNumber;
1361
+ metadata: z.ZodObject<{
1362
+ title: z.ZodString;
1363
+ composer: z.ZodOptional<z.ZodString>;
1364
+ description: z.ZodOptional<z.ZodString>;
1365
+ createdAt: z.ZodString;
1366
+ updatedAt: z.ZodString;
1367
+ }, z.core.$strip>;
1368
+ tempoMap: z.ZodArray<z.ZodObject<{
1369
+ id: z.ZodString;
1370
+ tick: z.ZodNumber;
1371
+ bpm: z.ZodNumber;
1372
+ }, z.core.$strip>>;
1373
+ tracks: z.ZodArray<z.ZodObject<{
1374
+ id: z.ZodString;
1375
+ name: z.ZodString;
1376
+ instrumentName: z.ZodString;
1377
+ midiProgram: z.ZodNumber;
1378
+ midiChannel: z.ZodNumber;
1379
+ clef: z.ZodEnum<{
1380
+ treble: "treble";
1381
+ bass: "bass";
1382
+ alto: "alto";
1383
+ tenor: "tenor";
1384
+ percussion: "percussion";
1385
+ }>;
1386
+ volume: z.ZodNumber;
1387
+ pan: z.ZodNumber;
1388
+ muted: z.ZodBoolean;
1389
+ solo: z.ZodBoolean;
1390
+ measures: z.ZodArray<z.ZodObject<{
1391
+ id: z.ZodString;
1392
+ index: z.ZodNumber;
1393
+ startTick: z.ZodNumber;
1394
+ durationTicks: z.ZodNumber;
1395
+ timeSignature: z.ZodObject<{
1396
+ numerator: z.ZodNumber;
1397
+ denominator: z.ZodNumber;
1398
+ }, z.core.$strip>;
1399
+ keySignature: z.ZodObject<{
1400
+ fifths: z.ZodNumber;
1401
+ mode: z.ZodEnum<{
1402
+ major: "major";
1403
+ minor: "minor";
1404
+ }>;
1405
+ }, z.core.$strip>;
1406
+ voices: z.ZodArray<z.ZodObject<{
1407
+ id: z.ZodString;
1408
+ name: z.ZodString;
1409
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1410
+ id: z.ZodString;
1411
+ pitch: z.ZodObject<{
1412
+ step: z.ZodEnum<{
1413
+ C: "C";
1414
+ D: "D";
1415
+ E: "E";
1416
+ F: "F";
1417
+ G: "G";
1418
+ A: "A";
1419
+ B: "B";
1420
+ }>;
1421
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1422
+ octave: z.ZodNumber;
1423
+ }, z.core.$strip>;
1424
+ startTick: z.ZodNumber;
1425
+ durationTicks: z.ZodNumber;
1426
+ velocity: z.ZodNumber;
1427
+ voiceId: z.ZodString;
1428
+ trackId: z.ZodString;
1429
+ tieStart: z.ZodOptional<z.ZodBoolean>;
1430
+ tieStop: z.ZodOptional<z.ZodBoolean>;
1431
+ articulation: z.ZodOptional<z.ZodEnum<{
1432
+ staccato: "staccato";
1433
+ accent: "accent";
1434
+ tenuto: "tenuto";
1435
+ marcato: "marcato";
1436
+ }>>;
1437
+ fermata: z.ZodOptional<z.ZodBoolean>;
1438
+ ornament: z.ZodOptional<z.ZodEnum<{
1439
+ trill: "trill";
1440
+ mordent: "mordent";
1441
+ "inverted-mordent": "inverted-mordent";
1442
+ turn: "turn";
1443
+ }>>;
1444
+ dynamic: z.ZodOptional<z.ZodEnum<{
1445
+ ppp: "ppp";
1446
+ pp: "pp";
1447
+ p: "p";
1448
+ mp: "mp";
1449
+ mf: "mf";
1450
+ f: "f";
1451
+ ff: "ff";
1452
+ fff: "fff";
1453
+ }>>;
1454
+ slurStart: z.ZodOptional<z.ZodBoolean>;
1455
+ slurStop: z.ZodOptional<z.ZodBoolean>;
1456
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
1457
+ crescendo: "crescendo";
1458
+ diminuendo: "diminuendo";
1459
+ }>>;
1460
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
1461
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
1462
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
1463
+ "8va": "8va";
1464
+ "8vb": "8vb";
1465
+ "15ma": "15ma";
1466
+ "15mb": "15mb";
1467
+ }>>;
1468
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
1469
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
1470
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
1471
+ fingering: z.ZodOptional<z.ZodString>;
1472
+ chordSymbol: z.ZodOptional<z.ZodString>;
1473
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
1474
+ pitch: z.ZodObject<{
1475
+ step: z.ZodEnum<{
1476
+ C: "C";
1477
+ D: "D";
1478
+ E: "E";
1479
+ F: "F";
1480
+ G: "G";
1481
+ A: "A";
1482
+ B: "B";
1483
+ }>;
1484
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1485
+ octave: z.ZodNumber;
1486
+ }, z.core.$strip>;
1487
+ durationTicks: z.ZodNumber;
1488
+ slashed: z.ZodOptional<z.ZodBoolean>;
1489
+ }, z.core.$strip>>>;
1490
+ lyric: z.ZodOptional<z.ZodObject<{
1491
+ text: z.ZodString;
1492
+ syllabic: z.ZodOptional<z.ZodEnum<{
1493
+ single: "single";
1494
+ begin: "begin";
1495
+ middle: "middle";
1496
+ end: "end";
1497
+ }>>;
1498
+ }, z.core.$strip>>;
1499
+ }, z.core.$strict>, z.ZodObject<{
1500
+ id: z.ZodString;
1501
+ startTick: z.ZodNumber;
1502
+ durationTicks: z.ZodNumber;
1503
+ voiceId: z.ZodString;
1504
+ trackId: z.ZodString;
1505
+ }, z.core.$strict>]>>;
1506
+ }, z.core.$strip>>;
1507
+ multiMeasureRestCount: z.ZodOptional<z.ZodNumber>;
1508
+ repeatStart: z.ZodOptional<z.ZodBoolean>;
1509
+ repeatEnd: z.ZodOptional<z.ZodBoolean>;
1510
+ endingNumbers: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1511
+ rehearsalMark: z.ZodOptional<z.ZodString>;
1512
+ cue: z.ZodOptional<z.ZodObject<{
1513
+ label: z.ZodString;
1514
+ events: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1515
+ id: z.ZodString;
1516
+ pitch: z.ZodObject<{
1517
+ step: z.ZodEnum<{
1518
+ C: "C";
1519
+ D: "D";
1520
+ E: "E";
1521
+ F: "F";
1522
+ G: "G";
1523
+ A: "A";
1524
+ B: "B";
1525
+ }>;
1526
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1527
+ octave: z.ZodNumber;
1528
+ }, z.core.$strip>;
1529
+ startTick: z.ZodNumber;
1530
+ durationTicks: z.ZodNumber;
1531
+ velocity: z.ZodNumber;
1532
+ voiceId: z.ZodString;
1533
+ trackId: z.ZodString;
1534
+ tieStart: z.ZodOptional<z.ZodBoolean>;
1535
+ tieStop: z.ZodOptional<z.ZodBoolean>;
1536
+ articulation: z.ZodOptional<z.ZodEnum<{
1537
+ staccato: "staccato";
1538
+ accent: "accent";
1539
+ tenuto: "tenuto";
1540
+ marcato: "marcato";
1541
+ }>>;
1542
+ fermata: z.ZodOptional<z.ZodBoolean>;
1543
+ ornament: z.ZodOptional<z.ZodEnum<{
1544
+ trill: "trill";
1545
+ mordent: "mordent";
1546
+ "inverted-mordent": "inverted-mordent";
1547
+ turn: "turn";
1548
+ }>>;
1549
+ dynamic: z.ZodOptional<z.ZodEnum<{
1550
+ ppp: "ppp";
1551
+ pp: "pp";
1552
+ p: "p";
1553
+ mp: "mp";
1554
+ mf: "mf";
1555
+ f: "f";
1556
+ ff: "ff";
1557
+ fff: "fff";
1558
+ }>>;
1559
+ slurStart: z.ZodOptional<z.ZodBoolean>;
1560
+ slurStop: z.ZodOptional<z.ZodBoolean>;
1561
+ hairpinStart: z.ZodOptional<z.ZodEnum<{
1562
+ crescendo: "crescendo";
1563
+ diminuendo: "diminuendo";
1564
+ }>>;
1565
+ hairpinStop: z.ZodOptional<z.ZodBoolean>;
1566
+ arpeggiate: z.ZodOptional<z.ZodBoolean>;
1567
+ ottavaStart: z.ZodOptional<z.ZodEnum<{
1568
+ "8va": "8va";
1569
+ "8vb": "8vb";
1570
+ "15ma": "15ma";
1571
+ "15mb": "15mb";
1572
+ }>>;
1573
+ ottavaStop: z.ZodOptional<z.ZodBoolean>;
1574
+ glissandoStart: z.ZodOptional<z.ZodBoolean>;
1575
+ glissandoStop: z.ZodOptional<z.ZodBoolean>;
1576
+ fingering: z.ZodOptional<z.ZodString>;
1577
+ chordSymbol: z.ZodOptional<z.ZodString>;
1578
+ graceNotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
1579
+ pitch: z.ZodObject<{
1580
+ step: z.ZodEnum<{
1581
+ C: "C";
1582
+ D: "D";
1583
+ E: "E";
1584
+ F: "F";
1585
+ G: "G";
1586
+ A: "A";
1587
+ B: "B";
1588
+ }>;
1589
+ accidental: z.ZodUnion<readonly [z.ZodLiteral<-2>, z.ZodLiteral<-1>, z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
1590
+ octave: z.ZodNumber;
1591
+ }, z.core.$strip>;
1592
+ durationTicks: z.ZodNumber;
1593
+ slashed: z.ZodOptional<z.ZodBoolean>;
1594
+ }, z.core.$strip>>>;
1595
+ lyric: z.ZodOptional<z.ZodObject<{
1596
+ text: z.ZodString;
1597
+ syllabic: z.ZodOptional<z.ZodEnum<{
1598
+ single: "single";
1599
+ begin: "begin";
1600
+ middle: "middle";
1601
+ end: "end";
1602
+ }>>;
1603
+ }, z.core.$strip>>;
1604
+ }, z.core.$strict>, z.ZodObject<{
1605
+ id: z.ZodString;
1606
+ startTick: z.ZodNumber;
1607
+ durationTicks: z.ZodNumber;
1608
+ voiceId: z.ZodString;
1609
+ trackId: z.ZodString;
1610
+ }, z.core.$strict>]>>;
1611
+ }, z.core.$strip>>;
1612
+ clef: z.ZodOptional<z.ZodEnum<{
1613
+ treble: "treble";
1614
+ bass: "bass";
1615
+ alto: "alto";
1616
+ tenor: "tenor";
1617
+ percussion: "percussion";
1618
+ }>>;
1619
+ pickup: z.ZodOptional<z.ZodBoolean>;
1620
+ barline: z.ZodOptional<z.ZodEnum<{
1621
+ double: "double";
1622
+ final: "final";
1623
+ }>>;
1624
+ segno: z.ZodOptional<z.ZodBoolean>;
1625
+ coda: z.ZodOptional<z.ZodBoolean>;
1626
+ toCoda: z.ZodOptional<z.ZodBoolean>;
1627
+ fine: z.ZodOptional<z.ZodBoolean>;
1628
+ jump: z.ZodOptional<z.ZodEnum<{
1629
+ "da-capo": "da-capo";
1630
+ "da-capo-al-fine": "da-capo-al-fine";
1631
+ "da-capo-al-coda": "da-capo-al-coda";
1632
+ "dal-segno": "dal-segno";
1633
+ "dal-segno-al-fine": "dal-segno-al-fine";
1634
+ "dal-segno-al-coda": "dal-segno-al-coda";
1635
+ }>>;
1636
+ }, z.core.$strip>>;
1637
+ }, z.core.$strip>>;
1638
+ }, z.core.$strip>>;
1639
+ uiPrefs: z.ZodOptional<z.ZodObject<{
1640
+ zoom: z.ZodNumber;
1641
+ visibleTrackIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1642
+ }, z.core.$strip>>;
1643
+ }, z.core.$strip>;
1644
+ /**
1645
+ * Duplicating is a server-side copy. The score never leaves the database, so
1646
+ * the request carries only the new name (absent = "<name> (copy)").
1647
+ */
1648
+ export declare const projectDuplicateRequestSchema: z.ZodObject<{
1649
+ name: z.ZodOptional<z.ZodString>;
1650
+ }, z.core.$strip>;
1651
+ export declare const projectListQuerySchema: z.ZodObject<{
1652
+ search: z.ZodOptional<z.ZodString>;
1653
+ sort: z.ZodOptional<z.ZodEnum<{
1654
+ name: "name";
1655
+ updatedAt: "updatedAt";
1656
+ }>>;
1657
+ }, z.core.$strip>;
1658
+ export declare const API_ERROR_CODES: {
1659
+ readonly QUOTA_EXCEEDED: "QUOTA_EXCEEDED";
1660
+ readonly AI_GENERATION_FAILED: "AI_GENERATION_FAILED";
1661
+ readonly AI_OUTPUT_INVALID: "AI_OUTPUT_INVALID";
1662
+ readonly PROJECT_NOT_FOUND: "PROJECT_NOT_FOUND";
1663
+ readonly UNAUTHORIZED: "UNAUTHORIZED";
1664
+ /**
1665
+ * The project is owned by a running generation job and cannot be written.
1666
+ * Distinct from a generic failure so a client can tell "busy, try later"
1667
+ * from "something broke" — an autosave should quietly stand down, not
1668
+ * surface an error.
1669
+ */
1670
+ readonly PROJECT_GENERATING: "PROJECT_GENERATING";
1671
+ /**
1672
+ * No transcription service is configured on this deployment.
1673
+ *
1674
+ * Distinct from a failure so the client can say "this server cannot
1675
+ * transcribe audio" and hide the option, rather than reporting a breakage.
1676
+ */
1677
+ readonly TRANSCRIPTION_UNAVAILABLE: "TRANSCRIPTION_UNAVAILABLE";
1678
+ /**
1679
+ * The user has no credits left. Distinct from a quota refusal: a quota is a
1680
+ * rate limit that lifts on its own, and this does not — it lifts when the
1681
+ * user buys more, which is a different thing to tell them.
1682
+ */
1683
+ readonly INSUFFICIENT_CREDITS: "INSUFFICIENT_CREDITS";
1684
+ };
1685
+ export type ApiErrorCode = (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES];
1686
+ export type ApiResponse<T> = {
1687
+ success: boolean;
1688
+ data?: T;
1689
+ error?: string;
1690
+ code?: ApiErrorCode;
1691
+ };
1692
+ /** Wraps payload data in the standard success envelope. */
1693
+ export declare function successResponse<T>(data: T): ApiResponse<T>;
1694
+ /** Wraps an error message (and optional typed code) in the standard error envelope. */
1695
+ export declare function errorResponse(message: string, code?: ApiErrorCode): ApiResponse<never>;
1696
+ //# sourceMappingURL=api.d.ts.map