It's a function in "Structure" (i.e. trees), takes an integer from 0 to 4 inclusive and returns a colour. Each team has 5 colours that represent it, and trees store an internal version of it so that when tree ownership changes, the leaves that it bears can smoothly change colour instead of changing immediately.
If you want to get a team colour... here's a tasty bit for you.
Game = luanet.import_type("Eufloria.ColonyGame");
team1red0 = Game.GetFactionColour(1,0)
team1red1 = Game.GetFactionColour(1,1)
team4red3 = Game.GetFactionColour(4,3)
luanet.import_type gives you access to a class type theoretically giving you the opportunity to create instances of this type as well, though I am not sure what it would mean to do this in many cases for Eufloria's classes.
GetFactionColour is a static function of ColonyGame so you only need the type to be able to access it, not the ColonyGame instance. Hence the code above assigns the type ColonyGame to the variable CG, and this makes available the static functions of that type.
The base game class (that handles the front end etc) is Eufloria.Game, and has a static instance called Eufloria.Game.Instance from which various things are available (including Game.Instance.ColonyGame if the game is running).
Program = luanet.import_type("Eufloria.Game")
ProgramInstance = Program.Instance
Game = luanet.import_type("Eufloria.ColonyGame")
GameInstance = ProgramInstance.ColonyGame
if (GameInstance ~= nil) -- use some part of colonygame instance e.g. call ApplyDarkModeSettings()!
All very untested and unsupported I must hasted to add!