import { Task } from "../../../../../../models/task.mjs"; import { DelegationManager } from "../../../../../../services/delegation/index.mjs"; import { ExtensionAPI, ExtensionContext, ExtensionUIContext } from "@earendil-works/pi-coding-agent"; //#region src/extensions/workspaces/sessions/(frontend)/overlay/_lib/taskOverlay.d.ts export interface TaskOverlayOptions { getTasks: () => readonly Task[]; delegation: DelegationManager; } /** The widget owns its collapse key, while the session root owns its lifetime. */ export declare function registerTaskCollapseShortcut(pi: Pick, overlay: TaskOverlay, waitUntilReady: (context: ExtensionContext) => Promise, isActive: () => boolean): void; /** * Persistent widget listing tasks above the editor. * * Registered once per UI context and refreshed with `requestRender()`; it * auto-hides when there is nothing to show so an idle session keeps a clean * prompt. */ export declare class TaskOverlay { private readonly options; private uiCtx; private widgetRegistered; private tui; private progressTimer; private collapsed; constructor(options: TaskOverlayOptions); /** Identity-compare so repeated session_start handlers stay idempotent. */ setUICtx(ctx: ExtensionUIContext): void; update(): void; private syncProgressTimer; private stopProgressTimer; toggleCollapse(): void; isRegistered(): boolean; private renderWidget; /** Pi adds a spacer above the widget but none below, which glues the last row to the input box. */ private withTrailingSpacer; dispose(): void; } //#endregion //# sourceMappingURL=taskOverlay.d.mts.map