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

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

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

export const Alert = t.iface([], {
  "alert_id": "string",
  "description": t.opt(t.array("Description")),
  "last_updated": t.opt("string"),
  "region_ids": t.opt(t.array("string")),
  "station_ids": t.opt(t.array("string")),
  "summary": t.array("Summary"),
  "times": t.opt(t.array("Time")),
  "type": "Type",
  "url": t.opt(t.array("URL")),
  [t.indexKey]: "any",
});

export const Description = t.iface([], {
  "language": "string",
  "text": "string",
  [t.indexKey]: "any",
});

export const Summary = t.iface([], {
  "language": "string",
  "text": "string",
  [t.indexKey]: "any",
});

export const Time = t.iface([], {
  "end": t.opt("string"),
  "start": t.opt("string"),
  [t.indexKey]: "any",
});

export const Type = t.union(t.lit("system_closure"), t.lit("station_closure"), t.lit("station_move"), t.lit("other"));

export const URL = t.iface([], {
  "language": "string",
  "text": "string",
  [t.indexKey]: "any",
});

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

const exportedTypeSuite: t.ITypeSuite = {
  SystemAlerts,
  Data,
  Alert,
  Description,
  Summary,
  Time,
  Type,
  URL,
  Version,
};
export default exportedTypeSuite;
