-- Compiled with roblox-ts v1.2.7
local TS = _G[script]
local RunService = TS.import(script, TS.getModule(script, "@rbxts", "services")).RunService
local waitForNamedChildWhichIsA = TS.import(script, script.Parent.Parent, "functions", "WaitForNamedChildWhichIsA").waitForNamedChildWhichIsA
local ClientSignalSender
do
	ClientSignalSender = setmetatable({}, {
		__tostring = function()
			return "ClientSignalSender"
		end,
	})
	ClientSignalSender.__index = ClientSignalSender
	function ClientSignalSender.new(...)
		local self = setmetatable({}, ClientSignalSender)
		return self:constructor(...) or self
	end
	function ClientSignalSender:constructor(parent, description)
		if not RunService:IsClient() then
			error("Attempt to create a ClientSignalSender from server")
		end
		self.remoteEvent = waitForNamedChildWhichIsA(parent, description.name, "RemoteEvent")
	end
	function ClientSignalSender:create(parent, description)
		return ClientSignalSender.new(parent, description)
	end
	function ClientSignalSender:destroy()
		self.remoteEvent = nil
	end
	function ClientSignalSender:fire(...)
		local args = { ... }
		if self.remoteEvent == nil then
			error("Cannot fire a destroyed ClientSignalSender")
		end
		self.remoteEvent:FireServer(unpack(args))
	end
end
return {
	ClientSignalSender = ClientSignalSender,
}
