@mengine/medeo-client 1.2.1-alpha.7 → 1.2.1-alpha.8

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.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { t as index_d_exports } from "./index-InEWX9rk.js";
2
- import { $ as Track, A as TrackDraft, B as DerivedItemPosition, C as SemanticOpKind, D as ValidationError, E as SnapshotReadable, F as VideoDocumentValidationError, G as toVideoDocument, H as buildSpeechHostMap, I as assertValidVideoDocument, J as DEFAULT_UNIT_TIME_MS, K as BgmPart, L as validateVideoDocument, M as VideoDocumentDraft, N as VideoDocumentMirrorSchema, O as PartIdFactory, P as videoDocumentMirrorSchema, Q as Timeline, R as InitialDocumentFacts, S as PlannedSemanticOpKind, T as SchemaValidator, U as derivePositionFromAbs, V as SpeechHostMap, W as fromVideoDocument, X as PartUnion, Y as PartKind, Z as SpeechPart, _ as SemanticOpInput, _t as Timeline$1, a as PlainMemoryAdapter, at as VideoDocumentSchemaVersion, b as IMPLEMENTED_SEMANTIC_OP_KINDS, c as MirrorVideoDocumentAdapter, ct as VideoDraft, d as createMirrorVideoDocumentAdapter, dt as speedOf, et as TrackItem, f as writeVideoDocumentToDraft, ft as Attachment, g as SemanticEditor, gt as SpeedShift, h as SemanticDocumentAdapter, ht as PartAggregation, i as JournalEntry, it as VideoDocument, j as TrackItemDraft, k as generatePartId, l as MirrorVideoDocumentOptions, lt as VideoDraftPartUnion, m as OpActor, mt as CaptionStyle, n as videoDocumentSchema, nt as VIDEO_DOCUMENT_SCHEMA_VERSION, o as PlainMemoryAdapterOptions, ot as VideoDocumentValidationIssue, p as CommitOptions, pt as CaptionPart$1, q as CaptionPart, r as readVideoDocumentFromDraft, rt as VideoClipPart, s as createPlainMemoryAdapter, st as VideoDocumentValidationIssueCode, t as partUnionSchema, tt as TrackItemTimePosition, u as createMirrorVideoDocument, ut as effectiveVideoClipDurationMs, v as SemanticOpName, vt as Track$1, w as isImplementedSemanticOpKind, x as ImplementedSemanticOpKind, y as TransactAudit, yt as TrackItem$1, z as buildInitialVideoDocument } from "./index-BO2fSUKi.js";
1
+ import { t as index_d_exports } from "./index-CMa6ZCtX.js";
2
+ import { $ as EntityId, A as generatePartId, At as CaptionPart$1, B as ResolvedEntityClipPlacement, C as PlannedSemanticOpKind, Ct as VideoDocumentValidationIssue, D as SnapshotReadable, Dt as effectiveVideoClipDurationMs, E as SchemaValidator, Et as VideoDraftPartUnion, F as videoDocumentMirrorSchema, Ft as Track$1, G as EntityTimelineProjectionError, H as ResolvedEntityTrack, I as VideoDocumentValidationError, It as TrackItem$1, J as JsonValue, K as EntityRelationRows, L as assertValidVideoDocument, M as TrackItemDraft, Mt as PartAggregation, N as VideoDocumentDraft, Nt as SpeedShift, O as ValidationError, Ot as speedOf, P as VideoDocumentMirrorSchema, Pt as Timeline$1, Q as VoiceDescriptor, R as validateVideoDocument, S as ImplementedSemanticOpKind, St as VideoDocumentSchemaVersion, T as isImplementedSemanticOpKind, Tt as VideoDraft, U as resolveEntityTimelineLayout, V as ResolvedEntityTimelineLayout, W as projectEntityTimeline, X as SequenceDuration, Y as CaptionStyleFields, Z as SequenceRange, _ as SemanticEditor, _t as TrackItem, a as PlainMemoryAdapter, at as derivePositionFromAbs, b as TransactAudit, bt as VideoClipPart, c as MirrorVideoDocumentAdapter, ct as BgmPart, d as createMirrorVideoDocument, dt as ENTITY_TIMELINE_PROJECTION_SCHEMA_VERSION, et as InitialDocumentFacts, f as createMirrorVideoDocumentAdapter, ft as PartKind, g as SemanticDocumentAdapter, gt as Track, h as OpActor, ht as Timeline, i as JournalEntry, it as buildSpeechHostMap, j as TrackDraft, jt as CaptionStyle, k as PartIdFactory, kt as Attachment, l as MirrorVideoDocumentOptions, lt as CaptionPart, m as CommitOptions, mt as SpeechPart, n as videoDocumentSchema, nt as DerivedItemPosition, o as PlainMemoryAdapterOptions, ot as fromVideoDocument, p as writeVideoDocumentToDraft, pt as PartUnion, q as JsonObject, r as readVideoDocumentFromDraft, rt as SpeechHostMap, s as createPlainMemoryAdapter, st as toVideoDocument, t as partUnionSchema, tt as buildInitialVideoDocument, u as applyEntityTimelineProjection, ut as DEFAULT_UNIT_TIME_MS, v as SemanticOpInput, vt as TrackItemTimePosition, w as SemanticOpKind, wt as VideoDocumentValidationIssueCode, x as IMPLEMENTED_SEMANTIC_OP_KINDS, xt as VideoDocument, y as SemanticOpName, yt as VIDEO_DOCUMENT_SCHEMA_VERSION, z as EntityTimelineTrackRole } from "./index-CbuWTReu.js";
3
3
  import { PeerID } from "loro-crdt";
