/**
 * Tool Installer Service Implementation
 *
 * Provides tool availability checking, installation command resolution,
 * and installation execution with streaming output and timeout handling.
 *
 * Features:
 * - Check binary availability using 'which' command
 * - Retrieve platform-specific installation commands
 * - Execute installations with real-time output streaming
 * - Automatic timeout handling with process termination
 * - Immutable status objects via value object factory functions
 */
import type { IToolInstallerService, AvailableTerminalEntry, TerminalOpenConfig } from '../../../application/ports/output/services/tool-installer.service.js';
import type { ToolInstallationStatus, ToolInstallCommand } from '../../../domain/generated/output.js';
export declare class ToolInstallerServiceImpl implements IToolInstallerService {
    /**
     * Check if a tool binary is available on the system (PATH check,
     * with verifyCommand fallback for GUI apps).
     */
    checkAvailability(toolName: string): Promise<ToolInstallationStatus>;
    /**
     * Get the install command metadata for a tool on the current platform.
     * Returns null if tool is unknown or not supported on current platform.
     */
    getInstallCommand(toolName: string): ToolInstallCommand | null;
    /**
     * Execute installation of a tool with live output streaming.
     * Streams stdout/stderr to optional callback and handles timeout automatically.
     */
    executeInstall(toolName: string, onOutput?: (data: string) => void): Promise<ToolInstallationStatus>;
    /**
     * List all terminal emulators supported on the current platform with availability status.
     * TOOL_METADATA is loaded in the Node.js CLI context, so this is safe to call from the
     * DI container even when the Next.js standalone bundle cannot resolve tools/ via import.meta.url.
     */
    listAvailableTerminals(): Promise<AvailableTerminalEntry[]>;
    getTerminalOpenConfig(terminalId: string): TerminalOpenConfig | null;
    /**
     * Create installation suggestions for a tool based on its metadata
     */
    private createInstallationSuggestions;
}
//# sourceMappingURL=tool-installer.service.d.ts.map