/* eslint-disable import/no-cycle */
import { enableStaticRendering } from 'mobx-react-lite';
import CalculationStore from './calculation';
import type { ProcessStore } from './process';
import createProcessStore from './process';
import ResultsStore from './results';
import TablesStore from './tables';

enableStaticRendering(typeof window === 'undefined');

export default class RootStore {
  $calculation: CalculationStore;
  $results: ResultsStore;
  $tables: TablesStore;
  $process: ProcessStore;

  constructor() {
    this.$calculation = new CalculationStore(this);
    this.$results = new ResultsStore(this);
    this.$tables = new TablesStore(this);
    this.$process = createProcessStore();
  }
}
