import type { MarkdownStreamCache } from "../../ui-core/rendering/streaming-markdown.js"; import type { TranscriptItem, TranscriptState } from "../../ui-core/state/transcript-types.js"; import type { InkTheme } from "../render/ink-theme.js"; import { type BlockContext, type SpoolReader } from "../blocks/block-context.js"; import { type IntroBlockInput } from "../blocks/intro-lines.js"; export type BlockKind = "intro" | "user" | "assistant" | "thinking" | "tool" | "batch" | "diff" | "compacted" | "notice" | "turn-summary"; export interface FeedBlock { readonly key: string; readonly itemId: string; readonly kind: BlockKind; readonly open: boolean; readonly lines: readonly string[]; readonly turnId: string | undefined; readonly sequence: number; } export declare const MAX_BLOCK_ROWS = 400; export declare const INTRO_ITEM_ID = "intro"; export interface FeedViewInput { readonly columns: number; readonly ink: InkTheme; readonly now: number; readonly spool?: SpoolReader | undefined; readonly generation: number; readonly intro?: IntroBlockInput | undefined; readonly markdownCaches?: ReadonlyMap | undefined; } export declare function blockContextFor(state: TranscriptState, view: FeedViewInput): BlockContext; export declare function toolBlockKind(item: Extract): BlockKind; export declare function buildFeedBlocks(state: TranscriptState, view: FeedViewInput): readonly FeedBlock[];