namespace MCPForUnity.Editor.Services
{
///
/// Service for resolving paths to required tools and supporting user overrides
///
public interface IPathResolverService
{
///
/// Gets the MCP server path (respects override if set)
///
/// Path to the MCP server directory containing server.py, or null if not found
string GetMcpServerPath();
///
/// Gets the UV package manager path (respects override if set)
///
/// Path to the uv executable, or null if not found
string GetUvPath();
///
/// Gets the Claude CLI path (respects override if set)
///
/// Path to the claude executable, or null if not found
string GetClaudeCliPath();
///
/// Checks if Python is detected on the system
///
/// True if Python is found
bool IsPythonDetected();
///
/// Checks if UV is detected on the system
///
/// True if UV is found
bool IsUvDetected();
///
/// Checks if Claude CLI is detected on the system
///
/// True if Claude CLI is found
bool IsClaudeCliDetected();
///
/// Sets an override for the MCP server path
///
/// Path to override with
void SetMcpServerOverride(string path);
///
/// Sets an override for the UV path
///
/// Path to override with
void SetUvPathOverride(string path);
///
/// Sets an override for the Claude CLI path
///
/// Path to override with
void SetClaudeCliPathOverride(string path);
///
/// Clears the MCP server path override
///
void ClearMcpServerOverride();
///
/// Clears the UV path override
///
void ClearUvPathOverride();
///
/// Clears the Claude CLI path override
///
void ClearClaudeCliPathOverride();
///
/// Gets whether a MCP server path override is active
///
bool HasMcpServerOverride { get; }
///
/// Gets whether a UV path override is active
///
bool HasUvPathOverride { get; }
///
/// Gets whether a Claude CLI path override is active
///
bool HasClaudeCliPathOverride { get; }
}
}