/* tslint:disable */

import * as models from '../models';

/* pre-prepared guards for build in complex types */

function _isBlob(arg: any): arg is Blob {
  return arg != null && typeof arg.size === 'number' && typeof arg.type === 'string' && typeof arg.slice === 'function';
}

export function isFile(arg: any): arg is File {
return arg != null && typeof arg.lastModified === 'number' && typeof arg.name === 'string' && _isBlob(arg);
}

/* generated type guards */

{{#definitions}}
{{^isEnum}}
export function is{{&definitionName}}(arg: any): arg is models.{{&definitionName}} {
  return (
  arg != null &&
  typeof arg === 'object' &&
  {{#properties}}
    // {{&name}}{{^isRequired}}?{{/isRequired}}: {{#isDictionary}}{ [key: string]: {{&typescriptType}} }{{/isDictionary}}{{^isDictionary}}{{&typescriptType}}{{/isDictionary}}{{#isArray}}[]{{/isArray}}
    {{&guard}}
  {{/properties}}
  {{#extend}}
    // extends {{&.}}
    is{{&.}}(arg) &&
  {{/extend}}

  true
  );
  }

{{/isEnum}}{{#isEnum}}
export function is{{&definitionName}}(arg: any): arg is models.{{&definitionName}} {
  return false
  {{#properties}} || arg === models.{{&definitionName}}.{{name}}
  {{/properties}};
  }

{{/isEnum}}
{{/definitions}}

