{
    "env": {
        "browser": true,
        "node": true
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "project": ["tsconfig.json", "tsconfig.commonjs.json"],
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint"
    ],
    "rules": {
        "@typescript-eslint/ban-types": "off",
        "@typescript-eslint/class-name-casing": "off",
        "indent": "off",
        "@typescript-eslint/indent": [
            "error",
            4
        ],
        "@typescript-eslint/member-delimiter-style": [
            "off",
            {
                "multiline": {
                    "delimiter": "none",
                    "requireLast": true
                },
                "singleline": {
                    "delimiter": "semi",
                    "requireLast": false
                }
            }
        ],
        "@typescript-eslint/prefer-namespace-keyword": "warn",
        "@typescript-eslint/quotes": [
            "error",
            "single",
            {
                "avoidEscape": true,
                "allowTemplateLiterals": true
            }
        ],
        "@typescript-eslint/semi": [
            "off",
            null
        ],
        "@typescript-eslint/type-annotation-spacing": "error",
        "arrow-parens": [
            "off",
            "as-needed"
        ],
        "brace-style": "off",
        "@typescript-eslint/brace-style": [
            "error",
            "1tbs", { "allowSingleLine": true }
        ],
        "comma-spacing": "off",
        "@typescript-eslint/comma-spacing": "error",
        "space-infix-ops": "error",
        "comma-dangle": "off",
        "eqeqeq": [
            "error",
            "smart"
        ],
        "import/order": "off",
        "no-eval": "warn",
        "no-new-wrappers": "warn",
        "no-trailing-spaces": "error",
        "no-unsafe-finally": "warn",
        "no-var": "error",
        "spaced-comment": "error",
        "semi": "warn"
    }
}