{
	"compilerOptions": {
		/* Target ECMAScript version for generated code. */
		"target": "esnext",

		/* Specify library files to be included in compilation. */
		"lib": ["esnext", "dom", "webworker"],

		/* Force TypeScript to consider all files as modules. */
		"moduleDetection": "force",

		/* Specify module system for generated code. */
		"module": "preserve",

		/* Module resolution strategy optimized for bundlers. */
		"moduleResolution": "bundler",

		/* Enable importing .json files. */
		"resolveJsonModule": true,

		/* Include types for Node.js APIs. */
		"types": ["node"],

		/* Allow import specifiers to include TypeScript file extensions. */
		"allowImportingTsExtensions": true,

		/* Enable all strict TypeScript checks. */
		"strict": true,

		/* Disallow unreachable code (code after return, throw, etc.). */
		"allowUnreachableCode": false,

		/* Interpret optional property types as written, rather than adding undefined. */
		"exactOptionalPropertyTypes": true,

		/* Report errors for fallthrough cases in switch statements. */
		"noFallthroughCasesInSwitch": true,

		/* Require override keyword for overridden methods. */
		"noImplicitOverride": true,

		/* Require explicit return in all branches of functions with return type. */
		"noImplicitReturns": true,

		/* Disallow property access through indexes without explicit declaration. */
		"noPropertyAccessFromIndexSignature": true,

		/* Make index checks stricter (may return undefined). */
		"noUncheckedIndexedAccess": true,

		/* Error on unused local variables. */
		"noUnusedLocals": true,

		/* Error on unused function parameters. */
		"noUnusedParameters": true,

		/* Disable generation of output files (type checking only). */
		"noEmit": true,

		/* Generate .d.ts files when emitting (required by isolatedDeclarations). */
		"declaration": true,

		/* Require explicit types on exports so .d.ts files emit without type inference. */
		"isolatedDeclarations": true,

		/* Transpile each file as a separate module. */
		"isolatedModules": true,

		/* Preserve exact import/export syntax without transformations. */
		"verbatimModuleSyntax": true,

		/* Disable TypeScript features that generate runtime JavaScript code. */
		"erasableSyntaxOnly": true,

		/* Skip type checking in library files (.d.ts). */
		"skipLibCheck": true
	},

	/* Specify files or patterns to include in the compilation. */
	"include": ["${configDir}/**/*"],

	/* Specify files or patterns to exclude from the compilation. */
	"exclude": ["${configDir}/node_modules", "${configDir}/**/.*/"]
}
