daily-video-editor 0.0.2 → 0.0.4

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.
@@ -53,7 +53,17 @@ declare function importData(data: {
53
53
  }): void;
54
54
  declare function exportAsJSON(): string;
55
55
  declare function importFromJSON(json: string): boolean;
56
- declare function addTrack(track: Track): void;
56
+ /**
57
+ * 当前类型是否还能再建轨(无 max 配置则不限制)
58
+ * @param type - 轨道类型
59
+ */
60
+ declare function canAddTrack(type: Track["type"]): boolean;
61
+ /**
62
+ * 添加轨道;达类型上限时拒绝,不写历史、不发事件
63
+ * @param track - 待添加轨道
64
+ * @returns 是否添加成功
65
+ */
66
+ declare function addTrack(track: Track): boolean;
57
67
  declare function removeTrack(trackId: string): void;
58
68
  declare function updateTrack(trackId: string, updates: Partial<Track>): void;
59
69
  declare function getTracks(): {
@@ -1690,6 +1700,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
1690
1700
  importData: typeof importData;
1691
1701
  exportAsJSON: typeof exportAsJSON;
1692
1702
  importFromJSON: typeof importFromJSON;
1703
+ canAddTrack: typeof canAddTrack;
1693
1704
  addTrack: typeof addTrack;
1694
1705
  removeTrack: typeof removeTrack;
1695
1706
  updateTrack: typeof updateTrack;
@@ -1825,7 +1836,6 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
1825
1836
  playbackRates: number[];
1826
1837
  trackControlWidth: number;
1827
1838
  trackContextMenu: TrackContextMenuConfig;
1828
- trackTypes: TrackTypeConfig;
1829
1839
  clipConfigs: ClipTypeConfig;
1830
1840
  showToolsBar: boolean;
1831
1841
  enableMainTrackMode: boolean;
@@ -3,7 +3,7 @@ export { locales } from './types/config';
3
3
  export { generateId } from './utils/helpers';
4
4
  export type { RectConfig, MediaClip, SubtitleClip, TextClip, Clip, } from './types/clip';
5
5
  export type { Track, TrackType } from './types/track';
6
- export type { OperationButton, ClipTypeConfig, TrackContextMenuConfig, ClipContextMenuConfig, ThemeConfig, } from './types/config';
6
+ export type { OperationButton, ClipTypeConfig, TrackTypeConfig, TrackContextMenuConfig, ClipContextMenuConfig, ThemeConfig, } from './types/config';
7
7
  /** VideoTrack importData / exportData 工程快照 */
8
8
  export interface VideoTrackProjectData {
9
9
  version: string;
@@ -1,4 +1,4 @@
1
- import { Track, Clip, TrackType } from '../types';
1
+ import { Track, Clip, TrackType, TrackTypeConfig } from '../types';
2
2
  export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", Pick<{
3
3
  tracks: import('vue').Ref<{
4
4
  id: string;
@@ -1170,6 +1170,7 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
1170
1170
  })[];
1171
1171
  operation: "copy" | "cut" | null;
1172
1172
  }>;
1173
+ trackTypes: import('vue').Ref<TrackTypeConfig, TrackTypeConfig>;
1173
1174
  mainTrack: import('vue').ComputedRef<{
1174
1175
  id: string;
1175
1176
  type: TrackType;
@@ -1762,7 +1763,9 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
1762
1763
  }[]>;
1763
1764
  totalDuration: import('vue').ComputedRef<number>;
1764
1765
  selectedClips: import('vue').ComputedRef<Clip[]>;
1765
- addTrack: (track: Track) => void;
1766
+ setTrackTypes: (config: TrackTypeConfig | undefined) => void;
1767
+ canAddTrack: (type: TrackType) => boolean;
1768
+ addTrack: (track: Track) => boolean;
1766
1769
  addTrackAbove: (trackId: string, type: TrackType) => Track | null;
1767
1770
  addTrackBelow: (trackId: string, type: TrackType) => Track | null;
1768
1771
  removeTrack: (trackId: string) => void;
@@ -2108,7 +2111,7 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
2108
2111
  newDuration?: number;
2109
2112
  };
2110
2113
  calculateTrackDuration: (trimStart: number, trimEnd: number, playbackRate?: number) => number;
2111
- }, "tracks" | "selectedClipIds" | "clipboard">, Pick<{
2114
+ }, "tracks" | "selectedClipIds" | "clipboard" | "trackTypes">, Pick<{
2112
2115
  tracks: import('vue').Ref<{
2113
2116
  id: string;
2114
2117
  type: TrackType;
@@ -3279,6 +3282,7 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
3279
3282
  })[];
3280
3283
  operation: "copy" | "cut" | null;
3281
3284
  }>;
3285
+ trackTypes: import('vue').Ref<TrackTypeConfig, TrackTypeConfig>;
3282
3286
  mainTrack: import('vue').ComputedRef<{
3283
3287
  id: string;
3284
3288
  type: TrackType;
@@ -3871,7 +3875,9 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
3871
3875
  }[]>;
3872
3876
  totalDuration: import('vue').ComputedRef<number>;
