///
declare module 're2' {
type RE2BinaryInput =
Buffer | ArrayBufferView | ArrayBuffer | SharedArrayBuffer;
interface RE2BufferExecArray {
index: number;
input: T;
0: Buffer;
groups?: {
[key: string]: Buffer;
};
indices?: RegExpIndicesArray;
}
interface RE2BufferMatchArray {
index?: number;
input?: T;
0: Buffer;
groups?: {
[key: string]: Buffer;
};
}
interface RE2 extends RegExp {
readonly internalSource: string;
exec(str: string): RegExpExecArray | null;
exec(str: T): RE2BufferExecArray | null;
match(str: string): RegExpMatchArray | null;
match(str: T): RE2BufferMatchArray | null;
test(str: string | RE2BinaryInput): boolean;
replace(str: string, replaceValue: string | RE2BinaryInput): string;
replace(str: RE2BinaryInput, replaceValue: string | RE2BinaryInput): Buffer;
replace(
str: string,
replacer: (substring: string, ...args: any[]) => string | RE2BinaryInput
): string;
replace(
str: RE2BinaryInput,
replacer: (substring: string, ...args: any[]) => string | RE2BinaryInput
): Buffer;
search(str: string | RE2BinaryInput): number;
split(str: string, limit?: number): string[];
split(str: RE2BinaryInput, limit?: number): Buffer[];
}
interface RE2SetOptions {
anchor?: 'unanchored' | 'start' | 'both';
maxMem?: number;
}
interface RE2Set {
readonly size: number;
readonly source: string;
readonly sources: string[];
readonly flags: string;
readonly anchor: 'unanchored' | 'start' | 'both';
readonly maxMem: number;
match(str: string | RE2BinaryInput): number[];
test(str: string | RE2BinaryInput): boolean;
toString(): string;
}
interface RE2SetConstructor {
new (
patterns: Iterable,
flagsOrOptions?: string | RE2BinaryInput | RE2SetOptions,
options?: RE2SetOptions
): RE2Set;
(
patterns: Iterable,
flagsOrOptions?: string | RE2BinaryInput | RE2SetOptions,
options?: RE2SetOptions
): RE2Set;
readonly prototype: RE2Set;
}
interface RE2Constructor extends RegExpConstructor {
new (pattern: RE2BinaryInput | RegExp | RE2 | string): RE2;
new (
pattern: RE2BinaryInput | string,
flags?: string | RE2BinaryInput
): RE2;
(pattern: RE2BinaryInput | RegExp | RE2 | string): RE2;
(pattern: RE2BinaryInput | string, flags?: string | RE2BinaryInput): RE2;
readonly prototype: RE2;
unicodeWarningLevel: 'nothing' | 'warnOnce' | 'warn' | 'throw';
getUtf8Length(value: string): number;
getUtf16Length(value: RE2BinaryInput): number;
Set: RE2SetConstructor;
RE2: RE2Constructor;
}
var RE2: RE2Constructor;
export = RE2;
}