import type { Component } from "@caupulican/pi-tui"; import type { LaneRecord } from "../../../core/autonomy/lane-tracker.ts"; import { type GoalState } from "../../../core/goals/goal-state.ts"; import type { TaskStepsState } from "../../../core/tasks/task-state.ts"; import type { Theme } from "../theme/theme.ts"; export type ActivityLaneKind = "runtime" | "tool" | "task" | "worker" | "goal" | "queue" | "notice"; export type ActivityLaneStatus = "active" | "waiting" | "success" | "warning" | "failure" | "neutral"; export interface ActivityLaneItem { id: string; kind: ActivityLaneKind; label: string; status: ActivityLaneStatus; /** Short aggregation key (e.g. "bash", "python", "agent") for the concurrency slot. */ tag?: string; } export interface ActivityLaneCanonicalSnapshot { goalState?: GoalState; taskState?: TaskStepsState; laneRecords: readonly LaneRecord[]; } export interface ActivityLaneProjection { active: ActivityLaneItem[]; terminal: ActivityLaneItem[]; } export declare const BACKGROUND_TOOL_ACTIVITY_ID_PREFIX = "background-tool:"; export declare function backgroundToolActivityId(taskId: string): string; export declare function isBackgroundToolActivityItem(item: Pick): boolean; export declare function projectActivityLane(snapshot: ActivityLaneCanonicalSnapshot): ActivityLaneProjection; export declare function renderActivityLaneLine(theme: Theme, items: readonly ActivityLaneItem[], width: number): string[]; export declare class ActivityLaneComponent implements Component { private readonly theme; private readonly requestRender; private readonly terminalHoldMs; private sessionKey; private readonly canonical; private readonly live; private readonly transient; private readonly transientTimers; private readonly seenTerminalKeys; private transientSequence; constructor(theme: Theme, requestRender: () => void, terminalHoldMs?: number); private rememberTerminal; private addTransient; private applyProjection; replaceCanonical(sessionKey: string, snapshot: ActivityLaneCanonicalSnapshot): void; updateCanonical(sessionKey: string, snapshot: ActivityLaneCanonicalSnapshot): void; start(item: Omit): void; wait(item: Omit): void; update(id: string, label: string): void; remove(id: string): void; removeByPrefix(prefix: string): void; finish(id: string, status: "success" | "failure" | "neutral", fallback?: Omit): void; announce(label: string, status?: "success" | "warning" | "failure" | "neutral"): void; private clearTransient; getItems(): ActivityLaneItem[]; render(width: number): string[]; invalidate(): void; dispose(): void; } //# sourceMappingURL=activity-lane.d.ts.map