/**
 * LaunchToolUseCase
 *
 * Launches a tool in a target directory by delegating to IIdeLauncherService.
 * Validates tool existence and openDirectory capability before launching.
 * Returns a typed discriminated union result.
 */
import type { IIdeLauncherService } from '../../ports/output/services/ide-launcher-service.interface.js';
import type { IToolMetadataProvider } from '../../ports/output/services/tool-metadata-provider.interface.js';
export interface LaunchToolInput {
    toolId: string;
    directoryPath: string;
    /** When true, CLI agents open in a new terminal window instead of inheriting stdio. */
    headless?: boolean;
}
export type LaunchToolResult = {
    ok: true;
    editorName: string;
    path: string;
} | {
    ok: false;
    code: 'tool_not_found' | 'not_launchable' | 'launch_failed';
    message: string;
};
export declare class LaunchToolUseCase {
    private readonly ideLauncherService;
    private readonly toolMetadata;
    constructor(ideLauncherService: IIdeLauncherService, toolMetadata: IToolMetadataProvider);
    execute({ toolId, directoryPath, headless }: LaunchToolInput): Promise<LaunchToolResult>;
}
//# sourceMappingURL=launch-tool.use-case.d.ts.map