---@enum EStateTreeBindableStructSource
local EStateTreeBindableStructSource = {
    Context = 0,
    Parameter = 1,
    Evaluator = 2,
    GlobalTask = 3,
    StateParameter = 4,
    Task = 5,
    Condition = 6,
    Consideration = 7,
    TransitionEvent = 8,
    StateEvent = 9,
    PropertyFunction = 10,
    Transition = 11,
    EStateTreeBindableStructSource_MAX = 12,
}

---@enum EStateTreeBlueprintPropertyCategory
local EStateTreeBlueprintPropertyCategory = {
    NotSet = 0,
    Input = 1,
    Parameter = 2,
    Output = 3,
    ContextObject = 4,
    EStateTreeBlueprintPropertyCategory_MAX = 5,
}

---@enum EStateTreeBreakpointType
local EStateTreeBreakpointType = {
    Unset = 0,
    OnEnter = 1,
    OnExit = 2,
    OnTransition = 3,
    EStateTreeBreakpointType_MAX = 4,
}

---@enum EStateTreeConditionEvaluationMode
local EStateTreeConditionEvaluationMode = {
    Evaluated = 0,
    ForcedTrue = 1,
    ForcedFalse = 2,
    EStateTreeConditionEvaluationMode_MAX = 3,
}

---@enum EStateTreeDataSourceType
local EStateTreeDataSourceType = {
    None = 0,
    GlobalInstanceData = 1,
    GlobalInstanceDataObject = 2,
    ActiveInstanceData = 3,
    ActiveInstanceDataObject = 4,
    SharedInstanceData = 5,
    SharedInstanceDataObject = 6,
    ContextData = 7,
    ExternalData = 8,
    GlobalParameterData = 9,
    SubtreeParameterData = 10,
    StateParameterData = 11,
    TransitionEvent = 12,
    StateEvent = 13,
    ExternalGlobalParameterData = 14,
    EStateTreeDataSourceType_MAX = 15,
}

---@enum EStateTreeExpressionOperand
local EStateTreeExpressionOperand = {
    Copy = 0,
    And = 1,
    Or = 2,
    EStateTreeExpressionOperand_MAX = 3,
}

---@enum EStateTreeExternalDataRequirement
local EStateTreeExternalDataRequirement = {
    Required = 0,
    Optional = 1,
    EStateTreeExternalDataRequirement_MAX = 2,
}

---@enum EStateTreeFinishTaskType
local EStateTreeFinishTaskType = {
    Failed = 0,
    Succeeded = 1,
    EStateTreeFinishTaskType_MAX = 2,
}

---@enum EStateTreeLinkerStatus
local EStateTreeLinkerStatus = {
    Succeeded = 0,
    Failed = 1,
    EStateTreeLinkerStatus_MAX = 2,
}

---@enum EStateTreeLoopEvents
local EStateTreeLoopEvents = {
    Next = 0,
    Break = 1,
    Consume = 2,
    EStateTreeLoopEvents_MAX = 3,
}

---@enum EStateTreeNodeFormatting
local EStateTreeNodeFormatting = {
    RichText = 0,
    Text = 1,
    EStateTreeNodeFormatting_MAX = 2,
}

---@enum EStateTreeParameterDataType
local EStateTreeParameterDataType = {
    GlobalParameterData = 0,
    ExternalGlobalParameterData = 1,
    EStateTreeParameterDataType_MAX = 2,
}

---@enum EStateTreePropertyRefType
local EStateTreePropertyRefType = {
    None = 0,
    Bool = 1,
    Byte = 2,
    Int32 = 3,
    Int64 = 4,
    Float = 5,
    Double = 6,
    Name = 7,
    String = 8,
    Text = 9,
    Enum = 10,
    Struct = 11,
    Object = 12,
    SoftObject = 13,
    Class = 14,
    SoftClass = 15,
    EStateTreePropertyRefType_MAX = 16,
}

---@enum EStateTreePropertyUsage
local EStateTreePropertyUsage = {
    Invalid = 0,
    Context = 1,
    Input = 2,
    Parameter = 3,
    Output = 4,
    EStateTreePropertyUsage_MAX = 5,
}

---@enum EStateTreeRecordTransitions
local EStateTreeRecordTransitions = {
    No = 0,
    Yes = 1,
    EStateTreeRecordTransitions_MAX = 2,
}

---@enum EStateTreeRunStatus
local EStateTreeRunStatus = {
    Running = 0,
    Stopped = 1,
    Succeeded = 2,
    Failed = 3,
    Unset = 4,
    EStateTreeRunStatus_MAX = 5,
}

