{
  "compilerOptions": {
    "target": "esnext", // Specify ECMAScript target version
    "module": "commonjs", // Specify module code generation,
    "sourceMap": true,
    "outDir": "dist/types", // Redirect output structure to the directory
    "declaration": true,
    "lib": ["dom", "dom.iterable", "esnext"], // Specify library files to be included in the compilation
    "allowJs": true, // Allow JavaScript files to be compiled
    "skipLibCheck": true, // Skip type checking of all declaration files (*.d.ts)
    "esModuleInterop": true, // Enables emit interoperability between CommonJS and ES Modules
    "allowSyntheticDefaultImports": true, // Allow default imports from modules with no default export
    "strict": true, // Enable all strict type-checking options
    "forceConsistentCasingInFileNames": true, // Disallow inconsistently-cased references to the same file
    "moduleResolution": "node", // Resolve modules using Node.js resolution strategy
    "resolveJsonModule": true, // Include modules imported with '.json' extension
    "isolatedModules": true, // Ensure each file can be safely transpiled without relying on other imports
    "noEmit": false, // Do not emit outputs (useful when using with Babel)
    "jsx": "react", // Support JSX in .tsx files
    "baseUrl": "./src", // Base directory to resolve non-relative module names,
    "sourceRoot": "./src" // Specify the location where debugger should locate TypeScript files instead of source locations
  },
  "files": ["src/index.tsx"], // Specify the root files of the program
  "include": ["src/**/*.ts", "src/**/*.tsx"], // Specify the files to include
  "exclude": [
    "node_modules", // Exclude the node_modules directory
    "**/*.spec.ts" // Exclude test files
  ]
}
