<?php

declare(strict_types=1);
{{#models}}{{#model}}

namespace {{modelPackage}};
{{^isEnum}}
{{^parentSchema}}

use \ArrayAccess;
{{/parentSchema}}
{{/isEnum}}
use \{{invokerPackage}}\ObjectSerializer;
use \{{invokerPackage}}\ModelInterface;
use \{{invokerPackage}}\Exception\AssertionException;

/**
{{>partial_header}}
{{^isEnum}}
 *
 * @implements \ArrayAccess<TKey, TValue>
 * @template TKey int|null
 * @template TValue mixed|null
{{/isEnum}}
 */
{{#isEnum}}{{>model_enum}}{{/isEnum}}{{^isEnum}}{{>model_generic}}{{/isEnum}}
{{/model}}{{/models}}