import type { RuntimeBoardCard, RuntimeBoardColumnId, RuntimeBoardData, RuntimeBoardDependency, RuntimeTaskAutoReviewMode, RuntimeTaskImage } from "./api-contract.js";
export interface RuntimeCreateTaskInput {
    prompt: string;
    startInPlanMode?: boolean;
    autoReviewEnabled?: boolean;
    autoReviewMode?: RuntimeTaskAutoReviewMode;
    images?: RuntimeTaskImage[];
    baseRef: string;
}
export interface RuntimeUpdateTaskInput {
    prompt: string;
    startInPlanMode?: boolean;
    autoReviewEnabled?: boolean;
    autoReviewMode?: RuntimeTaskAutoReviewMode;
    images?: RuntimeTaskImage[];
    baseRef: string;
}
export interface RuntimeCreateTaskResult {
    board: RuntimeBoardData;
    task: RuntimeBoardCard;
}
export interface RuntimeMoveTaskResult {
    moved: boolean;
    board: RuntimeBoardData;
    task: RuntimeBoardCard | null;
    fromColumnId: RuntimeBoardColumnId | null;
}
export interface RuntimeUpdateTaskResult {
    board: RuntimeBoardData;
    task: RuntimeBoardCard | null;
    updated: boolean;
}
export interface RuntimeAddTaskDependencyResult {
    board: RuntimeBoardData;
    added: boolean;
    reason?: "missing_task" | "same_task" | "duplicate" | "trash_task" | "non_backlog";
    dependency?: RuntimeBoardDependency;
}
export interface RuntimeRemoveTaskDependencyResult {
    board: RuntimeBoardData;
    removed: boolean;
}
export interface RuntimeTrashTaskResult extends RuntimeMoveTaskResult {
    readyTaskIds: string[];
}
export interface RuntimeDeleteTasksResult {
    board: RuntimeBoardData;
    deleted: boolean;
    deletedTaskIds: string[];
}
export declare function updateTaskDependencies(board: RuntimeBoardData): RuntimeBoardData;
export declare function addTaskToColumn(board: RuntimeBoardData, columnId: RuntimeBoardColumnId, input: RuntimeCreateTaskInput, randomUuid: () => string, now?: number): RuntimeCreateTaskResult;
export declare function getTaskColumnId(board: RuntimeBoardData, taskId: string): RuntimeBoardColumnId | null;
export declare function addTaskDependency(board: RuntimeBoardData, firstTaskId: string, secondTaskId: string): RuntimeAddTaskDependencyResult;
export declare function canAddTaskDependency(board: RuntimeBoardData, firstTaskId: string, secondTaskId: string): boolean;
export declare function removeTaskDependency(board: RuntimeBoardData, dependencyId: string): RuntimeRemoveTaskDependencyResult;
export declare function getReadyLinkedTaskIdsForTaskInTrash(board: RuntimeBoardData, taskId: string): string[];
export declare function trashTaskAndGetReadyLinkedTaskIds(board: RuntimeBoardData, taskId: string, now?: number): RuntimeTrashTaskResult;
export declare function deleteTasksFromBoard(board: RuntimeBoardData, taskIds: Iterable<string>): RuntimeDeleteTasksResult;
export declare function moveTaskToColumn(board: RuntimeBoardData, taskId: string, targetColumnId: RuntimeBoardColumnId, now?: number): RuntimeMoveTaskResult;
export declare function updateTask(board: RuntimeBoardData, taskId: string, input: RuntimeUpdateTaskInput, now?: number): RuntimeUpdateTaskResult;
//# sourceMappingURL=task-board-mutations.d.ts.map