/**
 * This module was automatically generated by `ts-interface-builder`
 */
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes

export const FreeBikeStatus = t.iface([], {
  "data": "Data",
  "last_updated": "number",
  "ttl": "number",
  "version": "Version",
  [t.indexKey]: "any",
});

export const Data = t.iface([], {
  "bikes": t.array("Bike"),
  [t.indexKey]: "any",
});

export const Bike = t.iface([], {
  "available_until": t.opt("string"),
  "bike_id": "string",
  "current_fuel_percent": t.opt("number"),
  "current_range_meters": t.opt("number"),
  "home_station_id": t.opt("string"),
  "is_disabled": "boolean",
  "is_reserved": "boolean",
  "last_reported": t.opt("number"),
  "lat": t.opt("number"),
  "lon": t.opt("number"),
  "pricing_plan_id": t.opt("string"),
  "rental_uris": t.opt("RentalUris"),
  "station_id": t.opt("string"),
  "vehicle_equipment": t.opt(t.array("VehicleEquipment")),
  "vehicle_type_id": t.opt("string"),
  [t.indexKey]: "any",
});

export const RentalUris = t.iface([], {
  "android": t.opt("string"),
  "ios": t.opt("string"),
  "web": t.opt("string"),
  [t.indexKey]: "any",
});

export const VehicleEquipment = t.union(t.lit("child_seat_a"), t.lit("child_seat_b"), t.lit("child_seat_c"), t.lit("winter_tires"), t.lit("snow_chains"));

export const Version = t.lit("2.3");

const exportedTypeSuite: t.ITypeSuite = {
  FreeBikeStatus,
  Data,
  Bike,
  RentalUris,
  VehicleEquipment,
  Version,
};
export default exportedTypeSuite;
