import type React from 'react'; import type { BodySegment } from './types.js'; /** * Width of the left border glyph in a single-border panel. Used to adjust * content width calculations where the border is a separate UI element. */ export declare const MESSAGE_PANEL_BORDER_WIDTH = 1; /** * Horizontal columns consumed by every bordered message panel * (border glyph + paddingLeft). Exported so tests can assert consistency. */ export declare const MESSAGE_PANEL_CHROME_WIDTH = 2; /** * Margin on each side of bordered panels, in columns. Prevents the * last character of a full-width line from wrapping at the terminal edge * and leaking into scrollback. Content inside the panel is narrower by * twice this value (left + right). */ export declare const MESSAGE_PANEL_MARGIN = 2; /** * Compute the real inner content width of an assistant panel. * termWidth - chrome (border+padding) only — no margin since panels are now full-width. */ export declare function assistantContentWidth(termWidth: number): number; /** * Split assistant text into prose and ```fenced``` code segments, in order. * Pure + testable. An unterminated fence treats the remainder as code. */ export declare function splitFencedBlocks(text: string): BodySegment[]; /** * Assistant message body: prose (with markdown tables) interleaved with * highlighted code blocks. */ declare function AssistantBodyImpl({ text, termWidth, contentWidth, }: { text: string; termWidth: number; /** Real inner width of the surrounding panel. Defaults to `termWidth`. */ contentWidth?: number | undefined; }): React.ReactElement; /** * Assistant message body, split into fenced/prose segments. * * Memoized on its primitive props so a streaming re-render only re-splits when * the text itself grows. */ export declare const AssistantBody: React.MemoExoticComponent; export {}; //# sourceMappingURL=assistant.d.ts.map