Best practice for third-party PHP class-based library
Branch 2.x of the Libraries API module allows developers to define, through hook_libraries_info(), or a .info file for the library, the following information (see libraries.api):


The dependencies of the library
The version with which the library is compatible, for each of the dependencies
The list of the files that needs to be loaded (CSS, JavaScript, or PHP files) 


The list of files that needs to be loaded is used to load those files, when the library is required. This means that your module doesn't need to load CSS, and JavaScript files with drupal_add_css(), or drupal_add_js(), as that is already done from the Libraries API module. Loading the dependencies is a task done from the Libraries API module, without the calling module doing anything.  

All the module does is using the following code, for loading a library. (See Using Libraries API 2.x (as module-developer).)

// Try to load the library and check if that worked.
if (($library = libraries_load($name)) &amp;&amp; !empty($library['loaded'])) {
  // Do something with the library here.
}


If you just need to detect if a library is present, the module should use code similar to the following one.

if (($library = libraries_detect($name)) &amp;&amp; !empty($library['installed'])) {
  // The library is installed.
}
else {
  $error = $library['error'];
  $error_message = $library['error message'];
}


Between the properties hook_libraries_info() can return, there is also 'download url', which is not actually used, not even in the branch 3.x. Probably it will be used in future, or a third-party modules could hook into the Libraries API module, and download the libraries that are requested, but missing.