/* eslint-disable @typescript-eslint/no-unused-vars */
/* istanbul ignore file */
/**
 * This file is generated by the openapi-ts-generator
 * #form.ts.hbs
 * For issues or feature request, visit the repo: https://github.com/ikemtz/openapi-ts-generator
 * Do not edit.
 */
import { FormControl, FormArray, FormGroup } from '@angular/forms'; //NOSONAR{{#if importTypes}}{{#importTypes}}{{#unless isSelfReferencing}}{{#if isEnum}}
import { {{name}} } from './{{kebabCasedTypeName}}.enum';{{else}}
import { I{{name}}Form } from './{{kebabCasedTypeName}}.form';{{/if}}{{/unless}}{{/importTypes}}{{/if}}

export interface I{{name}}Form {
{{#valueProperties}}
{{#if isArray}}
    {{name}}: FormArray<FormControl<{{typeScriptType}}>>;
{{else}} 
    {{name}}: FormControl<{{typeScriptType}}{{#unless required}} | null | undefined{{/unless}}>;
{{/if}}
{{/valueProperties}}
{{#referenceProperties}}
{{#if isEnumAndArray}}
    {{name}}: FormArray<FormControl<{{typeScriptType}} | string>>;
{{else if isArray}}
    {{name}}: FormArray<FormGroup<I{{typeScriptType}}Form>>;
{{else if isEnum}}
    {{name}}: FormControl<{{typeScriptType}} | string{{#unless required}} | null | undefined{{/unless}}>;
{{else}}
    {{name}}{{#if isSameAsParentTypescriptType}}?{{/if}}: FormGroup<I{{typeScriptType}}Form>;
{{/if}}
{{/referenceProperties}}
}