3873
3877
  selectedClips: import('vue').ComputedRef<Clip[]>;
3874
- addTrack: (track: Track) => void;
3878
+ setTrackTypes: (config: TrackTypeConfig | undefined) => void;
3879
+ canAddTrack: (type: TrackType) => boolean;
3880
+ addTrack: (track: Track) => boolean;
3875
3881
  addTrackAbove: (trackId: string, type: TrackType) => Track | null;
3876
3882
  addTrackBelow: (trackId: string, type: TrackType) => Track | null;
3877
3883
  removeTrack: (trackId: string) => void;
@@ -5388,6 +5394,7 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
5388
5394
  })[];
5389
5395
  operation: "copy" | "cut" | null;
5390
5396
  }>;
5397
+ trackTypes: import('vue').Ref<TrackTypeConfig, TrackTypeConfig>;
5391
5398
  mainTrack: import('vue').ComputedRef<{
5392
5399
  id: string;
5393
5400
  type: TrackType;
@@ -5980,7 +5987,9 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
5980
5987
  }[]>;
5981
5988
  totalDuration: import('vue').ComputedRef<number>;
5982
5989
  selectedClips: import('vue').ComputedRef<Clip[]>;
5983
- addTrack: (track: Track) => void;
5990
+ setTrackTypes: (config: TrackTypeConfig | undefined) => void;
5991
+ canAddTrack: (type: TrackType) => boolean;
5992
+ addTrack: (track: Track) => boolean;
5984
5993
  addTrackAbove: (trackId: string, type: TrackType) => Track | null;
5985
5994
  addTrackBelow: (trackId: string, type: TrackType) => Track | null;
5986
5995
  removeTrack: (trackId: string) => void;
@@ -6326,4 +6335,4 @@ export declare const useTracksStore: import('pinia').StoreDefinition<"tracks", P
6326
6335
  newDuration?: number;
6327
6336
  };
6328
6337
  calculateTrackDuration: (trimStart: number, trimEnd: number, playbackRate?: number) => number;
6329
- }, "reset" | "addTrack" | "addTrackAbove" | "addTrackBelow" | "removeTrack" | "updateTrack" | "getTrackCountByType" | "setTracks" | "normalizeTracks" | "normalizeClipDuration" | "addClip" | "removeClip" | "removeClips" | "updateClip" | "moveClipToTrack" | "getClip" | "selectClip" | "toggleClipSelection" | "deselectClip" | "clearSelection" | "hasOverlap" | "cleanupEmptyTracks" | "copyClips" | "cutClips" | "pasteClips" | "hasClipboardContent" | "getClipboardContent" | "clearClipboard" | "splitClip" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "calculateTrackDuration">>;
6338
+ }, "reset" | "setTrackTypes" | "canAddTrack" | "addTrack" | "addTrackAbove" | "addTrackBelow" | "removeTrack" | "updateTrack" | "getTrackCountByType" | "setTracks" | "normalizeTracks" | "normalizeClipDuration" | "addClip" | "removeClip" | "removeClips" | "updateClip" | "moveClipToTrack" | "getClip" | "selectClip" | "toggleClipSelection" | "deselectClip" | "clearSelection" | "hasOverlap" | "cleanupEmptyTracks" | "copyClips" | "cutClips" | "pasteClips" | "hasClipboardContent" | "getClipboardContent" | "clearClipboard" | "splitClip" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "calculateTrackDuration">>;
@@ -1,7 +1,8 @@
1
1
  import { Slot } from 'vue';
2
2
  import { TextTemplateItem } from './shared/textTemplateCatalog';
3
3
  import { ComposeCatalogUploadPayload, ComposeUploadAdapter } from './session/createComposeEditorState';
