import { type Overlay, type OverlayHost } from "../overlay-host.js"; import type { RoostPort } from "../roost-port.js"; /** What the overlay asks of the daemon. */ export interface WorkspacesPort { tasks: Pick; } /** What the overlay needs of the view. */ export type WorkspacesHost = Pick, "port" | "theme" | "say" | "close" | "requestRender" | "attachTo" | "rows" | "current" | "notice" | "termRows" | "taskChanges">; export interface WorkspacesOpts { /** The repository the hub is in (every project's tasks when null). */ here: string | null; /** Open at the next task that needs you. */ next: boolean; /** Open with this task selected. */ focus?: number; /** A line of `/tasks` (`merge 4`, `start 9`, `back 4 note`, …): the view's command, which says what came of it. */ tasksCommand(line: string): Promise; /** Open the review of task `id` (the overlay has closed itself; Esc there comes back here). */ openReview(id: number): void; } /** * Loads the tasks first; `undefined` when that failed (the host has been told). The overlay * follows the board: its `onEvent` reloads on a `board` event. */ export declare function createWorkspacesOverlay(host: WorkspacesHost, opts: WorkspacesOpts): Promise;