import type { ProjectContext } from "./project.js"; export interface DeployResult { pythonPluginEnabled: boolean; cppPluginDeployed: boolean; cppPluginEnabled: boolean; error?: string; } export interface AttachResult { pythonPluginEnabled: boolean; cppPluginEnabled: boolean; cppPluginPresent: boolean; packagedVersion: string | null; installedVersion: string | null; versionMatch: boolean | null; error?: string; } /** * Deploy the C++ bridge plugin to the target UE project. * * Copies plugin source from plugin/ue_mcp_bridge/ into the target * project's Plugins/UE_MCP_Bridge/ directory (skipping build artifacts). * Also enables PythonScriptPlugin in the .uproject because the C++ * bridge's `execute_python` handler calls into it at runtime. */ export declare function deploy(context: ProjectContext): DeployResult; export declare function deploySummary(r: DeployResult): string; /** * Non-destructive attach used on normal MCP server startup. * * Unlike `deploy()`, this NEVER overwrites bridge source under * `Plugins/UE_MCP_Bridge/Source/` — so local forks/edits and * project-tracked bridge revisions are preserved. It only: * - ensures PythonScriptPlugin is listed in the .uproject * - ensures UE_MCP_Bridge is listed in the .uproject * - reports plugin presence + version for a warning-level check * * If the plugin is missing or a version mismatch is detected, callers * should surface that to the user and ask them to run `ue-mcp init` * or `ue-mcp deploy` explicitly. */ export declare function attach(context: ProjectContext): AttachResult; export declare function attachSummary(r: AttachResult): string; export declare function findEngineInstall(engineAssociation: string | null): string | null;