/**
 * @bytelyst/ai-ui — AI-native UI primitives.
 *
 * Exports (Wave 2 — 0.4.0):
 *   Components
 *     0.1: <ChatStream>, <MessageBubble>, <PromptComposer>
 *     0.2: <ToolCallCard>, <CitationChip>
 *     0.3: <AgentTimeline>, <ModelPicker>
 *     0.4: <ToolPalette> (MCP-style discovery)
 *   Hooks
 *     0.1: useChat()
 *     0.2: useToolCalls()
 *   Utilities
 *     0.1: streamText()
 *
 * Coming in 0.5.x (per ROADMAP §Wave 2):
 *   - <Markdown>, <CodeDiff>, <ExplainThis>
 *   - usePromptHistory(), useTokenCount()
 */

export { ChatStream } from './ChatStream.js';
export type { ChatStreamProps } from './ChatStream.js';

export { MessageBubble } from './MessageBubble.js';
export type { MessageBubbleProps } from './MessageBubble.js';

export { PromptComposer } from './PromptComposer.js';
export type { PromptComposerHandle, PromptComposerProps } from './PromptComposer.js';

export { useChat } from './useChat.js';
export { streamText } from './useStreamingText.js';

// ── 0.2 surfaces ───────────────────────────────────────────────────────────
export { ToolCallCard } from './ToolCallCard.js';
export type { ToolCallCardProps } from './ToolCallCard.js';

export { CitationChip } from './CitationChip.js';
export type { CitationChipProps } from './CitationChip.js';

export { useToolCalls } from './useToolCalls.js';
export type { UseToolCallsHelpers } from './useToolCalls.js';

// ── 0.3 surfaces ───────────────────────────────────────────────────────────
export { AgentTimeline } from './AgentTimeline.js';
export type { AgentStep, AgentStepKind, AgentTimelineProps } from './AgentTimeline.js';

export { ModelPicker } from './ModelPicker.js';
export type { ModelCapability, ModelOption, ModelPickerProps } from './ModelPicker.js';

// ── 0.4 surfaces ───────────────────────────────────────────────────────────
export { ToolPalette } from './ToolPalette.js';
export type { ToolDescriptor, ToolPaletteProps } from './ToolPalette.js';

// ── 0.5 surfaces — Wave 13.C trust primitives ─────────────────────────────
export { CostMeter } from './CostMeter.js';
export type { CostMeterProps } from './CostMeter.js';

export { ConfidenceTag } from './ConfidenceTag.js';
export type { ConfidenceTagProps, ConfidenceLevel } from './ConfidenceTag.js';

export { RefusalCard } from './RefusalCard.js';
export type { RefusalAction, RefusalCardProps, RefusalReason } from './RefusalCard.js';

export { PrivacyBadge } from './PrivacyBadge.js';
export type { PrivacyBadgeProps, PrivacyMode } from './PrivacyBadge.js';

export { ProvenanceDrawer } from './ProvenanceDrawer.js';
export type {
  ProvenanceDrawerProps,
  ProvenanceEvent,
} from './ProvenanceDrawer.js';

export { DebugOverlay } from './DebugOverlay.js';
export type {
  DebugOverlayPayload,
  DebugOverlayProps,
} from './DebugOverlay.js';

// ── 0.6 surfaces — Wave 9.E composition primitives ────────────────────────
export { Markdown } from './Markdown.js';
export type { MarkdownProps, MarkdownCitation } from './Markdown.js';

export { CodeDiff } from './CodeDiff.js';
export type { CodeDiffProps } from './CodeDiff.js';

export { ExplainThis } from './ExplainThis.js';
export type { ExplainThisProps } from './ExplainThis.js';

export { usePromptHistory } from './usePromptHistory.js';
export type {
  UsePromptHistoryHelpers,
  UsePromptHistoryOptions,
} from './usePromptHistory.js';

export { useTokenCount } from './useTokenCount.js';
export type {
  UseTokenCountOptions,
  UseTokenCountValue,
} from './useTokenCount.js';

export type {
  ChatTransportOptions,
  Citation,
  Message,
  MessageRole,
  StreamProtocol,
  ToolCallStatus,
  ToolInvocation,
  UseChatHelpers,
  UseChatOptions,
} from './types.js';
