ttc-api
Version:
A fully typed Tbilisi Transport Company API Wrapper
105 lines (103 loc) • 2.16 kB
TypeScript
type LatLng = number[];
type Locale = "ka" | "en";
type BusMode = "BUS";
type VehicleMode = "BUS" | "GONDOLA" | "SUBWAY";
type BusColor = "0033B4" | "00B38B";
interface BusStop {
id: string;
code: null | string;
name: string;
lat: number;
lon: number;
vehicleMode: VehicleMode;
}
interface BusArrival {
shortName: string;
color: string;
headsign: string;
realtime: boolean;
realtimeArrivalMinutes: number;
scheduledArrivalMinutes: number;
}
interface Bus {
id: string;
shortName: string;
longName: string;
color: BusColor;
mode: BusMode;
}
interface BusRouteFull {
id: string;
shortName: string;
longName: string;
color: string;
mode: string;
circular: boolean;
longNames: {
forwardLongName: string;
backwardLongName: string;
};
}
interface BusLocation {
lat: number;
lon: number;
heading: number;
nextStopId?: string;
}
interface BusPlan {
from: From;
to: From;
itineraries: Itinerary[];
}
interface From {
lat: number;
lon: number;
name: string;
}
interface Itinerary {
startTime: Date;
endTime: Date;
duration: number;
walkTime: number;
walkDistance: number;
legs: Leg[];
}
interface Leg {
from: From;
to: From;
startTime: Date;
endTime: Date;
duration: number;
legPolyline: LegPolyline;
mode: Mode;
steps: Step[];
intermediateStops: IntermediateStop[] | null;
route: Bus | null;
realTime: boolean;
arrivalDelay: number;
distance: number;
}
interface IntermediateStop {
id: string;
code: string;
name: string;
lat: number;
lon: number;
vehicleMode: Mode;
}
declare enum Mode {
Bus = "BUS",
Walk = "WALK"
}
interface LegPolyline {
encodedValue: string;
color: null;
}
interface Step {
relativeDirection: string;
distance: number;
streetName: string;
lat: number;
lon: number;
}
export { Bus, BusArrival, BusColor, BusLocation, BusMode, BusPlan, BusRouteFull, BusStop, From, IntermediateStop, Itinerary, LatLng, Leg, LegPolyline, Locale, Mode, Step, VehicleMode };