#ifndef __JGRAPHT_CAPI_TYPES
#define __JGRAPHT_CAPI_TYPES

typedef enum {
    STATUS_SUCCESS = 0, 
    STATUS_ERROR,
    STATUS_ILLEGAL_ARGUMENT,
    STATUS_UNSUPPORTED_OPERATION,
    STATUS_INDEX_OUT_OF_BOUNDS,
    STATUS_NO_SUCH_ELEMENT,
    STATUS_NULL_POINTER,
    STATUS_CLASS_CAST,
    STATUS_IO_ERROR,
    STATUS_EXPORT_ERROR,
    STATUS_IMPORT_ERROR,
    STATUS_NEGATIVE_CYCLE_DETECTED,
} status_t;

typedef enum {
    DIMACS_FORMAT_SHORTEST_PATH = 0,
    DIMACS_FORMAT_MAX_CLIQUE,
    DIMACS_FORMAT_COLORING,
} dimacs_format_t;

typedef enum {
    CSV_FORMAT_EDGE_LIST = 0,
    CSV_FORMAT_ADJACENCY_LIST,
    CSV_FORMAT_MATRIX,
} csv_format_t;

typedef enum {
    GRAPH_EVENT_BEFORE_VERTEX_ADDED = 11,
    GRAPH_EVENT_BEFORE_VERTEX_REMOVED,
    GRAPH_EVENT_VERTEX_ADDED,
    GRAPH_EVENT_VERTEX_REMOVED,
    GRAPH_EVENT_BEFORE_EDGE_ADDED = 21,
    GRAPH_EVENT_BEFORE_EDGE_REMOVED,
    GRAPH_EVENT_EDGE_ADDED,
    GRAPH_EVENT_EDGE_REMOVED,
    GRAPH_EVENT_EDGE_WEIGHT_UPDATED,
} graph_event_t;

#endif
