{
  "parser": "@typescript-eslint/parser",

  "plugins": ["@typescript-eslint"],

  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "next",

    // Uncomment the following lines to enable eslint-config-prettier
    // Is not enabled right now to avoid issues with the Next.js repo
    "prettier"
  ],

  "env": {
    "es6": true,
    "browser": true,
    "jest": true,
    "node": true
  },

  "settings": {
    "react": {
      "version": "detect"
    }
  },

  "rules": {
    "no-case-declarations": "off",
    "@typescript-eslint/ban-ts-comment": "off",
    "react/react-in-jsx-scope": 0,
    "react/display-name": 0,
    "react/prop-types": 0,
    "@typescript-eslint/explicit-function-return-type": 0,
    "@typescript-eslint/explicit-member-accessibility": 0,
    "@typescript-eslint/indent": 0,
    "@typescript-eslint/member-delimiter-style": 0,
    "@typescript-eslint/no-explicit-any": 0,
    "@typescript-eslint/no-var-requires": 0,
    "@typescript-eslint/no-use-before-define": 0,
    "@typescript-eslint/no-unused-vars": [
      2,
      {
        "argsIgnorePattern": "^_"
      }
    ],
    "no-console": [
      2,
      {
        "allow": ["warn", "error"]
      }
    ]
  },

  "overrides": [
    {
      "files": ["*.test.js*"],

      "env": {
        "jest": true
      },

      "rules": {
        "jest/no-disabled-tests": "error",
        "jest/no-focused-tests": "error",
        "jest/no-identical-title": "error",
        "jest/no-jest-import": "error",
        "jest/no-test-return-statement": "error",
        "jest/prefer-to-be-null": "warn",
        "jest/prefer-to-be-undefined": "warn",
        "jest/prefer-to-have-length": "warn",
        "jest/valid-describe": "error",
        "jest/valid-expect": "error"
      }
    }
  ]
}
