//#region src/domain/git.d.ts
/**
* Git command types and interfaces
* Defines the contract for git-related operations
*/
type GitWorktreeAction = "list" | "add" | "remove" | "prune" | "switch";
declare const SUPPORTED_BROWSERS: readonly ["chrome", "safari", "firefox", "arc", "edge", "dia"];
type SupportedBrowser = (typeof SUPPORTED_BROWSERS)[number];
type GitCommandPayload = {
  cwd?: string;
  command: "worktree";
  data: GitWorktreeRequest;
} | {
  cwd?: string;
  command: "prr";
  data: GitPrRequest;
} | {
  cwd?: string;
  command: "prv";
  data: GitViewRequest;
} | {
  cwd?: string;
  command: "prc";
  data: GitCreatePrRequest;
};
/**
* Worktree operation request
*/
interface GitWorktreeRequest {
  action: GitWorktreeAction;
  path?: string;
  branch?: string;
  base?: string;
  force?: boolean;
  detach?: boolean;
  interactive?: boolean;
  create?: boolean;
}
/**
* PR checkout request
*/
interface GitPrRequest {
  id: string;
  branch?: string;
  strategy: "gh" | "git";
  remote?: string;
}
/**
* PR view request
*/
interface GitViewRequest {
  id: string;
  browser?: string;
  openFlags?: string[];
}
/**
* PR create request
*/
interface GitCreatePrRequest {
  title?: string;
  body?: string;
  base?: string;
  head?: string;
  draft?: boolean;
  web?: boolean;
  browser?: string;
  assignee?: string[];
  reviewer?: string[];
  label?: string[];
}
interface WorktreeStatus {
  path: string;
  branch?: string;
  head?: string;
}
interface GitCommandDetails {
  output?: string;
  worktrees?: WorktreeStatus[];
  path?: string;
  branch?: string;
  strategy?: "gh" | "git";
  remote?: string;
  draft?: boolean;
  web?: boolean;
  base?: string;
  head?: string;
  title?: string;
  browser?: string;
  platform?: NodeJS.Platform;
  id?: string;
}
/**
* Result of a git command execution
*/
interface GitCommandResult {
  success: boolean;
  message: string;
  details?: GitCommandDetails;
}
//#endregion
export { GitPrRequest as a, GitWorktreeRequest as c, WorktreeStatus as d, GitCreatePrRequest as i, SUPPORTED_BROWSERS as l, GitCommandPayload as n, GitViewRequest as o, GitCommandResult as r, GitWorktreeAction as s, GitCommandDetails as t, SupportedBrowser as u };