import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { DiscoveryStoreModule } from './discovery-store.module';
import { DiscoveryRPCModule } from './discovery-rpc.module';
import { DiscoveryLoggerModule } from './discovery-logger.module';

import { COMPONENTS } from './component';
import { SERVICES } from './service';
import { CONTAINER_COMPONENTS } from './container';

import { PrimeNGModules } from '@overflow/commons/prime-ng/prime-ng.module';
import { KeyValueModule } from '@overflow/commons/component/key-value/key-value.module';
import { ProbeModule } from '@overflow/probe/probe.module';
import { MetaModule } from '@overflow/meta/meta.module';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    PrimeNGModules,
    DiscoveryStoreModule,
    DiscoveryRPCModule,
    DiscoveryLoggerModule,
    KeyValueModule,
    ProbeModule,
    MetaModule
  ],
  declarations: [
    COMPONENTS,
    CONTAINER_COMPONENTS
  ],
  exports: [
    COMPONENTS,
    CONTAINER_COMPONENTS
  ],
  providers: [
    SERVICES,
  ],
})
export class DiscoveryModule { }
