Can't figure out what is causing this type error

The following code:

--!strict
local RESignal = require(script.Parent.RESignal)

local Class = {}
Class.__index = Class

function Class.x(self: Class)
    self.y:Fire("x")
    return
end

local function constructor_Class(): Class
    return setmetatable({ y = RESignal.new() }, Class)
end

export type Class = typeof(constructor_Class())

return { new = constructor_Class }

Produces the following type error:

TypeError: Type 'Class' could not be converted into '{ y: { @metatable RESignal, {| __ConnectedConnections: {|  |}, __Destroyed: boolean, __SignalBehavior: string |} } }'
caused by:
  Property 'y' is not compatible. Table type 't1 where t1 = {- Fire: (t1, string) -> (a...) -}' not compatible with type '{| __ConnectedConnections: {|  |}, __Destroyed: boolean, __SignalBehavior: string |}' because the former has extra field 'Fire'Luau1000

At this line:

return setmetatable({ y = RESignal.new() }, Class)

In the constructor_Class function

I cannot figure out what is causing this. You can get RESignal from here

Does nobody know anything about this? Still occurs