NG Module metadata
Ng module metadata refers to a single object within an angular module whose properties are used in an angular application to facilitate compilation.
The properties (metadata) describe the module.
Declarations
Declarations refers to all the components, directives and pipes that belong to the module. All angular modules must have a declarations array.
Imports
Imports refers to all the modules that have been exported and have classes which are needed in the same module.
These modules can be custom modules such as a shared modules or predefined modules such as angular material module and http modules. Every angular module requires an imports array.
Exports
The exports are an array of of all declarations that are required to be visible in other modules that have imported the module. For example, in side a navigation module, a navbar component can be exported so as to be visible in other modules which have used the declarations.
Providers
Providers refers to creators of services within the module that are used all over the angular application. Provider array ensures that services can be singleton classes Providers make sure that services are globally available.
Bootstrap
This metadata property is only on the root module. It holds the root component that renders all the views.