The classes are separated into two libraries. One, called liblv2-plugin, contains the classes LV2::Plugin and LV2::Synth, defined in the files lv2plugin.hpp and lv2synth.hpp. They are base classes that you can inherit in order to create new LV2 plugins. The other library, called liblv2-gui, contains the class LV2::GUI, defined in the file lv2gui.hpp, which you can use in a similar way to create new LV2 plugin GUIs.
For both the Plugin and the GUI class there are other helper classes called mixins that you can use to add extra functionality to your plugins, for example support for LV2 extensions.
These libraries are only available as static libraries (and most of the code is template classes in header files), thus ABI stability is not an issue. The API will be stable between major version bumps, at which the pkg-config name would change to prevent plugins from building against an incompatible version, but if you were to modify the build system to create shared libraries and link against those you are on your own.
This is reference documentation, if you want a more tutorial-type document you can have a look at LV2 programming for the complete idiot.