4
4
  import { DocState } from "@mengine/sync";
5
5
  import { BaseDocStorage, Connection, DocDiff, DocPushReceipt, DocSnapshotRecord, DocStorage, DocStorageOptions, DocUpdate, DocUpdateRecord } from "@mengine/storage";
@@ -178,6 +178,344 @@ interface MengineEventStreamOptions {
178
178
  }
179
179
  declare function readMengineEventStream(options: MengineEventStreamOptions): Promise<void>;
180
180
  //#endregion
181
+ //#region src/entity-editor/entity-graph-http-client.d.ts
182
+ /** One authenticated revision of the authoritative Medeo Entity graph. */
183
+ interface EntityGraphState {
184
+ readonly revision: number;
185
+ readonly rows: EntityRelationRows;
186
+ }
187
+ interface EntityGraphCommitOptions {
188
+ /** Server version vector proving the explicit legacy-to-Entity migration baseline. */
189
+ readonly migrationBaseVv?: string;
190
+ }
191
+ /** Browser-safe authenticated CAS client for a document's Entity graph. */
192
+ declare class EntityGraphHttpClient {
193
+ private readonly options;
194
+ private readonly transport;
195
+ private readonly endpoint;
196
+ constructor(options: MengineHttpClientOptions);
197
+ fetchState(): Promise<EntityGraphState>;
198
+ /**
199
+ * Replace the complete Entity graph under the baseline revision.
200
+ *
201
+ * Deletion intent is derived from baseline IDs omitted from `nextRows`, so a
202
+ * transient create-then-remove never becomes a request to delete unknown
203
+ * persisted data.
204
+ */
205
+ commit(baseState: EntityGraphState, nextRows: EntityRelationRows, options?: EntityGraphCommitOptions): Promise<EntityGraphState>;
206
+ private request;
207
+ }
208
+ //#endregion
209
+ //#region src/entity-editor/types.d.ts
210
+ /** Injectable domain-id mint shared by Entity and Relation authoring surfaces. */
211
+ type EntityTimelineIdFactory = (prefix: 'entity' | 'relation') => string;
212
+ interface ImageMediaAssetFact {
213
+ readonly assetId: string;
214
+ readonly kind: 'image';
215
+ readonly storageKey?: string;
216
+ }
217
+ interface VideoMediaAssetFact {
218
+ readonly assetId: string;
219
+ readonly kind: 'video';
220
+ readonly durationMs: number;
221
+ readonly storageKey?: string;
222
+ }
223
+ interface AudioMediaAssetFact {
224
+ readonly assetId: string;
225
+ readonly kind: 'audio';
226
+ readonly durationMs: number;
227
+ readonly storageKey: string;
228
+ }
229
+ interface VoiceMediaAssetFact {
230
+ /** Stable external speech result id, independent of the placed Clip id. */
231
+ readonly assetId: string;
232
+ readonly kind: 'voice';
233
+ readonly durationMs: number;
234
+ readonly storageKey: string;
235
+ readonly voice: VoiceDescriptor;
236
+ }
237
+ /** Facts resolved from media storage. A trim window never substitutes for intrinsic duration. */
238
+ type MediaAssetFact = ImageMediaAssetFact | VideoMediaAssetFact | AudioMediaAssetFact | VoiceMediaAssetFact;
239
+ type ClipPlacement = {
240
+ readonly kind: 'sequential';
241
+ readonly order: number;
242
+ } | {
243
+ readonly kind: 'absolute';
244
+ readonly targetRange: SequenceRange<number>;
245
+ } | {
246
+ readonly kind: 'anchored';
247
+ readonly hostClipEntityId: string;
248
+ readonly anchorOffset: number;
249
+ };
250
+ interface InsertPlacedClipInput {
251
+ readonly trackEntityId: string;
252
+ readonly contentEntityId: string;
253
+ readonly sourceRange: SequenceRange<number>;
254
+ readonly duration: SequenceDuration<number>;
255
+ readonly placement: ClipPlacement;
256
+ readonly clipPayload?: JsonObject;
257
+ /** Stable caller-owned placement identity, when one already exists outside the graph. */
258
+ readonly clipEntityId?: string;
259
+ }
260
+ interface SetClipPlacementInput {
261
+ readonly clipEntityId: string;
262
+ readonly placement: ClipPlacement;
263
+ }
264
+ type SequentialClipAnchor = {
265
+ readonly position: 'before' | 'after';
266
+ readonly clipEntityId: string;
267
+ } | {
268
+ readonly position: 'trackStart';
269
+ };
270
+ interface MoveSequentialClipsInput {
271
+ readonly clipEntityIds: readonly string[];
272
+ readonly anchor: SequentialClipAnchor;
273
+ readonly onAnchored: 'follow' | 'keepAbsolute';
274
+ }
275
+ interface MoveClipsToStartsInput {
276
+ readonly moves: readonly {
277
+ readonly clipEntityId: string;
278
+ readonly newStartMs: number;
279
+ }[];
280
+ /** Absolute-time drags preserve every voiceover's current visible landing. */
281
+ readonly onAnchored: 'keepAbsolute';
282
+ }
283
+ interface DeleteClipTreeInput {
284
+ readonly clipEntityIds: readonly string[];
285
+ readonly onAnchored: 'cascade' | 'detach';
286
+ }
287
+ interface VoiceoverCaptionFact {
288
+ /** Stable placed caption identity supplied by the materialized side effect. */
289
+ readonly captionClipEntityId: string;
290
+ readonly text: string;
291
+ readonly startMs: number;
292
+ readonly durationMs: number;
293
+ readonly style?: CaptionStyleFields;
294
+ }
295
+ interface VoiceoverTakeInput {
296
+ readonly timelineEntityId: string;
297
+ /** Stable placed speech identity, distinct from media.assetId. */
298
+ readonly voiceoverClipEntityId: string;
299
+ readonly hostClipEntityId: string;
300
+ readonly anchorOffset: number;
301
+ readonly media: VoiceMediaAssetFact;
302
+ /** Complete spoken text; the editor owns the deterministic local script segment identity. */
303
+ readonly scriptText: string;
304
+ readonly volume: number;
305
+ readonly captions: readonly VoiceoverCaptionFact[];
306
+ }
307
+ type VisualMediaAssetFact = ImageMediaAssetFact | VideoMediaAssetFact;
308
+ interface InsertMediaClipInput {
309
+ readonly timelineEntityId: string;
310
+ readonly clipEntityId?: string;
311
+ readonly media: VisualMediaAssetFact;
312
+ /** Source/display window in whole milliseconds. Images use this as their finite display span. */
313
+ readonly sourceRange: SequenceRange<number>;
314
+ readonly placement: ClipPlacement;
315
+ readonly volume?: number;
316
+ }
317
+ interface ReplaceMediaClipInput {
318
+ readonly clipEntityId: string;
319
+ readonly media: VisualMediaAssetFact;
320
+ readonly sourceRange: SequenceRange<number>;
321
+ }
322
+ interface ReplacementMediaClipInput {
323
+ readonly clipEntityId?: string;
324
+ readonly media: VisualMediaAssetFact;
325
+ readonly sourceRange: SequenceRange<number>;
326
+ readonly volume?: number;
327
+ }
328
+ type MediaClipInsertion = {
329
+ readonly kind: 'before';
330
+ readonly clipEntityId: string;
331
+ } | {
332
+ readonly kind: 'after';
333
+ readonly clipEntityId: string;
334
+ } | {
335
+ readonly kind: 'firstStart';
336
+ readonly startMs: number;
337
+ };
338
+ interface InsertMediaClipsInput {
339
+ readonly timelineEntityId: string;
340
+ readonly clips: readonly ReplacementMediaClipInput[];
341
+ /** One placement decision for the whole input-ordered block. */
342
+ readonly insertion: MediaClipInsertion;
343
+ }
344
+ interface ReplaceSequentialClipsInput {
345
+ readonly timelineEntityId: string;
346
+ readonly oldClipEntityIds: readonly string[];
347
+ readonly newClips: readonly ReplacementMediaClipInput[];
348
+ readonly onAnchored: 'remap' | 'cascade';
349
+ }
350
+ interface SetClipVolumeInput {
351
+ readonly clipEntityId: string;
352
+ /** Playback gain in decibels. */
353
+ readonly volume: number;
354
+ }
355
+ interface LinearClipSpeed {
356
+ readonly kind: 'linear';
357
+ readonly rate: number;
358
+ readonly mode?: string;
359
+ }
360
+ interface SetClipSpeedInput {
361
+ readonly clipEntityId: string;
362
+ readonly timeRemapping: LinearClipSpeed | null;
363
+ }
364
+ interface TrimClipInput {
365
+ readonly clipEntityId: string;
366
+ readonly sourceRange: SequenceRange<number>;
367
+ }
368
+ interface VoiceoverTakeResult {
369
+ readonly voiceoverClipEntityId: string;
370
+ readonly voiceEntityId: string;
371
+ readonly audioScriptEntityId: string;
372
+ readonly captionClipEntityIds: readonly string[];
373
+ }
374
+ interface MoveVoiceoverInput {
375
+ readonly voiceoverClipEntityId: string;
376
+ /** Absolute requested timeline start; MEngine resolves and persists the host relation. */
377
+ readonly newStartMs: number;
378
+ }
379
+ interface DeleteVoiceoverInput {
380
+ readonly voiceoverClipEntityIds: readonly string[];
381
+ }
382
+ interface SetBgmInput {
383
+ readonly timelineEntityId: string;
384
+ readonly bgmClipEntityId: string;
385
+ readonly media: AudioMediaAssetFact;
386
+ readonly volume: number;
387
+ }
388
+ interface DeleteBgmInput {
389
+ readonly timelineEntityId: string;
390
+ }
391
+ interface SetCaptionVisibilityInput {
392
+ readonly timelineEntityId: string;
393
+ readonly hidden: boolean;
394
+ }
395
+ interface PatchCaptionStyleInput {
396
+ readonly timelineEntityId: string;
397
+ readonly style: CaptionStyleFields;
398
+ }
399
+ interface InsertClipInput {
400
+ readonly trackEntityId: string;
401
+ /** Existing Sequence media Entity id. Asset ids and URLs are not content ids. */
402
+ readonly contentEntityId: string;
403
+ readonly sourceRange: SequenceRange<number>;
404
+ readonly duration: SequenceDuration<number>;
405
+ readonly targetRange?: SequenceRange<number>;
406
+ readonly clipPayload?: JsonObject;
407
+ }
408
+ interface UpdateClipMarkerInput {
409
+ readonly clipEntityId: string;
410
+ readonly sourceRange?: SequenceRange<number>;
411
+ /** Passing `undefined` explicitly removes the optional target range. */
412
+ readonly targetRange?: SequenceRange<number> | undefined;
413
+ readonly duration?: SequenceDuration<number>;
414
+ /** Passing `undefined` explicitly removes the optional remapping value. */
415
+ readonly timeRemapping?: JsonValue | undefined;
416
+ }
417
+ interface MoveClipInput {
418
+ readonly clipEntityId: string;
419
+ readonly trackEntityId: string;
420
+ }
421
+ interface ReplaceClipContentInput {
422
+ readonly clipEntityId: string;
423
+ /** Existing Sequence media Entity id. Asset ids and URLs are not content ids. */
424
+ readonly contentEntityId: string;
425
+ readonly sourceRange: SequenceRange<number>;
426
+ readonly duration: SequenceDuration<number>;
427
+ readonly targetRange?: SequenceRange<number>;
428
+ readonly timeRemapping?: JsonValue;
429
+ }
430
+ interface DeleteClipInput {
431
+ readonly clipEntityId: string;
432
+ }
433
+ interface UpdateClipInput {
434
+ readonly clipEntityId: string;
435
+ /** Complete replacement for the Clip-owned payload. */
436
+ readonly payload: JsonObject;
437
+ }
438
+ type ClipEntityId = EntityId;
439
+ //#endregion
440
+ //#region src/entity-editor/entity-timeline-editor.d.ts
441
+ /**
442
+ * Graph-native timeline authoring over authoritative Medeo Entity and Relation rows.
443
+ *
444
+ * Each mutation is applied to a detached graph, validated as a complete DSL set,
445
+ * and committed only after validation succeeds.
446
+ */
447
+ declare class EntityTimelineEditor {
448
+ private readonly idFactory;
449
+ private state;
450
+ constructor(initialRows: EntityRelationRows, idFactory?: EntityTimelineIdFactory);
451
+ rows(): EntityRelationRows;
452
+ insertClip(input: InsertClipInput): ClipEntityId;
453
+ insertPlacedClip(input: InsertPlacedClipInput): ClipEntityId;
454
+ updateClipMarker(input: UpdateClipMarkerInput): void;
455
+ setClipPlacement(input: SetClipPlacementInput): void;
456
+ moveSequentialClips(input: MoveSequentialClipsInput): void;
457
+ moveClipsToStarts(input: MoveClipsToStartsInput): void;
458
+ moveClip(input: MoveClipInput): void;
459
+ replaceClipContent(input: ReplaceClipContentInput): void;
460
+ insertMediaClip(input: InsertMediaClipInput): ClipEntityId;
461
+ insertMediaClips(input: InsertMediaClipsInput): readonly ClipEntityId[];
462
+ replaceMediaClip(input: ReplaceMediaClipInput): void;
463
+ setClipVolume(input: SetClipVolumeInput): void;
464
+ setClipSpeed(input: SetClipSpeedInput): void;
465
+ trimClip(input: TrimClipInput): void;
466
+ replaceSequentialClips(input: ReplaceSequentialClipsInput): readonly ClipEntityId[];
467
+ deleteClip(input: DeleteClipInput): void;
468
+ deleteClipTree(input: DeleteClipTreeInput): void;
469
+ updateClip(input: UpdateClipInput): void;
470
+ upsertVoiceoverTake(input: VoiceoverTakeInput): VoiceoverTakeResult;
471
+ moveVoiceover(input: MoveVoiceoverInput): void;
472
+ deleteVoiceover(input: DeleteVoiceoverInput): void;
473
+ setBgm(input: SetBgmInput): ClipEntityId;
474
+ deleteBgm(input: DeleteBgmInput): void;
475
+ setCaptionVisibility(input: SetCaptionVisibilityInput): void;
476
+ patchCaptionStyle(input: PatchCaptionStyleInput): void;
477
+ private insertPlacedClipIntoDraft;
478
+ private ensureRoleTrack;
479
+ private ensureAudioScript;
480
+ private reconcileVoiceoverCaptions;
481
+ private ensureRoleTrackForClip;
482
+ private replaceCaptionSemanticRelations;
483
+ private removeCaptionClipGraph;
484
+ private replaceAnchorHost;
485
+ /** Rebuild the legacy edit baseline from current visual order before a high-level cascade. */
486
+ private normalizeMainSequential;
487
+ private resolveOneVoiceoverOverlap;
488
+ private applyClipPlacement;
489
+ private reanchorAtAbsolute;
490
+ private removeAnchoredDescendants;
491
+ private removeClipGraph;
492
+ private transact;
493
+ private mintEntityId;
494
+ private createRelation;
495
+ private relinkRelation;
496
+ private mintRelationId;
497
+ }
498
+ //#endregion
499
+ //#region src/entity-editor/media-asset-import.d.ts
500
+ interface ImportedMediaAsset {
501
+ readonly rows: EntityRelationRows;
502
+ readonly assetEntityId: string;
503
+ readonly contentEntityId: string;
504
+ }
505
+ /** Disambiguates a valid many-to-many graph; absence never licenses an arbitrary choice. */
506
+ interface MediaAssetSelection {
507
+ readonly assetEntityId?: string;
508
+ readonly contentEntityId?: string;
509
+ }
510
+ /** Import at the editor boundary, not at asset generation time. Existing provenance is retained. */
511
+ declare function importMediaAsset(initial: EntityRelationRows, fact: MediaAssetFact, idFactory?: EntityTimelineIdFactory, selection?: MediaAssetSelection): ImportedMediaAsset;
512
+ //#endregion
513
+ //#region src/entity-editor/legacy-entity-migration.d.ts
514
+ /** One-time import only. Ordinary editor operations must never reverse-diff a legacy document. */
515
+ declare function migrateLegacyTimelineToEntities(legacy: VideoDocument, assetFacts: readonly MediaAssetFact[], initial?: EntityRelationRows, idFactory?: EntityTimelineIdFactory): EntityRelationRows;
516
+ /** Server gate: a cutover may change representation, never the existing render facts. */
517
+ declare function assertEntityProjectionPreservesLegacy(legacy: VideoDocument, projection: VideoDocument, rows: EntityRelationRows): void;
518
+ //#endregion
181
519
  //#region src/editor/journal.d.ts
