#ifndef _RIVE_STATE_INSTANCE_HPP_
#define _RIVE_STATE_INSTANCE_HPP_

#include <string>
#include <stddef.h>
#include "rive/rive_types.hpp"
#include "rive/span.hpp"

namespace rive {
class LayerState;
class SMIInput;
class ArtboardInstance;

/// 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, Span<SMIInput*> inputs) = 0;
    virtual void apply(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