export type PatternContainment = { status: "proven_subset"; reason: string; } | { status: "not_subset"; reason: string; } | { status: "unknown"; reason: string; }; export type PatternOverlap = { status: "proven_overlap"; reason: string; } | { status: "proven_disjoint"; reason: string; } | { status: "unknown"; reason: string; }; export interface RepositoryPatternAst { normalized: string; segments: RepositoryPatternSegmentAst[]; } export type RepositoryPatternSegmentAst = { kind: "recursive"; raw: "**"; } | { kind: "segment"; raw: string; tokens: RepositoryPatternTokenAst[]; }; export type RepositoryPatternTokenAst = { kind: "literal"; value: string; } | { kind: "star"; } | { kind: "question"; }; export declare function parseRepositoryPattern(value: string, label?: string): RepositoryPatternAst; export declare function normalizeRepositoryFile(value: string, label?: string): string; export declare function normalizeRepositoryCwd(value: string, label?: string): string; export declare function assertRepositoryPattern(repositoryRoot: string, value: string, label: string): string; export declare function matchesRepoPattern(fileInput: string, patternInput: string): boolean; export declare function proveRepositoryPatternSubset(candidateInput: string, ownerInput: string): PatternContainment; export declare function classifyRepositoryPatternOverlap(leftInput: string, rightInput: string): PatternOverlap; export declare function repositoryPatternsMayOverlap(left: string, right: string): boolean;