{
    "env": {
        "browser": true,
        "es2021": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/recommended"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 13,
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint"
    ],
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        "no-multiple-empty-lines": [
            "error", {
                "max": 1,
                "maxBOF": 0
            }
        ],
        "object-curly-spacing": [
            "error",
            "always"
        ],
        "space-before-function-paren": [
            "error", {
                "anonymous": "never",
                "named": "never",
                "asyncArrow": "always"
            }],
        "sort-imports": ["error", {
            "ignoreCase": true,
            "ignoreDeclarationSort": true
        }],
        "@typescript-eslint/ban-types": [
            "error", {
                "types": {
                    "{}": false
                }
            }
        ],
        "@typescript-eslint/no-explicit-any": "off"
    },
    "overrides": [
        {
            "files": ["*.json"],
            "rules": {
                "quotes": [
                    "error",
                    "double"
                ],
                "semi": [
                    "error",
                    "never"
                ]
            }
        }
    ]
}
