Las clases, objetos, interfaces, constructores, funciones, propiedades y sus setters pueden tener un visibility modifier.

En Kotlin todo es public por defecto. Pero existen otros tipos de acceso para restringir la visibilidad, estos son:

Private

Solo visto desde el mismo archivo.

Protected

Visible para todas las subclases.

Internal

Visible en todas las partes del módulo, no en otros módulos.

Reference