// Main BODS Client
export { BODSClient } from './bods-client.js';

// Individual Clients
export {
  HttpClient,
  HttpClientError,
  TimetablesClient,
  FaresClient,
  AVLClient,
  DisruptionsClient
} from './client/index.js';

// HTTP Types
export type { HttpResponse } from './client/index.js';

// API Types
export type {
  // Common types
  ApiConfig,
  ErrorResponse,
  PaginationParams,
  PaginatedResponse,
  DateRangeParams,
  BoundingBox,
  AdminArea,
  Locality,
  DataQualityRating,
  DatasetStatus,
  
  // Timetables
  Timetable,
  TimetableResponse,
  TimetableSearchParams,
  
  // Fares
  Fares,
  FaresResponse,
  FaresSearchParams,
  
  // AVL
  AVLSearchParams,
  GTFSRTSearchParams,
  SIRIVMData,
  GTFSRTData,
  
  // Disruptions
  DisruptionData,
  ParsedDisruption
} from './types/index.js';

// Utilities
export * from './utils/index.js';

// Default export for convenience
import { BODSClient } from './bods-client.js';
export default BODSClient;