#ifndef _RIVE_STATE_MACHINE_LISTENER_IMPORTER_HPP_
#define _RIVE_STATE_MACHINE_LISTENER_IMPORTER_HPP_

#include "rive/importers/import_stack.hpp"

namespace rive {
    class StateMachineListener;
    class StateMachine;
    class ListenerAction;
    class StateMachineListenerImporter : public ImportStackObject {
    private:
        StateMachineListener* m_StateMachineListener;

    public:
        StateMachineListenerImporter(StateMachineListener* listener);
        const StateMachineListener* stateMachineListener() const { return m_StateMachineListener; }
        void addAction(std::unique_ptr<ListenerAction>);
        StatusCode resolve() override;
    };
} // namespace rive
#endif
