{
	"compilerOptions": {
		// Enable latest features
		"lib": ["ES2024", "DOM"],
		"target": "ES2024",
		"module": "ESNext",
		"moduleDetection": "force",
		"jsx": "react-jsx",
		"allowJs": true,

		// Bundler mode
		"moduleResolution": "bundler",
		"allowImportingTsExtensions": true,
		"verbatimModuleSyntax": true,
		"erasableSyntaxOnly": true,
		"isolatedModules": true,
		"resolveJsonModule": true,
		"types": ["bun"],

		// Editor-only mode - no emit
		"noEmit": true,

		// Best practices
		"strict": true,
		"skipLibCheck": true,
		"noUncheckedIndexedAccess": true,
		"exactOptionalPropertyTypes": true,
		"useUnknownInCatchVariables": true,
		"noUncheckedSideEffectImports": true,
		"noFallthroughCasesInSwitch": true,
		"forceConsistentCasingInFileNames": true,

		// Some stricter flags (disabled by default)
		"noUnusedLocals": false,
		"noUnusedParameters": false,
		"noPropertyAccessFromIndexSignature": false,

		/* Performance */
		"incremental": true,
		"tsBuildInfoFile": "./.tsbuildinfo",
	},
	"include": ["./**/*.ts"],
	"exclude": ["node_modules", "types", "index.js"],
}
