import { RuleContext, RuleContextTypeOptions, RuleDefinition, } from "@eslint/core" import { Linter, SourceCode, Rule } from "eslint" import * as ESTree from "estree" import { Rule } from "eslint" export interface PluginRuleContext< Options extends {} = { RuleOptions: RuleContextTypeOptions["RuleOptions"] }, > extends Rule.RuleContext { options: Options extends { RuleOptions: infer T } ? T : RuleContextTypeOptions["RuleOptions"] } export interface RuleModule< Options extends {} = { RuleOptions: RuleContextTypeOptions["RuleOptions"] }, > extends Rule.RuleModule { create(context: PluginRuleContext): Rule.NodeListener }