#ifndef _RIVE_TRANSITION_CONDITION_HPP_
#define _RIVE_TRANSITION_CONDITION_HPP_
#include "generated/animation/transition_condition_base.hpp"

namespace rive
{
	class StateMachineInput;
	class SMIInput;

	class TransitionCondition : public TransitionConditionBase
	{
	public:
		StatusCode onAddedDirty(CoreContext* context) override;
		StatusCode onAddedClean(CoreContext* context) override;

		StatusCode import(ImportStack& importStack) override;

		virtual bool evaluate(const SMIInput* inputInstance) const
		{
			return true;
		}

	protected:
		virtual bool validateInputType(const StateMachineInput* input) const
		{
			return true;
		}
	};
} // namespace rive

#endif