| // 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; | |
| }
 |