import type { FileRole } from "../runtime/types.js"; import type { ProjectReadBoundary } from "../io/bootstrap-write-boundary.js"; import { type ProjectReadSnapshot } from "../io/project-read-snapshot.js"; import { type BoundedWalkResult } from "../io/bounded-path-walker.js"; import { type Phase0Scenario, type RuleMetadata } from "./rule-frontmatter.js"; import { type RuleFrontmatterDiagnostic } from "./rule-frontmatter-diagnostics.js"; export type { Phase0Scenario } from "./rule-frontmatter.js"; export type RuleCatalogEntry = { readonly path: string; readonly absolutePath: string; readonly metadata: RuleMetadata; readonly diagnostics: readonly RuleFrontmatterDiagnostic[]; readonly policies: readonly string[]; }; export declare function inspectRuleCatalogPaths(projectDir: string, boundary?: ProjectReadBoundary, snapshot?: ProjectReadSnapshot): BoundedWalkResult; export declare function loadRuleCatalog(projectDir: string, boundary?: ProjectReadBoundary, snapshot?: ProjectReadSnapshot): RuleCatalogEntry[]; export declare function targetPathForMatching(projectDir: string, fileRole: FileRole, targetFile?: string): string; export declare function isRuleEligibleForTarget(entry: RuleCatalogEntry, fileRole: FileRole, scenario: Phase0Scenario, targetPath: string): boolean;