/**
 * Canonical reparent logic — move a task to a different parent in the hierarchy.
 * Both CLI (reparent command) and core (updateTask) delegate here.
 *
 * This module operates on an in-memory TaskFile. The caller is responsible
 * for loading and saving the data (via DataAccessor or direct JSON I/O).
 *
 * @task T4807
 * @epic T4454
 */
import type { TaskFile } from '@cleocode/contracts';
import type { HierarchyPolicy } from './hierarchy-policy.js';
/** Options for reparenting a task. */
export interface ReparentOptions {
    taskId: string;
    /** New parent ID, or null to promote to root. */
    newParentId: string | null;
    /** Optional resolved hierarchy policy. If not provided, uses llm-agent-first defaults. */
    policy?: HierarchyPolicy;
}
/** Result of a reparent operation. */
export interface ReparentResult {
    oldParent: string | null;
    newParent: string | null;
    newType: string;
}
/**
 * Reparent a task within a TaskFile.
 *
 * Mutates the task in-place within `data.tasks`. Updates `parentId`, `type`,
 * and `updatedAt` on the target task, and `lastUpdated` on the TaskFile.
 *
 * @param data  The loaded TaskFile (mutated in place)
 * @param opts  Reparent options (taskId, newParentId)
 * @returns     Result with old/new parent and new type
 */
export declare function reparentTask(data: TaskFile, opts: ReparentOptions): Promise<ReparentResult>;
//# sourceMappingURL=reparent.d.ts.map