import type { RuleGroup } from './types'; /** * How the report names the tool it just blocked. Data-only, so a class (per CLAUDE.md). * * WHY it is a parameter: the header and footer used to be hard-coded to "write". A blocked READ * therefore printed "\u274c webpieces ai-hooks blocked this write:" and closed with "This is a pre-write * check. Fix and retry the Write/Edit." \u2014 observed live, and actively misleading, because the agent is * told to fix and retry the one tool it did not use. A blocked Bash command printed the same thing * against the path ``. */ export declare class ReportSubject { /** Fills "blocked this ___". */ noun: string; /** The closing line: what kind of check this was and which tool to retry. */ footer: string; constructor(noun: string, footer: string); } export declare const WRITE_SUBJECT: ReportSubject; export declare const READ_SUBJECT: ReportSubject; export declare const BASH_SUBJECT: ReportSubject; export declare function formatReport(relativePath: string, ruleGroups: readonly RuleGroup[], subject?: ReportSubject): string;