importonly struct AIScriptUtils
{
	public import static function GetClosestPointOnSpline( game : GameInstance, splineRef : NodeRef, refPoint : Vector4, out closestPoint : Vector4 ) : Bool;
	public import static function GetStartPointOfSpline( game : GameInstance, splineRef : NodeRef, out startPoint : Vector4 ) : Bool;
	public import static function GetEndPointOfSpline( game : GameInstance, splineRef : NodeRef, out endPoint : Vector4 ) : Bool;
	public import static function IsSplineStartRecalculated( context : ScriptExecutionContext, splineRef : NodeRef, splineRecalculation : Bool ) : Bool;
	public import static function CalculateDistanceToEndFrom( game : GameInstance, splineRef : NodeRef, refPoint : Vector4, out endDistance : Float ) : Bool;
	public import static function ArePositionsEqual( a : Vector4, b : Vector4 ) : Bool;
	public import static function GetActionNameFromRecord( recordId : TweakDBID, out actionName : TweakDBID ) : Bool;
	public import static function IsArchetypeAction( recordId : TweakDBID ) : Bool;
	public import static function CheckActionCondition( ctx : ScriptExecutionContext, condition : weak< AIActionCondition_Record > ) : Bool;
	public import static function CallActivateSubAction( context : ScriptExecutionContext, subAction : AISubAction_Record );
	public import static function CallUpdateSubAction( context : ScriptExecutionContext, subAction : AISubAction_Record, duration : Float ) : AIbehaviorUpdateOutcome;
	public import static function CallDeactivateSubAction( context : ScriptExecutionContext, subAction : AISubAction_Record, duration : Float, interrupted : Bool );
	public import static function CallGetAnimVariation( context : ScriptExecutionContext, subActionRecord : AISubAction_Record ) : Int32;
	public import static function CallGetPhaseDuration( context : ScriptExecutionContext, subActionRecord : AISubAction_Record, actionPhase : Int32, baseDuration : Float ) : Float;
	public import static function CallCheckSubCondition( context : ScriptExecutionContext, check : AIActionSubCondition_Record ) : Bool;
	public import static function GetActionTarget( context : ScriptExecutionContext, target : AIActionTarget_Record, out object : GameObject ) : Bool;
	public import static function GetActionTarget2( context : ScriptExecutionContext, targetId : TweakDBID, predictionTime : Float, out object : GameObject, out position : Vector4, out coverId : Uint64 ) : Bool;
	public import static function CheckActionCooldowns( context : ScriptExecutionContext, check : AIAction_Record ) : Bool;
	public import static function CheckCooldownConditions( context : ScriptExecutionContext, check : AICooldownCond_Record ) : Bool;
	public import static function CheckAnimation( context : ref< ScriptExecutionContext >, animFeatureName : CName, animVariation : Int32, animState : Int32, triggerPreload : Bool ) : Bool;
	public import static function GetTicketType( ticketName : CName, puppet : gamePuppet, fallbackSquad : AISquadParams_Record, out outTicket : AITicket_Record, out outSquadRecord : AISquadParams_Record ) : Bool;
	public import static function GetWaterLevel( game : GameInstance, position : Vector3, out outWaterLevel : Float ) : Bool;
	public import static function DebugLog( entityId : EntityID, category : CName, message : String );
}

