<?php

namespace Planaday\Utility\FormBuilder;

interface SettableData extends Filterable {
	/**
	 * @param mixed $value
	 * @param bool $callSetCallback
	 *
	 * @return void
	 * @throws InvalidFormDataException
	 */
	public function setValue(mixed $value, bool $callSetCallback = true): void;
	public function validate(): bool|InvalidFormDataException;
	public function getIndex(): ?string;
	public function getIndexTree(): array;
}