/**
 * Messaging (tickets) composites — import from `@/components/messaging` (a subfolder barrel, like
 * `@/components/booking`). Screens (`TicketInboxScreen`/`TicketThreadScreen`) are shared by the customer and
 * nurse route pages; the pure composites (`MessageBubble`/`TicketListCard`/`EmergencyBanner`) carry co-located
 * tests.
 */
export { default as MessageBubble } from './MessageBubble';
export type { MessageBubbleProps } from './MessageBubble';
export { default as MessageComposer } from './MessageComposer';
export { default as TicketMessageList } from './TicketMessageList';
export { default as TicketListCard } from './TicketListCard';
export type { TicketListCardProps } from './TicketListCard';
export { default as EmergencyBanner } from './EmergencyBanner';
export type { EmergencyBannerProps } from './EmergencyBanner';
export { default as EmergencyPlaybookRow } from './EmergencyPlaybookRow';
export type { EmergencyPlaybookRowProps } from './EmergencyPlaybookRow';
export { default as ContactSupportDialog } from './ContactSupportDialog';
export type { ContactSupportDialogProps } from './ContactSupportDialog';
export { default as TicketInboxScreen } from './TicketInboxScreen';
export { default as TicketThreadScreen } from './TicketThreadScreen';
export { default as TicketConversationPanel } from './TicketConversationPanel';
export type { TicketConversationPanelProps } from './TicketConversationPanel';
export { default as BookingSupportEntry } from './BookingSupportEntry';
// Consumable by phase 11's admin thread (same inverse-scroll bug) — §3.7 handshake.
export { useThreadScroll } from './useThreadScroll';
export type { UseThreadScrollResult } from './useThreadScroll';
