//#region src/domain/types.d.ts
/**
* Core type definitions
*/
type ToolId = "claude" | "codex" | "gemini" | "xling";
type Scope = "user" | "project" | "local" | "system";
type SettingAction = "list" | "edit" | "switch-profile" | "inspect";
type OutputFormat = "json" | "table";
type ConfigValue = string | number | boolean | null | Date | ConfigValue[] | ConfigObject;
interface ConfigObject {
  [key: string]: ConfigValue;
}
interface EditOptions {
  name?: string;
  ide?: string;
}
interface SwitchOptions {
  preview?: boolean;
  backup?: boolean;
}
interface SettingsFileEntry {
  filename: string;
  variant: string;
  path: string;
  scope: Scope;
  active: boolean;
  exists: boolean;
  size?: number;
  lastModified?: Date;
}
type SettingsListData = {
  type: "entries";
  entries: ConfigObject;
  filePath: string;
} | {
  type: "files";
  files: SettingsFileEntry[];
};
/**
* Input payload for settings operations
*/
interface SettingsPayload {
  tool: ToolId;
  scope: Scope;
  action: SettingAction;
  profile?: string;
  name?: string;
  ide?: string;
  format?: OutputFormat;
  switchOptions?: SwitchOptions;
}
/**
* Result returned by settings operations
*/
interface SettingsResult<TData = ConfigValue | ConfigObject | SettingsListData | InspectResult> {
  success: boolean;
  data?: TData;
  message?: string;
  filePath?: string;
  diff?: string;
  preview?: boolean;
}
/**
* Inspect command result
*/
interface InspectResult {
  path: string;
  exists: boolean;
  content?: string;
  size?: number;
  lastModified?: Date;
}
/**
* Launch-related types
*/
/**
* Launch payload
*/
interface LaunchPayload {
  tool: ToolId;
  yolo?: boolean;
  args?: string[];
  cwd?: string;
  resume?: boolean;
  continue?: boolean;
  settings?: string;
}
/**
* Launch result
*/
interface LaunchResult<TData = ConfigObject> {
  success: boolean;
  pid?: number;
  command?: string;
  message?: string;
  data?: TData;
}
/**
* Launch command specification
*/
interface LaunchCommandSpec {
  executable: string;
  baseArgs: string[];
  yoloArgs?: string[];
  envVars?: Record<string, string>;
}
//#endregion
export { LaunchCommandSpec as a, OutputFormat as c, SettingsFileEntry as d, SettingsListData as f, ToolId as g, SwitchOptions as h, InspectResult as i, Scope as l, SettingsResult as m, ConfigValue as n, LaunchPayload as o, SettingsPayload as p, EditOptions as r, LaunchResult as s, ConfigObject as t, SettingAction as u };