import type { IgnoreLike } from "glob"; /** Always excluded, whatever the config says. Root-relative, like `exclude`. */ export declare const EXCLUDE_FLOOR: readonly string[]; /** The parsed `.vigilesrc.json#exclude`, in the forms a walk consumes. */ export interface ExcludeSet { /** Absolute repo root every pattern is relative to. */ readonly root: string; /** The user's patterns, as written (for messages). */ readonly patterns: readonly string[]; /** * The function face for `globSync`, correct whatever the glob's `cwd` is. A * bare directory name excludes its subtree (`bench` → `bench`, `bench/**`), * which is what "tsconfig-style" promises. */ readonly globIgnore: IgnoreLike; /** Is this root-relative path excluded (floor or user pattern)? */ matches(rel: string): boolean; /** The pattern that excludes this root-relative path, or null when none does. */ explain(rel: string): string | null; } /** Parse `.vigilesrc.json#exclude` once, against `root`. The glob semantics * (root-relative, a bare directory covers its subtree, dotfiles match) are * `root-globs.ts`'s — the same ones `overrides[].files` uses. */ export declare function excludeSet(root: string, patterns: readonly string[] | undefined): ExcludeSet; /** * Is this ABSOLUTE path dropped by `.vigilesrc.json#exclude`? * * The PREDICATE face, for a hand-rolled recursive walk that has an absolute path * in hand and no glob (`readTree` in `src/plugin-loader.ts`, the bounded root * walk in `src/surface-discovery-fs.ts`). A predicate rather than an * `ExcludeSet` so the walk never has to remember which root the patterns are * relative to: {@link excludedBy} closes over `excludes.root`, which is the REPO * root and NOT the audited dir — `vigiles audit some/dir` must still honour a * root-relative `exclude`. * * Lives HERE, beside the other two faces, because this file is the one * exclusion policy (#192) and this was its third face living in one caller's * private scope — which is how a second walk ends up writing a fourth. */ export type Excluded = (absPath: string) => boolean; /** The default: exclude nothing (every caller that passes no `ExcludeSet`). */ export declare const excludesNothing: Excluded; /** The {@link Excluded} face of an `ExcludeSet`, or {@link excludesNothing}. */ export declare function excludedBy(excludes: ExcludeSet | undefined): Excluded; //# sourceMappingURL=exclude.d.ts.map