---@meta

---@class ADynamicRopeActor : AActor
---@field OnRopeLengthUpdated FDynamicRopeActorOnRopeLengthUpdated
---@field MaxRopeLength float
---@field RemainingRopeLengthPullThreshold float
---@field PhysicsHandleComponent UPhysicsHandleComponent
---@field RopeSegments TArray<UDynamicRopeSegment>
---@field RopeSegmentLocations FDynamicRopeLocationArray
---@field EndAttachedToComponent USceneComponent
local ADynamicRopeActor = {}

function ADynamicRopeActor:RemoveLastRopeSegment() end
---@param OldRopeSegmentLocations FDynamicRopeLocationArray
function ADynamicRopeActor:OnRep_RopeSegmentLocations(OldRopeSegmentLocations) end
function ADynamicRopeActor:OnRep_EndAttachedToComponent() end
function ADynamicRopeActor:NetMulticast_ResetRope() end
---@return float
function ADynamicRopeActor:GetRopeTension() end
---@param OutCurrentRopeLength float
---@param OutTargetRopeLength float
---@param OutMaxRopeLength float
function ADynamicRopeActor:GetRopeLength(OutCurrentRopeLength, OutTargetRopeLength, OutMaxRopeLength) end


---@class FDynamicRopeLocationArray : FFastArraySerializer
---@field RopeLocations TArray<FDynamicRopeLocationItem>
local FDynamicRopeLocationArray = {}



---@class FDynamicRopeLocationItem : FFastArraySerializerItem
---@field Location FVector_NetQuantize10
---@field ImpactNormal FVector_NetQuantize10
---@field AttachParent USceneComponent
local FDynamicRopeLocationItem = {}



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

---@param DeltaTime float
---@param NormalizedWinchForce float
---@param PullLocation FVector
---@param RopeLengthDiff float
function IDynamicRopeAttachmentInterface:RopePull(DeltaTime, NormalizedWinchForce, PullLocation, RopeLengthDiff) end


---@class UDynamicRopeSegment : USceneComponent
---@field EndAttachedToComponent USceneComponent
local UDynamicRopeSegment = {}



