. */ declare(strict_types=1); namespace Fisharebest\Webtrees\SurnameTradition; use Fisharebest\Webtrees\Individual; /** * Various cultures have different traditions for the use of surnames within families. * By providing defaults for new individuals, we can speed up data entry and reduce errors. */ interface SurnameTraditionInterface { /** * The name of this surname tradition * * @return string */ public function name(): string; /** * A short description of this surname tradition * * @return string */ public function description(): string; /** * A default/empty name * * @return string */ public function defaultName(): string; /** * What name is given to a new child * * @param Individual|null $father * @param Individual|null $mother * @param string $sex * * @return array */ public function newChildNames(Individual|null $father, Individual|null $mother, string $sex): array; /** * What name is given to a new parent * * @param Individual $child * @param string $sex * * @return array */ public function newParentNames(Individual $child, string $sex): array; /** * What names are given to a new spouse * * @param Individual $spouse * @param string $sex * * @return array */ public function newSpouseNames(Individual $spouse, string $sex): array; }