export interface StringLike { length: number; charAt(i: number): string; charCodeAt(i: number): number; substring(start: number, end?: number): string; toString(): string; } export declare type Taint = [number, number]; export declare class Region implements StringLike { readonly str: string; readonly start: number; readonly end: number; length: number; constructor(str: string, start?: number, end?: number); charAt(i: number): string; charCodeAt(i: number): number; substring(start: number, end?: number): string; subRegion(start: number, end?: number): Region; toString(): string; taint(from: number, to: number): this | TaintedRegion; taintRelative(from: number, to: number): this | TaintedRegion; taintRegion(subRegion: Region): this | TaintedRegion; untaint(): Region[]; } export declare class TaintedRegion extends Region { readonly str: string; readonly start: number; readonly end: number; readonly taints: Taint[]; constructor(str: string, start?: number, end?: number, taints?: Taint[]); charAt(i: number): string; charCodeAt(i: number): number; substring(start: number, end?: number): string; subRegion(start: number, end?: number): Region; taint(from: number, to: number): TaintedRegion; taintRelative(from: number, to: number): TaintedRegion; taintRegion(subRegion: Region): TaintedRegion; untaint(): Region[]; protected untaintedIndexes(start: number, end: number): number[][]; }