{
  "rules": {
    "adjacent-overload-signatures": true,
    "ban-types": [true],
    "member-access": [true, "no-public"],
    "member-ordering": [
      true, {
        "order": "fields-first"
      }
    ],
    "no-any": true,
    "no-empty-interface": true,
    "no-import-side-effect": false,
    "no-inferrable-types": true,
    "no-internal-module": true,
    "no-magic-numbers": false,
    "no-namespace": true,
    "no-non-null-assertion": true,
    "no-parameter-reassignment": true,
    "no-reference": true,
    "no-unnecessary-type-assertion": true,
    "no-var-requires": true,
    "only-arrow-functions": [
      true, "allow-declarations", "allow-named-functions"
    ],
    "prefer-for-of": false,
    "promise-function-async": false,
    "typedef": [true],
    "typedef-whitespace": [
      true, {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      }
    ],
    "unified-signatures": true,

    "await-promise": true,
    "ban": [true, "fit", "fdescribe", "xit", "xdescribe"],
    "curly": true,
    "forin": true,
    "import-blacklist": [true, "rxjs", "rxjs/Rx", "lodash"],
    "label-position": true,
    "no-arg": true,
    "no-bitwise": true,
    "no-conditional-assignment": true,
    "no-console": true,
    "no-construct": true,
    "no-debugger": true,
    "no-duplicate-super": true,
    "no-duplicate-variable": true,
    "no-empty": true,
    "no-eval": true,
    "no-floating-promises": true,
    "no-for-in-array": true,
    "no-inferred-empty-object-type": true,
    "no-invalid-template-strings": true,
    "no-invalid-this": true,
    "no-misused-new": true,
    "no-null-keyword": false,
    "no-object-literal-type-assertion": true,
    "no-shadowed-variable": true,
    "no-sparse-arrays": true,
    "no-string-literal": true,
    "no-string-throw": true,
    "no-submodule-imports": false,
    "no-switch-case-fall-through": true,
    "no-this-assignment": true,
    "no-unbound-method": true,
    "no-unsafe-any": false,
    "no-unsafe-finally": true,
    "no-unused-expression": true,
    "no-unused-variable": [true],
    "no-use-before-declare": true,
    "no-var-keyword": true,
    "no-void-expression": true,
    "prefer-conditional-expression": true,
    "prefer-object-spread": false,
    "radix": true,
    "restrict-plus-operands": true,
    "strict-boolean-expressions": false,
    "strict-type-predicates": false,
    "switch-default": true,
    "triple-equals": [true, "allow-null-check"],
    "use-default-type-parameter": true,
    "use-isnan": true,
    "cyclomatic-complexity": true,
    "deprecation": true,
    "eofline": true,
    "indent": [true, "spaces"],
    "linebreak-style": [true, "LF"],
    "max-classes-per-file": [true, 1],
    "max-line-length": [true, 120],
    "no-default-export": true,
    "no-duplicate-imports": true,
    "no-mergeable-namespace": true,
    "no-require-imports": false,
    "object-literal-sort-keys": false,
    "prefer-const": true,
    "trailing-comma": [
      true, {
        "multiline": "never",
        "singleline": "never"
      }
    ],

    "align": [true, "parameters", "statements"],
    "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,
    "comment-format": [true, "check-space"],
    "completed-docs": false,
    "encoding": true,
    "file-header": false,
    "import-spacing": true,
    "interface-name": [true, "never-prefix"],
    "interface-over-type-literal": true,
    "jsdoc-format": true,
    "match-default-export-name": true,
    "newline-before-return": true,
    "new-parens": true,
    "no-angle-bracket-type-assertion": true,
    "no-boolean-literal-compare": true,
    "no-consecutive-blank-lines": [true, 2],
    "no-irregular-whitespace": true,
    "no-parameter-properties": false,
    "no-reference-import": true,
    "no-trailing-whitespace": true,
    "no-unnecessary-callback-wrapper": true,
    "no-unnecessary-initializer": true,
    "no-unnecessary-qualifier": true,
    "number-literal-format": true,
    "object-literal-key-quotes": [true, "as-needed"],
    "object-literal-shorthand": true,
    "one-line": [
      true, "check-catch", "check-finally", "check-else", "check-open-brace", "check-whitespace"
    ],
    "one-variable-per-declaration": true,
    "ordered-imports": false,
    "prefer-function-over-method": [true, "allow-public", "allow-protected"],
    "prefer-method-signature": true,
    "prefer-switch": true,
    "prefer-template": true,
    "quotemark": [true, "single"],
    "return-undefined": true,
    "semicolon": [true, "always"],
    "space-before-function-paren": [true, "never"],
    "space-within-parens": 0,
    "switch-final-break": true,
    "type-literal-delimiter": true,
    "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"],
    "whitespace": [
      true, "check-branch", "check-decl", "check-operator", "check-module",
      "check-separator", "check-type", "check-typecast", "check-preblock"
    ],

    "max-file-line-count": [true, 300],

    "ban-comma-operator": true,
    "no-duplicate-switch-case": true,
    "no-implicit-dependencies": true,
    "no-redundant-jsdoc":true,
    "no-return-await": true,
    "no-unnecessary-class": ["allow-empty-class", "allow-static-only"],
    "newline-per-chained-call": true,
    "no-dynamic-delete": true,
    "prefer-readonly": true,
    "prefer-while": true,
    "typeof-compare": false
  }
}
