import { g as ToolId, o as LaunchPayload, s as LaunchResult } from "../../types-lRv_6IzV.js";
import { t as LaunchAdapter } from "../../interfaces-BOV8jLcZ.js";

//#region src/services/launch/dispatcher.d.ts

/**
* Applies SOLID principles:
* - SRP: only handles dispatching and process launch
* - OCP: registerAdapter enables extension
* - DIP: depends on LaunchAdapter, not concrete classes
* - LSP: adapters are interchangeable
*/
declare class LaunchDispatcher {
  #private;
  constructor();
  /**
  * Execute a launch request
  */
  execute(payload: LaunchPayload): Promise<LaunchResult>;
  /**
  * Register a new adapter (OCP extension point)
  */
  registerAdapter(adapter: LaunchAdapter): void;
  /**
  * Return all supported tool IDs
  */
  getSupportedTools(): ToolId[];
}
//#endregion
export { LaunchDispatcher };