import { type InstallScope } from "./install-paths.js"; export type { InstallScope } from "./install-paths.js"; export type InstallTarget = "codex" | "claude" | "grok" | "all"; export interface ClaudeCommandResult { /** Whether the `claude` executable was found on PATH. */ available: boolean; /** Whether the command exited successfully (exit code 0). */ ok: boolean; } /** Runs a `claude` CLI command. Injected so installs stay side-effect-free in tests. */ export type ClaudeCommandRunner = (command: string, args: string[]) => Promise; export interface InstallOptions { target: InstallTarget; scope: InstallScope; memoryRoot?: string; dryRun?: boolean; cwd?: string; home?: string; /** Skip the best-effort `claude plugin` marketplace+install registration. */ noPlugin?: boolean; /** Overwrite an existing, differing `memoryRoot` in `~/.augment/config.json` instead of throwing. */ force?: boolean; /** Runner used to invoke the `claude` CLI. When omitted, registration is not executed (manual fallback). */ runClaude?: ClaudeCommandRunner; /** Runner used to provision the hook runtime via `npm install`. When omitted, provisioning is not executed (manual fallback). */ runNpm?: ClaudeCommandRunner; } export interface InstallPlan { summary: string[]; files: string[]; } export declare function installIntegration(options: InstallOptions): Promise; /** * Pure TOML merge for Grok's `config.toml`: replaces any existing `[mcp_servers.augment]` * (and nested tables like `[mcp_servers.augment.env]`) while preserving every other section. * Exported for unit tests. */ export declare function upsertGrokMcpToml(existing: string | undefined, server: McpServerConfig): string; /** * Real `claude` CLI runner used by the command line. Detects availability with which/where so * "not found" is distinguishable from "ran but failed", then runs through a shell on Windows so * `.cmd`/`.ps1` shims resolve. Output is suppressed; only availability + exit status matter. */ export declare const defaultClaudeRunner: ClaudeCommandRunner; export interface McpServerConfig { command: string; args: string[]; env: Record; }