import { MatchKind } from './internal-match-kind';
export declare class Pattern {
    /**
     * Indicates whether matches should be excluded from the result set
     */
    readonly negate: boolean;
    /**
     * The directory to search. The literal path prior to the first glob segment.
     */
    readonly searchPath: string;
    /**
     * The path/pattern segments. Note, only the first segment (the root directory)
     * may contain a directory separator character. Use the trailingSeparator field
     * to determine whether the pattern ended with a trailing slash.
     */
    readonly segments: string[];
    /**
     * Indicates the pattern should only match directories, not regular files.
     */
    readonly trailingSeparator: boolean;
    /**
     * The Minimatch object used for matching
     */
    private readonly minimatch;
    /**
     * Used to workaround a limitation with Minimatch when determining a partial
     * match and the path is a root directory. For example, when the pattern is
     * `/foo/**` or `C:\foo\**` and the path is `/` or `C:\`.
     */
    private readonly rootRegExp;
    /**
     * Indicates that the pattern is implicitly added as opposed to user specified.
     */
    private readonly isImplicitPattern;
    constructor(pattern: string);
    constructor(pattern: string, isImplicitPattern: boolean, segments: undefined, homedir: string);
    constructor(negate: boolean, isImplicitPattern: boolean, segments: string[], homedir?: string);
    /**
     * Matches the pattern against the specified path
     */
    match(itemPath: string): MatchKind;
    /**
     * Indicates whether the pattern may match descendants of the specified path
     */
    partialMatch(itemPath: string): boolean;
    /**
     * Escapes glob patterns within a path
     */
    static globEscape(s: string): string;
    /**
     * Normalizes slashes and ensures absolute root
     */
    private static fixupPattern;
    /**
     * Attempts to unescape a pattern segment to create a literal path segment.
     * Otherwise returns empty string.
     */
    private static getLiteral;
    /**
     * Escapes regexp special characters
     * https://javascript.info/regexp-escaping
     */
    private static regExpEscape;
}