import type { RenderBlock } from './message-blocks'; import type { UiComponent } from './split-blocks'; export declare const GROUPED_SURFACE_TYPES: Set; export type UiRenderBlock = { kind: 'ui'; component: UiComponent; }; export type MdRenderBlock = { kind: 'md'; content: string; }; export type PendingRenderBlock = { kind: 'pending-ui'; id: string; componentType: string; }; export type BlockSegment = { type: 'surface-group'; surfaceType: string; items: UiRenderBlock[]; startIndex: number; } | { type: 'pending-ui'; block: PendingRenderBlock; index: number; } /** A markdown block whose content is only whitespace — kept, because Core renders it. */ | { type: 'blank-bridge'; block: MdRenderBlock; index: number; } | { type: 'md'; block: MdRenderBlock; index: number; } | { type: 'ui'; block: UiRenderBlock; index: number; }; export declare function groupBlocks(list: readonly RenderBlock[] | undefined): BlockSegment[];