/**
 * HooksManager — manages ccweb entries in CLI tool settings files
 *
 * install() is idempotent: always calls uninstall() first, then adds fresh hooks.
 * This handles the crash-without-cleanup scenario correctly.
 *
 * Hook commands include "# ccweb-hook" marker at the end so uninstall()
 * can precisely identify and remove them without touching user-defined hooks.
 *
 * Adapter coverage:
 *   - Claude: full hook lifecycle (PreToolUse / PostToolUse / Stop / PermissionRequest)
 *     via `~/.claude/settings.json` + statusLine
 *   - Gemini: partial (PostToolUse + Stop) via its own settings.json
 *   - Codex / OpenCode / Qwen: `getHooksSettingsPath()` returns null, skipping.
 *     Codex uses `~/.codex/config.toml` `notify = [argv...]` which only fires
 *     at turn-complete — semantically incompatible with the pre-tool hook
 *     model ccweb is built around. Not a missed abstraction; deliberate.
 */
declare class HooksManager {
    private portFile;
    constructor(portFile: string);
    /** Remove all ccweb hook entries (identified by CCWEB_MARKER) for a specific adapter */
    private uninstallForAdapter;
    /** Install hooks for a specific adapter */
    private installForAdapter;
    /** Remove all ccweb hook entries from all supported tools */
    uninstall(): void;
    /** Idempotent install: remove stale entries first, then add fresh hooks for all supported tools */
    install(): void;
    isInstalled(): boolean;
}
export { HooksManager };
//# sourceMappingURL=hooks-manager.d.ts.map