4
- import { BgmItem, ComposeSegmentClipAssets, VideoComposeEditorModel } from '../types/videoCompose';
4
+ import { TrackTypeConfig } from '../clip-track';
5
+ import { BgmItem, ComposeClip, ComposeSegmentClipAssets, ComposeSubtitleAsset, VideoComposeEditorModel } from '../types/videoCompose';
5
6
  type __VLS_Props = {
6
7
  /** 编辑器聚合状态(轨道真相源:modelValue.tracks) */
7
8
  modelValue: VideoComposeEditorModel;
@@ -13,6 +14,8 @@ type __VLS_Props = {
13
14
  audioAssets?: BgmItem[];
14
15
  /** 侧栏音效种子 */
15
16
  sfxAssets?: BgmItem[];
17
+ /** 侧栏字幕种子;同步进内部列表,不进 v-model */
18
+ subtitleAssets?: ComposeSubtitleAsset[];
16
19
  /** 侧栏花字种子 */
17
20
  textTemplates?: TextTemplateItem[];
18
21
  /** 可选上传适配器(无 onRequestUpload* 时由 Editor 选文件并调用) */
@@ -29,10 +32,15 @@ type __VLS_Props = {
29
32
  resolveMediaUrl?: (url: string) => Promise<string>;
30
33
  /** 美颜 WASM / 模型根路径,默认 /algorithm/ */
31
34
  algorithmBaseUrl?: string;
35
+ /**
36
+ * 各轨道类型数量上限;未传则使用 clip-track 组件默认。
37
+ * 某类型未出现在配置中视为不限制。
38
+ */
39
+ trackTypes?: TrackTypeConfig;
32
40
  };
33
41
  declare function __VLS_template(): {
34
42
  attrs: Partial<{}>;
35
- slots: Partial<Record<NonNullable<"video-actions" | "audio-actions" | "subtitle-actions" | "fancy-actions" | "sfx-actions">, (_: {}) => any>>;
43
+ slots: Partial<Record<NonNullable<"video-actions" | "audio-actions" | "subtitle-actions" | "fancy-actions" | "sfx-actions">, (_: {}) => any>> & Partial<Record<NonNullable<"before-apply-video" | "before-apply-audio" | "before-apply-subtitle" | "before-apply-text">, (_: {}) => any>>;
36
44
  refs: {
37
45
  shellRef: HTMLDivElement;
38
46
  playerRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
@@ -462,7 +470,7 @@ declare function __VLS_template(): {
462
470
  startTime: number;
463
471
  }) => any) | undefined;
464
472
  "onDrop-subtitle-asset"?: ((payload: {
465
- item: import('../types/videoCompose').ComposeSubtitleAsset;
473
+ item: ComposeSubtitleAsset;
466
474
  startTime: number;
467
475
  }) => any) | undefined;
468
476
  "onDrop-text-template"?: ((payload: {
@@ -492,6 +500,11 @@ declare function __VLS_template(): {
492
500
  text?: string;
493
501
  startTime?: number;
494
502
  durationSec?: number;
503
+ fontFamily?: string;
504
+ fontSize?: number;
505
+ color?: string;
506
+ bold?: boolean;
507
+ italic?: boolean;
495
508
  }) => string;
496
509
  addTextClip: (options: import('./timeline/VideoComposeTimeline.vue').AddTextClipOptions) => string;
497
510
  selectClipById: (clipId: string) => void;
@@ -551,7 +564,7 @@ declare function __VLS_template(): {
551
564
  startTime: number;
552
565
  }) => any;
553
566
  "drop-subtitle-asset": (payload: {
554
- item: import('../types/videoCompose').ComposeSubtitleAsset;
567
+ item: ComposeSubtitleAsset;
555
568
  startTime: number;
556
569
  }) => any;
557
570
  "drop-text-template": (payload: {
@@ -571,7 +584,7 @@ declare function __VLS_template(): {
571
584
  $props: {
572
585
  readonly operationButtons?: import('../clip-track').OperationButton[] | undefined;
573
586
  readonly scaleConfigButtons?: import('../clip-track/types').ScaleConfigButton[] | undefined;
574
- readonly trackTypes?: import('../clip-track/types').TrackTypeConfig | undefined;
587
+ readonly trackTypes?: TrackTypeConfig | undefined;
575
588
  readonly clipConfigs?: import('../clip-track').ClipTypeConfig | undefined;
576
589
  readonly showToolsBar?: boolean | undefined;
577
590
  readonly showPlayback?: boolean | undefined;
@@ -773,12 +786,13 @@ declare function __VLS_template(): {
773
786
  }) => void;
774
787
  exportAsJSON: () => string;
775
788
  importFromJSON: (json: string) => boolean;
776
- addTrack: (track: import('../clip-track').Track) => void;
789
+ canAddTrack: (type: import('../clip-track').Track["type"]) => boolean;
790
+ addTrack: (track: import('../clip-track').Track) => boolean;
777
791
  removeTrack: (trackId: string) => void;
778
792
  updateTrack: (trackId: string, updates: Partial<import('../clip-track').Track>) => void;
779
793
  getTracks: () => {
780
794
  id: string;
781
- type: import('.').TrackType;
795
+ type: import('../clip-track').TrackType;
782
796
  name: string;
783
797
  isMain?: boolean | undefined;
784
798
  visible: boolean;
@@ -1073,7 +1087,7 @@ declare function __VLS_template(): {
1073
1087
  }[];
1074
1088
  getSortedTracks: () => {
1075
1089
  id: string;
1076
- type: import('.').TrackType;
1090
+ type: import('../clip-track').TrackType;
1077
1091
  name: string;
1078
1092
  isMain?: boolean | undefined;
1079
1093
  visible: boolean;
@@ -1368,7 +1382,7 @@ declare function __VLS_template(): {
1368
1382
  }[];
1369
1383
  getTrackById: (trackId: string) => {
1370
1384
  id: string;
1371
- type: import('.').TrackType;
1385
+ type: import('../clip-track').TrackType;
1372
1386
  name: string;
1373
1387
  isMain?: boolean | undefined;
1374
1388
  visible: boolean;
@@ -1663,7 +1677,7 @@ declare function __VLS_template(): {
1663
1677
  } | undefined;
1664
1678
  getMainTrack: () => {
1665
1679
  id: string;
1666
- type: import('.').TrackType;
1680
+ type: import('../clip-track').TrackType;
1667
1681
  name: string;
1668
1682
  isMain?: boolean | undefined;
1669
1683
  visible: boolean;
@@ -2065,7 +2079,6 @@ declare function __VLS_template(): {
2065
2079
  playbackRates: number[];
2066
2080
  trackControlWidth: number;
2067
2081
  trackContextMenu: import('../clip-track').TrackContextMenuConfig;
2068
- trackTypes: import('../clip-track/types').TrackTypeConfig;
2069
2082
  clipConfigs: import('../clip-track').ClipTypeConfig;
2070
2083
  showToolsBar: boolean;
2071
2084
  enableMainTrackMode: boolean;
@@ -2108,7 +2121,6 @@ declare function __VLS_template(): {
2108
2121
  playbackRates: number[];
2109
2122
  trackControlWidth: number;
2110
2123
  trackContextMenu: import('../clip-track').TrackContextMenuConfig;
2111
- trackTypes: import('../clip-track/types').TrackTypeConfig;
2112
2124
  clipConfigs: import('../clip-track').ClipTypeConfig;
2113
2125
  showToolsBar: boolean;
2114
2126
  enableMainTrackMode: boolean;
@@ -2158,7 +2170,7 @@ declare function __VLS_template(): {
2158
2170
  onTrackContextMenuSelect?: ((key: string, track: import('../clip-track').Track, time: number) => any) | undefined;
2159
2171
  onClipContextMenuSelect?: ((key: string, clip: any) => any) | undefined;
2160
2172
  "onData:changed"?: (() => any) | undefined;
2161
- }>, "zoomIn" | "zoomOut" | "reset" | "undo" | "redo" | "addTrack" | "removeTrack" | "updateTrack" | "addClip" | "removeClip" | "updateClip" | "selectClip" | "clearSelection" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "isPlaying" | "play" | "pause" | "togglePlay" | "seekTo" | "setPlaybackRate" | "setScale" | "setScrollLeft" | "getCurrentTime" | ("minScale" | "maxScale" | "pixelsPerSecond" | "snapThreshold" | "operationButtons" | "scaleConfigButtons" | "locale" | "showPlayback" | "showScaleControl" | "playbackRates" | "trackControlWidth" | "trackContextMenu" | "trackTypes" | "clipConfigs" | "showToolsBar" | "enableMainTrackMode" | "enableCrossTrackDrag" | "fps" | "defaultScale" | "enableSnap" | "clipContextMenu" | "theme") | "registerClipType" | "emitTransitionAdded" | "exportData" | "importData" | "exportAsJSON" | "importFromJSON" | "getTracks" | "getSortedTracks" | "getTrackById" | "getMainTrack" | "getClipById" | "moveClip" | "selectClips" | "getSelectedClips" | "getSelectedClipIds" | "getPlaybackRate" | "getDuration" | "getScale" | "getViewportWidth" | "getScrollLeft" | "disableSnap" | "isSnapEnabled" | "getHistoryState"> & {
2173
+ }>, "zoomIn" | "zoomOut" | "reset" | "undo" | "redo" | "canAddTrack" | "addTrack" | "removeTrack" | "updateTrack" | "addClip" | "removeClip" | "updateClip" | "selectClip" | "clearSelection" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "isPlaying" | "play" | "pause" | "togglePlay" | "seekTo" | "setPlaybackRate" | "setScale" | "setScrollLeft" | "getCurrentTime" | ("minScale" | "maxScale" | "pixelsPerSecond" | "snapThreshold" | "operationButtons" | "scaleConfigButtons" | "locale" | "showPlayback" | "showScaleControl" | "playbackRates" | "trackControlWidth" | "trackContextMenu" | "clipConfigs" | "showToolsBar" | "enableMainTrackMode" | "enableCrossTrackDrag" | "fps" | "defaultScale" | "enableSnap" | "clipContextMenu" | "theme") | "registerClipType" | "emitTransitionAdded" | "exportData" | "importData" | "exportAsJSON" | "importFromJSON" | "getTracks" | "getSortedTracks" | "getTrackById" | "getMainTrack" | "getClipById" | "moveClip" | "selectClips" | "getSelectedClips" | "getSelectedClipIds" | "getPlaybackRate" | "getDuration" | "getScale" | "getViewportWidth" | "getScrollLeft" | "disableSnap" | "isSnapEnabled" | "getHistoryState"> & {
2162
2174
  reset: () => void;
2163
2175
  registerClipType: (type: string, config: any) => void;
2164
2176
  emitTransitionAdded: (transitionClip: any, beforeClipId: string, afterClipId: string) => void;
@@ -2178,12 +2190,13 @@ declare function __VLS_template(): {
2178
2190
  }) => void;
2179
2191
  exportAsJSON: () => string;
2180
2192
  importFromJSON: (json: string) => boolean;
2181
- addTrack: (track: import('../clip-track').Track) => void;
2193
+ canAddTrack: (type: import('../clip-track').Track["type"]) => boolean;
2194
+ addTrack: (track: import('../clip-track').Track) => boolean;
2182
2195
  removeTrack: (trackId: string) => void;
2183
2196
  updateTrack: (trackId: string, updates: Partial<import('../clip-track').Track>) => void;
2184
2197
  getTracks: () => {
2185
2198
  id: string;
2186
- type: import('.').TrackType;
2199
+ type: import('../clip-track').TrackType;
2187
2200
  name: string;
2188
2201
  isMain?: boolean | undefined;
2189
2202
  visible: boolean;
@@ -2478,7 +2491,7 @@ declare function __VLS_template(): {
2478
2491
  }[];
2479
2492
  getSortedTracks: () => {
2480
2493
  id: string;
2481
- type: import('.').TrackType;
2494
+ type: import('../clip-track').TrackType;
2482
2495
  name: string;
2483
2496
  isMain?: boolean | undefined;
2484
2497
  visible: boolean;
@@ -2773,7 +2786,7 @@ declare function __VLS_template(): {
2773
2786
  }[];
2774
2787
  getTrackById: (trackId: string) => {
2775
2788
  id: string;
2776
- type: import('.').TrackType;
2789
+ type: import('../clip-track').TrackType;
2777
2790
  name: string;
2778
2791
  isMain?: boolean | undefined;
2779
2792
  visible: boolean;
@@ -3068,7 +3081,7 @@ declare function __VLS_template(): {
3068
3081
  } | undefined;
3069
3082
  getMainTrack: () => {
3070
3083
  id: string;
3071
- type: import('.').TrackType;
3084
+ type: import('../clip-track').TrackType;
3072
3085
  name: string;
3073
3086
  isMain?: boolean | undefined;
3074
3087
  visible: boolean;
@@ -3433,7 +3446,7 @@ declare function __VLS_template(): {
3433
3446
  'track-control'?(_: {
3434
3447
  track: {
3435
3448
  id: string;
3436
- type: import('.').TrackType;
3449
+ type: import('../clip-track').TrackType;
3437
3450
  name: string;
3438
3451
  isMain?: boolean | undefined;
3439
3452
  visible: boolean;
@@ -3769,7 +3782,7 @@ declare function __VLS_template(): {
3769
3782
  startTime: number;
3770
3783
  }) => any) | undefined;
3771
3784
  "onDrop-subtitle-asset"?: ((payload: {
3772
- item: import('../types/videoCompose').ComposeSubtitleAsset;
3785
+ item: ComposeSubtitleAsset;
3773
3786
  startTime: number;
3774
3787
  }) => any) | undefined;
3775
3788
  "onDrop-text-template"?: ((payload: {
@@ -3799,6 +3812,11 @@ declare function __VLS_template(): {
3799
3812
  text?: string;
3800
3813
  startTime?: number;
3801
3814
  durationSec?: number;
3815
+ fontFamily?: string;
3816
+ fontSize?: number;
3817
+ color?: string;
3818
+ bold?: boolean;
3819
+ italic?: boolean;
3802
3820
  }) => string;
3803
3821
  addTextClip: (options: import('./timeline/VideoComposeTimeline.vue').AddTextClipOptions) => string;
3804
3822
  selectClipById: (clipId: string) => void;
@@ -3844,18 +3862,31 @@ declare function __VLS_template(): {
3844
3862
  rootEl: HTMLDivElement;
3845
3863
  };
3846
3864
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
3847
- declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
3865
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
3866
+ validate: () => string | null;
3867
+ flush: () => void;
3868
+ reload: (model: VideoComposeEditorModel) => Promise<void>;
3869
+ exportComposePayload: () => import('../types/videoCompose').ComposeExportPayload;
3870
+ getMainVideoClips: () => import('../types/videoCompose').VideoClipItem[];
3871
+ requestUploadClip: () => void;
3872
+ getEditingClip: () => ComposeClip | null;
3873
+ getSelectedClips: () => ComposeClip[];
3874
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
3848
3875
  ready: () => any;
3876
+ "toggle-like": (variant: ComposeSegmentClipAssets) => any;
3849
3877
  "update:modelValue": (value: VideoComposeEditorModel) => any;
3850
3878
  "remove-catalog-clip": (variant: ComposeSegmentClipAssets) => any;
3879
+ "selection-changed": (clips: ComposeClip[]) => any;
3851
3880
  "video-uploaded": (payload: ComposeCatalogUploadPayload<ComposeSegmentClipAssets>) => any;
3852
3881
  "audio-uploaded": (payload: ComposeCatalogUploadPayload<BgmItem>) => any;
3853
3882
  "sfx-uploaded": (payload: ComposeCatalogUploadPayload<BgmItem>) => any;
3854
3883
  "text-template-uploaded": (payload: ComposeCatalogUploadPayload<TextTemplateItem>) => any;
3855
3884
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
3856
3885
  onReady?: (() => any) | undefined;
3886
+ "onToggle-like"?: ((variant: ComposeSegmentClipAssets) => any) | undefined;
3857
3887
  "onUpdate:modelValue"?: ((value: VideoComposeEditorModel) => any) | undefined;
3858
3888
  "onRemove-catalog-clip"?: ((variant: ComposeSegmentClipAssets) => any) | undefined;
3889
+ "onSelection-changed"?: ((clips: ComposeClip[]) => any) | undefined;
3859
3890
  "onVideo-uploaded"?: ((payload: ComposeCatalogUploadPayload<ComposeSegmentClipAssets>) => any) | undefined;
3860
3891
  "onAudio-uploaded"?: ((payload: ComposeCatalogUploadPayload<BgmItem>) => any) | undefined;
3861
3892
  "onSfx-uploaded"?: ((payload: ComposeCatalogUploadPayload<BgmItem>) => any) | undefined;
@@ -4292,7 +4323,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
4292
4323
  startTime: number;
4293
4324
  }) => any) | undefined;
4294
4325
  "onDrop-subtitle-asset"?: ((payload: {
4295
- item: import('../types/videoCompose').ComposeSubtitleAsset;
4326
+ item: ComposeSubtitleAsset;
4296
4327
  startTime: number;
4297
4328
  }) => any) | undefined;
4298
4329
  "onDrop-text-template"?: ((payload: {
@@ -4322,6 +4353,11 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
4322
4353
  text?: string;
4323
4354
  startTime?: number;
4324
4355
  durationSec?: number;
4356
+ fontFamily?: string;
4357
+ fontSize?: number;
4358
+ color?: string;
4359
+ bold?: boolean;
4360
+ italic?: boolean;
4325
4361
  }) => string;
4326
4362
  addTextClip: (options: import('./timeline/VideoComposeTimeline.vue').AddTextClipOptions) => string;
4327
4363
  selectClipById: (clipId: string) => void;
@@ -4381,7 +4417,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
4381
4417
  startTime: number;
4382
4418
  }) => any;
4383
4419
  "drop-subtitle-asset": (payload: {
4384
- item: import('../types/videoCompose').ComposeSubtitleAsset;
4420
+ item: ComposeSubtitleAsset;
4385
4421
  startTime: number;
4386
4422
  }) => any;
4387
4423
  "drop-text-template": (payload: {
@@ -4401,7 +4437,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
4401
4437
  $props: {
4402
4438
  readonly operationButtons?: import('../clip-track').OperationButton[] | undefined;
4403
4439
  readonly scaleConfigButtons?: import('../clip-track/types').ScaleConfigButton[] | undefined;
4404
- readonly trackTypes?: import('../clip-track/types').TrackTypeConfig | undefined;
4440
+ readonly trackTypes?: TrackTypeConfig | undefined;
4405
4441
  readonly clipConfigs?: import('../clip-track').ClipTypeConfig | undefined;
4406
4442
  readonly showToolsBar?: boolean | undefined;
4407
4443
  readonly showPlayback?: boolean | undefined;
@@ -4603,12 +4639,13 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
4603
4639
  }) => void;
4604
4640
  exportAsJSON: () => string;
4605
4641
  importFromJSON: (json: string) => boolean;
4606
- addTrack: (track: import('../clip-track').Track) => void;
4642
+ canAddTrack: (type: import('../clip-track').Track["type"]) => boolean;
4643
+ addTrack: (track: import('../clip-track').Track) => boolean;
4607
4644
  removeTrack: (trackId: string) => void;
4608
4645
  updateTrack: (trackId: string, updates: Partial<import('../clip-track').Track>) => void;
4609
4646
  getTracks: () => {
4610
4647
  id: string;
4611
- type: import('.').TrackType;
4648
+ type: import('../clip-track').TrackType;
4612
4649
  name: string;
4613
4650
  isMain?: boolean | undefined;
4614
4651
  visible: boolean;
@@ -4903,7 +4940,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
4903
4940
  }[];
4904
4941
  getSortedTracks: () => {
4905
4942
  id: string;
4906
- type: import('.').TrackType;
4943
+ type: import('../clip-track').TrackType;
4907
4944
  name: string;
4908
4945
  isMain?: boolean | undefined;
4909
4946
  visible: boolean;
@@ -5198,7 +5235,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
5198
5235
  }[];
5199
5236
  getTrackById: (trackId: string) => {
5200
5237
  id: string;
5201
- type: import('.').TrackType;
5238
+ type: import('../clip-track').TrackType;
5202
5239
  name: string;
5203
5240
  isMain?: boolean | undefined;
5204
5241
  visible: boolean;
@@ -5493,7 +5530,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
5493
5530
  } | undefined;
5494
5531
  getMainTrack: () => {
5495
5532
  id: string;
5496
- type: import('.').TrackType;
5533
+ type: import('../clip-track').TrackType;
5497
5534
  name: string;
5498
5535
  isMain?: boolean | undefined;
5499
5536
  visible: boolean;
@@ -5895,7 +5932,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
5895
5932
  playbackRates: number[];
5896
5933
  trackControlWidth: number;
5897
5934
  trackContextMenu: import('../clip-track').TrackContextMenuConfig;
5898
- trackTypes: import('../clip-track/types').TrackTypeConfig;
5899
5935
  clipConfigs: import('../clip-track').ClipTypeConfig;
5900
5936
  showToolsBar: boolean;
5901
5937
  enableMainTrackMode: boolean;
@@ -5938,7 +5974,6 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
5938
5974
  playbackRates: number[];
5939
5975
  trackControlWidth: number;
5940
5976
  trackContextMenu: import('../clip-track').TrackContextMenuConfig;
5941
- trackTypes: import('../clip-track/types').TrackTypeConfig;
5942
5977
  clipConfigs: import('../clip-track').ClipTypeConfig;
5943
5978
  showToolsBar: boolean;
5944
5979
  enableMainTrackMode: boolean;
@@ -5988,7 +6023,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
5988
6023
  onTrackContextMenuSelect?: ((key: string, track: import('../clip-track').Track, time: number) => any) | undefined;
5989
6024
  onClipContextMenuSelect?: ((key: string, clip: any) => any) | undefined;
5990
6025
  "onData:changed"?: (() => any) | undefined;
5991
- }>, "zoomIn" | "zoomOut" | "reset" | "undo" | "redo" | "addTrack" | "removeTrack" | "updateTrack" | "addClip" | "removeClip" | "updateClip" | "selectClip" | "clearSelection" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "isPlaying" | "play" | "pause" | "togglePlay" | "seekTo" | "setPlaybackRate" | "setScale" | "setScrollLeft" | "getCurrentTime" | ("minScale" | "maxScale" | "pixelsPerSecond" | "snapThreshold" | "operationButtons" | "scaleConfigButtons" | "locale" | "showPlayback" | "showScaleControl" | "playbackRates" | "trackControlWidth" | "trackContextMenu" | "trackTypes" | "clipConfigs" | "showToolsBar" | "enableMainTrackMode" | "enableCrossTrackDrag" | "fps" | "defaultScale" | "enableSnap" | "clipContextMenu" | "theme") | "registerClipType" | "emitTransitionAdded" | "exportData" | "importData" | "exportAsJSON" | "importFromJSON" | "getTracks" | "getSortedTracks" | "getTrackById" | "getMainTrack" | "getClipById" | "moveClip" | "selectClips" | "getSelectedClips" | "getSelectedClipIds" | "getPlaybackRate" | "getDuration" | "getScale" | "getViewportWidth" | "getScrollLeft" | "disableSnap" | "isSnapEnabled" | "getHistoryState"> & {
6026
+ }>, "zoomIn" | "zoomOut" | "reset" | "undo" | "redo" | "canAddTrack" | "addTrack" | "removeTrack" | "updateTrack" | "addClip" | "removeClip" | "updateClip" | "selectClip" | "clearSelection" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "isPlaying" | "play" | "pause" | "togglePlay" | "seekTo" | "setPlaybackRate" | "setScale" | "setScrollLeft" | "getCurrentTime" | ("minScale" | "maxScale" | "pixelsPerSecond" | "snapThreshold" | "operationButtons" | "scaleConfigButtons" | "locale" | "showPlayback" | "showScaleControl" | "playbackRates" | "trackControlWidth" | "trackContextMenu" | "clipConfigs" | "showToolsBar" | "enableMainTrackMode" | "enableCrossTrackDrag" | "fps" | "defaultScale" | "enableSnap" | "clipContextMenu" | "theme") | "registerClipType" | "emitTransitionAdded" | "exportData" | "importData" | "exportAsJSON" | "importFromJSON" | "getTracks" | "getSortedTracks" | "getTrackById" | "getMainTrack" | "getClipById" | "moveClip" | "selectClips" | "getSelectedClips" | "getSelectedClipIds" | "getPlaybackRate" | "getDuration" | "getScale" | "getViewportWidth" | "getScrollLeft" | "disableSnap" | "isSnapEnabled" | "getHistoryState"> & {
5992
6027
  reset: () => void;
5993
6028
  registerClipType: (type: string, config: any) => void;
5994
6029
  emitTransitionAdded: (transitionClip: any, beforeClipId: string, afterClipId: string) => void;
@@ -6008,12 +6043,13 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
6008
6043
  }) => void;
6009
6044
  exportAsJSON: () => string;
6010
6045
  importFromJSON: (json: string) => boolean;
6011
- addTrack: (track: import('../clip-track').Track) => void;
6046
+ canAddTrack: (type: import('../clip-track').Track["type"]) => boolean;
6047
+ addTrack: (track: import('../clip-track').Track) => boolean;
6012
6048
  removeTrack: (trackId: string) => void;
6013
6049
  updateTrack: (trackId: string, updates: Partial<import('../clip-track').Track>) => void;
6014
6050
  getTracks: () => {
6015
6051
  id: string;
6016
- type: import('.').TrackType;
6052
+ type: import('../clip-track').TrackType;
6017
6053
  name: string;
6018
6054
  isMain?: boolean | undefined;
6019
6055
  visible: boolean;
@@ -6308,7 +6344,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
6308
6344
  }[];
6309
6345
  getSortedTracks: () => {
6310
6346
  id: string;
6311
- type: import('.').TrackType;
6347
+ type: import('../clip-track').TrackType;
6312
6348
  name: string;
6313
6349
  isMain?: boolean | undefined;
6314
6350
  visible: boolean;
@@ -6603,7 +6639,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
6603
6639
  }[];
6604
6640
  getTrackById: (trackId: string) => {
6605
6641
  id: string;
6606
- type: import('.').TrackType;
6642
+ type: import('../clip-track').TrackType;
6607
6643
  name: string;
6608
6644
  isMain?: boolean | undefined;
6609
6645
  visible: boolean;
@@ -6898,7 +6934,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
6898
6934
  } | undefined;
6899
6935
  getMainTrack: () => {
6900
6936
  id: string;
6901
- type: import('.').TrackType;
6937
+ type: import('../clip-track').TrackType;
6902
6938
  name: string;
6903
6939
  isMain?: boolean | undefined;
6904
6940
  visible: boolean;
@@ -7263,7 +7299,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
7263
7299
  'track-control'?(_: {
7264
7300
  track: {
7265
7301
  id: string;
7266
- type: import('.').TrackType;
7302
+ type: import('../clip-track').TrackType;
7267
7303
  name: string;
7268
7304
  isMain?: boolean | undefined;
7269
7305
  visible: boolean;
@@ -7599,7 +7635,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
7599
7635
  startTime: number;
7600
7636
  }) => any) | undefined;
7601
7637
  "onDrop-subtitle-asset"?: ((payload: {
7602
- item: import('../types/videoCompose').ComposeSubtitleAsset;
7638
+ item: ComposeSubtitleAsset;
7603
7639
  startTime: number;
7604
7640
  }) => any) | undefined;
7605
7641
  "onDrop-text-template"?: ((payload: {
@@ -7629,6 +7665,11 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
7629
7665
  text?: string;
7630
7666
  startTime?: number;
7631
7667
  durationSec?: number;
7668
+ fontFamily?: string;
7669
+ fontSize?: number;
7670
+ color?: string;
7671
+ bold?: boolean;
7672
+ italic?: boolean;
7632
7673
  }) => string;
7633
7674
  addTextClip: (options: import('./timeline/VideoComposeTimeline.vue').AddTextClipOptions) => string;
7634
7675
  selectClipById: (clipId: string) => void;
@@ -3,8 +3,6 @@ import { TextTemplateItem } from '../shared/textTemplateCatalog';
3
3
  type __VLS_Props = {
4
4
  /** 扁平视频素材 */
5
5
  videoVariants?: ComposeSegmentClipAssets[];
6
- /** 已喜欢媒体的匹配键 */
7
- likedMediaKeys?: Set<string>;
8
6
  /** 已在时间轴上的视频地址 */
9
7
  timelineClipUrls?: Set<string>;
10
8
  /** 正在预览的版本 id */
@@ -2,8 +2,6 @@ import { ComposeSegmentClipAssets } from '../../types/videoCompose';
2
2
  type __VLS_Props = {
3
3
  /** 扁平视频素材(上传与生成统一卡片) */
4
4
  variants: ComposeSegmentClipAssets[];
5
- /** 已喜欢媒体的匹配键 */
6
- likedKeys?: Set<string>;
7
5
  /** 已在时间轴上的视频 URL 集合 */
8
6
  timelineClipUrls?: Set<string>;
9
7
  /** 当前主播放器预览中的版本 id */
@@ -11,7 +9,16 @@ type __VLS_Props = {
11
9
  /** 只读:禁止拖入时间轴,已喜欢的心只展示 */
12
10
  readonly?: boolean;
13
11
  };
14
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ declare function __VLS_template(): {
13
+ attrs: Partial<{}>;
14
+ slots: {
15
+ leading?(_: {}): any;
16
+ };
17
+ refs: {};
18
+ rootEl: HTMLDivElement;
19
+ };
20
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
22
  preview: (variant: ComposeSegmentClipAssets) => any;
16
23
  remove: (variant: ComposeSegmentClipAssets) => any;
17
24
  "toggle-like": (variant: ComposeSegmentClipAssets) => any;
@@ -20,4 +27,10 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
20
27
  onRemove?: ((variant: ComposeSegmentClipAssets) => any) | undefined;
21
28
  "onToggle-like"?: ((variant: ComposeSegmentClipAssets) => any) | undefined;
22
29
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
23
31
  export default _default;
32
+ type __VLS_WithTemplateSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
@@ -5,5 +5,20 @@ type __VLS_Props = {
5
5
  /** 只读时不可拖 */
6
6
  readonly?: boolean;
7
7
  };
8
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
8
+ declare function __VLS_template(): {
9
+ attrs: Partial<{}>;
10
+ slots: {
11
+ leading?(_: {}): any;
12
+ };
13
+ refs: {};
14
+ rootEl: HTMLDivElement;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
18
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
9
19
  export default _default;
20
+ type __VLS_WithTemplateSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -4,4 +4,4 @@ export type { BgmItem, ComposeClip, ComposeExportPayload, ComposeSegmentClipAsse
4
4
  export type { TextTemplateItem } from './shared/textTemplateCatalog';
5
5
  export type { ComposeBgmUploadResult, ComposeCatalogUploadPayload, ComposeEditorProps, ComposeUploadAdapter, } from './session/createComposeEditorState';
6
6
  export type { VideoComposeEditorExpose } from './session/videoComposeEditorExpose';
7
- export type { MediaClip, SubtitleClip, TextClip, TrackType } from '../clip-track';
7
+ export type { MediaClip, SubtitleClip, TextClip, TrackType, TrackTypeConfig } from '../clip-track';