// @ts-ignore
/* eslint-disable */

declare namespace {{ namespace }} {
  {% for type in list -%}
{%- if type.props.length %}
  type {{ type.typeName | safe }}{{ '' if type.parent === undefined else ' extends ' + type.parent }} = {
    {%- for prop in type.props %}
    {%- if prop.desc %}
    /** {{ prop.desc }} */
    {%- endif %}
    '{{ prop.name }}'
    {{ '' if prop.required else '?' }}: {{ prop.type | safe }};
    {%- endfor %}
  }
{%- else %}
  type {{ type.typeName | safe }} = {{ type.type }};
{%- endif %}
{% endfor %}
}