実は簡単な使い分け
declarations : ディレクティブ(含コンポーネント、パイプ)を書きます。 htmlテンプレートに書くもの、ですね。
providers : Serviceなど、DIで解決するものをここに書きます。 Angular 6 以降は各モジュールに
================
@Injectable({
providedIn: 'root'
})
================
と書きます。
imports : 外部のAngularモジュール。Httpモジュールとか、UIモジュールとか。
これだけです!