182
520
  /**
183
521
  * Wire a plain-memory adapter + editor that share a recording id factory, so
@@ -634,6 +972,11 @@ interface MengineDocSessionOptions {
634
972
  */
635
973
  localStorage?: DocStorageLike;
636
974
  sseReconnectDelayMs?: number;
975
+ /**
976
+ * Keep remote synchronization read-only: pull snapshot/diffs and subscribe to
977
+ * SSE updates, but never POST local Loro updates to the server.
978
+ */
979
+ readonlyMode?: boolean;
637
980
  }
638
981
  /**
639
982
  * A live editing session for one Medeo document — the single entry point clients
@@ -1077,4 +1420,4 @@ declare function hostForAbsMs(ranges: MainClipRange[], absMs: number): MainClipR
1077
1420
  */
1078
1421
  declare function relativePositionForAbs(ranges: MainClipRange[], absMs: number): TrackItemTimePosition;
1079
1422
  //#endregion
1080
- export { type Aggregation, type Attachment, type BgmPart, type CaptionPart, type CaptionStyle, type CommitOptions, DEFAULT_UNIT_TIME_MS, type DerivedItemPosition, type DocStorageLike, type DocVersionMark, IMPLEMENTED_SEMANTIC_OP_KINDS, type ImplementedSemanticOpKind, type InitialDocumentFacts, type JournalEntry, LANE_KINDS_IN_STACK_ORDER, type LaneKind, type MainClipRange, type MakeEmptyPart, ManualSyncDoc, type ManualSyncDocOptions, MedeoHttpDocStorage, type MedeoHttpDocStorageOptions, MemoryDocStorage, MengineAckFailedError, type MengineAuditEntry, type MengineAuditResponse, MengineDocSession, type MengineDocSessionOptions, type MengineDocSessionUpdateEvent, type MengineDocumentVersion, type MengineEventStreamOptions, MengineHttpClient, type MengineHttpClientOptions, MengineHttpRequestError, MenginePushRejectedError, type MenginePushResponse, type MenginePushUpdateResponse, type MengineRejectedResponse, type MengineSnapshotResponse, type MengineSseUpdateEvent, type MengineSyncResponse, type MengineUpdateMeta, MirrorVideoDocumentAdapter, type MirrorVideoDocumentOptions, type OpActor, type PartAggregation, type PartIdFactory, type PartKind, type PartUnion, PlainMemoryAdapter, type PlainMemoryAdapterOptions, type PlannedSemanticOpKind, type PullFailureReason, type PullResult, type PushOutcome, type PushOutcomeKind, type PushResult, type PushResultKind, SchemaValidator, type SemanticDocumentAdapter, SemanticEditor, type SemanticOpInput, type SemanticOpKind, type SemanticOpName, type SnapshotReadable, type SolvedVideoDocument, type SpeechHostMap, type SpeechPart, type SpeedShift, TIMELINE_SKELETON_DURATION_MS, type Timeline, type TimelineDoc, type TimelineItem, type Track, type TrackDraft, type TrackItem, type TrackItemDraft, type TrackItemTimePosition, type TransactAudit, VIDEO_DOCUMENT_SCHEMA_VERSION, ValidationError, type VideoClipPart, type VideoDocument, type VideoDocumentDraft, type VideoDocumentMirrorSchema, type VideoDocumentSchemaVersion, VideoDocumentValidationError, type VideoDocumentValidationIssue, type VideoDocumentValidationIssueCode, type VideoDraft, type CaptionPart$1 as VideoDraftCaptionPart, type VideoDraftPartUnion, type Timeline$1 as VideoDraftTimeline, type Track$1 as VideoDraftTrack, type TrackItem$1 as VideoDraftTrackItem, type WaitForServerAckOptions, arrangeMainTrackSeamlessly, assertValidVideoDocument, base64ToBytes, buildInitialVideoDocument, buildSpeechHostMap, bytesToBase64, cascadeAfterVideoClipChanges, createEditSandbox, createMirrorVideoDocument, createMirrorVideoDocumentAdapter, createPlainMemoryAdapter, decodeDocVersionMark, derivePositionFromAbs, effectiveVideoClipDurationMs, encodeDocVersionMark, ensureLaneTrack, fillMainTrackTimeGaps, findLaneTrack, fromVideoDocument, generatePartId, getAt, hostForAbsMs, isEmptyVideoClip, isImplementedSemanticOpKind, isMap, laneTrackId, mainTrackRanges, partDurationMs, partUnionSchema, readMainTrackItems, readMengineEventStream, readPart, readPartDurationMs, readVideoDocumentFromDraft, reassignSpeechesToVideoClipsByTime, recalculateTimelineDuration, relativePositionForAbs, replayJournal, resolveAllSpeechOverlaps, resolveSpeechOverlapByShiftingVideos, safeDurationMs, index_d_exports as schemas, snapshotToPlain, solveVideoDocument, speedOf, syncAggregatedClipsTimePosition, toVideoDocument, validateVideoDocument, videoDocumentMirrorSchema, videoDocumentSchema, writeVideoDocumentToDraft };
1423
+ export { type Aggregation, type Attachment, type AudioMediaAssetFact, type BgmPart, type CaptionPart, type CaptionStyle, type ClipEntityId, type ClipPlacement, type CommitOptions, DEFAULT_UNIT_TIME_MS, type DeleteBgmInput, type DeleteClipInput, type DeleteClipTreeInput, type DeleteVoiceoverInput, type DerivedItemPosition, type DocStorageLike, type DocVersionMark, ENTITY_TIMELINE_PROJECTION_SCHEMA_VERSION, type EntityGraphCommitOptions, EntityGraphHttpClient, type EntityGraphState, EntityTimelineEditor, type EntityTimelineIdFactory, EntityTimelineProjectionError, type EntityTimelineTrackRole, IMPLEMENTED_SEMANTIC_OP_KINDS, type ImageMediaAssetFact, type ImplementedSemanticOpKind, type ImportedMediaAsset, type InitialDocumentFacts, type InsertClipInput, type InsertMediaClipInput, type InsertMediaClipsInput, type InsertPlacedClipInput, type JournalEntry, LANE_KINDS_IN_STACK_ORDER, type LaneKind, type LinearClipSpeed, type MainClipRange, type MakeEmptyPart, ManualSyncDoc, type ManualSyncDocOptions, MedeoHttpDocStorage, type MedeoHttpDocStorageOptions, type MediaAssetFact, type MediaAssetSelection, type MediaClipInsertion, MemoryDocStorage, MengineAckFailedError, type MengineAuditEntry, type MengineAuditResponse, MengineDocSession, type MengineDocSessionOptions, type MengineDocSessionUpdateEvent, type MengineDocumentVersion, type MengineEventStreamOptions, MengineHttpClient, type MengineHttpClientOptions, MengineHttpRequestError, MenginePushRejectedError, type MenginePushResponse, type MenginePushUpdateResponse, type MengineRejectedResponse, type MengineSnapshotResponse, type MengineSseUpdateEvent, type MengineSyncResponse, type MengineUpdateMeta, MirrorVideoDocumentAdapter, type MirrorVideoDocumentOptions, type MoveClipInput, type MoveClipsToStartsInput, type MoveSequentialClipsInput, type MoveVoiceoverInput, type OpActor, type PartAggregation, type PartIdFactory, type PartKind, type PartUnion, type PatchCaptionStyleInput, PlainMemoryAdapter, type PlainMemoryAdapterOptions, type PlannedSemanticOpKind, type PullFailureReason, type PullResult, type PushOutcome, type PushOutcomeKind, type PushResult, type PushResultKind, type ReplaceClipContentInput, type ReplaceMediaClipInput, type ReplaceSequentialClipsInput, type ReplacementMediaClipInput, type ResolvedEntityClipPlacement, type ResolvedEntityTimelineLayout, type ResolvedEntityTrack, SchemaValidator, type SemanticDocumentAdapter, SemanticEditor, type SemanticOpInput, type SemanticOpKind, type SemanticOpName, type SequentialClipAnchor, type SetBgmInput, type SetCaptionVisibilityInput, type SetClipPlacementInput, type SetClipSpeedInput, type SetClipVolumeInput, type SnapshotReadable, type SolvedVideoDocument, type SpeechHostMap, type SpeechPart, type SpeedShift, TIMELINE_SKELETON_DURATION_MS, type Timeline, type TimelineDoc, type TimelineItem, type Track, type TrackDraft, type TrackItem, type TrackItemDraft, type TrackItemTimePosition, type TransactAudit, type TrimClipInput, type UpdateClipInput, type UpdateClipMarkerInput, VIDEO_DOCUMENT_SCHEMA_VERSION, ValidationError, type VideoClipPart, type VideoDocument, type VideoDocumentDraft, type VideoDocumentMirrorSchema, type VideoDocumentSchemaVersion, VideoDocumentValidationError, type VideoDocumentValidationIssue, type VideoDocumentValidationIssueCode, type VideoDraft, type CaptionPart$1 as VideoDraftCaptionPart, type VideoDraftPartUnion, type Timeline$1 as VideoDraftTimeline, type Track$1 as VideoDraftTrack, type TrackItem$1 as VideoDraftTrackItem, type VideoMediaAssetFact, type VisualMediaAssetFact, type VoiceMediaAssetFact, type VoiceoverCaptionFact, type VoiceoverTakeInput, type VoiceoverTakeResult, type WaitForServerAckOptions, applyEntityTimelineProjection, arrangeMainTrackSeamlessly, assertEntityProjectionPreservesLegacy, assertValidVideoDocument, base64ToBytes, buildInitialVideoDocument, buildSpeechHostMap, bytesToBase64, cascadeAfterVideoClipChanges, createEditSandbox, createMirrorVideoDocument, createMirrorVideoDocumentAdapter, createPlainMemoryAdapter, decodeDocVersionMark, derivePositionFromAbs, effectiveVideoClipDurationMs, encodeDocVersionMark, ensureLaneTrack, fillMainTrackTimeGaps, findLaneTrack, fromVideoDocument, generatePartId, getAt, hostForAbsMs, importMediaAsset, isEmptyVideoClip, isImplementedSemanticOpKind, isMap, laneTrackId, mainTrackRanges, migrateLegacyTimelineToEntities, partDurationMs, partUnionSchema, projectEntityTimeline, readMainTrackItems, readMengineEventStream, readPart, readPartDurationMs, readVideoDocumentFromDraft, reassignSpeechesToVideoClipsByTime, recalculateTimelineDuration, relativePositionForAbs, replayJournal, resolveAllSpeechOverlaps, resolveEntityTimelineLayout, resolveSpeechOverlapByShiftingVideos, safeDurationMs, index_d_exports as schemas, snapshotToPlain, solveVideoDocument, speedOf, syncAggregatedClipsTimePosition, toVideoDocument, validateVideoDocument, videoDocumentMirrorSchema, videoDocumentSchema, writeVideoDocumentToDraft };