{
	"compilerOptions": {
		"noImplicitAny": false,

		"allowJs": true,
		"checkJs": true,
		"allowSyntheticDefaultImports": true,
		"jsx": "preserve",
		"target": "esnext",
		"module": "esnext",
		"lib": [
			"dom",
			"esnext"
		],
		"declaration": true,
		"declarationMap": true,
		"composite": true,
		"emitDeclarationOnly": true,
		"isolatedModules": true,

		/* Strict Type-Checking Options */
		"strict": true,

		/* Additional Checks */
		"noUnusedLocals": true,
		"noUnusedParameters": false,
		"noImplicitReturns": true,
		"noFallthroughCasesInSwitch": true,

		/* Module Resolution Options */
		"moduleResolution": "node",

		/* This needs to be false so our types are possible to consume without setting this */
		"esModuleInterop": false,
		"resolveJsonModule": true,

		"typeRoots": [
			"./node_modules/@types"
		],
		"rootDir": "src",
		"declarationDir": "build-types",
		"skipLibCheck": true,
	},
	"include": [
		"src/**/*"
	],
	"exclude": [
		"node_modules",
		"**/*.spec.ts",
		"**/__tests__/*"
	]
}
