
// Application interface. (Can be re-generated.)
import { Application } from '@feathersjs/express';
<%# -%>
<%# --- forEach-1 starts below. Loop thru the services. -%>
<% Object.keys(specs.services || {}).sort().forEach(__name => {
  __importName = upperFirst(specs.services[__name].nameSingular);
  __subFolder = getNameSpace(specs.services[__name].subFolder)[0];
  __kName = kebabCase(__name);
-%>
import { <%- __importName %> } from './services/<%- __subFolder %><%- __kName %>/<%- __kName %>.interface'<%- sc %>
<% }); -%>
<%# --- forEach-1 ends above. -%>
<%- insertFragment('imports') %>
<%- insertFragment('init') %>

/*
  You can (but don't need to) specify your services' data types in here.
  If you do, TypeScript can infer the return types of service methods.

  example:

  export type App = Application<{users: User}>;

  app.service('users').get(1).then(user => {
    user = 5; // this won't compile, because user is known to be of type User
  });
 */
export type App = Application<{
<%# -%>
<%# --- forEach-2 starts below. Loop thru the services. -%>
<% Object.keys(specs.services || {}).sort().forEach(__name => { -%>
  '<%- specs.services[__name].fileName %>': <%- upperFirst(specs.services[__name].nameSingular) %>,
<% }); -%>
<%# --- forEach-2 ends above. -%>
  <%- insertFragment('moduleExports') %>
}>;
<%- insertFragment('funcs') %>
<%- insertFragment('end') %>
