/* tslint:disable */
import { SDKToken } from './models/BaseModels';

import * as reducers from './reducers/index';

import { LoopbackAuthEffects } from './effects/auth';
<% for (var modelName in models) {
  // capitalize the model name
  modelName = modelName[0].toUpperCase() + modelName.slice(1);
-%>
import { <%- modelName %>Effects } from './effects/<%- modelName %>';
<% } // for modelName in models -%>

export interface LoopbackStateInterface {
  LoopbackAuth: SDKToken;
<% for (var modelName in models) {
  // capitalize the model name
  modelName = modelName[0].toUpperCase() + modelName.slice(1);
-%>
  <%- modelName %>s: reducers.<%- modelName %>sState;
<% } // for modelName in models -%>
};

export const LoopbackReducer = {
  LoopbackAuth: reducers.LoopbackAuthReducer,
<% for (var modelName in Object.assign({}, models, throughModels)) {
  // capitalize the model name
  modelName = modelName[0].toUpperCase() + modelName.slice(1);
-%>
	<%- modelName %>s: reducers.<%- modelName %>sReducer,
<% } // for modelName in models -%>
};

export const LoopbackEffects = [
  LoopbackAuthEffects,
<% for (var modelName in models) {
  // capitalize the model name
  modelName = modelName[0].toUpperCase() + modelName.slice(1);
-%>
  <%- modelName %>Effects,
<% } // for modelName in models -%>
];
