{
  "rules": {
    "member-access": [true, "check-accessor", "check-constructor"],
    "member-ordering": [
      false,
      {
        "order": "fields-first"
      }
    ],
    "no-any": false,
    "no-empty-interface": false,
    "no-inferrable-types": [true, "ignore-params"],
    "no-internal-module": true,
    "no-namespace": [true, "allow-declarations"],
    "no-reference": true,
    "no-var-requires": false,
    "typedef": [true, "call-signature", "arrow-call-signature", "parameter", "arrow-parameter", "property-declaration"],
    "typedef-whitespace": [
      false,
      {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      },
      {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      }
    ],
    "unified-signatures": true,
    "ban": [true, "window", "eval"],
    "curly": true,
    "forin": true,
    "label-position": true,
    "no-arg": true,
    "no-bitwise": true,
    "no-conditional-assignment": true,
    "no-console": [false, "debug", "info", "time", "timeEnd", "trace"],
    "no-construct": true,
    "no-debugger": true,
    "no-duplicate-variable": true,
    "no-empty": [true, "allow-empty-catch"],
    "no-eval": true,
    "no-invalid-this": true,
    "no-null-keyword": true,
    "no-shadowed-variable": true,
    "no-string-literal": false,
    "no-string-throw": true,
    "no-switch-case-fall-through": true,
    "no-unsafe-finally": true,
    "no-unused-expression": true,
    "no-var-keyword": true,
    "radix": true,
    "switch-default": true,
    "triple-equals": true,
    "use-isnan": true,
    "cyclomatic-complexity": [true, 20],
    "no-default-export": true,
    "no-mergeable-namespace": true,
    "no-require-imports": false,
    "object-literal-sort-keys": false,
    "align": [false, "arguments", "statements", "parameters"],
    "callable-types": true,
    "class-name": true,
    "comment-format": [true, "check-space"],
    "file-header": false,
    "interface-name": [false, "never-prefix"],
    "interface-over-type-literal": true,
    "jsdoc-format": true,
    "no-angle-bracket-type-assertion": false,
    "no-parameter-properties": false,
    "object-literal-shorthand": false,
    "one-variable-per-declaration": true,
    "variable-name": [true, "check-format", "allow-leading-underscore", "allow-trailing-underscore", "ban-keywords"],
    "whitespace": [
      false,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-module",
      "check-separator",
      "check-type",
      "check-typecast"
    ],
    "prefer-const": [
      true,
      {
        "destructuring": "all"
      }
    ],
    "no-magic-numbers": false,
    "import-blacklist": [true, "@angular/material", "lodash", "rxjs/internal", "rxjs/index", "rxjs/Rx", "lodash-es"],
    "ordered-imports": false,
    "max-classes-per-file": false, // [true, 1],
    "prefer-for-of": true,
    "array-type": false, // [true, "array"]
    "adjacent-overload-signatures": true,

    // TSlint rules that require type info
    "no-inferred-empty-object-type": true,
    "no-void-expression": false,
    "no-for-in-array": true,
    "restrict-plus-operands": true
    //  "strict-boolean-expressions": true,
    //	"promise-function-async": true,
    //	"completed-docs": true,
    //  "no-use-before-declare": true, // only useful when using the var keyword
    //  "no-unused-variable": true,
  }
}
