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

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

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

export const Station = t.iface([], {
  "is_installed": "boolean",
  "is_renting": "boolean",
  "is_returning": "boolean",
  "last_reported": "string",
  "num_docks_available": t.opt("number"),
  "num_docks_disabled": t.opt("number"),
  "num_vehicles_available": "number",
  "num_vehicles_disabled": t.opt("number"),
  "station_id": "string",
  "vehicle_docks_available": t.opt(t.array("VehicleDocksAvailable")),
  "vehicle_types_available": t.opt(t.array("VehicleTypesAvailable")),
  [t.indexKey]: "any",
});

export const VehicleDocksAvailable = t.iface([], {
  "count": "number",
  "vehicle_type_ids": t.array("string"),
  [t.indexKey]: "any",
});

export const VehicleTypesAvailable = t.iface([], {
  "count": "number",
  "vehicle_type_id": "string",
  [t.indexKey]: "any",
});

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

const exportedTypeSuite: t.ITypeSuite = {
  StationStatus,
  Data,
  Station,
  VehicleDocksAvailable,
  VehicleTypesAvailable,
  Version,
};
export default exportedTypeSuite;
