lib: introduce export macros and hide all private symbols

1 job for api-improvements in 4 minutes and 24 seconds (queued for 10 seconds)
Status Name Job ID Coverage
  Test
passed build #1380464

00:04:24