/**
 * `neotoma hooks` — install / uninstall / status for lifecycle hooks.
 *
 * Hooks can be installed directly with `neotoma hooks install`, or
 * automatically by setup flows after Neotoma MCP has been configured for a
 * hook-capable harness. Runtime MCP servers never mutate harness config; only
 * local setup commands call these installers.
 *
 * The command itself is a thin wrapper that delegates to each package's own
 * installer script:
 *   - cursor   → packages/cursor-hooks/scripts/install.mjs
 *   - codex    → packages/codex-hooks/scripts/install.mjs
 *   - claude-code / opencode / claude-agent-sdk → print a snippet and exit
 *
 * Guardrails (enforced before any write):
 *   - `data.initialized === false` → refuse; instruct user to `neotoma init`.
 *   - `hooks.installed[tool].other_hook_plugins.length > 0` → refuse unless
 *     `--force` is set; surface the detected plugin names.
 *   - Non-interactive prompt by default; `--yes` bypasses confirmation.
 */
import { type DoctorReport } from "./doctor.js";
import type { HookHarnessId } from "./hooks_detect.js";
export interface HooksCommandOptions {
    tool: HookHarnessId;
    cwd?: string;
    dryRun?: boolean;
    yes?: boolean;
    force?: boolean;
}
export interface HooksCommandResult {
    ok: boolean;
    tool: HookHarnessId;
    action: "install" | "uninstall" | "status";
    message: string;
    /** Populated when delegation to a package script happened. */
    delegated_to: string | null;
    /** Raw doctor.hooks snapshot after the command. */
    status: DoctorReport["hooks"];
}
export declare function runHooksInstall(opts: HooksCommandOptions): Promise<HooksCommandResult>;
export declare function runHooksUninstall(opts: HooksCommandOptions): Promise<HooksCommandResult>;
export declare function runHooksStatus(opts?: {
    cwd?: string;
}): Promise<DoctorReport["hooks"]>;
//# sourceMappingURL=hooks.d.ts.map