#ifndef _RIVE_STATE_INSTANCE_HPP_
#define _RIVE_STATE_INSTANCE_HPP_

#include <string>
#include <stddef.h>

namespace rive
{
    class LayerState;
    class SMIInput;
    class Artboard;

    /// Represents an instance of a state tracked by the State Machine.
    class StateInstance
    {
    private:
        const LayerState* m_LayerState;

    public:
        StateInstance(const LayerState* layerState);
        virtual ~StateInstance();
        virtual void advance(float seconds, SMIInput** inputs) = 0;
        virtual void apply(Artboard* artboard, float mix) = 0;

        /// Returns true when the State Machine needs to keep advancing this
        /// state.
        virtual bool keepGoing() const = 0;

        const LayerState* state() const;
    };
} // namespace rive
#endif