private function formatNsn($number, PhoneMetadata $metadata, $numberFormat, $carrierCode = null)
{
$intlNumberFormats = $metadata->intlNumberFormats();
// When the intlNumberFormats exists, we use that to format national number for the
// INTERNATIONAL format instead of using the numberDesc.numberFormats.
$availableFormats = count($intlNumberFormats) == 0 || $numberFormat == PhoneNumberFormat::NATIONAL ? $metadata->numberFormats() : $metadata->intlNumberFormats();
$formattingPattern = $this->chooseFormattingPatternForNumber($availableFormats, $number);
return $formattingPattern === null ? $number : $this->formatNsnUsingPattern($number, $formattingPattern, $numberFormat, $carrierCode);
}