1164 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			1164 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // 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;
 | |
| }
 |