// DO NOT EDIT THIS FILE
import { RequestHeaders } from "../RequestHeaders";
import { RequestRequestOptions } from "../RequestRequestOptions";
import { Url } from "../Url";

export interface Endpoints {
  {{#each endpointsByRoute}}
  "{{@key}}": [{{union this "optionsTypeName"}}, {{union this "requestOptionsTypeName"}}]
  {{/each}}
}

{{#each options}}
type {{in.name}} = {
{{#each in.parameters}}
  {{&jsdoc}}
  {{{name this}}}: {{{type this}}}
{{/each}}
}
type {{out.name}} = {
  method: "{{out.method}}",
  url: Url,
  headers: RequestHeaders,
  request: RequestRequestOptions
}
{{/each}}

{{#childParams}}
export type {{paramTypeName}} = {
{{#params}}
  {{{name this}}}: {{{type this}}}
{{/params}}
};
{{/childParams}}