---@enum EStateTreeSelectionFallback
local EStateTreeSelectionFallback = {
    None = 0,
    NextSelectableSibling = 1,
    EStateTreeSelectionFallback_MAX = 2,
}

---@enum EStateTreeStateChangeType
local EStateTreeStateChangeType = {
    None = 0,
    Changed = 1,
    Sustained = 2,
    EStateTreeStateChangeType_MAX = 3,
}

---@enum EStateTreeStateSelectionBehavior
local EStateTreeStateSelectionBehavior = {
    None = 0,
    TryEnterState = 1,
    TrySelectChildrenInOrder = 2,
    TrySelectChildrenAtRandom = 3,
    TrySelectChildrenWithHighestUtility = 4,
    TrySelectChildrenAtRandomWeightedByUtility = 5,
    TryFollowTransitions = 6,
    TrySelectChildrenAtUniformRandom = 3,
    TrySelectChildrenBasedOnRelativeUtility = 5,
    EStateTreeStateSelectionBehavior_MAX = 7,
}

---@enum EStateTreeStateType
local EStateTreeStateType = {
    State = 0,
    Group = 1,
    Linked = 2,
    LinkedAsset = 3,
    Subtree = 4,
    EStateTreeStateType_MAX = 5,
}

---@enum EStateTreeTaskCompletionType
local EStateTreeTaskCompletionType = {
    All = 0,
    Any = 1,
    EStateTreeTaskCompletionType_MAX = 2,
}

---@enum EStateTreeTraceEventType
local EStateTreeTraceEventType = {
    Unset = 0,
    OnEntering = 1,
    OnEntered = 2,
    OnExiting = 3,
    OnExited = 4,
    Push = 5,
    Pop = 6,
    OnStateSelected = 7,
    OnStateCompleted = 8,
    OnTicking = 9,
    OnTaskCompleted = 10,
    OnTicked = 11,
    Passed = 12,
    Failed = 13,
    ForcedSuccess = 14,
    ForcedFailure = 15,
    InternalForcedFailure = 16,
    OnRequesting = 17,
    OnEvaluating = 18,
    OnTransition = 19,
    OnTreeStarted = 20,
    OnTreeStopped = 21,
    EStateTreeTraceEventType_MAX = 22,
}

---@enum EStateTreeTraceStatus
local EStateTreeTraceStatus = {
    TracesStarted = 0,
    StoppingTrace = 1,
    TracesStopped = 2,
    EStateTreeTraceStatus_MAX = 3,
}

---@enum EStateTreeTransitionPriority
local EStateTreeTransitionPriority = {
    None = 0,
    Low = 1,
    Normal = 2,
    Medium = 3,
    High = 4,
    Critical = 5,
    EStateTreeTransitionPriority_MAX = 6,
}

---@enum EStateTreeTransitionSourceType
local EStateTreeTransitionSourceType = {
    Unset = 0,
    Asset = 1,
    ExternalRequest = 2,
    Internal = 3,
    EStateTreeTransitionSourceType_MAX = 4,
}

---@enum EStateTreeTransitionTrigger
local EStateTreeTransitionTrigger = {
    None = 0,
    OnStateCompleted = 3,
    OnStateSucceeded = 1,
    OnStateFailed = 2,
    OnTick = 4,
    OnEvent = 8,
    OnDelegate = 16,
    MAX = 17,
}

---@enum EStateTreeTransitionType
local EStateTreeTransitionType = {
    None = 0,
    Succeeded = 1,
    Failed = 2,
    GotoState = 3,
    NextState = 4,
    NextSelectableState = 5,
    NotSet = 6,
    EStateTreeTransitionType_MAX = 7,
}

---@enum EStateTreeUpdatePhase
local EStateTreeUpdatePhase = {
    Unset = 0,
    StartTree = 1,
    StopTree = 2,
    StartGlobalTasks = 3,
    StartGlobalTasksForSelection = 4,
    StopGlobalTasks = 5,
    StopGlobalTasksForSelection = 6,
    TickStateTree = 7,
    ApplyTransitions = 8,
    TickTransitions = 9,
    TriggerTransitions = 10,
    TickingGlobalTasks = 11,
    TickingTasks = 12,
    TransitionConditions = 13,
    StateSelection = 14,
    TrySelectBehavior = 15,
    EnterConditions = 16,
    EnterStates = 17,
    ExitStates = 18,
    StateCompleted = 19,
    EStateTreeUpdatePhase_MAX = 20,
}

