import * as spec from '@galacean/effects-specification'; import type { GraphContext, InstantiationContext } from '../graph-context'; import type { PoseResult } from '../pose-result'; import type { BoolValueNode } from '../graph-node'; import { GraphNodeData, PoseNode } from '../graph-node'; import type { StateNode } from './state-node'; import type { TransitionNode } from './transition-node'; export declare class StateMachineNodeData extends GraphNodeData { machineName: string; stateDatas: spec.StateData[]; defaultStateIndex: number; instantiate(context: InstantiationContext): void; load(data: spec.StateMachineNodeData): void; } export interface TransitionInfo { transitionNode: TransitionNode; conditionNode: BoolValueNode; targetStateIndex: number; } export interface StateInfo { stateNode: StateNode; transitions: TransitionInfo[]; } /** * 状态机节点 */ export declare class StateMachineNode extends PoseNode { states: StateInfo[]; private activeTransition; private activeStateIndex; /** * 获取当前激活状态的名称 * @since 2.7.0 * @returns 当前状态名 */ getCurrentStateName(): string; evaluate(context: GraphContext, result: PoseResult): PoseResult; private evaluateTransitions; private selectDefaultState; protected initializeInternal(context: GraphContext): void; protected shutdownInternal(context: GraphContext): void; private initializeTransitionConditions; private shutdownTransitionConditions; }