{{#each models ~}} {{#if isObject ~}} declare type {{ name }} = {{#if hasImplementedInterfaces}}{{#each implementedInterfaces}}{{this}} & {{/each}}{{/if}} { {{#each fields}} {{ name }}: {{#unless isRequired}}?{{/unless}}{{#if isArray}}Array<{{/if}}{{ type }}{{#if isArray}}>{{/if}}; {{/each ~}} } {{/if ~}} {{#if isEnum ~}} declare type {{ name }} = {{#each enumValues }}"{{ value }}"{{#unless @last}} | {{/unless}}{{/each ~}}; {{/if ~}} {{#if isUnion ~}} {{#if hasUnionTypes}} declare type {{ name }} = {{#each unionTypes}}{{this}}{{#unless @last}} | {{/unless}}{{/each}}; {{/if}} {{/if}} {{/each ~}} {{#each documents ~}} declare module {{ name }} { {{#if hasVariables}} declare type Variables = { {{#each variables}} {{ name }}: {{#unless isRequired}}?{{/unless}}{{#if isArray}}Array<{{/if}}{{ type }}{{#if isArray}}>{{/if}}; {{/each}} } {{/if ~}} {{#each innerTypes}} declare type {{ name }} = { {{#each fields}} {{ name }}: {{#if isArray}}Array<{{/if}}{{ type }}{{#if isArray}}>{{/if}}; {{/each}} } {{#each fragmentsUsed}}& {{this}}.Fragment {{/each }}{{#if hasInlineFragments}}& ({{#each inlineFragments}}{{ typeName }}{{/each}} | {}) {{/if}} {{/each ~}} {{#each resultFields}} declare type Result = { {{#each fields}} {{ name }}: {{#if isArray}}Array<{{/if}}{{ type }}{{#if isArray}}>{{/if}}; {{/each}} } {{/each ~}} } {{/each ~}}