import { type Options } from "./parser.js";
export type ResolvedPattern = {
    path: string;
    fullPattern: string;
    pattern: string;
};
export default class PathMatcher {
    private readonly include;
    private readonly exclude;
    /** Path part extract from the provided patterns. */
    readonly paths: Set<string>;
    /** Negated path part extract from the provided patterns. */
    readonly negatedPaths: Set<string>;
    constructor(patterns: string | string[], options?: Options & {
        unix?: boolean;
    });
    private static internalResolve;
    /**
     * Creates a regex object from given pattern
     * @param pattern Pattern to be parsed.
     * @param options Options object.
     */
    static makeRegex(pattern: string, options?: Options): RegExp;
    /**
     * Splits base path from the pattern.
     * @param pattern Pattern to be splitted.
     */
    static split(pattern: string, options?: Options): {
        path: string;
        pattern: string;
    };
    /**
     * Escapes the base path and resolve relative patterns.
     * @param base Base pattern.
     * @param pattern Pattern to resolve relative to base.
     */
    static resolve(base: string, pattern: string, options?: Omit<Options, "base"> & {
        unix?: boolean;
    }): ResolvedPattern;
    static resolve(base: string, pattern: string[], options?: Omit<Options, "base"> & {
        unix?: boolean;
    }): ResolvedPattern[];
    /**
     * Matches giving path.
     * @param path Path to match.
     */
    isMatch(path: string): boolean;
}
