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

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

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

export const Plan = t.iface([], {
  "currency": "string",
  "description": "string",
  "is_taxable": "boolean",
  "name": "string",
  "per_km_pricing": t.opt(t.array("PerKMPricing")),
  "per_min_pricing": t.opt(t.array("PerMinPricing")),
  "plan_id": "string",
  "price": "number",
  "surge_pricing": t.opt("boolean"),
  "url": t.opt("string"),
  [t.indexKey]: "any",
});

export const PerKMPricing = t.iface([], {
  "end": t.opt("number"),
  "interval": "number",
  "rate": "number",
  "start": "number",
  [t.indexKey]: "any",
});

export const PerMinPricing = t.iface([], {
  "end": t.opt("number"),
  "interval": "number",
  "rate": "number",
  "start": "number",
  [t.indexKey]: "any",
});

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

const exportedTypeSuite: t.ITypeSuite = {
  SystemPricingPlans,
  Data,
  Plan,
  PerKMPricing,
  PerMinPricing,
  Version,
};
export default exportedTypeSuite;
