/* astal-network.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __ASTAL_NETWORK_H__
#define __ASTAL_NETWORK_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <NetworkManager.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define ASTAL_NETWORK_MAJOR_VERSION 0
#define ASTAL_NETWORK_MINOR_VERSION 1
#define ASTAL_NETWORK_MICRO_VERSION 0
#define ASTAL_NETWORK_VERSION "0.1.0"
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define ASTAL_NETWORK_TYPE_ACCESS_POINT (astal_network_access_point_get_type ())
#define ASTAL_NETWORK_ACCESS_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NETWORK_TYPE_ACCESS_POINT, AstalNetworkAccessPoint))
#define ASTAL_NETWORK_ACCESS_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NETWORK_TYPE_ACCESS_POINT, AstalNetworkAccessPointClass))
#define ASTAL_NETWORK_IS_ACCESS_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NETWORK_TYPE_ACCESS_POINT))
#define ASTAL_NETWORK_IS_ACCESS_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NETWORK_TYPE_ACCESS_POINT))
#define ASTAL_NETWORK_ACCESS_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NETWORK_TYPE_ACCESS_POINT, AstalNetworkAccessPointClass))

typedef struct _AstalNetworkAccessPoint AstalNetworkAccessPoint;
typedef struct _AstalNetworkAccessPointClass AstalNetworkAccessPointClass;
typedef struct _AstalNetworkAccessPointPrivate AstalNetworkAccessPointPrivate;

#define ASTAL_NETWORK_TYPE_NETWORK (astal_network_network_get_type ())
#define ASTAL_NETWORK_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NETWORK_TYPE_NETWORK, AstalNetworkNetwork))
#define ASTAL_NETWORK_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NETWORK_TYPE_NETWORK, AstalNetworkNetworkClass))
#define ASTAL_NETWORK_IS_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NETWORK_TYPE_NETWORK))
#define ASTAL_NETWORK_IS_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NETWORK_TYPE_NETWORK))
#define ASTAL_NETWORK_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NETWORK_TYPE_NETWORK, AstalNetworkNetworkClass))

typedef struct _AstalNetworkNetwork AstalNetworkNetwork;
typedef struct _AstalNetworkNetworkClass AstalNetworkNetworkClass;
typedef struct _AstalNetworkNetworkPrivate AstalNetworkNetworkPrivate;

#define ASTAL_NETWORK_TYPE_WIFI (astal_network_wifi_get_type ())
#define ASTAL_NETWORK_WIFI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NETWORK_TYPE_WIFI, AstalNetworkWifi))
#define ASTAL_NETWORK_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NETWORK_TYPE_WIFI, AstalNetworkWifiClass))
#define ASTAL_NETWORK_IS_WIFI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NETWORK_TYPE_WIFI))
#define ASTAL_NETWORK_IS_WIFI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NETWORK_TYPE_WIFI))
#define ASTAL_NETWORK_WIFI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NETWORK_TYPE_WIFI, AstalNetworkWifiClass))

typedef struct _AstalNetworkWifi AstalNetworkWifi;
typedef struct _AstalNetworkWifiClass AstalNetworkWifiClass;

#define ASTAL_NETWORK_TYPE_WIRED (astal_network_wired_get_type ())
#define ASTAL_NETWORK_WIRED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NETWORK_TYPE_WIRED, AstalNetworkWired))
#define ASTAL_NETWORK_WIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NETWORK_TYPE_WIRED, AstalNetworkWiredClass))
#define ASTAL_NETWORK_IS_WIRED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NETWORK_TYPE_WIRED))
#define ASTAL_NETWORK_IS_WIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NETWORK_TYPE_WIRED))
#define ASTAL_NETWORK_WIRED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NETWORK_TYPE_WIRED, AstalNetworkWiredClass))

typedef struct _AstalNetworkWired AstalNetworkWired;
typedef struct _AstalNetworkWiredClass AstalNetworkWiredClass;
typedef enum  {
	ASTAL_NETWORK_PRIMARY_UNKNOWN,
	ASTAL_NETWORK_PRIMARY_WIRED,
	ASTAL_NETWORK_PRIMARY_WIFI
} AstalNetworkPrimary;

#define ASTAL_NETWORK_TYPE_PRIMARY (astal_network_primary_get_type ())
typedef enum  {
	ASTAL_NETWORK_CONNECTIVITY_UNKNOWN,
	ASTAL_NETWORK_CONNECTIVITY_NONE,
	ASTAL_NETWORK_CONNECTIVITY_PORTAL,
	ASTAL_NETWORK_CONNECTIVITY_LIMITED,
	ASTAL_NETWORK_CONNECTIVITY_FULL
} AstalNetworkConnectivity;

#define ASTAL_NETWORK_TYPE_CONNECTIVITY (astal_network_connectivity_get_type ())
typedef enum  {
	ASTAL_NETWORK_STATE_UNKNOWN = 0,
	ASTAL_NETWORK_STATE_ASLEEP = 10,
	ASTAL_NETWORK_STATE_DISCONNECTED = 20,
	ASTAL_NETWORK_STATE_DISCONNECTING = 30,
	ASTAL_NETWORK_STATE_CONNECTING = 40,
	ASTAL_NETWORK_STATE_CONNECTED_LOCAL = 50,
	ASTAL_NETWORK_STATE_CONNECTED_SITE = 60,
	ASTAL_NETWORK_STATE_CONNECTED_GLOBAL = 70
} AstalNetworkState;

#define ASTAL_NETWORK_TYPE_STATE (astal_network_state_get_type ())
typedef enum  {
	ASTAL_NETWORK_DEVICE_STATE_UNKNOWN = 0,
	ASTAL_NETWORK_DEVICE_STATE_UNMANAGED = 10,
	ASTAL_NETWORK_DEVICE_STATE_UNAVAILABLE = 20,
	ASTAL_NETWORK_DEVICE_STATE_DISCONNECTED = 30,
	ASTAL_NETWORK_DEVICE_STATE_PREPARE = 40,
	ASTAL_NETWORK_DEVICE_STATE_CONFIG = 50,
	ASTAL_NETWORK_DEVICE_STATE_NEED_AUTH = 60,
	ASTAL_NETWORK_DEVICE_STATE_IP_CONFIG = 70,
	ASTAL_NETWORK_DEVICE_STATE_IP_CHECK = 80,
	ASTAL_NETWORK_DEVICE_STATE_SECONDARIES = 90,
	ASTAL_NETWORK_DEVICE_STATE_ACTIVATED = 100,
	ASTAL_NETWORK_DEVICE_STATE_DEACTIVATING = 110,
	ASTAL_NETWORK_DEVICE_STATE_FAILED = 120
} AstalNetworkDeviceState;

#define ASTAL_NETWORK_TYPE_DEVICE_STATE (astal_network_device_state_get_type ())
typedef enum  {
	ASTAL_NETWORK_INTERNET_CONNECTED,
	ASTAL_NETWORK_INTERNET_CONNECTING,
	ASTAL_NETWORK_INTERNET_DISCONNECTED
} AstalNetworkInternet;

#define ASTAL_NETWORK_TYPE_INTERNET (astal_network_internet_get_type ())
typedef struct _AstalNetworkWifiPrivate AstalNetworkWifiPrivate;
typedef struct _AstalNetworkWiredPrivate AstalNetworkWiredPrivate;

struct _AstalNetworkAccessPoint {
	GObject parent_instance;
	AstalNetworkAccessPointPrivate * priv;
	NMAccessPoint* ap;
};

struct _AstalNetworkAccessPointClass {
	GObjectClass parent_class;
};

struct _AstalNetworkNetwork {
	GObject parent_instance;
	AstalNetworkNetworkPrivate * priv;
};

struct _AstalNetworkNetworkClass {
	GObjectClass parent_class;
};

struct _AstalNetworkWifi {
	GObject parent_instance;
	AstalNetworkWifiPrivate * priv;
};

struct _AstalNetworkWifiClass {
	GObjectClass parent_class;
};

struct _AstalNetworkWired {
	GObject parent_instance;
	AstalNetworkWiredPrivate * priv;
	NMActiveConnection* connection;
};

struct _AstalNetworkWiredClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType astal_network_access_point_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNetworkAccessPoint, g_object_unref)
VALA_EXTERN GPtrArray* astal_network_access_point_get_connections (AstalNetworkAccessPoint* self);
VALA_EXTERN gchar* astal_network_access_point_get_path (AstalNetworkAccessPoint* self);
VALA_EXTERN void astal_network_access_point_activate (AstalNetworkAccessPoint* self,
                                          const gchar* password,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_);
VALA_EXTERN void astal_network_access_point_activate_finish (AstalNetworkAccessPoint* self,
                                                 GAsyncResult* _res_,
                                                 GError** error);
VALA_EXTERN guint astal_network_access_point_get_bandwidth (AstalNetworkAccessPoint* self);
VALA_EXTERN gchar* astal_network_access_point_get_bssid (AstalNetworkAccessPoint* self);
VALA_EXTERN guint astal_network_access_point_get_frequency (AstalNetworkAccessPoint* self);
VALA_EXTERN gint astal_network_access_point_get_last_seen (AstalNetworkAccessPoint* self);
VALA_EXTERN guint astal_network_access_point_get_max_bitrate (AstalNetworkAccessPoint* self);
VALA_EXTERN guint8 astal_network_access_point_get_strength (AstalNetworkAccessPoint* self);
VALA_EXTERN const gchar* astal_network_access_point_get_icon_name (AstalNetworkAccessPoint* self);
VALA_EXTERN NM80211Mode astal_network_access_point_get_mode (AstalNetworkAccessPoint* self);
VALA_EXTERN NM80211ApFlags astal_network_access_point_get_flags (AstalNetworkAccessPoint* self);
VALA_EXTERN NM80211ApSecurityFlags astal_network_access_point_get_rsn_flags (AstalNetworkAccessPoint* self);
VALA_EXTERN NM80211ApSecurityFlags astal_network_access_point_get_wpa_flags (AstalNetworkAccessPoint* self);
VALA_EXTERN gboolean astal_network_access_point_get_requires_password (AstalNetworkAccessPoint* self);
VALA_EXTERN gchar* astal_network_access_point_get_ssid (AstalNetworkAccessPoint* self);
VALA_EXTERN GType astal_network_network_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNetworkNetwork, g_object_unref)
VALA_EXTERN AstalNetworkNetwork* astal_network_get_default (void);
VALA_EXTERN AstalNetworkNetwork* astal_network_network_get_default (void);
VALA_EXTERN AstalNetworkNetwork* astal_network_network_new (void);
VALA_EXTERN AstalNetworkNetwork* astal_network_network_construct (GType object_type);
VALA_EXTERN NMClient* astal_network_network_get_client (AstalNetworkNetwork* self);
VALA_EXTERN GType astal_network_wifi_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNetworkWifi, g_object_unref)
VALA_EXTERN AstalNetworkWifi* astal_network_network_get_wifi (AstalNetworkNetwork* self);
VALA_EXTERN GType astal_network_wired_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNetworkWired, g_object_unref)
VALA_EXTERN AstalNetworkWired* astal_network_network_get_wired (AstalNetworkNetwork* self);
VALA_EXTERN GType astal_network_primary_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNetworkPrimary astal_network_network_get_primary (AstalNetworkNetwork* self);
VALA_EXTERN GType astal_network_connectivity_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNetworkConnectivity astal_network_network_get_connectivity (AstalNetworkNetwork* self);
VALA_EXTERN GType astal_network_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNetworkState astal_network_network_get_state (AstalNetworkNetwork* self);
VALA_EXTERN gchar* astal_network_primary_to_string (AstalNetworkPrimary self);
VALA_EXTERN AstalNetworkPrimary astal_network_primary_from_connection_type (const gchar* type);
VALA_EXTERN gchar* astal_network_state_to_string (AstalNetworkState self);
VALA_EXTERN gchar* astal_network_connectivity_to_string (AstalNetworkConnectivity self);
VALA_EXTERN GType astal_network_device_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* astal_network_device_state_to_string (AstalNetworkDeviceState self);
VALA_EXTERN GType astal_network_internet_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNetworkInternet astal_network_internet_from_device (NMDevice* device);
VALA_EXTERN gchar* astal_network_internet_to_string (AstalNetworkInternet self);
VALA_EXTERN void astal_network_wifi_scan (AstalNetworkWifi* self);
VALA_EXTERN void astal_network_wifi_deactivate_connection (AstalNetworkWifi* self,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
VALA_EXTERN void astal_network_wifi_deactivate_connection_finish (AstalNetworkWifi* self,
                                                      GAsyncResult* _res_,
                                                      GError** error);
VALA_EXTERN NMDeviceWifi* astal_network_wifi_get_device (AstalNetworkWifi* self);
VALA_EXTERN void astal_network_wifi_set_device (AstalNetworkWifi* self,
                                    NMDeviceWifi* value);
VALA_EXTERN NMActiveConnection* astal_network_wifi_get_active_connection (AstalNetworkWifi* self);
VALA_EXTERN AstalNetworkAccessPoint* astal_network_wifi_get_active_access_point (AstalNetworkWifi* self);
VALA_EXTERN GList* astal_network_wifi_get_access_points (AstalNetworkWifi* self);
VALA_EXTERN gboolean astal_network_wifi_get_enabled (AstalNetworkWifi* self);
VALA_EXTERN void astal_network_wifi_set_enabled (AstalNetworkWifi* self,
                                     gboolean value);
VALA_EXTERN AstalNetworkInternet astal_network_wifi_get_internet (AstalNetworkWifi* self);
VALA_EXTERN guint astal_network_wifi_get_bandwidth (AstalNetworkWifi* self);
VALA_EXTERN const gchar* astal_network_wifi_get_ssid (AstalNetworkWifi* self);
VALA_EXTERN guint8 astal_network_wifi_get_strength (AstalNetworkWifi* self);
VALA_EXTERN guint astal_network_wifi_get_frequency (AstalNetworkWifi* self);
VALA_EXTERN AstalNetworkDeviceState astal_network_wifi_get_state (AstalNetworkWifi* self);
VALA_EXTERN const gchar* astal_network_wifi_get_icon_name (AstalNetworkWifi* self);
VALA_EXTERN gboolean astal_network_wifi_get_is_hotspot (AstalNetworkWifi* self);
VALA_EXTERN gboolean astal_network_wifi_get_scanning (AstalNetworkWifi* self);
VALA_EXTERN NMDeviceEthernet* astal_network_wired_get_device (AstalNetworkWired* self);
VALA_EXTERN void astal_network_wired_set_device (AstalNetworkWired* self,
                                     NMDeviceEthernet* value);
VALA_EXTERN guint astal_network_wired_get_speed (AstalNetworkWired* self);
VALA_EXTERN AstalNetworkInternet astal_network_wired_get_internet (AstalNetworkWired* self);
VALA_EXTERN AstalNetworkDeviceState astal_network_wired_get_state (AstalNetworkWired* self);
VALA_EXTERN const gchar* astal_network_wired_get_icon_name (AstalNetworkWired* self);

G_END_DECLS

#endif
