/**
 * Rules staleness — composed from a layered `rules.yaml` preset definition
 * plus per-layer `subrules/<name>.md` fragments. Fingerprints exactly the
 * source files that contribute to the active preset's composed output.
 *
 * Bug-fixed from v1: the old `resolveRuleFile` looked for `rules/<preset>.md`,
 * a path that never exists (presets live in `rules.yaml`, fragments live in
 * `subrules/`). That made the rules section always report stale. This module
 * uses `composeRulesFromState` to discover the actual source file set per
 * preset/cwd, so freshness reflects real source changes.
 *
 * Special-cased vs. the other checkers: agent + version are needed to read
 * the active preset, so this module doesn't conform to ResourceChecker. The
 * aggregator wires it up explicitly.
 */
import type { AgentId } from '../../types.js';
import type { RulesEntry } from '../types.js';
export declare function buildRules(agent: AgentId, version: string, cwd: string): RulesEntry;
export declare function isRulesStale(stored: RulesEntry, agent: AgentId, version: string, cwd: string): boolean;
