{
  "root": true,
  "ignorePatterns": ["lib/types/generated/**", "**/*.test.ts", "**/*.test.tsx"],
  "extends": ["next/core-web-vitals", "plugin:import/recommended", "plugin:import/typescript"],
  "plugins": ["boundaries", "import", "@typescript-eslint", "unused-imports"],
  "settings": {
    "import/resolver": {
      "typescript": {}
    },
    "boundaries/elements": [
      {
        "type": "website",
        "pattern": ["**/*"]
      }
    ]
  },
  "rules": {
    "react/no-unescaped-entities": "off",
    "@next/next/no-img-element": "off",
    "react-hooks/exhaustive-deps": "off",
    "react-hooks/rules-of-hooks": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "@typescript-eslint/no-unused-vars": "off",
    "import/no-default-export": "off",
    "import/no-named-as-default-member": "off",
    "no-restricted-syntax": "off",
    "boundaries/element-types": [
      2,
      {
        "default": "disallow",
        "rules": [
          {
            "from": ["website"],
            "allow": ["website"]
          }
        ]
      }
    ],
    "unused-imports/no-unused-imports": "off",
    "unused-imports/no-unused-vars": "off"
  },
  "overrides": [
    {
      "files": [
        "app/**/page.*",
        "app/**/layout.*",
        "app/**/loading.*",
        "app/**/error.*",
        "app/**/not-found.*",
        "app/**/global-error.*",
        "app/**/template.*",
        "app/**/default.*"
      ],
      "rules": {
        "import/no-default-export": "off",
        "no-restricted-syntax": "off"
      }
    }
  ]
}