Ist es in der Regel, ja. Aber viel einfacher wäre, wenn du gleich nur eine Funktion exportierst, die ein Interface zurück liefert. Innerhalb des Interfaces funktioniert dann die Überladung ganz normal.
Mache ich genauso wie du beschreibst.
Eine Funktion exportieren und Interface zurückgeben.