/**
 * Description of class.
 * This is example
 */
final class Example extends ParentClass implements IExample
{
	use ObjectTrait;
	use AnotherTrait {
		sayHello as protected;
	}

	/** Commented */
	private const FORCE_ARRAY = Nette\Utils\Json::FORCE_ARRAY;

	public const MULTILINE_LONG = [
		'aaaaaaaa' => 1,
		'bbbbbbbb' => 2,
		'cccccccc' => 3,
		'dddddddd' => 4,
		'eeeeeeee' => 5,
		'ffffffff' => 6,
	];

	public const SHORT = ['aaaaaaaa' => 1, 'bbbbbbbb' => 2, 'cccccccc' => 3, 'dddddddd' => 4, 'eeeeeeee' => 5];

	/** @var resource  orignal file handle */
	private $handle;
	public $order = RecursiveIteratorIterator::SELF_FIRST;

	public $multilineLong = [
		'aaaaaaaa' => 1,
		'bbbbbbbb' => 2,
		'cccccccc' => 3,
		'dddddddd' => 4,
		'eeeeeeee' => 5,
		'ffffffff' => 6,
	];

	public $short = ['aaaaaaaa' => 1, 'bbbbbbbb' => 2, 'cccccccc' => 3, 'dddddddd' => 4, 'eeeeeeee' => 5, 'ffffffff' => 6];


	/**
	 * @return resource
	 */
	final public function first(stdClass $var): stdClass
	{
		func();
		return [
			'aaaaaaaaaaaa' => 1,
			'bbbbbbbbbbb' => 2,
			'cccccccccccccc' => 3,
			'dddddddddddd' => 4,
			'eeeeeeeeeeee' => 5,
			'ffffffff' => 6,
		];
	}


	public function second()
	{
	}


	public function multi(
		#[Foo]
		$foo,
	) {
	}


	public function multiType(
		#[Foo]
		$foo,
	): array
	{
	}
}
