/// <reference path="api.d.ts" />

namespace {{package}} {
    'use strict';

{{#models}}
{{#model}}
{{#description}}
    /**
     * {{{description}}}
     */
{{/description}}
    export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
{{#vars}}

{{#description}}
        /**
         * {{{description}}}
         */
{{/description}}
        "{{name}}"{{^required}}?{{/required}}: {{#isEnum}}{{classname}}.{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}};
{{/vars}}
    }

{{#hasEnums}}
    export namespace {{classname}} {
{{#vars}}
{{#isEnum}}

        export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}}
            {{.}} = <any> '{{.}}'{{^-last}},{{/-last}}{{/values}}{{/allowableValues}}
        }
{{/isEnum}}
{{/vars}}
    }
{{/hasEnums}}
{{/model}}
{{/models}}
}
