import { Options } from '../../utils/EngineManager/baseEngine.js'; import Base, { BaseLayerProps } from '../BaseLayer/index.js'; import { TTrack } from '../index.js'; type AssetInfo = { themeId?: string; themeUrl: string; }; interface PostionWithPartial { scale?: Partial<{ x: number; y: number; z: number; }>; shift?: Partial<{ x: number; y: number; z: number; }>; anchor?: Partial<{ x: number; y: number; z: number; }>; angle?: Partial<{ x: number; y: number; z: number; }>; } type EffectLayerProps = { uuid?: string; assetInfo: AssetInfo; srcRange?: Range; trimRange?: Range; destRange?: Range; dstPos?: number; layerId?: number; position?: PostionWithPartial; isPrimal?: boolean; } & BaseLayerProps; type Range = { start: number; end: number; }; declare class EffectLayer extends Base { private originScale; srcRange?: Range; trimRange?: Range; destRange?: Range; dstPos: number; parent: TTrack; assetInfo: AssetInfo; position: PostionWithPartial; isPrimal: boolean; size: { width: number; height: number; } | undefined; constructor(namespace: string, props: EffectLayerProps); /** * 初始化 */ init(): Promise; /** * 初始化主题资源 * @param assetInfo themePath: https://..../0x0500000000001334.zip */ initAssets: (assetInfo: AssetInfo) => Promise<{ themeFilePath: string; } | null>; /** * 初始化资源(下载&存储DB) */ prepareAssets: (assetsConfig: Array<{ assetId: string; url: string; }>, options?: Options) => Promise; /** * 设置特效位置 */ changeTransform: (position: PostionWithPartial, withRefresh?: boolean) => void; /** * 获取特效模板信息 */ getTemplateInfo(): { scaleX: number; scaleY: number; width: number; height: number; }; /** * 获取当前尺寸位置信息 */ getCurrentPosition(): { width: number; height: number; x: any; y: any; scaleX: any; scaleY: any; }; /** * 设置特效合成 */ setComp(config: AssetInfo): void; /** * 切换特效主题 */ changeTheme: (config: AssetInfo, withRefresh?: boolean) => Promise; setSrcRange(range: Range): void; setTrimRange(range: Range): void; setDstPos(pos: number): void; /** * 获取草稿 */ getLayerDraft(): EffectLayerProps; /** * 复制 */ duplicate(): EffectLayer; } export { EffectLayer }; export type { EffectLayerProps };