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