//
//  SuperpoweredExtension.hpp
//  SwitchboardSuperpowered
//
//  Created by Balazs Kiss on 2023. 01. 06..
//

#pragma once

#include <switchboard_core/Extension.hpp>
#include <switchboard_superpowered/export.h>

#if !defined(SWITCHBOARD_WEB)
extern "C" {
    void sb_extension_load();
}
#endif

namespace switchboard::extensions::superpowered {

class SWITCHBOARDSUPERPOWERED_EXPORT SuperpoweredExtension final : public Extension {
public:
    SuperpoweredExtension() = default;

    static void load();

    // MARK: Overridden methods

    Result<void> initialize(const SBAnyMap& config) override;
    std::string getName() override;
    std::string getDescription() override;
    std::shared_ptr<NodeFactory> getNodeFactory() override;
};

}
