/** * Worktree Manager * * Manages git worktrees for parallel autopilot workers. */ import { EventEmitter } from 'events'; import { BranchManager } from './branch-manager.js'; /** * Worktree info */ export interface WorktreeInfo { path: string; branch: string; head: string; isLocked: boolean; isPrunable: boolean; } /** * Worktree Manager Options */ export interface WorktreeManagerOptions { workingDirectory: string; worktreeBaseDir?: string; branchPrefix?: string; } /** * Worktree Manager Events */ export interface WorktreeManagerEvents { 'worktree:created': { workerId: number; path: string; branch: string; }; 'worktree:removed': { workerId: number; path: string; }; 'worktree:error': { workerId: number; error: string; }; } /** * Worktree Manager * * Creates and manages git worktrees for parallel worker execution. */ export declare class WorktreeManager extends EventEmitter { private workingDirectory; private worktreeBaseDir; private branchManager; private workerPaths; constructor(options: WorktreeManagerOptions); /** * Initialize the worktree base directory */ initialize(): Promise; /** * Ensure .worktrees is in .gitignore */ private ensureGitignore; /** * Create a worktree for a worker */ createWorkerWorktree(workerId: number, baseBranch?: string): Promise; /** * Remove a worker's worktree */ removeWorkerWorktree(workerId: number): Promise; /** * Get worktree path for a worker */ getWorkerPath(workerId: number): string; /** * List all git worktrees */ listWorktrees(): Promise; /** * Get worktree for a specific worker */ getWorkerWorktree(workerId: number): Promise; /** * Prune stale worktrees */ pruneWorktrees(): Promise; /** * Cleanup all worker worktrees */ cleanupAllWorktrees(): Promise; /** * Get number of active worktrees */ getActiveWorktreeCount(): number; /** * Check if a path exists */ private pathExists; /** * Lock a worktree */ lockWorktree(workerId: number, reason?: string): Promise; /** * Unlock a worktree */ unlockWorktree(workerId: number): Promise; /** * Move a worktree to a new location */ moveWorktree(workerId: number, newPath: string): Promise; /** * Get the branch manager */ getBranchManager(): BranchManager; /** * Get worktree base directory */ getWorktreeBaseDir(): string; /** * Get working directory */ getWorkingDirectory(): string; } /** * Create a worktree manager */ export declare function createWorktreeManager(options: WorktreeManagerOptions): WorktreeManager; //# sourceMappingURL=worktree-manager.d.ts.map