{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": "tsconfig.json",
    "sourceType": "module"
  },
  "plugins": ["@typescript-eslint/eslint-plugin", "import", "prettier"],
  "settings": {
    "import/internal-regex": "^europa/",
    "import/parsers": {
      "@typescript-eslint/parser": [".ts"]
    },
    "import/resolver": {
      "typescript": {}
    }
  },
  "extends": ["plugin:@typescript-eslint/recommended", "plugin:prettier/recommended", "plugin:import/errors"],
  "root": true,
  "env": {
    "browser": true
  },
  "ignorePatterns": ["karma.conf.js", "webpack.*.config.js"],
  "rules": {
    "@typescript-eslint/interface-name-prefix": "off",
    "@typescript-eslint/explicit-function-return-type": "off",
    "@typescript-eslint/explicit-module-boundary-types": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "@typescript-eslint/no-non-null-assertion": "off",
    "@typescript-eslint/no-unused-vars": ["error", { "args": "none" }],
    "import/order": [
      "error",
      {
        "alphabetize": {
          "order": "asc"
        },
        "groups": [["builtin", "external"], "internal", "parent", "sibling", "index"],
        "pathGroups": [
          {
            "pattern": "europa/**",
            "group": "internal",
            "position": "after"
          }
        ],
        "newlines-between": "always"
      }
    ],
    "sort-imports": ["error", { "ignoreDeclarationSort": true }]
  }
}
