export interface TaskOrigin { sessionId?: string | null; channel?: string | null; threadId?: string | null; } interface BulkTaskInput { key: string; text: string; why?: string; 'done-when'?: string; priority?: string; template?: string; plan?: string; 'depends-on'?: string[]; gpu?: string; 'gpu-count'?: number; } declare function addTask(project: string, text: string | null, why: string | null, doneWhen: string | null, priority?: string, template?: string | null, dependsOn?: string[] | null, plan?: string | null, origin?: TaskOrigin | null): { success: boolean; message: string; task_id?: undefined; } | { success: boolean; message: string; task_id: string; }; declare function batchEdit(project: string, taskIds: string[], options?: any): { success: boolean; message: string; results: { taskId: string; success: boolean; message: string; }[]; }; /** Subtask input for decomposeTask. Accepts both kebab and snake key styles * ([SPLIT] proposals are agent-written JSON; be liberal in what we accept). */ interface DecomposeSubtaskInput { key?: string; text: string; template?: string; why?: string; done_when?: string; 'done-when'?: string; priority?: string; plan?: string; depends_on?: string[]; 'depends-on'?: string[]; } declare function decomposeTask(project: string, originalText: string | null, subtasks: DecomposeSubtaskInput[], taskId?: string | null, options?: { keepParent?: boolean; }): { success: boolean; message: string; child_ids?: undefined; } | { success: boolean; message: string; child_ids: string[]; }; declare function bulkAddTasks(project: string, inputs: BulkTaskInput[]): { success: boolean; message: string; created?: undefined; } | { success: boolean; message: string; created: { key: string; id: string; text: string; }[]; }; export { addTask, batchEdit, bulkAddTasks, decomposeTask };