{
    "rulesDirectory": ["rules"],
    "rules": {
        "class-members-name": [
            true,
            {
                "formatRules": [{ "kind": "property", "format": "camel-case", "allowedPrefixes": ["_"] }],
                "ignoreParentSuffixes": ["Dto"]
            }
        ],
        "const-variable-name": [true, "only-primitives"],
        "exported-namespace-members": true,
        "type-parameter-name": true,
        "backing-field": true,
        "no-redundant-jsdoc": true,
        "align": [true, "parameters", "statements"],
        "class-name": true,
        "comment-format": [false],
        "curly": true,
        "eofline": true,
        "forin": true,
        "indent": [true, "spaces"],
        "interface-name": [true, "never-prefix"],
        "jsdoc-format": true,
        "max-line-length": [true, 140],
        "no-construct": true,
        "no-debugger": true,
        "no-duplicate-variable": true,
        "no-duplicate-super": true,
        "prefer-const": [
            true,
            {
                "destructuring": "all"
            }
        ],
        "semicolon": [true, "always", "ignore-bound-class-methods"],
        "prefer-template": [true, "allow-single-concat"],
        "no-invalid-this": true,
        "no-eval": true,
        "no-internal-module": true,
        "no-require-imports": true,
        "no-trailing-whitespace": true,
        "import-spacing": true,
        "no-default-export": true,
        "no-var-keyword": true,
        "no-unnecessary-type-assertion": true,
        "space-before-function-paren": [
            true,
            {
                "asyncArrow": "always",
                "named": "never",
                "anonymous": "never",
                "method": "never",
                "constructor": "never"
            }
        ],
        "no-angle-bracket-type-assertion": true,
        "no-empty-interface": true,
        "return-undefined": true,
        "no-sparse-arrays": true,
        "await-promise": true,
        "promise-function-async": true,
        "label-position": true,
        "array-type": [true, "array-simple"],
        "arrow-return-shorthand": [true, "multiline"],
        "only-arrow-functions": [true, "allow-declarations", "allow-named-functions"],
        "one-line": [true, "check-catch", "check-finally", "check-else", "check-open-brace", "check-whitespace"],
        "member-access": [true, "check-accessor"],
        "arrow-parens": [true, "ban-single-arg-parens"],
        "no-consecutive-blank-lines": [true, 1],
        "quotemark": [true, "double", "jsx-double"],
        "no-console": [true, "log"],
        "no-empty": true,
        "no-reference": true,
        "no-shadowed-variable": true,
        "no-unused-expression": [true, "allow-new"],
        "encoding": true,
        "typedef": [true, "call-signature", "member-variable-declaration"],
        "typedef-whitespace": [
            true,
            {
                "call-signature": "nospace",
                "index-signature": "nospace",
                "parameter": "nospace",
                "property-declaration": "nospace",
                "variable-declaration": "nospace"
            }
        ],
        "triple-equals": [true, "allow-null-check"],
        "variable-name": [true, "ban-keywords", "check-format", "allow-pascal-case", "allow-leading-underscore"],
        "whitespace": [
            true,
            "check-branch",
            "check-decl",
            "check-operator",
            "check-module",
            "check-separator",
            "check-type",
            "check-typecast"
        ],
        "ban-types": [
            true,
            ["Object", "Use `{}` instead."],
            ["object", "Use `{}` instead."],
            ["Function", "Use `() => void` instead."],
            ["String", "Don't use 'String' as a type. Use 'string' instead."]
        ],
        "no-any": true
    }
}
