+typedef std::map<std::string, std::vector<ArgumentType> > CommandMap;
+typedef std::map<std::string, FullCommand> FullCommandMap;
+typedef std::map<std::string, FullEnvironment> FullEnvironmentMap;
+
+/// Known TeX commands with arguments that get parsed into ERT.
+extern CommandMap known_commands;
+/// Known TeX environments with arguments that get parsed into ERT.
+extern CommandMap known_environments;
+/// Known TeX math environments with arguments that get parsed into LyX mathed.
+extern CommandMap known_math_environments;
+/// Commands that might be defined by the document class or modules
+extern FullCommandMap possible_textclass_commands;
+/// Environments that might be defined by the document class or modules
+extern FullEnvironmentMap possible_textclass_environments;
+/// Theorems that might be defined by the document class or modules
+extern FullCommandMap possible_textclass_theorems;
+///
+extern bool noweb_mode;
+/// Did we recognize any pdflatex-only construct?
+extern bool pdflatex;
+/// Did we recognize any xetex-only construct?
+extern bool xetex;
+/// Do we have non-CJK Japanese?
+extern bool is_nonCJKJapanese;
+/// LyX format that is created by tex2lyx
+extern int const LYX_FORMAT;
+
+/// Absolute path of the master .lyx or .tex file
+extern std::string getMasterFilePath(bool input);
+/// Absolute path of the currently processed .lyx or .tex file
+extern std::string getParentFilePath(bool input);
+/// Is it allowed to overwrite existing files?
+extern bool overwriteFiles();
+/// Do we need to copy included files to the output directory?
+extern bool copyFiles();
+/// Shall we skip child documents and keep them as TeX?
+extern bool skipChildren();
+/// Does tex2lyx run in roundtrip mode?
+extern bool roundtripMode();
+
+
+/*!
+ * Reads tex input from \a infilename and writes lyx output to \a outfilename.
+ * The iconv name of the encoding can be provided as \a encoding.