import type { ToolInstallStatus } from "../types.js";
type ToolCommand = {
    kind: "execFile";
    command: string;
    args: string[];
    display: string;
} | {
    kind: "shell";
    display: string;
};
export declare const SUPPORTED_INSTALLABLE_TOOLS: readonly string[];
export declare const SUPPORTED_UNINSTALLABLE_TOOLS: readonly string[];
/**
 * 返回工具对应的全局卸载命令副本，用于诊断与测试卸载覆盖范围。
 */
export declare function getToolUninstallCommands(tool: string): string[];
/**
 * 返回工具对应的安装/卸载执行参数副本，用于验证 Windows 下不会把路径引号传给 npm。
 */
export declare function getToolCommandSpecs(tool: string, phase: "install" | "uninstall"): Array<{
    command: string;
    args: string[];
    display: string;
    kind: ToolCommand["kind"];
}>;
export declare function isVoltaShimPath(commandPath: string): boolean;
export declare function buildSdkCliInstallStatus(tool: string, sdkResult: {
    executable: string | null;
    version: string | null;
    error: string | null;
}, cliResult: {
    executable: string | null;
    error: string | null;
}, requiresCli: boolean): ToolInstallStatus;
/**
 * 检查单个工具的 CLI 可执行状态，供实例状态展示与初始化前判断使用。
 */
export declare function detectToolInstallStatus(tool: string): Promise<ToolInstallStatus>;
/**
 * 批量检查工具安装状态，统一返回给前端面板和实例状态持久化。
 */
export declare function detectToolStatuses(tools: string[]): Promise<Record<string, ToolInstallStatus>>;
/**
 * 根据勾选工具自动安装缺失 CLI，安装后重新检测状态并返回。
 */
export declare function ensureToolsInstalled(tools: string[]): Promise<Record<string, ToolInstallStatus>>;
/**
 * 按工具定义执行全局卸载命令，随后重新检测并返回最新安装状态。
 */
export declare function uninstallTools(tools: string[]): Promise<Record<string, ToolInstallStatus>>;
export {};
//# sourceMappingURL=tool-installer.d.ts.map