public function parse(string $input): \DateInterval
    {
        $input = trim($this->normalizer->normalize($input));

        $definition = Pattern::DEFINE . Pattern::INTEGER . Pattern::TIME_PART . ')';
        $expression = $definition . Pattern::INTERVAL_ONLY;

        if (preg_match($expression, $input, $matches)) {
            return \DateInterval::createFromDateString($input);
        }

        throw new FormatException("Given string is not a valid time interval.");
    }