import * as spec from '@galacean/effects-specification'; import { Playable, PlayableAsset, PlayableOutput } from './playable'; import { ParticleSystem } from '../particle/particle-system'; import type { Constructor } from '../../utils'; import { TrackMixerPlayable } from './playables'; /** * @since 2.0.0 */ export declare class TimelineClip { id: string; name: string; start: number; duration: number; asset: PlayableAsset; endBehavior: spec.EndBehavior; constructor(); toLocalTime(time: number): number; } /** * @since 2.0.0 */ export declare class TrackAsset extends PlayableAsset { name: string; parent: TrackAsset; trackType: TrackType; private clipSeed; private clips; protected children: TrackAsset[]; /** * 重写该方法以获取自定义对象绑定 */ updateAnimatedObject(boundObject: object): object; /** * 重写该方法以创建自定义混合器 */ createTrackMixer(): TrackMixerPlayable; createOutput(): PlayableOutput; createPlayableGraph(runtimeClips: RuntimeClip[]): TrackMixerPlayable; createMixerPlayableGraph(runtimeClips: RuntimeClip[]): TrackMixerPlayable; compileClips(timelineClips: TimelineClip[], runtimeClips: RuntimeClip[]): TrackMixerPlayable; createPlayable(): Playable; getChildTracks(): TrackAsset[]; addChild(child: TrackAsset): void; createClip(classConstructor: Constructor, name?: string): TimelineClip; getClips(): TimelineClip[]; findClip(name: string): TimelineClip | undefined; addClip(clip: TimelineClip): void; private createClipPlayable; fromData(data: spec.EffectsObjectData): void; } export declare enum TrackType { MasterTrack = 0, ObjectTrack = 1 } export declare class RuntimeClip { clip: TimelineClip; playable: Playable; parentMixer: TrackMixerPlayable; private particleSystem; constructor(clip: TimelineClip, clipPlayable: Playable, parentMixer: TrackMixerPlayable); set enable(value: boolean); getParticleSystem(): ParticleSystem; evaluateAt(localTime: number): void; } /** * @since 2.0.0 */ export interface TimelineClipData { asset: PlayableAsset; }