import { ESLintUtils } from "@typescript-eslint/utils"; import * as tseslint from "@typescript-eslint/utils/ts-eslint"; import { ReportFixFunction, RuleFix, RuleFixer, RuleListener, RuleListener as RuleListener$1 } from "@typescript-eslint/utils/ts-eslint"; //#region src/types.d.ts /** * Represents the ESLint rule context. * @since 0.0.1 */ type RuleContext = tseslint.RuleContext; /** * Represents the feature of a rule. * @since 1.20.0 */ type RuleFeature = "CFG" | "DBG" | "FIX" | "MOD" | "TSC" | "EXP"; //#endregion //#region src/utils.d.ts /** The rule creator that generates documentation URLs for ESLint React rules. */ declare const createRule: ({ meta, name, ...rule }: Readonly>) => ESLintUtils.RuleModule & { name: string; }; /** * Merge multiple visitor objects into a single visitor object. * * @param base The base visitor object (target of merge). * @param rest The additional visitor objects to merge (one or more). * @returns The merged visitor object. * * @example * ```typescript * const visitor1 = { Identifier: () => console.log(1) }; * const visitor2 = { Identifier: () => console.log(2) }; * const merged = merge(visitor1, visitor2); * // When encountering Identifier nodes, outputs 1 then 2 * ``` */ declare function merge(base: RuleListener$1, ...rest: RuleListener$1[]): RuleListener$1; //#endregion export { type ReportFixFunction, RuleContext, RuleFeature, type RuleFix, type RuleFixer, type RuleListener, createRule, merge };