{
  "files": {
    "includes": [
      "**/*.ts",
      "**/*.tsx",
      "!npm_modules",
      "!**/dist",
      "!**/protobufs",
      "!**/.*",
      "!npm",
      "**/*.json",
      "!**/locales/*-*/*.json",
      "!**/packages/ui/"
    ],
    "ignoreUnknown": false
  },
  "formatter": {
    "enabled": true,
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 80,
    "attributePosition": "auto"
  },
  "linter": {
    "enabled": true,
    "includes": ["**", "!test/**", "!**/dist/**"],
    "rules": {
      "recommended": true,
      "suspicious": {
        "noExplicitAny": "error",
        "noDebugger": "error"
      },
      "style": {
        "useBlockStatements": "error",
        "useSingleVarDeclarator": "off"
      },
      "correctness": {
        "noUnusedVariables": "error",
        "noUnusedImports": "error",
        "useImportExtensions": "error"
      }
    }
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "double",
      "semicolons": "always"
    }
  },
  "json": {
    "formatter": {
      "enabled": true
    }
  },
  "overrides": [
    {
      "includes": [
        "**/*.test.ts",
        "**/*.test.tsx",
        "**/__tests__/**/*.{ts,tsx}"
      ],
      "linter": {
        "rules": {
          "suspicious": {
            "noExplicitAny": "off"
          },
          "style": {
            "noNonNullAssertion": "off"
          }
        }
      }
    }
  ]
}
