// Public barrel for the online-board feature.
// This file is the ONLY public surface — other sub-plans and features
// must import exclusively from "@/features/online-board", never from
// deeper paths. See docs/superpowers/phase-1/frozen-barrels.md for the rule.

// 2B — URL serializer/parser
export type { OnlineBoardParams } from "./url.js";
export {
  parseOnlineBoardUrl,
  buildOnlineBoardUrl,
  parseFlightUrlParams,
  buildFlightUrlParams,
  parseStationUrlParams,
  parseRouteUrlParams,
} from "./url.js";

// 2C — API functions
export type {
  SearchFlightsParams,
  FlightDetailsParams,
  CalendarParams,
} from "./api.js";
export { searchFlights, getFlightDetails, getCalendarDays } from "./api.js";

// 2C — React hooks
export { useOnlineBoard } from "./hooks/useOnlineBoard.js";
export type { UseOnlineBoardResult } from "./hooks/useOnlineBoard.js";
export { useFlightDetails } from "./hooks/useFlightDetails.js";
export type { UseFlightDetailsResult } from "./hooks/useFlightDetails.js";
export { useCalendarDays } from "./hooks/useCalendarDays.js";
export type { UseCalendarDaysResult } from "./hooks/useCalendarDays.js";

// 2D — SignalR wiring hooks
export { useLiveBoardSearch } from "./hooks/useLiveBoardSearch.js";
export type { UseLiveBoardSearchResult } from "./hooks/useLiveBoardSearch.js";
export { useLiveFlightDetails } from "./hooks/useLiveFlightDetails.js";
export type { UseLiveFlightDetailsResult } from "./hooks/useLiveFlightDetails.js";

// 2F — SEO builder functions
export {
  buildOnlineBoardStartSeo,
  buildFlightSearchSeo,
  buildDepartureSearchSeo,
  buildArrivalSearchSeo,
  buildRouteSearchSeo,
  buildFlightDetailsSeo,
} from "./seo.js";
export type { TFunction, CityNames } from "./seo.js";

// 2F — JSON-LD builder functions
export { buildFlightJsonLd, buildFlightListJsonLd } from "./json-ld.js";

// 2E — Feature-specific page components
export { OnlineBoardStartPage } from "./components/OnlineBoardStartPage.js";
export { OnlineBoardSearchPage } from "./components/OnlineBoardSearchPage.js";
export type { OnlineBoardSearchPageProps } from "./components/OnlineBoardSearchPage.js";
export { OnlineBoardDetailsPage } from "./components/OnlineBoardDetailsPage.js";
export type { OnlineBoardDetailsPageProps } from "./components/OnlineBoardDetailsPage.js";
