import { BotGuardConfig } from '../config'; /** * `fullcourtdefense install-claude-hook` — Claude-format hook installer. * * Writes PreToolUse + UserPromptSubmit hooks into ~/.claude/settings.json. * That ONE file is read by THREE clients: * - Claude Code (CLI + desktop) * - VS Code Copilot agent mode (user-scope Claude-format hooks) * - GitHub Copilot CLI * * The hook command is the same `fullcourtdefense hook` bridge used for Cursor — * it detects the Claude payload format from stdin (`hook_event_name`), so no * per-client configuration is needed. VS Code ignores `matcher` values (hooks * run on every tool), so the bridge self-filters by tool name and returns an * empty verdict for tools we don't police. */ export interface InstallClaudeHookArgs { project?: string; shieldId?: string; shieldKey?: string; apiUrl?: string; shadow?: string; failClosed?: string; events?: string; } export interface ClaudeManagedHookRepairResult { file: string; existed: boolean; managedEntries: number; staleEntries: number; /** Managed entries with a hand-added `--shadow true` (enforcement downgrade tamper). */ weakenedEntries?: number; changed: boolean; } export declare function inspectClaudeManagedHooks(): ClaudeManagedHookRepairResult; /** Repair managed commands without changing matcher/event/fail-open behavior. */ export declare function repairClaudeManagedHooks(): ClaudeManagedHookRepairResult; export declare function installClaudeHookCommand(args: InstallClaudeHookArgs, config: BotGuardConfig): Promise; export declare function uninstallClaudeHookCommand(args: InstallClaudeHookArgs): Promise;