import type { CommentThread } from "../runDirectory/comments.js"; import { anchorFor } from "./marks.js"; import { type StoryRow } from "./story.js"; import type { EventEnvelope, TreeNode } from "./types.js"; export type ExpandedRow = { address: string; kind: StoryRow["kind"]; /** `Thread · reviewer · LLM call 4 of 9 · gpt-5 · 2.1s · $0.004` */ header: string; text: string; json: { address: string; kind: StoryRow["kind"]; header: string; anchor: ReturnType; events: EventEnvelope[]; /** A hosted call's own items from the provider; it has no events. */ providerItems?: unknown[]; comments: CommentThread[]; }; }; export declare function expandRow(trace: TreeNode, rowId: string, threads?: readonly CommentThread[]): ExpandedRow | undefined; /** The one-line summary of where a row sits: the viewer spreads these * facts over the outline and the token line. `session show` prints it * whole; `agency logs outline` and `search` cut it to a width. */ export declare function headerLine(row: StoryRow, trace: TreeNode): string; /** A thread whose row no longer resolves is listed by its anchor and marked * re-anchored, replies included, never dropped. */ export declare function unresolvedCommentText(thread: CommentThread): string;