#ifndef AgObjectH
#define AgObjectH

#include <string>
#include <stdint.h>

class AgString;

class AgObject
{
public:
    virtual ~AgObject() {}

    virtual std::string getClass();
    virtual int hashCode();
    virtual AgString toString();
    virtual bool equals(AgObject* obj);

    int toInteger();
    int64_t toLong();
    bool toBoolean();
    double toDouble();
    float toFloat();
};

#endif
