{
  "root": true,
  "extends": "standard",
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "env": {
    "browser": true
  },
  "rules": {
    "semi": ["error", "always"],
    "no-var": "error",
    "no-unused-vars": "off",
    "guard-for-in": "error",
    "@typescript-eslint/no-unused-vars": ["error", {
      "vars": "all",
      "args": "after-used",
      "ignoreRestSiblings": true
    }],
    "prefer-const": ["error", {
      "destructuring": "all"
    }],
    "n/no-callback-literal": "off",
    "import/newline-after-import": "error",
    "import/order": ["error", {
      "alphabetize": {
        "order": "asc"
      },
      "newlines-between": "always",
      "pathGroups": [
        {
          "pattern": "@electron/internal/**",
          "group": "external",
          "position": "before"
        },
        {
          "pattern": "@electron/**",
          "group": "external",
          "position": "before"
        },
        {
          "pattern": "{electron,electron/**}",
          "group": "external",
          "position": "before"
        }
      ],
      "pathGroupsExcludedImportTypes": [],
      "distinctGroup": true,
      "groups": [
        "external",
        "builtin",
        ["sibling", "parent"],
        "index",
        "type"
      ]
    }]
  },
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module"
  },
  "overrides": [
    {
      "files": "*.ts",
      "rules": {
        "no-undef": "off",
        "no-redeclare": "off",
        "@typescript-eslint/no-redeclare": ["error"],
        "no-use-before-define": "off"
      }
    },
    {
      "files": "*.d.ts",
      "rules": {
        "no-useless-constructor": "off",
        "@typescript-eslint/no-unused-vars": "off"
      }
    }
  ]
}
