import { PathPoint } from '../util/render/type'; interface KeyframeJson { id: string; type: 'Keyframe'; loop: number; model: 'repeat' | 'loop'; /**关键帧首次启动时的延迟 */ startDelay: number; nodes: KeyframeNodeJson[]; position?: { x: number; y: number; }; } interface KeyframeNodeJson { type: 'KeyframeNode'; time: number; clips: KeyframeClipJson[]; position?: { x: number; y: number; }; } interface BaseKeyframeClipJson { type: string; key: string; target: { id: string; type: string; }; } interface NumberKeyframeClipJson extends BaseKeyframeClipJson { type: 'number'; target: { id: string; type: 'render' | 'camera'; }; start: number; end: number; } interface ColorKeyframeClipJson extends BaseKeyframeClipJson { type: 'color'; target: { id: string; type: 'render'; }; start: number; end: number; } interface PathKeyframeClipJson extends BaseKeyframeClipJson { type: 'path'; target: { id: string; type: 'render' | 'camera'; }; lookAt: { type: 'none' | 'next' | 'target'; id: string; }; path: PathPoint; } interface TexureKeyframeClipJson extends BaseKeyframeClipJson { type: 'texture'; target: { id: string; type: 'texture'; }; wrap: { s: number; t: number; }; start: number; end: number; } declare type KeyframeClipJson = NumberKeyframeClipJson | ColorKeyframeClipJson | PathKeyframeClipJson | TexureKeyframeClipJson; export { KeyframeJson, KeyframeNodeJson, KeyframeClipJson, BaseKeyframeClipJson, NumberKeyframeClipJson, ColorKeyframeClipJson, PathKeyframeClipJson, TexureKeyframeClipJson, };