import 'react-i18next';
import {
  COMMON,
  MAIN_MENU,
  HEADER,
  ASSETS,
  CORRELATION_RULES,
  CORRELATION_RULES_CREATE,
  NCIRCC_DASHBOARD,
  EVENTS_JOURNAL_DASHBOARD,
  ACCOUNTS_DASHBOARD,
  STORAGE_DASHBOARD,
  DEVICES_DASHBOARD,
  ROTATION_DASHBOARD,
  INCIDENT_CARD_INFO,
  NCIRCC_NOTIFICATION,
  SYSTEMS_SETTINGS,
  FOREIGN_KEY_ENTITIES_TABLE,
  LICENSE,
  INCIDENTS_DASHBOARD,
} from '../src/core/i18n';

// import all namespaces (for the default 'en' language, only)
import common from '../public/locales/common.en.json';
import header from '../public/locales/header.en.json';
import main_menu from '../public/locales/main_menu.en.json';
import assets from '../public/locales/assets.en.json';
import correlationRules from '../public/locales/correlation_rules.en.json';
import correlation_rules_create from '../public/locales/correlation_rules_create.en.json';
import eventsJournal from '../public/locales/events_journal.en.json';
import ncircc_dashboard from '../public/locales/ncircc_dashboard.en.json';
import eventsJournalDashboard from '../public/locales/events_journal_dashboard.en.json';
import accountsDashboard from '../public/locales/accounts_dashboard.en.json';
import storageDashboard from '../public/locales/storage_dashboard.en.json';
import devicesDashboard from '../public/locales/devices_dashboard.en.json';
import rotationDashboard from '../public/locales/rotation_dashboard.en.json';
import incidentsCardInfo from '../public/locales/incident_card_info.en.json';
import incidentsDashboard from '../public/locales/incidents_dashboard.en.json';
import ncirccNotification from '../public/locales/ncircc_notification.en.json';
import systems_settings from '../public/locales/systems_settings.en.json';
import foreignKeyEntitiesTable from '../public/locales/foreign_key_entities_table.en.json';
import license from '../public/locales/license.en.json';

declare module 'react-i18next' {
  interface Resources {
    [COMMON]: typeof common;
    [HEADER]: typeof header;
    [MAIN_MENU]: typeof main_menu;
    [ASSETS]: typeof assets;
    [CORRELATION_RULES]: typeof correlationRules;
    [CORRELATION_RULES_CREATE]: typeof correlation_rules_create;
    [EVENTS_JOURNAL]: typeof eventsJournal;
    [NCIRCC_DASHBOARD]: typeof ncircc_dashboard;
    [EVENTS_JOURNAL_DASHBOARD]: typeof eventsJournalDashboard;
    [ACCOUNTS_DASHBOARD]: typeof accountsDashboard;
    [STORAGE_DASHBOARD]: typeof storageDashboard;
    [DEVICES_DASHBOARD]: typeof devicesDashboard;
    [ROTATION_DASHBOARD]: typeof rotationDashboard;
    [INCIDENT_CARD_INFO]: typeof incidentsCardInfo;
    [NCIRCC_NOTIFICATION]: typeof ncirccNotification;
    [SYSTEMS_SETTINGS]: typeof systems_settings;
    [FOREIGN_KEY_ENTITIES_TABLE]: typeof foreignKeyEntitiesTable;
    [INCIDENTS_DASHBOARD]: typeof incidentsDashboard;
    [LICENSE]: typeof license;
  }
}
