-- Compiled with roblox-ts v2.3.0
local function generateDataType(value)
	if value.type == "string" then
		return { "string", value.value }
	elseif value.type == "number" then
		return { "number", value.value }
	elseif value.type == "boolean" then
		return { "boolean", value.value }
	elseif value.type == "UDim2" then
		return { "udim2", { "number", value.value.xScale }, { "number", value.value.xOffset }, { "number", value.value.yScale }, { "number", value.value.yOffset } }
	elseif value.type == "UDim" then
		return { "udim", { "number", value.value.scale }, { "number", value.value.offset } }
	elseif value.type == "Color3" then
		return { "color3", { "number", value.value.red * 255 }, { "number", value.value.green * 255 }, { "number", value.value.blue * 255 } }
	elseif value.type == "Vector2" then
		return { "udim", { "number", value.value.x }, { "number", value.value.y } }
	else
		error(`Unexpected datatype: {value["type" + 1]}`)
	end
end
local function revitalizeInput(input)
	local data = { input.className, {} }
	for key, value in pairs(input.properties) do
		data[2][key] = { "field", generateDataType(value) }
	end
	do
		local i = 0
		local _shouldIncrement = false
		while true do
			if _shouldIncrement then
				i += 1
			else
				_shouldIncrement = true
			end
			if not (i < #input.children) then
				break
			end
			data[2][`child-{i}`] = { "component", { "instance", revitalizeInput(input.children[i + 1]) } }
		end
	end
	return data
end
return {
	revitalizeInput = revitalizeInput,
}
