{
	"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
	"assist": { "actions": { "source": { "organizeImports": "off" } } },
	"formatter": {
		"enabled": false
	},
	"linter": {
		"enabled": true,
		"rules": {
			"correctness": {
				"noConstantCondition": "warn",
				"noUnusedPrivateClassMembers": "warn",
				"noUnusedImports": "error"
			},
			"style": {
				"noParameterAssign": "off",
				"useConst": "error",
				"useConsistentBuiltinInstantiation": "error",
				"useThrowNewError": "error",
				"useThrowOnlyError": "error",
				"useAsConstAssertion": "error",
				"useDefaultParameterLast": "error",
				"useEnumInitializers": "error",
				"useSelfClosingElements": "error",
				"useSingleVarDeclarator": "error",
				"noUnusedTemplateLiteral": "error",
				"useNumberNamespace": "error",
				"noInferrableTypes": "error",
				"noUselessElse": "error",
				"noRestrictedImports": {
					"level": "error",
					"options": {
						"paths": {
							"node:buffer": "Use Uint8Array instead of Buffer"
						}
					}
				},
				"noRestrictedGlobals": {
					"level": "error",
					"options": {
						"deniedGlobals": {
							"TextDecoder": "Replace with @kayahr/text-encoding"
						}
					}
				}
			},
			"recommended": true,
			"complexity": {
				"useSimpleNumberKeys": "off", // In some files we want to use hexadecimal keys
				"noForEach": "off"
			},
			"suspicious": {
				"noEmptyBlockStatements": "error",
				"noControlCharactersInRegex": "off",
				"useErrorMessage": "error",
				"noAssignInExpressions": "off"
			},
			"nursery": {}
		}
	},
	"files": {
		"ignoreUnknown": true,
		"includes": [
			"**",
			"!coverage",
			"!yarn",
			"!lib/**/*.d.ts",
			"!lib/**/*.js",
			"!test/**/*.d.ts",
			"!test/**/*.js"
		]
	}
}
