--- /dev/null
+// Generated by dts-bundle v0.7.3\r
+\r
+declare module 'regexpp' {\r
+ import * as AST from "regexpp/ast";\r
+ import { RegExpParser } from "regexpp/parser";\r
+ import { RegExpValidator } from "regexpp/validator";\r
+ import { RegExpVisitor } from "regexpp/visitor";\r
+ export { AST, RegExpParser, RegExpValidator };\r
+ export function parseRegExpLiteral(source: string | RegExp, options?: RegExpParser.Options): AST.RegExpLiteral;\r
+ export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void;\r
+ export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void;\r
+}\r
+\r
+declare module 'regexpp/ast' {\r
+ export type Node = BranchNode | LeafNode;\r
+ export type BranchNode = RegExpLiteral | Pattern | Alternative | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange;\r
+ export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags;\r
+ export type Element = Assertion | Quantifier | QuantifiableElement;\r
+ export type QuantifiableElement = Group | CapturingGroup | CharacterClass | CharacterSet | Character | Backreference | LookaheadAssertion;\r
+ export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange;\r
+ export interface NodeBase {\r
+ type: Node["type"];\r
+ parent: Node["parent"];\r
+ start: number;\r
+ end: number;\r
+ raw: string;\r
+ }\r
+ export interface RegExpLiteral extends NodeBase {\r
+ type: "RegExpLiteral";\r
+ parent: null;\r
+ pattern: Pattern;\r
+ flags: Flags;\r
+ }\r
+ export interface Pattern extends NodeBase {\r
+ type: "Pattern";\r
+ parent: RegExpLiteral | null;\r
+ alternatives: Alternative[];\r
+ }\r
+ export interface Alternative extends NodeBase {\r
+ type: "Alternative";\r
+ parent: Pattern | Group | CapturingGroup | LookaroundAssertion;\r
+ elements: Element[];\r
+ }\r
+ export interface Group extends NodeBase {\r
+ type: "Group";\r
+ parent: Alternative | Quantifier;\r
+ alternatives: Alternative[];\r
+ }\r
+ export interface CapturingGroup extends NodeBase {\r
+ type: "CapturingGroup";\r
+ parent: Alternative | Quantifier;\r
+ name: string | null;\r
+ alternatives: Alternative[];\r
+ references: Backreference[];\r
+ }\r
+ export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;\r
+ export interface LookaheadAssertion extends NodeBase {\r
+ type: "Assertion";\r
+ parent: Alternative | Quantifier;\r
+ kind: "lookahead";\r
+ negate: boolean;\r
+ alternatives: Alternative[];\r
+ }\r
+ export interface LookbehindAssertion extends NodeBase {\r
+ type: "Assertion";\r
+ parent: Alternative;\r
+ kind: "lookbehind";\r
+ negate: boolean;\r
+ alternatives: Alternative[];\r
+ }\r
+ export interface Quantifier extends NodeBase {\r
+ type: "Quantifier";\r
+ parent: Alternative;\r
+ min: number;\r
+ max: number;\r
+ greedy: boolean;\r
+ element: QuantifiableElement;\r
+ }\r
+ export interface CharacterClass extends NodeBase {\r
+ type: "CharacterClass";\r
+ parent: Alternative | Quantifier;\r
+ negate: boolean;\r
+ elements: CharacterClassElement[];\r
+ }\r
+ export interface CharacterClassRange extends NodeBase {\r
+ type: "CharacterClassRange";\r
+ parent: CharacterClass;\r
+ min: Character;\r
+ max: Character;\r
+ }\r
+ export type Assertion = BoundaryAssertion | LookaroundAssertion;\r
+ export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;\r
+ export interface EdgeAssertion extends NodeBase {\r
+ type: "Assertion";\r
+ parent: Alternative | Quantifier;\r
+ kind: "start" | "end";\r
+ }\r
+ export interface WordBoundaryAssertion extends NodeBase {\r
+ type: "Assertion";\r
+ parent: Alternative | Quantifier;\r
+ kind: "word";\r
+ negate: boolean;\r
+ }\r
+ export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet;\r
+ export interface AnyCharacterSet extends NodeBase {\r
+ type: "CharacterSet";\r
+ parent: Alternative | Quantifier;\r
+ kind: "any";\r
+ }\r
+ export interface EscapeCharacterSet extends NodeBase {\r
+ type: "CharacterSet";\r
+ parent: Alternative | Quantifier | CharacterClass;\r
+ kind: "digit" | "space" | "word";\r
+ negate: boolean;\r
+ }\r
+ export interface UnicodePropertyCharacterSet extends NodeBase {\r
+ type: "CharacterSet";\r
+ parent: Alternative | Quantifier | CharacterClass;\r
+ kind: "property";\r
+ key: string;\r
+ value: string | null;\r
+ negate: boolean;\r
+ }\r
+ export interface Character extends NodeBase {\r
+ type: "Character";\r
+ parent: Alternative | Quantifier | CharacterClass | CharacterClassRange;\r
+ value: number;\r
+ }\r
+ export interface Backreference extends NodeBase {\r
+ type: "Backreference";\r
+ parent: Alternative | Quantifier;\r
+ ref: number | string;\r
+ resolved: CapturingGroup;\r
+ }\r
+ export interface Flags extends NodeBase {\r
+ type: "Flags";\r
+ parent: RegExpLiteral | null;\r
+ dotAll: boolean;\r
+ global: boolean;\r
+ ignoreCase: boolean;\r
+ multiline: boolean;\r
+ sticky: boolean;\r
+ unicode: boolean;\r
+ }\r
+}\r
+\r
+declare module 'regexpp/parser' {\r
+ import { Flags, RegExpLiteral, Pattern } from "regexpp/ast";\r
+ export namespace RegExpParser {\r
+ interface Options {\r
+ strict?: boolean;\r
+ ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018;\r
+ }\r
+ }\r
+ export class RegExpParser {\r
+ constructor(options?: RegExpParser.Options);\r
+ parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;\r
+ parseFlags(source: string, start?: number, end?: number): Flags;\r
+ parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern;\r
+ }\r
+}\r
+\r
+declare module 'regexpp/validator' {\r
+ export namespace RegExpValidator {\r
+ interface Options {\r
+ strict?: boolean;\r
+ ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018;\r
+ onLiteralEnter?(start: number): void;\r
+ onLiteralLeave?(start: number, end: number): void;\r
+ onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean): void;\r
+ onPatternEnter?(start: number): void;\r
+ onPatternLeave?(start: number, end: number): void;\r
+ onDisjunctionEnter?(start: number): void;\r
+ onDisjunctionLeave?(start: number, end: number): void;\r
+ onAlternativeEnter?(start: number, index: number): void;\r
+ onAlternativeLeave?(start: number, end: number, index: number): void;\r
+ onGroupEnter?(start: number): void;\r
+ onGroupLeave?(start: number, end: number): void;\r
+ onCapturingGroupEnter?(start: number, name: string | null): void;\r
+ onCapturingGroupLeave?(start: number, end: number, name: string | null): void;\r
+ onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void;\r
+ onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void;\r
+ onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void;\r
+ onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void;\r
+ onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void;\r
+ onAnyCharacterSet?(start: number, end: number, kind: "any"): void;\r
+ onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void;\r
+ onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void;\r
+ onCharacter?(start: number, end: number, value: number): void;\r
+ onBackreference?(start: number, end: number, ref: number | string): void;\r
+ onCharacterClassEnter?(start: number, negate: boolean): void;\r
+ onCharacterClassLeave?(start: number, end: number, negate: boolean): void;\r
+ onCharacterClassRange?(start: number, end: number, min: number, max: number): void;\r
+ }\r
+ }\r
+ export class RegExpValidator {\r
+ constructor(options?: RegExpValidator.Options);\r
+ validateLiteral(source: string, start?: number, end?: number): void;\r
+ validateFlags(source: string, start?: number, end?: number): void;\r
+ validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void;\r
+ }\r
+}\r
+\r
+declare module 'regexpp/visitor' {\r
+ import { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "regexpp/ast";\r
+ export class RegExpVisitor {\r
+ constructor(handlers: RegExpVisitor.Handlers);\r
+ visit(node: Node): void;\r
+ }\r
+ export namespace RegExpVisitor {\r
+ interface Handlers {\r
+ onAlternativeEnter?(node: Alternative): void;\r
+ onAlternativeLeave?(node: Alternative): void;\r
+ onAssertionEnter?(node: Assertion): void;\r
+ onAssertionLeave?(node: Assertion): void;\r
+ onBackreferenceEnter?(node: Backreference): void;\r
+ onBackreferenceLeave?(node: Backreference): void;\r
+ onCapturingGroupEnter?(node: CapturingGroup): void;\r
+ onCapturingGroupLeave?(node: CapturingGroup): void;\r
+ onCharacterEnter?(node: Character): void;\r
+ onCharacterLeave?(node: Character): void;\r
+ onCharacterClassEnter?(node: CharacterClass): void;\r
+ onCharacterClassLeave?(node: CharacterClass): void;\r
+ onCharacterClassRangeEnter?(node: CharacterClassRange): void;\r
+ onCharacterClassRangeLeave?(node: CharacterClassRange): void;\r
+ onCharacterSetEnter?(node: CharacterSet): void;\r
+ onCharacterSetLeave?(node: CharacterSet): void;\r
+ onFlagsEnter?(node: Flags): void;\r
+ onFlagsLeave?(node: Flags): void;\r
+ onGroupEnter?(node: Group): void;\r
+ onGroupLeave?(node: Group): void;\r
+ onPatternEnter?(node: Pattern): void;\r
+ onPatternLeave?(node: Pattern): void;\r
+ onQuantifierEnter?(node: Quantifier): void;\r
+ onQuantifierLeave?(node: Quantifier): void;\r
+ onRegExpLiteralEnter?(node: RegExpLiteral): void;\r
+ onRegExpLiteralLeave?(node: RegExpLiteral): void;\r
+ }\r
+ }\r
+}\r
+\r