| Interface | Description | 
|---|---|
| ComponentWithExecutable | Represents a native component that produces an executable. | 
| ComponentWithInstallation | Represents a native component that produces an application installation. | 
| ComponentWithLinkFile | Represents a native component that produces a file to be used at link time. | 
| ComponentWithLinkUsage | Represents a native component whose link time file and dependencies are published for consumption by some other project. | 
| ComponentWithNativeRuntime | Represents a component that produces outputs that run on a native platform. | 
| ComponentWithObjectFiles | Represents a component that produces object files. | 
| ComponentWithRuntimeFile | Represents a native component that produces a file to be used at runtime. | 
| ComponentWithRuntimeUsage | Represents a native component whose runtime file and dependencies are published for consumption by some other project. | 
| ComponentWithSharedLibrary | Represents a native component that produces a shared library. | 
| ComponentWithStaticLibrary | Represents a component that produces a static library. | 
| DependentSourceSet | A source set that depends on one or more  NativeDependencySets to be built. | 
| HeaderExportingSourceSet | A source set that exposes headers | 
| NativeResourceSet | A source set that provides resources. |