import type { BranchListItem, TaskListItem } from '../../../infra/task/index.js';
export type ListAction = 'diff' | 'instruct' | 'sync' | 'pull' | 'try' | 'merge' | 'delete';
export type BranchActionTarget = TaskListItem | Pick<BranchListItem, 'info' | 'originalInstruction'>;
export declare function resolveTargetBranch(target: BranchActionTarget): string;
export declare function resolveTargetWorktreePath(target: BranchActionTarget): string | undefined;
export declare function resolveTargetInstruction(target: BranchActionTarget): string;
/**
 * Validates that the target is a task target with a valid worktree path.
 * Returns `false` with an error log if validation fails.
 * Throws if the target is not a task target (programming error).
 */
export declare function validateWorktreeTarget(target: BranchActionTarget, actionName: string): target is TaskListItem & {
    worktreePath: string;
};
export declare function ensureRootBranchReady(projectDir: string, target: BranchActionTarget, actionName: string): boolean;
/** Relay push: clone HEAD を root repo 経由で origin へ転送する（checked-out branch を変更しない） */
export declare function pushWorktreeToOrigin(worktreePath: string, projectDir: string, branch: string): void;
//# sourceMappingURL=taskActionTarget.d.ts.map