<% if (isTyped) { -%>/* tslint:disable */<% } -%>
<% if (framework === 'angular') { -%>import { Injectable } from '@angular/core';<% } -%>
<% for (var modelName in models) {
  var meta = models[modelName];
  // capitalize the model name
  modelName = modelName[0].toUpperCase() + modelName.slice(1);
-%>
import { <%- modelName %> } from '../../models/<%- modelName %>';
<% } // for modelName in models -%>
<% if (isTyped) { -%>
export interface Models { [name: string]: any }
<% } -%>
<% if (framework === 'angular') { -%>
@Injectable()
<% } -%>
export class SDKModels {
<% if (isTyped) { -%>
  private models: Models = {
    <% for ( modelName in models ) { %><%= modelName %>: <%= modelName %>,
    <% } %>};

  public get(modelName: string): any {
    return this.models[modelName];
  }

  public getAll(): Models {
    return this.models;
  }

  public getModelNames(): string[] {
    return Object.keys(this.models);
  }
<% } else { -%>
  models = {
    <% for ( modelName in models ) { %><%= modelName %>: <%= modelName %>,
    <% } %>
  };

  get(modelName) {
    return this.models[modelName];
  }

  getAll() {
    return this.models;
  }

  getModelNames() {
    return Object.keys(this.models);
  }
<% } -%>
}
