import { Optional } from '../../../common/domain/Optional';
export declare class PackageMatcher {
    private static readonly ILLEGAL_ALTERNATION_PATTERN;
    private static readonly ILLEGAL_NESTED_GROUP_PATTERN;
    private static readonly PACKAGE_CONTROL_SYMBOLS;
    private static readonly OPT_LETTERS_AT_START;
    private static readonly OPT_LETTERS_AT_END;
    private static readonly ARBITRARY_PACKAGES;
    private static readonly TWO_DOTS_REGEX;
    private static readonly TWO_STAR_CAPTURE_LITERAL;
    private static readonly TWO_STAR_CAPTURE_REGEX;
    static readonly TWO_STAR_REGEX_MARKER: string;
    private readonly packagePattern;
    private constructor();
    static of(packageIdentifier: string): PackageMatcher;
    convertToRegex(packageIdentifier: string): string;
    private validate;
    private containsToplevelAlternation;
    private sameNumberOfOccurrences;
    private validateCharacters;
    exactMatches(aPackage: string): boolean;
    partialMatches(aPackage: string): boolean;
    match(aPackage: string): Optional<ResultMatcher>;
    private static nestedGroupRegex;
}
export declare class ResultMatcher {
    private readonly matcher;
    constructor(matcher: string[]);
    getNumberOfGroups(): number;
    getGroup(index: number): string;
    static TO_GROUPS(input: ResultMatcher): Array<string>;
}
