import type { Element } from "../../tui/elements.js"; import type { KeyEvent } from "../../tui/input/types.js"; import type { ViewerThresholds } from "../thresholds.js"; import type { TreeNode } from "../types.js"; import type { ViewAction, Viewport } from "../views/view.js"; import { type RowMarks } from "../marks.js"; import type { Screen } from "./screen.js"; type TraceOptions = { extractEnabled: boolean; }; export declare class TraceScreen implements Screen { private roots; private traceId; private readonly thresholds; private readonly opts; readonly screenName: "trace"; private machinery; private admin; private raw; private lineNumbers; private marks; /** Bumped on every setMarks, so the payload cache misses. */ private marksVersion; private collapsed; private defaultCollapsed; private groupDefaultsApplied; private showApprovals; private cursorId; private scrollTop; private pane; private paneScroll; private filter; private quick; private matchIds; private message; private following; private allRows; private visible; private page; private payloadHeight; private cache; private table; private moves; constructor(roots: TreeNode[], traceId: string, thresholds: ViewerThresholds, opts: TraceOptions); private bindings; handleKey(event: KeyEvent, viewport: Viewport): ViewAction; helpLines(): string[]; notify(message: string): void; setFollowIndicator(on: boolean): void; rowCount(): number; private trace; private selected; private derive; private ancestorFallback; private filterRows; private matches; private select; private clampOutline; private move; /** A row with nothing under it, such as an LLM call that requested no * tool, has nothing to fold and keeps its look. */ private toggleCollapsed; private hasChildren; private isCollapsed; private openRows; private moveSibling; private nextMatch; applySearch(query: string): void; escape(): boolean; focusId(): string | undefined; setFocus(id: string): void; setData(roots: TreeNode[]): void; setMarks(marks: RowMarks): void; /** The top of the outline as the person sees it: the first row a search * or quick filter left, else the first row at all. */ firstRowId(): string | undefined; /** Whether `setFocus(id)` would land on that row. An admin or machinery * row the settings hide, or one a `/` search or `F` filter removed, is * reported by a session's `navigate` instead of landed near or revealed * by clearing the person's filter. */ shows(rowId: string, trace?: TreeNode): boolean; /** The row under the cursor, as itself. `focusId` is for carrying focus to * another screen and names a round or tool a user turn or interrupt sits * under; a comment or an address wants the row that is selected. */ selectedRowId(): string | undefined; setTrace(traceId: string): void; private copyText; private outlineWidth; private payloadWidth; private payload; render(viewport: Viewport, sharedHints?: string): Element; private columns; } export {};