import { Params } from '@angular/router'; import { Disturbance } from '@metromobilite/m-features/dyn'; export interface TransportMode { id: string; name: string; translatableName?: string; selected?: boolean; disabled?: boolean; /** * Is the transport mode available with PMR enabled ? */ pmr?: boolean; } export declare enum ROUTE_SORT_FIELD { DURATION = "itinerary.duration", ARRIVAL_TIME = "itinerary.endTime", PRICE = "itinerary.fare.fare.regular.cents", ECOLOGICAL_IMPACT = "itinerary.emissions_totales.indice" } export interface RouteSortOption { name: string; translatableName?: string; value: ROUTE_SORT_FIELD; icon?: string; } export interface OTPConfig { walk: OTPWalk; transit: OTPTransit; transit_MCO: OTPTransitMCO; bikeTransit: OTPBikeTransit; bike: OTPBike; car: OTPCar; cov: OTPWalk; mcoTransit: OTPmcoTransit; walkSpeed: number; walkReluctance: number; carTransit: OTPCarTransit; } export interface OTPmcoTransit { mode: string; showIntermediateStops: boolean; minTransferTime: number; transferPenalty: number; numItineraries: number; walkBoardCost: number; } export interface OTPCarTransit { mode: string; showIntermediateStops: boolean; minTransferTime: number; transferPenalty: number; numItineraries: number; walkBoardCost: number; unpreferredAgencies: string; } export interface OTPCar { mode: string; carParkCost: number; carDropoffTime: number; } export interface OTPBike { mode: string; bikeSpeed: number; optimize: string; triangleSlopeFactor: number; triangleTimeFactor: number; triangleSafetyFactor: number; stairsReluctance: number; } export interface OTPBikeTransit { mode: string; showIntermediateStops: boolean; bikeSwitchCost: number; numItineraries: number; bikeSpeed: number; minTransferTime: number; transferPenalty: number; walkBoardCost: number; bikeBoardCost: number; optimize: string; triangleSlopeFactor: number; triangleTimeFactor: number; triangleSafetyFactor: number; stairsReluctance: number; unpreferredAgencies: string; } export interface OTPTransitMCO { mode: string; showIntermediateStops: boolean; minTransferTime: number; transferPenalty: number; numItineraries: number; walkBoardCost: number; preferredAgencies: string; } export interface OTPTransit { mode: string; showIntermediateStops: boolean; minTransferTime: number; transferPenalty: number; numItineraries: number; walkBoardCost: number; unpreferredAgencies: string; } export interface OTPWalk { mode: string; } export interface PMRConfig { maxWalkDistance: number; wheelchair: boolean; } export interface OTPResponse { requestParameters: RequestParameters; plan: TripPlan; debugOutput: DebugOutput; elevationMetadata: ElevationMetadata; } export interface ElevationMetadata { ellipsoidToGeoidDifference: number; geoidElevation: boolean; } export interface DebugOutput { precalculationTime: number; pathCalculationTime: number; pathTimes: number[]; renderingTime: number; totalTime: number; timedOut: boolean; } export interface RequestParameters { date: string; walkSpeed: string; walkReluctance: string; wheelchair: string; fromPlace: string; transferPenalty: string; maxWalkDistance: string; locale: string; numItineraries: string; mode: string; arriveBy: string; minTransferTime: string; showIntermediateStops: string; optimize: string; routerId: string; walkBoardCost: string; toPlace: string; time: string; } export interface Place { name: string; stopId?: AgencyAndId; stopCode?: string; platformCode?: string; lon: number; lat: number; arrival?: number; departure?: number; orig: string; zoneId?: string; stopIndex?: number; stopSequence?: number; vertexType: string; bikeShareId?: string; } export interface AgencyAndId { id: string; agencyId?: string; } export interface TripPlan { date: number; from: Place; to: Place; itineraries: Itinerary[]; } export interface Itinerary { duration: number; startTime: number; endTime: number; walkTime: number; transitTime: number; waitingTime: number; walkDistance: number; walkLimitExceeded: boolean; elevationLost: number; elevationGained: number; transfers: number; fare: Fare; legs: Leg[]; tooSloped: boolean; next?: string; } export interface ItineraryMeta { next: { time: number; nextPageCursor: string; }; previous: { time: number; previousPageCursor: string; }; } export interface FareCurrency { currency: string; currencyCode: string; defaultFractionDigits: number; symbol: string; } export interface FarePrice { cents: number; currency: FareCurrency; } export interface Fare { details: { regular: { fareId: string; price: FarePrice; routes: string[]; }[]; }; fare: { [key: string]: any; }; } export interface Leg { startTime: number; endTime: number; departureDelay: number; arrivalDelay: number; realTime: boolean; isNonExactFrequency: boolean; headway: number; distance: number; pathway: boolean; mode: string; route: string; agencyName: string; agencyUrl: string; agencyTimeZoneOffset: number; routeColor: string; routeType: number; routeId: string; routeTextColor: string; interlineWithPreviousLeg: boolean; tripShortName: string; tripBlockId: string; headsign: string; agencyId: string; tripId: AgencyAndId; serviceDate: string; from: Place; to: Place; intermediateStops: Place[]; legGeometry: EncodedPolylineBean; steps: WalkStep[]; alerts: LocalizedAlert[]; routeShortName: string; routeLongName: string; boardRule: string; alightRule: string; rentedBike: boolean; transitLeg: boolean; duration: number; carSharing?: any[]; stopToStop?: boolean; matchingDisturbances?: Disturbance[]; } export interface WalkStep { distance: number; relativeDirection: string; streetName: string; absoluteDirection: string; exit: string; stayOn: boolean; area: boolean; bogusName: boolean; lon: number; lat: number; alerts: LocalizedAlert[]; elevation: string; } export interface EncodedPolylineBean { points: string; levels: string; length: number; } export interface LocalizedAlert { alertHeaderText: string; alertDescriptionText: string; alertUrl: string; effectiveStartDate: number; } export interface ItineraryWrapper { itinerary: Itinerary; hasCOV: boolean; hasPublicTransport: boolean; hasWalk: boolean; hasWheelchair: boolean; hasBicycle: boolean; hasCar: boolean; hasMCO: boolean; modes: string[]; mainMode: string | undefined; displayFare: string | undefined; } export interface RouteSearchParams extends Params { /** * Format: "latitude,longitude" */ fromPlace: string; /** * Format: "latitude,longitude" */ toPlace: string; time: string; /** * Format: YYYY-MM-DD * => 2021-01-07 */ date: string; arriveBy: 'true' | 'false'; pmr: 'true' | 'false'; publicTransport: 'true' | 'false'; bike: 'true' | 'false'; car: 'true' | 'false'; carpooling: 'true' | 'false'; [key: string]: any; }