import { ClipTrackEntity } from '../../data'; import { Clip } from '../clips/clip'; import { Keyframe } from '../keyframe'; import { LayerClip } from '../layerclip'; import { StreamState } from '../stream'; import { Track } from './track'; /** * Embeds another clip as a track within a clip. * * @param clip The associated clip to embed. * @param id Optional unique identifier for the ClipTrack. */ export declare class ClipTrack extends Track { readonly clip: Clip; private _weights; private _weightsById; private _weightsDirty; private _entities; private _entitiesById; private _entitiesDirty; private _lastTick?; private _lastLoopNumber?; /** * Creates an instance of ClipTrack. * @param clip - The associated Clip to embed. * @param id - Optional unique identifier for the ClipTrack. */ constructor(clip: Clip, id?: string); /** * Getter for the list of paths influenced by the clip's tracks. * * @returns An array of influenced paths. */ get influencedPaths(): string[]; /** * Adds a weight keyframe to the track. * * @param k The keyframe to be added. */ addWeight(k: Keyframe): void; /** * Sets the weight keyframes for the track using an id-indexed object. * * @param weights An object mapping keyframe IDs to keyframes. */ setWeightsById(weights: { [id: string]: Keyframe; }): void; /** * Getter for sorted weight keyframes by their time values. * * @returns A sorted array of keyframes. */ get sortedWeights(): Keyframe[]; /** * Adds a block (ClipTrackEntity) representing an instance of the embedded clip in the timeline. * * @param k The block to be added. */ addBlock(k: ClipTrackEntity): void; /** * Sets the blocks for the track using an id-indexed object. * * @param blocks An object mapping block IDs to ClipTrackEntities. */ setBlocksById(weights: { [id: string]: ClipTrackEntity; }): void; /** * Getter for sorted blocks by their start time. * * @returns A sorted array of ClipTrackEntities. */ get sortedBlocks(): ClipTrackEntity[]; /** * Computes the property value for a given path at a specific time. * Incorporates weights and blocks to determine the final value. * * @param t The time at which to compute the property. * @param p The path of the property to compute. * @param valueBefore The initial value of the property before computation. * @param parentWeight Optional weight from the parent track. * @returns The computed property value. */ computePathProperty(t: number, p: string, valueBefore: any, parentWeight?: number): any; /** @internal */ streamPause(isActive: boolean, active: LayerClip | null | undefined): void; /** @internal */ streamSeek(t: number, rate: number, isActive: boolean, active: LayerClip | null | undefined): void; /** @internal */ streamTick(clipState: StreamState, t: number, rate: number, isActive: boolean, active: LayerClip | null | undefined, force?: boolean, stalled?: boolean, parentWeight?: number): void; private _resolveBlock; /** * Determines if the track is stalled. * * @returns A boolean indicating if the track is stalled. */ isStalled(): boolean; }