---@meta

---@class FStateTreeAIActionTaskBase : FStateTreeAITaskBase
local FStateTreeAIActionTaskBase = {}


---@class FStateTreeAIConditionBase : FStateTreeConditionBase
local FStateTreeAIConditionBase = {}


---@class FStateTreeAITaskBase : FStateTreeTaskBase
local FStateTreeAITaskBase = {}


---@class FStateTreeComponentExecutionExtension : FStateTreeExecutionExtension
---@field Component UStateTreeComponent
local FStateTreeComponentExecutionExtension = {}



---@class FStateTreeGetActorLocationPropertyFunction : FStateTreePropertyFunctionCommonBase
local FStateTreeGetActorLocationPropertyFunction = {}


---@class FStateTreeGetActorLocationPropertyFunctionInstanceData
---@field Input AActor
---@field Output FVector
local FStateTreeGetActorLocationPropertyFunctionInstanceData = {}



---@class FStateTreeMoveToTask : FStateTreeAIActionTaskBase
local FStateTreeMoveToTask = {}


---@class FStateTreeMoveToTaskInstanceData
---@field AIController AAIController
---@field Destination FVector
---@field TargetActor AActor
---@field AcceptableRadius float
---@field DestinationMoveTolerance float
---@field FilterClass TSubclassOf<UNavigationQueryFilter>
---@field bAllowStrafe boolean
---@field bAllowPartialPath boolean
---@field bTrackMovingGoal boolean
---@field bRequireNavigableEndLocation boolean
---@field bProjectGoalLocation boolean
---@field bReachTestIncludesAgentRadius boolean
---@field bReachTestIncludesGoalRadius boolean
---@field MoveToTask UAITask_MoveTo
---@field TaskOwner TScriptInterface<IGameplayTaskOwnerInterface>
local FStateTreeMoveToTaskInstanceData = {}



---@class FStateTreeRunEnvQueryInstanceData
---@field Result FStateTreePropertyRef
---@field QueryOwner AActor
---@field QueryTemplate UEnvQuery
---@field QueryConfig TArray<FAIDynamicParam>
---@field RunMode EEnvQueryRunMode::Type
local FStateTreeRunEnvQueryInstanceData = {}



---@class FStateTreeRunEnvQueryTask : FStateTreeTaskCommonBase
local FStateTreeRunEnvQueryTask = {}


---@class UBTTask_RunDynamicStateTree : UBTTaskNode
---@field StateTreeRef FStateTreeReference
---@field InstanceData FStateTreeInstanceData
---@field InjectionTag FGameplayTag
local UBTTask_RunDynamicStateTree = {}



---@class UBTTask_RunStateTree : UBTTaskNode
---@field StateTreeRef FStateTreeReference
---@field InstanceData FStateTreeInstanceData
---@field Interval float
---@field RandomDeviation float
local UBTTask_RunStateTree = {}



---@class UStateTreeAIComponent : UStateTreeComponent
local UStateTreeAIComponent = {}


---@class UStateTreeAIComponentSchema : UStateTreeComponentSchema
---@field AIControllerClass TSubclassOf<AAIController>
local UStateTreeAIComponentSchema = {}



---@class UStateTreeComponent : UBrainComponent
---@field OnStateTreeRunStatusChanged FStateTreeComponentOnStateTreeRunStatusChanged
---@field StateTreeRef FStateTreeReference
---@field LinkedStateTreeOverrides FStateTreeReferenceOverrides
---@field InstanceData FStateTreeInstanceData
---@field bStartLogicAutomatically boolean
local UStateTreeComponent = {}

---@param StateTreeReference FStateTreeReference
function UStateTreeComponent:SetStateTreeReference(StateTreeReference) end
---@param StateTree UStateTree
function UStateTreeComponent:SetStateTree(StateTree) end
---@param bInStartLogicAutomatically boolean
function UStateTreeComponent:SetStartLogicAutomatically(bInStartLogicAutomatically) end
---@param Event FStateTreeEvent
function UStateTreeComponent:SendStateTreeEvent(Event) end
---@param StateTag FGameplayTag
function UStateTreeComponent:RemoveLinkedStateTreeOverrides(StateTag) end
---@return EStateTreeRunStatus
function UStateTreeComponent:GetStateTreeRunStatus() end
---@param StateTag FGameplayTag
---@param StateTreeReference FStateTreeReference
function UStateTreeComponent:AddLinkedStateTreeOverrides(StateTag, StateTreeReference) end


---@class UStateTreeComponentSchema : UStateTreeSchema
---@field ContextActorClass TSubclassOf<AActor>
---@field ScheduledTickPolicy EStateTreeComponentSchemaScheduledTickPolicy
---@field ContextDataDescs TArray<FStateTreeExternalDataDesc>
local UStateTreeComponentSchema = {}



