//#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 };