import * as spec from '@galacean/effects-specification'; import type { InstantiationContext, GraphContext } from '../graph-context'; import { PoseResult } from '../pose-result'; import { GraphNodeData, PoseNode } from '../graph-node'; import { type StateNode } from './state-node'; export declare enum SourceType { State = 0, Transition = 1, CachedPose = 2 } export declare class TransitionNodeData extends GraphNodeData { duration: number; hasExitTime: boolean; exitTime: number; targetStateNodeIndex: number; instantiate(context: InstantiationContext): void; load(data: spec.TransitionNodeData): void; } export declare class TransitionNode extends PoseNode { targetNode: StateNode; hasExitTime: boolean; exitTime: number; private transitionLength; private transitionProgress; private blendWeight; private sourceNode; private sourceNodeResult; private sourceType; private targetNodeResult; private blendedDuration; evaluate(context: GraphContext, result: PoseResult): PoseResult; isComplete(context: GraphContext): boolean; getProgressPercentage(): number; getSourceType(): SourceType; isSourceATransition(): boolean; isSourceAState(): boolean; startTransitionFromState(context: GraphContext, sourceNodeResult: PoseResult, sourceState: StateNode, outResult: PoseResult): PoseResult; startTransitionFromTransition(context: GraphContext, sourceNodeResult: PoseResult, sourceTransition: TransitionNode, outResult: PoseResult): PoseResult; getSourceStateNode(): StateNode; getSourceTransitionNode(): TransitionNode; notifyNewTransitionStarting(context: GraphContext, targetStateNode: StateNode): void; protected initializeInternal(context: GraphContext): void; protected shutdownInternal(context: GraphContext): void; private endSourceTransition; private initializeTargetStateAndUpdateTransition; private calculateBlendWeight; private registerPoseTasksAndUpdateRootMotion; }