#ifndef FESA_RESULTS_EIGEN_RESULTS_WRITER_H_ #define FESA_RESULTS_EIGEN_RESULTS_WRITER_H_ #include #include #include "fesa/analysis/eigen_analysis_state.h" #include "fesa/core/diagnostic.h" #include "fesa/core/status.h" namespace fesa { class Domain; /// @brief Isolates authoritative modal storage from procedure execution. class EigenResultsWriter { public: virtual ~EigenResultsWriter() = default; /// @brief Validates and atomically publishes the complete modal candidate. /// @return Success only after closed-file validation and final replacement. virtual Status Write(const std::filesystem::path& output_path, const Domain& domain, const EigenAnalysisState& state, const std::vector& diagnostics) = 0; }; } // namespace fesa #endif // FESA_RESULTS_EIGEN_RESULTS_WRITER_H_