-- Compiled with roblox-ts v3.0.0 -- eslint-disable @typescript-eslint/no-explicit-any local Subscribe = function(selector) return function(target, propertyKey, descriptor) local originalMethod = descriptor.value local Ttarget = target local originalConstructor = Ttarget.constructor Ttarget.constructor = function(self, ...) local args = { ... } local result = originalConstructor(self, unpack(args)) self:Subscribe(selector, function(state, prev) return originalMethod(self, state, prev) end) return result end end end return { Subscribe = Subscribe, }