/**
 * McpInstaller — service layer between McpScreen and MCP business logic.
 *
 * Decouples the screen from step internals. Testable, swappable,
 * no dynamic imports in React components.
 */
import type { CloudRegion } from '../../../utils/types.js';
export interface McpClientInfo {
    name: string;
}
export interface McpInstaller {
    /** Detect which MCP-capable editors are available on this machine. */
    detectClients(): Promise<McpClientInfo[]>;
    /**
     * Install the Amplitude MCP server to the given clients.
     *
     * `zone` is read at install-time (not at construction) because the user's
     * region isn't known when the installer is created at app mount — it's
     * picked on RegionSelect later. The MCP URL written into each editor's
     * config persists past the wizard run, so passing the wrong zone leaves
     * an EU user pointed at the US MCP host forever. Defaults to 'us' for
     * test stubs and rare callers without zone context.
     *
     * Returns names of successfully installed clients.
     */
    install(clientNames: string[], zone?: CloudRegion): Promise<string[]>;
    /** Remove the Amplitude MCP server from all installed clients. Returns names of removed clients. */
    remove(): Promise<string[]>;
}
/**
 * Production McpInstaller backed by real MCP client detection and installation.
 *
 * @param local - When true, installs/removes the local development server
 *   (http://localhost:8787) instead of the production server. Mirrors the
 *   --local-mcp CLI flag and session.localMcp.
 */
export declare function createMcpInstaller(local?: boolean): McpInstaller;
