{
    "rules": {
        "adjacent-overload-signatures": true,
        "align": [
            true,
            "parameters",
            "statements"
        ],
        "array-type": [
            true,
            "array-simple"
        ],
        "arrow-parens": [
            true,
            "ban-single-arg-parens"
        ],
        "arrow-return-shorthand": true,
        "ban-types": [
            true,
            [
                "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`?"
            ]
        ],
        "callable-types": true,
        "class-name": true,
        "comment-format": [
            true,
            "check-space"
        ],
        "curly": true,
        "cyclomatic-complexity": true,
        "eofline": true,
        "forin": true,
        "import-spacing": true,
        "indent": [
            true,
            "spaces",
            4
        ],
        "interface-name": [
            true,
            "never-prefix"
        ],
        "interface-over-type-literal": true,
        "jsdoc-format": true,
        "label-position": true,
        "match-default-export-name": true,
        "max-classes-per-file": [
            true,
            1
        ],
        "max-line-length": [
            true,
            120
        ],
        "member-access": [
            true,
            "no-public"
        ],
        "member-ordering": [
            true,
            {
                "order": "statics-first"
            }
        ],
        "new-parens": true,
        "newline-before-return": true,
        "newline-per-chained-call": false,
        "no-angle-bracket-type-assertion": true,
        "no-any": false,
        "no-arg": true,
        "no-async-without-await": true,
        "no-bitwise": true,
        "no-conditional-assignment": true,
        "no-consecutive-blank-lines": true,
        "no-console": true,
        "no-construct": true,
        "no-debugger": true,
        "no-duplicate-imports": true,
        "no-duplicate-super": true,
        "no-empty": true,
        "no-empty-interface": true,
        "no-eval": true,
        "no-internal-module": true,
        "no-invalid-this": false,
        "no-misused-new": true,
        "no-namespace": [
            true,
            "allow-declarations"
        ],
        "no-non-null-assertion": true,
        "no-parameter-properties": false,
        "no-reference": true,
        "no-reference-import": true,
        "no-shadowed-variable": true,
        "no-string-literal": true,
        "no-string-throw": true,
        "no-switch-case-fall-through": false,
        "no-trailing-whitespace": true,
        "no-unnecessary-initializer": true,
        "no-unnecessary-type-assertion": true,
        "no-unsafe-finally": true,
        "no-unused-expression": [true, "allow-tagged-template"],
        "no-var-keyword": true,
        "no-var-requires": true,
        "object-literal-key-quotes": [
            true,
            "as-needed"
        ],
        "object-literal-shorthand": true,
        "object-literal-sort-keys": true,
        "one-line": [
            true,
            "check-catch",
            "check-else",
            "check-finally",
            "check-open-brace",
            "check-whitespace"
        ],
        "one-variable-per-declaration": [
            true,
            "ignore-for-loop"
        ],
        "only-arrow-functions": [
            true,
            "allow-declarations",
            "allow-named-functions"
        ],
        "ordered-imports": [
            true,
            {
                "grouped-imports": true,
                "import-sources-order": "lowercase-first",
                "module-source-path": "full",
                "named-imports-order": "lowercase-first"
            }
        ],
        "prefer-const": true,
        "prefer-for-of": true,
        "prefer-method-signature": true,
        "quotemark": [
            true,
            "single",
            "jsx-double",
            "avoid-escape"
        ],
        "radix": true,
        "semicolon": [
            true,
            "always",
            "strict-bound-class-methods"
        ],
        "space-before-function-paren": [
            true,
            {
                "anonymous": "never",
                "asyncArrow": "always",
                "constructor": "never",
                "method": "never",
                "named": "never"
            }
        ],
        "trailing-comma": [
            true,
            {
                "multiline": {
                    "arrays": "always",
                    "functions": "never",
                    "objects": "always",
                    "typeLiterals": "always"
                },
                "singleline": "never",
                "esSpecCompliant": true
            }
        ],
        "triple-equals": [
            true,
            "allow-null-check"
        ],
        "type-literal-delimiter": {
            "singleLine": "always"
        },
        "typedef": false,
        "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"
            }
        ],
        "typeof-compare": false,
        "unified-signatures": true,
        "use-isnan": true,
        "variable-name": [
            true,
            "ban-keywords",
            "check-format",
            "allow-leading-underscore",
            "allow-pascal-case"
        ],
        "whitespace": [
            true,
            "check-branch",
            "check-decl",
            "check-operator",
            "check-module",
            "check-separator",
            "check-rest-spread",
            "check-type",
            "check-typecast",
            "check-type-operator",
            "check-preblock"
        ]
    },
    "linterOptions": {
        "exclude": [
            "/**/*.json"
        ]
    }
}
