constexpr function GetInvalidVisionBlockerID() : Uint32
{
	return 0;
}

importonly abstract class IVisionBlockerShape extends IScriptable
{
}

importonly final class VisionBlockerShape_BasicHemisphere extends IVisionBlockerShape
{
	public import static function Create( position : Vector4, radius : Float ) : VisionBlockerShape_BasicHemisphere;
}

importonly final class VisionBlockerShape_BasicSphere extends IVisionBlockerShape
{
	public import static function Create( position : Vector4, radius : Float ) : VisionBlockerShape_BasicSphere;
}

importonly final class VisionBlockerShape_BasicCapsule extends IVisionBlockerShape
{
	public import static function Create( position : Vector4, radius : Float, height : Float ) : VisionBlockerShape_BasicCapsule;
}

importonly final class VisionBlockersRegistrar extends IScriptable
{
	public import function RegisterVisionBlocker( blockerShape : IVisionBlockerShape, blockerType : EVisionBlockerType, optional detectionModifier : Float, optional tbhModifier : Float, optional isBlockingCompletely : Bool, optional blocksParent : Bool ) : Uint32;
	public import function UnregisterVisionBlocker( blockerId : Uint32 );
	public import function AttachToParent( blockerId : Uint32, parent : GameObject, optional offsetFromParent : Vector4 );
	public import function DetachFromParent( blockerId : Uint32 );
	public import function UpdateVisionBlockerPosition( blockerId : Uint32, newPosition : Vector4 );
	public import function SetIsBlockingCompletely( blockerId : Uint32, blockingCompletely : Bool );
}

