import type { BoundingBox } from './common.js';

/**
 * Parameters for searching vehicle location data (SIRI-VM format)
 */
export interface AVLSearchParams {
  /** Geographic bounding box to filter by */
  boundingBox?: BoundingBox;
  /** Operator references to filter by */
  operatorRef?: string[];
  /** Vehicle reference to filter by */
  vehicleRef?: string;
  /** Line reference to filter by */
  lineRef?: string;
  /** Producer reference to filter by */
  producerRef?: string;
  /** Origin reference to filter by */
  originRef?: string;
  /** Destination reference to filter by */
  destinationRef?: string;
}

/**
 * Parameters for searching vehicle location data (GTFS-RT format)
 */
export interface GTFSRTSearchParams {
  /** Geographic bounding box to filter by */
  boundingBox?: BoundingBox;
  /** Route ID to filter by */
  routeId?: string;
  /** Start time for filtering */
  startTimeAfter?: Date | string;
  /** End time for filtering */
  startTimeBefore?: Date | string;
}

/**
 * SIRI-VM vehicle location data structure
 * Note: SIRI-VM data is returned as XML and will need parsing
 */
export interface SIRIVMData {
  /** Raw XML data from SIRI-VM feed */
  xmlData: string;
}

/**
 * GTFS-RT vehicle location data structure
 * Note: GTFS-RT data is returned as binary protobuf and will need parsing
 */
export interface GTFSRTData {
  /** Raw protobuf data from GTFS-RT feed */
  protobufData: ArrayBuffer;
}
