{
  "defaultSeverity": "error",
  "linterOptions": {
    "exclude": [
      "**/node_modules/**/*",
      "**/coverage/**/*"
    ]
  },
  "rules": {
    "adjacent-overload-signatures": true,
    "ban-comma-operator": true,
    "member-ordering": [
      true,
      {
        "order": [
          "public-static-field",
          "protected-static-field",
          "private-static-field",
          "public-instance-field",
          "protected-instance-field",
          "private-instance-field",
          "public-constructor",
          "protected-constructor",
          "private-constructor",
          "public-static-method",
          "protected-static-method",
          "private-static-method",
          "public-instance-method",
          "protected-instance-method",
          "private-instance-method"
        ]
      }
    ],
    "no-empty-interface": true,
    "no-inferrable-types": true,
    "member-access": [
      true,
      "check-accessor",
      "check-constructor",
      "check-parameter-property"
    ],
    "no-magic-numbers": false,
    "no-namespace": [
      true,
      "allow-declarations"
    ],
    "no-non-null-assertion": true,
    "no-reference": true,
    "no-unnecessary-type-assertion": true,
    "no-var-requires": true,
    "unified-signatures": true,
    "await-promise": [
      true,
      "Thenable",
      "Bluebird"
    ],
    "curly": [
      true,
      "ignore-same-line"
    ],
    "forin": true,
    "label-position": true,
    "no-arg": true,
    "no-bitwise": true,
    "no-construct": true,
    "no-duplicate-super": true,
    "no-debugger": true,
    "no-duplicate-switch-case": true,
    "no-duplicate-variable": [
      true,
      "check-parameters"
    ],
    "no-empty": [
      true,
      "allow-empty-catch"
    ],
    "no-eval": true,
    "no-floating-promises": true,
    "no-for-in-array": true,
    "no-implicit-dependencies": [
      true,
      "dev"
    ],
    "no-inferred-empty-object-type": true,
    "no-invalid-template-strings": true,
    "no-invalid-this": [
      true,
      "check-function-in-method"
    ],
    "no-misused-new": true,
    "no-object-literal-type-assertion": true,
    "no-return-await": true,
    "no-shadowed-variable": true,
    "no-sparse-arrays": true,
    "no-string-throw": true,
    "no-switch-case-fall-through": true,
    "no-this-assignment": [
      true,
      {
        "allow-destructuring": true
      }
    ],
    "no-unsafe-finally": true,
    "no-unused-expression": [
      true,
      "allow-fast-null-checks",
      "allow-new"
    ],
    "no-unused-variable": true,
    "no-var-keyword": true,
    "no-void-expression": [
      true,
      "ignore-arrow-function-shorthand"
    ],
    "prefer-conditional-expression": [
      true,
      "check-else-if"
    ],
    "radix": true,
    "restrict-plus-operands": true,
    "switch-default": true,
    "triple-equals": true,
    "use-isnan": true,
    "cyclomatic-complexity": [
      true,
      20
    ],
    "deprecation": true,
    "eofline": true,
    "indent": [
      true,
      "spaces",
      2
    ],
    "linebreak-style": [
      true,
      "LF"
    ],
    "max-classes-per-file": [
      true,
      1
    ],
    "max-file-line-count": false,
    "max-line-length": [
      true,
      120
    ],
    "no-default-export": true,
    "no-duplicate-imports": true,
    "object-literal-sort-keys": [
      true,
      "ignore-case"
    ],
    "align": [
      true,
      "parameters",
      "arguments",
      "statements",
      "members",
      "elements"
    ],
    "array-type": [
      true,
      "array"
    ],
    "arrow-parens": [
      true,
      "ban-single-arg-parens"
    ],
    "arrow-return-shorthand": true,
    "binary-expression-operand-order": true,
    "callable-types": true,
    "class-name": true,
    "encoding": true,
    "import-spacing": true,
    "interface-over-type-literal": true,
    "newline-before-return": true,
    "new-parens": true,
    "no-consecutive-blank-lines": [
      true,
      1
    ],
    "no-irregular-whitespace": true,
    "no-reference-import": true,
    "no-trailing-whitespace": [
      true,
      "ignore-template-strings"
    ],
    "no-unnecessary-initializer": true,
    "no-unnecessary-qualifier": true,
    "number-literal-format": true,
    "object-literal-key-quotes": [
      true,
      "as-needed"
    ],
    "one-line": [
      true,
      "check-catch",
      "check-finally",
      "check-else",
      "check-open-brace",
      "check-whitespace"
    ],
    "one-variable-per-declaration": [
      true,
      "ignore-for-loop"
    ],
    "ordered-imports": [
      true,
      {
        "import-sources-order": "case-insensitive",
        "named-imports-order": "case-insensitive"
      }
    ],
    "prefer-method-signature": true,
    "prefer-switch": true,
    "prefer-template": [
      true,
      "allow-single-concat"
    ],
    "quotemark": [
      true,
      "single",
      "avoid-escape"
    ],
    "semicolon": [
      true,
      "always"
    ],
    "space-before-function-paren": [
      true,
      "never"
    ],
    "space-within-parens": 0,
    "switch-final-break": true,
    "type-literal-delimiter": true,
    "variable-name": [
      true,
      "check-format",
      "allow-leading-underscore"
    ],
    "whitespace": [
      true,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-separator",
      "check-rest-spread",
      "check type",
      "check-type-operator",
      "check-preblock"
    ]
  }
}
