{
  "overrides": [
    {
      "files": ["**/*.ts?(x)"],
      "extends": ["plugin:@typescript-eslint/recommended", "eko"],
      "plugins": ["prettier", "import", "jest"],
      "parser": "@typescript-eslint/parser",
      "parserOptions": {
        "project": "./tsconfig.json",
        "ecmaFeatures": {
          "jsx": true,
          "ts": true,
          "tsx": true
        }
      },
      "rules": {
        "@typescript-eslint/ban-ts-comment": "off",
        "@typescript-eslint/explicit-module-boundary-types": "off",
        "@typescript-eslint/no-explicit-any": "off",
        "@typescript-eslint/no-namespace": ["error", { "allowDeclarations": true }],
        "@typescript-eslint/no-non-null-assertion": "off",
        "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
        "@typescript-eslint/no-unnecessary-type-constraint": "off",
        "@typescript-eslint/no-unsafe-call": "off",
        "@typescript-eslint/no-unused-vars": "off",
        "default-param-last": "off",
        "import/extensions": "off",
        "import/no-extraneous-dependencies": ["error", { "devDependencies": true }],
        "import/no-unresolved": "off",
        "no-shadow": "off",
        "no-unused-vars": "off",
        "no-console": ["warn", { "allow": ["warn", "error"] }]
      },
      "settings": {
        "import/resolver": {
          "node": {
            "extensions": [".js", ".jsx", ".ts", ".tsx"]
          },
          "typescript": {}
        }
      },
      "globals": {
        "Amity": true,
        "SocketIOClient": true,
        "Patch": true,
        "ValueOf": true,
        "MakeRequired": true,
        "MakeOptional": true,
        "NodeJS": true
      },
      "env": {
        "jest/globals": true
      }
    }
  ]
}
