{
  "rulesDirectory": ["tslint-plugin-prettier"],
  "rules": {
    "no-var-keyword": true,
    "member-access": true,
    "no-magic-numbers": [true, 0, 1, -1, 2, 10, 100, 1000, 1024],
    "no-reference": true,
    "no-var-requires": true,
    "prefer-for-of": true,
    "promise-function-async": true,
    "await-promise": true,
    "ban": [
      { "name": "encodeURI", "message": "Use encodeURIComponent instead." },
      { "name": "with", "message": "DO NOT USE with ANYWHERE." }
    ],
    "curly": true,
    "label-position": true,
    "no-console": false,
    "no-arg": true,
    "no-duplicate-super": false,
    "no-duplicate-variable": true,
    "no-empty": false,
    "no-eval": true,
    "no-empty-interface": false,
    "no-floating-promises": false,
    "no-for-in-array": true,
    "forin": false,
    "no-inferred-empty-object-type": false,
    "no-invalid-template-strings": true,
    "no-misused-new": true,
    "no-object-literal-type-assertion": true,
    "no-shadowed-variable": false,
    "no-string-literal": true,
    "no-string-throw": true,
    "no-switch-case-fall-through": true,
    "no-this-assignment": [
      true,
      { "allowed-names": ["^self$"], "allow-destructuring": true }
    ],
    "no-unbound-method": [false],
    "no-unsafe-any": false,
    "no-unsafe-finally": true,
    "no-unused-expression": [true, "allow-fast-null-checks"],
    "no-use-before-declare": false,
    "no-submodule-imports": false,
    "prefer-object-spread": true,
    "radix": true,
    "restrict-plus-operands": true,
    "switch-default": true,
    "triple-equals": true,
    "use-default-type-parameter": true,
    "use-isnan": true,
    "cyclomatic-complexity": [true, 20],
    "deprecation": true,
    "eofline": true,
    "indent": [true, "spaces", 2],
    "linebreak-style": [true, "LF"],
    "max-classes-per-file": false,
    "max-file-line-count": false,
    "max-line-length": [
      true,
      {
        "limit": 80,
        "ignore-pattern": "(^import)|(^\\s*//)|(^\\s*/*)|(['\">`][};]?$)"
      }
    ],
    "no-mergeable-namespace": true,
    "prefer-const": [true, { "destructuring": "all" }],
    "trailing-comma": [
      true,
      { "multiline": "always", "singleline": "never", "esSpecCompliant": true }
    ],
    "array-type": false,
    "arrow-return-shorthand": true,
    "class-name": true,
    "comment-format": [
      true,
      "check-space",
      "check-uppercase",
      { "ignore-words": ["TODO", "HACK"] }
    ],
    "encoding": true,
    "file-header": [true, "\\* @fileoverview.*\\n \\* @author"],
    "import-spacing": true,
    "interface-name": [true, "never-prefix"],
    "jsdoc-format": true,
    "match-default-export-name": false,
    "newline-before-return": false,
    "new-parens": true,
    "no-angle-bracket-type-assertion": true,
    "no-boolean-literal-compare": true,
    "no-reference-import": true,
    "no-duplicate-imports": true,
    "no-trailing-whitespace": [true, "ignore-comments", "ignore-jsdoc"],
    "number-literal-format": false,
    "object-literal-shorthand": true,
    "object-literal-sort-keys": false,
    "one-line": [
      "check-catch",
      "check-finally",
      "check-else",
      "check-open-brace",
      "check-whitespace"
    ],
    "one-variable-per-declaration": [true, "ignore-for-loop"],
    "prefer-function-over-method": false,
    "prefer-method-signature": true,
    "prefer-template": true,
    "quotemark": [true, "single", "jsx-double", "avoid-escape"],
    "semicolon": [true, "always", "ignore-bound-class-methods"],
    "space-before-function-paren": [true, "anonymous", "asyncArrow"],
    "switch-final-break": true,
    "type-literal-delimiter": true,
    "variable-name": [
      true,
      "ban-keywords",
      "check-format",
      "allow-leading-underscore",
      "allow-pascal-case"
    ],
    "no-implicit-dependencies": false,
    "member-ordering": [
      true,
      {
        "order": [
          "public-static-field",
          "private-static-field",
          "public-static-method",
          "private-static-method",

          "public-instance-field",
          "protected-instance-field",
          "private-instance-field",

          "constructor",

          "public-instance-method",
          "protected-instance-method",
          "private-instance-method"
        ]
      }
    ],
    "ordered-imports": [
      true,
      {
        "import-sources-order": "lowercase-first",
        "named-imports-order": "lowercase-first"
      }
    ],
    "prettier": [
      true,
      {
        "tabWidth": 2,
        "bracketSpacing": true,
        "singleQuote": true,
        "trailingComma": "all",
        "semi": true,
        "singleQuote": true,
        "printWidth": 80
      }
    ]
  },
  "extends": ["tslint:latest", "tslint-config-prettier"]
}
