{
  "extends": [
    "tslint-eslint-rules",
    "tslint-microsoft-contrib"
  ],
  "rules": {
    "adjacent-overload-signatures": true,
    "align": [
      true,
      "parameters",
      "statements"
    ],
    "array-bracket-spacing": [true, "never"],
    "arrow-return-shorthand": true,
    "ban": [
      true,
      [ "_", "forEach" ],
      [ "_", "each" ],
      [ "$", "each" ],
      [ "angular", "forEach" ]
    ],
    "ban-comma-operator": true,
    "binary-expression-operand-order": true,
    "block-spacing": [true, "always"],
    "brace-style": [true, "1tbs"],
    "callable-types": true,
    "class-name": true,
    "comment-format": [
      true,
      "check-space",
      "check-lowercase"
    ],
    "completed-docs": false,
    "curly": true,
    "cyclomatic-complexity": [true, 10],
    "eofline": true,
    "export-name": false,
    "forin": true,
    "function-name": [true, {
      "method-regex": "^[a-z][\\w\\d]+$",
      "private-method-regex": "^[a-z][\\w\\d]+$",
      "protected-method-regex": "^[a-z][\\w\\d]+$",
      "static-method-regex": "^[a-z][\\w\\d]+$",
      "function-regex": "^[a-zA-Z][\\w\\d]+$"
    }],
    "indent": [
      true,
      "spaces"
    ],
    "insecure-random": false,
    "interface-name": [
      true,
      "always-prefix"
    ],
    "interface-over-type-literal": true,
    "import-name": false,
    "import-spacing": true,
    "jsdoc-format": true,
    "label-position": true,
    "max-classes-per-file": [true, 1],
    "max-func-body-length": [true, 200],
    "max-line-length": false,
    "member-access": [true],
    "member-ordering": [
      true,
      { "order": "fields-first" }
    ],
    "missing-jsdoc": false,
    "newline-before-return": true,
    "new-parens": true,
    "newline-per-chained-call": false,
    "no-angle-bracket-type-assertion": false,
    "no-any": false,
    "no-arg": true,
    "no-banned-terms": false,
    "no-bitwise": true,
    "no-conditional-assignment": true,
    "no-consecutive-blank-lines": true,
    "no-console": [
      true,
      "debug",
      "info",
      "time",
      "timeEnd",
      "trace"
    ],
    "no-constant-condition": true,
    "no-construct": true,
    "no-control-regex": true,
    "no-debugger": true,
    "no-default-export": true,
    "no-duplicate-case": true,
    "no-duplicate-super": true,
    "no-duplicate-switch-case": true,
    "no-duplicate-variable": true,
    "no-dynamic-delete": true,
    "no-empty": false,
    "no-empty-character-class": true,
    "no-empty-interface": true,
    "no-empty-line-after-opening-brace": true,
    "no-eval": false,
    "no-ex-assign": true,
    "no-extra-boolean-cast": true,
    "no-extra-semi": true,
    "no-import-side-effect": false,
    "no-inferrable-types": false,
    "no-inner-declarations": [true, "both"],
    "no-implicit-dependencies": false,
    "no-increment-decrement": false,
    "no-internal-module": true,
    "no-invalid-regexp": true,
    "no-invalid-this": true,
    "no-misused-new": true,
    "no-multi-spaces": [true],
    "no-multiline-string": false,
    "no-namespace": true,
    "no-null-keyword": false,
    "no-parameter-properties": true,
    "no-parameter-reassignment": false,
    "no-redundant-jsdoc": false,
    "no-reference": true,
    "no-reference-import": true,
    "no-regex-spaces": true,
    "no-relative-imports": false,
    "no-require-imports": true,
    "no-reserved-keywords": false,
    "no-shadowed-variable": true,
    "no-string-literal": true,
    "no-string-throw": true,
    "no-submodule-imports": true,
    "no-switch-case-fall-through": false,
    "no-trailing-whitespace": [true, "ignore-blank-lines"],
    "no-typeof-undefined": true,
    "no-unnecessary-callback-wrapper": true,
    "no-unnecessary-class": [true, "allow-static-only"],
    "no-unnecessary-initializer": true,
    "no-unnecessary-field-initialization": true,
    "no-unnecessary-local-variable": false,
    "no-unexpected-multiline": true,
    "no-unsafe-any": false,
    "no-unsafe-finally": true,
    "no-unused-expression": true,
    "no-use-before-declare": true,
    "no-useless-files": true,
    "no-var-keyword": true,
    "no-var-requires": true,
    "non-literal-require": false,
    "max-file-line-count": [true, 500],
    "object-curly-spacing": [true, "always"],
    "object-literal-sort-keys": false,
    "one-line": [
      true,
      "check-open-brace",
      "check-catch",
      "check-else",
      "check-finally",
      "check-whitespace"
    ],
    "one-variable-per-declaration": true,
    "only-arrow-functions": [true, "allow-declarations"],
    "ordered-imports": [
      true,
      {
        "import-sources-order": "any",
        "grouped-imports": true,
        "named-imports-order": "case-insensitive"
      }
    ],
    "prefer-const": true,
    "prefer-object-spread": false,
    "prefer-method-signature": true,
    "prefer-readonly": true,
    "prefer-template": true,
    "prefer-while": true,
    "quotemark": false,
    "radix": true,
    "semicolon": [true, "always"],
    "space-before-function-paren": true,
    "space-in-parens": [true, "never"],
    "strict-boolean-expressions": false,
    "switch-default": false,
    "ter-arrow-parens": true,
    "ter-func-call-spacing": [true, "never"],
    "ter-indent": [
      true,
      4,
      {
        "ArrayExpression": 1,
        "CallExpression": { "arguments": "first" },
        "FunctionDeclaration": { "body": 1, "parameters": 1 },
        "FunctionExpression": { "body": 1, "parameters": 1 },
        "MemberExpression": 1,
        "ObjectExpression": 1,
        "outerIIFEBody": 1,
        "SwitchCase": 1,
        "VariableDeclarator": 1
      }
    ],
    "ter-no-irregular-whitespace": [true],
    "ter-no-proto": true,
    "ter-no-self-compare": true,
    "ter-no-sparse-arrays": [true],
    "trailing-comma": false,
    "triple-equals": [
      true,
      "allow-null-check",
      "allow-undefined-check"
    ],
    "typedef": [
      true,
      "call-signature",
      "parameter",
      "arrow-parameter",
      "property-declaration",
      "variable-declaration",
      "member-variable-declaration"
    ],
    "typedef-whitespace": [
      true,
      {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      },
      {
        "call-signature": "space",
        "index-signature": "space",
        "parameter": "space",
        "property-declaration": "space",
        "variable-declaration": "space"
      }
    ],
    "unified-signatures": true,
    "use-isnan": true,
    "valid-jsdoc": [false, {
      "requireReturn": false,
      "requireParamDescription": false,
      "requireReturnDescription": false
    }],
    "valid-typeof": true,
    "variable-name": false,
    "whitespace": [
      true,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-separator",
      "check-type",
      "check-type-operator",
      "check-rest-spread"
    ]
  }
}