Native Binaries: what are exported headers good for?

This documentation:
https://docs.gradle.org/current/userguide/nativeBinaries.html

Has a few sections that describe a way for a project to declare exportedHeaders.

But, there is no discussion of why you would want to do this. Does declaring these provide some benefit to, say, a consumer of the library? If so, how does a consumer make use of this declaration? Is it only useful within the context of a multi-project build?

So, this seems to be just another kind of source set, right? I’m able, within the build for the project where the exported headers are defined, to copy them around to more convenient locations for packaging or use by dependent projects.