@cueframe/studio-convex 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2887 @@
1
+ import * as convex_server from 'convex/server';
2
+ import { makeFunctionReference } from 'convex/server';
3
+ import { StudioOperationId, STUDIO_OPERATIONS, StudioOperationInput, StudioOperationResult, StudioError } from '@cueframe/studio-contracts';
4
+ import { ConvexReactClient } from 'convex/react';
5
+
6
+ /** Reviewed hosted-provider paths. This is the only provider-specific catalog. */
7
+ declare const STUDIO_FUNCTION_PATHS: {
8
+ readonly compatibility: "studio/v1/compatibility:get";
9
+ readonly sessionCurrent: "studio/v1/session:current";
10
+ readonly assistantResolveThread: "studio/v1/assistant:resolveThread";
11
+ readonly assistantForgetConversation: "studio/v1/assistant:forgetConversation";
12
+ readonly assistantSend: "studio/v1/assistant:send";
13
+ readonly assistantMessages: "studio/v1/assistant:messages";
14
+ readonly projectsList: "studio/v1/projects:list";
15
+ readonly projectsSnapshot: "studio/v1/projects:snapshot";
16
+ readonly projectsCreate: "studio/v1/projects:create";
17
+ readonly projectsUpdate: "studio/v1/projects:update";
18
+ readonly projectsRemove: "studio/v1/projects:remove";
19
+ readonly compositionsApply: "studio/v1/compositions:apply";
20
+ readonly compositionsReplace: "studio/v1/compositions:replace";
21
+ readonly mediaList: "studio/v1/media:list";
22
+ readonly mediaRemove: "studio/v1/media:remove";
23
+ readonly mediaCancelProcessing: "studio/v1/media:cancelProcessing";
24
+ readonly mediaReprocess: "studio/v1/media:reprocess";
25
+ readonly mediaListUnderstanding: "studio/v1/media:listUnderstanding";
26
+ readonly mediaSearch: "studio/v1/media:search";
27
+ readonly mediaAnalyzeTimeline: "studio/v1/media:analyzeTimeline";
28
+ readonly mediaFacts: "studio/v1/media:facts";
29
+ readonly mediaPurchaseFact: "studio/v1/media:purchaseFact";
30
+ readonly transcriptsList: "studio/v1/transcripts:list";
31
+ readonly transcriptsGetDownload: "studio/v1/transcripts:getDownload";
32
+ readonly transcriptsSearch: "studio/v1/transcripts:search";
33
+ readonly correctionsList: "studio/v1/corrections:list";
34
+ readonly correctionsSave: "studio/v1/corrections:save";
35
+ readonly correctionsRemove: "studio/v1/corrections:remove";
36
+ readonly settingsGetUser: "studio/v1/settings:getUser";
37
+ readonly settingsUpdateProcessing: "studio/v1/settings:updateProcessing";
38
+ readonly brandKitsList: "studio/v1/brandKits:list";
39
+ readonly brandKitsUpsert: "studio/v1/brandKits:upsert";
40
+ readonly componentsList: "studio/v1/components:list";
41
+ readonly componentsGetBundles: "studio/v1/components:getBundles";
42
+ readonly conversationsList: "studio/v1/conversations:list";
43
+ readonly conversationsGet: "studio/v1/conversations:get";
44
+ readonly conversationsSave: "studio/v1/conversations:save";
45
+ readonly conversationsAdopt: "studio/v1/conversations:adopt";
46
+ readonly conversationsRemove: "studio/v1/conversations:remove";
47
+ readonly restorePointsList: "studio/v1/restorePoints:listForConversation";
48
+ readonly restorePointsForget: "studio/v1/restorePoints:forgetForConversation";
49
+ readonly restorePointsRestore: "studio/v1/restorePoints:restore";
50
+ readonly rendersList: "studio/v1/renders:list";
51
+ readonly rendersPresignOutput: "studio/v1/renders:presignOutput";
52
+ readonly rendersCreate: "studio/v1/renders:create";
53
+ readonly rendersCancel: "studio/v1/renders:cancel";
54
+ readonly uploadsBegin: "studio/v1/uploads:begin";
55
+ readonly uploadsFinalize: "studio/v1/uploads:finalize";
56
+ readonly templatesList: "studio/v1/templates:list";
57
+ readonly templatesGet: "studio/v1/templates:get";
58
+ readonly templatesSave: "studio/v1/templates:save";
59
+ readonly templatesRemove: "studio/v1/templates:remove";
60
+ readonly projectResourcesBeginUpload: "studio/v1/projectResources:beginUpload";
61
+ readonly projectResourcesFinalizeUpload: "studio/v1/projectResources:finalizeUpload";
62
+ readonly projectResourcesRemove: "studio/v1/projectResources:remove";
63
+ readonly projectResourcesGetDelivery: "studio/v1/projectResources:getDelivery";
64
+ readonly resourcesSearch: "studio/v1/resources:search";
65
+ readonly importsResolveDropbox: "studio/v1/imports:resolveDropbox";
66
+ readonly importsDropboxFile: "studio/v1/imports:dropboxFile";
67
+ };
68
+ type Definition<Id extends StudioOperationId> = (typeof STUDIO_OPERATIONS)[Id];
69
+ type StudioPaginatedOperationId = {
70
+ [Id in StudioOperationId]: Definition<Id> extends {
71
+ paginated: true;
72
+ } ? Id : never;
73
+ }[StudioOperationId];
74
+ interface NativePaginationOptions {
75
+ numItems: number;
76
+ cursor: string | null;
77
+ }
78
+ interface NativePaginationResult<Item = unknown> {
79
+ page: Item[];
80
+ isDone: boolean;
81
+ continueCursor: string;
82
+ }
83
+ type NativeInput<Id extends StudioOperationId> = Definition<Id> extends {
84
+ paginated: true;
85
+ } ? Omit<StudioOperationInput<Id>, 'cursor' | 'limit'> & {
86
+ paginationOpts: NativePaginationOptions;
87
+ } : StudioOperationInput<Id>;
88
+ type PageItem<Id extends StudioOperationId> = StudioOperationResult<Id> extends {
89
+ items: Array<infer Item>;
90
+ } ? Item : never;
91
+ type StudioReference<Id extends StudioOperationId> = ReturnType<typeof makeFunctionReference<Definition<Id>['kind'], NativeInput<Id>, NativeResult<Id>>>;
92
+ interface StudioFunctionBinding<Id extends StudioOperationId> {
93
+ id: Id;
94
+ path: (typeof STUDIO_FUNCTION_PATHS)[Id];
95
+ kind: Definition<Id>['kind'];
96
+ durable: Definition<Id>['durable'];
97
+ aggregate: Definition<Id>['aggregate'];
98
+ revisionPolicy: Definition<Id>['revisionPolicy'];
99
+ paginated: boolean;
100
+ reference: StudioReference<Id>;
101
+ parseInput(value: unknown): StudioOperationInput<Id>;
102
+ encodeInput(value: unknown): NativeInput<Id>;
103
+ parseResult(value: unknown): StudioOperationResult<Id>;
104
+ parsePageItems(value: unknown[]): PageItem<Id>[];
105
+ }
106
+ declare const studioFunctions: { [Id in StudioOperationId]: StudioFunctionBinding<Id>; };
107
+
108
+ /**
109
+ * Extract a public Studio error from ConvexError.data without exposing the
110
+ * provider exception or trusting arbitrary thrown values.
111
+ */
112
+ declare function studioErrorFromConvex(error: unknown): StudioError | null;
113
+ declare class StudioRemoteError extends Error {
114
+ readonly studioError: StudioError;
115
+ readonly code: StudioError['code'];
116
+ readonly retryable: boolean;
117
+ readonly details?: Record<string, unknown>;
118
+ constructor(studioError: StudioError, options?: ErrorOptions);
119
+ }
120
+ /** Preserve non-Studio failures; normalize only the reviewed public envelope. */
121
+ declare function normalizeStudioConvexError(error: unknown): unknown;
122
+
123
+ declare const STUDIO_CLIENT_VERSION: `studio/${string}`;
124
+ declare class StudioCompatibilityError extends Error {
125
+ readonly minimumClientVersion: string;
126
+ constructor(minimumClientVersion: string);
127
+ }
128
+ /**
129
+ * Process-local compatibility gate shared by every hosted Studio consumer.
130
+ * Upgrade-required results are sticky; transient transport failures are retryable.
131
+ */
132
+ declare function ensureStudioCompatibility(client: ConvexReactClient, clientVersion?: string): Promise<void>;
133
+
134
+ type Filters<Id extends StudioPaginatedOperationId> = Omit<StudioOperationInput<Id>, 'cursor' | 'limit'>;
135
+ type Item<Id extends StudioPaginatedOperationId> = StudioOperationResult<Id> extends {
136
+ items: Array<infer Value>;
137
+ } ? Value : never;
138
+ /** Provider-contained reactive pagination. Raw Convex documents never leave this hook. */
139
+ declare function useStudioPaginatedQuery<Id extends StudioPaginatedOperationId>(id: Id, args: Filters<Id> | 'skip', options: {
140
+ initialNumItems: number;
141
+ }): {
142
+ results: Item<Id>[];
143
+ loadMore: (numItems: number) => void;
144
+ status: "LoadingFirstPage";
145
+ isLoading: true;
146
+ } | {
147
+ results: Item<Id>[];
148
+ loadMore: (numItems: number) => void;
149
+ status: "CanLoadMore";
150
+ isLoading: false;
151
+ } | {
152
+ results: Item<Id>[];
153
+ loadMore: (numItems: number) => void;
154
+ status: "LoadingMore";
155
+ isLoading: true;
156
+ } | {
157
+ results: Item<Id>[];
158
+ loadMore: (numItems: number) => void;
159
+ status: "Exhausted";
160
+ isLoading: false;
161
+ };
162
+
163
+ declare const STUDIO_CONVEX_ARTIFACT: Readonly<{
164
+ readonly name: "@cueframe/studio-convex";
165
+ readonly version: "0.1.0";
166
+ readonly integritySha256: "sha256:e980ed768236d9498c46d7f294537644a395e236e02269d9ef2e1d18cc97a2c7";
167
+ }>;
168
+ /** Immutable, machine-readable provider ABI used by release and private parity gates. */
169
+ declare const STUDIO_CONVEX_ABI: Readonly<{
170
+ readonly artifact: Readonly<{
171
+ readonly name: "@cueframe/studio-convex";
172
+ readonly version: "0.1.0";
173
+ readonly integritySha256: "sha256:e980ed768236d9498c46d7f294537644a395e236e02269d9ef2e1d18cc97a2c7";
174
+ }>;
175
+ readonly operations: Readonly<{
176
+ [k: string]: Readonly<{
177
+ path: "studio/v1/compatibility:get" | "studio/v1/session:current" | "studio/v1/assistant:resolveThread" | "studio/v1/assistant:forgetConversation" | "studio/v1/assistant:send" | "studio/v1/assistant:messages" | "studio/v1/projects:list" | "studio/v1/projects:snapshot" | "studio/v1/projects:create" | "studio/v1/projects:update" | "studio/v1/projects:remove" | "studio/v1/compositions:apply" | "studio/v1/compositions:replace" | "studio/v1/media:list" | "studio/v1/media:remove" | "studio/v1/media:cancelProcessing" | "studio/v1/media:reprocess" | "studio/v1/media:listUnderstanding" | "studio/v1/media:search" | "studio/v1/media:analyzeTimeline" | "studio/v1/media:facts" | "studio/v1/media:purchaseFact" | "studio/v1/transcripts:list" | "studio/v1/transcripts:getDownload" | "studio/v1/transcripts:search" | "studio/v1/corrections:list" | "studio/v1/corrections:save" | "studio/v1/corrections:remove" | "studio/v1/settings:getUser" | "studio/v1/settings:updateProcessing" | "studio/v1/brandKits:list" | "studio/v1/brandKits:upsert" | "studio/v1/components:list" | "studio/v1/components:getBundles" | "studio/v1/conversations:list" | "studio/v1/conversations:get" | "studio/v1/conversations:save" | "studio/v1/conversations:adopt" | "studio/v1/conversations:remove" | "studio/v1/restorePoints:listForConversation" | "studio/v1/restorePoints:forgetForConversation" | "studio/v1/restorePoints:restore" | "studio/v1/renders:list" | "studio/v1/renders:presignOutput" | "studio/v1/renders:create" | "studio/v1/renders:cancel" | "studio/v1/uploads:begin" | "studio/v1/uploads:finalize" | "studio/v1/templates:list" | "studio/v1/templates:get" | "studio/v1/templates:save" | "studio/v1/templates:remove" | "studio/v1/projectResources:beginUpload" | "studio/v1/projectResources:finalizeUpload" | "studio/v1/projectResources:remove" | "studio/v1/projectResources:getDelivery" | "studio/v1/resources:search" | "studio/v1/imports:resolveDropbox" | "studio/v1/imports:dropboxFile";
178
+ kind: "query" | "mutation" | "action";
179
+ durable: boolean;
180
+ aggregate: "none" | "project";
181
+ revisionPolicy: "none" | "returns-project-revision" | "requires-expected-project-revision";
182
+ paginated: boolean;
183
+ }>;
184
+ }>;
185
+ }>;
186
+
187
+ declare const compatibilityRef: convex_server.FunctionReference<"query", "public", {
188
+ clientVersion: string;
189
+ contractVersion: 1;
190
+ }, {
191
+ contractVersion: 1;
192
+ compatible: boolean;
193
+ minimumClientVersion: string;
194
+ }, string | undefined>;
195
+ declare const sessionRef: convex_server.FunctionReference<"query", "public", {}, {
196
+ user: {
197
+ id: string;
198
+ name: string | null;
199
+ email: string | null;
200
+ image: string | null;
201
+ } | null;
202
+ activeOrg: {
203
+ id: string;
204
+ name?: string | null | undefined;
205
+ } | null;
206
+ }, string | undefined>;
207
+ declare const projectListRef: convex_server.FunctionReference<"query", "public", Omit<{
208
+ limit: number;
209
+ cursor?: string | undefined;
210
+ }, "cursor" | "limit"> & {
211
+ paginationOpts: NativePaginationOptions;
212
+ }, NativePaginationResult<{
213
+ id: string;
214
+ name: string;
215
+ createdAt: number;
216
+ updatedAt: number;
217
+ revision: number;
218
+ }>, string | undefined>;
219
+ declare const projectSnapshotRef: convex_server.FunctionReference<"query", "public", {
220
+ projectId: string;
221
+ }, {
222
+ project: {
223
+ id: string;
224
+ name: string;
225
+ createdAt: number;
226
+ updatedAt: number;
227
+ };
228
+ revision: number;
229
+ activeComposition: {
230
+ id: string;
231
+ composition: {
232
+ v: 1;
233
+ format: {
234
+ aspectRatio: "16:9" | "9:16" | "1:1" | "4:5";
235
+ fps?: 24 | 30 | 60 | undefined;
236
+ resolution?: "hd" | "fhd" | "4k" | undefined;
237
+ platform?: string | undefined;
238
+ };
239
+ tracks: {
240
+ contents: ({
241
+ id: string;
242
+ duration: number;
243
+ startTime: number;
244
+ source: {
245
+ kind: "media";
246
+ mediaId: string;
247
+ reframe?: {
248
+ segments: {
249
+ startSec: number;
250
+ endSec: number;
251
+ focus: {
252
+ mode: "frame-center";
253
+ } | {
254
+ mode: "point";
255
+ x: number;
256
+ y: number;
257
+ } | {
258
+ faceId: string;
259
+ mode: "face";
260
+ shotScale?: "close" | "standard" | "wide" | undefined;
261
+ } | {
262
+ mode: "all-faces";
263
+ } | {
264
+ mode: "active-speaker";
265
+ };
266
+ intent?: string | undefined;
267
+ zoom?: number | undefined;
268
+ ease?: {
269
+ in: number;
270
+ out: number;
271
+ } | undefined;
272
+ bias?: {
273
+ x: number;
274
+ y: number;
275
+ } | undefined;
276
+ }[];
277
+ } | undefined;
278
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
279
+ trim?: {
280
+ start: number;
281
+ end: number;
282
+ } | undefined;
283
+ excludedRanges?: {
284
+ start: number;
285
+ end: number;
286
+ reason?: string | undefined;
287
+ }[] | undefined;
288
+ volume?: number | undefined;
289
+ muted?: boolean | undefined;
290
+ playbackRate?: number | undefined;
291
+ sync?: "video" | "independent" | undefined;
292
+ volumeDb?: number | undefined;
293
+ fadeInMs?: number | undefined;
294
+ fadeOutMs?: number | undefined;
295
+ loop?: boolean | undefined;
296
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
297
+ duck?: {
298
+ duckDb: number;
299
+ attackMs: number;
300
+ releaseMs: number;
301
+ windows?: {
302
+ startMs: number;
303
+ endMs: number;
304
+ }[] | undefined;
305
+ } | undefined;
306
+ anchor?: {
307
+ clipId: string;
308
+ offsetMs: number;
309
+ } | undefined;
310
+ } | {
311
+ kind: "component";
312
+ componentId: string;
313
+ props: Record<string, unknown>;
314
+ zPlane?: "front" | "behind-subject" | undefined;
315
+ } | {
316
+ params: Record<string, unknown>;
317
+ kind: "overlay";
318
+ primitiveId: string;
319
+ anchor?: {
320
+ x: number;
321
+ y: number;
322
+ space: "scene";
323
+ } | undefined;
324
+ zPlane?: "front" | "behind-subject" | undefined;
325
+ parallax?: number | undefined;
326
+ } | {
327
+ kind: "effect";
328
+ primitiveId: string;
329
+ params?: Record<string, unknown> | undefined;
330
+ } | {
331
+ kind: "alpha-layer";
332
+ componentId: string;
333
+ props: Record<string, unknown>;
334
+ zPlane?: "front" | "behind-subject" | undefined;
335
+ } | {
336
+ kind: "card";
337
+ html: string;
338
+ zPlane?: "front" | undefined;
339
+ tokens?: Record<string, string> | undefined;
340
+ } | {
341
+ kind: "composition";
342
+ compositionId: string;
343
+ trim?: {
344
+ start: number;
345
+ end: number;
346
+ } | undefined;
347
+ };
348
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
349
+ opacity?: number | undefined;
350
+ scale?: number | undefined;
351
+ rotation?: number | undefined;
352
+ position?: {
353
+ x: number;
354
+ y: number;
355
+ } | undefined;
356
+ region?: {
357
+ x: number;
358
+ y: number;
359
+ w: number;
360
+ h: number;
361
+ } | undefined;
362
+ fit?: "cover" | "contain" | undefined;
363
+ effects?: {
364
+ primitiveId: string;
365
+ params?: Record<string, unknown> | undefined;
366
+ }[] | undefined;
367
+ transitionIn?: {
368
+ type: string;
369
+ duration: number;
370
+ } | undefined;
371
+ linkGroupId?: string | undefined;
372
+ animate?: Record<string, {
373
+ value: number;
374
+ time: number;
375
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
376
+ cubicBezier: [number, number, number, number];
377
+ } | undefined;
378
+ }[]> | undefined;
379
+ } | {
380
+ id: string;
381
+ duration: number;
382
+ startTime: number;
383
+ })[];
384
+ id: string;
385
+ kind: "overlay" | "video" | "effect" | "audio" | "image";
386
+ enabled?: boolean | undefined;
387
+ volume?: number | undefined;
388
+ name?: string | undefined;
389
+ }[];
390
+ markers?: {
391
+ id: string;
392
+ kind: string;
393
+ startTime: number;
394
+ name?: string | undefined;
395
+ endTime?: number | undefined;
396
+ metadata?: Record<string, unknown> | undefined;
397
+ }[] | undefined;
398
+ captions?: {
399
+ segments: {
400
+ words: {
401
+ startMs: number;
402
+ endMs: number;
403
+ text: string;
404
+ emphasis?: boolean | undefined;
405
+ annotate?: "circle" | "underline" | undefined;
406
+ }[];
407
+ }[];
408
+ source: "derived";
409
+ from: {
410
+ clipId: string;
411
+ };
412
+ zPlane?: "front" | "behind-subject" | undefined;
413
+ style?: {
414
+ position?: "top" | "center" | "bottom" | undefined;
415
+ fontFamily?: string | undefined;
416
+ fontSize?: number | undefined;
417
+ fontWeight?: number | undefined;
418
+ color?: string | undefined;
419
+ highlightColor?: string | undefined;
420
+ backgroundColor?: string | undefined;
421
+ plate?: "none" | "glass" | "solid" | undefined;
422
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
423
+ emphasisColor?: string | undefined;
424
+ emphasisGradient?: string | undefined;
425
+ emphasisScale?: number | undefined;
426
+ emphasisFontFamily?: string | undefined;
427
+ emphasisFontWeight?: number | undefined;
428
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
429
+ emphasisLetterSpacing?: number | undefined;
430
+ emphasisFontStyle?: "normal" | "italic" | undefined;
431
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
432
+ entranceMs?: number | undefined;
433
+ entranceStaggerMs?: number | undefined;
434
+ exitMs?: number | undefined;
435
+ emphasisPlate?: boolean | undefined;
436
+ emphasisPlateColor?: string | undefined;
437
+ emphasisPlateTextColor?: string | undefined;
438
+ emphasisPlateAltColor?: string | undefined;
439
+ emphasisPlateAltTextColor?: string | undefined;
440
+ emphasisPlateRadius?: number | undefined;
441
+ emphasisPlatePadX?: number | undefined;
442
+ emphasisPlatePadY?: number | undefined;
443
+ annotationColor?: string | undefined;
444
+ maxWidthPercent?: number | undefined;
445
+ } | undefined;
446
+ } | {
447
+ segments: {
448
+ words: {
449
+ startMs: number;
450
+ endMs: number;
451
+ text: string;
452
+ emphasis?: boolean | undefined;
453
+ annotate?: "circle" | "underline" | undefined;
454
+ }[];
455
+ }[];
456
+ source: "authored";
457
+ zPlane?: "front" | "behind-subject" | undefined;
458
+ style?: {
459
+ position?: "top" | "center" | "bottom" | undefined;
460
+ fontFamily?: string | undefined;
461
+ fontSize?: number | undefined;
462
+ fontWeight?: number | undefined;
463
+ color?: string | undefined;
464
+ highlightColor?: string | undefined;
465
+ backgroundColor?: string | undefined;
466
+ plate?: "none" | "glass" | "solid" | undefined;
467
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
468
+ emphasisColor?: string | undefined;
469
+ emphasisGradient?: string | undefined;
470
+ emphasisScale?: number | undefined;
471
+ emphasisFontFamily?: string | undefined;
472
+ emphasisFontWeight?: number | undefined;
473
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
474
+ emphasisLetterSpacing?: number | undefined;
475
+ emphasisFontStyle?: "normal" | "italic" | undefined;
476
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
477
+ entranceMs?: number | undefined;
478
+ entranceStaggerMs?: number | undefined;
479
+ exitMs?: number | undefined;
480
+ emphasisPlate?: boolean | undefined;
481
+ emphasisPlateColor?: string | undefined;
482
+ emphasisPlateTextColor?: string | undefined;
483
+ emphasisPlateAltColor?: string | undefined;
484
+ emphasisPlateAltTextColor?: string | undefined;
485
+ emphasisPlateRadius?: number | undefined;
486
+ emphasisPlatePadX?: number | undefined;
487
+ emphasisPlatePadY?: number | undefined;
488
+ annotationColor?: string | undefined;
489
+ maxWidthPercent?: number | undefined;
490
+ } | undefined;
491
+ } | undefined;
492
+ sourceSuggestionId?: string | undefined;
493
+ license?: {
494
+ type: string;
495
+ source?: string | undefined;
496
+ notes?: string | undefined;
497
+ } | undefined;
498
+ licenseVerification?: "attested" | "cueframe-verified" | "third-party-verified" | undefined;
499
+ accessibility?: {
500
+ notes?: string | undefined;
501
+ audioDescriptionTrackId?: string | undefined;
502
+ captionsTrackId?: string | undefined;
503
+ signLanguageTrackId?: string | undefined;
504
+ } | undefined;
505
+ ownerOrgId?: string | undefined;
506
+ acl?: {
507
+ public?: boolean | undefined;
508
+ readerOrgIds?: string[] | undefined;
509
+ writerOrgIds?: string[] | undefined;
510
+ } | undefined;
511
+ };
512
+ } | null;
513
+ }, string | undefined>;
514
+ declare const createProjectRef: convex_server.FunctionReference<"mutation", "public", {
515
+ name: string;
516
+ commandId: string;
517
+ description?: string | undefined;
518
+ settings?: {
519
+ width: number;
520
+ height: number;
521
+ } | undefined;
522
+ }, {
523
+ project: {
524
+ id: string;
525
+ name: string;
526
+ createdAt: number;
527
+ updatedAt: number;
528
+ revision: number;
529
+ };
530
+ revision: number;
531
+ commandId: string;
532
+ }, string | undefined>;
533
+ declare const updateProjectRef: convex_server.FunctionReference<"mutation", "public", {
534
+ projectId: string;
535
+ commandId: string;
536
+ expectedRevision: number;
537
+ name?: string | undefined;
538
+ description?: string | undefined;
539
+ settings?: {
540
+ width: number;
541
+ height: number;
542
+ } | undefined;
543
+ }, {
544
+ project: {
545
+ id: string;
546
+ name: string;
547
+ createdAt: number;
548
+ updatedAt: number;
549
+ revision: number;
550
+ };
551
+ revision: number;
552
+ commandId: string;
553
+ }, string | undefined>;
554
+ declare const removeProjectRef: convex_server.FunctionReference<"mutation", "public", {
555
+ projectId: string;
556
+ commandId: string;
557
+ expectedRevision: number;
558
+ }, {
559
+ projectId: string;
560
+ revision: number;
561
+ commandId: string;
562
+ }, string | undefined>;
563
+ declare const applyCompositionRef: convex_server.FunctionReference<"mutation", "public", {
564
+ projectId: string;
565
+ commandId: string;
566
+ expectedRevision: number;
567
+ operations: {
568
+ operationId: string;
569
+ operation: {
570
+ type: "clip.add";
571
+ clip: {
572
+ id: string;
573
+ duration: number;
574
+ startTime: number;
575
+ source: {
576
+ kind: "media";
577
+ mediaId: string;
578
+ reframe?: {
579
+ segments: {
580
+ startSec: number;
581
+ endSec: number;
582
+ focus: {
583
+ mode: "frame-center";
584
+ } | {
585
+ mode: "point";
586
+ x: number;
587
+ y: number;
588
+ } | {
589
+ faceId: string;
590
+ mode: "face";
591
+ shotScale?: "close" | "standard" | "wide" | undefined;
592
+ } | {
593
+ mode: "all-faces";
594
+ } | {
595
+ mode: "active-speaker";
596
+ };
597
+ intent?: string | undefined;
598
+ zoom?: number | undefined;
599
+ ease?: {
600
+ in: number;
601
+ out: number;
602
+ } | undefined;
603
+ bias?: {
604
+ x: number;
605
+ y: number;
606
+ } | undefined;
607
+ }[];
608
+ } | undefined;
609
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
610
+ trim?: {
611
+ start: number;
612
+ end: number;
613
+ } | undefined;
614
+ excludedRanges?: {
615
+ start: number;
616
+ end: number;
617
+ reason?: string | undefined;
618
+ }[] | undefined;
619
+ volume?: number | undefined;
620
+ muted?: boolean | undefined;
621
+ playbackRate?: number | undefined;
622
+ sync?: "video" | "independent" | undefined;
623
+ volumeDb?: number | undefined;
624
+ fadeInMs?: number | undefined;
625
+ fadeOutMs?: number | undefined;
626
+ loop?: boolean | undefined;
627
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
628
+ duck?: {
629
+ duckDb: number;
630
+ attackMs: number;
631
+ releaseMs: number;
632
+ windows?: {
633
+ startMs: number;
634
+ endMs: number;
635
+ }[] | undefined;
636
+ } | undefined;
637
+ anchor?: {
638
+ clipId: string;
639
+ offsetMs: number;
640
+ } | undefined;
641
+ } | {
642
+ kind: "component";
643
+ componentId: string;
644
+ props: Record<string, unknown>;
645
+ zPlane?: "front" | "behind-subject" | undefined;
646
+ } | {
647
+ params: Record<string, unknown>;
648
+ kind: "overlay";
649
+ primitiveId: string;
650
+ anchor?: {
651
+ x: number;
652
+ y: number;
653
+ space: "scene";
654
+ } | undefined;
655
+ zPlane?: "front" | "behind-subject" | undefined;
656
+ parallax?: number | undefined;
657
+ } | {
658
+ kind: "effect";
659
+ primitiveId: string;
660
+ params?: Record<string, unknown> | undefined;
661
+ } | {
662
+ kind: "alpha-layer";
663
+ componentId: string;
664
+ props: Record<string, unknown>;
665
+ zPlane?: "front" | "behind-subject" | undefined;
666
+ } | {
667
+ kind: "card";
668
+ html: string;
669
+ zPlane?: "front" | undefined;
670
+ tokens?: Record<string, string> | undefined;
671
+ } | {
672
+ kind: "composition";
673
+ compositionId: string;
674
+ trim?: {
675
+ start: number;
676
+ end: number;
677
+ } | undefined;
678
+ };
679
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
680
+ opacity?: number | undefined;
681
+ scale?: number | undefined;
682
+ rotation?: number | undefined;
683
+ position?: {
684
+ x: number;
685
+ y: number;
686
+ } | undefined;
687
+ region?: {
688
+ x: number;
689
+ y: number;
690
+ w: number;
691
+ h: number;
692
+ } | undefined;
693
+ fit?: "cover" | "contain" | undefined;
694
+ effects?: {
695
+ primitiveId: string;
696
+ params?: Record<string, unknown> | undefined;
697
+ }[] | undefined;
698
+ transitionIn?: {
699
+ type: string;
700
+ duration: number;
701
+ } | undefined;
702
+ linkGroupId?: string | undefined;
703
+ animate?: Record<string, {
704
+ value: number;
705
+ time: number;
706
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
707
+ cubicBezier: [number, number, number, number];
708
+ } | undefined;
709
+ }[]> | undefined;
710
+ };
711
+ trackId?: string | undefined;
712
+ newTrack?: boolean | undefined;
713
+ newTrackId?: string | undefined;
714
+ } | {
715
+ type: "clip.remove";
716
+ clipId: string;
717
+ } | {
718
+ type: "clip.update";
719
+ clipId: string;
720
+ patch: {
721
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
722
+ id?: string | undefined;
723
+ startTime?: number | undefined;
724
+ duration?: number | undefined;
725
+ source?: {
726
+ kind: "media";
727
+ mediaId: string;
728
+ reframe?: {
729
+ segments: {
730
+ startSec: number;
731
+ endSec: number;
732
+ focus: {
733
+ mode: "frame-center";
734
+ } | {
735
+ mode: "point";
736
+ x: number;
737
+ y: number;
738
+ } | {
739
+ faceId: string;
740
+ mode: "face";
741
+ shotScale?: "close" | "standard" | "wide" | undefined;
742
+ } | {
743
+ mode: "all-faces";
744
+ } | {
745
+ mode: "active-speaker";
746
+ };
747
+ intent?: string | undefined;
748
+ zoom?: number | undefined;
749
+ ease?: {
750
+ in: number;
751
+ out: number;
752
+ } | undefined;
753
+ bias?: {
754
+ x: number;
755
+ y: number;
756
+ } | undefined;
757
+ }[];
758
+ } | undefined;
759
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
760
+ trim?: {
761
+ start: number;
762
+ end: number;
763
+ } | undefined;
764
+ excludedRanges?: {
765
+ start: number;
766
+ end: number;
767
+ reason?: string | undefined;
768
+ }[] | undefined;
769
+ volume?: number | undefined;
770
+ muted?: boolean | undefined;
771
+ playbackRate?: number | undefined;
772
+ sync?: "video" | "independent" | undefined;
773
+ volumeDb?: number | undefined;
774
+ fadeInMs?: number | undefined;
775
+ fadeOutMs?: number | undefined;
776
+ loop?: boolean | undefined;
777
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
778
+ duck?: {
779
+ duckDb: number;
780
+ attackMs: number;
781
+ releaseMs: number;
782
+ windows?: {
783
+ startMs: number;
784
+ endMs: number;
785
+ }[] | undefined;
786
+ } | undefined;
787
+ anchor?: {
788
+ clipId: string;
789
+ offsetMs: number;
790
+ } | undefined;
791
+ } | {
792
+ kind: "component";
793
+ componentId: string;
794
+ props: Record<string, unknown>;
795
+ zPlane?: "front" | "behind-subject" | undefined;
796
+ } | {
797
+ params: Record<string, unknown>;
798
+ kind: "overlay";
799
+ primitiveId: string;
800
+ anchor?: {
801
+ x: number;
802
+ y: number;
803
+ space: "scene";
804
+ } | undefined;
805
+ zPlane?: "front" | "behind-subject" | undefined;
806
+ parallax?: number | undefined;
807
+ } | {
808
+ kind: "effect";
809
+ primitiveId: string;
810
+ params?: Record<string, unknown> | undefined;
811
+ } | {
812
+ kind: "alpha-layer";
813
+ componentId: string;
814
+ props: Record<string, unknown>;
815
+ zPlane?: "front" | "behind-subject" | undefined;
816
+ } | {
817
+ kind: "card";
818
+ html: string;
819
+ zPlane?: "front" | undefined;
820
+ tokens?: Record<string, string> | undefined;
821
+ } | {
822
+ kind: "composition";
823
+ compositionId: string;
824
+ trim?: {
825
+ start: number;
826
+ end: number;
827
+ } | undefined;
828
+ } | undefined;
829
+ opacity?: number | undefined;
830
+ scale?: number | undefined;
831
+ rotation?: number | undefined;
832
+ position?: {
833
+ x: number;
834
+ y: number;
835
+ } | undefined;
836
+ region?: {
837
+ x: number;
838
+ y: number;
839
+ w: number;
840
+ h: number;
841
+ } | undefined;
842
+ fit?: "cover" | "contain" | undefined;
843
+ effects?: {
844
+ primitiveId: string;
845
+ params?: Record<string, unknown> | undefined;
846
+ }[] | undefined;
847
+ transitionIn?: {
848
+ type: string;
849
+ duration: number;
850
+ } | undefined;
851
+ linkGroupId?: string | undefined;
852
+ animate?: Record<string, {
853
+ value: number;
854
+ time: number;
855
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
856
+ cubicBezier: [number, number, number, number];
857
+ } | undefined;
858
+ }[]> | undefined;
859
+ };
860
+ } | {
861
+ type: "removeClipsByMediaId";
862
+ mediaId: string;
863
+ } | {
864
+ type: "loadOverlays";
865
+ clips: {
866
+ id: string;
867
+ duration: number;
868
+ startTime: number;
869
+ source: {
870
+ kind: "media";
871
+ mediaId: string;
872
+ reframe?: {
873
+ segments: {
874
+ startSec: number;
875
+ endSec: number;
876
+ focus: {
877
+ mode: "frame-center";
878
+ } | {
879
+ mode: "point";
880
+ x: number;
881
+ y: number;
882
+ } | {
883
+ faceId: string;
884
+ mode: "face";
885
+ shotScale?: "close" | "standard" | "wide" | undefined;
886
+ } | {
887
+ mode: "all-faces";
888
+ } | {
889
+ mode: "active-speaker";
890
+ };
891
+ intent?: string | undefined;
892
+ zoom?: number | undefined;
893
+ ease?: {
894
+ in: number;
895
+ out: number;
896
+ } | undefined;
897
+ bias?: {
898
+ x: number;
899
+ y: number;
900
+ } | undefined;
901
+ }[];
902
+ } | undefined;
903
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
904
+ trim?: {
905
+ start: number;
906
+ end: number;
907
+ } | undefined;
908
+ excludedRanges?: {
909
+ start: number;
910
+ end: number;
911
+ reason?: string | undefined;
912
+ }[] | undefined;
913
+ volume?: number | undefined;
914
+ muted?: boolean | undefined;
915
+ playbackRate?: number | undefined;
916
+ sync?: "video" | "independent" | undefined;
917
+ volumeDb?: number | undefined;
918
+ fadeInMs?: number | undefined;
919
+ fadeOutMs?: number | undefined;
920
+ loop?: boolean | undefined;
921
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
922
+ duck?: {
923
+ duckDb: number;
924
+ attackMs: number;
925
+ releaseMs: number;
926
+ windows?: {
927
+ startMs: number;
928
+ endMs: number;
929
+ }[] | undefined;
930
+ } | undefined;
931
+ anchor?: {
932
+ clipId: string;
933
+ offsetMs: number;
934
+ } | undefined;
935
+ } | {
936
+ kind: "component";
937
+ componentId: string;
938
+ props: Record<string, unknown>;
939
+ zPlane?: "front" | "behind-subject" | undefined;
940
+ } | {
941
+ params: Record<string, unknown>;
942
+ kind: "overlay";
943
+ primitiveId: string;
944
+ anchor?: {
945
+ x: number;
946
+ y: number;
947
+ space: "scene";
948
+ } | undefined;
949
+ zPlane?: "front" | "behind-subject" | undefined;
950
+ parallax?: number | undefined;
951
+ } | {
952
+ kind: "effect";
953
+ primitiveId: string;
954
+ params?: Record<string, unknown> | undefined;
955
+ } | {
956
+ kind: "alpha-layer";
957
+ componentId: string;
958
+ props: Record<string, unknown>;
959
+ zPlane?: "front" | "behind-subject" | undefined;
960
+ } | {
961
+ kind: "card";
962
+ html: string;
963
+ zPlane?: "front" | undefined;
964
+ tokens?: Record<string, string> | undefined;
965
+ } | {
966
+ kind: "composition";
967
+ compositionId: string;
968
+ trim?: {
969
+ start: number;
970
+ end: number;
971
+ } | undefined;
972
+ };
973
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
974
+ opacity?: number | undefined;
975
+ scale?: number | undefined;
976
+ rotation?: number | undefined;
977
+ position?: {
978
+ x: number;
979
+ y: number;
980
+ } | undefined;
981
+ region?: {
982
+ x: number;
983
+ y: number;
984
+ w: number;
985
+ h: number;
986
+ } | undefined;
987
+ fit?: "cover" | "contain" | undefined;
988
+ effects?: {
989
+ primitiveId: string;
990
+ params?: Record<string, unknown> | undefined;
991
+ }[] | undefined;
992
+ transitionIn?: {
993
+ type: string;
994
+ duration: number;
995
+ } | undefined;
996
+ linkGroupId?: string | undefined;
997
+ animate?: Record<string, {
998
+ value: number;
999
+ time: number;
1000
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
1001
+ cubicBezier: [number, number, number, number];
1002
+ } | undefined;
1003
+ }[]> | undefined;
1004
+ }[];
1005
+ } | {
1006
+ type: "addMarker";
1007
+ marker: {
1008
+ id: string;
1009
+ kind: string;
1010
+ startTime: number;
1011
+ name?: string | undefined;
1012
+ endTime?: number | undefined;
1013
+ metadata?: Record<string, unknown> | undefined;
1014
+ };
1015
+ } | {
1016
+ type: "removeMarker";
1017
+ markerId: string;
1018
+ } | {
1019
+ type: "updateMarker";
1020
+ markerId: string;
1021
+ updates: {
1022
+ kind?: string | undefined;
1023
+ name?: string | undefined;
1024
+ id?: string | undefined;
1025
+ startTime?: number | undefined;
1026
+ endTime?: number | undefined;
1027
+ metadata?: Record<string, unknown> | undefined;
1028
+ };
1029
+ } | {
1030
+ type: "setCropIntents";
1031
+ clipId: string;
1032
+ segments: {
1033
+ startSec: number;
1034
+ endSec: number;
1035
+ focus: {
1036
+ mode: "frame-center";
1037
+ } | {
1038
+ mode: "point";
1039
+ x: number;
1040
+ y: number;
1041
+ } | {
1042
+ faceId: string;
1043
+ mode: "face";
1044
+ shotScale?: "close" | "standard" | "wide" | undefined;
1045
+ } | {
1046
+ mode: "all-faces";
1047
+ } | {
1048
+ mode: "active-speaker";
1049
+ };
1050
+ intent?: string | undefined;
1051
+ zoom?: number | undefined;
1052
+ ease?: {
1053
+ in: number;
1054
+ out: number;
1055
+ } | undefined;
1056
+ bias?: {
1057
+ x: number;
1058
+ y: number;
1059
+ } | undefined;
1060
+ }[] | null;
1061
+ } | {
1062
+ type: "setEffects";
1063
+ clipId: string;
1064
+ effects: {
1065
+ primitiveId: string;
1066
+ params?: Record<string, unknown> | undefined;
1067
+ }[];
1068
+ } | {
1069
+ type: "setCaptionStyle";
1070
+ style: {
1071
+ position?: "top" | "center" | "bottom" | undefined;
1072
+ fontFamily?: string | undefined;
1073
+ fontSize?: number | undefined;
1074
+ fontWeight?: number | undefined;
1075
+ color?: string | undefined;
1076
+ highlightColor?: string | undefined;
1077
+ backgroundColor?: string | undefined;
1078
+ plate?: "glass" | "solid" | "none" | undefined;
1079
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
1080
+ emphasisColor?: string | undefined;
1081
+ emphasisGradient?: string | undefined;
1082
+ emphasisScale?: number | undefined;
1083
+ emphasisFontFamily?: string | undefined;
1084
+ emphasisFontWeight?: number | undefined;
1085
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
1086
+ emphasisLetterSpacing?: number | undefined;
1087
+ emphasisFontStyle?: "normal" | "italic" | undefined;
1088
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
1089
+ entranceMs?: number | undefined;
1090
+ entranceStaggerMs?: number | undefined;
1091
+ exitMs?: number | undefined;
1092
+ emphasisPlate?: boolean | undefined;
1093
+ emphasisPlateColor?: string | undefined;
1094
+ emphasisPlateTextColor?: string | undefined;
1095
+ emphasisPlateAltColor?: string | undefined;
1096
+ emphasisPlateAltTextColor?: string | undefined;
1097
+ emphasisPlateRadius?: number | undefined;
1098
+ emphasisPlatePadX?: number | undefined;
1099
+ emphasisPlatePadY?: number | undefined;
1100
+ annotationColor?: string | undefined;
1101
+ maxWidthPercent?: number | undefined;
1102
+ };
1103
+ } | {
1104
+ type: "setCaptionDepth";
1105
+ zPlane: "front" | "behind-subject";
1106
+ } | {
1107
+ type: "setCaptions";
1108
+ segments: {
1109
+ words: {
1110
+ startMs: number;
1111
+ endMs: number;
1112
+ text: string;
1113
+ emphasis?: boolean | undefined;
1114
+ annotate?: "circle" | "underline" | undefined;
1115
+ }[];
1116
+ }[];
1117
+ style?: {
1118
+ position?: "top" | "center" | "bottom" | undefined;
1119
+ fontFamily?: string | undefined;
1120
+ fontSize?: number | undefined;
1121
+ fontWeight?: number | undefined;
1122
+ color?: string | undefined;
1123
+ highlightColor?: string | undefined;
1124
+ backgroundColor?: string | undefined;
1125
+ plate?: "glass" | "solid" | "none" | undefined;
1126
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
1127
+ emphasisColor?: string | undefined;
1128
+ emphasisGradient?: string | undefined;
1129
+ emphasisScale?: number | undefined;
1130
+ emphasisFontFamily?: string | undefined;
1131
+ emphasisFontWeight?: number | undefined;
1132
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
1133
+ emphasisLetterSpacing?: number | undefined;
1134
+ emphasisFontStyle?: "normal" | "italic" | undefined;
1135
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
1136
+ entranceMs?: number | undefined;
1137
+ entranceStaggerMs?: number | undefined;
1138
+ exitMs?: number | undefined;
1139
+ emphasisPlate?: boolean | undefined;
1140
+ emphasisPlateColor?: string | undefined;
1141
+ emphasisPlateTextColor?: string | undefined;
1142
+ emphasisPlateAltColor?: string | undefined;
1143
+ emphasisPlateAltTextColor?: string | undefined;
1144
+ emphasisPlateRadius?: number | undefined;
1145
+ emphasisPlatePadX?: number | undefined;
1146
+ emphasisPlatePadY?: number | undefined;
1147
+ annotationColor?: string | undefined;
1148
+ maxWidthPercent?: number | undefined;
1149
+ } | undefined;
1150
+ } | {
1151
+ type: "applyMotionPreset";
1152
+ clipId: string;
1153
+ preset: string;
1154
+ params?: {
1155
+ exitMs?: number | undefined;
1156
+ enterMs?: number | undefined;
1157
+ staggerMs?: number | undefined;
1158
+ } | undefined;
1159
+ } | {
1160
+ type: "materializeGrid";
1161
+ clipId: string;
1162
+ grid: "beat" | "word" | "shot";
1163
+ maxMarkers?: number | undefined;
1164
+ } | {
1165
+ type: "captions.fromTranscript";
1166
+ mediaId: string;
1167
+ window?: {
1168
+ startSec: number;
1169
+ endSec: number;
1170
+ } | undefined;
1171
+ } | {
1172
+ type: "setFormat";
1173
+ format: {
1174
+ aspectRatio: "16:9" | "9:16" | "1:1" | "4:5";
1175
+ fps?: 24 | 30 | 60 | undefined;
1176
+ resolution?: "hd" | "fhd" | "4k" | undefined;
1177
+ };
1178
+ } | {
1179
+ kind: "overlay" | "video" | "effect" | "audio" | "image";
1180
+ type: "addTrack";
1181
+ name?: string | undefined;
1182
+ id?: string | undefined;
1183
+ } | {
1184
+ type: "removeTrack";
1185
+ trackId: string;
1186
+ } | {
1187
+ type: "updateTrack";
1188
+ trackId: string;
1189
+ updates: {
1190
+ name?: string | undefined;
1191
+ enabled?: boolean | undefined;
1192
+ volume?: number | undefined;
1193
+ };
1194
+ } | {
1195
+ type: "reorderTracks";
1196
+ fromIndex: number;
1197
+ toIndex: number;
1198
+ } | {
1199
+ type: "moveClipToTrack";
1200
+ clipId: string;
1201
+ targetTrackId: string;
1202
+ newStartTime?: number | undefined;
1203
+ } | {
1204
+ type: "duplicateClip";
1205
+ clipId: string;
1206
+ newClipId?: string | undefined;
1207
+ } | {
1208
+ type: "cutAndRipple";
1209
+ start: number;
1210
+ end: number;
1211
+ } | {
1212
+ type: "ripple";
1213
+ time: number;
1214
+ amount: number;
1215
+ } | {
1216
+ type: "addExcludedRange";
1217
+ clipId: string;
1218
+ sourceStart: number;
1219
+ sourceEnd: number;
1220
+ reason?: string | undefined;
1221
+ } | {
1222
+ type: "removeExcludedRange";
1223
+ clipId: string;
1224
+ rangeIdx: number;
1225
+ };
1226
+ }[];
1227
+ clientId: string;
1228
+ sequence: number;
1229
+ }, {
1230
+ projectId: string;
1231
+ revision: number;
1232
+ commandId: string;
1233
+ compositionId: string;
1234
+ acknowledgedOperationIds: string[];
1235
+ }, string | undefined>;
1236
+ declare const replaceCompositionRef: convex_server.FunctionReference<"mutation", "public", {
1237
+ projectId: string;
1238
+ composition: {
1239
+ v: 1;
1240
+ format: {
1241
+ aspectRatio: "16:9" | "9:16" | "1:1" | "4:5";
1242
+ fps?: 24 | 30 | 60 | undefined;
1243
+ resolution?: "hd" | "fhd" | "4k" | undefined;
1244
+ platform?: string | undefined;
1245
+ };
1246
+ tracks: {
1247
+ contents: ({
1248
+ id: string;
1249
+ duration: number;
1250
+ startTime: number;
1251
+ source: {
1252
+ kind: "media";
1253
+ mediaId: string;
1254
+ reframe?: {
1255
+ segments: {
1256
+ startSec: number;
1257
+ endSec: number;
1258
+ focus: {
1259
+ mode: "frame-center";
1260
+ } | {
1261
+ mode: "point";
1262
+ x: number;
1263
+ y: number;
1264
+ } | {
1265
+ faceId: string;
1266
+ mode: "face";
1267
+ shotScale?: "close" | "standard" | "wide" | undefined;
1268
+ } | {
1269
+ mode: "all-faces";
1270
+ } | {
1271
+ mode: "active-speaker";
1272
+ };
1273
+ intent?: string | undefined;
1274
+ zoom?: number | undefined;
1275
+ ease?: {
1276
+ in: number;
1277
+ out: number;
1278
+ } | undefined;
1279
+ bias?: {
1280
+ x: number;
1281
+ y: number;
1282
+ } | undefined;
1283
+ }[];
1284
+ } | undefined;
1285
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
1286
+ trim?: {
1287
+ start: number;
1288
+ end: number;
1289
+ } | undefined;
1290
+ excludedRanges?: {
1291
+ start: number;
1292
+ end: number;
1293
+ reason?: string | undefined;
1294
+ }[] | undefined;
1295
+ volume?: number | undefined;
1296
+ muted?: boolean | undefined;
1297
+ playbackRate?: number | undefined;
1298
+ sync?: "video" | "independent" | undefined;
1299
+ volumeDb?: number | undefined;
1300
+ fadeInMs?: number | undefined;
1301
+ fadeOutMs?: number | undefined;
1302
+ loop?: boolean | undefined;
1303
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
1304
+ duck?: {
1305
+ duckDb: number;
1306
+ attackMs: number;
1307
+ releaseMs: number;
1308
+ windows?: {
1309
+ startMs: number;
1310
+ endMs: number;
1311
+ }[] | undefined;
1312
+ } | undefined;
1313
+ anchor?: {
1314
+ clipId: string;
1315
+ offsetMs: number;
1316
+ } | undefined;
1317
+ } | {
1318
+ kind: "component";
1319
+ componentId: string;
1320
+ props: Record<string, unknown>;
1321
+ zPlane?: "front" | "behind-subject" | undefined;
1322
+ } | {
1323
+ params: Record<string, unknown>;
1324
+ kind: "overlay";
1325
+ primitiveId: string;
1326
+ anchor?: {
1327
+ x: number;
1328
+ y: number;
1329
+ space: "scene";
1330
+ } | undefined;
1331
+ zPlane?: "front" | "behind-subject" | undefined;
1332
+ parallax?: number | undefined;
1333
+ } | {
1334
+ kind: "effect";
1335
+ primitiveId: string;
1336
+ params?: Record<string, unknown> | undefined;
1337
+ } | {
1338
+ kind: "alpha-layer";
1339
+ componentId: string;
1340
+ props: Record<string, unknown>;
1341
+ zPlane?: "front" | "behind-subject" | undefined;
1342
+ } | {
1343
+ kind: "card";
1344
+ html: string;
1345
+ zPlane?: "front" | undefined;
1346
+ tokens?: Record<string, string> | undefined;
1347
+ } | {
1348
+ kind: "composition";
1349
+ compositionId: string;
1350
+ trim?: {
1351
+ start: number;
1352
+ end: number;
1353
+ } | undefined;
1354
+ };
1355
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
1356
+ opacity?: number | undefined;
1357
+ scale?: number | undefined;
1358
+ rotation?: number | undefined;
1359
+ position?: {
1360
+ x: number;
1361
+ y: number;
1362
+ } | undefined;
1363
+ region?: {
1364
+ x: number;
1365
+ y: number;
1366
+ w: number;
1367
+ h: number;
1368
+ } | undefined;
1369
+ fit?: "cover" | "contain" | undefined;
1370
+ effects?: {
1371
+ primitiveId: string;
1372
+ params?: Record<string, unknown> | undefined;
1373
+ }[] | undefined;
1374
+ transitionIn?: {
1375
+ type: string;
1376
+ duration: number;
1377
+ } | undefined;
1378
+ linkGroupId?: string | undefined;
1379
+ animate?: Record<string, {
1380
+ value: number;
1381
+ time: number;
1382
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
1383
+ cubicBezier: [number, number, number, number];
1384
+ } | undefined;
1385
+ }[]> | undefined;
1386
+ } | {
1387
+ id: string;
1388
+ duration: number;
1389
+ startTime: number;
1390
+ })[];
1391
+ id: string;
1392
+ kind: "overlay" | "video" | "effect" | "audio" | "image";
1393
+ enabled?: boolean | undefined;
1394
+ volume?: number | undefined;
1395
+ name?: string | undefined;
1396
+ }[];
1397
+ markers?: {
1398
+ id: string;
1399
+ kind: string;
1400
+ startTime: number;
1401
+ name?: string | undefined;
1402
+ endTime?: number | undefined;
1403
+ metadata?: Record<string, unknown> | undefined;
1404
+ }[] | undefined;
1405
+ captions?: {
1406
+ segments: {
1407
+ words: {
1408
+ startMs: number;
1409
+ endMs: number;
1410
+ text: string;
1411
+ emphasis?: boolean | undefined;
1412
+ annotate?: "circle" | "underline" | undefined;
1413
+ }[];
1414
+ }[];
1415
+ source: "derived";
1416
+ from: {
1417
+ clipId: string;
1418
+ };
1419
+ zPlane?: "front" | "behind-subject" | undefined;
1420
+ style?: {
1421
+ position?: "top" | "center" | "bottom" | undefined;
1422
+ fontFamily?: string | undefined;
1423
+ fontSize?: number | undefined;
1424
+ fontWeight?: number | undefined;
1425
+ color?: string | undefined;
1426
+ highlightColor?: string | undefined;
1427
+ backgroundColor?: string | undefined;
1428
+ plate?: "none" | "glass" | "solid" | undefined;
1429
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
1430
+ emphasisColor?: string | undefined;
1431
+ emphasisGradient?: string | undefined;
1432
+ emphasisScale?: number | undefined;
1433
+ emphasisFontFamily?: string | undefined;
1434
+ emphasisFontWeight?: number | undefined;
1435
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
1436
+ emphasisLetterSpacing?: number | undefined;
1437
+ emphasisFontStyle?: "normal" | "italic" | undefined;
1438
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
1439
+ entranceMs?: number | undefined;
1440
+ entranceStaggerMs?: number | undefined;
1441
+ exitMs?: number | undefined;
1442
+ emphasisPlate?: boolean | undefined;
1443
+ emphasisPlateColor?: string | undefined;
1444
+ emphasisPlateTextColor?: string | undefined;
1445
+ emphasisPlateAltColor?: string | undefined;
1446
+ emphasisPlateAltTextColor?: string | undefined;
1447
+ emphasisPlateRadius?: number | undefined;
1448
+ emphasisPlatePadX?: number | undefined;
1449
+ emphasisPlatePadY?: number | undefined;
1450
+ annotationColor?: string | undefined;
1451
+ maxWidthPercent?: number | undefined;
1452
+ } | undefined;
1453
+ } | {
1454
+ segments: {
1455
+ words: {
1456
+ startMs: number;
1457
+ endMs: number;
1458
+ text: string;
1459
+ emphasis?: boolean | undefined;
1460
+ annotate?: "circle" | "underline" | undefined;
1461
+ }[];
1462
+ }[];
1463
+ source: "authored";
1464
+ zPlane?: "front" | "behind-subject" | undefined;
1465
+ style?: {
1466
+ position?: "top" | "center" | "bottom" | undefined;
1467
+ fontFamily?: string | undefined;
1468
+ fontSize?: number | undefined;
1469
+ fontWeight?: number | undefined;
1470
+ color?: string | undefined;
1471
+ highlightColor?: string | undefined;
1472
+ backgroundColor?: string | undefined;
1473
+ plate?: "none" | "glass" | "solid" | undefined;
1474
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
1475
+ emphasisColor?: string | undefined;
1476
+ emphasisGradient?: string | undefined;
1477
+ emphasisScale?: number | undefined;
1478
+ emphasisFontFamily?: string | undefined;
1479
+ emphasisFontWeight?: number | undefined;
1480
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
1481
+ emphasisLetterSpacing?: number | undefined;
1482
+ emphasisFontStyle?: "normal" | "italic" | undefined;
1483
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
1484
+ entranceMs?: number | undefined;
1485
+ entranceStaggerMs?: number | undefined;
1486
+ exitMs?: number | undefined;
1487
+ emphasisPlate?: boolean | undefined;
1488
+ emphasisPlateColor?: string | undefined;
1489
+ emphasisPlateTextColor?: string | undefined;
1490
+ emphasisPlateAltColor?: string | undefined;
1491
+ emphasisPlateAltTextColor?: string | undefined;
1492
+ emphasisPlateRadius?: number | undefined;
1493
+ emphasisPlatePadX?: number | undefined;
1494
+ emphasisPlatePadY?: number | undefined;
1495
+ annotationColor?: string | undefined;
1496
+ maxWidthPercent?: number | undefined;
1497
+ } | undefined;
1498
+ } | undefined;
1499
+ sourceSuggestionId?: string | undefined;
1500
+ license?: {
1501
+ type: string;
1502
+ source?: string | undefined;
1503
+ notes?: string | undefined;
1504
+ } | undefined;
1505
+ licenseVerification?: "attested" | "cueframe-verified" | "third-party-verified" | undefined;
1506
+ accessibility?: {
1507
+ notes?: string | undefined;
1508
+ audioDescriptionTrackId?: string | undefined;
1509
+ captionsTrackId?: string | undefined;
1510
+ signLanguageTrackId?: string | undefined;
1511
+ } | undefined;
1512
+ ownerOrgId?: string | undefined;
1513
+ acl?: {
1514
+ public?: boolean | undefined;
1515
+ readerOrgIds?: string[] | undefined;
1516
+ writerOrgIds?: string[] | undefined;
1517
+ } | undefined;
1518
+ };
1519
+ commandId: string;
1520
+ expectedRevision: number;
1521
+ operationId: string;
1522
+ clientId: string;
1523
+ sequence: number;
1524
+ }, {
1525
+ projectId: string;
1526
+ revision: number;
1527
+ commandId: string;
1528
+ compositionId: string;
1529
+ acknowledgedOperationIds: string[];
1530
+ }, string | undefined>;
1531
+ declare const parseCompatibilityInput: (value: unknown) => {
1532
+ clientVersion: string;
1533
+ contractVersion: 1;
1534
+ };
1535
+ declare const parseCompatibilityResult: (value: unknown) => {
1536
+ contractVersion: 1;
1537
+ compatible: boolean;
1538
+ minimumClientVersion: string;
1539
+ };
1540
+ declare const parseSessionInput: (value: unknown) => {};
1541
+ declare const parseSessionResult: (value: unknown) => {
1542
+ user: {
1543
+ id: string;
1544
+ name: string | null;
1545
+ email: string | null;
1546
+ image: string | null;
1547
+ } | null;
1548
+ activeOrg: {
1549
+ id: string;
1550
+ name?: string | null | undefined;
1551
+ } | null;
1552
+ };
1553
+ declare const parseProjectListInput: (value: unknown) => {
1554
+ limit: number;
1555
+ cursor?: string | undefined;
1556
+ };
1557
+ declare const parseProjectListResult: (value: unknown) => {
1558
+ items: {
1559
+ id: string;
1560
+ name: string;
1561
+ createdAt: number;
1562
+ updatedAt: number;
1563
+ revision: number;
1564
+ }[];
1565
+ nextCursor: string | null;
1566
+ done: boolean;
1567
+ };
1568
+ declare const parseProjectSnapshotInput: (value: unknown) => {
1569
+ projectId: string;
1570
+ };
1571
+ declare const parseProjectSnapshotResult: (value: unknown) => {
1572
+ project: {
1573
+ id: string;
1574
+ name: string;
1575
+ createdAt: number;
1576
+ updatedAt: number;
1577
+ };
1578
+ revision: number;
1579
+ activeComposition: {
1580
+ id: string;
1581
+ composition: {
1582
+ v: 1;
1583
+ format: {
1584
+ aspectRatio: "16:9" | "9:16" | "1:1" | "4:5";
1585
+ fps?: 24 | 30 | 60 | undefined;
1586
+ resolution?: "hd" | "fhd" | "4k" | undefined;
1587
+ platform?: string | undefined;
1588
+ };
1589
+ tracks: {
1590
+ contents: ({
1591
+ id: string;
1592
+ duration: number;
1593
+ startTime: number;
1594
+ source: {
1595
+ kind: "media";
1596
+ mediaId: string;
1597
+ reframe?: {
1598
+ segments: {
1599
+ startSec: number;
1600
+ endSec: number;
1601
+ focus: {
1602
+ mode: "frame-center";
1603
+ } | {
1604
+ mode: "point";
1605
+ x: number;
1606
+ y: number;
1607
+ } | {
1608
+ faceId: string;
1609
+ mode: "face";
1610
+ shotScale?: "close" | "standard" | "wide" | undefined;
1611
+ } | {
1612
+ mode: "all-faces";
1613
+ } | {
1614
+ mode: "active-speaker";
1615
+ };
1616
+ intent?: string | undefined;
1617
+ zoom?: number | undefined;
1618
+ ease?: {
1619
+ in: number;
1620
+ out: number;
1621
+ } | undefined;
1622
+ bias?: {
1623
+ x: number;
1624
+ y: number;
1625
+ } | undefined;
1626
+ }[];
1627
+ } | undefined;
1628
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
1629
+ trim?: {
1630
+ start: number;
1631
+ end: number;
1632
+ } | undefined;
1633
+ excludedRanges?: {
1634
+ start: number;
1635
+ end: number;
1636
+ reason?: string | undefined;
1637
+ }[] | undefined;
1638
+ volume?: number | undefined;
1639
+ muted?: boolean | undefined;
1640
+ playbackRate?: number | undefined;
1641
+ sync?: "video" | "independent" | undefined;
1642
+ volumeDb?: number | undefined;
1643
+ fadeInMs?: number | undefined;
1644
+ fadeOutMs?: number | undefined;
1645
+ loop?: boolean | undefined;
1646
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
1647
+ duck?: {
1648
+ duckDb: number;
1649
+ attackMs: number;
1650
+ releaseMs: number;
1651
+ windows?: {
1652
+ startMs: number;
1653
+ endMs: number;
1654
+ }[] | undefined;
1655
+ } | undefined;
1656
+ anchor?: {
1657
+ clipId: string;
1658
+ offsetMs: number;
1659
+ } | undefined;
1660
+ } | {
1661
+ kind: "component";
1662
+ componentId: string;
1663
+ props: Record<string, unknown>;
1664
+ zPlane?: "front" | "behind-subject" | undefined;
1665
+ } | {
1666
+ params: Record<string, unknown>;
1667
+ kind: "overlay";
1668
+ primitiveId: string;
1669
+ anchor?: {
1670
+ x: number;
1671
+ y: number;
1672
+ space: "scene";
1673
+ } | undefined;
1674
+ zPlane?: "front" | "behind-subject" | undefined;
1675
+ parallax?: number | undefined;
1676
+ } | {
1677
+ kind: "effect";
1678
+ primitiveId: string;
1679
+ params?: Record<string, unknown> | undefined;
1680
+ } | {
1681
+ kind: "alpha-layer";
1682
+ componentId: string;
1683
+ props: Record<string, unknown>;
1684
+ zPlane?: "front" | "behind-subject" | undefined;
1685
+ } | {
1686
+ kind: "card";
1687
+ html: string;
1688
+ zPlane?: "front" | undefined;
1689
+ tokens?: Record<string, string> | undefined;
1690
+ } | {
1691
+ kind: "composition";
1692
+ compositionId: string;
1693
+ trim?: {
1694
+ start: number;
1695
+ end: number;
1696
+ } | undefined;
1697
+ };
1698
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
1699
+ opacity?: number | undefined;
1700
+ scale?: number | undefined;
1701
+ rotation?: number | undefined;
1702
+ position?: {
1703
+ x: number;
1704
+ y: number;
1705
+ } | undefined;
1706
+ region?: {
1707
+ x: number;
1708
+ y: number;
1709
+ w: number;
1710
+ h: number;
1711
+ } | undefined;
1712
+ fit?: "cover" | "contain" | undefined;
1713
+ effects?: {
1714
+ primitiveId: string;
1715
+ params?: Record<string, unknown> | undefined;
1716
+ }[] | undefined;
1717
+ transitionIn?: {
1718
+ type: string;
1719
+ duration: number;
1720
+ } | undefined;
1721
+ linkGroupId?: string | undefined;
1722
+ animate?: Record<string, {
1723
+ value: number;
1724
+ time: number;
1725
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
1726
+ cubicBezier: [number, number, number, number];
1727
+ } | undefined;
1728
+ }[]> | undefined;
1729
+ } | {
1730
+ id: string;
1731
+ duration: number;
1732
+ startTime: number;
1733
+ })[];
1734
+ id: string;
1735
+ kind: "overlay" | "video" | "effect" | "audio" | "image";
1736
+ enabled?: boolean | undefined;
1737
+ volume?: number | undefined;
1738
+ name?: string | undefined;
1739
+ }[];
1740
+ markers?: {
1741
+ id: string;
1742
+ kind: string;
1743
+ startTime: number;
1744
+ name?: string | undefined;
1745
+ endTime?: number | undefined;
1746
+ metadata?: Record<string, unknown> | undefined;
1747
+ }[] | undefined;
1748
+ captions?: {
1749
+ segments: {
1750
+ words: {
1751
+ startMs: number;
1752
+ endMs: number;
1753
+ text: string;
1754
+ emphasis?: boolean | undefined;
1755
+ annotate?: "circle" | "underline" | undefined;
1756
+ }[];
1757
+ }[];
1758
+ source: "derived";
1759
+ from: {
1760
+ clipId: string;
1761
+ };
1762
+ zPlane?: "front" | "behind-subject" | undefined;
1763
+ style?: {
1764
+ position?: "top" | "center" | "bottom" | undefined;
1765
+ fontFamily?: string | undefined;
1766
+ fontSize?: number | undefined;
1767
+ fontWeight?: number | undefined;
1768
+ color?: string | undefined;
1769
+ highlightColor?: string | undefined;
1770
+ backgroundColor?: string | undefined;
1771
+ plate?: "none" | "glass" | "solid" | undefined;
1772
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
1773
+ emphasisColor?: string | undefined;
1774
+ emphasisGradient?: string | undefined;
1775
+ emphasisScale?: number | undefined;
1776
+ emphasisFontFamily?: string | undefined;
1777
+ emphasisFontWeight?: number | undefined;
1778
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
1779
+ emphasisLetterSpacing?: number | undefined;
1780
+ emphasisFontStyle?: "normal" | "italic" | undefined;
1781
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
1782
+ entranceMs?: number | undefined;
1783
+ entranceStaggerMs?: number | undefined;
1784
+ exitMs?: number | undefined;
1785
+ emphasisPlate?: boolean | undefined;
1786
+ emphasisPlateColor?: string | undefined;
1787
+ emphasisPlateTextColor?: string | undefined;
1788
+ emphasisPlateAltColor?: string | undefined;
1789
+ emphasisPlateAltTextColor?: string | undefined;
1790
+ emphasisPlateRadius?: number | undefined;
1791
+ emphasisPlatePadX?: number | undefined;
1792
+ emphasisPlatePadY?: number | undefined;
1793
+ annotationColor?: string | undefined;
1794
+ maxWidthPercent?: number | undefined;
1795
+ } | undefined;
1796
+ } | {
1797
+ segments: {
1798
+ words: {
1799
+ startMs: number;
1800
+ endMs: number;
1801
+ text: string;
1802
+ emphasis?: boolean | undefined;
1803
+ annotate?: "circle" | "underline" | undefined;
1804
+ }[];
1805
+ }[];
1806
+ source: "authored";
1807
+ zPlane?: "front" | "behind-subject" | undefined;
1808
+ style?: {
1809
+ position?: "top" | "center" | "bottom" | undefined;
1810
+ fontFamily?: string | undefined;
1811
+ fontSize?: number | undefined;
1812
+ fontWeight?: number | undefined;
1813
+ color?: string | undefined;
1814
+ highlightColor?: string | undefined;
1815
+ backgroundColor?: string | undefined;
1816
+ plate?: "none" | "glass" | "solid" | undefined;
1817
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
1818
+ emphasisColor?: string | undefined;
1819
+ emphasisGradient?: string | undefined;
1820
+ emphasisScale?: number | undefined;
1821
+ emphasisFontFamily?: string | undefined;
1822
+ emphasisFontWeight?: number | undefined;
1823
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
1824
+ emphasisLetterSpacing?: number | undefined;
1825
+ emphasisFontStyle?: "normal" | "italic" | undefined;
1826
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
1827
+ entranceMs?: number | undefined;
1828
+ entranceStaggerMs?: number | undefined;
1829
+ exitMs?: number | undefined;
1830
+ emphasisPlate?: boolean | undefined;
1831
+ emphasisPlateColor?: string | undefined;
1832
+ emphasisPlateTextColor?: string | undefined;
1833
+ emphasisPlateAltColor?: string | undefined;
1834
+ emphasisPlateAltTextColor?: string | undefined;
1835
+ emphasisPlateRadius?: number | undefined;
1836
+ emphasisPlatePadX?: number | undefined;
1837
+ emphasisPlatePadY?: number | undefined;
1838
+ annotationColor?: string | undefined;
1839
+ maxWidthPercent?: number | undefined;
1840
+ } | undefined;
1841
+ } | undefined;
1842
+ sourceSuggestionId?: string | undefined;
1843
+ license?: {
1844
+ type: string;
1845
+ source?: string | undefined;
1846
+ notes?: string | undefined;
1847
+ } | undefined;
1848
+ licenseVerification?: "attested" | "cueframe-verified" | "third-party-verified" | undefined;
1849
+ accessibility?: {
1850
+ notes?: string | undefined;
1851
+ audioDescriptionTrackId?: string | undefined;
1852
+ captionsTrackId?: string | undefined;
1853
+ signLanguageTrackId?: string | undefined;
1854
+ } | undefined;
1855
+ ownerOrgId?: string | undefined;
1856
+ acl?: {
1857
+ public?: boolean | undefined;
1858
+ readerOrgIds?: string[] | undefined;
1859
+ writerOrgIds?: string[] | undefined;
1860
+ } | undefined;
1861
+ };
1862
+ } | null;
1863
+ };
1864
+ declare const parseCreateProjectInput: (value: unknown) => {
1865
+ name: string;
1866
+ commandId: string;
1867
+ description?: string | undefined;
1868
+ settings?: {
1869
+ width: number;
1870
+ height: number;
1871
+ } | undefined;
1872
+ };
1873
+ declare const parseCreateProjectResult: (value: unknown) => {
1874
+ project: {
1875
+ id: string;
1876
+ name: string;
1877
+ createdAt: number;
1878
+ updatedAt: number;
1879
+ revision: number;
1880
+ };
1881
+ revision: number;
1882
+ commandId: string;
1883
+ };
1884
+ declare const parseUpdateProjectInput: (value: unknown) => {
1885
+ projectId: string;
1886
+ commandId: string;
1887
+ expectedRevision: number;
1888
+ name?: string | undefined;
1889
+ description?: string | undefined;
1890
+ settings?: {
1891
+ width: number;
1892
+ height: number;
1893
+ } | undefined;
1894
+ };
1895
+ declare const parseUpdateProjectResult: (value: unknown) => {
1896
+ project: {
1897
+ id: string;
1898
+ name: string;
1899
+ createdAt: number;
1900
+ updatedAt: number;
1901
+ revision: number;
1902
+ };
1903
+ revision: number;
1904
+ commandId: string;
1905
+ };
1906
+ declare const parseRemoveProjectInput: (value: unknown) => {
1907
+ projectId: string;
1908
+ commandId: string;
1909
+ expectedRevision: number;
1910
+ };
1911
+ declare const parseRemoveProjectResult: (value: unknown) => {
1912
+ projectId: string;
1913
+ revision: number;
1914
+ commandId: string;
1915
+ };
1916
+ declare const parseApplyCompositionInput: (value: unknown) => {
1917
+ projectId: string;
1918
+ commandId: string;
1919
+ expectedRevision: number;
1920
+ operations: {
1921
+ operationId: string;
1922
+ operation: {
1923
+ type: "clip.add";
1924
+ clip: {
1925
+ id: string;
1926
+ duration: number;
1927
+ startTime: number;
1928
+ source: {
1929
+ kind: "media";
1930
+ mediaId: string;
1931
+ reframe?: {
1932
+ segments: {
1933
+ startSec: number;
1934
+ endSec: number;
1935
+ focus: {
1936
+ mode: "frame-center";
1937
+ } | {
1938
+ mode: "point";
1939
+ x: number;
1940
+ y: number;
1941
+ } | {
1942
+ faceId: string;
1943
+ mode: "face";
1944
+ shotScale?: "close" | "standard" | "wide" | undefined;
1945
+ } | {
1946
+ mode: "all-faces";
1947
+ } | {
1948
+ mode: "active-speaker";
1949
+ };
1950
+ intent?: string | undefined;
1951
+ zoom?: number | undefined;
1952
+ ease?: {
1953
+ in: number;
1954
+ out: number;
1955
+ } | undefined;
1956
+ bias?: {
1957
+ x: number;
1958
+ y: number;
1959
+ } | undefined;
1960
+ }[];
1961
+ } | undefined;
1962
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
1963
+ trim?: {
1964
+ start: number;
1965
+ end: number;
1966
+ } | undefined;
1967
+ excludedRanges?: {
1968
+ start: number;
1969
+ end: number;
1970
+ reason?: string | undefined;
1971
+ }[] | undefined;
1972
+ volume?: number | undefined;
1973
+ muted?: boolean | undefined;
1974
+ playbackRate?: number | undefined;
1975
+ sync?: "video" | "independent" | undefined;
1976
+ volumeDb?: number | undefined;
1977
+ fadeInMs?: number | undefined;
1978
+ fadeOutMs?: number | undefined;
1979
+ loop?: boolean | undefined;
1980
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
1981
+ duck?: {
1982
+ duckDb: number;
1983
+ attackMs: number;
1984
+ releaseMs: number;
1985
+ windows?: {
1986
+ startMs: number;
1987
+ endMs: number;
1988
+ }[] | undefined;
1989
+ } | undefined;
1990
+ anchor?: {
1991
+ clipId: string;
1992
+ offsetMs: number;
1993
+ } | undefined;
1994
+ } | {
1995
+ kind: "component";
1996
+ componentId: string;
1997
+ props: Record<string, unknown>;
1998
+ zPlane?: "front" | "behind-subject" | undefined;
1999
+ } | {
2000
+ params: Record<string, unknown>;
2001
+ kind: "overlay";
2002
+ primitiveId: string;
2003
+ anchor?: {
2004
+ x: number;
2005
+ y: number;
2006
+ space: "scene";
2007
+ } | undefined;
2008
+ zPlane?: "front" | "behind-subject" | undefined;
2009
+ parallax?: number | undefined;
2010
+ } | {
2011
+ kind: "effect";
2012
+ primitiveId: string;
2013
+ params?: Record<string, unknown> | undefined;
2014
+ } | {
2015
+ kind: "alpha-layer";
2016
+ componentId: string;
2017
+ props: Record<string, unknown>;
2018
+ zPlane?: "front" | "behind-subject" | undefined;
2019
+ } | {
2020
+ kind: "card";
2021
+ html: string;
2022
+ zPlane?: "front" | undefined;
2023
+ tokens?: Record<string, string> | undefined;
2024
+ } | {
2025
+ kind: "composition";
2026
+ compositionId: string;
2027
+ trim?: {
2028
+ start: number;
2029
+ end: number;
2030
+ } | undefined;
2031
+ };
2032
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
2033
+ opacity?: number | undefined;
2034
+ scale?: number | undefined;
2035
+ rotation?: number | undefined;
2036
+ position?: {
2037
+ x: number;
2038
+ y: number;
2039
+ } | undefined;
2040
+ region?: {
2041
+ x: number;
2042
+ y: number;
2043
+ w: number;
2044
+ h: number;
2045
+ } | undefined;
2046
+ fit?: "cover" | "contain" | undefined;
2047
+ effects?: {
2048
+ primitiveId: string;
2049
+ params?: Record<string, unknown> | undefined;
2050
+ }[] | undefined;
2051
+ transitionIn?: {
2052
+ type: string;
2053
+ duration: number;
2054
+ } | undefined;
2055
+ linkGroupId?: string | undefined;
2056
+ animate?: Record<string, {
2057
+ value: number;
2058
+ time: number;
2059
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
2060
+ cubicBezier: [number, number, number, number];
2061
+ } | undefined;
2062
+ }[]> | undefined;
2063
+ };
2064
+ trackId?: string | undefined;
2065
+ newTrack?: boolean | undefined;
2066
+ newTrackId?: string | undefined;
2067
+ } | {
2068
+ type: "clip.remove";
2069
+ clipId: string;
2070
+ } | {
2071
+ type: "clip.update";
2072
+ clipId: string;
2073
+ patch: {
2074
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
2075
+ id?: string | undefined;
2076
+ startTime?: number | undefined;
2077
+ duration?: number | undefined;
2078
+ source?: {
2079
+ kind: "media";
2080
+ mediaId: string;
2081
+ reframe?: {
2082
+ segments: {
2083
+ startSec: number;
2084
+ endSec: number;
2085
+ focus: {
2086
+ mode: "frame-center";
2087
+ } | {
2088
+ mode: "point";
2089
+ x: number;
2090
+ y: number;
2091
+ } | {
2092
+ faceId: string;
2093
+ mode: "face";
2094
+ shotScale?: "close" | "standard" | "wide" | undefined;
2095
+ } | {
2096
+ mode: "all-faces";
2097
+ } | {
2098
+ mode: "active-speaker";
2099
+ };
2100
+ intent?: string | undefined;
2101
+ zoom?: number | undefined;
2102
+ ease?: {
2103
+ in: number;
2104
+ out: number;
2105
+ } | undefined;
2106
+ bias?: {
2107
+ x: number;
2108
+ y: number;
2109
+ } | undefined;
2110
+ }[];
2111
+ } | undefined;
2112
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
2113
+ trim?: {
2114
+ start: number;
2115
+ end: number;
2116
+ } | undefined;
2117
+ excludedRanges?: {
2118
+ start: number;
2119
+ end: number;
2120
+ reason?: string | undefined;
2121
+ }[] | undefined;
2122
+ volume?: number | undefined;
2123
+ muted?: boolean | undefined;
2124
+ playbackRate?: number | undefined;
2125
+ sync?: "video" | "independent" | undefined;
2126
+ volumeDb?: number | undefined;
2127
+ fadeInMs?: number | undefined;
2128
+ fadeOutMs?: number | undefined;
2129
+ loop?: boolean | undefined;
2130
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
2131
+ duck?: {
2132
+ duckDb: number;
2133
+ attackMs: number;
2134
+ releaseMs: number;
2135
+ windows?: {
2136
+ startMs: number;
2137
+ endMs: number;
2138
+ }[] | undefined;
2139
+ } | undefined;
2140
+ anchor?: {
2141
+ clipId: string;
2142
+ offsetMs: number;
2143
+ } | undefined;
2144
+ } | {
2145
+ kind: "component";
2146
+ componentId: string;
2147
+ props: Record<string, unknown>;
2148
+ zPlane?: "front" | "behind-subject" | undefined;
2149
+ } | {
2150
+ params: Record<string, unknown>;
2151
+ kind: "overlay";
2152
+ primitiveId: string;
2153
+ anchor?: {
2154
+ x: number;
2155
+ y: number;
2156
+ space: "scene";
2157
+ } | undefined;
2158
+ zPlane?: "front" | "behind-subject" | undefined;
2159
+ parallax?: number | undefined;
2160
+ } | {
2161
+ kind: "effect";
2162
+ primitiveId: string;
2163
+ params?: Record<string, unknown> | undefined;
2164
+ } | {
2165
+ kind: "alpha-layer";
2166
+ componentId: string;
2167
+ props: Record<string, unknown>;
2168
+ zPlane?: "front" | "behind-subject" | undefined;
2169
+ } | {
2170
+ kind: "card";
2171
+ html: string;
2172
+ zPlane?: "front" | undefined;
2173
+ tokens?: Record<string, string> | undefined;
2174
+ } | {
2175
+ kind: "composition";
2176
+ compositionId: string;
2177
+ trim?: {
2178
+ start: number;
2179
+ end: number;
2180
+ } | undefined;
2181
+ } | undefined;
2182
+ opacity?: number | undefined;
2183
+ scale?: number | undefined;
2184
+ rotation?: number | undefined;
2185
+ position?: {
2186
+ x: number;
2187
+ y: number;
2188
+ } | undefined;
2189
+ region?: {
2190
+ x: number;
2191
+ y: number;
2192
+ w: number;
2193
+ h: number;
2194
+ } | undefined;
2195
+ fit?: "cover" | "contain" | undefined;
2196
+ effects?: {
2197
+ primitiveId: string;
2198
+ params?: Record<string, unknown> | undefined;
2199
+ }[] | undefined;
2200
+ transitionIn?: {
2201
+ type: string;
2202
+ duration: number;
2203
+ } | undefined;
2204
+ linkGroupId?: string | undefined;
2205
+ animate?: Record<string, {
2206
+ value: number;
2207
+ time: number;
2208
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
2209
+ cubicBezier: [number, number, number, number];
2210
+ } | undefined;
2211
+ }[]> | undefined;
2212
+ };
2213
+ } | {
2214
+ type: "removeClipsByMediaId";
2215
+ mediaId: string;
2216
+ } | {
2217
+ type: "loadOverlays";
2218
+ clips: {
2219
+ id: string;
2220
+ duration: number;
2221
+ startTime: number;
2222
+ source: {
2223
+ kind: "media";
2224
+ mediaId: string;
2225
+ reframe?: {
2226
+ segments: {
2227
+ startSec: number;
2228
+ endSec: number;
2229
+ focus: {
2230
+ mode: "frame-center";
2231
+ } | {
2232
+ mode: "point";
2233
+ x: number;
2234
+ y: number;
2235
+ } | {
2236
+ faceId: string;
2237
+ mode: "face";
2238
+ shotScale?: "close" | "standard" | "wide" | undefined;
2239
+ } | {
2240
+ mode: "all-faces";
2241
+ } | {
2242
+ mode: "active-speaker";
2243
+ };
2244
+ intent?: string | undefined;
2245
+ zoom?: number | undefined;
2246
+ ease?: {
2247
+ in: number;
2248
+ out: number;
2249
+ } | undefined;
2250
+ bias?: {
2251
+ x: number;
2252
+ y: number;
2253
+ } | undefined;
2254
+ }[];
2255
+ } | undefined;
2256
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
2257
+ trim?: {
2258
+ start: number;
2259
+ end: number;
2260
+ } | undefined;
2261
+ excludedRanges?: {
2262
+ start: number;
2263
+ end: number;
2264
+ reason?: string | undefined;
2265
+ }[] | undefined;
2266
+ volume?: number | undefined;
2267
+ muted?: boolean | undefined;
2268
+ playbackRate?: number | undefined;
2269
+ sync?: "video" | "independent" | undefined;
2270
+ volumeDb?: number | undefined;
2271
+ fadeInMs?: number | undefined;
2272
+ fadeOutMs?: number | undefined;
2273
+ loop?: boolean | undefined;
2274
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
2275
+ duck?: {
2276
+ duckDb: number;
2277
+ attackMs: number;
2278
+ releaseMs: number;
2279
+ windows?: {
2280
+ startMs: number;
2281
+ endMs: number;
2282
+ }[] | undefined;
2283
+ } | undefined;
2284
+ anchor?: {
2285
+ clipId: string;
2286
+ offsetMs: number;
2287
+ } | undefined;
2288
+ } | {
2289
+ kind: "component";
2290
+ componentId: string;
2291
+ props: Record<string, unknown>;
2292
+ zPlane?: "front" | "behind-subject" | undefined;
2293
+ } | {
2294
+ params: Record<string, unknown>;
2295
+ kind: "overlay";
2296
+ primitiveId: string;
2297
+ anchor?: {
2298
+ x: number;
2299
+ y: number;
2300
+ space: "scene";
2301
+ } | undefined;
2302
+ zPlane?: "front" | "behind-subject" | undefined;
2303
+ parallax?: number | undefined;
2304
+ } | {
2305
+ kind: "effect";
2306
+ primitiveId: string;
2307
+ params?: Record<string, unknown> | undefined;
2308
+ } | {
2309
+ kind: "alpha-layer";
2310
+ componentId: string;
2311
+ props: Record<string, unknown>;
2312
+ zPlane?: "front" | "behind-subject" | undefined;
2313
+ } | {
2314
+ kind: "card";
2315
+ html: string;
2316
+ zPlane?: "front" | undefined;
2317
+ tokens?: Record<string, string> | undefined;
2318
+ } | {
2319
+ kind: "composition";
2320
+ compositionId: string;
2321
+ trim?: {
2322
+ start: number;
2323
+ end: number;
2324
+ } | undefined;
2325
+ };
2326
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
2327
+ opacity?: number | undefined;
2328
+ scale?: number | undefined;
2329
+ rotation?: number | undefined;
2330
+ position?: {
2331
+ x: number;
2332
+ y: number;
2333
+ } | undefined;
2334
+ region?: {
2335
+ x: number;
2336
+ y: number;
2337
+ w: number;
2338
+ h: number;
2339
+ } | undefined;
2340
+ fit?: "cover" | "contain" | undefined;
2341
+ effects?: {
2342
+ primitiveId: string;
2343
+ params?: Record<string, unknown> | undefined;
2344
+ }[] | undefined;
2345
+ transitionIn?: {
2346
+ type: string;
2347
+ duration: number;
2348
+ } | undefined;
2349
+ linkGroupId?: string | undefined;
2350
+ animate?: Record<string, {
2351
+ value: number;
2352
+ time: number;
2353
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
2354
+ cubicBezier: [number, number, number, number];
2355
+ } | undefined;
2356
+ }[]> | undefined;
2357
+ }[];
2358
+ } | {
2359
+ type: "addMarker";
2360
+ marker: {
2361
+ id: string;
2362
+ kind: string;
2363
+ startTime: number;
2364
+ name?: string | undefined;
2365
+ endTime?: number | undefined;
2366
+ metadata?: Record<string, unknown> | undefined;
2367
+ };
2368
+ } | {
2369
+ type: "removeMarker";
2370
+ markerId: string;
2371
+ } | {
2372
+ type: "updateMarker";
2373
+ markerId: string;
2374
+ updates: {
2375
+ kind?: string | undefined;
2376
+ name?: string | undefined;
2377
+ id?: string | undefined;
2378
+ startTime?: number | undefined;
2379
+ endTime?: number | undefined;
2380
+ metadata?: Record<string, unknown> | undefined;
2381
+ };
2382
+ } | {
2383
+ type: "setCropIntents";
2384
+ clipId: string;
2385
+ segments: {
2386
+ startSec: number;
2387
+ endSec: number;
2388
+ focus: {
2389
+ mode: "frame-center";
2390
+ } | {
2391
+ mode: "point";
2392
+ x: number;
2393
+ y: number;
2394
+ } | {
2395
+ faceId: string;
2396
+ mode: "face";
2397
+ shotScale?: "close" | "standard" | "wide" | undefined;
2398
+ } | {
2399
+ mode: "all-faces";
2400
+ } | {
2401
+ mode: "active-speaker";
2402
+ };
2403
+ intent?: string | undefined;
2404
+ zoom?: number | undefined;
2405
+ ease?: {
2406
+ in: number;
2407
+ out: number;
2408
+ } | undefined;
2409
+ bias?: {
2410
+ x: number;
2411
+ y: number;
2412
+ } | undefined;
2413
+ }[] | null;
2414
+ } | {
2415
+ type: "setEffects";
2416
+ clipId: string;
2417
+ effects: {
2418
+ primitiveId: string;
2419
+ params?: Record<string, unknown> | undefined;
2420
+ }[];
2421
+ } | {
2422
+ type: "setCaptionStyle";
2423
+ style: {
2424
+ position?: "top" | "center" | "bottom" | undefined;
2425
+ fontFamily?: string | undefined;
2426
+ fontSize?: number | undefined;
2427
+ fontWeight?: number | undefined;
2428
+ color?: string | undefined;
2429
+ highlightColor?: string | undefined;
2430
+ backgroundColor?: string | undefined;
2431
+ plate?: "glass" | "solid" | "none" | undefined;
2432
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
2433
+ emphasisColor?: string | undefined;
2434
+ emphasisGradient?: string | undefined;
2435
+ emphasisScale?: number | undefined;
2436
+ emphasisFontFamily?: string | undefined;
2437
+ emphasisFontWeight?: number | undefined;
2438
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
2439
+ emphasisLetterSpacing?: number | undefined;
2440
+ emphasisFontStyle?: "normal" | "italic" | undefined;
2441
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
2442
+ entranceMs?: number | undefined;
2443
+ entranceStaggerMs?: number | undefined;
2444
+ exitMs?: number | undefined;
2445
+ emphasisPlate?: boolean | undefined;
2446
+ emphasisPlateColor?: string | undefined;
2447
+ emphasisPlateTextColor?: string | undefined;
2448
+ emphasisPlateAltColor?: string | undefined;
2449
+ emphasisPlateAltTextColor?: string | undefined;
2450
+ emphasisPlateRadius?: number | undefined;
2451
+ emphasisPlatePadX?: number | undefined;
2452
+ emphasisPlatePadY?: number | undefined;
2453
+ annotationColor?: string | undefined;
2454
+ maxWidthPercent?: number | undefined;
2455
+ };
2456
+ } | {
2457
+ type: "setCaptionDepth";
2458
+ zPlane: "front" | "behind-subject";
2459
+ } | {
2460
+ type: "setCaptions";
2461
+ segments: {
2462
+ words: {
2463
+ startMs: number;
2464
+ endMs: number;
2465
+ text: string;
2466
+ emphasis?: boolean | undefined;
2467
+ annotate?: "circle" | "underline" | undefined;
2468
+ }[];
2469
+ }[];
2470
+ style?: {
2471
+ position?: "top" | "center" | "bottom" | undefined;
2472
+ fontFamily?: string | undefined;
2473
+ fontSize?: number | undefined;
2474
+ fontWeight?: number | undefined;
2475
+ color?: string | undefined;
2476
+ highlightColor?: string | undefined;
2477
+ backgroundColor?: string | undefined;
2478
+ plate?: "glass" | "solid" | "none" | undefined;
2479
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
2480
+ emphasisColor?: string | undefined;
2481
+ emphasisGradient?: string | undefined;
2482
+ emphasisScale?: number | undefined;
2483
+ emphasisFontFamily?: string | undefined;
2484
+ emphasisFontWeight?: number | undefined;
2485
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
2486
+ emphasisLetterSpacing?: number | undefined;
2487
+ emphasisFontStyle?: "normal" | "italic" | undefined;
2488
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
2489
+ entranceMs?: number | undefined;
2490
+ entranceStaggerMs?: number | undefined;
2491
+ exitMs?: number | undefined;
2492
+ emphasisPlate?: boolean | undefined;
2493
+ emphasisPlateColor?: string | undefined;
2494
+ emphasisPlateTextColor?: string | undefined;
2495
+ emphasisPlateAltColor?: string | undefined;
2496
+ emphasisPlateAltTextColor?: string | undefined;
2497
+ emphasisPlateRadius?: number | undefined;
2498
+ emphasisPlatePadX?: number | undefined;
2499
+ emphasisPlatePadY?: number | undefined;
2500
+ annotationColor?: string | undefined;
2501
+ maxWidthPercent?: number | undefined;
2502
+ } | undefined;
2503
+ } | {
2504
+ type: "applyMotionPreset";
2505
+ clipId: string;
2506
+ preset: string;
2507
+ params?: {
2508
+ exitMs?: number | undefined;
2509
+ enterMs?: number | undefined;
2510
+ staggerMs?: number | undefined;
2511
+ } | undefined;
2512
+ } | {
2513
+ type: "materializeGrid";
2514
+ clipId: string;
2515
+ grid: "beat" | "word" | "shot";
2516
+ maxMarkers?: number | undefined;
2517
+ } | {
2518
+ type: "captions.fromTranscript";
2519
+ mediaId: string;
2520
+ window?: {
2521
+ startSec: number;
2522
+ endSec: number;
2523
+ } | undefined;
2524
+ } | {
2525
+ type: "setFormat";
2526
+ format: {
2527
+ aspectRatio: "16:9" | "9:16" | "1:1" | "4:5";
2528
+ fps?: 24 | 30 | 60 | undefined;
2529
+ resolution?: "hd" | "fhd" | "4k" | undefined;
2530
+ };
2531
+ } | {
2532
+ kind: "overlay" | "video" | "effect" | "audio" | "image";
2533
+ type: "addTrack";
2534
+ name?: string | undefined;
2535
+ id?: string | undefined;
2536
+ } | {
2537
+ type: "removeTrack";
2538
+ trackId: string;
2539
+ } | {
2540
+ type: "updateTrack";
2541
+ trackId: string;
2542
+ updates: {
2543
+ name?: string | undefined;
2544
+ enabled?: boolean | undefined;
2545
+ volume?: number | undefined;
2546
+ };
2547
+ } | {
2548
+ type: "reorderTracks";
2549
+ fromIndex: number;
2550
+ toIndex: number;
2551
+ } | {
2552
+ type: "moveClipToTrack";
2553
+ clipId: string;
2554
+ targetTrackId: string;
2555
+ newStartTime?: number | undefined;
2556
+ } | {
2557
+ type: "duplicateClip";
2558
+ clipId: string;
2559
+ newClipId?: string | undefined;
2560
+ } | {
2561
+ type: "cutAndRipple";
2562
+ start: number;
2563
+ end: number;
2564
+ } | {
2565
+ type: "ripple";
2566
+ time: number;
2567
+ amount: number;
2568
+ } | {
2569
+ type: "addExcludedRange";
2570
+ clipId: string;
2571
+ sourceStart: number;
2572
+ sourceEnd: number;
2573
+ reason?: string | undefined;
2574
+ } | {
2575
+ type: "removeExcludedRange";
2576
+ clipId: string;
2577
+ rangeIdx: number;
2578
+ };
2579
+ }[];
2580
+ clientId: string;
2581
+ sequence: number;
2582
+ };
2583
+ declare const parseApplyCompositionResult: (value: unknown) => {
2584
+ projectId: string;
2585
+ revision: number;
2586
+ commandId: string;
2587
+ compositionId: string;
2588
+ acknowledgedOperationIds: string[];
2589
+ };
2590
+ declare const parseReplaceCompositionInput: (value: unknown) => {
2591
+ projectId: string;
2592
+ composition: {
2593
+ v: 1;
2594
+ format: {
2595
+ aspectRatio: "16:9" | "9:16" | "1:1" | "4:5";
2596
+ fps?: 24 | 30 | 60 | undefined;
2597
+ resolution?: "hd" | "fhd" | "4k" | undefined;
2598
+ platform?: string | undefined;
2599
+ };
2600
+ tracks: {
2601
+ contents: ({
2602
+ id: string;
2603
+ duration: number;
2604
+ startTime: number;
2605
+ source: {
2606
+ kind: "media";
2607
+ mediaId: string;
2608
+ reframe?: {
2609
+ segments: {
2610
+ startSec: number;
2611
+ endSec: number;
2612
+ focus: {
2613
+ mode: "frame-center";
2614
+ } | {
2615
+ mode: "point";
2616
+ x: number;
2617
+ y: number;
2618
+ } | {
2619
+ faceId: string;
2620
+ mode: "face";
2621
+ shotScale?: "close" | "standard" | "wide" | undefined;
2622
+ } | {
2623
+ mode: "all-faces";
2624
+ } | {
2625
+ mode: "active-speaker";
2626
+ };
2627
+ intent?: string | undefined;
2628
+ zoom?: number | undefined;
2629
+ ease?: {
2630
+ in: number;
2631
+ out: number;
2632
+ } | undefined;
2633
+ bias?: {
2634
+ x: number;
2635
+ y: number;
2636
+ } | undefined;
2637
+ }[];
2638
+ } | undefined;
2639
+ kenBurns?: "none" | "in" | "out" | "pan-l" | "pan-r" | undefined;
2640
+ trim?: {
2641
+ start: number;
2642
+ end: number;
2643
+ } | undefined;
2644
+ excludedRanges?: {
2645
+ start: number;
2646
+ end: number;
2647
+ reason?: string | undefined;
2648
+ }[] | undefined;
2649
+ volume?: number | undefined;
2650
+ muted?: boolean | undefined;
2651
+ playbackRate?: number | undefined;
2652
+ sync?: "video" | "independent" | undefined;
2653
+ volumeDb?: number | undefined;
2654
+ fadeInMs?: number | undefined;
2655
+ fadeOutMs?: number | undefined;
2656
+ loop?: boolean | undefined;
2657
+ audioRole?: "sfx" | "music" | "vo" | "ambience" | undefined;
2658
+ duck?: {
2659
+ duckDb: number;
2660
+ attackMs: number;
2661
+ releaseMs: number;
2662
+ windows?: {
2663
+ startMs: number;
2664
+ endMs: number;
2665
+ }[] | undefined;
2666
+ } | undefined;
2667
+ anchor?: {
2668
+ clipId: string;
2669
+ offsetMs: number;
2670
+ } | undefined;
2671
+ } | {
2672
+ kind: "component";
2673
+ componentId: string;
2674
+ props: Record<string, unknown>;
2675
+ zPlane?: "front" | "behind-subject" | undefined;
2676
+ } | {
2677
+ params: Record<string, unknown>;
2678
+ kind: "overlay";
2679
+ primitiveId: string;
2680
+ anchor?: {
2681
+ x: number;
2682
+ y: number;
2683
+ space: "scene";
2684
+ } | undefined;
2685
+ zPlane?: "front" | "behind-subject" | undefined;
2686
+ parallax?: number | undefined;
2687
+ } | {
2688
+ kind: "effect";
2689
+ primitiveId: string;
2690
+ params?: Record<string, unknown> | undefined;
2691
+ } | {
2692
+ kind: "alpha-layer";
2693
+ componentId: string;
2694
+ props: Record<string, unknown>;
2695
+ zPlane?: "front" | "behind-subject" | undefined;
2696
+ } | {
2697
+ kind: "card";
2698
+ html: string;
2699
+ zPlane?: "front" | undefined;
2700
+ tokens?: Record<string, string> | undefined;
2701
+ } | {
2702
+ kind: "composition";
2703
+ compositionId: string;
2704
+ trim?: {
2705
+ start: number;
2706
+ end: number;
2707
+ } | undefined;
2708
+ };
2709
+ kind?: "overlay" | "video" | "effect" | "audio" | "image" | undefined;
2710
+ opacity?: number | undefined;
2711
+ scale?: number | undefined;
2712
+ rotation?: number | undefined;
2713
+ position?: {
2714
+ x: number;
2715
+ y: number;
2716
+ } | undefined;
2717
+ region?: {
2718
+ x: number;
2719
+ y: number;
2720
+ w: number;
2721
+ h: number;
2722
+ } | undefined;
2723
+ fit?: "cover" | "contain" | undefined;
2724
+ effects?: {
2725
+ primitiveId: string;
2726
+ params?: Record<string, unknown> | undefined;
2727
+ }[] | undefined;
2728
+ transitionIn?: {
2729
+ type: string;
2730
+ duration: number;
2731
+ } | undefined;
2732
+ linkGroupId?: string | undefined;
2733
+ animate?: Record<string, {
2734
+ value: number;
2735
+ time: number;
2736
+ easing?: "ease" | "linear" | "easeIn" | "easeOut" | "easeInOut" | {
2737
+ cubicBezier: [number, number, number, number];
2738
+ } | undefined;
2739
+ }[]> | undefined;
2740
+ } | {
2741
+ id: string;
2742
+ duration: number;
2743
+ startTime: number;
2744
+ })[];
2745
+ id: string;
2746
+ kind: "overlay" | "video" | "effect" | "audio" | "image";
2747
+ enabled?: boolean | undefined;
2748
+ volume?: number | undefined;
2749
+ name?: string | undefined;
2750
+ }[];
2751
+ markers?: {
2752
+ id: string;
2753
+ kind: string;
2754
+ startTime: number;
2755
+ name?: string | undefined;
2756
+ endTime?: number | undefined;
2757
+ metadata?: Record<string, unknown> | undefined;
2758
+ }[] | undefined;
2759
+ captions?: {
2760
+ segments: {
2761
+ words: {
2762
+ startMs: number;
2763
+ endMs: number;
2764
+ text: string;
2765
+ emphasis?: boolean | undefined;
2766
+ annotate?: "circle" | "underline" | undefined;
2767
+ }[];
2768
+ }[];
2769
+ source: "derived";
2770
+ from: {
2771
+ clipId: string;
2772
+ };
2773
+ zPlane?: "front" | "behind-subject" | undefined;
2774
+ style?: {
2775
+ position?: "top" | "center" | "bottom" | undefined;
2776
+ fontFamily?: string | undefined;
2777
+ fontSize?: number | undefined;
2778
+ fontWeight?: number | undefined;
2779
+ color?: string | undefined;
2780
+ highlightColor?: string | undefined;
2781
+ backgroundColor?: string | undefined;
2782
+ plate?: "none" | "glass" | "solid" | undefined;
2783
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
2784
+ emphasisColor?: string | undefined;
2785
+ emphasisGradient?: string | undefined;
2786
+ emphasisScale?: number | undefined;
2787
+ emphasisFontFamily?: string | undefined;
2788
+ emphasisFontWeight?: number | undefined;
2789
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
2790
+ emphasisLetterSpacing?: number | undefined;
2791
+ emphasisFontStyle?: "normal" | "italic" | undefined;
2792
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
2793
+ entranceMs?: number | undefined;
2794
+ entranceStaggerMs?: number | undefined;
2795
+ exitMs?: number | undefined;
2796
+ emphasisPlate?: boolean | undefined;
2797
+ emphasisPlateColor?: string | undefined;
2798
+ emphasisPlateTextColor?: string | undefined;
2799
+ emphasisPlateAltColor?: string | undefined;
2800
+ emphasisPlateAltTextColor?: string | undefined;
2801
+ emphasisPlateRadius?: number | undefined;
2802
+ emphasisPlatePadX?: number | undefined;
2803
+ emphasisPlatePadY?: number | undefined;
2804
+ annotationColor?: string | undefined;
2805
+ maxWidthPercent?: number | undefined;
2806
+ } | undefined;
2807
+ } | {
2808
+ segments: {
2809
+ words: {
2810
+ startMs: number;
2811
+ endMs: number;
2812
+ text: string;
2813
+ emphasis?: boolean | undefined;
2814
+ annotate?: "circle" | "underline" | undefined;
2815
+ }[];
2816
+ }[];
2817
+ source: "authored";
2818
+ zPlane?: "front" | "behind-subject" | undefined;
2819
+ style?: {
2820
+ position?: "top" | "center" | "bottom" | undefined;
2821
+ fontFamily?: string | undefined;
2822
+ fontSize?: number | undefined;
2823
+ fontWeight?: number | undefined;
2824
+ color?: string | undefined;
2825
+ highlightColor?: string | undefined;
2826
+ backgroundColor?: string | undefined;
2827
+ plate?: "none" | "glass" | "solid" | undefined;
2828
+ textTransform?: "none" | "uppercase" | "capitalize" | undefined;
2829
+ emphasisColor?: string | undefined;
2830
+ emphasisGradient?: string | undefined;
2831
+ emphasisScale?: number | undefined;
2832
+ emphasisFontFamily?: string | undefined;
2833
+ emphasisFontWeight?: number | undefined;
2834
+ emphasisTextTransform?: "none" | "uppercase" | "capitalize" | undefined;
2835
+ emphasisLetterSpacing?: number | undefined;
2836
+ emphasisFontStyle?: "normal" | "italic" | undefined;
2837
+ entrance?: "none" | "fade" | "word-pop" | "stagger-up" | undefined;
2838
+ entranceMs?: number | undefined;
2839
+ entranceStaggerMs?: number | undefined;
2840
+ exitMs?: number | undefined;
2841
+ emphasisPlate?: boolean | undefined;
2842
+ emphasisPlateColor?: string | undefined;
2843
+ emphasisPlateTextColor?: string | undefined;
2844
+ emphasisPlateAltColor?: string | undefined;
2845
+ emphasisPlateAltTextColor?: string | undefined;
2846
+ emphasisPlateRadius?: number | undefined;
2847
+ emphasisPlatePadX?: number | undefined;
2848
+ emphasisPlatePadY?: number | undefined;
2849
+ annotationColor?: string | undefined;
2850
+ maxWidthPercent?: number | undefined;
2851
+ } | undefined;
2852
+ } | undefined;
2853
+ sourceSuggestionId?: string | undefined;
2854
+ license?: {
2855
+ type: string;
2856
+ source?: string | undefined;
2857
+ notes?: string | undefined;
2858
+ } | undefined;
2859
+ licenseVerification?: "attested" | "cueframe-verified" | "third-party-verified" | undefined;
2860
+ accessibility?: {
2861
+ notes?: string | undefined;
2862
+ audioDescriptionTrackId?: string | undefined;
2863
+ captionsTrackId?: string | undefined;
2864
+ signLanguageTrackId?: string | undefined;
2865
+ } | undefined;
2866
+ ownerOrgId?: string | undefined;
2867
+ acl?: {
2868
+ public?: boolean | undefined;
2869
+ readerOrgIds?: string[] | undefined;
2870
+ writerOrgIds?: string[] | undefined;
2871
+ } | undefined;
2872
+ };
2873
+ commandId: string;
2874
+ expectedRevision: number;
2875
+ operationId: string;
2876
+ clientId: string;
2877
+ sequence: number;
2878
+ };
2879
+ declare const parseReplaceCompositionResult: (value: unknown) => {
2880
+ projectId: string;
2881
+ revision: number;
2882
+ commandId: string;
2883
+ compositionId: string;
2884
+ acknowledgedOperationIds: string[];
2885
+ };
2886
+
2887
+ export { type NativePaginationOptions, type NativePaginationResult, STUDIO_CLIENT_VERSION, STUDIO_CONVEX_ABI, STUDIO_CONVEX_ARTIFACT, STUDIO_FUNCTION_PATHS, StudioCompatibilityError, type StudioFunctionBinding, type StudioPaginatedOperationId, StudioRemoteError, applyCompositionRef, compatibilityRef, createProjectRef, ensureStudioCompatibility, normalizeStudioConvexError, parseApplyCompositionInput, parseApplyCompositionResult, parseCompatibilityInput, parseCompatibilityResult, parseCreateProjectInput, parseCreateProjectResult, parseProjectListInput, parseProjectListResult, parseProjectSnapshotInput, parseProjectSnapshotResult, parseRemoveProjectInput, parseRemoveProjectResult, parseReplaceCompositionInput, parseReplaceCompositionResult, parseSessionInput, parseSessionResult, parseUpdateProjectInput, parseUpdateProjectResult, projectListRef, projectSnapshotRef, removeProjectRef, replaceCompositionRef, sessionRef, studioErrorFromConvex, studioFunctions, updateProjectRef, useStudioPaginatedQuery };