import type { KeybindingsManager } from "../../../core/keybindings.ts"; import type { PromptRoute, TaskId, TaskRecord } from "../../../core/tasks/contracts.js"; import type { TaskDetailAction } from "./task-detail.js"; export type TaskFocus = { kind: "composer"; } | { kind: "tasks"; } | { kind: "detail"; } | { kind: "stdin"; taskId: TaskId; }; export type TaskNavigationActions = { inspect(task: TaskRecord): void; transcript(task: TaskRecord): void; foreground(task: TaskRecord): void; confirmCancel(task: TaskRecord): Promise; cancel(task: TaskRecord): void; input(task: TaskRecord): void; stdinAvailable(task: TaskRecord): boolean; openQuestion(route: PromptRoute): void; }; /** Shared focus state; activity updates never take ownership of editor input. */ export declare class TaskNavigation { focus: TaskFocus; selectedTaskId?: TaskId; private tasks; private keys; private actions; constructor(keys: KeybindingsManager, actions: TaskNavigationActions); update(tasks: readonly TaskRecord[]): void; open(taskId?: TaskId): void; activate(action: TaskDetailAction): Promise; moveSelection(delta: number): void; handleInput(data: string, inputOwner: "composer" | "hil" | "tasks"): boolean; } //# sourceMappingURL=task-navigation.d.ts.map