The following classes and definitions are visible for the user of the library: