deprecated = (fn, message, code) => {
	let d = deprecationCache.get(message);
	if (d === undefined) {
		d = util.deprecate(deprecatedFunction, message, code);
		deprecationCache.set(message, d);
	}
	return /** @type {T} */ (
		(...args) => {
			d();
			return fn(...args);
		}
	);
}
@template {(...args: EXPECTED_ANY[]) => EXPECTED_ANY} T
@param {T} fn function
@param {string} message message
@param {string} code code
@returns {T} function with deprecation output