@indreamai/client 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  interface components {
2
2
  schemas: {
3
+ /** @description Problem-details style error payload with a stable `errorCode`. */
3
4
  Problem: {
4
5
  type: string;
5
6
  title: string;
@@ -7,38 +8,129 @@ interface components {
7
8
  detail: string;
8
9
  errorCode?: string;
9
10
  };
11
+ /** @description Request body for creating a persistent editor project. */
12
+ CreateProjectRequest: {
13
+ title?: string;
14
+ description?: string | null;
15
+ editorState: components['schemas']['editor-state.v1.schema'];
16
+ stateVersion?: string;
17
+ };
18
+ PatchProjectRequest: {
19
+ title?: string;
20
+ description?: string | null;
21
+ };
22
+ /** @description Request body for autosave-style editor state sync. */
23
+ SyncProjectRequest: {
24
+ editorState: components['schemas']['editor-state.v1.schema'];
25
+ stateVersion?: string;
26
+ };
27
+ /** @description Request body for stateless export creation. */
10
28
  CreateExportRequest: {
11
29
  clientTaskId?: string;
12
- editorState: components["schemas"]["editor-state.v1.schema"];
30
+ editorState: components['schemas']['editor-state.v1.schema'];
13
31
  stateVersion?: string;
14
32
  /** @enum {integer} */
15
33
  fps: 30 | 60;
16
34
  compositionWidth?: number;
17
35
  compositionHeight?: number;
18
36
  /** @enum {string} */
19
- ratio: "16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "custom";
37
+ ratio: '16:9' | '9:16' | '1:1' | '4:3' | '3:4' | 'custom';
38
+ scale: number;
39
+ /** @enum {string} */
40
+ format: 'mp4' | 'webm';
41
+ callbackUrl?: string;
42
+ callbackHeaders?: {
43
+ [key: string]: string;
44
+ };
45
+ };
46
+ /** @description Request body for project-based export creation. */
47
+ CreateProjectExportRequest: {
48
+ clientTaskId?: string;
49
+ /** @enum {integer} */
50
+ fps: 30 | 60;
51
+ /** @enum {string} */
52
+ ratio: '16:9' | '9:16' | '1:1' | '4:3' | '3:4' | 'custom';
20
53
  scale: number;
21
54
  /** @enum {string} */
22
- format: "mp4" | "webm";
55
+ format: 'mp4' | 'webm';
23
56
  callbackUrl?: string;
24
57
  callbackHeaders?: {
25
58
  [key: string]: string;
26
59
  };
27
60
  };
61
+ AddProjectAssetRequest: {
62
+ /** Format: uuid */
63
+ assetId: string;
64
+ };
65
+ ProjectSummary: {
66
+ /** Format: uuid */
67
+ projectId: string;
68
+ title: string;
69
+ description: string | null;
70
+ /** Format: date-time */
71
+ createdAt: string;
72
+ /** Format: date-time */
73
+ updatedAt: string;
74
+ };
75
+ /** @description Project detail response, including the latest persisted editor state. */
76
+ ProjectDetail: components['schemas']['ProjectSummary'] & {
77
+ editorState: components['schemas']['editor-state.v1.schema'];
78
+ stateVersion: string;
79
+ };
80
+ ProjectMetadata: {
81
+ /** Format: uuid */
82
+ projectId: string;
83
+ title: string;
84
+ description: string | null;
85
+ /** Format: date-time */
86
+ updatedAt: string;
87
+ };
88
+ SyncProjectResponseData: {
89
+ /** Format: uuid */
90
+ projectId: string;
91
+ stateVersion: string;
92
+ /** Format: date-time */
93
+ updatedAt: string;
94
+ };
95
+ /**
96
+ * @description Core asset fields returned by OpenAPI.
97
+ * To reference uploaded files in editor JSON, map `fileUrl` to `assets[*].remoteUrl` and `fileKey` to `assets[*].remoteKey`.
98
+ */
99
+ Asset: {
100
+ /** Format: uuid */
101
+ assetId: string;
102
+ type: string;
103
+ source: string | null;
104
+ filename: string;
105
+ mimetype: string;
106
+ size: number | null;
107
+ fileUrl: string;
108
+ fileKey: string;
109
+ width: number | null;
110
+ height: number | null;
111
+ duration: number | null;
112
+ };
113
+ /** @description Export creation response shared by stateless and project-based export routes. */
28
114
  CreateExportResponseData: {
29
115
  taskId: string;
116
+ /** Format: uuid */
117
+ projectId?: string | null;
30
118
  /** Format: date-time */
31
119
  createdAt: string;
32
120
  durationSeconds: number;
33
121
  billedStandardSeconds: number;
34
122
  chargedCredits: string;
123
+ chargedCreditPool?: string;
35
124
  };
125
+ /** @description Export task snapshot returned by task detail, list, and webhook payloads. */
36
126
  ExportTask: {
37
127
  taskId: string;
128
+ /** Format: uuid */
129
+ projectId: string | null;
38
130
  createdByApiKeyId: string | null;
39
131
  clientTaskId: string | null;
40
132
  /** @enum {string} */
41
- status: "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED" | "PAUSED" | "CANCELED";
133
+ status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'PAUSED' | 'CANCELED';
42
134
  progress: number;
43
135
  error: string | null;
44
136
  outputUrl: string | null;
@@ -121,22 +213,111 @@ interface components {
121
213
  };
122
214
  EditorValidationResult: {
123
215
  valid: boolean;
124
- errors: components["schemas"]["EditorValidationError"][];
216
+ errors: components['schemas']['EditorValidationError'][];
217
+ };
218
+ ProjectSummaryEnvelope: {
219
+ data: components['schemas']['ProjectSummary'];
220
+ meta: {
221
+ [key: string]: unknown;
222
+ };
223
+ };
224
+ ProjectDetailEnvelope: {
225
+ data: components['schemas']['ProjectDetail'];
226
+ meta: {
227
+ [key: string]: unknown;
228
+ };
229
+ };
230
+ ProjectMetadataEnvelope: {
231
+ data: components['schemas']['ProjectMetadata'];
232
+ meta: {
233
+ [key: string]: unknown;
234
+ };
235
+ };
236
+ SyncProjectEnvelope: {
237
+ data: components['schemas']['SyncProjectResponseData'];
238
+ meta: {
239
+ [key: string]: unknown;
240
+ };
241
+ };
242
+ DeleteProjectEnvelope: {
243
+ data: {
244
+ /** Format: uuid */
245
+ projectId: string;
246
+ deleted: boolean;
247
+ };
248
+ meta: {
249
+ [key: string]: unknown;
250
+ };
251
+ };
252
+ AssetEnvelope: {
253
+ data: components['schemas']['Asset'];
254
+ meta: {
255
+ [key: string]: unknown;
256
+ };
257
+ };
258
+ ListAssetsResponseEnvelope: {
259
+ data: components['schemas']['Asset'][];
260
+ meta: {
261
+ nextPageCursor?: string | null;
262
+ } & {
263
+ [key: string]: unknown;
264
+ };
265
+ };
266
+ ProjectAssetBindingEnvelope: {
267
+ data: {
268
+ /** Format: uuid */
269
+ projectId: string;
270
+ /** Format: uuid */
271
+ assetId: string;
272
+ };
273
+ meta: {
274
+ [key: string]: unknown;
275
+ };
276
+ };
277
+ DeleteProjectAssetEnvelope: {
278
+ data: {
279
+ /** Format: uuid */
280
+ projectId: string;
281
+ /** Format: uuid */
282
+ assetId: string;
283
+ deleted: boolean;
284
+ };
285
+ meta: {
286
+ [key: string]: unknown;
287
+ };
288
+ };
289
+ DeleteAssetEnvelope: {
290
+ data: {
291
+ /** Format: uuid */
292
+ assetId: string;
293
+ deleted: boolean;
294
+ };
295
+ meta: {
296
+ [key: string]: unknown;
297
+ };
125
298
  };
126
299
  CreateExportResponseEnvelope: {
127
- data: components["schemas"]["CreateExportResponseData"];
300
+ data: components['schemas']['CreateExportResponseData'];
128
301
  meta: {
129
302
  [key: string]: unknown;
130
303
  };
131
304
  };
132
305
  GetExportResponseEnvelope: {
133
- data: components["schemas"]["ExportTask"];
306
+ data: components['schemas']['ExportTask'];
134
307
  meta: {
135
308
  [key: string]: unknown;
136
309
  };
137
310
  };
138
311
  ListExportsResponseEnvelope: {
139
- data: components["schemas"]["ExportTask"][];
312
+ data: components['schemas']['ExportTask'][];
313
+ meta: {
314
+ nextPageCursor?: string | null;
315
+ } & {
316
+ [key: string]: unknown;
317
+ };
318
+ };
319
+ ListProjectsResponseEnvelope: {
320
+ data: components['schemas']['ProjectSummary'][];
140
321
  meta: {
141
322
  nextPageCursor?: string | null;
142
323
  } & {
@@ -144,13 +325,13 @@ interface components {
144
325
  };
145
326
  };
146
327
  EditorCapabilitiesResponseEnvelope: {
147
- data: components["schemas"]["EditorCapabilities"];
328
+ data: components['schemas']['EditorCapabilities'];
148
329
  meta: {
149
330
  [key: string]: unknown;
150
331
  };
151
332
  };
152
333
  EditorValidateResponseEnvelope: {
153
- data: components["schemas"]["EditorValidationResult"];
334
+ data: components['schemas']['EditorValidationResult'];
154
335
  meta: {
155
336
  capabilitiesVersion?: string;
156
337
  } & {
@@ -168,38 +349,43 @@ interface components {
168
349
  } & {
169
350
  [key: string]: unknown;
170
351
  };
352
+ captionEntry: {
353
+ text: string;
354
+ startMs: number;
355
+ endMs: number;
356
+ timestampMs?: number | null;
357
+ confidence?: number | null;
358
+ };
171
359
  primitive: string | number | boolean;
172
360
  animationSpec: {
173
361
  /** @enum {string} */
174
- type: "fade" | "slide-up" | "slide-down" | "slide-left" | "slide-right" | "zoom-in" | "zoom-out";
362
+ type: 'fade' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'zoom-in' | 'zoom-out';
175
363
  durationTicks: number;
176
364
  /** @enum {string} */
177
- easing?: "linear" | "ease-in" | "ease-out" | "ease-in-out";
365
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';
178
366
  params?: {
179
- [key: string]: components["schemas"]["primitive"];
367
+ [key: string]: components['schemas']['primitive'];
180
368
  };
181
- } & {
182
- [key: string]: unknown;
183
369
  };
184
370
  captionAnimationSpec: {
185
371
  /** @enum {string} */
186
- type: "converge" | "elastic-pop" | "typewriter" | "lay-down" | "center-type-out" | "curtain-close" | "jitter" | "rainbow" | "sweep-shine";
372
+ type: 'converge' | 'elastic-pop' | 'typewriter' | 'lay-down' | 'center-type-out' | 'curtain-close' | 'jitter' | 'rainbow' | 'sweep-shine';
187
373
  durationTicks: number;
188
374
  /** @enum {string} */
189
- easing?: "linear" | "ease-in" | "ease-out" | "ease-in-out";
375
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';
190
376
  params?: {
191
- [key: string]: components["schemas"]["primitive"];
377
+ [key: string]: components['schemas']['primitive'];
192
378
  };
193
- } & {
194
- [key: string]: unknown;
195
379
  };
196
380
  keyframePoint: {
381
+ /** @description Local clip time in ticks. Service-level semantic validation requires timeTicks < item.durationTicks. */
197
382
  timeTicks: number;
198
383
  value: number;
199
384
  };
200
385
  animatedNumberTrack: {
201
386
  value: number;
202
- keyframes: components["schemas"]["keyframePoint"][];
387
+ /** @description Keyframes are expressed in local clip ticks and must stay inside the clip range. */
388
+ keyframes: components['schemas']['keyframePoint'][];
203
389
  };
204
390
  timelineItemBase: {
205
391
  id: string;
@@ -211,79 +397,182 @@ interface components {
211
397
  [key: string]: unknown;
212
398
  };
213
399
  geometryItemBase: {
214
- top: components["schemas"]["animatedNumberTrack"];
215
- left: components["schemas"]["animatedNumberTrack"];
216
- width: components["schemas"]["animatedNumberTrack"];
217
- height: components["schemas"]["animatedNumberTrack"];
218
- scaleX: components["schemas"]["animatedNumberTrack"];
219
- scaleY: components["schemas"]["animatedNumberTrack"];
220
- opacity: components["schemas"]["animatedNumberTrack"];
400
+ top: components['schemas']['animatedNumberTrack'];
401
+ left: components['schemas']['animatedNumberTrack'];
402
+ width: components['schemas']['animatedNumberTrack'];
403
+ height: components['schemas']['animatedNumberTrack'];
404
+ scaleX: components['schemas']['animatedNumberTrack'];
405
+ scaleY: components['schemas']['animatedNumberTrack'];
406
+ opacity: components['schemas']['animatedNumberTrack'];
221
407
  } & {
222
408
  [key: string]: unknown;
223
409
  };
224
- baseItem: components["schemas"]["timelineItemBase"] & components["schemas"]["geometryItemBase"];
410
+ baseItem: components['schemas']['timelineItemBase'] & components['schemas']['geometryItemBase'];
225
411
  clipAnimations: {
226
- in?: components["schemas"]["animationSpec"];
227
- out?: components["schemas"]["animationSpec"];
412
+ in?: components['schemas']['animationSpec'];
413
+ out?: components['schemas']['animationSpec'];
414
+ };
415
+ fontStyle: {
416
+ variant: string;
417
+ weight: string;
418
+ };
419
+ textBackground: {
420
+ color: string;
421
+ horizontalPadding: number;
422
+ borderRadius: number;
228
423
  };
229
424
  captionClipAnimations: {
230
- in?: components["schemas"]["captionAnimationSpec"];
231
- out?: components["schemas"]["captionAnimationSpec"];
232
- loop?: components["schemas"]["captionAnimationSpec"];
425
+ in?: components['schemas']['captionAnimationSpec'];
426
+ out?: components['schemas']['captionAnimationSpec'];
427
+ loop?: components['schemas']['captionAnimationSpec'];
428
+ };
429
+ textTemplateImageNode: {
430
+ id: string;
431
+ /** @constant */
432
+ type: 'image';
433
+ /** @enum {string} */
434
+ imageType: 'svg' | 'lottie';
435
+ imageComponentId: string | null;
436
+ imageLottieJson: {
437
+ [key: string]: unknown;
438
+ } | null;
439
+ x: number;
440
+ y: number;
441
+ width: number;
442
+ height: number;
443
+ opacity: number;
444
+ animations?: components['schemas']['clipAnimations'];
445
+ };
446
+ textTemplateTextNode: {
447
+ id: string;
448
+ /** @constant */
449
+ type: 'text';
450
+ x: number;
451
+ y: number;
452
+ width: number;
453
+ height: number;
454
+ text: string;
455
+ color: string;
456
+ /** @enum {string} */
457
+ align: 'left' | 'center' | 'right';
458
+ fontFamily: string;
459
+ fontStyle: components['schemas']['fontStyle'];
460
+ fontSize: number;
461
+ lineHeight: number;
462
+ letterSpacing: number;
463
+ /** @enum {string} */
464
+ direction: 'ltr' | 'rtl';
465
+ strokeWidth: number;
466
+ strokeColor: string;
467
+ background: null | components['schemas']['textBackground'];
468
+ animations?: components['schemas']['clipAnimations'];
469
+ captionAnimations?: components['schemas']['captionClipAnimations'];
470
+ };
471
+ chartSeries: {
472
+ key: string;
473
+ label: string;
474
+ };
475
+ chartRowValues: {
476
+ [key: string]: number;
477
+ };
478
+ chartXYRow: {
479
+ label: string;
480
+ values: components['schemas']['chartRowValues'];
481
+ };
482
+ chartXYData: {
483
+ series: components['schemas']['chartSeries'][];
484
+ rows: components['schemas']['chartXYRow'][];
485
+ };
486
+ chartPieSlice: {
487
+ label: string;
488
+ value: number;
489
+ };
490
+ chartPieData: {
491
+ slices: components['schemas']['chartPieSlice'][];
233
492
  };
493
+ chartScatterPoint: {
494
+ seriesKey: string;
495
+ x: number;
496
+ y: number;
497
+ };
498
+ chartScatterData: {
499
+ series: components['schemas']['chartSeries'][];
500
+ points: components['schemas']['chartScatterPoint'][];
501
+ };
502
+ assetUploadProgress: {
503
+ progress: number;
504
+ loadedBytes: number;
505
+ totalBytes: number;
506
+ };
507
+ assetUploadState: {
508
+ /** @constant */
509
+ type: 'pending-upload';
510
+ } | {
511
+ /** @constant */
512
+ type: 'in-progress';
513
+ progress: components['schemas']['assetUploadProgress'];
514
+ } | {
515
+ /** @constant */
516
+ type: 'uploaded';
517
+ } | {
518
+ /** @constant */
519
+ type: 'error';
520
+ error: string | null | {
521
+ [key: string]: unknown;
522
+ };
523
+ canRetry: boolean;
524
+ };
525
+ /** @description One timeline track. Items in the same track must not overlap in time, but may touch end-to-start. */
234
526
  track: {
235
527
  id: string;
528
+ /** @description Ordered item ids for a single track. Same-track items cannot overlap in time. */
236
529
  items: string[];
237
530
  hidden: boolean;
238
531
  muted: boolean;
239
- } & {
240
- [key: string]: unknown;
241
532
  };
242
- imageAsset: components["schemas"]["baseAsset"] & {
533
+ imageAsset: components['schemas']['baseAsset'] & {
243
534
  /** @constant */
244
- type: "image";
535
+ type: 'image';
245
536
  width: number;
246
537
  height: number;
247
538
  };
248
- videoAsset: components["schemas"]["baseAsset"] & {
539
+ videoAsset: components['schemas']['baseAsset'] & {
249
540
  /** @constant */
250
- type: "video";
541
+ type: 'video';
251
542
  durationInSeconds: number;
252
543
  hasAudioTrack: boolean;
253
544
  width: number;
254
545
  height: number;
255
546
  };
256
- gifAsset: components["schemas"]["baseAsset"] & {
547
+ gifAsset: components['schemas']['baseAsset'] & {
257
548
  /** @constant */
258
- type: "gif";
549
+ type: 'gif';
259
550
  durationInSeconds: number;
260
551
  width: number;
261
552
  height: number;
262
553
  /** @enum {string} */
263
- loopBehavior: "finite" | "loop";
554
+ loopBehavior: 'finite' | 'loop';
264
555
  };
265
- audioAsset: components["schemas"]["baseAsset"] & {
556
+ audioAsset: components['schemas']['baseAsset'] & {
266
557
  /** @constant */
267
- type: "audio";
558
+ type: 'audio';
268
559
  durationInSeconds: number;
269
560
  };
270
- captionAsset: components["schemas"]["baseAsset"] & {
561
+ captionAsset: components['schemas']['baseAsset'] & {
271
562
  /** @constant */
272
- type: "caption";
273
- captions: {
274
- [key: string]: unknown;
275
- }[];
563
+ type: 'caption';
564
+ captions: components['schemas']['captionEntry'][];
276
565
  /** @enum {string} */
277
- timingGranularity: "word" | "line";
566
+ timingGranularity: 'word' | 'line';
278
567
  };
279
- lottieAsset: components["schemas"]["baseAsset"] & {
568
+ lottieAsset: components['schemas']['baseAsset'] & {
280
569
  /** @constant */
281
- type: "lottie";
570
+ type: 'lottie';
282
571
  durationInSeconds: number;
283
572
  width: number;
284
573
  height: number;
285
574
  /** @enum {string} */
286
- resourceType: "lottie" | "svg";
575
+ resourceType: 'lottie' | 'svg';
287
576
  resourceJson?: {
288
577
  [key: string]: unknown;
289
578
  } | null;
@@ -292,291 +581,314 @@ interface components {
292
581
  [key: string]: unknown;
293
582
  } | null;
294
583
  };
295
- imageItem: components["schemas"]["baseItem"] & {
584
+ imageItem: components['schemas']['baseItem'] & {
296
585
  /** @constant */
297
- type: "image";
586
+ type: 'image';
298
587
  assetId: string;
299
588
  stickerId?: string | null;
300
589
  stickerVersion?: number | null;
301
590
  keepAspectRatio: boolean;
302
- borderRadius: components["schemas"]["animatedNumberTrack"];
303
- rotation: components["schemas"]["animatedNumberTrack"];
304
- cropLeft?: components["schemas"]["animatedNumberTrack"];
305
- cropTop?: components["schemas"]["animatedNumberTrack"];
306
- cropRight?: components["schemas"]["animatedNumberTrack"];
307
- cropBottom?: components["schemas"]["animatedNumberTrack"];
308
- animations?: components["schemas"]["clipAnimations"];
591
+ borderRadius: components['schemas']['animatedNumberTrack'];
592
+ rotation: components['schemas']['animatedNumberTrack'];
593
+ cropLeft?: components['schemas']['animatedNumberTrack'];
594
+ cropTop?: components['schemas']['animatedNumberTrack'];
595
+ cropRight?: components['schemas']['animatedNumberTrack'];
596
+ cropBottom?: components['schemas']['animatedNumberTrack'];
597
+ animations?: components['schemas']['clipAnimations'];
309
598
  };
310
- videoItem: components["schemas"]["baseItem"] & {
599
+ videoItem: components['schemas']['baseItem'] & {
311
600
  /** @constant */
312
- type: "video";
601
+ type: 'video';
313
602
  assetId: string;
314
603
  keepAspectRatio: boolean;
315
- borderRadius: components["schemas"]["animatedNumberTrack"];
316
- rotation: components["schemas"]["animatedNumberTrack"];
604
+ borderRadius: components['schemas']['animatedNumberTrack'];
605
+ rotation: components['schemas']['animatedNumberTrack'];
317
606
  videoStartFromInSeconds: number;
318
- decibelAdjustment: components["schemas"]["animatedNumberTrack"];
607
+ decibelAdjustment: components['schemas']['animatedNumberTrack'];
319
608
  playbackRate: number;
320
609
  audioFadeInDurationInSeconds: number;
321
610
  audioFadeOutDurationInSeconds: number;
322
- cropLeft?: components["schemas"]["animatedNumberTrack"];
323
- cropTop?: components["schemas"]["animatedNumberTrack"];
324
- cropRight?: components["schemas"]["animatedNumberTrack"];
325
- cropBottom?: components["schemas"]["animatedNumberTrack"];
326
- animations?: components["schemas"]["clipAnimations"];
611
+ cropLeft?: components['schemas']['animatedNumberTrack'];
612
+ cropTop?: components['schemas']['animatedNumberTrack'];
613
+ cropRight?: components['schemas']['animatedNumberTrack'];
614
+ cropBottom?: components['schemas']['animatedNumberTrack'];
615
+ animations?: components['schemas']['clipAnimations'];
327
616
  };
328
- gifItem: components["schemas"]["baseItem"] & {
617
+ gifItem: components['schemas']['baseItem'] & {
329
618
  /** @constant */
330
- type: "gif";
619
+ type: 'gif';
331
620
  assetId: string;
332
621
  keepAspectRatio: boolean;
333
- borderRadius: components["schemas"]["animatedNumberTrack"];
334
- rotation: components["schemas"]["animatedNumberTrack"];
622
+ borderRadius: components['schemas']['animatedNumberTrack'];
623
+ rotation: components['schemas']['animatedNumberTrack'];
335
624
  gifStartFromInSeconds: number;
336
625
  playbackRate: number;
337
- cropLeft?: components["schemas"]["animatedNumberTrack"];
338
- cropTop?: components["schemas"]["animatedNumberTrack"];
339
- cropRight?: components["schemas"]["animatedNumberTrack"];
340
- cropBottom?: components["schemas"]["animatedNumberTrack"];
341
- animations?: components["schemas"]["clipAnimations"];
626
+ cropLeft?: components['schemas']['animatedNumberTrack'];
627
+ cropTop?: components['schemas']['animatedNumberTrack'];
628
+ cropRight?: components['schemas']['animatedNumberTrack'];
629
+ cropBottom?: components['schemas']['animatedNumberTrack'];
630
+ animations?: components['schemas']['clipAnimations'];
342
631
  };
343
- lottieItem: components["schemas"]["baseItem"] & {
632
+ lottieItem: components['schemas']['baseItem'] & {
344
633
  /** @constant */
345
- type: "lottie";
634
+ type: 'lottie';
346
635
  assetId: string;
347
636
  keepAspectRatio: boolean;
348
- rotation: components["schemas"]["animatedNumberTrack"];
637
+ rotation: components['schemas']['animatedNumberTrack'];
349
638
  lottieStartFromInSeconds: number;
350
639
  playbackRate: number;
351
- animations?: components["schemas"]["clipAnimations"];
640
+ animations?: components['schemas']['clipAnimations'];
352
641
  };
353
- audioItem: components["schemas"]["baseItem"] & {
642
+ audioItem: components['schemas']['baseItem'] & {
354
643
  /** @constant */
355
- type: "audio";
644
+ type: 'audio';
356
645
  assetId: string;
357
646
  audioStartFromInSeconds: number;
358
- decibelAdjustment: components["schemas"]["animatedNumberTrack"];
647
+ decibelAdjustment: components['schemas']['animatedNumberTrack'];
359
648
  playbackRate: number;
360
649
  audioFadeInDurationInSeconds: number;
361
650
  audioFadeOutDurationInSeconds: number;
362
651
  };
363
- textItem: components["schemas"]["baseItem"] & {
652
+ textItem: components['schemas']['baseItem'] & {
364
653
  /** @constant */
365
- type: "text";
654
+ type: 'text';
366
655
  text: string;
367
656
  color: string;
368
657
  /** @enum {string} */
369
- align: "left" | "center" | "right";
658
+ align: 'left' | 'center' | 'right';
370
659
  fontFamily: string;
371
- fontStyle: {
372
- variant: string;
373
- weight: string;
374
- } & {
375
- [key: string]: unknown;
376
- };
660
+ fontStyle: components['schemas']['fontStyle'];
377
661
  fontSize: number;
378
662
  lineHeight: number;
379
663
  letterSpacing: number;
380
664
  resizeOnEdit: boolean;
381
665
  /** @enum {string} */
382
- direction: "ltr" | "rtl";
666
+ direction: 'ltr' | 'rtl';
383
667
  strokeWidth: number;
384
668
  strokeColor: string;
385
- background?: null | ({
386
- color: string;
387
- horizontalPadding: number;
388
- borderRadius: number;
389
- } & {
390
- [key: string]: unknown;
391
- });
392
- rotation?: components["schemas"]["animatedNumberTrack"];
393
- animations?: components["schemas"]["clipAnimations"];
394
- captionAnimations?: components["schemas"]["captionClipAnimations"];
669
+ background?: null | components['schemas']['textBackground'];
670
+ rotation?: components['schemas']['animatedNumberTrack'];
671
+ animations?: components['schemas']['clipAnimations'];
672
+ captionAnimations?: components['schemas']['captionClipAnimations'];
395
673
  };
396
- textTemplateItem: components["schemas"]["baseItem"] & {
674
+ textTemplateItem: components['schemas']['baseItem'] & {
397
675
  /** @constant */
398
- type: "text-template";
676
+ type: 'text-template';
399
677
  /** @constant */
400
678
  schemaVersion: 2;
401
679
  templateId: string;
402
680
  templateCategory: string;
403
- nodes: ({
404
- /** @enum {string} */
405
- type: "image" | "text";
406
- } & {
407
- [key: string]: unknown;
408
- })[];
409
- rotation?: components["schemas"]["animatedNumberTrack"];
410
- animations?: components["schemas"]["clipAnimations"];
681
+ nodes: (components['schemas']['textTemplateImageNode'] | components['schemas']['textTemplateTextNode'])[];
682
+ rotation?: components['schemas']['animatedNumberTrack'];
683
+ animations?: components['schemas']['clipAnimations'];
411
684
  };
412
- captionsItem: components["schemas"]["baseItem"] & {
685
+ captionsItem: components['schemas']['baseItem'] & {
413
686
  /** @constant */
414
- type: "captions";
687
+ type: 'captions';
415
688
  assetId: string;
416
689
  fontFamily: string;
417
- fontStyle: {
418
- variant: string;
419
- weight: string;
420
- } & {
421
- [key: string]: unknown;
422
- };
690
+ fontStyle: components['schemas']['fontStyle'];
423
691
  lineHeight: number;
424
692
  letterSpacing: number;
425
693
  fontSize: number;
426
694
  /** @enum {string} */
427
- align: "left" | "center" | "right";
695
+ align: 'left' | 'center' | 'right';
428
696
  color: string;
429
697
  highlightColor: string;
430
698
  strokeWidth: number;
431
699
  strokeColor: string;
432
700
  /** @enum {string} */
433
- direction: "ltr" | "rtl";
701
+ direction: 'ltr' | 'rtl';
434
702
  pageDurationInMilliseconds: number;
435
- captionStartInSeconds: number;
436
703
  maxLines: number;
704
+ contentStartOffsetMs: number;
437
705
  /** @enum {string} */
438
- source: "manual" | "auto" | "upload";
706
+ source: 'manual' | 'auto' | 'upload';
439
707
  captionGroupId: string | null;
440
- background: null | ({
441
- color: string;
442
- horizontalPadding: number;
443
- borderRadius: number;
444
- } & {
445
- [key: string]: unknown;
446
- });
447
- rotation?: components["schemas"]["animatedNumberTrack"];
448
- animations?: components["schemas"]["clipAnimations"];
449
- captionAnimations?: components["schemas"]["captionClipAnimations"];
708
+ background: null | components['schemas']['textBackground'];
709
+ rotation?: components['schemas']['animatedNumberTrack'];
710
+ animations?: components['schemas']['clipAnimations'];
711
+ captionAnimations?: components['schemas']['captionClipAnimations'];
450
712
  };
451
- solidItem: components["schemas"]["baseItem"] & {
713
+ solidItem: components['schemas']['baseItem'] & {
452
714
  /** @constant */
453
- type: "solid";
715
+ type: 'solid';
454
716
  color: string;
455
717
  /** @enum {string} */
456
- shape: "rectangle" | "circle" | "triangle" | "star";
718
+ shape: 'rectangle' | 'circle' | 'triangle' | 'star';
457
719
  keepAspectRatio: boolean;
458
- borderRadius: components["schemas"]["animatedNumberTrack"];
459
- rotation: components["schemas"]["animatedNumberTrack"];
460
- animations?: components["schemas"]["clipAnimations"];
720
+ borderRadius: components['schemas']['animatedNumberTrack'];
721
+ rotation: components['schemas']['animatedNumberTrack'];
722
+ animations?: components['schemas']['clipAnimations'];
461
723
  };
462
- illustrationItem: components["schemas"]["baseItem"] & {
724
+ illustrationItem: components['schemas']['baseItem'] & {
463
725
  /** @constant */
464
- type: "illustration";
726
+ type: 'illustration';
465
727
  illustrationName: string;
466
728
  color: string;
467
729
  keepAspectRatio: boolean;
468
- rotation: components["schemas"]["animatedNumberTrack"];
469
- animations?: components["schemas"]["clipAnimations"];
730
+ rotation: components['schemas']['animatedNumberTrack'];
731
+ animations?: components['schemas']['clipAnimations'];
470
732
  };
471
- effectItem: components["schemas"]["timelineItemBase"] & {
733
+ effectItem: components['schemas']['timelineItemBase'] & {
472
734
  /** @constant */
473
- type: "effect";
735
+ type: 'effect';
474
736
  /** @enum {string} */
475
- effectType: "flash-to-black" | "blur" | "blurred-opening" | "fade-in" | "fade-out";
737
+ effectType: 'flash-to-black' | 'blur' | 'blurred-opening' | 'fade-in' | 'fade-out';
476
738
  intensity: number;
477
739
  params?: {
478
- [key: string]: components["schemas"]["primitive"];
740
+ [key: string]: components['schemas']['primitive'];
479
741
  };
480
742
  };
481
- filterItem: components["schemas"]["timelineItemBase"] & {
743
+ filterItem: components['schemas']['timelineItemBase'] & {
482
744
  /** @constant */
483
- type: "filter";
745
+ type: 'filter';
484
746
  /** @enum {string} */
485
- filterType: "verdant-glow" | "cyberpunk-neon" | "vaporwave-blue" | "sunset-orange" | "lemon-cyan" | "absolute-red" | "sakura-pink" | "twilight-dusk";
747
+ filterType: 'verdant-glow' | 'cyberpunk-neon' | 'vaporwave-blue' | 'sunset-orange' | 'lemon-cyan' | 'absolute-red' | 'sakura-pink' | 'twilight-dusk';
486
748
  intensity: number;
487
749
  params?: {
488
- [key: string]: components["schemas"]["primitive"];
750
+ [key: string]: components['schemas']['primitive'];
489
751
  };
490
752
  };
491
- chartItem: components["schemas"]["baseItem"] & {
753
+ chartItem: components['schemas']['baseItem'] & ({
754
+ /** @constant */
755
+ type: 'chart';
492
756
  /** @constant */
493
- type: "chart";
494
- chartType: string;
757
+ chartType: 'line';
495
758
  themeColor: string;
496
- data: {
497
- [key: string]: unknown;
498
- };
759
+ data: components['schemas']['chartXYData'];
499
760
  animationDurationTicks: number;
500
761
  keepAspectRatio: boolean;
501
- rotation: components["schemas"]["animatedNumberTrack"];
502
- animations?: components["schemas"]["clipAnimations"];
503
- };
762
+ rotation: components['schemas']['animatedNumberTrack'];
763
+ animations?: components['schemas']['clipAnimations'];
764
+ } | {
765
+ /** @constant */
766
+ type: 'chart';
767
+ /** @constant */
768
+ chartType: 'bar';
769
+ themeColor: string;
770
+ data: components['schemas']['chartXYData'];
771
+ animationDurationTicks: number;
772
+ keepAspectRatio: boolean;
773
+ rotation: components['schemas']['animatedNumberTrack'];
774
+ animations?: components['schemas']['clipAnimations'];
775
+ } | {
776
+ /** @constant */
777
+ type: 'chart';
778
+ /** @constant */
779
+ chartType: 'area';
780
+ themeColor: string;
781
+ data: components['schemas']['chartXYData'];
782
+ animationDurationTicks: number;
783
+ keepAspectRatio: boolean;
784
+ rotation: components['schemas']['animatedNumberTrack'];
785
+ animations?: components['schemas']['clipAnimations'];
786
+ } | {
787
+ /** @constant */
788
+ type: 'chart';
789
+ /** @constant */
790
+ chartType: 'pie';
791
+ themeColor: string;
792
+ data: components['schemas']['chartPieData'];
793
+ animationDurationTicks: number;
794
+ keepAspectRatio: boolean;
795
+ rotation: components['schemas']['animatedNumberTrack'];
796
+ animations?: components['schemas']['clipAnimations'];
797
+ } | {
798
+ /** @constant */
799
+ type: 'chart';
800
+ /** @constant */
801
+ chartType: 'radar';
802
+ themeColor: string;
803
+ data: components['schemas']['chartXYData'];
804
+ animationDurationTicks: number;
805
+ keepAspectRatio: boolean;
806
+ rotation: components['schemas']['animatedNumberTrack'];
807
+ animations?: components['schemas']['clipAnimations'];
808
+ } | {
809
+ /** @constant */
810
+ type: 'chart';
811
+ /** @constant */
812
+ chartType: 'scatter';
813
+ themeColor: string;
814
+ data: components['schemas']['chartScatterData'];
815
+ animationDurationTicks: number;
816
+ keepAspectRatio: boolean;
817
+ rotation: components['schemas']['animatedNumberTrack'];
818
+ animations?: components['schemas']['clipAnimations'];
819
+ });
504
820
  transition: {
505
821
  id: string;
506
822
  trackId: string;
507
823
  fromClipId: string;
508
824
  toClipId: string;
509
825
  /** @enum {string} */
510
- type: "fade" | "slide" | "wipe" | "flip" | "clock-wipe" | "iris";
826
+ type: 'fade' | 'slide' | 'wipe' | 'flip' | 'clock-wipe' | 'iris';
511
827
  durationTicks: number;
512
828
  /** @enum {string} */
513
- easing?: "linear" | "ease-in" | "ease-out" | "ease-in-out";
829
+ easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out';
514
830
  params?: {
515
- [key: string]: components["schemas"]["primitive"];
831
+ [key: string]: components['schemas']['primitive'];
516
832
  };
517
- } & {
518
- [key: string]: unknown;
519
833
  };
520
834
  globalBackground: {
521
835
  /** @constant */
522
- type: "none";
523
- } | ({
836
+ type: 'none';
837
+ } | {
524
838
  /** @constant */
525
- type: "color";
839
+ type: 'color';
526
840
  color: string;
527
841
  gradient: string | null;
528
- } & {
529
- [key: string]: unknown;
530
- }) | {
842
+ } | {
531
843
  /** @constant */
532
- type: "blur";
844
+ type: 'blur';
533
845
  /** @enum {integer} */
534
846
  level: 0 | 1 | 2 | 3 | 4;
535
- } | ({
847
+ } | {
536
848
  /** @constant */
537
- type: "image";
849
+ type: 'image';
538
850
  imageAssetId: string | null;
539
851
  imageUrl: string;
540
852
  /** @enum {string} */
541
- source: "preset" | "custom";
542
- } & {
543
- [key: string]: unknown;
544
- });
545
- brandRuntime: ({
546
- brandId?: string | null;
547
- logoX?: number;
548
- logoY?: number;
549
- managedItemIds?: string[];
550
- managedAssetIds?: string[];
551
- introShiftInFrames?: number;
552
- overlayTrackId?: string | null;
553
- underlayTrackId?: string | null;
554
- } & {
555
- [key: string]: unknown;
556
- }) | null;
853
+ source: 'preset' | 'custom';
854
+ };
855
+ brandRuntime: null | {
856
+ brandId: string | null;
857
+ logoX: number;
858
+ logoY: number;
859
+ managedItemIds: string[];
860
+ managedAssetIds: string[];
861
+ introShiftInFrames: number;
862
+ overlayTrackId: string | null;
863
+ underlayTrackId: string | null;
864
+ };
865
+ deletedAssetEntry: {
866
+ assetId: string;
867
+ remoteUrl: string | null;
868
+ remoteKey: string | null;
869
+ statusAtDeletion: components['schemas']['assetUploadState'];
870
+ };
557
871
  /** IndreamEditorStateV1 */
558
- "editor-state.v1.schema": {
872
+ 'editor-state.v1.schema': {
559
873
  compositionWidth: number;
560
874
  compositionHeight: number;
561
875
  /** @constant */
562
876
  timebaseTicksPerSecond: 240000;
563
877
  /** @enum {string} */
564
- outputRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4" | "custom";
565
- tracks: components["schemas"]["track"][];
878
+ outputRatio?: '16:9' | '9:16' | '1:1' | '4:3' | '3:4' | 'custom';
879
+ tracks: components['schemas']['track'][];
566
880
  assets: {
567
- [key: string]: components["schemas"]["imageAsset"] | components["schemas"]["videoAsset"] | components["schemas"]["gifAsset"] | components["schemas"]["audioAsset"] | components["schemas"]["captionAsset"] | components["schemas"]["lottieAsset"];
881
+ [key: string]: components['schemas']['imageAsset'] | components['schemas']['videoAsset'] | components['schemas']['gifAsset'] | components['schemas']['audioAsset'] | components['schemas']['captionAsset'] | components['schemas']['lottieAsset'];
568
882
  };
569
883
  items: {
570
- [key: string]: components["schemas"]["imageItem"] | components["schemas"]["videoItem"] | components["schemas"]["gifItem"] | components["schemas"]["lottieItem"] | components["schemas"]["audioItem"] | components["schemas"]["textItem"] | components["schemas"]["textTemplateItem"] | components["schemas"]["captionsItem"] | components["schemas"]["solidItem"] | components["schemas"]["illustrationItem"] | components["schemas"]["effectItem"] | components["schemas"]["filterItem"] | components["schemas"]["chartItem"];
884
+ [key: string]: components['schemas']['imageItem'] | components['schemas']['videoItem'] | components['schemas']['gifItem'] | components['schemas']['lottieItem'] | components['schemas']['audioItem'] | components['schemas']['textItem'] | components['schemas']['textTemplateItem'] | components['schemas']['captionsItem'] | components['schemas']['solidItem'] | components['schemas']['illustrationItem'] | components['schemas']['effectItem'] | components['schemas']['filterItem'] | components['schemas']['chartItem'];
571
885
  };
572
886
  transitions: {
573
- [key: string]: components["schemas"]["transition"];
887
+ [key: string]: components['schemas']['transition'];
574
888
  };
575
- globalBackground?: components["schemas"]["globalBackground"];
576
- brandRuntime?: components["schemas"]["brandRuntime"];
577
- deletedAssets?: {
578
- [key: string]: unknown;
579
- }[];
889
+ globalBackground?: components['schemas']['globalBackground'];
890
+ brandRuntime?: components['schemas']['brandRuntime'];
891
+ deletedAssets?: components['schemas']['deletedAssetEntry'][];
580
892
  } & {
581
893
  [key: string]: unknown;
582
894
  };
@@ -588,11 +900,26 @@ interface components {
588
900
  [name: string]: unknown;
589
901
  };
590
902
  content: {
591
- "application/json": components["schemas"]["Problem"];
903
+ 'application/json': components['schemas']['Problem'];
592
904
  };
593
905
  };
594
906
  };
595
- parameters: never;
907
+ parameters: {
908
+ /**
909
+ * @description Optional idempotency key for create/finalize style POST requests.
910
+ * When provided, the server replays the first completed response for the same request payload.
911
+ */
912
+ IdempotencyKey: string;
913
+ ProjectId: string;
914
+ AssetId: string;
915
+ /** @description Original filename for the uploaded file. */
916
+ UploadFileName: string;
917
+ /** @description Optional project to bind the created asset to. */
918
+ UploadProjectId: string;
919
+ PageSize: number;
920
+ PageSizeAssets: number;
921
+ PageCursor: string;
922
+ };
596
923
  requestBodies: never;
597
924
  headers: never;
598
925
  pathItems: never;
@@ -629,13 +956,16 @@ interface ICreateExportRequest {
629
956
  }
630
957
  interface ICreateExportResponse {
631
958
  taskId: string;
959
+ projectId?: string | null;
632
960
  createdAt: string;
633
961
  durationSeconds: number;
634
962
  billedStandardSeconds: number;
635
963
  chargedCredits: string;
964
+ chargedCreditPool?: string;
636
965
  }
637
966
  interface IExportTask {
638
967
  taskId: string;
968
+ projectId?: string | null;
639
969
  createdByApiKeyId: string | null;
640
970
  clientTaskId: string | null;
641
971
  status: TTaskStatus;
@@ -735,6 +1065,100 @@ interface IWaitOptions {
735
1065
  pollIntervalMs?: number;
736
1066
  signal?: AbortSignal;
737
1067
  }
1068
+ interface IProjectSummary {
1069
+ projectId: string;
1070
+ title: string;
1071
+ description: string | null;
1072
+ createdAt: string;
1073
+ updatedAt: string;
1074
+ }
1075
+ interface IProjectDetail extends IProjectSummary {
1076
+ editorState: TEditorStateV1;
1077
+ stateVersion: string;
1078
+ }
1079
+ interface ICreateProjectRequest {
1080
+ title?: string;
1081
+ description?: string | null;
1082
+ editorState: TEditorStateV1;
1083
+ stateVersion?: string;
1084
+ }
1085
+ interface IUpdateProjectRequest {
1086
+ title?: string;
1087
+ description?: string | null;
1088
+ }
1089
+ interface ISyncProjectRequest {
1090
+ editorState: TEditorStateV1;
1091
+ stateVersion?: string;
1092
+ }
1093
+ interface IProjectMetadataResponse {
1094
+ projectId: string;
1095
+ title: string;
1096
+ description: string | null;
1097
+ updatedAt: string;
1098
+ }
1099
+ interface IProjectSyncResponse {
1100
+ projectId: string;
1101
+ stateVersion: string;
1102
+ updatedAt: string;
1103
+ }
1104
+ interface IDeleteProjectResponse {
1105
+ projectId: string;
1106
+ deleted: boolean;
1107
+ }
1108
+ interface IListProjectsResponse {
1109
+ items: IProjectSummary[];
1110
+ nextPageCursor: string | null;
1111
+ }
1112
+ interface IAsset {
1113
+ assetId: string;
1114
+ type: string;
1115
+ source: string | null;
1116
+ filename: string;
1117
+ mimetype: string;
1118
+ size: number | null;
1119
+ fileUrl: string;
1120
+ fileKey: string;
1121
+ width: number | null;
1122
+ height: number | null;
1123
+ duration: number | null;
1124
+ }
1125
+ interface IListAssetsResponse {
1126
+ items: IAsset[];
1127
+ nextPageCursor: string | null;
1128
+ }
1129
+ type TUploadBody = Blob | ArrayBuffer | ArrayBufferView | ReadableStream<Uint8Array>;
1130
+ interface IUploadOptions extends IRequestOptions {
1131
+ filename?: string;
1132
+ contentType?: string;
1133
+ projectId?: string;
1134
+ }
1135
+ interface IProjectAssetBindingResponse {
1136
+ projectId: string;
1137
+ assetId: string;
1138
+ }
1139
+ interface IDeleteProjectAssetResponse extends IProjectAssetBindingResponse {
1140
+ deleted: boolean;
1141
+ }
1142
+ interface IDeleteAssetResponse {
1143
+ assetId: string;
1144
+ deleted: boolean;
1145
+ }
1146
+ interface ICreateProjectExportRequest {
1147
+ clientTaskId?: string;
1148
+ fps: 30 | 60;
1149
+ ratio: TExportRatio;
1150
+ scale: number;
1151
+ format: TExportFormat;
1152
+ callbackUrl?: string;
1153
+ callbackHeaders?: Record<string, string>;
1154
+ }
1155
+
1156
+ declare class AssetsResource {
1157
+ private readonly client;
1158
+ constructor(client: IndreamClient);
1159
+ get(assetId: string, options?: IRequestOptions): Promise<IAsset>;
1160
+ delete(assetId: string, options?: IRequestOptions): Promise<IDeleteAssetResponse>;
1161
+ }
738
1162
 
739
1163
  declare class ExportsResource {
740
1164
  private readonly client;
@@ -759,6 +1183,36 @@ declare class EditorResource {
759
1183
  validate(editorState: TEditorStateV1, options?: IRequestOptions): Promise<IEditorValidationResult>;
760
1184
  }
761
1185
 
1186
+ declare class ProjectsResource {
1187
+ private readonly client;
1188
+ constructor(client: IndreamClient);
1189
+ create(payload: ICreateProjectRequest, options?: ICreateRequestOptions): Promise<IProjectSummary>;
1190
+ list(params?: {
1191
+ pageSize?: number;
1192
+ pageCursor?: string;
1193
+ signal?: AbortSignal;
1194
+ }): Promise<IListProjectsResponse>;
1195
+ get(projectId: string, options?: IRequestOptions): Promise<IProjectDetail>;
1196
+ update(projectId: string, payload: IUpdateProjectRequest, options?: IRequestOptions): Promise<IProjectMetadataResponse>;
1197
+ sync(projectId: string, payload: ISyncProjectRequest, options?: IRequestOptions): Promise<IProjectSyncResponse>;
1198
+ delete(projectId: string, options?: IRequestOptions): Promise<IDeleteProjectResponse>;
1199
+ listAssets(params: {
1200
+ projectId: string;
1201
+ pageSize?: number;
1202
+ pageCursor?: string;
1203
+ signal?: AbortSignal;
1204
+ }): Promise<IListAssetsResponse>;
1205
+ addAsset(projectId: string, assetId: string, options?: IRequestOptions): Promise<IProjectAssetBindingResponse>;
1206
+ removeAsset(projectId: string, assetId: string, options?: IRequestOptions): Promise<IDeleteProjectAssetResponse>;
1207
+ createExport(projectId: string, payload: ICreateProjectExportRequest, options?: ICreateRequestOptions): Promise<ICreateExportResponse>;
1208
+ }
1209
+
1210
+ declare class UploadsResource {
1211
+ private readonly client;
1212
+ constructor(client: IndreamClient);
1213
+ upload(body: TUploadBody, options?: IUploadOptions): Promise<IAsset>;
1214
+ }
1215
+
762
1216
  declare class IndreamClient {
763
1217
  readonly apiKey: string;
764
1218
  readonly baseURL: string;
@@ -768,9 +1222,12 @@ declare class IndreamClient {
768
1222
  readonly fetchImpl: typeof fetch;
769
1223
  readonly exports: ExportsResource;
770
1224
  readonly editor: EditorResource;
1225
+ readonly projects: ProjectsResource;
1226
+ readonly uploads: UploadsResource;
1227
+ readonly assets: AssetsResource;
771
1228
  constructor(options: IClientOptions);
772
1229
  request<T>(path: string, init: {
773
- method: 'GET' | 'POST';
1230
+ method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
774
1231
  body?: unknown;
775
1232
  headers?: Record<string, string>;
776
1233
  idempotencyKey?: string;
@@ -778,7 +1235,7 @@ declare class IndreamClient {
778
1235
  skipRetry?: boolean;
779
1236
  }): Promise<T>;
780
1237
  requestEnvelope<T>(path: string, init: {
781
- method: 'GET' | 'POST';
1238
+ method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
782
1239
  body?: unknown;
783
1240
  headers?: Record<string, string>;
784
1241
  idempotencyKey?: string;
@@ -829,4 +1286,4 @@ declare const parseExportWebhookEvent: (value: unknown) => IExportWebhookEvent;
829
1286
  declare const verifyExportWebhookSignature: ({ webhookSecret, timestamp, rawBody, signature, }: IVerifyExportWebhookSignatureParams) => Promise<boolean>;
830
1287
  declare const verifyExportWebhookRequest: ({ webhookSecret, rawBody, headers, maxSkewSeconds, nowTimestampSeconds, }: IVerifyExportWebhookRequestParams) => Promise<boolean>;
831
1288
 
832
- export { APIError, AuthError, type IApiEnvelope, type IApiProblem, type ICaptionAnimationPresetGroups, type ICaptionAnimationPresetItem, type IClientOptions, type ICreateExportRequest, type ICreateExportResponse, type ICreateRequestOptions, type IEditorCapabilities, type IEditorValidationError, type IEditorValidationResult, type IExportTask, type IExportWebhookEvent, type IListExportsResponse, type IRequestOptions, type IVerifyExportWebhookRequestParams, type IVerifyExportWebhookSignatureParams, type IWaitOptions, IndreamClient, RateLimitError, type TEditorStateV1, type TExportFormat, type TExportRatio, type TExportWebhookEventType, type TTaskStatus, type TWebhookHeaders, ValidationError, createApiError, isExportTaskSnapshot, isExportWebhookEvent, isExportWebhookEventType, isTaskStatus, parseExportWebhookEvent, toApiProblem, verifyExportWebhookRequest, verifyExportWebhookSignature };
1289
+ export { APIError, AssetsResource, AuthError, EditorResource, ExportsResource, type IApiEnvelope, type IApiProblem, type IAsset, type ICaptionAnimationPresetGroups, type ICaptionAnimationPresetItem, type IClientOptions, type ICreateExportRequest, type ICreateExportResponse, type ICreateProjectExportRequest, type ICreateProjectRequest, type ICreateRequestOptions, type IDeleteAssetResponse, type IDeleteProjectAssetResponse, type IDeleteProjectResponse, type IEditorCapabilities, type IEditorValidationError, type IEditorValidationResult, type IExportTask, type IExportWebhookEvent, type IListAssetsResponse, type IListExportsResponse, type IListProjectsResponse, type IProjectAssetBindingResponse, type IProjectDetail, type IProjectMetadataResponse, type IProjectSummary, type IProjectSyncResponse, type IRequestOptions, type ISyncProjectRequest, type IUpdateProjectRequest, type IUploadOptions, type IVerifyExportWebhookRequestParams, type IVerifyExportWebhookSignatureParams, type IWaitOptions, IndreamClient, ProjectsResource, RateLimitError, type TEditorStateV1, type TExportFormat, type TExportRatio, type TExportWebhookEventType, type TTaskStatus, type TUploadBody, type TWebhookHeaders, UploadsResource, ValidationError, createApiError, isExportTaskSnapshot, isExportWebhookEvent, isExportWebhookEventType, isTaskStatus, parseExportWebhookEvent, toApiProblem, verifyExportWebhookRequest, verifyExportWebhookSignature };