import { EventEmitter } from 'events'; export interface TaskReviewJob { id: string; projectId: string; specName: string; taskId: string; status: 'pending' | 'running' | 'completed' | 'failed'; startedAt: string; completedAt?: string; error?: string; verdict?: string; version?: number; model?: string; } interface RunOptions { projectId: string; specName: string; taskId: string; /** * Shared workflow root — the directory holding `.spec-workflow`. Used for * `getSpecPath` and as `ToolContext.projectPath` (requirement 5.2/5.3). */ workflowRoot: string; /** * Worktree whose code is under review. Used as `ToolContext.workspacePath` * and as the review agent's spawn `cwd` (requirement 5.3/5.4). */ workspacePath: string; model?: string; cli?: string; cliArgs?: string[]; } export declare class TaskReviewRunner extends EventEmitter { private jobs; private processes; private timeouts; getJob(jobId: string): TaskReviewJob | undefined; getJobsForProject(projectId: string): TaskReviewJob[]; getActiveJobsForProject(projectId: string): TaskReviewJob[]; run(opts: RunOptions): Promise; private executeJob; private buildPrompt; private formatPriorReviewContext; private stripMarkdownFences; private runAgent; cancelJob(jobId: string): boolean; private cleanupProcess; shutdown(): void; } export {}; //# sourceMappingURL=task-review-runner.d.ts.map