import * as spec from '@galacean/effects-specification'; import type { GraphContext, InstantiationContext } from '../graph-context'; import { GraphNodeData, PoseNode } from '../graph-node'; import type { PoseResult } from '../pose-result'; import type { Skeleton } from '../skeleton'; import type { Pose } from '../pose'; import type { AnimationClip, AnimationCurve, FloatAnimationCurve, ColorAnimationCurve } from '../../../animation'; export declare class AnimationClipNodeData extends GraphNodeData { playRate: number; loopAnimation: boolean; dataSlotIndex: number; instantiate(context: InstantiationContext): void; load(data: spec.AnimationClipNodeData): void; } export declare class AnimationClipNode extends PoseNode { animation: AnimationClip | null; private animatable; evaluate(context: GraphContext, result: PoseResult): PoseResult; protected initializeInternal(context: GraphContext): void; } declare enum TransformCurveType { Position = 0, Scale = 1, Rotation = 2, Euler = 3 } export interface TransformCurveInfo { type: TransformCurveType; curve: AnimationCurve; boneIndex: number; } export interface FloatCurveInfo { curve: FloatAnimationCurve; animatedObjectIndex: number; } export interface ColorCurveInfo { curve: ColorAnimationCurve; animatedObjectIndex: number; } export declare class Animatable { private skeleton; private animationClip; private transformCurveInfos; private floatCurveInfos; private colorCurveInfos; constructor(skeleton: Skeleton, animationClip: AnimationClip); getPose(time: number, outPose: Pose): void; private addTransformCurveInfo; private addFloatCurveInfo; private addColorCurveInfo; } export {};