|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |  | // Generated by dts-bundle v0.7.3
declare module "@eslint-community/regexpp" {  import * as AST from "@eslint-community/regexpp/ast";  import { RegExpParser } from "@eslint-community/regexpp/parser";  import { RegExpValidator } from "@eslint-community/regexpp/validator";  import { RegExpVisitor } from "@eslint-community/regexpp/visitor";  export { RegExpSyntaxError } from "@eslint-community/regexpp/regexp-syntax-error";  export { AST, RegExpParser, RegExpValidator };  /**   * Parse a given regular expression literal then make AST object.   * @param source The source code to parse.   * @param options The options to parse.   * @returns The AST of the regular expression.   */  export function parseRegExpLiteral(    source: RegExp | string,    options?: RegExpParser.Options  ): AST.RegExpLiteral;  /**   * Validate a given regular expression literal.   * @param source The source code to validate.   * @param options The options to validate.   */  export function validateRegExpLiteral(    source: string,    options?: RegExpValidator.Options  ): void;  export function visitRegExpAST(    node: AST.Node,    handlers: RegExpVisitor.Handlers  ): void;}
declare module "@eslint-community/regexpp/ast" {  /**   * The type which includes all nodes.   */  export type Node = BranchNode | LeafNode;  /**   * The type which includes all branch nodes.   */  export type BranchNode =    | Alternative    | CapturingGroup    | CharacterClass    | CharacterClassRange    | ClassIntersection    | ClassStringDisjunction    | ClassSubtraction    | ExpressionCharacterClass    | Group    | LookaroundAssertion    | Modifiers    | Pattern    | Quantifier    | RegExpLiteral    | StringAlternative;  /**   * The type which includes all leaf nodes.   */  export type LeafNode =    | Backreference    | BoundaryAssertion    | Character    | CharacterSet    | Flags    | ModifierFlags;  /**   * The type which includes all atom nodes.   */  export type Element = Assertion | QuantifiableElement | Quantifier;  /**   * The type which includes all atom nodes that Quantifier node can have as children.   */  export type QuantifiableElement =    | Backreference    | CapturingGroup    | Character    | CharacterClass    | CharacterSet    | ExpressionCharacterClass    | Group    | LookaheadAssertion;  /**   * The type which includes all character class atom nodes.   */  export type CharacterClassElement =    | ClassRangesCharacterClassElement    | UnicodeSetsCharacterClassElement;  export type ClassRangesCharacterClassElement =    | Character    | CharacterClassRange    | CharacterUnicodePropertyCharacterSet    | EscapeCharacterSet;  export type UnicodeSetsCharacterClassElement =    | Character    | CharacterClassRange    | ClassStringDisjunction    | EscapeCharacterSet    | ExpressionCharacterClass    | UnicodePropertyCharacterSet    | UnicodeSetsCharacterClass;  /**   * The type which defines common properties for all node types.   */  export interface NodeBase {    /** The node type. */    type: Node["type"];    /** The parent node. */    parent: Node["parent"];    /** The 0-based index that this node starts. */    start: number;    /** The 0-based index that this node ends. */    end: number;    /** The raw text of this node. */    raw: string;  }  /**   * The root node.   */  export interface RegExpLiteral extends NodeBase {    type: "RegExpLiteral";    parent: null;    pattern: Pattern;    flags: Flags;  }  /**   * The pattern.   */  export interface Pattern extends NodeBase {    type: "Pattern";    parent: RegExpLiteral | null;    alternatives: Alternative[];  }  /**   * The alternative.   * E.g. `a|b`   */  export interface Alternative extends NodeBase {    type: "Alternative";    parent: CapturingGroup | Group | LookaroundAssertion | Pattern;    elements: Element[];  }  /**   * The uncapturing group.   * E.g. `(?:ab)`   */  export interface Group extends NodeBase {    type: "Group";    parent: Alternative | Quantifier;    modifiers: Modifiers | null;    alternatives: Alternative[];  }  /**   * The capturing group.   * E.g. `(ab)`, `(?<name>ab)`   */  export interface CapturingGroup extends NodeBase {    type: "CapturingGroup";    parent: Alternative | Quantifier;    name: string | null;    alternatives: Alternative[];    references: Backreference[];  }  /**   * The lookaround assertion.   */  export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;  /**   * The lookahead assertion.   * E.g. `(?=ab)`, `(?!ab)`   */  export interface LookaheadAssertion extends NodeBase {    type: "Assertion";    parent: Alternative | Quantifier;    kind: "lookahead";    negate: boolean;    alternatives: Alternative[];  }  /**   * The lookbehind assertion.   * E.g. `(?<=ab)`, `(?<!ab)`   */  export interface LookbehindAssertion extends NodeBase {    type: "Assertion";    parent: Alternative;    kind: "lookbehind";    negate: boolean;    alternatives: Alternative[];  }  /**   * The quantifier.   * E.g. `a?`, `a*`, `a+`, `a{1,2}`, `a??`, `a*?`, `a+?`, `a{1,2}?`   */  export interface Quantifier extends NodeBase {    type: "Quantifier";    parent: Alternative;    min: number;    max: number;    greedy: boolean;    element: QuantifiableElement;  }  /**   * The character class.   * E.g. `[ab]`, `[^ab]`   */  export type CharacterClass =    | ClassRangesCharacterClass    | UnicodeSetsCharacterClass;  interface BaseCharacterClass extends NodeBase {    type: "CharacterClass";    parent:      | Alternative      | ClassIntersection      | ClassSubtraction      | Quantifier      | UnicodeSetsCharacterClass;    unicodeSets: boolean;    negate: boolean;    elements: CharacterClassElement[];  }  /**   * The character class used in legacy (neither `u` nor `v` flag) and Unicode mode (`u` flag).   *   * This character class is guaranteed to **not** contain strings.   *   * In Unicode sets mode (`v` flag), {@link UnicodeSetsCharacterClass} is used.   */  export interface ClassRangesCharacterClass extends BaseCharacterClass {    parent: Alternative | Quantifier;    unicodeSets: false;    elements: ClassRangesCharacterClassElement[];  }  /**   * The character class used in Unicode sets mode (`v` flag).   *   * This character class may contain strings.   */  export interface UnicodeSetsCharacterClass extends BaseCharacterClass {    parent:      | Alternative      | ClassIntersection      | ClassSubtraction      | Quantifier      | UnicodeSetsCharacterClass;    unicodeSets: true;    elements: UnicodeSetsCharacterClassElement[];  }  /**   * The character class.   * E.g. `[a-b]`   */  export interface CharacterClassRange extends NodeBase {    type: "CharacterClassRange";    parent: CharacterClass;    min: Character;    max: Character;  }  /**   * The assertion.   */  export type Assertion = BoundaryAssertion | LookaroundAssertion;  /**   * The boundary assertion.   */  export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;  /**   * The edge boundary assertion.   * E.g. `^`, `$`   */  export interface EdgeAssertion extends NodeBase {    type: "Assertion";    parent: Alternative | Quantifier;    kind: "end" | "start";  }  /**   * The word bondary assertion.   * E.g. `\b`, `\B`   */  export interface WordBoundaryAssertion extends NodeBase {    type: "Assertion";    parent: Alternative | Quantifier;    kind: "word";    negate: boolean;  }  /**   * The character set.   */  export type CharacterSet =    | AnyCharacterSet    | EscapeCharacterSet    | UnicodePropertyCharacterSet;  /**   * The dot.   * E.g. `.`   */  export interface AnyCharacterSet extends NodeBase {    type: "CharacterSet";    parent: Alternative | Quantifier;    kind: "any";  }  /**   * The character class escape.   * E.g. `\d`, `\s`, `\w`, `\D`, `\S`, `\W`   */  export interface EscapeCharacterSet extends NodeBase {    type: "CharacterSet";    parent:      | Alternative      | CharacterClass      | ClassIntersection      | ClassSubtraction      | Quantifier;    kind: "digit" | "space" | "word";    negate: boolean;  }  /**   * The unicode property escape.   * E.g. `\p{ASCII}`, `\P{ASCII}`, `\p{Script=Hiragana}`   */  export type UnicodePropertyCharacterSet =    | CharacterUnicodePropertyCharacterSet    | StringsUnicodePropertyCharacterSet;  interface BaseUnicodePropertyCharacterSet extends NodeBase {    type: "CharacterSet";    parent:      | Alternative      | CharacterClass      | ClassIntersection      | ClassSubtraction      | Quantifier;    kind: "property";    strings: boolean;    key: string;    value: string | null;    negate: boolean;  }  export interface CharacterUnicodePropertyCharacterSet    extends BaseUnicodePropertyCharacterSet {    strings: false;    value: string | null;    negate: boolean;  }  /** StringsUnicodePropertyCharacterSet is Unicode property escape with property of strings. */  export interface StringsUnicodePropertyCharacterSet    extends BaseUnicodePropertyCharacterSet {    parent:      | Alternative      | ClassIntersection      | ClassSubtraction      | Quantifier      | UnicodeSetsCharacterClass;    strings: true;    value: null;    negate: false;  }  /**   * The expression character class.   * E.g. `[a--b]`, `[a&&b]`,`[^a--b]`, `[^a&&b]`   */  export interface ExpressionCharacterClass extends NodeBase {    type: "ExpressionCharacterClass";    parent:      | Alternative      | ClassIntersection      | ClassSubtraction      | Quantifier      | UnicodeSetsCharacterClass;    negate: boolean;    expression: ClassIntersection | ClassSubtraction;  }  export type ClassSetOperand =    | Character    | ClassStringDisjunction    | EscapeCharacterSet    | ExpressionCharacterClass    | UnicodePropertyCharacterSet    | UnicodeSetsCharacterClass;  /**   * The character class intersection.   * E.g. `a&&b`   */  export interface ClassIntersection extends NodeBase {    type: "ClassIntersection";    parent: ClassIntersection | ExpressionCharacterClass;    left: ClassIntersection | ClassSetOperand;    right: ClassSetOperand;  }  /**   * The character class subtraction.   * E.g. `a--b`   */  export interface ClassSubtraction extends NodeBase {    type: "ClassSubtraction";    parent: ClassSubtraction | ExpressionCharacterClass;    left: ClassSetOperand | ClassSubtraction;    right: ClassSetOperand;  }  /**   * The character class string disjunction.   * E.g. `\q{a|b}`   */  export interface ClassStringDisjunction extends NodeBase {    type: "ClassStringDisjunction";    parent: ClassIntersection | ClassSubtraction | UnicodeSetsCharacterClass;    alternatives: StringAlternative[];  }  /** StringAlternative is only used for `\q{alt}`({@link ClassStringDisjunction}). */  export interface StringAlternative extends NodeBase {    type: "StringAlternative";    parent: ClassStringDisjunction;    elements: Character[];  }  /**   * The character.   * This includes escape sequences which mean a character.   * E.g. `a`, `あ`, `✿`, `\x65`, `\u0065`, `\u{65}`, `\/`   */  export interface Character extends NodeBase {    type: "Character";    parent:      | Alternative      | CharacterClass      | CharacterClassRange      | ClassIntersection      | ClassSubtraction      | Quantifier      | StringAlternative;    value: number;  }  /**   * The backreference.   * E.g. `\1`, `\k<name>`   */  export type Backreference = AmbiguousBackreference | UnambiguousBackreference;  interface BaseBackreference extends NodeBase {    type: "Backreference";    parent: Alternative | Quantifier;    ref: number | string;    ambiguous: boolean;    resolved: CapturingGroup | CapturingGroup[];  }  export interface AmbiguousBackreference extends BaseBackreference {    ref: string;    ambiguous: true;    resolved: CapturingGroup[];  }  export interface UnambiguousBackreference extends BaseBackreference {    ambiguous: false;    resolved: CapturingGroup;  }  /**   * The modifiers.   */  export interface Modifiers extends NodeBase {    type: "Modifiers";    parent: Group;    /**     * The add modifier flags.     */    add: ModifierFlags;    /**     * The remove modifier flags.     *     * `null` means no remove modifier flags. e.g. `(?ims:x)`     * The reason for `null` is that there is no position where the remove modifier flags appears. Must be behind the minus mark.     */    remove: ModifierFlags | null;  }  /**   * The modifier flags.   */  export interface ModifierFlags extends NodeBase {    type: "ModifierFlags";    parent: Modifiers;    dotAll: boolean;    ignoreCase: boolean;    multiline: boolean;  }  /**   * The flags.   */  export interface Flags extends NodeBase {    type: "Flags";    parent: RegExpLiteral | null;    dotAll: boolean;    global: boolean;    hasIndices: boolean;    ignoreCase: boolean;    multiline: boolean;    sticky: boolean;    unicode: boolean;    unicodeSets: boolean;  }  export {};}
declare module "@eslint-community/regexpp/parser" {  import type {    Flags,    RegExpLiteral,    Pattern,  } from "@eslint-community/regexpp/ast";  import type { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";  export namespace RegExpParser {    /**     * The options for RegExpParser construction.     */    interface Options {      /**       * The flag to disable Annex B syntax. Default is `false`.       */      strict?: boolean;      /**       * ECMAScript version. Default is `2025`.       * - `2015` added `u` and `y` flags.       * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,       *   and Unicode Property Escape.       * - `2019`, `2020`, and `2021` added more valid Unicode Property Escapes.       * - `2022` added `d` flag.       * - `2023` added more valid Unicode Property Escapes.       * - `2024` added `v` flag.       * - `2025` added duplicate named capturing groups, modifiers.       */      ecmaVersion?: EcmaVersion;    }  }  export class RegExpParser {    /**     * Initialize this parser.     * @param options The options of parser.     */    constructor(options?: RegExpParser.Options);    /**     * Parse a regular expression literal. E.g. "/abc/g"     * @param source The source code to parse.     * @param start The start index in the source code.     * @param end The end index in the source code.     * @returns The AST of the given regular expression.     */    parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;    /**     * Parse a regular expression flags. E.g. "gim"     * @param source The source code to parse.     * @param start The start index in the source code.     * @param end The end index in the source code.     * @returns The AST of the given flags.     */    parseFlags(source: string, start?: number, end?: number): Flags;    /**     * Parse a regular expression pattern. E.g. "abc"     * @param source The source code to parse.     * @param start The start index in the source code.     * @param end The end index in the source code.     * @param flags The flags.     * @returns The AST of the given pattern.     */    parsePattern(      source: string,      start?: number,      end?: number,      flags?: {        unicode?: boolean;        unicodeSets?: boolean;      }    ): Pattern;    /**     * @deprecated Backward compatibility     * Use object `flags` instead of boolean `uFlag`.     *     * @param source The source code to parse.     * @param start The start index in the source code.     * @param end The end index in the source code.     * @param uFlag The flag to set unicode mode.     * @returns The AST of the given pattern.     */    parsePattern(      source: string,      start?: number,      end?: number,      uFlag?: boolean    ): Pattern;  }}
declare module "@eslint-community/regexpp/validator" {  import type { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";  export type RegExpValidatorSourceContext = {    readonly source: string;    readonly start: number;    readonly end: number;    readonly kind: "flags" | "literal" | "pattern";  };  export namespace RegExpValidator {    /**     * The options for RegExpValidator construction.     */    interface Options {      /**       * The flag to disable Annex B syntax. Default is `false`.       */      strict?: boolean;      /**       * ECMAScript version. Default is `2025`.       * - `2015` added `u` and `y` flags.       * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,       *   and Unicode Property Escape.       * - `2019`, `2020`, and `2021` added more valid Unicode Property Escapes.       * - `2022` added `d` flag.       * - `2023` added more valid Unicode Property Escapes.       * - `2024` added `v` flag.       * - `2025` added duplicate named capturing groups, modifiers.       */      ecmaVersion?: EcmaVersion;      /**       * A function that is called when the validator entered a RegExp literal.       * @param start The 0-based index of the first character.       */      onLiteralEnter?: (start: number) => void;      /**       * A function that is called when the validator left a RegExp literal.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onLiteralLeave?: (start: number, end: number) => void;      /**       * A function that is called when the validator found flags.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param flags.global `g` flag.       * @param flags.ignoreCase `i` flag.       * @param flags.multiline `m` flag.       * @param flags.unicode `u` flag.       * @param flags.sticky `y` flag.       * @param flags.dotAll `s` flag.       * @param flags.hasIndices `d` flag.       * @param flags.unicodeSets `v` flag.       */      onRegExpFlags?: (        start: number,        end: number,        flags: {          global: boolean;          ignoreCase: boolean;          multiline: boolean;          unicode: boolean;          sticky: boolean;          dotAll: boolean;          hasIndices: boolean;          unicodeSets: boolean;        }      ) => void;      /**       * A function that is called when the validator found flags.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param global `g` flag.       * @param ignoreCase `i` flag.       * @param multiline `m` flag.       * @param unicode `u` flag.       * @param sticky `y` flag.       * @param dotAll `s` flag.       * @param hasIndices `d` flag.       *       * @deprecated Use `onRegExpFlags` instead.       */      onFlags?: (        start: number,        end: number,        global: boolean,        ignoreCase: boolean,        multiline: boolean,        unicode: boolean,        sticky: boolean,        dotAll: boolean,        hasIndices: boolean      ) => void;      /**       * A function that is called when the validator entered a pattern.       * @param start The 0-based index of the first character.       */      onPatternEnter?: (start: number) => void;      /**       * A function that is called when the validator left a pattern.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onPatternLeave?: (start: number, end: number) => void;      /**       * A function that is called when the validator entered a disjunction.       * @param start The 0-based index of the first character.       */      onDisjunctionEnter?: (start: number) => void;      /**       * A function that is called when the validator left a disjunction.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onDisjunctionLeave?: (start: number, end: number) => void;      /**       * A function that is called when the validator entered an alternative.       * @param start The 0-based index of the first character.       * @param index The 0-based index of alternatives in a disjunction.       */      onAlternativeEnter?: (start: number, index: number) => void;      /**       * A function that is called when the validator left an alternative.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param index The 0-based index of alternatives in a disjunction.       */      onAlternativeLeave?: (start: number, end: number, index: number) => void;      /**       * A function that is called when the validator entered an uncapturing group.       * @param start The 0-based index of the first character.       */      onGroupEnter?: (start: number) => void;      /**       * A function that is called when the validator left an uncapturing group.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onGroupLeave?: (start: number, end: number) => void;      /**       * A function that is called when the validator entered a modifiers.       * @param start The 0-based index of the first character.       */      onModifiersEnter?: (start: number) => void;      /**       * A function that is called when the validator left a modifiers.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onModifiersLeave?: (start: number, end: number) => void;      /**       * A function that is called when the validator found an add modifiers.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param flags flags.       * @param flags.ignoreCase `i` flag.       * @param flags.multiline `m` flag.       * @param flags.dotAll `s` flag.       */      onAddModifiers?: (        start: number,        end: number,        flags: {          ignoreCase: boolean;          multiline: boolean;          dotAll: boolean;        }      ) => void;      /**       * A function that is called when the validator found a remove modifiers.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param flags flags.       * @param flags.ignoreCase `i` flag.       * @param flags.multiline `m` flag.       * @param flags.dotAll `s` flag.       */      onRemoveModifiers?: (        start: number,        end: number,        flags: {          ignoreCase: boolean;          multiline: boolean;          dotAll: boolean;        }      ) => void;      /**       * A function that is called when the validator entered a capturing group.       * @param start The 0-based index of the first character.       * @param name The group name.       */      onCapturingGroupEnter?: (start: number, name: string | null) => void;      /**       * A function that is called when the validator left a capturing group.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param name The group name.       */      onCapturingGroupLeave?: (        start: number,        end: number,        name: string | null      ) => void;      /**       * A function that is called when the validator found a quantifier.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param min The minimum number of repeating.       * @param max The maximum number of repeating.       * @param greedy The flag to choose the longest matching.       */      onQuantifier?: (        start: number,        end: number,        min: number,        max: number,        greedy: boolean      ) => void;      /**       * A function that is called when the validator entered a lookahead/lookbehind assertion.       * @param start The 0-based index of the first character.       * @param kind The kind of the assertion.       * @param negate The flag which represents that the assertion is negative.       */      onLookaroundAssertionEnter?: (        start: number,        kind: "lookahead" | "lookbehind",        negate: boolean      ) => void;      /**       * A function that is called when the validator left a lookahead/lookbehind assertion.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param kind The kind of the assertion.       * @param negate The flag which represents that the assertion is negative.       */      onLookaroundAssertionLeave?: (        start: number,        end: number,        kind: "lookahead" | "lookbehind",        negate: boolean      ) => void;      /**       * A function that is called when the validator found an edge boundary assertion.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param kind The kind of the assertion.       */      onEdgeAssertion?: (        start: number,        end: number,        kind: "end" | "start"      ) => void;      /**       * A function that is called when the validator found a word boundary assertion.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param kind The kind of the assertion.       * @param negate The flag which represents that the assertion is negative.       */      onWordBoundaryAssertion?: (        start: number,        end: number,        kind: "word",        negate: boolean      ) => void;      /**       * A function that is called when the validator found a dot.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param kind The kind of the character set.       */      onAnyCharacterSet?: (start: number, end: number, kind: "any") => void;      /**       * A function that is called when the validator found a character set escape.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param kind The kind of the character set.       * @param negate The flag which represents that the character set is negative.       */      onEscapeCharacterSet?: (        start: number,        end: number,        kind: "digit" | "space" | "word",        negate: boolean      ) => void;      /**       * A function that is called when the validator found a Unicode proerty escape.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param kind The kind of the character set.       * @param key The property name.       * @param value The property value.       * @param negate The flag which represents that the character set is negative.       * @param strings If true, the given property is property of strings.       */      onUnicodePropertyCharacterSet?: (        start: number,        end: number,        kind: "property",        key: string,        value: string | null,        negate: boolean,        strings: boolean      ) => void;      /**       * A function that is called when the validator found a character.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param value The code point of the character.       */      onCharacter?: (start: number, end: number, value: number) => void;      /**       * A function that is called when the validator found a backreference.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param ref The key of the referred capturing group.       */      onBackreference?: (        start: number,        end: number,        ref: number | string      ) => void;      /**       * A function that is called when the validator entered a character class.       * @param start The 0-based index of the first character.       * @param negate The flag which represents that the character class is negative.       * @param unicodeSets `true` if unicodeSets mode.       */      onCharacterClassEnter?: (        start: number,        negate: boolean,        unicodeSets: boolean      ) => void;      /**       * A function that is called when the validator left a character class.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param negate The flag which represents that the character class is negative.       */      onCharacterClassLeave?: (        start: number,        end: number,        negate: boolean      ) => void;      /**       * A function that is called when the validator found a character class range.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param min The minimum code point of the range.       * @param max The maximum code point of the range.       */      onCharacterClassRange?: (        start: number,        end: number,        min: number,        max: number      ) => void;      /**       * A function that is called when the validator found a class intersection.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onClassIntersection?: (start: number, end: number) => void;      /**       * A function that is called when the validator found a class subtraction.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onClassSubtraction?: (start: number, end: number) => void;      /**       * A function that is called when the validator entered a class string disjunction.       * @param start The 0-based index of the first character.       */      onClassStringDisjunctionEnter?: (start: number) => void;      /**       * A function that is called when the validator left a class string disjunction.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       */      onClassStringDisjunctionLeave?: (start: number, end: number) => void;      /**       * A function that is called when the validator entered a string alternative.       * @param start The 0-based index of the first character.       * @param index The 0-based index of alternatives in a disjunction.       */      onStringAlternativeEnter?: (start: number, index: number) => void;      /**       * A function that is called when the validator left a string alternative.       * @param start The 0-based index of the first character.       * @param end The next 0-based index of the last character.       * @param index The 0-based index of alternatives in a disjunction.       */      onStringAlternativeLeave?: (        start: number,        end: number,        index: number      ) => void;    }  }  /**   * The regular expression validator.   */  export class RegExpValidator {    /**     * Initialize this validator.     * @param options The options of validator.     */    constructor(options?: RegExpValidator.Options);    /**     * Validate a regular expression literal. E.g. "/abc/g"     * @param source The source code to validate.     * @param start The start index in the source code.     * @param end The end index in the source code.     */    validateLiteral(source: string, start?: number, end?: number): void;    /**     * Validate a regular expression flags. E.g. "gim"     * @param source The source code to validate.     * @param start The start index in the source code.     * @param end The end index in the source code.     */    validateFlags(source: string, start?: number, end?: number): void;    /**     * Validate a regular expression pattern. E.g. "abc"     * @param source The source code to validate.     * @param start The start index in the source code.     * @param end The end index in the source code.     * @param flags The flags.     */    validatePattern(      source: string,      start?: number,      end?: number,      flags?: {        unicode?: boolean;        unicodeSets?: boolean;      }    ): void;    /**     * @deprecated Backward compatibility     * Use object `flags` instead of boolean `uFlag`.     * @param source The source code to validate.     * @param start The start index in the source code.     * @param end The end index in the source code.     * @param uFlag The flag to set unicode mode.     */    validatePattern(      source: string,      start?: number,      end?: number,      uFlag?: boolean    ): void;  }}
declare module "@eslint-community/regexpp/visitor" {  import type {    Alternative,    Assertion,    Backreference,    CapturingGroup,    Character,    CharacterClass,    CharacterClassRange,    CharacterSet,    ClassIntersection,    ClassStringDisjunction,    ClassSubtraction,    ExpressionCharacterClass,    Flags,    Group,    ModifierFlags,    Modifiers,    Node,    Pattern,    Quantifier,    RegExpLiteral,    StringAlternative,  } from "@eslint-community/regexpp/ast";  /**   * The visitor to walk on AST.   */  export class RegExpVisitor {    /**     * Initialize this visitor.     * @param handlers Callbacks for each node.     */    constructor(handlers: RegExpVisitor.Handlers);    /**     * Visit a given node and descendant nodes.     * @param node The root node to visit tree.     */    visit(node: Node): void;  }  export namespace RegExpVisitor {    interface Handlers {      onAlternativeEnter?: (node: Alternative) => void;      onAlternativeLeave?: (node: Alternative) => void;      onAssertionEnter?: (node: Assertion) => void;      onAssertionLeave?: (node: Assertion) => void;      onBackreferenceEnter?: (node: Backreference) => void;      onBackreferenceLeave?: (node: Backreference) => void;      onCapturingGroupEnter?: (node: CapturingGroup) => void;      onCapturingGroupLeave?: (node: CapturingGroup) => void;      onCharacterEnter?: (node: Character) => void;      onCharacterLeave?: (node: Character) => void;      onCharacterClassEnter?: (node: CharacterClass) => void;      onCharacterClassLeave?: (node: CharacterClass) => void;      onCharacterClassRangeEnter?: (node: CharacterClassRange) => void;      onCharacterClassRangeLeave?: (node: CharacterClassRange) => void;      onCharacterSetEnter?: (node: CharacterSet) => void;      onCharacterSetLeave?: (node: CharacterSet) => void;      onClassIntersectionEnter?: (node: ClassIntersection) => void;      onClassIntersectionLeave?: (node: ClassIntersection) => void;      onClassStringDisjunctionEnter?: (node: ClassStringDisjunction) => void;      onClassStringDisjunctionLeave?: (node: ClassStringDisjunction) => void;      onClassSubtractionEnter?: (node: ClassSubtraction) => void;      onClassSubtractionLeave?: (node: ClassSubtraction) => void;      onExpressionCharacterClassEnter?: (        node: ExpressionCharacterClass      ) => void;      onExpressionCharacterClassLeave?: (        node: ExpressionCharacterClass      ) => void;      onFlagsEnter?: (node: Flags) => void;      onFlagsLeave?: (node: Flags) => void;      onGroupEnter?: (node: Group) => void;      onGroupLeave?: (node: Group) => void;      onModifierFlagsEnter?: (node: ModifierFlags) => void;      onModifierFlagsLeave?: (node: ModifierFlags) => void;      onModifiersEnter?: (node: Modifiers) => void;      onModifiersLeave?: (node: Modifiers) => void;      onPatternEnter?: (node: Pattern) => void;      onPatternLeave?: (node: Pattern) => void;      onQuantifierEnter?: (node: Quantifier) => void;      onQuantifierLeave?: (node: Quantifier) => void;      onRegExpLiteralEnter?: (node: RegExpLiteral) => void;      onRegExpLiteralLeave?: (node: RegExpLiteral) => void;      onStringAlternativeEnter?: (node: StringAlternative) => void;      onStringAlternativeLeave?: (node: StringAlternative) => void;    }  }}
declare module "@eslint-community/regexpp/regexp-syntax-error" {  import type { RegExpValidatorSourceContext } from "@eslint-community/regexpp/validator";  export class RegExpSyntaxError extends SyntaxError {    index: number;    constructor(message: string, index: number);  }  export function newRegExpSyntaxError(    srcCtx: RegExpValidatorSourceContext,    flags: {      unicode: boolean;      unicodeSets: boolean;    },    index: number,    message: string  ): RegExpSyntaxError;}
declare module "@eslint-community/regexpp/ecma-versions" {  export type EcmaVersion =    | 5    | 2015    | 2016    | 2017    | 2018    | 2019    | 2020    | 2021    | 2022    | 2023    | 2024    | 2025;  export const latestEcmaVersion = 2025;}
 |