{
	"$schema": "https://biomejs.dev/schemas/2.2.0/schema.json",
	"vcs": {
		"enabled": true,
		"clientKind": "git",
		"useIgnoreFile": true,
		"defaultBranch": "main"
	},
	"files": {
		"ignoreUnknown": true,
		"includes": ["**", "!**/build", "!**/.sanity", "!**/dist", "!**/.next"]
	},
	"formatter": {
		"enabled": true,
		"indentStyle": "tab",
		"lineWidth": 140,
		"formatWithErrors": true
	},
	"assist": { "actions": { "source": { "organizeImports": "on" } } },
	"linter": {
		"enabled": true,
		"rules": {
			"recommended": true,
			"complexity": {
				"noUselessStringConcat": "error",
				"noUselessUndefinedInitialization": "error",
				"noVoid": "error",
				"useDateNow": "error"
			},
			"correctness": {
				"noConstantMathMinMaxClamp": "error",
				"noUndeclaredVariables": "error",
				"noUnusedImports": "error",
				"noUnusedFunctionParameters": "error",
				"noUnusedPrivateClassMembers": "error",
				"useExhaustiveDependencies": {
					"level": "error",
					"options": {
						"reportUnnecessaryDependencies": false
					}
				},
				"noUnusedVariables": "error"
			},
			"style": {
				"noParameterProperties": "error",
				"noYodaExpression": "error",
				"useConsistentBuiltinInstantiation": "error",
				"useFragmentSyntax": "error",
				"useShorthandAssign": "error",
				"useArrayLiterals": "error"
			},
			"suspicious": {
				"useAwait": "error",
				"noEvolvingTypes": "error"
			}
		}
	},
	"javascript": {
		"formatter": {
			"quoteStyle": "single",
			"jsxQuoteStyle": "single",
			"arrowParentheses": "asNeeded",
			"trailingCommas": "none"
		}
	},
	"overrides": [
		{
			"includes": ["**/*.jsx", "**/*.tsx"],
			"linter": {
				"rules": {
					"style": {
						"noParameterAssign": "error"
					}
				}
			}
		},
		{
			"includes": ["**/*.ts", "**/*.tsx"],
			"linter": {
				"rules": {
					"correctness": {
						"noUnusedVariables": "off"
					}
				}
			}
		}
	]
}
