function validate_user_config(cwd, out, config) {
	// we need to check that the user's tsconfig extends the framework config
	const extend = config.options.extends;
	const extends_framework_config =
		typeof extend === 'string'
			? path.resolve(cwd, extend) === out
			: Array.isArray(extend)
				? extend.some((e) => path.resolve(cwd, e) === out)
				: false;

	const options = config.options.compilerOptions || {};

	if (extends_framework_config) {
		const { paths, baseUrl } = options;

		if (baseUrl || paths) {
			console.warn(
				colors
					.bold()
					.yellow(
						`You have specified a baseUrl and/or paths in your ${config.kind} which interferes with SvelteKit's auto-generated tsconfig.json. ` +
							'Remove it to avoid problems with intellisense. For path aliases, use `kit.alias` instead: https://svelte.dev/docs/kit/configuration#alias'
					)
			);
		}
	} else {
		let relative = posixify(path.relative('.', out));
		if (!relative.startsWith('./')) relative = './' + relative;

		console.warn(
			colors
				.bold()
				.yellow(`Your ${config.kind} should extend the configuration generated by SvelteKit:`)
		);
		console.warn(`{\n  "extends": "${relative}"\n}`);
	}
}
@param {string} cwd
@param {string} out
@param {{ kind: string, options: any }} config