This file is where all your functions belonging to a class should go. It's basically the module version of a model for a component, so tasks such as performing database queries etc. The benefits of this file is that it keeps all the core functionality in 1 location. If a module already contains this file, 1 simple rule, do not remove it.
As @subashbasnet8 has already mentioned, this file is where you can call your functions and also a good place to get the module parameters and define them as a variable. You should also do things such as get your
POST variables in here. HTML markup should not belong in this file.
This file should contain all your HTML markup simply due to the fact that it will then allow the user (or even yourserlf) to override it, which is something you cannot do with the other 2 files. Also things like importing CSS/JS libraries should go in here too, again, so that any overrides can be performed.