export interface MachineToolRegistryEntry {
    name: string;
    description: string;
    phase: string;
    versionArgs?: string[];
}
export interface MachineCommandOutput {
    code: number;
    stdout: string;
    stderr: string;
}
export type MachineCommandRunner = (command: string, args: string[]) => Promise<MachineCommandOutput>;
export interface MachineToolDetection {
    name: string;
    description: string;
    phase: string;
    installed: boolean;
    version: string;
    path: string | null;
    source: "path" | "known-location" | "missing";
}
export declare const MACHINE_SETUP_TOOL_REGISTRY: MachineToolRegistryEntry[];
export declare function resolveMachineHome(homeRoot?: string): string;
export declare function buildMachineEnv(homeRoot?: string): NodeJS.ProcessEnv;
export declare function runMachineCommand(command: string, args: string[], options?: {
    homeRoot?: string;
    commandRunner?: MachineCommandRunner;
    timeoutMs?: number;
}): Promise<MachineCommandOutput>;
export declare function discoverMachineTools(options?: {
    homeRoot?: string;
    commandRunner?: MachineCommandRunner;
    tools?: MachineToolRegistryEntry[];
}): Promise<MachineToolDetection[]>;
export declare function detectMachineTool(tool: MachineToolRegistryEntry, options?: {
    homeRoot?: string;
    commandRunner?: MachineCommandRunner;
    packageManagerBinDirs?: string[];
}): Promise<MachineToolDetection>;
export declare function resolveKnownToolCandidatePaths(toolName: string, homeRoot: string, packageManagerBinDirs?: string[]): string[];
//# sourceMappingURL=machine-setup-detection.d.ts.map