{
    "rules": {
        "adjacent-overload-signatures": true,
        "ban-types": {
            "options": [
                ["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`?"]
            ]
        },
        "ban-ts-ignore": true,
        "member-access": {
            "options": ["check-accessor", "check-constructor", "check-parameter-property"]
        },
        "member-ordering": {
            "options": {
                "order": "statics-first",
                "alphabetize": true
            }
        },
        "no-any": true,
        "no-empty-interface": true,
        "no-for-in": true,
        "no-import-side-effect": true,
        "no-inferrable-types": { "options": ["ignore-params"] },
        "no-internal-module": true,
        "no-magic-numbers": true,
        "no-namespace": true,
        "no-non-null-assertion": true,
        "no-reference": true,
        "no-restricted-globals": true,
        "no-this-assignment": true,
        "no-var-requires": true,
        "only-arrow-functions": true,
        "prefer-for-of": true,
        "prefer-readonly": true,
        "promise-function-async": true,
        "typedef": {
            "options": [
                "call-signature",
                "parameter",
                "property-declaration"
            ]
        },
        "typedef-whitespace": {
            "options": [
                {
                    "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"
                }
            ]
        },
        "unified-signatures": true,
        "await-promise": true,
        "ban-comma-operator": true,
        "curly": true,
        "forin": true,
        "function-constructor": true,
        "label-position": true,
        "no-arg": true,
        "no-async-without-await": true,
        "no-bitwise": true,
        "no-conditional-assignment": true,
        "no-console": true,
        "no-construct": true,
        "no-debugger": true,
        "no-duplicate-super": true,
        "no-duplicate-switch-case": true,
        "no-duplicate-variable": { "options": ["check-parameters"] },
        "no-dynamic-delete": true,
        "no-empty": true,
        "no-eval": true,
        "no-floating-promises": true,
        "no-for-in-array": true,
        "no-implicit-dependencies": true,
        "no-inferred-empty-object-type": true,
        "no-invalid-template-strings": true,
        "no-misused-new": true,
        "no-null-keyword": true,
        "no-null-undefined-union": true,
        "no-object-literal-type-assertion": true,
        "no-promise-as-boolean": true,
        "no-return-await": true,
        "no-shadowed-variable": true,
        "no-string-literal": true,
        "no-string-throw": true,
        "no-sparse-arrays": true,
        "no-submodule-imports": true,
        "no-tautology-expression": true,
        "no-unbound-method": true,
        "no-unnecessary-class": { "options": ["allow-empty-class", "allow-static-only"] },
        "no-unsafe-any": false,
        "no-unsafe-finally": true,
        "no-unused-expression": true,
        "no-var-keyword": true,
        "no-void-expression": true,
        "prefer-conditional-expression": true,
        "radix": true,
        "restrict-plus-operands": true,
        "static-this": true,
        "strict-boolean-expressions": true,
        "strict-string-expressions": true,
        "strict-comparisons": true,
        "strict-type-predicates": true,
        "switch-default": true,
        "triple-equals": true,
        "unnecessary-constructor": true,
        "use-default-type-parameter": true,
        "use-isnan": true,
        "cyclomatic-complexity": true,
        "eofline": true,
        "indent": { "options": ["spaces"] },
        "invalid-void": true,
        "linebreak-style": { "options": "LF" },
        "max-classes-per-file": { "options": 1 },
        "max-file-line-count": { "options": 1000 },
        "max-line-length": {
            "options": { "limit": 120 }
        },
        "no-default-export": true,
        "no-default-import": true,
        "no-duplicate-imports": true,
        "no-irregular-whitespace": true,
        "no-mergeable-namespace": true,
        "no-parameter-reassignment": true,
        "no-require-imports": true,
        "no-trailing-whitespace": true,
        "object-literal-sort-keys": true,
        "prefer-const": true,
        "trailing-comma": {
            "options": {
                "esSpecCompliant": true,
                "multiline": "always",
                "singleline": "never"
            }
        },
        "align": {
            "options": ["parameters", "arguments", "statements", "elements", "members"]
        },
        "array-type": { "options": "array-simple" },
        "arrow-parens": true,
        "arrow-return-shorthand": { "options": "multiline" },
        "binary-expression-operand-order": true,
        "callable-types": true,
        "class-name": true,
        "comment-format": { "options": ["check-space", "check-uppercase"] },
        "comment-type": { "options": ["singleline", "multiline", "doc", "directive"] },
        "completed-docs": [
            true,
            {
              "enums": true,
              "methods": {"locations": "all", "privacies": ["public", "protected"]},
              "properties": {"locations": "all", "privacies": ["public", "protected"]}
            }
          ],
        "deprecation": true,
        "encoding": true,
        "file-name-casing": { "options": "camel-case" },
        "import-spacing": true,
        "increment-decrement": true,
        "interface-name": true,
        "interface-over-type-literal": true,
        "jsdoc-format": { "options": "check-multiline-start" },
        "match-default-export-name": true,
        "new-parens": true,
        "newline-before-return": true,
        "newline-per-chained-call": true,
        "no-angle-bracket-type-assertion": true,
        "no-boolean-literal-compare": true,
        "no-consecutive-blank-lines": true,
        "no-parameter-properties": true,
        "no-redundant-jsdoc": true,
        "no-reference-import": true,
        "no-unnecessary-callback-wrapper": true,
        "no-unnecessary-initializer": true,
        "no-unnecessary-qualifier": true,
        "no-unnecessary-type-assertion": true,
        "number-literal-format": true,
        "object-literal-key-quotes": { "options": "consistent-as-needed" },
        "object-literal-shorthand": true,
        "one-line": {
            "options": [
                "check-catch",
                "check-else",
                "check-finally",
                "check-open-brace",
                "check-whitespace"
            ]
        },
        "one-variable-per-declaration": true,
        "ordered-imports": {
            "options": {
                "grouped-imports": true,
                "import-sources-order": "case-insensitive",
                "named-imports-order": "case-insensitive",
                "module-source-path": "full"
            }
        },
        "prefer-function-over-method": true,
        "prefer-method-signature": true,
        "prefer-object-spread": true,
        "prefer-switch": true,
        "prefer-template": true,
        "prefer-while": true,
        "quotemark": {
            "options": ["double", "avoid-escape", "avoid-template"]
        },
        "return-undefined": true,
        "semicolon": { "options": ["always"] },
        "space-before-function-paren": {
            "options": {
                "anonymous": "never",
                "asyncArrow": "always",
                "constructor": "never",
                "method": "never",
                "named": "never"
            }
        },
        "space-within-parens": { "options": 0 },
        "switch-final-break": true,
        "type-literal-delimiter": true,
        "unnecessary-bind": true,
        "unnecessary-else": true,
        "variable-name": { "options": ["ban-keywords", "check-format", "require-const-for-all-caps"] },
        "whitespace": {
            "options": [
                "check-branch",
                "check-decl",
                "check-operator",
                "check-module",
                "check-separator",
                "check-type",
                "check-typecast",
                "check-preblock",
                "check-type-operator",
                "check-rest-spread"
            ]
        }
    }
}
