import { Config } from "./src/util/config";
import { i18nHelper } from "./src/services/i18nHelper";
import * as LocalizedStringsService from "./src/services/localizedStringsService";
import { openAssessmentDetail, levenshteinDistance } from "./src/util/utils";
import { processData } from "./src/util/dataProcess";
import { parseExpression, parseCode } from "./src/util/parseFromVisual";
import { autoGenerateTestCaseOutput } from "./src/util/auto_gen_output";
import { IVProgProcessor } from "./src/processor/ivprogProcessor.js";
import { SemanticAnalyser } from "./src/processor/semantic/semanticAnalyser.js";
import { Modes } from "./src/processor/modes";
import { Location } from "./src/memory/location";

const Settings = {
  programming: [],
  functions: [],
  datatypes: [],
  commands: [],
  filter: []
}

const i18n = i18nHelper.i18n;
const LocalizedStrings = LocalizedStringsService.getInstance();

export {
  i18n,
  Settings,
  Config,
  LocalizedStrings,
  SemanticAnalyser,
  IVProgProcessor,
  Modes,
  Location,
  openAssessmentDetail,
  autoGenerateTestCaseOutput,
  parseExpression,
  parseCode,
  levenshteinDistance,
  processData,
};
