---@meta

---@class FPropertyBindingBindableStructDescriptor
---@field Struct UStruct
---@field Name FName
local FPropertyBindingBindableStructDescriptor = {}



---@class FPropertyBindingBinding
---@field SourcePropertyPath FPropertyBindingPath
---@field TargetPropertyPath FPropertyBindingPath
local FPropertyBindingBinding = {}



---@class FPropertyBindingBindingCollection
---@field CopyBatches TArray<FPropertyBindingCopyInfoBatch>
---@field PropertyCopies TArray<FPropertyBindingCopyInfo>
---@field PropertyIndirections TArray<FPropertyBindingPropertyIndirection>
---@field BindingsOwner TScriptInterface<IPropertyBindingBindingCollectionOwner>
local FPropertyBindingBindingCollection = {}



---@class FPropertyBindingCopyInfo
---@field SourceIndirection FPropertyBindingPropertyIndirection
---@field TargetIndirection FPropertyBindingPropertyIndirection
---@field SourceStructType UStruct
---@field CopySize int32
---@field SourceDataHandle FInstancedStruct
---@field Type EPropertyCopyType
local FPropertyBindingCopyInfo = {}



---@class FPropertyBindingCopyInfoBatch
---@field TargetStruct FInstancedStruct
---@field BindingsBegin FPropertyBindingIndex16
---@field BindingsEnd FPropertyBindingIndex16
---@field PropertyFunctionsBegin FPropertyBindingIndex16
---@field PropertyFunctionsEnd FPropertyBindingIndex16
local FPropertyBindingCopyInfoBatch = {}



---@class FPropertyBindingIndex16
---@field Value uint16
local FPropertyBindingIndex16 = {}



---@class FPropertyBindingPath
---@field Segments TArray<FPropertyBindingPathSegment>
local FPropertyBindingPath = {}



---@class FPropertyBindingPathSegment
---@field Name FName
---@field ArrayIndex int32
---@field InstanceStruct UStruct
---@field InstancedStructAccessType EPropertyBindingPropertyAccessType
local FPropertyBindingPathSegment = {}



---@class FPropertyBindingPropertyIndirection
---@field ArrayIndex FPropertyBindingIndex16
---@field Offset uint16
---@field NextIndex FPropertyBindingIndex16
---@field Type EPropertyBindingPropertyAccessType
---@field InstanceStruct UStruct
local FPropertyBindingPropertyIndirection = {}



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


