/**
 * randexp v0.4.6
 * Create random strings that match a given regular expression.
 *
 * Copyright (C) 2017 by fent (https://github.com/fent)
 * MIT License
 */
declare class DRange {
    low: number;
    high: number;
    length: number;
    constructor(low: number, high: number);
    overlaps(range: DRange): boolean;
    touches(range: DRange): boolean;
    add(range: DRange): DRange | null;
    subtract(range: DRange): DRange[];
    toString(): string;
    clone(): DRange;
}
declare class DiscontinuousRange {
    ranges: DRange[];
    length: number;
    constructor(low?: number | DiscontinuousRange, high?: number);
    private _setLength;
    add(low: number | DiscontinuousRange | DRange, high?: number): this;
    subtract(low: number | DiscontinuousRange | DRange, high?: number): this;
    index(i: number): number | null;
    toString(): string;
    clone(): DiscontinuousRange;
}
export interface RandExpOptions {
    max?: number;
    defaultRange?: DiscontinuousRange;
    randInt?: (min: number, max: number) => number;
}
export declare class RandExp {
    max: number;
    defaultRange: DiscontinuousRange;
    randInt: (min: number, max: number) => number;
    private tokens;
    private ignoreCase;
    private multiline;
    constructor(regexp: RegExp | string, flags?: string, options?: RandExpOptions);
    private _setDefaults;
    gen(): string;
    private _gen;
    private _processSet;
    private static _toCaseInverse;
    private _coin;
    private _choice;
    static randexp(regexp: RegExp | string, flags?: string, options?: RandExpOptions): string;
    static sugar(): void;
}
export {};
//# sourceMappingURL=RandExp.d.ts.map