/* gudev-1.0.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "GUdev", gir_namespace = "GUdev", gir_version = "1.0", lower_case_cprefix = "g_udev_")]
namespace GUdev {
	[CCode (cheader_filename = "gudev/gudev.h", type_id = "g_udev_client_get_type ()")]
	public class Client : GLib.Object {
		[CCode (has_construct_function = false)]
		public Client ([CCode (array_length = false, array_null_terminated = true)] string[]? subsystems);
		public GUdev.Device? query_by_device_file (string device_file);
		public GUdev.Device? query_by_device_number (GUdev.DeviceType type, GUdev.DeviceNumber number);
		public GLib.List<GUdev.Device>? query_by_subsystem (string? subsystem);
		public GUdev.Device? query_by_subsystem_and_name (string subsystem, string name);
		public GUdev.Device? query_by_sysfs_path (string sysfs_path);
		[CCode (array_length = false, array_null_terminated = true)]
		[NoAccessorMethod]
		public string[] subsystems { owned get; construct; }
		public virtual signal void uevent (string action, GUdev.Device device);
	}
	[CCode (cheader_filename = "gudev/gudev.h", type_id = "g_udev_device_get_type ()")]
	public class Device : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Device ();
		public unowned string get_action ();
		public unowned string? get_device_file ();
		[CCode (array_length = false, array_null_terminated = true)]
		public unowned string[] get_device_file_symlinks ();
		public GUdev.DeviceNumber get_device_number ();
		public GUdev.DeviceType get_device_type ();
		public unowned string get_devtype ();
		public unowned string? get_driver ();
		[Version (since = "165")]
		public bool get_is_initialized ();
		public unowned string get_name ();
		public unowned string get_number ();
		public GUdev.Device? get_parent ();
		public GUdev.Device? get_parent_with_subsystem (string subsystem, string? devtype);
		public unowned string? get_property (string key);
		public bool get_property_as_boolean (string key);
		public double get_property_as_double (string key);
		public int get_property_as_int (string key);
		[CCode (array_length = false, array_null_terminated = true)]
		public unowned string[]? get_property_as_strv (string key);
		public uint64 get_property_as_uint64 (string key);
		[CCode (array_length = false, array_null_terminated = true)]
		public unowned string[] get_property_keys ();
		public uint64 get_seqnum ();
		public unowned string get_subsystem ();
		public unowned string? get_sysfs_attr (string name);
		public bool get_sysfs_attr_as_boolean (string name);
		public double get_sysfs_attr_as_double (string name);
		public int get_sysfs_attr_as_int (string name);
		[CCode (array_length = false, array_null_terminated = true)]
		public unowned string[]? get_sysfs_attr_as_strv (string name);
		public uint64 get_sysfs_attr_as_uint64 (string name);
		[CCode (array_length = false, array_null_terminated = true)]
		public unowned string[] get_sysfs_attr_keys ();
		public unowned string get_sysfs_path ();
		[CCode (array_length = false, array_null_terminated = true)]
		[Version (since = "165")]
		public unowned string[] get_tags ();
		[Version (since = "165")]
		public uint64 get_usec_since_initialized ();
		public bool has_property (string key);
		public bool has_sysfs_attr (string key);
	}
	[CCode (cheader_filename = "gudev/gudev.h", type_id = "g_udev_enumerator_get_type ()")]
	[Version (since = "165")]
	public class Enumerator : GLib.Object {
		[CCode (has_construct_function = false)]
		public Enumerator (GUdev.Client client);
		public unowned GUdev.Enumerator add_match_is_initialized ();
		public unowned GUdev.Enumerator add_match_name (string name);
		public unowned GUdev.Enumerator add_match_property (string name, string value);
		public unowned GUdev.Enumerator add_match_subsystem (string subsystem);
		public unowned GUdev.Enumerator add_match_sysfs_attr (string name, string value);
		public unowned GUdev.Enumerator add_match_tag (string tag);
		public unowned GUdev.Enumerator add_nomatch_subsystem (string subsystem);
		public unowned GUdev.Enumerator add_nomatch_sysfs_attr (string name, string value);
		public unowned GUdev.Enumerator add_sysfs_path (string sysfs_path);
		public GLib.List<GUdev.Device> execute ();
		[NoAccessorMethod]
		public GUdev.Client client { owned get; construct; }
	}
	[CCode (cheader_filename = "gudev/gudev.h")]
	[SimpleType]
	public struct DeviceNumber : Posix.dev_t {
	}
	[CCode (cheader_filename = "gudev/gudev.h", cprefix = "G_UDEV_DEVICE_TYPE_", type_id = "g_udev_device_type_get_type ()")]
	public enum DeviceType {
		NONE,
		BLOCK,
		CHAR
	}
}
