Repository: withastro/astro
File: packages/astro/src/types/public/config.ts (TypeScript)

Code before:
		 * Web fonts can impact page performance at both load time and rendering time. This feature provides
		 * automatic [optimization](https://web.dev/learn/performance/optimize-web-fonts) by creating
		 * preload links and optimized fallbacks. This API includes opinionated defaults to keep your sites lightweight and performant (e.g. minimal font files downloaded) while allowing for extensive customization so you can opt in to greater control.
		 *
		 * For a complete overview, and to give feedback on this experimental API,
		 * see the [Fonts RFC](https://github.com/withastro/roadmap/pull/1039).
		 */
		fonts?: [TFontFamilies] extends [never] ? FontFamily[] : TFontFamilies;

		/**
		 * @name experimental.headingIdCompat
		 * @type {boolean}
		 * @default `false`
		 * @version 5.5.x
		 * @description
		 *
		 * Enables full compatibility of Markdown headings IDs with common platforms such as GitHub and npm.
		 *
		 * When enabled, IDs for headings ending with non-alphanumeric characters, e.g. `<Picture />`, will
		 * include a trailing `-`, matching standard behavior in other Markdown tooling.
		 */
		headingIdCompat?: boolean;

		/**
		 * @name experimental.csp
		 * @type {boolean}
		 * @default `false`
		 * @version 5.9.0
		 * @description
		 *
		 * Enables built-in support for Content Security Policy (CSP). For more information, 
		 * refer to the [experimental CSP documentation](https://docs.astro.build/en/reference/experimental-flags/csp/)
		 *
		 */
		csp?:
			| boolean
			| {
					/**
					 * @name experimental.csp.algorithm
					 * @type {"SHA-256" | "SHA-384" | "SHA-512"}
					 * @default `'SHA-256'`
					 * @version 5.9.0
					 * @description
					 *
					 * The [hash function](https://developer.mozilla.org/en-US/docs/Glossary/Hash_function) to use to generate the hashes of the styles and scripts emitted by Astro.
			     * 
				   * ```js
			     * import { defineConfig } from 'astro/config';
				   *
			     * export default defineConfig({
           *   experimental: {

Review comment (suggestion):
This is not only a `boolean`, it can be an object as well. But I don't think we have a type to describe the full object, so maybe we could use:
```suggestion
		 * @type {boolean | object}
```

Code after:
		 * Web fonts can impact page performance at both load time and rendering time. This feature provides
		 * automatic [optimization](https://web.dev/learn/performance/optimize-web-fonts) by creating
		 * preload links and optimized fallbacks. This API includes opinionated defaults to keep your sites lightweight and performant (e.g. minimal font files downloaded) while allowing for extensive customization so you can opt in to greater control.
		 *
		 * For a complete overview, and to give feedback on this experimental API,
		 * see the [Fonts RFC](https://github.com/withastro/roadmap/pull/1039).
		 */
		fonts?: [TFontFamilies] extends [never] ? FontFamily[] : TFontFamilies;

		/**
		 * @name experimental.headingIdCompat
		 * @type {boolean}
		 * @default `false`
		 * @version 5.5.x
		 * @description
		 *
		 * Enables full compatibility of Markdown headings IDs with common platforms such as GitHub and npm.
		 *
		 * When enabled, IDs for headings ending with non-alphanumeric characters, e.g. `<Picture />`, will
		 * include a trailing `-`, matching standard behavior in other Markdown tooling.
		 */
		headingIdCompat?: boolean;

		/**
		 * @name experimental.csp
		 * @type {boolean | object}
		 * @default `false`
		 * @version 5.9.0
		 * @description
		 *
		 * Enables built-in support for Content Security Policy (CSP). For more information, 
		 * refer to the [experimental CSP documentation](https://docs.astro.build/en/reference/experimental-flags/csp/)
		 *
		 */
		csp?:
			| boolean
			| {
					/**
					 * @name experimental.csp.algorithm
					 * @type {"SHA-256" | "SHA-384" | "SHA-512"}
					 * @default `'SHA-256'`
					 * @version 5.9.0
					 * @description
					 *
					 * The [hash function](https://developer.mozilla.org/en-US/docs/Glossary/Hash_function) to use to generate the hashes of the styles and scripts emitted by Astro.
					 * 
					 * ```js
					 * import { defineConfig } from 'astro/config';
					 *
					 * export default defineConfig({
					 *   experimental: {