#pragma once

#include "app_core/document_export.h"
#include "foundation/result.h"

class App;

namespace pp::panopainter {

[[nodiscard]] pp::foundation::Status execute_legacy_document_export_file(
    App& app,
    const pp::app::DocumentExportFileTarget& target);

[[nodiscard]] pp::foundation::Status execute_legacy_document_export_stem(
    App& app,
    pp::app::DocumentExportCollectionKind kind,
    const pp::app::DocumentExportStemTarget& target);

[[nodiscard]] pp::foundation::Status execute_legacy_document_export_collection(
    App& app,
    pp::app::DocumentExportCollectionKind kind,
    const pp::app::DocumentExportCollectionTarget& target);

[[nodiscard]] pp::foundation::Status execute_legacy_document_export_depth(
    App& app,
    std::string_view document_name);

[[nodiscard]] pp::foundation::Status execute_legacy_document_export_cube_faces(
    App& app,
    std::string_view document_name);

[[nodiscard]] pp::foundation::Status execute_legacy_document_video_export(
    App& app,
    pp::app::DocumentVideoExportKind kind,
    std::string_view path,
    bool asynchronous);

} // namespace pp::panopainter
