Самый узкий режим доступа, с которым вы можете работать, это внутренний, который по умолчанию установлен в Swift.
Принимая от https://docs.swift.org/swift-book/LanguageGuide/AccessControl.html:
"Swift предоставляет пять различных уровней доступа для объектовв вашем коде. Эти уровни доступа относятся к исходному файлу, в котором определена сущность, а также к модулю, к которому принадлежит исходный файл.
Открытый доступ и общедоступный доступсущности, которые будут использоваться в любом исходном файле из их определяющего модуля, а также в исходном файле из другого модуля, который импортирует определяющий модуль. Обычно вы используете открытый или открытый доступ при указании открытого интерфейса к платформе. Разница между открытым и открытымдоступ описан ниже.
Внутренний доступ позволяет использовать сущности в любом исходном файле из их определяющего модуля, но не в любом исходном файле за пределами этого модуля. Обычно внутренний доступ используется, когдаопределение внутренней структуры приложения или фреймворка.
Частный доступ к файлу ограничивает использование объекта собственным определяющим исходным файлом.Используйте частный доступ к файлу, чтобы скрыть подробности реализации определенной части функциональности, когда эти подробности используются внутри всего файла.
Частный доступ ограничивает использование сущности приложением декларациии расширениям этого объявления, которые находятся в одном файле.Используйте частный доступ, чтобы скрыть подробности реализации определенной части функциональности, когда эти детали используются только в пределах одной декларации. "