import type { RulePreReadDeps, RuleSet } from './rule-pre-read-types.js'; export type { EffectiveRule, ProjectLintTool, ProjectLintToolDetection, RuleLayer, RulePreReadDeps, RuleSet, ToolInvocation } from './rule-pre-read-types.js'; export { detectProjectLintTools, NO_LINT_TOOL_REASON } from './project-lint-tool-detection.js'; /** The reason a read with no problem reports. */ export declare const RULES_RESOLVED_REASON = "all three layers resolved"; /** * The effective rules for a file set, from all three layers. * * The returned `reason` is never empty: it names every layer that could not * be read, and says so plainly when all three were. */ export declare function readEffectiveRules(projectRoot: string, files: readonly string[], deps?: RulePreReadDeps): RuleSet; /** * The file set, repo-relative and POSIX-normalized. * * One file must be one string: a Windows path and a POSIX path naming the same * file would otherwise be two entries, and a rule that governs one of them * would look like it governs only half of the file. */ export declare function normalizeFileSet(projectRoot: string, files: readonly string[]): readonly string[];