import { AECompWrapperInstance } from '../../core/resource/type-helper/AECompWrapper/instance.js'; import { VideoInfoInstance } from '../../core/resource/type-helper/base/instcance.js'; import { LayerType } from '../../shared/constants.js'; import { TaskQueue } from '../../shared/pipline.js'; import { NameSpaceEngine } from '../../utils/EngineManager/helper.js'; import { LogFnArg } from '../../utils/Logger/index.js'; interface ExtendsInfo { [key: string]: any; } type BaseLayerProps = { extendsInfo?: ExtendsInfo; alpha?: number; }; /** * 图层类型 * - RootLayer 根图层 * - GroupLayer 编辑组 * - TrackLayer 轨道层 * - AudioLayer 音频层 * - VideoLayer 视频层 */ type TypeLayer = keyof typeof LayerType; declare abstract class Base { /** * 引擎执行队列 */ pipline: TaskQueue; namespace: string; /** * 图层类型 */ layerType: TypeLayer; /** * 图层唯一标识 */ uuid: string; /** * 图层层级 */ layerId: number; /** * 引擎编辑组 */ comp: AECompWrapperInstance; /** * 音频增益 */ audioGain: number | undefined; /** * 音视频时长 */ duration: number; /** * 图层扩展信息 */ extendsInfo: ExtendsInfo; /** * 图层透明度 */ alpha: number; /** * 获取namespace下的引擎 */ getInstance(namespace: string): NameSpaceEngine; /** * 获取图层唯一标识 */ getRandomId(): string; /** * 图层视频/音频导出 * filePath格式:/data/xxx.mp4 /data/xxx.m4a */ produce: (produceCallback: (file: Buffer) => void, filePath: string) => Promise; /** * 获取视频信息 */ getMediaInfoAsync: (path: string) => Promise; getDuration: () => number; /** * 设置透明度 * value range: 0-100 */ setAlpha: (value: number, widhRefresh?: boolean) => void; /** * 设置音量 */ setAudioGain: (volume: number | undefined, callback?: () => void, widhRefresh?: boolean) => void; /** * 设置唯一标识 */ setUuid: (uuid: string) => void; setExtendsInfo: (extendsInfo: Partial) => void; /** * 记录日志 */ log: (args: Omit) => void; /** * 刷新devtools */ sync: () => void; /** * 获取BaseLayer草稿 */ getBaseDraft: () => BaseLayerProps; abstract duplicate(): Base; /** * 获取当前Layer草稿信息 */ abstract getLayerDraft(): any; } export { Base as default }; export type { BaseLayerProps, TypeLayer };