{
    "extends": [
        "airbnb-typescript",
        "airbnb/hooks",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "prettier"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
    "ecmaFeatures": {
        "jsx": true
    },
    "ecmaVersion": 2018,
    "project": "tsconfig.json",
    "sourceType": "module"
    },
    "plugins": [
    "eslint-plugin-import-helpers"
    ],
    "settings": {
    "react": {
        "version": "detect"
    }
    },
    "rules": {
        "no-use-before-define": "off",
        "@typescript-eslint/no-use-before-define": ["error"],
        "react/jsx-filename-extension": [ "warn", {"extensions": [".tsx"]} ],
        "import/extensions": [
            "error",
            "ignorePackages",
            {
            "ts": "never",
            "tsx": "never"
            }
        ],
        "no-shadow": "off",
        "@typescript-eslint/no-shadow": ["error"],
        "@typescript-eslint/explicit-function-return-type": [
            "error",
            {
                "allowTypedFunctionExpressions": true 
            }
        ],
        "react-hooks/rules-of-hooks": "error",
        "react-hooks/exhaustive-deps": "warn"
    }
}
