export interface NormalizedScopePrefix { exact: string; descendant: string; } /** Normalize one scope prefix for both in-memory and LanceDB matching. */ export declare function normalizeScopePrefix(prefix: string): NormalizedScopePrefix; /** * True when `path` equals `prefix` or is a descendant of it, using a separator * boundary so `/foo/bar` does not match `/foo/barista`. The separator is derived * from `prefix`; trailing separators on `prefix` are normalized so `/a/b`, * `/a/b/`, and `/a/b//` are equivalent. `path` is compared verbatim, matching * the SQL contract in `buildPrefixPredicate`. */ export declare function isUnderOrEqual(path: string, prefix: string): boolean; /** * True when `path` is under-or-equal any prefix in `prefixes` (union). Empty or * undefined `prefixes` semantics are the caller's concern; an empty list yields * false (membership against no prefixes). */ export declare function matchesAnyScope(path: string, prefixes: string[]): boolean; /** * Return the prefixes in `scope` that are NOT absolute paths (server-OS path * style, via `node:path` `isAbsolute` — the same path style scope matching * uses). A non-absolute prefix matches nothing under the exact-or-descendant * contract, so both list surfaces surface these as non-fatal warnings while * preserving the "matches nothing" result semantics. Input order is preserved. */ export declare function nonAbsolutePrefixes(scope: string[]): string[]; /** * Directory-visit predicate for the scoped BFS walk, shared by both walkers so * the boundary semantics live in one place. Visit `dir` when there is no scope, * when `dir` is in-scope (under-or-equal a prefix), or when `dir` is an ancestor * of some prefix (must be descended to reach the scoped subtree). An absent or * empty `scope` visits every directory (traversal unchanged). */ export declare function shouldVisitDir(dir: string, scope?: string[]): boolean; /** * File-collect predicate for the scoped BFS walk, shared by both walkers. * Collect `path` when there is no scope, or when `path` is in-scope. An absent * or empty `scope` collects every supported file (collection unchanged). */ export declare function isInScope(path: string, scope?: string[]): boolean; //# sourceMappingURL=scope-match.d.ts.map