import type { GitProvider } from '../git/index.js'; export type IssueEnqueueGitProvider = Pick; export interface SaveEnqueuedTaskFileOptions extends Record { workflow?: string; issue?: number; worktree?: boolean | string; branch?: string; baseBranch?: string; autoPr?: boolean; draftPr?: boolean; managedPr?: boolean; shouldPublishBranchToOrigin?: boolean; prNumber?: number; contextPrNumber?: number; } export interface PreparedTaskSpecDirectory { taskDir: string; taskDirRelative: string; } export type PreparedEnqueuedTaskSpec = PreparedTaskSpecDirectory; export type PrepareEnqueuedTaskSpec = (cwd: string, taskContent: string) => PreparedEnqueuedTaskSpec; export type SaveEnqueuedTaskFile = (cwd: string, taskContent: string, options?: SaveEnqueuedTaskFileOptions, prepareTaskSpec?: PrepareEnqueuedTaskSpec, abortSignal?: AbortSignal) => Promise<{ taskName: string; tasksFile: string; }>; export type CreateEnqueueIssueFromTaskResult = (task: string, options?: { labels?: string[]; cwd?: string; title?: string; explicitTitle?: string; outputMode?: 'terminal' | 'silent'; gitProvider?: Pick; }) => { success: true; issueNumber: number; issueUrl?: string; } | { success: false; issueCreated: true; issueUrl?: string; error: string; } | { success: false; issueCreated?: false; error: string; }; export interface EnqueueTaskContext { branch?: string; baseBranch?: string; prNumber?: number; } export interface SaveEnqueuedTaskOptions { workflow: string; worktree?: boolean; autoPr?: boolean; draftPr?: boolean; managedPr?: boolean; shouldPublishBranchToOrigin?: boolean; issueNumber?: number; taskContext?: EnqueueTaskContext; } export interface EnqueueTaskRequest extends SaveEnqueuedTaskOptions { cwd: string; task: string; abortSignal?: AbortSignal; } export interface IssueEnqueueTaskRequest extends EnqueueTaskRequest { labels?: string[]; /** Generated title that must pass the issue-title fallback rules. */ title?: string; /** User-supplied title that intentionally bypasses generated-title fallback rules. */ explicitTitle?: string; gitProvider: IssueEnqueueGitProvider; issueOutputMode?: 'terminal' | 'silent'; } export interface IssueTaskEnqueuedContext { issueNumber: number; issueUrl?: string; } export type IssueTaskEnqueuedHandler = (context: IssueTaskEnqueuedContext) => void; export interface IssueEnqueueDependencies { saveTaskFile: SaveEnqueuedTaskFile; createIssueFromTaskResult: CreateEnqueueIssueFromTaskResult; onIssueTaskEnqueued?: IssueTaskEnqueuedHandler; } export type EnqueueTaskResult = Awaited> & { workflow: string; issueNumber?: number; }; export type IssueEnqueueFailure = { issueCreated: false; taskEnqueued: false; stage: 'issue_creation'; error: string; } | { issueCreated: true; taskEnqueued: false; stage: 'issue_number_parsing'; issueUrl?: string; error: string; } | { issueCreated: true; issueNumber: number; issueUrl?: string; taskEnqueued: false; stage: IssueEnqueueFailureStage; error: unknown; }; export type IssueEnqueueFailureStage = 'task_saving' | 'cancelled_after_issue_creation'; export type IssueEnqueueResult = { success: true; created: EnqueueTaskResult; } | { success: false; failure: IssueEnqueueFailure; }; export interface PrepareTaskSpecDirectoryOptions { orderContent?: string; beforeWrite?: (taskDir: string) => void; } export declare function reserveTaskSpecDirectory(cwd: string, taskContent: string): PreparedTaskSpecDirectory; export declare function cleanupTaskSpecDirectory(taskDir: string): void; export declare function prepareTaskSpecDirectory(cwd: string, taskContent: string, options?: PrepareTaskSpecDirectoryOptions): PreparedTaskSpecDirectory; export declare function formatIssueEnqueueFailure(failure: IssueEnqueueFailure, formatError: (error: unknown) => string): string; export declare function enqueueTask(input: EnqueueTaskRequest, saveTaskFile: SaveEnqueuedTaskFile): Promise; export declare function createIssueAndEnqueueTask(input: IssueEnqueueTaskRequest, deps: IssueEnqueueDependencies): Promise; export declare class IssueEnqueueCancelledError extends Error { constructor(); } //# sourceMappingURL=enqueueService.d.ts.map