{
    "$schema": "./node_modules/oxlint/configuration_schema.json",
    "plugins": ["jsdoc", "typescript"],
    "options": {
        "typeAware": true,
        "typeCheck": true
    },
    "categories": {
        "correctness": "error"
    },
    "env": {
        "builtin": true,
        "es2026": true,
        "browser": true,
        "mocha": true
    },
    "ignorePatterns": ["dist/", "vendor/", "*.cjs", "src/micromodal.es.js"],
    "rules": {
        "no-unused-vars": [
            "error",
            {
                "args": "none"
            }
        ],
        "jsdoc/check-access": "warn",
        "jsdoc/empty-tags": "warn",
        "jsdoc/require-param-name": "warn",
        "jsdoc/require-returns-type": "warn",
        "jsdoc/require-throws-type": "warn",
        "jsdoc/require-yields-type": "warn",
        "typescript/unbound-method": "off",
        "typescript/no-floating-promises": "error",
        "typescript/restrict-template-expressions": "error",
        "typescript/await-thenable": "error",
        "typescript/no-base-to-string": "error",
        "typescript/ban-ts-comment": "error",
        "typescript/no-empty-object-type": "error",
        "typescript/no-explicit-any": "error",
        "typescript/no-misused-promises": [
            "error",
            {
                "checksVoidReturn": {
                    "arguments": false,
                    "inheritedMethods": false
                }
            }
        ],
        "typescript/no-namespace": "error",
        "typescript/no-require-imports": "error",
        "typescript/no-unnecessary-type-assertion": "off",
        "typescript/no-unnecessary-type-constraint": "error",
        "typescript/no-unsafe-enum-comparison": "error",
        "typescript/no-unsafe-function-type": "error",
        "typescript/only-throw-error": "error",
        "typescript/prefer-promise-reject-errors": "error",
        "typescript/require-await": "error",
        "typescript/restrict-plus-operands": "error",
        "typescript/no-useless-default-assignment": "off"
    }
}
