{
    "extends": ["tslint:latest", "tslint-react", "tslint-eslint-rules"],
    "rules": {
        "adjacent-overload-signatures": true,
        "arrow-parens": [true, "ban-single-arg-parens"],
        "arrow-return-shorthand": true,
        "async-suffix": true,
        "await-promise": true,
        "binary-expression-operand-order": true,
        "boolean-naming": true,
        "callable-types": true,
        "class-name": true,
        "completed-docs": [
            true,
            {
                "functions": {
                    "visibilities": ["exported"]
                },
                "methods": {
                    "locations": "instance",
                    "privacies": ["public", "protected"]
                }
            }
        ],
        "curly": true,
        "custom-no-magic-numbers": [true, 0, 1, 2, 3, -1],
        "encoding": true,
        "enum-naming": true,
        "eofline": true,
        "import-spacing": true,
        "indent": [true, "spaces", 4],
        "interface-name": false,
        "interface-over-type-literal": true,
        "jsx-alignment": true,
        "jsx-boolean-value": true,
        "jsx-curly-spacing": [true, "never"],
        "jsx-no-bind": false,
        "jsx-no-lambda": true,
        "jsx-no-multiline-js": false,
        "jsx-no-string-ref": true,
        "jsx-self-close": true,
        "jsx-wrap-multiline": false,
        "linebreak-style": [true, "LF"],
        "max-classes-per-file": [true, 1],
        "max-file-line-count": [true, 500],
        "max-line-length": false,
        "member-access": true,
        "member-ordering": [true, "public-before-private", "static-before-instance", "variables-before-functions"],
        "new-parens": true,
        "newline-before-return": false,
        "no-angle-bracket-type-assertion": true,
        "no-boolean-literal-compare": true,
        "no-debugger": true,
        "no-default-export": true,
        "no-duplicate-super": true,
        "no-duplicate-switch-case": true,
        "no-duplicate-variable": true,
        "no-empty-interface": false,
        "no-eval": true,
        "no-floating-promises": true,
        "no-implicit-dependencies": [true, "dev"],
        "no-inferred-empty-object-type": true,
        "no-invalid-template-strings": true,
        "no-invalid-this": true,
        "no-lodash-isnull": true,
        "no-lodash-isundefined": true,
        "no-misused-new": true,
        "no-non-null-assertion": true,
        "no-parameter-reassignment": true,
        "no-redundant-jsdoc": true,
        "no-return-await": 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": false,
        "no-unbound-method": true,
        "no-unnecessary-class": true,
        "no-unnecessary-type-assertion": true,
        "no-unused-variable": true,
        "no-unsafe-finally": true,
        "number-literal-format": true,
        "object-literal-key-quotes": false,
        "object-literal-sort-keys": false,
        "ordered-imports": [
            true,
            {
                "grouped-imports": true
            }
        ],
        "prefer-const": true,
        "prefer-for-of": true,
        "prefer-function-over-method": true,
        "prefer-object-spread": true,
        "prefer-readonly": true,
        "prefer-template": true,
        "promise-function-async": true,
        "quotemark": [true, "single", "avoid-escape", "jsx-double"],
        "restrict-plus-operands": true,
        "semicolon": [true, "always"],
        "space-before-function-paren": [
            true,
            {
                "anonymous": "never",
                "asyncArrow": "always",
                "constructor": "never",
                "method": "never",
                "named": "never"
            }
        ],
        "space-within-parens": false,
        "switch-default": true,
        "type-literal-delimiter": true,
        "typedef": [true, "call-signature", "parameter", "property-declaration"],
        "underscore-private-and-protected": true,
        "variable-name": [true, "ban-keywords", "allow-pascal-case"],
        "whitespace": [
            true,
            "check-branch",
            "check-decl",
            "check-operator",
            "check-separator",
            "check-rest-spread",
            "check-type",
            "check-typecast",
            "check-preblock"
        ]
    },
    "rulesDirectory": "lib/rules"
}
