-std::string curr_env();
-void active_environments_push(std::string const & name);
-void active_environments_pop();
-bool active_environments_empty();
+extern std::vector<std::string> active_environments;
+std::string active_environment();
+
+enum ArgumentType {
+ required,
+ verbatim,
+ optional
+};
+
+typedef std::map<std::string, std::vector<ArgumentType> > CommandMap;
+
+/// 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;
+///
+extern bool noweb_mode;
+
+/// path of the master .tex file
+extern std::string getMasterFilePath();
+/// path of the currently processed .tex file
+extern std::string getParentFilePath();
+
+
+/*!
+ * Reads tex input from \a infilename and writes lyx output to \a outfilename.
+ * Uses some common settings for the preamble, so this should only
+ * be used more than once for included documents.
+ * Caution: Overwrites the existing preamble settings if the new document
+ * contains a preamble.
+ * \return true if the conversion was successful, else false.
+ */
+bool tex2lyx(std::string const & infilename, support::FileName const & outfilename);
+
+
+} // namespace lyx