-- Decompiled with the Synapse X Luau decompiler.


local v1 = {};
v1.__index = v1;
v1.ClassName = "Signal";
function v1.new()
	local v2 = setmetatable({}, v1);
	v2._bindableEvent = Instance.new("BindableEvent");
	v2._argData = nil;
	v2._argCount = nil;
	return v2;
end;
function v1.Fire(p1, ...)
	p1._argData = { ... };
	p1._argCount = select("#", ...);
	p1._bindableEvent:Fire();
	p1._argData = nil;
	p1._argCount = nil;
end;
function v1.Connect(p2, p3)
	if type(p3) ~= "function" then
		error(("connect(%s)"):format(typeof(p3)), 2);
	end;
	return p2._bindableEvent.Event:Connect(function()
		p3(unpack(p2._argData, 1, p2._argCount));
	end);
end;
function v1.Wait(p4)
	p4._bindableEvent.Event:Wait();
	assert(p4._argData, "Missing arg data, likely due to :TweenSize/Position corrupting threadrefs.");
	return unpack(p4._argData, 1, p4._argCount);
end;
function v1.Destroy(p5)
	if p5._bindableEvent then
		p5._bindableEvent:Destroy();
		p5._bindableEvent = nil;
	end;
	p5._argData = nil;
	p5._argCount = nil;
end;
function v1.Disconnect(p6)
	p6:Destroy();
end;
return v1;
