{
	"compilerOptions": {
		"target": "ES2024", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
		"module": "Node16", /* Specify what module code is generated. */
		"lib": ["ES2024"], /* Specify library files to be included in the compilation. */
		"rootDir": "./src", /* Specify the root folder within your source files. */
		"outDir": "./build", /* Specify an output folder for all emitted files. */
		"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
		"declarationDir": "./types", /* Specify the output directory for generated declaration files. */
		"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
		/* Type Checking */
		"strict": true, /* Enable all strict type-checking options. */
		"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
		"strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
		"strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
		"strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
		"strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
		"noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
		"useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
		"alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
		"noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
		"noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
		"exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
		"noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
		"noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
		"noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
		"noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
		"noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
	}
}