#ifndef _RIVE_SYSTEM_STATE_INSTANCE_HPP_
#define _RIVE_SYSTEM_STATE_INSTANCE_HPP_

#include <string>
#include "rive/animation/state_instance.hpp"

namespace rive {
/// Represents an instance of a system state machine. Basically a
/// placeholder that may have meaning to the state machine itself, or is
/// just a no-op state (perhaps an unknown to this runtime state-type).
class SystemStateInstance : public StateInstance {
public:
    SystemStateInstance(const LayerState* layerState, ArtboardInstance* instance);

    void advance(float seconds, Span<SMIInput*> inputs) override;
    void apply(float mix) override;

    bool keepGoing() const override;
};
} // namespace rive
#endif