---@meta

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

---@param WaterBodyActor AWaterBody
---@param WaterComponent UPrimitiveComponent
---@param SubmergedComponent UPrimitiveComponent
---@param SubmergedVolume float
---@param SubmergedCenterOfMass FVector
---@param SubmergedVelocity FVector
function IBuoyancyEventInterface:OnSurfaceTouching(WaterBodyActor, WaterComponent, SubmergedComponent, SubmergedVolume, SubmergedCenterOfMass, SubmergedVelocity) end
---@param WaterBodyActor AWaterBody
---@param WaterComponent UPrimitiveComponent
---@param SubmergedComponent UPrimitiveComponent
---@param SubmergedVolume float
---@param SubmergedCenterOfMass FVector
---@param SubmergedVelocity FVector
function IBuoyancyEventInterface:OnSurfaceTouchEnd(WaterBodyActor, WaterComponent, SubmergedComponent, SubmergedVolume, SubmergedCenterOfMass, SubmergedVelocity) end
---@param WaterBodyActor AWaterBody
---@param WaterComponent UPrimitiveComponent
---@param SubmergedComponent UPrimitiveComponent
---@param SubmergedVolume float
---@param SubmergedCenterOfMass FVector
---@param SubmergedVelocity FVector
function IBuoyancyEventInterface:OnSurfaceTouchBegin(WaterBodyActor, WaterComponent, SubmergedComponent, SubmergedVolume, SubmergedCenterOfMass, SubmergedVelocity) end


---@class UBuoyancyRuntimeSettings : UDeveloperSettings
---@field bBuoyancyEnabled boolean
---@field bKeepFloatingObjectsAwake boolean
---@field WaterDensity float
---@field WaterDrag float
---@field CollisionChannelForWaterObjects ECollisionChannel
---@field MaxNumBoundsSubdivisions int32
---@field MinBoundsSubdivisionVol float
---@field SurfaceTouchCallbackFlags uint8
---@field MinVelocityForSurfaceTouchCallback float
---@field bEnableSplineKeyCacheGrid boolean
---@field SplineKeyCacheGridSize float
---@field SplineKeyCacheLimit uint32
local UBuoyancyRuntimeSettings = {}



---@class UBuoyancySubsystem : UTickableWorldSubsystem
local UBuoyancySubsystem = {}

---@return boolean
function UBuoyancySubsystem:IsEnabled() end


