<?php

namespace Symfony\Component\Form;

/**
 * @template TData
 *
 * @extends \ArrayAccess<string, \Symfony\Component\Form\FormInterface<mixed>>
 * @extends \Traversable<string, \Symfony\Component\Form\FormInterface<mixed>>
 */
interface FormInterface extends \ArrayAccess, \Traversable, \Countable
{
    /**
     * @param TData $modelData
     *
     * @return $this
     */
    public function setData($modelData): FormInterface;

    /**
     * @return TData
     */
    public function getData();
}
