/** * Public types for the Chat tool — single source of truth. * * Shapes here are the contract between transport adapters, the reducer, * the hooks layer and the components. Keep serializable (no Date, no Map). * * Organized by domain: * persona — identity (role, ChatPersona, user/assistant contexts) * tool-call — ChatToolCall * attachment — ChatAttachment, ChatSource * message — ChatMessage (composes the above) * labels — UI strings + DEFAULT_LABELS * config — ChatConfig + ChatPrefs + display mode * events — ChatStreamEvent SSE union * session — Session/history/stream/send option shapes * transport — ChatTransport interface */ export type { ChatRole, ChatPersona, ChatUserContext, ChatAssistantContext } from './persona'; export type { ChatToolCall } from './tool-call'; export type { ChatAttachment, ChatSource } from './attachment'; export type { MessageBlock, MessageBlockKind, BlockAppearance, TextBlock, MarkdownBlock, AudioBlock, VideoBlock, ImageBlock, GalleryBlock, MapBlock, JsonBlock, MermaidBlock, CodeBlock, DiffBlock, LinkBlock, CustomBlock, } from './block'; export type { LinkPreviewData, ResolveLinkPreview } from '../../../common/link-preview'; export type { ChatMessage } from './message'; export { DEFAULT_LABELS } from './labels'; export type { ChatLabels } from './labels'; export type { ChatConfig, ChatPrefs, ChatDisplayMode, ChatLinkPreviewConfig } from './config'; export type { ChatStreamEvent, ChatMessageMetrics } from './events'; export type { CreateSessionOptions, SessionInfo, HistoryPage, StreamOptions, SendOptions, } from './session'; export type { ChatTransport } from './transport';