---@meta

---@class FDataflowCallSubGraphNode : FDataflowNode
---@field SubGraphGuid FGuid
---@field DynamicInputs FDataflowDynamicConnections
---@field InputsPropertyBag FInstancedPropertyBag
---@field DynamicOutputs FDataflowDynamicConnections
---@field OutputsPropertyBag FInstancedPropertyBag
local FDataflowCallSubGraphNode = {}



---@class FDataflowDynamicConnections
---@field DynamicProperties TArray<FDataflowAllTypes>
local FDataflowDynamicConnections = {}



---@class FDataflowImageToTextureNode : FDataflowNode
---@field Image FDataflowImage
---@field TextureName FName
---@field TransientTexture UTexture2D
local FDataflowImageToTextureNode = {}



---@class FDataflowInstance
---@field DataflowAsset UDataflow
---@field DataflowTerminal FName
---@field VariableOverrides FDataflowVariableOverrides
---@field Owner UObject
local FDataflowInstance = {}



---@class FDataflowNodeDebugDrawSettings
---@field RenderType EDataflowDebugDrawRenderType
---@field bTranslucent boolean
---@field Color FLinearColor
---@field LineWidthMultiplier float
local FDataflowNodeDebugDrawSettings = {}



---@class FDataflowNodeSphereCoveringDebugDrawSettings
---@field bDisplaySphereCovering boolean
---@field RenderType EDataflowDebugDrawRenderType
---@field bTranslucent boolean
---@field LineWidthMultiplier float
---@field ColorMethod EDataflowSphereCoveringColorMethod
---@field Color FLinearColor
---@field ColorRandomSeed int32
---@field ColorA FLinearColor
---@field ColorB FLinearColor
local FDataflowNodeSphereCoveringDebugDrawSettings = {}



---@class FDataflowPreviewCacheParams
---@field FrameRate int32
---@field SubframeRate int32
---@field bCanEditSubframeRate boolean
---@field TimeRange FVector2f
---@field bRestartSimulation boolean
---@field RestartTimeRange FVector2f
---@field bAsyncCaching boolean
local FDataflowPreviewCacheParams = {}



---@class FDataflowProxyElement : FDataflowBaseElement
local FDataflowProxyElement = {}


---@class FDataflowSubGraphGetCurrentIndexNode : FDataflowNode
---@field Index int32
local FDataflowSubGraphGetCurrentIndexNode = {}



---@class FDataflowSubGraphInputNode : FDataflowNode
---@field DynamicConnections FDataflowDynamicConnections
---@field PropertyBag FInstancedPropertyBag
local FDataflowSubGraphInputNode = {}



---@class FDataflowSubGraphOutputNode : FDataflowNode
---@field DynamicConnections FDataflowDynamicConnections
---@field PropertyBag FInstancedPropertyBag
local FDataflowSubGraphOutputNode = {}



---@class FDataflowTextureTerminalNode : FDataflowTerminalNode
---@field Image FDataflowImage
---@field TextureAsset UTexture2D
local FDataflowTextureTerminalNode = {}



---@class FDataflowTextureToImageNode : FDataflowNode
---@field TextureAsset UTexture2D
---@field Image FDataflowImage
local FDataflowTextureToImageNode = {}



---@class FDataflowVariableOverrides
---@field Variables FInstancedPropertyBag
---@field OverriddenVariableGuids TArray<FGuid>
local FDataflowVariableOverrides = {}



---@class FGetDataflowVariableNode : FDataflowNode
---@field Value FDataflowAnyType
---@field VariablePropertyBag FInstancedPropertyBag
---@field VariableName FName
local FGetDataflowVariableNode = {}



---@class FStringValuePair
---@field Key FString
---@field Value FString
local FStringValuePair = {}



---@class IDataflowContentOwner : IInterface
local IDataflowContentOwner = {}


---@class IDataflowInstanceInterface : IInterface
local IDataflowInstanceInterface = {}


---@class UDataflow : UEdGraph
---@field bActive boolean
---@field Targets TArray<UObject>
---@field Material UMaterial
---@field Type EDataflowType
---@field Variables FInstancedPropertyBag
---@field DataflowSubGraphs TArray<UDataflowSubGraph>
local UDataflow = {}



---@class UDataflowBaseContent : UDataflowContextObject
---@field DataflowTerminal FString
---@field TerminalAsset UObject
---@field bIsConstructionDirty boolean
---@field bIsSimulationDirty boolean
local UDataflowBaseContent = {}



---@class UDataflowBlueprintLibrary : UBlueprintFunctionLibrary
local UDataflowBlueprintLibrary = {}

---@param AssetToRegenerate UObject
---@param bRegenerateDependentAssets boolean
---@return boolean
function UDataflowBlueprintLibrary:RegenerateAssetFromDataflow(AssetToRegenerate, bRegenerateDependentAssets) end
---@param Asset UObject
---@param VariableName FName
---@param VariableArrayValue TArray<UObject>
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableObjectArray(Asset, VariableName, VariableArrayValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableValue UObject
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableObject(Asset, VariableName, VariableValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableArrayValue TArray<int32>
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableIntArray(Asset, VariableName, VariableArrayValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableValue int64
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableInt(Asset, VariableName, VariableValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableArrayValue TArray<float>
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableFloatArray(Asset, VariableName, VariableArrayValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableValue float
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableFloat(Asset, VariableName, VariableValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableArrayValue TArray<boolean>
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableBoolArray(Asset, VariableName, VariableArrayValue) end
---@param Asset UObject
---@param VariableName FName
---@param VariableValue boolean
---@return boolean
function UDataflowBlueprintLibrary:OverrideDataflowVariableBool(Asset, VariableName, VariableValue) end
---@param Dataflow UDataflow
---@param TerminalNodeName FName
---@param ResultAsset UObject
function UDataflowBlueprintLibrary:EvaluateTerminalNodeByName(Dataflow, TerminalNodeName, ResultAsset) end


---@class UDataflowContextObject : UObject
---@field SelectedNode UDataflowEdNode
---@field DataflowGraph UDataflow
local UDataflowContextObject = {}



---@class UDataflowDebugDrawComponent : UDebugDrawComponent
local UDataflowDebugDrawComponent = {}


---@class UDataflowEdNode : UEdGraphNode
---@field bRenderInAssetEditor boolean
---@field bRenderWireframeInAssetEditor boolean
---@field bCanEnableRenderWireframe boolean
local UDataflowEdNode = {}



---@class UDataflowMesh : UObject
---@field Materials TArray<UMaterialInterface>
local UDataflowMesh = {}



---@class UDataflowSkeletalContent : UDataflowBaseContent
---@field SkeletalMesh USkeletalMesh
---@field AnimationAsset UAnimationAsset
local UDataflowSkeletalContent = {}



---@class UDataflowSubGraph : UEdGraph
---@field SubGraphGuid FGuid
---@field bIsForEach boolean
local UDataflowSubGraph = {}



