-- Compiled with roblox-ts v1.2.7 local TS = _G[script] local t = TS.import(script, TS.getModule(script, "@rbxts", "t").lib.ts) local ZrEnum = TS.import(script, TS.getModule(script, "@rbxts", "zirconium").out.Data.Enum).ZrEnum local ZrEnumItem = TS.import(script, TS.getModule(script, "@rbxts", "zirconium").out.Data.EnumItem).ZrEnumItem local ZrObject = TS.import(script, TS.getModule(script, "@rbxts", "zirconium").out.Data.Object).default local ZrRange = TS.import(script, TS.getModule(script, "@rbxts", "zirconium").out.Data.Range).default local ZrUndefined = TS.import(script, TS.getModule(script, "@rbxts", "zirconium").out.Data.Undefined) local _Userdata = TS.import(script, TS.getModule(script, "@rbxts", "zirconium").out.Data.Userdata) local ZrUserdata = _Userdata.ZrUserdata local ZrInstanceUserdata = _Userdata.ZrInstanceUserdata local ZirconFunction = TS.import(script, script.Parent.Parent, "Class", "ZirconFunction").ZirconFunction local array = t.array(t.any) local zirconTypeOf local function zirconTypeIs(value, k) return zirconTypeOf(value) == k end function zirconTypeOf(value) if type(value) == "string" or (type(value) == "number" or type(value) == "boolean") then return typeof(value) elseif value == ZrUndefined then return "undefined" elseif TS.instanceof(value, ZirconFunction) then return "function" elseif TS.instanceof(value, ZrRange) then return "range" elseif TS.instanceof(value, ZrUserdata) then return "userdata" elseif TS.instanceof(value, ZrInstanceUserdata) then return "Instance" elseif TS.instanceof(value, ZrObject) then return "object" elseif TS.instanceof(value, ZrEnum) then return "enum" elseif TS.instanceof(value, ZrEnumItem) then return "enum$" .. value:getEnum():getEnumName() elseif array(value) then return "array" else error("Invalid Zirconium Type") end end local function zirconTypeId(value) if zirconTypeIs(value, "string") then return 'string "' .. (value .. '"') elseif zirconTypeIs(value, "number") or zirconTypeIs(value, "boolean") then return "number '" .. (tostring(value) .. "'") elseif zirconTypeIs(value, "range") then return "range <" .. (tostring(value:GetMin()) .. (" .. " .. (tostring(value:GetMax()) .. ">"))) elseif zirconTypeIs(value, "enum") then return "Enum '" .. (value:getEnumName() .. "'") elseif zirconTypeIs(value, "EnumItem") then return "EnumItem '" .. (value:getEnum():getEnumName() .. ("::" .. (value:getName() .. "'"))) elseif zirconTypeIs(value, "function") then return "function '" .. (value:GetName() .. "'") else return zirconTypeOf(value) end end return { zirconTypeIs = zirconTypeIs, zirconTypeOf = zirconTypeOf, zirconTypeId = zirconTypeId, }