/**
 * TUI package — Terminal UI components
 *
 * INV-4: TUI imports ONLY contracts + ProjectionClient from runtime.
 * Uses OpenTUI @opentui/* as renderer (npm-dep, do NOT reimplement).
 *
 * @module packages/tui
 */

export { ProjectionClient } from '@aircoding/runtime'
export { TuiApp } from './TuiApp.js'
export type { TuiAppProps, TuiAppState } from './TuiApp.js'

export { SessionView } from './components/SessionView.js'
export type { SessionViewProps } from './components/SessionView.js'

export { TaskListView } from './components/TaskListView.js'
export type { TaskListViewProps } from './components/TaskListView.js'

export { AgentStatusView } from './components/AgentStatusView.js'
export type { AgentStatusViewProps } from './components/AgentStatusView.js'

export { ToolRunView } from './components/ToolRunView.js'
export type { ToolRunProps } from './components/ToolRunView.js'

export { DiffView, EvidenceView } from './components/DiffView.js'
export type { DiffViewProps, EvidenceViewProps } from './components/DiffView.js'

export { PermissionPrompt } from './components/PermissionPrompt.js'
export type { PermissionPromptProps } from './components/PermissionPrompt.js'

export { BlockerReport } from './components/BlockerReport.js'
export type { BlockerReportProps } from './components/BlockerReport.js'

export { HudView } from './components/HudView.js'
export type { HudViewProps, HudPreset } from './components/HudView.js'

export type { SessionProjection, TaskProjection, AgentProjection, ProjectionSubscriber } from '@aircoding/runtime'
