import { Matcher, Flag, TypedRegExp, MatchRegExp, MatchAllRegExp, RegExpMatchResult, ReplaceWithRegExp } from './regexp.js'; export { ExhaustiveMatch, GlobalMatch, ParseRegExp, RegExpIterableIterator, ResolvePermutation, ValidateRegExpSyntaxError, createRegExp, spreadRegExpIterator, spreadRegExpMatchArray } from './regexp.js'; declare global { interface String { match(this: InputString, regexp: TypedRegExp): Matcher[] extends RegExpParsedAST ? never : MatchRegExp; /** @deprecated String.matchAll requires global flag to be set. */ matchAll>(this: InputString, regexp: TypedRegExp): never; matchAll(this: InputString, regexp: TypedRegExp): Matcher[] extends RegExpParsedAST ? never : MatchAllRegExp; /** @deprecated String.matchAll requires global flag to be set. */ matchAll(regexp: TypedRegExp): never; replace, Match extends any[] = MatchResult extends RegExpMatchResult<{ matched: infer MatchArray extends any[]; namedCaptures: [string, any]; input: infer Input extends string; restInput: string | undefined; }, { index: infer Index extends number; groups: infer Groups; input: string; keys: (...arg: any) => any; }> ? [...MatchArray, Index, Input, Groups] : never>(this: InputString, regexp: TypedRegExp, replaceValue: ReplaceValue | ((...match: Match) => ReplaceValue)): Matcher[] extends RegExpParsedAST ? never : ReplaceWithRegExp; } } export { Flag, MatchAllRegExp, MatchRegExp, Matcher, RegExpMatchResult, ReplaceWithRegExp, TypedRegExp };