import type { NodeEvents, NodeProperties } from './Node'; import type { Timeline } from './Timeline'; import { Node } from './Node'; export interface TimelineNodeProperties extends NodeProperties { loop: boolean; delay: number; duration: number; paused: boolean; } export interface TimelineNodeEvents extends NodeEvents { updateCurrentTime: [currentTime: number]; } export interface TimelineNode { on: (event: K, listener: (...args: TimelineNodeEvents[K]) => void) => this; once: (event: K, listener: (...args: TimelineNodeEvents[K]) => void) => this; off: (event: K, listener: (...args: TimelineNodeEvents[K]) => void) => this; emit: (event: K, ...args: TimelineNodeEvents[K]) => this; } export declare class TimelineNode extends Node { loop: boolean; delay: number; duration: number; paused: boolean; insideTimeRange: boolean; /** Timeline */ protected get _timeline(): Timeline | undefined; protected get _globalCurrentTime(): number; protected _loop: boolean; protected _delay: number; protected _duration: number; protected _paused: boolean; protected _currentTime: number; protected _globalStartTime: number; protected _globalDuration: number; protected _standalone: boolean; protected _localCurrentTime: number; get standalone(): boolean; get parentGlobalStartTime(): number; get currentTime(): number; get globalStartTime(): number; get globalDuration(): number; get globalEndTime(): number; get currentTimeProgress(): number; isInsideTimeRange(): boolean; constructor(properties?: Partial, nodes?: Node[]); protected _updateProperty(key: string, newValue: any, oldValue: any): void; protected _updateInsideTimeRange(): void; /** * 开启/关闭独立播放。开启后本节点的 currentTime 取自 {@link setLocalTime} * 设置的本地时钟,完全脱离全局时间轴;关闭后恢复跟随全局时间轴。 */ setStandalone(on: boolean): this; /** * 独立播放下设置本地时间(毫秒,相对本节点自身 0 起点)并立即刷新。 * 由外部循环(如交互运行器)逐帧驱动。 */ setLocalTime(ms: number): this; protected _updateCurrentTime(force?: boolean): void; protected _process(delta: number): void; }