{
  "extends": "./tslint-base.json",
  "rules": {
    "adjacent-overload-signatures": true,
    "ban-types": {
      "options": [
          ["Object", "Avoid using the `Object` type. Did you mean `object`?"],
          ["Function", "Avoid using the `Function` type. Prefer a specific function type, like `() => void`."],
          ["Boolean", "Avoid using the `Boolean` type. Did you mean `boolean`?"],
          ["Number", "Avoid using the `Number` type. Did you mean `number`?"],
          ["String", "Avoid using the `String` type. Did you mean `string`?"],
          ["Symbol", "Avoid using the `Symbol` type. Did you mean `symbol`?"]
      ]
    },
    "align": [true, "statements"],
    "array-type": [true, "array"],
    "arrow-parens": false,
    "arrow-return-shorthand": [true],
    "await-promise": true,
    "class-name": true,
    "comment-format": [
      true,
      "check-space",
      "check-lowercase"
    ],
    "curly": true,
    "cyclomatic-complexity": [true, 6],
    "deprecation": {
      "options": true,
      "severity": "warning"
    },
    "eofline": true,
    "forin": true,
    "indent": [true, "spaces"],
    "import-spacing": true,
    "interface-name": [true, "never-prefix"],
    "jsdoc-format": true,
    "label-position": true,
    "max-line-length": [true, 120],
    "member-access": true,
    "member-ordering": [true, {"order": [
      "static-field",
      "static-method",
      "instance-field",
      "constructor",
      "instance-method"
    ]}],
    "new-parens": true,
    "no-angle-bracket-type-assertion": true,
    "no-any": false,
    "no-arg": true,
    "no-bitwise": true,
    "no-conditional-assignment": true,
    "no-consecutive-blank-lines": [true, 1],
    "no-construct": true,
    "no-debugger": true,
    "no-duplicate-super": true,
    "no-empty": true,
    "no-eval": true,
    "no-floating-promises": true,
    "no-implicit-dependencies": true,
    "no-inferrable-types": [true],
    "no-internal-module": true,
    "no-misused-new": true,
    "no-object-literal-type-assertion": true,
    "no-parameter-properties": true,
    "no-reference": true,
    "no-reference-import": true,
    "no-require-imports": false,
    "no-return-await": true,
    "no-shadowed-variable": false,
    "no-string-throw": true,
    "no-switch-case-fall-through": false,
    "no-trailing-whitespace": [true, "ignore-comments", "ignore-jsdoc", "ignore-template-strings"],
    "no-unnecessary-type-assertion": true,
    "no-unused-expression": true,
    "no-var-keyword": true,
    "no-var-requires": true,
    "number-literal-format": true,
    "object-literal-key-quotes": [true, "as-needed"],
    "object-literal-shorthand": true,
    "one-line": [true,
      "check-catch",
      "check-else",
      "check-finally",
      "check-open-brace",
      "check-whitespace"
    ],
    "one-variable-per-declaration": [true,
      "ignore-for-loop"
    ],
    "ordered-imports": [true, {
      "import-sources-order": "case-insensitive",
      "named-imports-order": "any"
    }],
    "prefer-const": true,
    "prefer-for-of": true,
    "prefer-method-signature": true,
    "prefer-template": [true, "allow-single-concat"],
    "prefer-readonly": true,
    "promise-function-async": true,
    "quotemark": [
      true,
      "single",
      "jsx-double",
      "avoid-escape"
    ],
    "radix": true,
    "semicolon": [true, "always"],
    "space-before-function-paren": [true, "never"],
    "trailing-comma": [true,
        {
            "multiline": "never",
            "singleline": "never"
        }
    ],
    "triple-equals": [true],
    "typedef": [
      true,
      "call-signature",
      "property-declaration"
    ],
    "typedef-whitespace": [
      true,
      {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      },
      {
        "call-signature": "onespace",
        "index-signature": "onespace",
        "parameter": "onespace",
        "property-declaration": "onespace",
        "variable-declaration": "onespace"
      }
    ],
    "unified-signatures": false,
    "use-isnan": true,
    "whitespace": [
      true,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-separator",
      "check-type",
      "check-typecast"
    ]
  }
}
