function PromiseRemoteEventMixin.Add(l,y,u)assert(type(y)=="\116\097\098\108\101","\066\097\100 \099\108\097\115\115")assert(type(u)=="\115\116\114\105\110\103","\066\097\100 \114\101\109\111\116\101\069\118\101\110\116\078\097\109\101")assert(not y.PromiseRemoteEventMixin,"\067\108\097\115\115 \097\108\114\101\097\100\121 \104\097\115 \080\114\111\109\105\115\101\082\101\109\111\116\101\069\118\101\110\116\077\105\120\105\110 \100\101\102\105\110\101\100")assert(not y._remoteEventName,"\067\108\097\115\115 \097\108\114\101\097\100\121 \104\097\115 \095\114\101\109\111\116\101\069\118\101\110\116\078\097\109\101 \100\101\102\105\110\101\100")y.PromiseRemoteEvent=l.PromiseRemoteEvent y._remoteEventName=u end
--[=[
	Adds the remote function mixin to a class

	```lua
	local BaseObject = require("BaseObject")

	local Bird = setmetatable({}, BaseObject)
	Bird.ClassName = "Bird"
	Bird.__index = Bird

	require("PromiseRemoteEventMixin"):Add(Bird, "BirdRemoteEvent")

	function Bird.new(inst)
		local self = setmetatable(BaseObject.new(inst), Bird)

		self:PromiseRemoteEvent():Then(function(remoteEvent)
			self._maid:GiveTask(remoteEvent.OnClientEvent:Connect(function(...)
				self:_handleRemoteEvent(...)
			end)
		end)

		return self
	end
	```

	@param class { _maid: Maid }
	@param remoteEventName string
]=]
function PromiseRemoteEventMixin:Add(class, remoteEventName)
	assert(type(class) == "table", "Bad class")
	assert(type(remoteEventName) == "string", "Bad remoteEventName")
	assert(not class.PromiseRemoteEventMixin, "Class already has PromiseRemoteEventMixin defined")
	assert(not class._remoteEventName, "Class already has _remoteEventName defined")

	class.PromiseRemoteEvent = self.PromiseRemoteEvent
	class._remoteEventName = remoteEventName
end
