local U={}local j={["\110\105\108"]="\079\098\106\101\099\116\086\097\108\117\101",boolean="\066\111\111\108\086\097\108\117\101",number="\078\117\109\098\101\114\086\097\108\117\101",string="\083\116\114\105\110\103\086\097\108\117\101";BrickColor="\066\114\105\099\107\067\111\108\111\114\086\097\108\117\101";CFrame="\067\070\114\097\109\101\086\097\108\117\101";Color3="\067\111\108\111\114\051\086\097\108\117\101";Instance="\079\098\106\101\099\116\086\097\108\117\101";Ray="\082\097\121\086\097\108\117\101",Vector3="\086\101\099\116\111\114\051\086\097\108\117\101"}local H={BoolValue="\098\111\111\108\101\097\110";NumberValue="\110\117\109\098\101\114";IntValue="\110\117\109\098\101\114",StringValue="\115\116\114\105\110\103",BrickColorValue="\066\114\105\099\107\067\111\108\111\114",CFrameValue="\067\070\114\097\109\101",Color3Value="\067\111\108\111\114\051",ObjectValue="\073\110\115\116\097\110\099\101";RayValue="\082\097\121";Vector3Value="\086\101\099\116\111\114\051"}
--[=[
	Provides utilities for working with ValueBase objects, like [IntValue] or [ObjectValue] in Roblox.

	@class ValueBaseUtils
]=]

local ValueBaseUtils = {}

local TYPE_TO_CLASSNAME_LOOKUP = {
	["nil"] = "ObjectValue",
	boolean = "BoolValue",
	number = "NumberValue",
	string = "StringValue",

	BrickColor = "BrickColorValue",
	CFrame = "CFrameValue",
	Color3 = "Color3Value",
	Instance = "ObjectValue",
	Ray = "RayValue",
	Vector3 = "Vector3Value",
}

local VALUE_BASE_TYPE_LOOKUP = {
	BoolValue = "boolean",
	NumberValue = "number",
	IntValue = "number",
	StringValue = "string",
	BrickColorValue = "BrickColor",
	CFrameValue = "CFrame",
	Color3Value = "Color3",
	ObjectValue = "Instance",
	RayValue = "Ray",
	Vector3Value = "Vector3",
}
