[gnome-sound-recorder/wip/cdavis/typescript: 2/3] general: Use type-checked JavaScript




commit 805afed583bd383318b2419ae8a813db474848e6
Author: Christopher Davis <christopherdavis gnome org>
Date:   Sun Aug 7 20:49:08 2022 -0400

    general: Use type-checked JavaScript

 .gitignore                     |     4 +-
 docs-lock.json                 |   962 ++
 docs.json                      |    50 +
 package.json                   |    19 +
 src/application.js             |    10 +-
 src/main.js                    |     3 -
 src/org.gnome.SoundRecorder.in |     3 +
 src/recorder.js                |     9 +-
 src/recorderWidget.js          |    25 +-
 src/recording.js               |     9 +-
 src/recordingList.js           |    13 +-
 src/recordingListWidget.js     |     5 +-
 src/row.js                     |    40 +-
 src/utils.js                   |     3 +
 src/waveform.js                |     4 +-
 src/window.js                  |    45 +-
 tsconfig.json                  |    29 +
 types/adw.d.ts                 |  4182 ++++++++
 types/ambient.d.ts             |    44 +
 types/cairo.d.ts               |   437 +
 types/gdk.d.ts                 |  4637 ++++++++
 types/gdkpixbuf.d.ts           |   599 ++
 types/gio.d.ts                 | 10540 ++++++++++++++++++
 types/glib.d.ts                |  4491 ++++++++
 types/gobject.d.ts             |  2062 ++++
 types/gst.d.ts                 |  5358 ++++++++++
 types/gstaudio.d.ts            |  1535 +++
 types/gstpbutils.d.ts          |   620 ++
 types/gstplayer.d.ts           |   464 +
 types/gtk.d.ts                 | 22542 +++++++++++++++++++++++++++++++++++++++
 types/harfbuzz.d.ts            |  2194 ++++
 types/pango.d.ts               |  1702 +++
 yarn.lock                      |     4 +
 33 files changed, 62615 insertions(+), 29 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 5674707..d0b4c7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,6 @@ _build
 **/*.swp
 **/*.*~
 **/tags.*
-.flatpak
\ No newline at end of file
+.flatpak
+node_modules/
+.vscode/
\ No newline at end of file
diff --git a/docs-lock.json b/docs-lock.json
new file mode 100644
index 0000000..0fa9797
--- /dev/null
+++ b/docs-lock.json
@@ -0,0 +1,962 @@
+[
+    {
+        "name": "Adw",
+        "api_version": "1",
+        "c_prefix": [
+            "adw"
+        ],
+        "path": "/usr/share/gir-1.0/Adw-1.gir",
+        "id": "Adw-1.gir",
+        "slug": "adw1"
+    },
+    {
+        "name": "AppStream",
+        "api_version": "1.0",
+        "c_prefix": [
+            "as"
+        ],
+        "path": "/usr/share/gir-1.0/AppStream-1.0.gir",
+        "id": "AppStream-1.0.gir",
+        "slug": "appstream10"
+    },
+    {
+        "name": "Atk",
+        "api_version": "1.0",
+        "c_prefix": [
+            "atk"
+        ],
+        "path": "/usr/share/gir-1.0/Atk-1.0.gir",
+        "id": "Atk-1.0.gir",
+        "slug": "atk10"
+    },
+    {
+        "name": "Atspi",
+        "api_version": "2.0",
+        "c_prefix": [
+            "atspi"
+        ],
+        "path": "/usr/share/gir-1.0/Atspi-2.0.gir",
+        "id": "Atspi-2.0.gir",
+        "slug": "atspi20"
+    },
+    {
+        "name": "cairo",
+        "api_version": "1.0",
+        "c_prefix": [
+            "cairo"
+        ],
+        "path": "/usr/share/gir-1.0/cairo-1.0.gir",
+        "id": "cairo-1.0.gir",
+        "slug": "cairo10"
+    },
+    {
+        "name": "CloudProviders",
+        "api_version": "0.3",
+        "c_prefix": [
+            "cloud_providers"
+        ],
+        "path": "/usr/share/gir-1.0/CloudProviders-0.3.gir",
+        "id": "CloudProviders-0.3.gir",
+        "slug": "cloudproviders03"
+    },
+    {
+        "name": "DBus",
+        "api_version": "1.0",
+        "c_prefix": [],
+        "path": "/usr/share/gir-1.0/DBus-1.0.gir",
+        "id": "DBus-1.0.gir",
+        "slug": "dbus10"
+    },
+    {
+        "name": "DBusGLib",
+        "api_version": "1.0",
+        "c_prefix": [],
+        "path": "/usr/share/gir-1.0/DBusGLib-1.0.gir",
+        "id": "DBusGLib-1.0.gir",
+        "slug": "dbusglib10"
+    },
+    {
+        "name": "Flatpak",
+        "api_version": "1.0",
+        "c_prefix": [
+            "flatpak"
+        ],
+        "path": "/usr/share/gir-1.0/Flatpak-1.0.gir",
+        "id": "Flatpak-1.0.gir",
+        "slug": "flatpak10"
+    },
+    {
+        "name": "fontconfig",
+        "api_version": "2.0",
+        "c_prefix": [
+            "fc"
+        ],
+        "path": "/usr/share/gir-1.0/fontconfig-2.0.gir",
+        "id": "fontconfig-2.0.gir",
+        "slug": "fontconfig20"
+    },
+    {
+        "name": "freetype2",
+        "api_version": "2.0",
+        "c_prefix": [
+            "FT"
+        ],
+        "path": "/usr/share/gir-1.0/freetype2-2.0.gir",
+        "id": "freetype2-2.0.gir",
+        "slug": "freetype220"
+    },
+    {
+        "name": "Fwupd",
+        "api_version": "2.0",
+        "c_prefix": [
+            "fwupd"
+        ],
+        "path": "/usr/share/gir-1.0/Fwupd-2.0.gir",
+        "id": "Fwupd-2.0.gir",
+        "slug": "fwupd20"
+    },
+    {
+        "name": "FwupdPlugin",
+        "api_version": "1.0",
+        "c_prefix": [
+            "fu"
+        ],
+        "path": "/usr/share/gir-1.0/FwupdPlugin-1.0.gir",
+        "id": "FwupdPlugin-1.0.gir",
+        "slug": "fwupdplugin10"
+    },
+    {
+        "name": "GCab",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gcab"
+        ],
+        "path": "/usr/share/gir-1.0/GCab-1.0.gir",
+        "id": "GCab-1.0.gir",
+        "slug": "gcab10"
+    },
+    {
+        "name": "GDesktopEnums",
+        "api_version": "3.0",
+        "c_prefix": [
+            "g_desktop"
+        ],
+        "path": "/usr/share/gir-1.0/GDesktopEnums-3.0.gir",
+        "id": "GDesktopEnums-3.0.gir",
+        "slug": "gdesktopenums30"
+    },
+    {
+        "name": "Gdk",
+        "api_version": "2.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/Gdk-2.0.gir",
+        "id": "Gdk-2.0.gir",
+        "slug": "gdk20"
+    },
+    {
+        "name": "Gdk",
+        "api_version": "3.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/Gdk-3.0.gir",
+        "id": "Gdk-3.0.gir",
+        "slug": "gdk30"
+    },
+    {
+        "name": "Gdk",
+        "api_version": "4.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/Gdk-4.0.gir",
+        "id": "Gdk-4.0.gir",
+        "slug": "gdk40"
+    },
+    {
+        "name": "GdkPixbuf",
+        "api_version": "2.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/GdkPixbuf-2.0.gir",
+        "id": "GdkPixbuf-2.0.gir",
+        "slug": "gdkpixbuf20"
+    },
+    {
+        "name": "GdkPixdata",
+        "api_version": "2.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/GdkPixdata-2.0.gir",
+        "id": "GdkPixdata-2.0.gir",
+        "slug": "gdkpixdata20"
+    },
+    {
+        "name": "GdkWayland",
+        "api_version": "4.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/GdkWayland-4.0.gir",
+        "id": "GdkWayland-4.0.gir",
+        "slug": "gdkwayland40"
+    },
+    {
+        "name": "GdkX11",
+        "api_version": "2.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/GdkX11-2.0.gir",
+        "id": "GdkX11-2.0.gir",
+        "slug": "gdkx1120"
+    },
+    {
+        "name": "GdkX11",
+        "api_version": "3.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/GdkX11-3.0.gir",
+        "id": "GdkX11-3.0.gir",
+        "slug": "gdkx1130"
+    },
+    {
+        "name": "GdkX11",
+        "api_version": "4.0",
+        "c_prefix": [
+            "gdk"
+        ],
+        "path": "/usr/share/gir-1.0/GdkX11-4.0.gir",
+        "id": "GdkX11-4.0.gir",
+        "slug": "gdkx1140"
+    },
+    {
+        "name": "Gio",
+        "api_version": "2.0",
+        "c_prefix": [
+            "g"
+        ],
+        "path": "/usr/share/gir-1.0/Gio-2.0.gir",
+        "id": "Gio-2.0.gir",
+        "slug": "gio20"
+    },
+    {
+        "name": "GIRepository",
+        "api_version": "2.0",
+        "c_prefix": [
+            "g",
+            "gi"
+        ],
+        "path": "/usr/share/gir-1.0/GIRepository-2.0.gir",
+        "id": "GIRepository-2.0.gir",
+        "slug": "girepository20"
+    },
+    {
+        "name": "GL",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gl"
+        ],
+        "path": "/usr/share/gir-1.0/GL-1.0.gir",
+        "id": "GL-1.0.gir",
+        "slug": "gl10"
+    },
+    {
+        "name": "GLib",
+        "api_version": "2.0",
+        "c_prefix": [
+            "g",
+            "glib"
+        ],
+        "path": "/usr/share/gir-1.0/GLib-2.0.gir",
+        "id": "GLib-2.0.gir",
+        "slug": "glib20"
+    },
+    {
+        "name": "GModule",
+        "api_version": "2.0",
+        "c_prefix": [
+            "g"
+        ],
+        "path": "/usr/share/gir-1.0/GModule-2.0.gir",
+        "id": "GModule-2.0.gir",
+        "slug": "gmodule20"
+    },
+    {
+        "name": "GObject",
+        "api_version": "2.0",
+        "c_prefix": [
+            "g"
+        ],
+        "path": "/usr/share/gir-1.0/GObject-2.0.gir",
+        "id": "GObject-2.0.gir",
+        "slug": "gobject20"
+    },
+    {
+        "name": "Graphene",
+        "api_version": "1.0",
+        "c_prefix": [
+            "graphene"
+        ],
+        "path": "/usr/share/gir-1.0/Graphene-1.0.gir",
+        "id": "Graphene-1.0.gir",
+        "slug": "graphene10"
+    },
+    {
+        "name": "Gsk",
+        "api_version": "4.0",
+        "c_prefix": [
+            "gsk"
+        ],
+        "path": "/usr/share/gir-1.0/Gsk-4.0.gir",
+        "id": "Gsk-4.0.gir",
+        "slug": "gsk40"
+    },
+    {
+        "name": "Gst",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/Gst-1.0.gir",
+        "id": "Gst-1.0.gir",
+        "slug": "gst10"
+    },
+    {
+        "name": "GstAllocators",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstAllocators-1.0.gir",
+        "id": "GstAllocators-1.0.gir",
+        "slug": "gstallocators10"
+    },
+    {
+        "name": "GstApp",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstApp-1.0.gir",
+        "id": "GstApp-1.0.gir",
+        "slug": "gstapp10"
+    },
+    {
+        "name": "GstAudio",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstAudio-1.0.gir",
+        "id": "GstAudio-1.0.gir",
+        "slug": "gstaudio10"
+    },
+    {
+        "name": "GstBadAudio",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstBadAudio-1.0.gir",
+        "id": "GstBadAudio-1.0.gir",
+        "slug": "gstbadaudio10"
+    },
+    {
+        "name": "GstBase",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstBase-1.0.gir",
+        "id": "GstBase-1.0.gir",
+        "slug": "gstbase10"
+    },
+    {
+        "name": "GstCheck",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstCheck-1.0.gir",
+        "id": "GstCheck-1.0.gir",
+        "slug": "gstcheck10"
+    },
+    {
+        "name": "GstCodecs",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstCodecs-1.0.gir",
+        "id": "GstCodecs-1.0.gir",
+        "slug": "gstcodecs10"
+    },
+    {
+        "name": "GstController",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstController-1.0.gir",
+        "id": "GstController-1.0.gir",
+        "slug": "gstcontroller10"
+    },
+    {
+        "name": "GstGL",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstGL-1.0.gir",
+        "id": "GstGL-1.0.gir",
+        "slug": "gstgl10"
+    },
+    {
+        "name": "GstGLEGL",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstGLEGL-1.0.gir",
+        "id": "GstGLEGL-1.0.gir",
+        "slug": "gstglegl10"
+    },
+    {
+        "name": "GstGLWayland",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstGLWayland-1.0.gir",
+        "id": "GstGLWayland-1.0.gir",
+        "slug": "gstglwayland10"
+    },
+    {
+        "name": "GstGLX11",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstGLX11-1.0.gir",
+        "id": "GstGLX11-1.0.gir",
+        "slug": "gstglx1110"
+    },
+    {
+        "name": "GstInsertBin",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstInsertBin-1.0.gir",
+        "id": "GstInsertBin-1.0.gir",
+        "slug": "gstinsertbin10"
+    },
+    {
+        "name": "GstMpegts",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst_mpegts",
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstMpegts-1.0.gir",
+        "id": "GstMpegts-1.0.gir",
+        "slug": "gstmpegts10"
+    },
+    {
+        "name": "GstNet",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstNet-1.0.gir",
+        "id": "GstNet-1.0.gir",
+        "slug": "gstnet10"
+    },
+    {
+        "name": "GstPbutils",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstPbutils-1.0.gir",
+        "id": "GstPbutils-1.0.gir",
+        "slug": "gstpbutils10"
+    },
+    {
+        "name": "GstPlay",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstPlay-1.0.gir",
+        "id": "GstPlay-1.0.gir",
+        "slug": "gstplay10"
+    },
+    {
+        "name": "GstPlayer",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstPlayer-1.0.gir",
+        "id": "GstPlayer-1.0.gir",
+        "slug": "gstplayer10"
+    },
+    {
+        "name": "GstRtp",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstRtp-1.0.gir",
+        "id": "GstRtp-1.0.gir",
+        "slug": "gstrtp10"
+    },
+    {
+        "name": "GstRtsp",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstRtsp-1.0.gir",
+        "id": "GstRtsp-1.0.gir",
+        "slug": "gstrtsp10"
+    },
+    {
+        "name": "GstSdp",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstSdp-1.0.gir",
+        "id": "GstSdp-1.0.gir",
+        "slug": "gstsdp10"
+    },
+    {
+        "name": "GstTag",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstTag-1.0.gir",
+        "id": "GstTag-1.0.gir",
+        "slug": "gsttag10"
+    },
+    {
+        "name": "GstTranscoder",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst_"
+        ],
+        "path": "/usr/share/gir-1.0/GstTranscoder-1.0.gir",
+        "id": "GstTranscoder-1.0.gir",
+        "slug": "gsttranscoder10"
+    },
+    {
+        "name": "GstVideo",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstVideo-1.0.gir",
+        "id": "GstVideo-1.0.gir",
+        "slug": "gstvideo10"
+    },
+    {
+        "name": "GstVulkan",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstVulkan-1.0.gir",
+        "id": "GstVulkan-1.0.gir",
+        "slug": "gstvulkan10"
+    },
+    {
+        "name": "GstVulkanWayland",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstVulkanWayland-1.0.gir",
+        "id": "GstVulkanWayland-1.0.gir",
+        "slug": "gstvulkanwayland10"
+    },
+    {
+        "name": "GstWebRTC",
+        "api_version": "1.0",
+        "c_prefix": [
+            "gst"
+        ],
+        "path": "/usr/share/gir-1.0/GstWebRTC-1.0.gir",
+        "id": "GstWebRTC-1.0.gir",
+        "slug": "gstwebrtc10"
+    },
+    {
+        "name": "Gtk",
+        "api_version": "2.0",
+        "c_prefix": [
+            "gtk"
+        ],
+        "path": "/usr/share/gir-1.0/Gtk-2.0.gir",
+        "id": "Gtk-2.0.gir",
+        "slug": "gtk20"
+    },
+    {
+        "name": "Gtk",
+        "api_version": "3.0",
+        "c_prefix": [
+            "gtk"
+        ],
+        "path": "/usr/share/gir-1.0/Gtk-3.0.gir",
+        "id": "Gtk-3.0.gir",
+        "slug": "gtk30"
+    },
+    {
+        "name": "Gtk",
+        "api_version": "4.0",
+        "c_prefix": [
+            "gtk"
+        ],
+        "path": "/usr/share/gir-1.0/Gtk-4.0.gir",
+        "id": "Gtk-4.0.gir",
+        "slug": "gtk40"
+    },
+    {
+        "name": "GTop",
+        "api_version": "2.0",
+        "c_prefix": [
+            "g_top"
+        ],
+        "path": "/usr/share/gir-1.0/GTop-2.0.gir",
+        "id": "GTop-2.0.gir",
+        "slug": "gtop20"
+    },
+    {
+        "name": "GUdev",
+        "api_version": "1.0",
+        "c_prefix": [
+            "g_udev"
+        ],
+        "path": "/usr/share/gir-1.0/GUdev-1.0.gir",
+        "id": "GUdev-1.0.gir",
+        "slug": "gudev10"
+    },
+    {
+        "name": "GUsb",
+        "api_version": "1.0",
+        "c_prefix": [
+            "g_usb"
+        ],
+        "path": "/usr/share/gir-1.0/GUsb-1.0.gir",
+        "id": "GUsb-1.0.gir",
+        "slug": "gusb10"
+    },
+    {
+        "name": "Handy",
+        "api_version": "1",
+        "c_prefix": [
+            "hdy"
+        ],
+        "path": "/usr/share/gir-1.0/Handy-1.gir",
+        "id": "Handy-1.gir",
+        "slug": "handy1"
+    },
+    {
+        "name": "HarfBuzz",
+        "api_version": "0.0",
+        "c_prefix": [
+            "hb",
+            "hb_gobject"
+        ],
+        "path": "/usr/share/gir-1.0/HarfBuzz-0.0.gir",
+        "id": "HarfBuzz-0.0.gir",
+        "slug": "harfbuzz00"
+    },
+    {
+        "name": "Jcat",
+        "api_version": "1.0",
+        "c_prefix": [
+            "jcat"
+        ],
+        "path": "/usr/share/gir-1.0/Jcat-1.0.gir",
+        "id": "Jcat-1.0.gir",
+        "slug": "jcat10"
+    },
+    {
+        "name": "Json",
+        "api_version": "1.0",
+        "c_prefix": [
+            "json"
+        ],
+        "path": "/usr/share/gir-1.0/Json-1.0.gir",
+        "id": "Json-1.0.gir",
+        "slug": "json10"
+    },
+    {
+        "name": "libxml2",
+        "api_version": "2.0",
+        "c_prefix": [
+            "xml"
+        ],
+        "path": "/usr/share/gir-1.0/libxml2-2.0.gir",
+        "id": "libxml2-2.0.gir",
+        "slug": "libxml220"
+    },
+    {
+        "name": "Malcontent",
+        "api_version": "0",
+        "c_prefix": [
+            "mct_"
+        ],
+        "path": "/usr/share/gir-1.0/Malcontent-0.gir",
+        "id": "Malcontent-0.gir",
+        "slug": "malcontent0"
+    },
+    {
+        "name": "Nautilus",
+        "api_version": "4.0",
+        "c_prefix": [
+            "nautilus"
+        ],
+        "path": "/usr/share/gir-1.0/Nautilus-4.0.gir",
+        "id": "Nautilus-4.0.gir",
+        "slug": "nautilus40"
+    },
+    {
+        "name": "Notify",
+        "api_version": "0.7",
+        "c_prefix": [
+            "notify"
+        ],
+        "path": "/usr/share/gir-1.0/Notify-0.7.gir",
+        "id": "Notify-0.7.gir",
+        "slug": "notify07"
+    },
+    {
+        "name": "OSTree",
+        "api_version": "1.0",
+        "c_prefix": [
+            "ostree"
+        ],
+        "path": "/usr/share/gir-1.0/OSTree-1.0.gir",
+        "id": "OSTree-1.0.gir",
+        "slug": "ostree10"
+    },
+    {
+        "name": "PackageKitGlib",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pk"
+        ],
+        "path": "/usr/share/gir-1.0/PackageKitGlib-1.0.gir",
+        "id": "PackageKitGlib-1.0.gir",
+        "slug": "packagekitglib10"
+    },
+    {
+        "name": "Pango",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pango"
+        ],
+        "path": "/usr/share/gir-1.0/Pango-1.0.gir",
+        "id": "Pango-1.0.gir",
+        "slug": "pango10"
+    },
+    {
+        "name": "PangoCairo",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pango_cairo"
+        ],
+        "path": "/usr/share/gir-1.0/PangoCairo-1.0.gir",
+        "id": "PangoCairo-1.0.gir",
+        "slug": "pangocairo10"
+    },
+    {
+        "name": "PangoFc",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pango_fc"
+        ],
+        "path": "/usr/share/gir-1.0/PangoFc-1.0.gir",
+        "id": "PangoFc-1.0.gir",
+        "slug": "pangofc10"
+    },
+    {
+        "name": "PangoFT2",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pango_ft2"
+        ],
+        "path": "/usr/share/gir-1.0/PangoFT2-1.0.gir",
+        "id": "PangoFT2-1.0.gir",
+        "slug": "pangoft210"
+    },
+    {
+        "name": "PangoOT",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pango_ot"
+        ],
+        "path": "/usr/share/gir-1.0/PangoOT-1.0.gir",
+        "id": "PangoOT-1.0.gir",
+        "slug": "pangoot10"
+    },
+    {
+        "name": "PangoXft",
+        "api_version": "1.0",
+        "c_prefix": [
+            "pango_xft"
+        ],
+        "path": "/usr/share/gir-1.0/PangoXft-1.0.gir",
+        "id": "PangoXft-1.0.gir",
+        "slug": "pangoxft10"
+    },
+    {
+        "name": "Polkit",
+        "api_version": "1.0",
+        "c_prefix": [
+            "polkit"
+        ],
+        "path": "/usr/share/gir-1.0/Polkit-1.0.gir",
+        "id": "Polkit-1.0.gir",
+        "slug": "polkit10"
+    },
+    {
+        "name": "PolkitAgent",
+        "api_version": "1.0",
+        "c_prefix": [
+            "polkit_agent"
+        ],
+        "path": "/usr/share/gir-1.0/PolkitAgent-1.0.gir",
+        "id": "PolkitAgent-1.0.gir",
+        "slug": "polkitagent10"
+    },
+    {
+        "name": "RpmOstree",
+        "api_version": "1.0",
+        "c_prefix": [
+            "rpm_ostree"
+        ],
+        "path": "/usr/share/gir-1.0/RpmOstree-1.0.gir",
+        "id": "RpmOstree-1.0.gir",
+        "slug": "rpmostree10"
+    },
+    {
+        "name": "Soup",
+        "api_version": "2.4",
+        "c_prefix": [
+            "soup"
+        ],
+        "path": "/usr/share/gir-1.0/Soup-2.4.gir",
+        "id": "Soup-2.4.gir",
+        "slug": "soup24"
+    },
+    {
+        "name": "Soup",
+        "api_version": "3.0",
+        "c_prefix": [
+            "soup"
+        ],
+        "path": "/usr/share/gir-1.0/Soup-3.0.gir",
+        "id": "Soup-3.0.gir",
+        "slug": "soup30"
+    },
+    {
+        "name": "SoupGNOME",
+        "api_version": "2.4",
+        "c_prefix": [
+            "soup"
+        ],
+        "path": "/usr/share/gir-1.0/SoupGNOME-2.4.gir",
+        "id": "SoupGNOME-2.4.gir",
+        "slug": "soupgnome24"
+    },
+    {
+        "name": "Vte",
+        "api_version": "2.91",
+        "c_prefix": [
+            "vte"
+        ],
+        "path": "/usr/share/gir-1.0/Vte-2.91.gir",
+        "id": "Vte-2.91.gir",
+        "slug": "vte291"
+    },
+    {
+        "name": "Vulkan",
+        "api_version": "1.0",
+        "c_prefix": [
+            "vk"
+        ],
+        "path": "/usr/share/gir-1.0/Vulkan-1.0.gir",
+        "id": "Vulkan-1.0.gir",
+        "slug": "vulkan10"
+    },
+    {
+        "name": "win32",
+        "api_version": "1.0",
+        "c_prefix": [
+            "Win32"
+        ],
+        "path": "/usr/share/gir-1.0/win32-1.0.gir",
+        "id": "win32-1.0.gir",
+        "slug": "win3210"
+    },
+    {
+        "name": "xfixes",
+        "api_version": "4.0",
+        "c_prefix": [
+            "X"
+        ],
+        "path": "/usr/share/gir-1.0/xfixes-4.0.gir",
+        "id": "xfixes-4.0.gir",
+        "slug": "xfixes40"
+    },
+    {
+        "name": "xft",
+        "api_version": "2.0",
+        "c_prefix": [
+            "Xft"
+        ],
+        "path": "/usr/share/gir-1.0/xft-2.0.gir",
+        "id": "xft-2.0.gir",
+        "slug": "xft20"
+    },
+    {
+        "name": "xlib",
+        "api_version": "2.0",
+        "c_prefix": [
+            "X"
+        ],
+        "path": "/usr/share/gir-1.0/xlib-2.0.gir",
+        "id": "xlib-2.0.gir",
+        "slug": "xlib20"
+    },
+    {
+        "name": "Xmlb",
+        "api_version": "2.0",
+        "c_prefix": [
+            "xb"
+        ],
+        "path": "/usr/share/gir-1.0/Xmlb-2.0.gir",
+        "id": "Xmlb-2.0.gir",
+        "slug": "xmlb20"
+    },
+    {
+        "name": "xrandr",
+        "api_version": "1.3",
+        "c_prefix": [
+            "XRR"
+        ],
+        "path": "/usr/share/gir-1.0/xrandr-1.3.gir",
+        "id": "xrandr-1.3.gir",
+        "slug": "xrandr13"
+    }
+]
\ No newline at end of file
diff --git a/docs.json b/docs.json
new file mode 100644
index 0000000..1e0ddbf
--- /dev/null
+++ b/docs.json
@@ -0,0 +1,50 @@
+{
+    "options": {
+        "inferGenerics": true,
+        "promisify": false,
+        "propertyCase": "both",
+        "versionedOutput": false,
+        "versionedImports": false
+    },
+    "libraries": {
+        "GObject": [
+            "2.0"
+        ],
+        "GLib": [
+            "2.0"
+        ],
+        "Gio": [
+            "2.0"
+        ],
+        "Gdk": [
+            "4.0"
+        ],
+        "Gtk": [
+            "4.0"
+        ],
+        "Adw": [
+            "1"
+        ],
+        "Gst": [
+            "1.0"
+        ],
+        "GstAudio": [
+            "1.0"
+        ],
+        "GstPlayer": [
+            "1.0"
+        ],
+        "GstPbutils": [
+            "1.0"
+        ],
+        "HarfBuzz": [
+            "0.0"
+        ],
+        "Pango": [
+            "1.0"
+        ],
+        "cairo": [
+            "1.0"
+        ]
+    }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..6047711
--- /dev/null
+++ b/package.json
@@ -0,0 +1,19 @@
+{
+  "name": "gnome-sound-recorder",
+  "version": "42.0",
+  "main": "src/main.ts",
+  "repository": "git gitlab gnome org:GNOME/gnome-sound-recorder.git",
+  "author": "Christopher Davis <christopherdavis gnome org>",
+  "license": "GPLv3-or-later",
+  "dependencies": {
+    "typescript": "^4.1.0"
+  },
+  "devDependencies": {
+    "@gi.ts/cli": "^1.5.5"
+  },
+  "scripts": {
+    "typecheck": "tsc",
+    "generate-types": "gi-ts generate",
+    "config": "gi-ts config"
+  }
+}
diff --git a/src/application.js b/src/application.js
index 5f73573..7164ddc 100644
--- a/src/application.js
+++ b/src/application.js
@@ -18,6 +18,8 @@
 *
 */
 
+/// <reference path="../types/ambient.d.ts" />
+
 import Adw from 'gi://Adw';
 import Gio from 'gi://Gio';
 import GLib from 'gi://GLib';
@@ -35,14 +37,15 @@ export const Application = GObject.registerClass(class Application extends Adw.A
     _init() {
         super._init({ application_id: pkg.name, resource_base_path: '/org/gnome/SoundRecorder/' });
         GLib.set_application_name(_('Sound Recorder'));
-        GLib.setenv('PULSE_PROP_media.role', 'production', 1);
-        GLib.setenv('PULSE_PROP_application.icon_name', pkg.name, 1);
+        GLib.setenv('PULSE_PROP_media.role', 'production', true);
+        GLib.setenv('PULSE_PROP_application.icon_name', pkg.name, true);
 
         this.add_main_option('version', 'v'.charCodeAt(0), GLib.OptionFlags.NONE, GLib.OptionArg.NONE,
             'Print version information and exit', null);
 
         this.connect('handle-local-options', (app, options) => {
             if (options.contains('version')) {
+                // @ts-expect-error
                 print(pkg.version);
                 /* quit the invoked process after printing the version number
                  * leaving the running instance unaffected
@@ -90,7 +93,9 @@ export const Application = GObject.registerClass(class Application extends Adw.A
 
     vfunc_startup() {
         super.vfunc_startup();
+        // @ts-expect-error
         log('Sound Recorder (%s)'.format(pkg.name));
+        // @ts-expect-error
         log('Version: %s'.format(pkg.version));
 
         Gst.init(null);
@@ -100,6 +105,7 @@ export const Application = GObject.registerClass(class Application extends Adw.A
             RecordingsDir.make_directory_with_parents(null);
         } catch (e) {
             if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.EXISTS))
+                // @ts-expect-error
                 console.error(`Failed to create directory ${e}`);
 
         }
diff --git a/src/main.js b/src/main.js
index 33315dc..72dee8d 100644
--- a/src/main.js
+++ b/src/main.js
@@ -26,9 +26,6 @@
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /* exported main */
 
-pkg.initGettext();
-pkg.initFormat();
-
 import { Application } from './application.js';
 
 export function main(argv) {
diff --git a/src/org.gnome.SoundRecorder.in b/src/org.gnome.SoundRecorder.in
index aaca661..c48e22b 100755
--- a/src/org.gnome.SoundRecorder.in
+++ b/src/org.gnome.SoundRecorder.in
@@ -9,6 +9,9 @@ imports.package.init({
     libdir: "@libdir@"
 });
 
+pkg.initGettext();
+pkg.initFormat();
+
 const loop = new GLib.MainLoop(null, false);
 const main = await import('resource:///org/gnome/SoundRecorder@profile@/js/main.js');
 GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
diff --git a/src/recorder.js b/src/recorder.js
index 962aec7..36f5575 100644
--- a/src/recorder.js
+++ b/src/recorder.js
@@ -64,7 +64,7 @@ var AudioChannels = {
     1: { name: 'mono', channels: 1 },
 };
 
-export const Recorder = new GObject.registerClass({
+export const Recorder = GObject.registerClass({
     Properties: {
         'duration': GObject.ParamSpec.int(
             'duration',
@@ -92,6 +92,7 @@ export const Recorder = new GObject.registerClass({
             this.ebin = Gst.ElementFactory.make('encodebin', 'ebin');
             this.filesink = Gst.ElementFactory.make('filesink', 'filesink');
         } catch (error) {
+            // @ts-expect-error
             log(`Not all elements could be created.\n${error}`);
         }
 
@@ -102,6 +103,7 @@ export const Recorder = new GObject.registerClass({
             this.pipeline.add(this.ebin);
             this.pipeline.add(this.filesink);
         } catch (error) {
+            // @ts-expect-error
             log(`Not all elements could be addded.\n${error}`);
         }
 
@@ -115,6 +117,7 @@ export const Recorder = new GObject.registerClass({
         do {
             /* Translators: ""Recording %d"" is the default name assigned to a file created
             by the application (for example, "Recording 1"). */
+            // @ts-expect-error
             this.file = RecordingsDir.get_child_for_display_name(_('Recording %d').format(index++));
         } while (this.file.query_exists(null));
 
@@ -181,6 +184,7 @@ export const Recorder = new GObject.registerClass({
             if (GstPbutils.is_missing_plugin_message(message)) {
                 let detail = GstPbutils.missing_plugin_message_get_installer_detail(message);
                 let description = GstPbutils.missing_plugin_message_get_description(message);
+                // @ts-expect-error
                 log(`Detail: ${detail}\nDescription: ${description}`);
                 break;
             }
@@ -199,9 +203,11 @@ export const Recorder = new GObject.registerClass({
             this.stop();
             break;
         case Gst.MessageType.WARNING:
+            // @ts-expect-error
             log(message.parse_warning()[0].toString());
             break;
         case Gst.MessageType.ERROR:
+            // @ts-expect-error
             log(message.parse_error().toString());
             break;
         }
@@ -260,6 +266,7 @@ export const Recorder = new GObject.registerClass({
         const ret = this.pipeline.set_state(this._pipeState);
 
         if (ret === Gst.StateChangeReturn.FAILURE)
+            // @ts-expect-error
             log('Unable to update the recorder pipeline state');
     }
 
diff --git a/src/recorderWidget.js b/src/recorderWidget.js
index 7b43e0e..f493595 100644
--- a/src/recorderWidget.js
+++ b/src/recorderWidget.js
@@ -26,6 +26,17 @@ export const RecorderWidget = GObject.registerClass({
         'stopped': { param_types: [GObject.TYPE_OBJECT] },
     },
 }, class RecorderWidget extends Gtk.Box {
+    // @ts-ignore
+    /** @type {Gtk.Box} */ _recorderBox = this._recorderBox;
+    // @ts-ignore
+    /** @type {Gtk.Stack} */ _playbackStack = this._playbackStack;
+    // @ts-ignore
+    /** @type {Gtk.Label} */ _recorderTime = this._recorderTime;
+    // @ts-ignore
+    /** @type {Gtk.Button} */ _pauseBtn = this._pauseBtn;
+    // @ts-ignore
+    /** @type {Gtk.Button} */ _resumeBtn = this._resumeBtn;
+
     _init(recorder) {
         super._init({});
         this.recorder = recorder;
@@ -102,7 +113,8 @@ export const RecorderWidget = GObject.registerClass({
         dialog.add_button(_('Resume'), Gtk.ResponseType.NO);
         dialog.add_button(_('Delete'), Gtk.ResponseType.YES)
             .add_css_class('destructive-action');
-
+        
+        // @ts-expect-error
         dialog.set_transient_for(Gio.Application.get_default().get_active_window());
         dialog.connect('response', (_, response) => {
             switch (response) {
@@ -133,26 +145,37 @@ export const RecorderWidget = GObject.registerClass({
         this.emit('stopped', recording);
     }
 
+    // @ts-ignore
     set state(recorderState) {
         switch (recorderState) {
         case RecorderState.PAUSED:
+            // @ts-expect-error
             this.actionsGroup.lookup('pause').enabled = false;
+            // @ts-expect-error
             this.actionsGroup.lookup('resume').enabled = true;
             this._resumeBtn.grab_focus();
             this._recorderTime.add_css_class('paused');
             break;
         case RecorderState.RECORDING:
+            // @ts-expect-error
             this.actionsGroup.lookup('start').enabled = false;
+            // @ts-expect-error
             this.actionsGroup.lookup('stop').enabled = true;
+            // @ts-expect-error
             this.actionsGroup.lookup('resume').enabled = false;
+            // @ts-expect-error
             this.actionsGroup.lookup('pause').enabled = true;
             this._pauseBtn.grab_focus();
             this._recorderTime.remove_css_class('paused');
             break;
         case RecorderState.STOPPED:
+            // @ts-expect-error
             this.actionsGroup.lookup('start').enabled = true;
+            // @ts-expect-error
             this.actionsGroup.lookup('stop').enabled = false;
+            // @ts-expect-error
             this.actionsGroup.lookup('pause').enabled = false;
+            // @ts-expect-error
             this.actionsGroup.lookup('resume').enabled = false;
             break;
         }
diff --git a/src/recording.js b/src/recording.js
index b26d8ae..91ec940 100644
--- a/src/recording.js
+++ b/src/recording.js
@@ -8,7 +8,7 @@ import GstPbutils from 'gi://GstPbutils';
 import { CacheDir } from './application.js';
 import { EncodingProfiles } from './recorder.js';
 
-export const Recording = new GObject.registerClass({
+export const Recording = GObject.registerClass({
     Signals: {
         'peaks-updated': {},
         'peaks-loading': {},
@@ -101,6 +101,7 @@ export const Recording = new GObject.registerClass({
         if (data.length > 0) {
             this._peaks = data;
             this.emit('peaks-updated');
+            // @ts-expect-error
             const buffer = new GLib.Bytes(JSON.stringify(data));
             this.waveformCache.replace_contents_bytes_async(buffer, null, false, 
Gio.FileCreateFlags.REPLACE_DESTINATION, null, (obj, res) => {
                 obj.replace_contents_finish(res);
@@ -122,6 +123,7 @@ export const Recording = new GObject.registerClass({
         this.file.copy_async(dest,
             Gio.FileCreateFlags.NONE, GLib.PRIORITY_DEFAULT, null, null, (obj, res) => {
                 if (obj.copy_finish(res))
+                    // @ts-expect-error
                     log('Exporting file: done');
             });
     }
@@ -135,10 +137,12 @@ export const Recording = new GObject.registerClass({
             this.waveformCache.load_bytes_async(null, (obj, res) => {
                 const bytes = obj.load_bytes_finish(res)[0];
                 try {
+                    // @ts-expect-error
                     let decoder = new TextDecoder('utf-8');
                     this._peaks = JSON.parse(decoder.decode(bytes.get_data()));
                     this.emit('peaks-updated');
                 } catch (error) {
+                    // @ts-expect-error
                     log(`Error reading waveform data file: ${this.name}_data`);
                 }
             });
@@ -152,9 +156,11 @@ export const Recording = new GObject.registerClass({
         this.pipeline = Gst.parse_launch('uridecodebin name=uridecodebin ! audioconvert ! 
audio/x-raw,channels=1 ! level name=level ! fakesink name=faked');
 
 
+        // @ts-expect-error
         let uridecodebin = this.pipeline.get_by_name('uridecodebin');
         uridecodebin.set_property('uri', this.uri);
 
+        // @ts-expect-error
         let fakesink = this.pipeline.get_by_name('faked');
         fakesink.set_property('qos', false);
         fakesink.set_property('sync', true);
@@ -172,6 +178,7 @@ export const Recording = new GObject.registerClass({
                     const peakVal = s.get_value('peak');
 
                     if (peakVal) {
+                        // @ts-expect-error
                         const peak = peakVal.get_nth(0);
                         this._loadedPeaks.push(Math.pow(10, peak / 20));
                     }
diff --git a/src/recordingList.js b/src/recordingList.js
index cf54215..d590782 100644
--- a/src/recordingList.js
+++ b/src/recordingList.js
@@ -6,7 +6,7 @@ import GObject from 'gi://GObject';
 import { RecordingsDir } from './application.js';
 import { Recording } from './recording.js';
 
-export const RecordingList = new GObject.registerClass(class RecordingList extends Gio.ListStore {
+export const RecordingList = GObject.registerClass(class RecordingList extends Gio.ListStore {
     _init() {
         super._init({ });
 
@@ -58,8 +58,10 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
                         const src = oldDir.get_child(name);
                         /* Translators: ""%s (Old)"" is the new name assigned to a file moved from
                             the old recordings location */
+                        // @ts-expect-error
                         const dest = RecordingsDir.get_child(_('%s (Old)').format(name));
 
+                        // @ts-expect-error
                         src.copy_async(dest, Gio.FileCopyFlags.OVERWRITE, GLib.PRIORITY_LOW, 
this.cancellable, null, (objCopy, resCopy) => {
                             try {
                                 objCopy.copy_finish(resCopy);
@@ -67,7 +69,9 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
                                 this.dirMonitor.emit_event(dest, src, Gio.FileMonitorEvent.MOVED_IN);
                             } catch (e) {
                                 if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
+                                    // @ts-expect-error
                                     console.error(`Failed to copy recording ${name} to the new location`);
+                                    // @ts-expect-error
                                     log(e);
                                 }
                                 allCopied = false;
@@ -83,7 +87,9 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
                             try {
                                 objDelete.delete_finish(resDelete);
                             } catch (e) {
+                                // @ts-expect-error
                                 log('Failed to remove the old Recordings directory. Ignore if you\'re using 
flatpak');
+                                // @ts-expect-error
                                 log(e);
                             }
                         });
@@ -91,6 +97,7 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
                 }
             } catch (e) {
                 if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+                    // @ts-expect-error
                     console.error(`Failed to copy old  recordings ${e}`);
 
             }
@@ -101,6 +108,7 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
     _enumerateDirectory(obj, res) {
         this._enumerator = obj.enumerate_children_finish(res);
         if (this._enumerator === null) {
+            // @ts-expect-error
             log('The contents of the Recordings directory were not indexed.');
             return;
         }
@@ -122,6 +130,7 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
             }
         } catch (e) {
             if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+                // @ts-expect-error
                 console.error(`Failed to load recordings ${e}`);
 
         }
@@ -129,6 +138,7 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
 
     getIndex(file) {
         for (let i = 0; i < this.get_n_items(); i++) {
+            // @ts-expect-error
             if (this.get_item(i).uri === file.get_uri())
                 return i;
         }
@@ -140,6 +150,7 @@ export const RecordingList = new GObject.registerClass(class RecordingList exten
 
         for (let i = 0; i < this.get_n_items(); i++) {
             const curr = this.get_item(i);
+            // @ts-expect-error
             if (curr.timeModified.difference(recording.timeModified) <= 0) {
                 this.insert(i, recording);
                 added = true;
diff --git a/src/recordingListWidget.js b/src/recordingListWidget.js
index 819f89d..7166d8d 100644
--- a/src/recordingListWidget.js
+++ b/src/recordingListWidget.js
@@ -7,7 +7,7 @@ import Gtk from 'gi://Gtk?version=4.0'
 
 import { Row, RowState } from './row.js';
 
-export const RecordingsListWidget = new GObject.registerClass({
+export const RecordingsListWidget = GObject.registerClass({
     Signals: {
         'row-deleted': { param_types: [GObject.TYPE_OBJECT, GObject.TYPE_INT] },
     },
@@ -50,6 +50,7 @@ export const RecordingsListWidget = new GObject.registerClass({
                         this.activePlayingRow.waveform.position = 0.0;
 
                     this.activePlayingRow = row;
+                    // @ts-expect-error
                     this._player.set_uri(recording.uri);
                 }
             });
@@ -63,9 +64,11 @@ export const RecordingsListWidget = new GObject.registerClass({
                     if (this.activePlayingRow !== _row) {
                         this.activePlayingRow.state = RowState.PAUSED;
                         this.activePlayingRow.waveform.position = 0.0;
+                        // @ts-expect-error
                         this._player.set_uri(recording.uri);
                     }
                 } else {
+                    // @ts-expect-error
                     this._player.set_uri(recording.uri);
                 }
 
diff --git a/src/row.js b/src/row.js
index ee8c37a..18e928a 100644
--- a/src/row.js
+++ b/src/row.js
@@ -34,6 +34,33 @@ export const Row = GObject.registerClass({
             false),
     },
 }, class Row extends Gtk.ListBoxRow {
+    // @ts-ignore
+    /** @type {Gtk.Stack} */ _playbackStack = this._playbackStack;
+    // @ts-ignore
+    /** @type {Gtk.Stack} */ _mainStack = this._mainStack;
+    // @ts-ignore
+    /** @type {Gtk.Stack} */ _waveformStack = this._waveformStack;
+    // @ts-ignore
+    /** @type {Gtk.Stack} */ _rightStack = this._rightStack;
+    // @ts-ignore
+    /** @type {Gtk.Label} */ _name = this._name;
+    // @ts-ignore
+    /** @type {Gtk.Entry} */ _entry = this._entry;
+    // @ts-ignore
+    /** @type {Gtk.Label} */ _date = this._date;
+    // @ts-ignore
+    /** @type {Gtk.Label} */ _duration = this._duration;
+    // @ts-ignore
+    /** @type {Gtk.Revealer} */ _revealer = this._revealer;
+    // @ts-ignore
+    /** @type {Gtk.Box} */ _playbackControls = this._playbackControls;
+    // @ts-ignore
+    /** @type {Gtk.Button} */ _saveBtn = this._saveBtn;
+    // @ts-ignore
+    /** @type {Gtk.Button} */ _playBtn = this._playBtn;
+    // @ts-ignore
+    /** @type {Gtk.Button} */ _pauseBtn= this._pauseBtn;
+
     _init(recording) {
         this._recording = recording;
         this._expanded = false;
@@ -67,6 +94,7 @@ export const Row = GObject.registerClass({
 
         let exportAction = new Gio.SimpleAction({ name: 'export' });
         exportAction.connect('activate', () => {
+            // @ts-expect-error
             const window = Gio.Application.get_default().get_active_window();
             this.exportDialog = Gtk.FileChooserNative.new(_('Export Recording'), window, 
Gtk.FileChooserAction.SAVE, _('_Export'), _('_Cancel'));
             this.exportDialog.set_current_name(`${this._recording.name}.${this._recording.extension}`);
@@ -133,6 +161,7 @@ export const Row = GObject.registerClass({
         });
 
         this.keyController = Gtk.EventControllerKey.new();
+        // @ts-ignore
         this.keyController.connect('key-pressed', (controller, key, _code, _state) => {
             this._entry.remove_css_class('error');
 
@@ -155,11 +184,11 @@ export const Row = GObject.registerClass({
         });
 
         // Force LTR, we don't want forward/play/backward
-        this._playbackControls.direction = Gtk.TextDirection.LTR;
+        this._playbackControls.set_direction(Gtk.TextDirection.LTR);
 
         // Force LTR, we don't want reverse hh:mm::ss
-        this._duration.direction = Gtk.TextDirection.LTR;
-        this._duration.markup = formatTime(recording.duration);
+        this._duration.set_direction(Gtk.TextDirection.LTR);
+        this._duration.set_markup(formatTime(recording.duration));
         recording.connect('notify::duration', () => {
             this._duration.label = formatTime(recording.duration);
         });
@@ -195,6 +224,7 @@ export const Row = GObject.registerClass({
 
         for (const action of this.actionGroup.list_actions()) {
             if (action !== 'save')
+                // @ts-expect-error
                 this.actionGroup.lookup(action).enabled = !state;
         }
     }
@@ -217,13 +247,17 @@ export const Row = GObject.registerClass({
 
         switch (rowState) {
         case RowState.PLAYING:
+            // @ts-expect-error
             this.actionGroup.lookup('play').enabled = false;
+            // @ts-expect-error
             this.actionGroup.lookup('pause').enabled = true;
             this._playbackStack.visible_child_name = 'pause';
             this._pauseBtn.grab_focus();
             break;
         case RowState.PAUSED:
+            // @ts-expect-error
             this.actionGroup.lookup('play').enabled = true;
+            // @ts-expect-error
             this.actionGroup.lookup('pause').enabled = false;
             this._playbackStack.visible_child_name = 'play';
             this._playBtn.grab_focus();
diff --git a/src/utils.js b/src/utils.js
index 7398954..468040a 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -17,13 +17,16 @@
  * Author: Meg Ford <megford gnome org>
  *
  */
+// @ts-expect-error
 import Gettext from 'gettext'
 import GLib from 'gi://GLib'
 import Gst from 'gi://Gst'
 
 export const formatTime = nanoSeconds => {
+    // @ts-expect-error
     const time = new Date(0, 0, 0, 0, 0, 0, parseInt(nanoSeconds / Gst.MSECOND));
 
+    // @ts-expect-error
     const miliseconds = parseInt(time.getMilliseconds() / 100).toString();
     const seconds = time.getSeconds().toString().padStart(2, '0');
     const minutes = time.getMinutes().toString().padStart(2, '0');
diff --git a/src/waveform.js b/src/waveform.js
index b2109bd..c4976e5 100644
--- a/src/waveform.js
+++ b/src/waveform.js
@@ -26,7 +26,7 @@
 import Adw from 'gi://Adw';
 import GObject from 'gi://GObject';
 import Gtk from 'gi://Gtk?version=4.0';
-import Cairo from 'cairo';
+import * as Cairo from 'cairo';
 
 export const WaveType = {
     RECORDER: 0,
@@ -49,7 +49,7 @@ export const WaveForm = GObject.registerClass({
             0.0, 1.0, 0.0),
     },
     Signals: {
-        'position-changed': {  param_types: [GObject.TYPE_FLOAT]  },
+        'position-changed': {  param_types: [GObject.TYPE_DOUBLE]  },
         'gesture-pressed': {},
     },
 }, class WaveForm extends Gtk.DrawingArea {
diff --git a/src/window.js b/src/window.js
index 7b6b0c1..e5df6b3 100644
--- a/src/window.js
+++ b/src/window.js
@@ -18,6 +18,8 @@
 *
 */
 
+/// <reference path="../types/soundrecorder.d.ts" />
+
 import Adw from 'gi://Adw'
 import Gio from 'gi://Gio'
 import GLib from 'gi://GLib'
@@ -43,6 +45,17 @@ export const Window = GObject.registerClass({
         'mainStack', 'emptyPage', 'column', 'headerRevealer', 'toastOverlay',
     ],
 }, class Window extends Adw.ApplicationWindow {
+    // We have to do this so that TypeScript knows that the field exists
+    // @ts-ignore
+    /** @type {Gtk.Stack} */ _mainStack = this._mainStack;
+    // @ts-ignore
+    /** @type {Adw.StatusPage} */ _emptyPage = this._emptyPage;
+    // @ts-ignore
+    /** @type {Adw.Clamp} */ _column = this._column;
+    // @ts-ignore
+    /** @type {Gtk.Revealer} */ _headerRevealer = this._headerRevealer;
+    // @ts-ignore
+    /** @type {Adw.ToastOverlay} */ _toastOverlay = this._toastOverlay;
 
     _init(params) {
         super._init(Object.assign({
@@ -72,11 +85,12 @@ export const Window = GObject.registerClass({
 
         this._recordingListWidget.connect('row-deleted', (_listBox, recording, index) => {
             this._recordingList.remove(index);
+            // @ts-expect-error
             this.sendNotification(_('"%s" deleted').format(recording.name), recording, index);
         });
 
         const builder = Gtk.Builder.new_from_resource('/org/gnome/SoundRecorder/gtk/help-overlay.ui');
-        const dialog = builder.get_object('help_overlay');
+        /** @type {Gtk.ShortcutsWindow} */const dialog = builder.get_object('help_overlay');
         this.set_help_overlay(dialog);
 
         this.toastUndo = false;
@@ -106,12 +120,15 @@ export const Window = GObject.registerClass({
 
         for (let i = 0; i < this._recordingList.get_n_items(); i++) {
             const recording = this._recordingList.get_item(i);
+            // @ts-expect-error
             if (recording.pipeline)
+                // @ts-expect-error
                 recording.pipeline.set_state(Gst.State.NULL);
         }
 
         this.recorder.stop();
         this.application.quit();
+        return true;
     }
 
     onRecorderStarted() {
@@ -131,8 +148,10 @@ export const Window = GObject.registerClass({
             this.state = WindowState.LIST;
     }
 
+    // @ts-ignore
     onRecorderStopped(widget, recording) {
         this._recordingList.insert(0, recording);
+        // @ts-expect-error
         this._recordingListWidget.list.get_row_at_index(0).editMode = true;
         this.state = WindowState.LIST;
     }
@@ -164,18 +183,18 @@ export const Window = GObject.registerClass({
         let isHeaderVisible;
 
         switch (state) {
-        case WindowState.RECORDER:
-            visibleChild = 'recorder';
-            isHeaderVisible = false;
-            break;
-        case WindowState.LIST:
-            visibleChild = 'recordings';
-            isHeaderVisible = true;
-            break;
-        case WindowState.EMPTY:
-            visibleChild = 'empty';
-            isHeaderVisible = true;
-            break;
+            case WindowState.RECORDER:
+                visibleChild = 'recorder';
+                isHeaderVisible = false;
+                break;
+            case WindowState.LIST:
+                visibleChild = 'recordings';
+                isHeaderVisible = true;
+                break;
+            case WindowState.EMPTY:
+                visibleChild = 'empty';
+                isHeaderVisible = true;
+                break;
         }
 
         this._mainStack.visible_child_name = visibleChild;
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..0c9ffd4
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,29 @@
+{
+    "compilerOptions": {
+        "allowJs": true,
+        "checkJs": true,
+        "experimentalDecorators": true,
+        "noEmit": true,
+        "paths": {
+            "*": [
+                "*",
+                "types/*"
+            ]
+        },
+        "target": "ES2018",
+        "baseUrl": ".",
+        "moduleResolution": "node",
+        "module": "ES2020",
+        "outDir": "_build",
+        "lib": [
+            "es2017"
+        ],
+        "typeRoots": []
+    },
+    "include": [
+        "src/*"
+    ],
+    "exclude": [
+        "node_modules/@types/**"
+    ]
+}
\ No newline at end of file
diff --git a/types/adw.d.ts b/types/adw.d.ts
new file mode 100644
index 0000000..43c4043
--- /dev/null
+++ b/types/adw.d.ts
@@ -0,0 +1,4182 @@
+/**
+ * Adw 1
+ *
+ * Generated from 1.2.0
+ */
+
+import * as Gtk from "gtk";
+import * as GObject from "gobject";
+import * as Gio from "gio";
+import * as GLib from "glib";
+import * as Gdk from "gdk";
+import * as Gsk from "gsk";
+
+export const DURATION_INFINITE: number;
+export const MAJOR_VERSION: number;
+export const MICRO_VERSION: number;
+export const MINOR_VERSION: number;
+export const VERSION_S: string;
+export function easing_ease(self: Easing, value: number): number;
+export function get_enable_animations(widget: Gtk.Widget): boolean;
+export function get_major_version(): number;
+export function get_micro_version(): number;
+export function get_minor_version(): number;
+export function init(): void;
+export function is_initialized(): boolean;
+export function lerp(a: number, b: number, t: number): number;
+export type AnimationTargetFunc = (value: number) => void;
+
+export namespace AnimationState {
+    export const $gtype: GObject.GType<AnimationState>;
+}
+
+export enum AnimationState {
+    IDLE = 0,
+    PAUSED = 1,
+    PLAYING = 2,
+    FINISHED = 3,
+}
+
+export namespace CenteringPolicy {
+    export const $gtype: GObject.GType<CenteringPolicy>;
+}
+
+export enum CenteringPolicy {
+    LOOSE = 0,
+    STRICT = 1,
+}
+
+export namespace ColorScheme {
+    export const $gtype: GObject.GType<ColorScheme>;
+}
+
+export enum ColorScheme {
+    DEFAULT = 0,
+    FORCE_LIGHT = 1,
+    PREFER_LIGHT = 2,
+    PREFER_DARK = 3,
+    FORCE_DARK = 4,
+}
+
+export namespace Easing {
+    export const $gtype: GObject.GType<Easing>;
+}
+
+export enum Easing {
+    LINEAR = 0,
+    EASE_IN_QUAD = 1,
+    EASE_OUT_QUAD = 2,
+    EASE_IN_OUT_QUAD = 3,
+    EASE_IN_CUBIC = 4,
+    EASE_OUT_CUBIC = 5,
+    EASE_IN_OUT_CUBIC = 6,
+    EASE_IN_QUART = 7,
+    EASE_OUT_QUART = 8,
+    EASE_IN_OUT_QUART = 9,
+    EASE_IN_QUINT = 10,
+    EASE_OUT_QUINT = 11,
+    EASE_IN_OUT_QUINT = 12,
+    EASE_IN_SINE = 13,
+    EASE_OUT_SINE = 14,
+    EASE_IN_OUT_SINE = 15,
+    EASE_IN_EXPO = 16,
+    EASE_OUT_EXPO = 17,
+    EASE_IN_OUT_EXPO = 18,
+    EASE_IN_CIRC = 19,
+    EASE_OUT_CIRC = 20,
+    EASE_IN_OUT_CIRC = 21,
+    EASE_IN_ELASTIC = 22,
+    EASE_OUT_ELASTIC = 23,
+    EASE_IN_OUT_ELASTIC = 24,
+    EASE_IN_BACK = 25,
+    EASE_OUT_BACK = 26,
+    EASE_IN_OUT_BACK = 27,
+    EASE_IN_BOUNCE = 28,
+    EASE_OUT_BOUNCE = 29,
+    EASE_IN_OUT_BOUNCE = 30,
+}
+
+export namespace FlapFoldPolicy {
+    export const $gtype: GObject.GType<FlapFoldPolicy>;
+}
+
+export enum FlapFoldPolicy {
+    NEVER = 0,
+    ALWAYS = 1,
+    AUTO = 2,
+}
+
+export namespace FlapTransitionType {
+    export const $gtype: GObject.GType<FlapTransitionType>;
+}
+
+export enum FlapTransitionType {
+    OVER = 0,
+    UNDER = 1,
+    SLIDE = 2,
+}
+
+export namespace FoldThresholdPolicy {
+    export const $gtype: GObject.GType<FoldThresholdPolicy>;
+}
+
+export enum FoldThresholdPolicy {
+    MINIMUM = 0,
+    NATURAL = 1,
+}
+
+export namespace LeafletTransitionType {
+    export const $gtype: GObject.GType<LeafletTransitionType>;
+}
+
+export enum LeafletTransitionType {
+    OVER = 0,
+    UNDER = 1,
+    SLIDE = 2,
+}
+
+export namespace NavigationDirection {
+    export const $gtype: GObject.GType<NavigationDirection>;
+}
+
+export enum NavigationDirection {
+    BACK = 0,
+    FORWARD = 1,
+}
+
+export namespace ResponseAppearance {
+    export const $gtype: GObject.GType<ResponseAppearance>;
+}
+
+export enum ResponseAppearance {
+    DEFAULT = 0,
+    SUGGESTED = 1,
+    DESTRUCTIVE = 2,
+}
+
+export namespace SqueezerTransitionType {
+    export const $gtype: GObject.GType<SqueezerTransitionType>;
+}
+
+export enum SqueezerTransitionType {
+    NONE = 0,
+    CROSSFADE = 1,
+}
+
+export namespace ToastPriority {
+    export const $gtype: GObject.GType<ToastPriority>;
+}
+
+export enum ToastPriority {
+    NORMAL = 0,
+    HIGH = 1,
+}
+
+export namespace ViewSwitcherPolicy {
+    export const $gtype: GObject.GType<ViewSwitcherPolicy>;
+}
+
+export enum ViewSwitcherPolicy {
+    NARROW = 0,
+    WIDE = 1,
+}
+export module AboutWindow {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        application_icon: string;
+        applicationIcon: string;
+        application_name: string;
+        applicationName: string;
+        artists: string[];
+        comments: string;
+        copyright: string;
+        debug_info: string;
+        debugInfo: string;
+        debug_info_filename: string;
+        debugInfoFilename: string;
+        designers: string[];
+        developer_name: string;
+        developerName: string;
+        developers: string[];
+        documenters: string[];
+        issue_url: string;
+        issueUrl: string;
+        license: string;
+        license_type: Gtk.License;
+        licenseType: Gtk.License;
+        release_notes: string;
+        releaseNotes: string;
+        release_notes_version: string;
+        releaseNotesVersion: string;
+        support_url: string;
+        supportUrl: string;
+        translator_credits: string;
+        translatorCredits: string;
+        version: string;
+        website: string;
+    }
+}
+export class AboutWindow
+    extends Window
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager
+{
+    static $gtype: GObject.GType<AboutWindow>;
+
+    constructor(properties?: Partial<AboutWindow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AboutWindow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get application_icon(): string;
+    set application_icon(val: string);
+    get applicationIcon(): string;
+    set applicationIcon(val: string);
+    get application_name(): string;
+    set application_name(val: string);
+    get applicationName(): string;
+    set applicationName(val: string);
+    get artists(): string[];
+    set artists(val: string[]);
+    get comments(): string;
+    set comments(val: string);
+    get copyright(): string;
+    set copyright(val: string);
+    get debug_info(): string;
+    set debug_info(val: string);
+    get debugInfo(): string;
+    set debugInfo(val: string);
+    get debug_info_filename(): string;
+    set debug_info_filename(val: string);
+    get debugInfoFilename(): string;
+    set debugInfoFilename(val: string);
+    get designers(): string[];
+    set designers(val: string[]);
+    get developer_name(): string;
+    set developer_name(val: string);
+    get developerName(): string;
+    set developerName(val: string);
+    get developers(): string[];
+    set developers(val: string[]);
+    get documenters(): string[];
+    set documenters(val: string[]);
+    get issue_url(): string;
+    set issue_url(val: string);
+    get issueUrl(): string;
+    set issueUrl(val: string);
+    get license(): string;
+    set license(val: string);
+    get license_type(): Gtk.License;
+    set license_type(val: Gtk.License);
+    get licenseType(): Gtk.License;
+    set licenseType(val: Gtk.License);
+    get release_notes(): string;
+    set release_notes(val: string);
+    get releaseNotes(): string;
+    set releaseNotes(val: string);
+    get release_notes_version(): string;
+    set release_notes_version(val: string);
+    get releaseNotesVersion(): string;
+    set releaseNotesVersion(val: string);
+    get support_url(): string;
+    set support_url(val: string);
+    get supportUrl(): string;
+    set supportUrl(val: string);
+    get translator_credits(): string;
+    set translator_credits(val: string);
+    get translatorCredits(): string;
+    set translatorCredits(val: string);
+    get version(): string;
+    set version(val: string);
+    get website(): string;
+    set website(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-link", callback: (_source: this, uri: string) => boolean): number;
+    connect_after(signal: "activate-link", callback: (_source: this, uri: string) => boolean): number;
+    emit(signal: "activate-link", uri: string): void;
+
+    // Constructors
+
+    static ["new"](): AboutWindow;
+
+    // Members
+
+    add_acknowledgement_section(name: string | null, people: string[]): void;
+    add_credit_section(name: string | null, people: string[]): void;
+    add_legal_section(
+        title: string,
+        copyright: string | null,
+        license_type: Gtk.License,
+        license?: string | null
+    ): void;
+    add_link(title: string, url: string): void;
+    get_application_icon(): string;
+    get_application_name(): string;
+    get_artists(): string[] | null;
+    get_comments(): string;
+    get_copyright(): string;
+    get_debug_info(): string;
+    get_debug_info_filename(): string;
+    get_designers(): string[] | null;
+    get_developer_name(): string;
+    get_developers(): string[] | null;
+    get_documenters(): string[] | null;
+    get_issue_url(): string;
+    get_license(): string;
+    get_license_type(): Gtk.License;
+    get_release_notes(): string;
+    get_release_notes_version(): string;
+    get_support_url(): string;
+    get_translator_credits(): string;
+    get_version(): string;
+    get_website(): string;
+    set_application_icon(application_icon: string): void;
+    set_application_name(application_name: string): void;
+    set_artists(artists?: string[] | null): void;
+    set_comments(comments: string): void;
+    set_copyright(copyright: string): void;
+    set_debug_info(debug_info: string): void;
+    set_debug_info_filename(filename: string): void;
+    set_designers(designers?: string[] | null): void;
+    set_developer_name(developer_name: string): void;
+    set_developers(developers?: string[] | null): void;
+    set_documenters(documenters?: string[] | null): void;
+    set_issue_url(issue_url: string): void;
+    set_license(license: string): void;
+    set_license_type(license_type: Gtk.License): void;
+    set_release_notes(release_notes: string): void;
+    set_release_notes_version(version: string): void;
+    set_support_url(support_url: string): void;
+    set_translator_credits(translator_credits: string): void;
+    set_version(version: string): void;
+    set_website(website: string): void;
+}
+export module ActionRow {
+    export interface ConstructorProperties extends PreferencesRow.ConstructorProperties {
+        [key: string]: any;
+        activatable_widget: Gtk.Widget;
+        activatableWidget: Gtk.Widget;
+        icon_name: string;
+        iconName: string;
+        subtitle: string;
+        subtitle_lines: number;
+        subtitleLines: number;
+        title_lines: number;
+        titleLines: number;
+    }
+}
+export class ActionRow
+    extends PreferencesRow
+    implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, Gtk.ConstraintTarget
+{
+    static $gtype: GObject.GType<ActionRow>;
+
+    constructor(properties?: Partial<ActionRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ActionRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activatable_widget(): Gtk.Widget;
+    set activatable_widget(val: Gtk.Widget);
+    get activatableWidget(): Gtk.Widget;
+    set activatableWidget(val: Gtk.Widget);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get subtitle(): string;
+    set subtitle(val: string);
+    get subtitle_lines(): number;
+    set subtitle_lines(val: number);
+    get subtitleLines(): number;
+    set subtitleLines(val: number);
+    get title_lines(): number;
+    set title_lines(val: number);
+    get titleLines(): number;
+    set titleLines(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activated", callback: (_source: this) => void): number;
+    connect_after(signal: "activated", callback: (_source: this) => void): number;
+    emit(signal: "activated"): void;
+
+    // Constructors
+
+    static ["new"](): ActionRow;
+
+    // Members
+
+    activate(): void;
+    // Conflicted with Gtk.Widget.activate
+    activate(...args: never[]): any;
+    add_prefix(widget: Gtk.Widget): void;
+    add_suffix(widget: Gtk.Widget): void;
+    get_activatable_widget(): Gtk.Widget | null;
+    get_icon_name(): string | null;
+    get_subtitle(): string | null;
+    get_subtitle_lines(): number;
+    get_title_lines(): number;
+    remove(widget: Gtk.Widget): void;
+    set_activatable_widget(widget?: Gtk.Widget | null): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_subtitle(subtitle: string): void;
+    set_subtitle_lines(subtitle_lines: number): void;
+    set_title_lines(title_lines: number): void;
+    vfunc_activate(): void;
+}
+export module Animation {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        state: AnimationState;
+        target: AnimationTarget;
+        value: number;
+        widget: Gtk.Widget;
+    }
+}
+export abstract class Animation extends GObject.Object {
+    static $gtype: GObject.GType<Animation>;
+
+    constructor(properties?: Partial<Animation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Animation.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get state(): AnimationState;
+    get target(): AnimationTarget;
+    set target(val: AnimationTarget);
+    get value(): number;
+    get widget(): Gtk.Widget;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "done", callback: (_source: this) => void): number;
+    connect_after(signal: "done", callback: (_source: this) => void): number;
+    emit(signal: "done"): void;
+
+    // Members
+
+    get_state(): AnimationState;
+    get_target(): AnimationTarget;
+    get_value(): number;
+    get_widget(): Gtk.Widget;
+    pause(): void;
+    play(): void;
+    reset(): void;
+    resume(): void;
+    set_target(target: AnimationTarget): void;
+    skip(): void;
+}
+export module AnimationTarget {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class AnimationTarget extends GObject.Object {
+    static $gtype: GObject.GType<AnimationTarget>;
+
+    constructor(properties?: Partial<AnimationTarget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AnimationTarget.ConstructorProperties>, ...args: any[]): void;
+}
+export module Application {
+    export interface ConstructorProperties extends Gtk.Application.ConstructorProperties {
+        [key: string]: any;
+        style_manager: StyleManager;
+        styleManager: StyleManager;
+    }
+}
+export class Application extends Gtk.Application implements Gio.ActionGroup, Gio.ActionMap {
+    static $gtype: GObject.GType<Application>;
+
+    constructor(properties?: Partial<Application.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Application.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get style_manager(): StyleManager;
+    get styleManager(): StyleManager;
+
+    // Constructors
+
+    static ["new"](application_id: string | null, flags: Gio.ApplicationFlags): Application;
+
+    // Members
+
+    get_style_manager(): StyleManager;
+}
+export module ApplicationWindow {
+    export interface ConstructorProperties extends Gtk.ApplicationWindow.ConstructorProperties {
+        [key: string]: any;
+        content: Gtk.Widget;
+    }
+}
+export class ApplicationWindow
+    extends Gtk.ApplicationWindow
+    implements
+        Gio.ActionGroup,
+        Gio.ActionMap,
+        Gtk.Accessible,
+        Gtk.Buildable,
+        Gtk.ConstraintTarget,
+        Gtk.Native,
+        Gtk.Root,
+        Gtk.ShortcutManager
+{
+    static $gtype: GObject.GType<ApplicationWindow>;
+
+    constructor(properties?: Partial<ApplicationWindow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ApplicationWindow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get content(): Gtk.Widget;
+    set content(val: Gtk.Widget);
+
+    // Constructors
+
+    static ["new"](app: Gtk.Application): ApplicationWindow;
+    // Conflicted with Gtk.Window.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_content(): Gtk.Widget | null;
+    set_content(content?: Gtk.Widget | null): void;
+
+    // Implemented Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    // Conflicted with Gtk.Widget.activate_action
+    activate_action(...args: never[]): any;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    add_action(action: Gio.Action): void;
+    add_action_entries(entries: Gio.ActionEntry[], user_data?: any | null): void;
+    lookup_action(action_name: string): Gio.Action | null;
+    remove_action(action_name: string): void;
+    vfunc_add_action(action: Gio.Action): void;
+    vfunc_lookup_action(action_name: string): Gio.Action | null;
+    vfunc_remove_action(action_name: string): void;
+}
+export module Avatar {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        custom_image: Gdk.Paintable;
+        customImage: Gdk.Paintable;
+        icon_name: string;
+        iconName: string;
+        show_initials: boolean;
+        showInitials: boolean;
+        size: number;
+        text: string;
+    }
+}
+export class Avatar extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<Avatar>;
+
+    constructor(properties?: Partial<Avatar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Avatar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get custom_image(): Gdk.Paintable;
+    set custom_image(val: Gdk.Paintable);
+    get customImage(): Gdk.Paintable;
+    set customImage(val: Gdk.Paintable);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get show_initials(): boolean;
+    set show_initials(val: boolean);
+    get showInitials(): boolean;
+    set showInitials(val: boolean);
+    get size(): number;
+    set size(val: number);
+    get text(): string;
+    set text(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](size: number, text: string | null, show_initials: boolean): Avatar;
+
+    // Members
+
+    draw_to_texture(scale_factor: number): Gdk.Texture;
+    get_custom_image(): Gdk.Paintable | null;
+    get_icon_name(): string | null;
+    get_show_initials(): boolean;
+    get_size(): number;
+    get_text(): string | null;
+    set_custom_image(custom_image?: Gdk.Paintable | null): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_show_initials(show_initials: boolean): void;
+    set_size(size: number): void;
+    set_text(text?: string | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Bin {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+    }
+}
+export class Bin extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<Bin>;
+
+    constructor(properties?: Partial<Bin.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Bin.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    set child(val: Gtk.Widget);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Bin;
+
+    // Members
+
+    get_child(): Gtk.Widget | null;
+    set_child(child?: Gtk.Widget | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ButtonContent {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        icon_name: string;
+        iconName: string;
+        label: string;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class ButtonContent extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget 
{
+    static $gtype: GObject.GType<ButtonContent>;
+
+    constructor(properties?: Partial<ButtonContent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ButtonContent.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get label(): string;
+    set label(val: string);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ButtonContent;
+
+    // Members
+
+    get_icon_name(): string;
+    get_label(): string;
+    get_use_underline(): boolean;
+    set_icon_name(icon_name: string): void;
+    set_label(label: string): void;
+    set_use_underline(use_underline: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module CallbackAnimationTarget {
+    export interface ConstructorProperties extends AnimationTarget.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CallbackAnimationTarget extends AnimationTarget {
+    static $gtype: GObject.GType<CallbackAnimationTarget>;
+
+    constructor(properties?: Partial<CallbackAnimationTarget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CallbackAnimationTarget.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): CallbackAnimationTarget;
+}
+export module Carousel {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        allow_long_swipes: boolean;
+        allowLongSwipes: boolean;
+        allow_mouse_drag: boolean;
+        allowMouseDrag: boolean;
+        allow_scroll_wheel: boolean;
+        allowScrollWheel: boolean;
+        interactive: boolean;
+        n_pages: number;
+        nPages: number;
+        position: number;
+        reveal_duration: number;
+        revealDuration: number;
+        scroll_params: SpringParams;
+        scrollParams: SpringParams;
+        spacing: number;
+    }
+}
+export class Carousel
+    extends Gtk.Widget
+    implements Swipeable, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable
+{
+    static $gtype: GObject.GType<Carousel>;
+
+    constructor(properties?: Partial<Carousel.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Carousel.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get allow_long_swipes(): boolean;
+    set allow_long_swipes(val: boolean);
+    get allowLongSwipes(): boolean;
+    set allowLongSwipes(val: boolean);
+    get allow_mouse_drag(): boolean;
+    set allow_mouse_drag(val: boolean);
+    get allowMouseDrag(): boolean;
+    set allowMouseDrag(val: boolean);
+    get allow_scroll_wheel(): boolean;
+    set allow_scroll_wheel(val: boolean);
+    get allowScrollWheel(): boolean;
+    set allowScrollWheel(val: boolean);
+    get interactive(): boolean;
+    set interactive(val: boolean);
+    get n_pages(): number;
+    get nPages(): number;
+    get position(): number;
+    get reveal_duration(): number;
+    set reveal_duration(val: number);
+    get revealDuration(): number;
+    set revealDuration(val: number);
+    get scroll_params(): SpringParams;
+    set scroll_params(val: SpringParams);
+    get scrollParams(): SpringParams;
+    set scrollParams(val: SpringParams);
+    get spacing(): number;
+    set spacing(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "page-changed", callback: (_source: this, index: number) => void): number;
+    connect_after(signal: "page-changed", callback: (_source: this, index: number) => void): number;
+    emit(signal: "page-changed", index: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): Carousel;
+
+    // Members
+
+    append(child: Gtk.Widget): void;
+    get_allow_long_swipes(): boolean;
+    get_allow_mouse_drag(): boolean;
+    get_allow_scroll_wheel(): boolean;
+    get_interactive(): boolean;
+    get_n_pages(): number;
+    get_nth_page(n: number): Gtk.Widget;
+    get_position(): number;
+    get_reveal_duration(): number;
+    get_scroll_params(): SpringParams;
+    get_spacing(): number;
+    insert(child: Gtk.Widget, position: number): void;
+    prepend(child: Gtk.Widget): void;
+    remove(child: Gtk.Widget): void;
+    reorder(child: Gtk.Widget, position: number): void;
+    scroll_to(widget: Gtk.Widget, animate: boolean): void;
+    set_allow_long_swipes(allow_long_swipes: boolean): void;
+    set_allow_mouse_drag(allow_mouse_drag: boolean): void;
+    set_allow_scroll_wheel(allow_scroll_wheel: boolean): void;
+    set_interactive(interactive: boolean): void;
+    set_reveal_duration(reveal_duration: number): void;
+    set_scroll_params(params: SpringParams): void;
+    set_spacing(spacing: number): void;
+
+    // Implemented Members
+
+    get_cancel_progress(): number;
+    get_distance(): number;
+    get_progress(): number;
+    get_snap_points(): number[];
+    get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    vfunc_get_cancel_progress(): number;
+    vfunc_get_distance(): number;
+    vfunc_get_progress(): number;
+    vfunc_get_snap_points(): number[];
+    vfunc_get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module CarouselIndicatorDots {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        carousel: Carousel;
+    }
+}
+export class CarouselIndicatorDots
+    extends Gtk.Widget
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable
+{
+    static $gtype: GObject.GType<CarouselIndicatorDots>;
+
+    constructor(properties?: Partial<CarouselIndicatorDots.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CarouselIndicatorDots.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get carousel(): Carousel;
+    set carousel(val: Carousel);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): CarouselIndicatorDots;
+
+    // Members
+
+    get_carousel(): Carousel | null;
+    set_carousel(carousel?: Carousel | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module CarouselIndicatorLines {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        carousel: Carousel;
+    }
+}
+export class CarouselIndicatorLines
+    extends Gtk.Widget
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable
+{
+    static $gtype: GObject.GType<CarouselIndicatorLines>;
+
+    constructor(properties?: Partial<CarouselIndicatorLines.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CarouselIndicatorLines.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get carousel(): Carousel;
+    set carousel(val: Carousel);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): CarouselIndicatorLines;
+
+    // Members
+
+    get_carousel(): Carousel | null;
+    set_carousel(carousel?: Carousel | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module Clamp {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        maximum_size: number;
+        maximumSize: number;
+        tightening_threshold: number;
+        tighteningThreshold: number;
+    }
+}
+export class Clamp extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, 
Gtk.Orientable {
+    static $gtype: GObject.GType<Clamp>;
+
+    constructor(properties?: Partial<Clamp.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Clamp.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    set child(val: Gtk.Widget);
+    get maximum_size(): number;
+    set maximum_size(val: number);
+    get maximumSize(): number;
+    set maximumSize(val: number);
+    get tightening_threshold(): number;
+    set tightening_threshold(val: number);
+    get tighteningThreshold(): number;
+    set tighteningThreshold(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): Clamp;
+
+    // Members
+
+    get_child(): Gtk.Widget | null;
+    get_maximum_size(): number;
+    get_tightening_threshold(): number;
+    set_child(child?: Gtk.Widget | null): void;
+    set_maximum_size(maximum_size: number): void;
+    set_tightening_threshold(tightening_threshold: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module ClampLayout {
+    export interface ConstructorProperties extends Gtk.LayoutManager.ConstructorProperties {
+        [key: string]: any;
+        maximum_size: number;
+        maximumSize: number;
+        tightening_threshold: number;
+        tighteningThreshold: number;
+    }
+}
+export class ClampLayout extends Gtk.LayoutManager implements Gtk.Orientable {
+    static $gtype: GObject.GType<ClampLayout>;
+
+    constructor(properties?: Partial<ClampLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ClampLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get maximum_size(): number;
+    set maximum_size(val: number);
+    get maximumSize(): number;
+    set maximumSize(val: number);
+    get tightening_threshold(): number;
+    set tightening_threshold(val: number);
+    get tighteningThreshold(): number;
+    set tighteningThreshold(val: number);
+
+    // Implemented Properties
+
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): ClampLayout;
+
+    // Members
+
+    get_maximum_size(): number;
+    get_tightening_threshold(): number;
+    set_maximum_size(maximum_size: number): void;
+    set_tightening_threshold(tightening_threshold: number): void;
+
+    // Implemented Members
+
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module ClampScrollable {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        maximum_size: number;
+        maximumSize: number;
+        tightening_threshold: number;
+        tighteningThreshold: number;
+    }
+}
+export class ClampScrollable
+    extends Gtk.Widget
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable, Gtk.Scrollable
+{
+    static $gtype: GObject.GType<ClampScrollable>;
+
+    constructor(properties?: Partial<ClampScrollable.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ClampScrollable.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    set child(val: Gtk.Widget);
+    get maximum_size(): number;
+    set maximum_size(val: number);
+    get maximumSize(): number;
+    set maximumSize(val: number);
+    get tightening_threshold(): number;
+    set tightening_threshold(val: number);
+    get tighteningThreshold(): number;
+    set tighteningThreshold(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+    get hadjustment(): Gtk.Adjustment;
+    set hadjustment(val: Gtk.Adjustment);
+    get hscroll_policy(): Gtk.ScrollablePolicy;
+    set hscroll_policy(val: Gtk.ScrollablePolicy);
+    get hscrollPolicy(): Gtk.ScrollablePolicy;
+    set hscrollPolicy(val: Gtk.ScrollablePolicy);
+    get vadjustment(): Gtk.Adjustment;
+    set vadjustment(val: Gtk.Adjustment);
+    get vscroll_policy(): Gtk.ScrollablePolicy;
+    set vscroll_policy(val: Gtk.ScrollablePolicy);
+    get vscrollPolicy(): Gtk.ScrollablePolicy;
+    set vscrollPolicy(val: Gtk.ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](): ClampScrollable;
+
+    // Members
+
+    get_child(): Gtk.Widget | null;
+    get_maximum_size(): number;
+    get_tightening_threshold(): number;
+    set_child(child?: Gtk.Widget | null): void;
+    set_maximum_size(maximum_size: number): void;
+    set_tightening_threshold(tightening_threshold: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+    get_border(): [boolean, Gtk.Border];
+    get_hadjustment(): Gtk.Adjustment | null;
+    get_hscroll_policy(): Gtk.ScrollablePolicy;
+    get_vadjustment(): Gtk.Adjustment | null;
+    get_vscroll_policy(): Gtk.ScrollablePolicy;
+    set_hadjustment(hadjustment?: Gtk.Adjustment | null): void;
+    set_hscroll_policy(policy: Gtk.ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Gtk.Adjustment | null): void;
+    set_vscroll_policy(policy: Gtk.ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Gtk.Border];
+}
+export module ComboRow {
+    export interface ConstructorProperties extends ActionRow.ConstructorProperties {
+        [key: string]: any;
+        expression: Gtk.Expression;
+        factory: Gtk.ListItemFactory;
+        list_factory: Gtk.ListItemFactory;
+        listFactory: Gtk.ListItemFactory;
+        model: Gio.ListModel;
+        selected: number;
+        selected_item: GObject.Object;
+        selectedItem: GObject.Object;
+        use_subtitle: boolean;
+        useSubtitle: boolean;
+    }
+}
+export class ComboRow extends ActionRow implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, 
Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<ComboRow>;
+
+    constructor(properties?: Partial<ComboRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ComboRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get expression(): Gtk.Expression;
+    set expression(val: Gtk.Expression);
+    get factory(): Gtk.ListItemFactory;
+    set factory(val: Gtk.ListItemFactory);
+    get list_factory(): Gtk.ListItemFactory;
+    set list_factory(val: Gtk.ListItemFactory);
+    get listFactory(): Gtk.ListItemFactory;
+    set listFactory(val: Gtk.ListItemFactory);
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+    get selected(): number;
+    set selected(val: number);
+    get selected_item(): GObject.Object;
+    get selectedItem(): GObject.Object;
+    get use_subtitle(): boolean;
+    set use_subtitle(val: boolean);
+    get useSubtitle(): boolean;
+    set useSubtitle(val: boolean);
+
+    // Constructors
+
+    static ["new"](): ComboRow;
+
+    // Members
+
+    get_expression(): Gtk.Expression | null;
+    get_factory(): Gtk.ListItemFactory | null;
+    get_list_factory(): Gtk.ListItemFactory | null;
+    get_model(): Gio.ListModel | null;
+    get_selected(): number;
+    get_selected_item<T = GObject.Object>(): T;
+    get_use_subtitle(): boolean;
+    set_expression(expression?: Gtk.Expression | null): void;
+    set_factory(factory?: Gtk.ListItemFactory | null): void;
+    set_list_factory(factory?: Gtk.ListItemFactory | null): void;
+    set_model(model?: Gio.ListModel | null): void;
+    set_selected(position: number): void;
+    set_use_subtitle(use_subtitle: boolean): void;
+}
+export module EntryRow {
+    export interface ConstructorProperties extends PreferencesRow.ConstructorProperties {
+        [key: string]: any;
+        enable_emoji_completion: boolean;
+        enableEmojiCompletion: boolean;
+        input_hints: Gtk.InputHints;
+        inputHints: Gtk.InputHints;
+        input_purpose: Gtk.InputPurpose;
+        inputPurpose: Gtk.InputPurpose;
+        show_apply_button: boolean;
+        showApplyButton: boolean;
+    }
+}
+export class EntryRow
+    extends PreferencesRow
+    implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Editable
+{
+    static $gtype: GObject.GType<EntryRow>;
+
+    constructor(properties?: Partial<EntryRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EntryRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_emoji_completion(): boolean;
+    set enable_emoji_completion(val: boolean);
+    get enableEmojiCompletion(): boolean;
+    set enableEmojiCompletion(val: boolean);
+    get input_hints(): Gtk.InputHints;
+    set input_hints(val: Gtk.InputHints);
+    get inputHints(): Gtk.InputHints;
+    set inputHints(val: Gtk.InputHints);
+    get input_purpose(): Gtk.InputPurpose;
+    set input_purpose(val: Gtk.InputPurpose);
+    get inputPurpose(): Gtk.InputPurpose;
+    set inputPurpose(val: Gtk.InputPurpose);
+    get show_apply_button(): boolean;
+    set show_apply_button(val: boolean);
+    get showApplyButton(): boolean;
+    set showApplyButton(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "apply", callback: (_source: this) => void): number;
+    connect_after(signal: "apply", callback: (_source: this) => void): number;
+    emit(signal: "apply"): void;
+
+    // Implemented Properties
+
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](): EntryRow;
+
+    // Members
+
+    add_prefix(widget: Gtk.Widget): void;
+    add_suffix(widget: Gtk.Widget): void;
+    get_enable_emoji_completion(): boolean;
+    get_input_hints(): Gtk.InputHints;
+    get_input_purpose(): Gtk.InputPurpose;
+    get_show_apply_button(): boolean;
+    remove(widget: Gtk.Widget): void;
+    set_enable_emoji_completion(enable_emoji_completion: boolean): void;
+    set_input_hints(hints: Gtk.InputHints): void;
+    set_input_purpose(purpose: Gtk.InputPurpose): void;
+    set_show_apply_button(show_apply_button: boolean): void;
+
+    // Implemented Members
+
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Gtk.Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Gtk.Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module EnumListItem {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        name: string;
+        nick: string;
+        value: number;
+    }
+}
+export class EnumListItem extends GObject.Object {
+    static $gtype: GObject.GType<EnumListItem>;
+
+    constructor(properties?: Partial<EnumListItem.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EnumListItem.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get name(): string;
+    get nick(): string;
+    get value(): number;
+
+    // Members
+
+    get_name(): string;
+    get_nick(): string;
+    get_value(): number;
+}
+export module EnumListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        enum_type: GObject.GType;
+        enumType: GObject.GType;
+    }
+}
+export class EnumListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<EnumListModel>;
+
+    constructor(properties?: Partial<EnumListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<EnumListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get enum_type(): GObject.GType;
+    get enumType(): GObject.GType;
+
+    // Constructors
+
+    static ["new"](enum_type: GObject.GType): EnumListModel;
+
+    // Members
+
+    find_position(value: number): number;
+    get_enum_type(): GObject.GType;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module ExpanderRow {
+    export interface ConstructorProperties extends PreferencesRow.ConstructorProperties {
+        [key: string]: any;
+        enable_expansion: boolean;
+        enableExpansion: boolean;
+        expanded: boolean;
+        icon_name: string;
+        iconName: string;
+        show_enable_switch: boolean;
+        showEnableSwitch: boolean;
+        subtitle: string;
+    }
+}
+export class ExpanderRow
+    extends PreferencesRow
+    implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, Gtk.ConstraintTarget
+{
+    static $gtype: GObject.GType<ExpanderRow>;
+
+    constructor(properties?: Partial<ExpanderRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ExpanderRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_expansion(): boolean;
+    set enable_expansion(val: boolean);
+    get enableExpansion(): boolean;
+    set enableExpansion(val: boolean);
+    get expanded(): boolean;
+    set expanded(val: boolean);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get show_enable_switch(): boolean;
+    set show_enable_switch(val: boolean);
+    get showEnableSwitch(): boolean;
+    set showEnableSwitch(val: boolean);
+    get subtitle(): string;
+    set subtitle(val: string);
+
+    // Constructors
+
+    static ["new"](): ExpanderRow;
+
+    // Members
+
+    add_action(widget: Gtk.Widget): void;
+    add_prefix(widget: Gtk.Widget): void;
+    add_row(child: Gtk.Widget): void;
+    get_enable_expansion(): boolean;
+    get_expanded(): boolean;
+    get_icon_name(): string | null;
+    get_show_enable_switch(): boolean;
+    get_subtitle(): string;
+    remove(child: Gtk.Widget): void;
+    set_enable_expansion(enable_expansion: boolean): void;
+    set_expanded(expanded: boolean): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_show_enable_switch(show_enable_switch: boolean): void;
+    set_subtitle(subtitle: string): void;
+}
+export module Flap {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        content: Gtk.Widget;
+        flap: Gtk.Widget;
+        flap_position: Gtk.PackType;
+        flapPosition: Gtk.PackType;
+        fold_duration: number;
+        foldDuration: number;
+        fold_policy: FlapFoldPolicy;
+        foldPolicy: FlapFoldPolicy;
+        fold_threshold_policy: FoldThresholdPolicy;
+        foldThresholdPolicy: FoldThresholdPolicy;
+        folded: boolean;
+        locked: boolean;
+        modal: boolean;
+        reveal_flap: boolean;
+        revealFlap: boolean;
+        reveal_params: SpringParams;
+        revealParams: SpringParams;
+        reveal_progress: number;
+        revealProgress: number;
+        separator: Gtk.Widget;
+        swipe_to_close: boolean;
+        swipeToClose: boolean;
+        swipe_to_open: boolean;
+        swipeToOpen: boolean;
+        transition_type: FlapTransitionType;
+        transitionType: FlapTransitionType;
+    }
+}
+export class Flap
+    extends Gtk.Widget
+    implements Swipeable, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable
+{
+    static $gtype: GObject.GType<Flap>;
+
+    constructor(properties?: Partial<Flap.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Flap.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get content(): Gtk.Widget;
+    set content(val: Gtk.Widget);
+    get flap(): Gtk.Widget;
+    set flap(val: Gtk.Widget);
+    get flap_position(): Gtk.PackType;
+    set flap_position(val: Gtk.PackType);
+    get flapPosition(): Gtk.PackType;
+    set flapPosition(val: Gtk.PackType);
+    get fold_duration(): number;
+    set fold_duration(val: number);
+    get foldDuration(): number;
+    set foldDuration(val: number);
+    get fold_policy(): FlapFoldPolicy;
+    set fold_policy(val: FlapFoldPolicy);
+    get foldPolicy(): FlapFoldPolicy;
+    set foldPolicy(val: FlapFoldPolicy);
+    get fold_threshold_policy(): FoldThresholdPolicy;
+    set fold_threshold_policy(val: FoldThresholdPolicy);
+    get foldThresholdPolicy(): FoldThresholdPolicy;
+    set foldThresholdPolicy(val: FoldThresholdPolicy);
+    get folded(): boolean;
+    get locked(): boolean;
+    set locked(val: boolean);
+    get modal(): boolean;
+    set modal(val: boolean);
+    get reveal_flap(): boolean;
+    set reveal_flap(val: boolean);
+    get revealFlap(): boolean;
+    set revealFlap(val: boolean);
+    get reveal_params(): SpringParams;
+    set reveal_params(val: SpringParams);
+    get revealParams(): SpringParams;
+    set revealParams(val: SpringParams);
+    get reveal_progress(): number;
+    get revealProgress(): number;
+    get separator(): Gtk.Widget;
+    set separator(val: Gtk.Widget);
+    get swipe_to_close(): boolean;
+    set swipe_to_close(val: boolean);
+    get swipeToClose(): boolean;
+    set swipeToClose(val: boolean);
+    get swipe_to_open(): boolean;
+    set swipe_to_open(val: boolean);
+    get swipeToOpen(): boolean;
+    set swipeToOpen(val: boolean);
+    get transition_type(): FlapTransitionType;
+    set transition_type(val: FlapTransitionType);
+    get transitionType(): FlapTransitionType;
+    set transitionType(val: FlapTransitionType);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): Flap;
+
+    // Members
+
+    get_content(): Gtk.Widget | null;
+    get_flap(): Gtk.Widget | null;
+    get_flap_position(): Gtk.PackType;
+    get_fold_duration(): number;
+    get_fold_policy(): FlapFoldPolicy;
+    get_fold_threshold_policy(): FoldThresholdPolicy;
+    get_folded(): boolean;
+    get_locked(): boolean;
+    get_modal(): boolean;
+    get_reveal_flap(): boolean;
+    get_reveal_params(): SpringParams;
+    get_reveal_progress(): number;
+    get_separator(): Gtk.Widget | null;
+    get_swipe_to_close(): boolean;
+    get_swipe_to_open(): boolean;
+    get_transition_type(): FlapTransitionType;
+    set_content(content?: Gtk.Widget | null): void;
+    set_flap(flap?: Gtk.Widget | null): void;
+    set_flap_position(position: Gtk.PackType): void;
+    set_fold_duration(duration: number): void;
+    set_fold_policy(policy: FlapFoldPolicy): void;
+    set_fold_threshold_policy(policy: FoldThresholdPolicy): void;
+    set_locked(locked: boolean): void;
+    set_modal(modal: boolean): void;
+    set_reveal_flap(reveal_flap: boolean): void;
+    set_reveal_params(params: SpringParams): void;
+    set_separator(separator?: Gtk.Widget | null): void;
+    set_swipe_to_close(swipe_to_close: boolean): void;
+    set_swipe_to_open(swipe_to_open: boolean): void;
+    set_transition_type(transition_type: FlapTransitionType): void;
+
+    // Implemented Members
+
+    get_cancel_progress(): number;
+    get_distance(): number;
+    get_progress(): number;
+    get_snap_points(): number[];
+    get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    vfunc_get_cancel_progress(): number;
+    vfunc_get_distance(): number;
+    vfunc_get_progress(): number;
+    vfunc_get_snap_points(): number[];
+    vfunc_get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module HeaderBar {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        centering_policy: CenteringPolicy;
+        centeringPolicy: CenteringPolicy;
+        decoration_layout: string;
+        decorationLayout: string;
+        show_end_title_buttons: boolean;
+        showEndTitleButtons: boolean;
+        show_start_title_buttons: boolean;
+        showStartTitleButtons: boolean;
+        title_widget: Gtk.Widget;
+        titleWidget: Gtk.Widget;
+    }
+}
+export class HeaderBar extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<HeaderBar>;
+
+    constructor(properties?: Partial<HeaderBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<HeaderBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get centering_policy(): CenteringPolicy;
+    set centering_policy(val: CenteringPolicy);
+    get centeringPolicy(): CenteringPolicy;
+    set centeringPolicy(val: CenteringPolicy);
+    get decoration_layout(): string;
+    set decoration_layout(val: string);
+    get decorationLayout(): string;
+    set decorationLayout(val: string);
+    get show_end_title_buttons(): boolean;
+    set show_end_title_buttons(val: boolean);
+    get showEndTitleButtons(): boolean;
+    set showEndTitleButtons(val: boolean);
+    get show_start_title_buttons(): boolean;
+    set show_start_title_buttons(val: boolean);
+    get showStartTitleButtons(): boolean;
+    set showStartTitleButtons(val: boolean);
+    get title_widget(): Gtk.Widget;
+    set title_widget(val: Gtk.Widget);
+    get titleWidget(): Gtk.Widget;
+    set titleWidget(val: Gtk.Widget);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): HeaderBar;
+
+    // Members
+
+    get_centering_policy(): CenteringPolicy;
+    get_decoration_layout(): string | null;
+    get_show_end_title_buttons(): boolean;
+    get_show_start_title_buttons(): boolean;
+    get_title_widget(): Gtk.Widget | null;
+    pack_end(child: Gtk.Widget): void;
+    pack_start(child: Gtk.Widget): void;
+    remove(child: Gtk.Widget): void;
+    set_centering_policy(centering_policy: CenteringPolicy): void;
+    set_decoration_layout(layout?: string | null): void;
+    set_show_end_title_buttons(setting: boolean): void;
+    set_show_start_title_buttons(setting: boolean): void;
+    set_title_widget(title_widget?: Gtk.Widget | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Leaflet {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        can_navigate_back: boolean;
+        canNavigateBack: boolean;
+        can_navigate_forward: boolean;
+        canNavigateForward: boolean;
+        can_unfold: boolean;
+        canUnfold: boolean;
+        child_transition_params: SpringParams;
+        childTransitionParams: SpringParams;
+        child_transition_running: boolean;
+        childTransitionRunning: boolean;
+        fold_threshold_policy: FoldThresholdPolicy;
+        foldThresholdPolicy: FoldThresholdPolicy;
+        folded: boolean;
+        homogeneous: boolean;
+        mode_transition_duration: number;
+        modeTransitionDuration: number;
+        pages: Gtk.SelectionModel;
+        transition_type: LeafletTransitionType;
+        transitionType: LeafletTransitionType;
+        visible_child: Gtk.Widget;
+        visibleChild: Gtk.Widget;
+        visible_child_name: string;
+        visibleChildName: string;
+    }
+}
+export class Leaflet
+    extends Gtk.Widget
+    implements Swipeable, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable
+{
+    static $gtype: GObject.GType<Leaflet>;
+
+    constructor(properties?: Partial<Leaflet.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Leaflet.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get can_navigate_back(): boolean;
+    set can_navigate_back(val: boolean);
+    get canNavigateBack(): boolean;
+    set canNavigateBack(val: boolean);
+    get can_navigate_forward(): boolean;
+    set can_navigate_forward(val: boolean);
+    get canNavigateForward(): boolean;
+    set canNavigateForward(val: boolean);
+    get can_unfold(): boolean;
+    set can_unfold(val: boolean);
+    get canUnfold(): boolean;
+    set canUnfold(val: boolean);
+    get child_transition_params(): SpringParams;
+    set child_transition_params(val: SpringParams);
+    get childTransitionParams(): SpringParams;
+    set childTransitionParams(val: SpringParams);
+    get child_transition_running(): boolean;
+    get childTransitionRunning(): boolean;
+    get fold_threshold_policy(): FoldThresholdPolicy;
+    set fold_threshold_policy(val: FoldThresholdPolicy);
+    get foldThresholdPolicy(): FoldThresholdPolicy;
+    set foldThresholdPolicy(val: FoldThresholdPolicy);
+    get folded(): boolean;
+    get homogeneous(): boolean;
+    set homogeneous(val: boolean);
+    get mode_transition_duration(): number;
+    set mode_transition_duration(val: number);
+    get modeTransitionDuration(): number;
+    set modeTransitionDuration(val: number);
+    get pages(): Gtk.SelectionModel;
+    get transition_type(): LeafletTransitionType;
+    set transition_type(val: LeafletTransitionType);
+    get transitionType(): LeafletTransitionType;
+    set transitionType(val: LeafletTransitionType);
+    get visible_child(): Gtk.Widget;
+    set visible_child(val: Gtk.Widget);
+    get visibleChild(): Gtk.Widget;
+    set visibleChild(val: Gtk.Widget);
+    get visible_child_name(): string;
+    set visible_child_name(val: string);
+    get visibleChildName(): string;
+    set visibleChildName(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): Leaflet;
+
+    // Members
+
+    append(child: Gtk.Widget): LeafletPage;
+    get_adjacent_child(direction: NavigationDirection): Gtk.Widget | null;
+    get_can_navigate_back(): boolean;
+    get_can_navigate_forward(): boolean;
+    get_can_unfold(): boolean;
+    get_child_by_name(name: string): Gtk.Widget | null;
+    get_child_transition_params(): SpringParams;
+    get_child_transition_running(): boolean;
+    get_fold_threshold_policy(): FoldThresholdPolicy;
+    get_folded(): boolean;
+    get_homogeneous(): boolean;
+    get_mode_transition_duration(): number;
+    get_page(child: Gtk.Widget): LeafletPage;
+    get_pages(): Gtk.SelectionModel;
+    get_transition_type(): LeafletTransitionType;
+    get_visible_child(): Gtk.Widget | null;
+    get_visible_child_name(): string | null;
+    insert_child_after(child: Gtk.Widget, sibling?: Gtk.Widget | null): LeafletPage;
+    navigate(direction: NavigationDirection): boolean;
+    prepend(child: Gtk.Widget): LeafletPage;
+    remove(child: Gtk.Widget): void;
+    reorder_child_after(child: Gtk.Widget, sibling?: Gtk.Widget | null): void;
+    set_can_navigate_back(can_navigate_back: boolean): void;
+    set_can_navigate_forward(can_navigate_forward: boolean): void;
+    set_can_unfold(can_unfold: boolean): void;
+    set_child_transition_params(params: SpringParams): void;
+    set_fold_threshold_policy(policy: FoldThresholdPolicy): void;
+    set_homogeneous(homogeneous: boolean): void;
+    set_mode_transition_duration(duration: number): void;
+    set_transition_type(transition: LeafletTransitionType): void;
+    set_visible_child(visible_child: Gtk.Widget): void;
+    set_visible_child_name(name: string): void;
+
+    // Implemented Members
+
+    get_cancel_progress(): number;
+    get_distance(): number;
+    get_progress(): number;
+    get_snap_points(): number[];
+    get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    vfunc_get_cancel_progress(): number;
+    vfunc_get_distance(): number;
+    vfunc_get_progress(): number;
+    vfunc_get_snap_points(): number[];
+    vfunc_get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module LeafletPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        name: string;
+        navigatable: boolean;
+    }
+}
+export class LeafletPage extends GObject.Object {
+    static $gtype: GObject.GType<LeafletPage>;
+
+    constructor(properties?: Partial<LeafletPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<LeafletPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    get name(): string;
+    set name(val: string);
+    get navigatable(): boolean;
+    set navigatable(val: boolean);
+
+    // Members
+
+    get_child(): Gtk.Widget;
+    get_name(): string | null;
+    get_navigatable(): boolean;
+    set_name(name?: string | null): void;
+    set_navigatable(navigatable: boolean): void;
+}
+export module MessageDialog {
+    export interface ConstructorProperties extends Gtk.Window.ConstructorProperties {
+        [key: string]: any;
+        body: string;
+        body_use_markup: boolean;
+        bodyUseMarkup: boolean;
+        close_response: string;
+        closeResponse: string;
+        default_response: string;
+        defaultResponse: string;
+        extra_child: Gtk.Widget;
+        extraChild: Gtk.Widget;
+        heading: string;
+        heading_use_markup: boolean;
+        headingUseMarkup: boolean;
+    }
+}
+export class MessageDialog
+    extends Gtk.Window
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager
+{
+    static $gtype: GObject.GType<MessageDialog>;
+
+    constructor(properties?: Partial<MessageDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MessageDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get body(): string;
+    set body(val: string);
+    get body_use_markup(): boolean;
+    set body_use_markup(val: boolean);
+    get bodyUseMarkup(): boolean;
+    set bodyUseMarkup(val: boolean);
+    get close_response(): string;
+    set close_response(val: string);
+    get closeResponse(): string;
+    set closeResponse(val: string);
+    get default_response(): string;
+    set default_response(val: string);
+    get defaultResponse(): string;
+    set defaultResponse(val: string);
+    get extra_child(): Gtk.Widget;
+    set extra_child(val: Gtk.Widget);
+    get extraChild(): Gtk.Widget;
+    set extraChild(val: Gtk.Widget);
+    get heading(): string;
+    set heading(val: string);
+    get heading_use_markup(): boolean;
+    set heading_use_markup(val: boolean);
+    get headingUseMarkup(): boolean;
+    set headingUseMarkup(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "response", callback: (_source: this, response: string) => void): number;
+    connect_after(signal: "response", callback: (_source: this, response: string) => void): number;
+    emit(signal: "response", response: string): void;
+
+    // Constructors
+
+    static ["new"](parent?: Gtk.Window | null, heading?: string | null, body?: string | null): MessageDialog;
+    // Conflicted with Gtk.Window.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    add_response(id: string, label: string): void;
+    get_body(): string;
+    get_body_use_markup(): boolean;
+    get_close_response(): string;
+    get_default_response(): string | null;
+    get_extra_child(): Gtk.Widget | null;
+    get_heading(): string | null;
+    get_heading_use_markup(): boolean;
+    get_response_appearance(response: string): ResponseAppearance;
+    get_response_enabled(response: string): boolean;
+    get_response_label(response: string): string;
+    has_response(response: string): boolean;
+    response(response: string): void;
+    set_body(body: string): void;
+    set_body_use_markup(use_markup: boolean): void;
+    set_close_response(response: string): void;
+    set_default_response(response?: string | null): void;
+    set_extra_child(child?: Gtk.Widget | null): void;
+    set_heading(heading?: string | null): void;
+    set_heading_use_markup(use_markup: boolean): void;
+    set_response_appearance(response: string, appearance: ResponseAppearance): void;
+    set_response_enabled(response: string, enabled: boolean): void;
+    set_response_label(response: string, label: string): void;
+    vfunc_response(response: string): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Gtk.Widget | null;
+    set_focus(focus?: Gtk.Widget | null): void;
+    vfunc_add_controller(controller: Gtk.ShortcutController): void;
+    vfunc_remove_controller(controller: Gtk.ShortcutController): void;
+}
+export module PasswordEntryRow {
+    export interface ConstructorProperties extends EntryRow.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PasswordEntryRow
+    extends EntryRow
+    implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Editable
+{
+    static $gtype: GObject.GType<PasswordEntryRow>;
+
+    constructor(properties?: Partial<PasswordEntryRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PasswordEntryRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Implemented Properties
+
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](): PasswordEntryRow;
+
+    // Implemented Members
+
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Gtk.Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Gtk.Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module PreferencesGroup {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        description: string;
+        header_suffix: Gtk.Widget;
+        headerSuffix: Gtk.Widget;
+        title: string;
+    }
+}
+export class PreferencesGroup extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, 
Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<PreferencesGroup>;
+
+    constructor(properties?: Partial<PreferencesGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PreferencesGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get description(): string;
+    set description(val: string);
+    get header_suffix(): Gtk.Widget;
+    set header_suffix(val: Gtk.Widget);
+    get headerSuffix(): Gtk.Widget;
+    set headerSuffix(val: Gtk.Widget);
+    get title(): string;
+    set title(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): PreferencesGroup;
+
+    // Members
+
+    add(child: Gtk.Widget): void;
+    get_description(): string | null;
+    get_header_suffix(): Gtk.Widget | null;
+    get_title(): string;
+    remove(child: Gtk.Widget): void;
+    set_description(description?: string | null): void;
+    set_header_suffix(suffix?: Gtk.Widget | null): void;
+    set_title(title: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module PreferencesPage {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        icon_name: string;
+        iconName: string;
+        name: string;
+        title: string;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class PreferencesPage extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, 
Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<PreferencesPage>;
+
+    constructor(properties?: Partial<PreferencesPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PreferencesPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get name(): string;
+    set name(val: string);
+    get title(): string;
+    set title(val: string);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): PreferencesPage;
+
+    // Members
+
+    add(group: PreferencesGroup): void;
+    get_icon_name(): string | null;
+    get_name(): string | null;
+    // Conflicted with Gtk.Widget.get_name
+    get_name(...args: never[]): any;
+    get_title(): string;
+    get_use_underline(): boolean;
+    remove(group: PreferencesGroup): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_name(name?: string | null): void;
+    // Conflicted with Gtk.Widget.set_name
+    set_name(...args: never[]): any;
+    set_title(title: string): void;
+    set_use_underline(use_underline: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module PreferencesRow {
+    export interface ConstructorProperties extends Gtk.ListBoxRow.ConstructorProperties {
+        [key: string]: any;
+        title: string;
+        title_selectable: boolean;
+        titleSelectable: boolean;
+        use_markup: boolean;
+        useMarkup: boolean;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class PreferencesRow
+    extends Gtk.ListBoxRow
+    implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, Gtk.ConstraintTarget
+{
+    static $gtype: GObject.GType<PreferencesRow>;
+
+    constructor(properties?: Partial<PreferencesRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PreferencesRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get title(): string;
+    set title(val: string);
+    get title_selectable(): boolean;
+    set title_selectable(val: boolean);
+    get titleSelectable(): boolean;
+    set titleSelectable(val: boolean);
+    get use_markup(): boolean;
+    set use_markup(val: boolean);
+    get useMarkup(): boolean;
+    set useMarkup(val: boolean);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Implemented Properties
+
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): PreferencesRow;
+
+    // Members
+
+    get_title(): string;
+    get_title_selectable(): boolean;
+    get_use_markup(): boolean;
+    get_use_underline(): boolean;
+    set_title(title: string): void;
+    set_title_selectable(title_selectable: boolean): void;
+    set_use_markup(use_markup: boolean): void;
+    set_use_underline(use_underline: boolean): void;
+
+    // Implemented Members
+
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+}
+export module PreferencesWindow {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        can_navigate_back: boolean;
+        canNavigateBack: boolean;
+        search_enabled: boolean;
+        searchEnabled: boolean;
+        visible_page: Gtk.Widget;
+        visiblePage: Gtk.Widget;
+        visible_page_name: string;
+        visiblePageName: string;
+    }
+}
+export class PreferencesWindow
+    extends Window
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager
+{
+    static $gtype: GObject.GType<PreferencesWindow>;
+
+    constructor(properties?: Partial<PreferencesWindow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PreferencesWindow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get can_navigate_back(): boolean;
+    set can_navigate_back(val: boolean);
+    get canNavigateBack(): boolean;
+    set canNavigateBack(val: boolean);
+    get search_enabled(): boolean;
+    set search_enabled(val: boolean);
+    get searchEnabled(): boolean;
+    set searchEnabled(val: boolean);
+    get visible_page(): Gtk.Widget;
+    set visible_page(val: Gtk.Widget);
+    get visiblePage(): Gtk.Widget;
+    set visiblePage(val: Gtk.Widget);
+    get visible_page_name(): string;
+    set visible_page_name(val: string);
+    get visiblePageName(): string;
+    set visiblePageName(val: string);
+
+    // Constructors
+
+    static ["new"](): PreferencesWindow;
+
+    // Members
+
+    add(page: PreferencesPage): void;
+    add_toast(toast: Toast): void;
+    close_subpage(): void;
+    get_can_navigate_back(): boolean;
+    get_search_enabled(): boolean;
+    get_visible_page(): PreferencesPage | null;
+    get_visible_page_name(): string | null;
+    present_subpage(subpage: Gtk.Widget): void;
+    remove(page: PreferencesPage): void;
+    set_can_navigate_back(can_navigate_back: boolean): void;
+    set_search_enabled(search_enabled: boolean): void;
+    set_visible_page(page: PreferencesPage): void;
+    set_visible_page_name(name: string): void;
+}
+export module PropertyAnimationTarget {
+    export interface ConstructorProperties extends AnimationTarget.ConstructorProperties {
+        [key: string]: any;
+        object: GObject.Object;
+        pspec: GObject.ParamSpec;
+    }
+}
+export class PropertyAnimationTarget extends AnimationTarget {
+    static $gtype: GObject.GType<PropertyAnimationTarget>;
+
+    constructor(properties?: Partial<PropertyAnimationTarget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PropertyAnimationTarget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get object(): GObject.Object;
+    get pspec(): GObject.ParamSpec;
+
+    // Constructors
+
+    static ["new"](object: GObject.Object, property_name: string): PropertyAnimationTarget;
+    static new_for_pspec(object: GObject.Object, pspec: GObject.ParamSpec): PropertyAnimationTarget;
+
+    // Members
+
+    get_object<T = GObject.Object>(): T;
+    get_pspec(): GObject.ParamSpec;
+}
+export module SplitButton {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        direction: Gtk.ArrowType;
+        icon_name: string;
+        iconName: string;
+        label: string;
+        menu_model: Gio.MenuModel;
+        menuModel: Gio.MenuModel;
+        popover: Gtk.Popover;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class SplitButton
+    extends Gtk.Widget
+    implements Gtk.Accessible, Gtk.Actionable, Gtk.Buildable, Gtk.ConstraintTarget
+{
+    static $gtype: GObject.GType<SplitButton>;
+
+    constructor(properties?: Partial<SplitButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SplitButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    set child(val: Gtk.Widget);
+    get direction(): Gtk.ArrowType;
+    set direction(val: Gtk.ArrowType);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get label(): string;
+    set label(val: string);
+    get menu_model(): Gio.MenuModel;
+    set menu_model(val: Gio.MenuModel);
+    get menuModel(): Gio.MenuModel;
+    set menuModel(val: Gio.MenuModel);
+    get popover(): Gtk.Popover;
+    set popover(val: Gtk.Popover);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "clicked", callback: (_source: this) => void): number;
+    connect_after(signal: "clicked", callback: (_source: this) => void): number;
+    emit(signal: "clicked"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): SplitButton;
+
+    // Members
+
+    get_child(): Gtk.Widget | null;
+    get_direction(): Gtk.ArrowType;
+    // Conflicted with Gtk.Widget.get_direction
+    get_direction(...args: never[]): any;
+    get_icon_name(): string | null;
+    get_label(): string | null;
+    get_menu_model(): Gio.MenuModel | null;
+    get_popover(): Gtk.Popover | null;
+    get_use_underline(): boolean;
+    popdown(): void;
+    popup(): void;
+    set_child(child?: Gtk.Widget | null): void;
+    set_direction(direction: Gtk.ArrowType): void;
+    // Conflicted with Gtk.Widget.set_direction
+    set_direction(...args: never[]): any;
+    set_icon_name(icon_name: string): void;
+    set_label(label: string): void;
+    set_menu_model(menu_model?: Gio.MenuModel | null): void;
+    set_popover(popover?: Gtk.Popover | null): void;
+    set_use_underline(use_underline: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module SpringAnimation {
+    export interface ConstructorProperties extends Animation.ConstructorProperties {
+        [key: string]: any;
+        clamp: boolean;
+        epsilon: number;
+        estimated_duration: number;
+        estimatedDuration: number;
+        initial_velocity: number;
+        initialVelocity: number;
+        spring_params: SpringParams;
+        springParams: SpringParams;
+        value_from: number;
+        valueFrom: number;
+        value_to: number;
+        valueTo: number;
+        velocity: number;
+    }
+}
+export class SpringAnimation extends Animation {
+    static $gtype: GObject.GType<SpringAnimation>;
+
+    constructor(properties?: Partial<SpringAnimation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SpringAnimation.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get clamp(): boolean;
+    set clamp(val: boolean);
+    get epsilon(): number;
+    set epsilon(val: number);
+    get estimated_duration(): number;
+    get estimatedDuration(): number;
+    get initial_velocity(): number;
+    set initial_velocity(val: number);
+    get initialVelocity(): number;
+    set initialVelocity(val: number);
+    get spring_params(): SpringParams;
+    set spring_params(val: SpringParams);
+    get springParams(): SpringParams;
+    set springParams(val: SpringParams);
+    get value_from(): number;
+    set value_from(val: number);
+    get valueFrom(): number;
+    set valueFrom(val: number);
+    get value_to(): number;
+    set value_to(val: number);
+    get valueTo(): number;
+    set valueTo(val: number);
+    get velocity(): number;
+
+    // Constructors
+
+    static ["new"](
+        widget: Gtk.Widget,
+        from: number,
+        to: number,
+        spring_params: SpringParams,
+        target: AnimationTarget
+    ): SpringAnimation;
+
+    // Members
+
+    get_clamp(): boolean;
+    get_epsilon(): number;
+    get_estimated_duration(): number;
+    get_initial_velocity(): number;
+    get_spring_params(): SpringParams;
+    get_value_from(): number;
+    get_value_to(): number;
+    get_velocity(): number;
+    set_clamp(clamp: boolean): void;
+    set_epsilon(epsilon: number): void;
+    set_initial_velocity(velocity: number): void;
+    set_spring_params(spring_params: SpringParams): void;
+    set_value_from(value: number): void;
+    set_value_to(value: number): void;
+}
+export module Squeezer {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        allow_none: boolean;
+        allowNone: boolean;
+        homogeneous: boolean;
+        interpolate_size: boolean;
+        interpolateSize: boolean;
+        pages: Gtk.SelectionModel;
+        switch_threshold_policy: FoldThresholdPolicy;
+        switchThresholdPolicy: FoldThresholdPolicy;
+        transition_duration: number;
+        transitionDuration: number;
+        transition_running: boolean;
+        transitionRunning: boolean;
+        transition_type: SqueezerTransitionType;
+        transitionType: SqueezerTransitionType;
+        visible_child: Gtk.Widget;
+        visibleChild: Gtk.Widget;
+        xalign: number;
+        yalign: number;
+    }
+}
+export class Squeezer
+    extends Gtk.Widget
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable
+{
+    static $gtype: GObject.GType<Squeezer>;
+
+    constructor(properties?: Partial<Squeezer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Squeezer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get allow_none(): boolean;
+    set allow_none(val: boolean);
+    get allowNone(): boolean;
+    set allowNone(val: boolean);
+    get homogeneous(): boolean;
+    set homogeneous(val: boolean);
+    get interpolate_size(): boolean;
+    set interpolate_size(val: boolean);
+    get interpolateSize(): boolean;
+    set interpolateSize(val: boolean);
+    get pages(): Gtk.SelectionModel;
+    get switch_threshold_policy(): FoldThresholdPolicy;
+    set switch_threshold_policy(val: FoldThresholdPolicy);
+    get switchThresholdPolicy(): FoldThresholdPolicy;
+    set switchThresholdPolicy(val: FoldThresholdPolicy);
+    get transition_duration(): number;
+    set transition_duration(val: number);
+    get transitionDuration(): number;
+    set transitionDuration(val: number);
+    get transition_running(): boolean;
+    get transitionRunning(): boolean;
+    get transition_type(): SqueezerTransitionType;
+    set transition_type(val: SqueezerTransitionType);
+    get transitionType(): SqueezerTransitionType;
+    set transitionType(val: SqueezerTransitionType);
+    get visible_child(): Gtk.Widget;
+    get visibleChild(): Gtk.Widget;
+    get xalign(): number;
+    set xalign(val: number);
+    get yalign(): number;
+    set yalign(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](): Squeezer;
+
+    // Members
+
+    add(child: Gtk.Widget): SqueezerPage;
+    get_allow_none(): boolean;
+    get_homogeneous(): boolean;
+    get_interpolate_size(): boolean;
+    get_page(child: Gtk.Widget): SqueezerPage;
+    get_pages(): Gtk.SelectionModel;
+    get_switch_threshold_policy(): FoldThresholdPolicy;
+    get_transition_duration(): number;
+    get_transition_running(): boolean;
+    get_transition_type(): SqueezerTransitionType;
+    get_visible_child(): Gtk.Widget | null;
+    get_xalign(): number;
+    get_yalign(): number;
+    remove(child: Gtk.Widget): void;
+    set_allow_none(allow_none: boolean): void;
+    set_homogeneous(homogeneous: boolean): void;
+    set_interpolate_size(interpolate_size: boolean): void;
+    set_switch_threshold_policy(policy: FoldThresholdPolicy): void;
+    set_transition_duration(duration: number): void;
+    set_transition_type(transition: SqueezerTransitionType): void;
+    set_xalign(xalign: number): void;
+    set_yalign(yalign: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module SqueezerPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        enabled: boolean;
+    }
+}
+export class SqueezerPage extends GObject.Object {
+    static $gtype: GObject.GType<SqueezerPage>;
+
+    constructor(properties?: Partial<SqueezerPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SqueezerPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    get enabled(): boolean;
+    set enabled(val: boolean);
+
+    // Members
+
+    get_child(): Gtk.Widget;
+    get_enabled(): boolean;
+    set_enabled(enabled: boolean): void;
+}
+export module StatusPage {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        description: string;
+        icon_name: string;
+        iconName: string;
+        paintable: Gdk.Paintable;
+        title: string;
+    }
+}
+export class StatusPage extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<StatusPage>;
+
+    constructor(properties?: Partial<StatusPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StatusPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    set child(val: Gtk.Widget);
+    get description(): string;
+    set description(val: string);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get paintable(): Gdk.Paintable;
+    set paintable(val: Gdk.Paintable);
+    get title(): string;
+    set title(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): StatusPage;
+
+    // Members
+
+    get_child(): Gtk.Widget | null;
+    get_description(): string | null;
+    get_icon_name(): string | null;
+    get_paintable(): Gdk.Paintable | null;
+    get_title(): string;
+    set_child(child?: Gtk.Widget | null): void;
+    set_description(description?: string | null): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_paintable(paintable?: Gdk.Paintable | null): void;
+    set_title(title: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module StyleManager {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        color_scheme: ColorScheme;
+        colorScheme: ColorScheme;
+        dark: boolean;
+        display: Gdk.Display;
+        high_contrast: boolean;
+        highContrast: boolean;
+        system_supports_color_schemes: boolean;
+        systemSupportsColorSchemes: boolean;
+    }
+}
+export class StyleManager extends GObject.Object {
+    static $gtype: GObject.GType<StyleManager>;
+
+    constructor(properties?: Partial<StyleManager.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StyleManager.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get color_scheme(): ColorScheme;
+    set color_scheme(val: ColorScheme);
+    get colorScheme(): ColorScheme;
+    set colorScheme(val: ColorScheme);
+    get dark(): boolean;
+    get display(): Gdk.Display;
+    get high_contrast(): boolean;
+    get highContrast(): boolean;
+    get system_supports_color_schemes(): boolean;
+    get systemSupportsColorSchemes(): boolean;
+
+    // Members
+
+    get_color_scheme(): ColorScheme;
+    get_dark(): boolean;
+    get_display(): Gdk.Display;
+    get_high_contrast(): boolean;
+    get_system_supports_color_schemes(): boolean;
+    set_color_scheme(color_scheme: ColorScheme): void;
+    static get_default(): StyleManager;
+    static get_for_display(display: Gdk.Display): StyleManager;
+}
+export module SwipeTracker {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        allow_long_swipes: boolean;
+        allowLongSwipes: boolean;
+        allow_mouse_drag: boolean;
+        allowMouseDrag: boolean;
+        enabled: boolean;
+        reversed: boolean;
+        swipeable: Swipeable;
+    }
+}
+export class SwipeTracker extends GObject.Object implements Gtk.Orientable {
+    static $gtype: GObject.GType<SwipeTracker>;
+
+    constructor(properties?: Partial<SwipeTracker.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SwipeTracker.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get allow_long_swipes(): boolean;
+    set allow_long_swipes(val: boolean);
+    get allowLongSwipes(): boolean;
+    set allowLongSwipes(val: boolean);
+    get allow_mouse_drag(): boolean;
+    set allow_mouse_drag(val: boolean);
+    get allowMouseDrag(): boolean;
+    set allowMouseDrag(val: boolean);
+    get enabled(): boolean;
+    set enabled(val: boolean);
+    get reversed(): boolean;
+    set reversed(val: boolean);
+    get swipeable(): Swipeable;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "begin-swipe", callback: (_source: this) => void): number;
+    connect_after(signal: "begin-swipe", callback: (_source: this) => void): number;
+    emit(signal: "begin-swipe"): void;
+    connect(signal: "end-swipe", callback: (_source: this, velocity: number, to: number) => void): number;
+    connect_after(signal: "end-swipe", callback: (_source: this, velocity: number, to: number) => void): 
number;
+    emit(signal: "end-swipe", velocity: number, to: number): void;
+    connect(signal: "prepare", callback: (_source: this, direction: NavigationDirection) => void): number;
+    connect_after(signal: "prepare", callback: (_source: this, direction: NavigationDirection) => void): 
number;
+    emit(signal: "prepare", direction: NavigationDirection): void;
+    connect(signal: "update-swipe", callback: (_source: this, progress: number) => void): number;
+    connect_after(signal: "update-swipe", callback: (_source: this, progress: number) => void): number;
+    emit(signal: "update-swipe", progress: number): void;
+
+    // Implemented Properties
+
+    get orientation(): Gtk.Orientation;
+    set orientation(val: Gtk.Orientation);
+
+    // Constructors
+
+    static ["new"](swipeable: Swipeable): SwipeTracker;
+
+    // Members
+
+    get_allow_long_swipes(): boolean;
+    get_allow_mouse_drag(): boolean;
+    get_enabled(): boolean;
+    get_reversed(): boolean;
+    get_swipeable(): Swipeable;
+    set_allow_long_swipes(allow_long_swipes: boolean): void;
+    set_allow_mouse_drag(allow_mouse_drag: boolean): void;
+    set_enabled(enabled: boolean): void;
+    set_reversed(reversed: boolean): void;
+    shift_position(delta: number): void;
+
+    // Implemented Members
+
+    get_orientation(): Gtk.Orientation;
+    set_orientation(orientation: Gtk.Orientation): void;
+}
+export module TabBar {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        autohide: boolean;
+        end_action_widget: Gtk.Widget;
+        endActionWidget: Gtk.Widget;
+        expand_tabs: boolean;
+        expandTabs: boolean;
+        inverted: boolean;
+        is_overflowing: boolean;
+        isOverflowing: boolean;
+        start_action_widget: Gtk.Widget;
+        startActionWidget: Gtk.Widget;
+        tabs_revealed: boolean;
+        tabsRevealed: boolean;
+        view: TabView;
+    }
+}
+export class TabBar extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<TabBar>;
+
+    constructor(properties?: Partial<TabBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TabBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get autohide(): boolean;
+    set autohide(val: boolean);
+    get end_action_widget(): Gtk.Widget;
+    set end_action_widget(val: Gtk.Widget);
+    get endActionWidget(): Gtk.Widget;
+    set endActionWidget(val: Gtk.Widget);
+    get expand_tabs(): boolean;
+    set expand_tabs(val: boolean);
+    get expandTabs(): boolean;
+    set expandTabs(val: boolean);
+    get inverted(): boolean;
+    set inverted(val: boolean);
+    get is_overflowing(): boolean;
+    get isOverflowing(): boolean;
+    get start_action_widget(): Gtk.Widget;
+    set start_action_widget(val: Gtk.Widget);
+    get startActionWidget(): Gtk.Widget;
+    set startActionWidget(val: Gtk.Widget);
+    get tabs_revealed(): boolean;
+    get tabsRevealed(): boolean;
+    get view(): TabView;
+    set view(val: TabView);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "extra-drag-drop",
+        callback: (_source: this, page: TabPage, value: GObject.Value) => boolean
+    ): number;
+    connect_after(
+        signal: "extra-drag-drop",
+        callback: (_source: this, page: TabPage, value: GObject.Value) => boolean
+    ): number;
+    emit(signal: "extra-drag-drop", page: TabPage, value: GObject.Value | any): void;
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): TabBar;
+
+    // Members
+
+    get_autohide(): boolean;
+    get_end_action_widget(): Gtk.Widget | null;
+    get_expand_tabs(): boolean;
+    get_inverted(): boolean;
+    get_is_overflowing(): boolean;
+    get_start_action_widget(): Gtk.Widget | null;
+    get_tabs_revealed(): boolean;
+    get_view(): TabView | null;
+    set_autohide(autohide: boolean): void;
+    set_end_action_widget(widget?: Gtk.Widget | null): void;
+    set_expand_tabs(expand_tabs: boolean): void;
+    set_inverted(inverted: boolean): void;
+    set_start_action_widget(widget?: Gtk.Widget | null): void;
+    set_view(view?: TabView | null): void;
+    setup_extra_drop_target(actions: Gdk.DragAction, types?: GObject.GType[] | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module TabPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+        icon: Gio.Icon;
+        indicator_activatable: boolean;
+        indicatorActivatable: boolean;
+        indicator_icon: Gio.Icon;
+        indicatorIcon: Gio.Icon;
+        loading: boolean;
+        needs_attention: boolean;
+        needsAttention: boolean;
+        pinned: boolean;
+        selected: boolean;
+        title: string;
+        tooltip: string;
+    }
+}
+export class TabPage extends GObject.Object {
+    static $gtype: GObject.GType<TabPage>;
+
+    constructor(properties?: Partial<TabPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TabPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    get icon(): Gio.Icon;
+    set icon(val: Gio.Icon);
+    get indicator_activatable(): boolean;
+    set indicator_activatable(val: boolean);
+    get indicatorActivatable(): boolean;
+    set indicatorActivatable(val: boolean);
+    get indicator_icon(): Gio.Icon;
+    set indicator_icon(val: Gio.Icon);
+    get indicatorIcon(): Gio.Icon;
+    set indicatorIcon(val: Gio.Icon);
+    get loading(): boolean;
+    set loading(val: boolean);
+    get needs_attention(): boolean;
+    set needs_attention(val: boolean);
+    get needsAttention(): boolean;
+    set needsAttention(val: boolean);
+    get pinned(): boolean;
+    get selected(): boolean;
+    get title(): string;
+    set title(val: string);
+    get tooltip(): string;
+    set tooltip(val: string);
+
+    // Members
+
+    get_child(): Gtk.Widget;
+    get_icon(): Gio.Icon | null;
+    get_indicator_activatable(): boolean;
+    get_indicator_icon(): Gio.Icon | null;
+    get_loading(): boolean;
+    get_needs_attention(): boolean;
+    get_parent(): TabPage | null;
+    get_pinned(): boolean;
+    get_selected(): boolean;
+    get_title(): string;
+    get_tooltip(): string | null;
+    set_icon(icon?: Gio.Icon | null): void;
+    set_indicator_activatable(activatable: boolean): void;
+    set_indicator_icon(indicator_icon?: Gio.Icon | null): void;
+    set_loading(loading: boolean): void;
+    set_needs_attention(needs_attention: boolean): void;
+    set_title(title: string): void;
+    set_tooltip(tooltip: string): void;
+}
+export module TabView {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        default_icon: Gio.Icon;
+        defaultIcon: Gio.Icon;
+        is_transferring_page: boolean;
+        isTransferringPage: boolean;
+        menu_model: Gio.MenuModel;
+        menuModel: Gio.MenuModel;
+        n_pages: number;
+        nPages: number;
+        n_pinned_pages: number;
+        nPinnedPages: number;
+        pages: Gtk.SelectionModel;
+        selected_page: TabPage;
+        selectedPage: TabPage;
+    }
+}
+export class TabView extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<TabView>;
+
+    constructor(properties?: Partial<TabView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TabView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get default_icon(): Gio.Icon;
+    set default_icon(val: Gio.Icon);
+    get defaultIcon(): Gio.Icon;
+    set defaultIcon(val: Gio.Icon);
+    get is_transferring_page(): boolean;
+    get isTransferringPage(): boolean;
+    get menu_model(): Gio.MenuModel;
+    set menu_model(val: Gio.MenuModel);
+    get menuModel(): Gio.MenuModel;
+    set menuModel(val: Gio.MenuModel);
+    get n_pages(): number;
+    get nPages(): number;
+    get n_pinned_pages(): number;
+    get nPinnedPages(): number;
+    get pages(): Gtk.SelectionModel;
+    get selected_page(): TabPage;
+    set selected_page(val: TabPage);
+    get selectedPage(): TabPage;
+    set selectedPage(val: TabPage);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "close-page", callback: (_source: this, page: TabPage) => boolean): number;
+    connect_after(signal: "close-page", callback: (_source: this, page: TabPage) => boolean): number;
+    emit(signal: "close-page", page: TabPage): void;
+    connect(signal: "create-window", callback: (_source: this) => TabView | null): number;
+    connect_after(signal: "create-window", callback: (_source: this) => TabView | null): number;
+    emit(signal: "create-window"): void;
+    connect(signal: "indicator-activated", callback: (_source: this, page: TabPage) => void): number;
+    connect_after(signal: "indicator-activated", callback: (_source: this, page: TabPage) => void): number;
+    emit(signal: "indicator-activated", page: TabPage): void;
+    connect(signal: "page-attached", callback: (_source: this, page: TabPage, position: number) => void): 
number;
+    connect_after(signal: "page-attached", callback: (_source: this, page: TabPage, position: number) => 
void): number;
+    emit(signal: "page-attached", page: TabPage, position: number): void;
+    connect(signal: "page-detached", callback: (_source: this, page: TabPage, position: number) => void): 
number;
+    connect_after(signal: "page-detached", callback: (_source: this, page: TabPage, position: number) => 
void): number;
+    emit(signal: "page-detached", page: TabPage, position: number): void;
+    connect(signal: "page-reordered", callback: (_source: this, page: TabPage, position: number) => void): 
number;
+    connect_after(signal: "page-reordered", callback: (_source: this, page: TabPage, position: number) => 
void): number;
+    emit(signal: "page-reordered", page: TabPage, position: number): void;
+    connect(signal: "setup-menu", callback: (_source: this, page: TabPage | null) => void): number;
+    connect_after(signal: "setup-menu", callback: (_source: this, page: TabPage | null) => void): number;
+    emit(signal: "setup-menu", page: TabPage | null): void;
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): TabView;
+
+    // Members
+
+    add_page(child: Gtk.Widget, parent?: TabPage | null): TabPage;
+    append(child: Gtk.Widget): TabPage;
+    append_pinned(child: Gtk.Widget): TabPage;
+    close_other_pages(page: TabPage): void;
+    close_page(page: TabPage): void;
+    close_page_finish(page: TabPage, confirm: boolean): void;
+    close_pages_after(page: TabPage): void;
+    close_pages_before(page: TabPage): void;
+    get_default_icon(): Gio.Icon;
+    get_is_transferring_page(): boolean;
+    get_menu_model(): Gio.MenuModel | null;
+    get_n_pages(): number;
+    get_n_pinned_pages(): number;
+    get_nth_page(position: number): TabPage;
+    get_page(child: Gtk.Widget): TabPage;
+    get_page_position(page: TabPage): number;
+    get_pages(): Gtk.SelectionModel;
+    get_selected_page(): TabPage | null;
+    insert(child: Gtk.Widget, position: number): TabPage;
+    insert_pinned(child: Gtk.Widget, position: number): TabPage;
+    prepend(child: Gtk.Widget): TabPage;
+    prepend_pinned(child: Gtk.Widget): TabPage;
+    reorder_backward(page: TabPage): boolean;
+    reorder_first(page: TabPage): boolean;
+    reorder_forward(page: TabPage): boolean;
+    reorder_last(page: TabPage): boolean;
+    reorder_page(page: TabPage, position: number): boolean;
+    select_next_page(): boolean;
+    select_previous_page(): boolean;
+    set_default_icon(default_icon: Gio.Icon): void;
+    set_menu_model(menu_model?: Gio.MenuModel | null): void;
+    set_page_pinned(page: TabPage, pinned: boolean): void;
+    set_selected_page(selected_page: TabPage): void;
+    transfer_page(page: TabPage, other_view: TabView, position: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module TimedAnimation {
+    export interface ConstructorProperties extends Animation.ConstructorProperties {
+        [key: string]: any;
+        alternate: boolean;
+        duration: number;
+        easing: Easing;
+        repeat_count: number;
+        repeatCount: number;
+        reverse: boolean;
+        value_from: number;
+        valueFrom: number;
+        value_to: number;
+        valueTo: number;
+    }
+}
+export class TimedAnimation extends Animation {
+    static $gtype: GObject.GType<TimedAnimation>;
+
+    constructor(properties?: Partial<TimedAnimation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TimedAnimation.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get alternate(): boolean;
+    set alternate(val: boolean);
+    get duration(): number;
+    set duration(val: number);
+    get easing(): Easing;
+    set easing(val: Easing);
+    get repeat_count(): number;
+    set repeat_count(val: number);
+    get repeatCount(): number;
+    set repeatCount(val: number);
+    get reverse(): boolean;
+    set reverse(val: boolean);
+    get value_from(): number;
+    set value_from(val: number);
+    get valueFrom(): number;
+    set valueFrom(val: number);
+    get value_to(): number;
+    set value_to(val: number);
+    get valueTo(): number;
+    set valueTo(val: number);
+
+    // Constructors
+
+    static ["new"](
+        widget: Gtk.Widget,
+        from: number,
+        to: number,
+        duration: number,
+        target: AnimationTarget
+    ): TimedAnimation;
+
+    // Members
+
+    get_alternate(): boolean;
+    get_duration(): number;
+    get_easing(): Easing;
+    get_repeat_count(): number;
+    get_reverse(): boolean;
+    get_value_from(): number;
+    get_value_to(): number;
+    set_alternate(alternate: boolean): void;
+    set_duration(duration: number): void;
+    set_easing(easing: Easing): void;
+    set_repeat_count(repeat_count: number): void;
+    set_reverse(reverse: boolean): void;
+    set_value_from(value: number): void;
+    set_value_to(value: number): void;
+}
+export module Toast {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        action_name: string;
+        actionName: string;
+        action_target: GLib.Variant;
+        actionTarget: GLib.Variant;
+        button_label: string;
+        buttonLabel: string;
+        custom_title: Gtk.Widget;
+        customTitle: Gtk.Widget;
+        priority: ToastPriority;
+        timeout: number;
+        title: string;
+    }
+}
+export class Toast extends GObject.Object {
+    static $gtype: GObject.GType<Toast>;
+
+    constructor(properties?: Partial<Toast.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Toast.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+    get button_label(): string;
+    set button_label(val: string);
+    get buttonLabel(): string;
+    set buttonLabel(val: string);
+    get custom_title(): Gtk.Widget;
+    set custom_title(val: Gtk.Widget);
+    get customTitle(): Gtk.Widget;
+    set customTitle(val: Gtk.Widget);
+    get priority(): ToastPriority;
+    set priority(val: ToastPriority);
+    get timeout(): number;
+    set timeout(val: number);
+    get title(): string;
+    set title(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "dismissed", callback: (_source: this) => void): number;
+    connect_after(signal: "dismissed", callback: (_source: this) => void): number;
+    emit(signal: "dismissed"): void;
+
+    // Constructors
+
+    static ["new"](title: string): Toast;
+
+    // Members
+
+    dismiss(): void;
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    get_button_label(): string | null;
+    get_custom_title(): Gtk.Widget | null;
+    get_priority(): ToastPriority;
+    get_timeout(): number;
+    get_title(): string | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(action_target?: GLib.Variant | null): void;
+    set_button_label(button_label?: string | null): void;
+    set_custom_title(widget?: Gtk.Widget | null): void;
+    set_detailed_action_name(detailed_action_name?: string | null): void;
+    set_priority(priority: ToastPriority): void;
+    set_timeout(timeout: number): void;
+    set_title(title: string): void;
+}
+export module ToastOverlay {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Gtk.Widget;
+    }
+}
+export class ToastOverlay extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<ToastOverlay>;
+
+    constructor(properties?: Partial<ToastOverlay.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ToastOverlay.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Gtk.Widget;
+    set child(val: Gtk.Widget);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ToastOverlay;
+
+    // Members
+
+    add_toast(toast: Toast): void;
+    get_child(): Gtk.Widget | null;
+    set_child(child?: Gtk.Widget | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ViewStack {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        hhomogeneous: boolean;
+        pages: Gtk.SelectionModel;
+        vhomogeneous: boolean;
+        visible_child: Gtk.Widget;
+        visibleChild: Gtk.Widget;
+        visible_child_name: string;
+        visibleChildName: string;
+    }
+}
+export class ViewStack extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<ViewStack>;
+
+    constructor(properties?: Partial<ViewStack.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ViewStack.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get hhomogeneous(): boolean;
+    set hhomogeneous(val: boolean);
+    get pages(): Gtk.SelectionModel;
+    get vhomogeneous(): boolean;
+    set vhomogeneous(val: boolean);
+    get visible_child(): Gtk.Widget;
+    set visible_child(val: Gtk.Widget);
+    get visibleChild(): Gtk.Widget;
+    set visibleChild(val: Gtk.Widget);
+    get visible_child_name(): string;
+    set visible_child_name(val: string);
+    get visibleChildName(): string;
+    set visibleChildName(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ViewStack;
+
+    // Members
+
+    add(child: Gtk.Widget): ViewStackPage;
+    add_named(child: Gtk.Widget, name?: string | null): ViewStackPage;
+    add_titled(child: Gtk.Widget, name: string | null, title: string): ViewStackPage;
+    get_child_by_name(name: string): Gtk.Widget | null;
+    get_hhomogeneous(): boolean;
+    get_page(child: Gtk.Widget): ViewStackPage;
+    get_pages(): Gtk.SelectionModel;
+    get_vhomogeneous(): boolean;
+    get_visible_child(): Gtk.Widget | null;
+    get_visible_child_name(): string | null;
+    remove(child: Gtk.Widget): void;
+    set_hhomogeneous(hhomogeneous: boolean): void;
+    set_vhomogeneous(vhomogeneous: boolean): void;
+    set_visible_child(child: Gtk.Widget): void;
+    set_visible_child_name(name: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ViewStackPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        badge_number: number;
+        badgeNumber: number;
+        child: Gtk.Widget;
+        icon_name: string;
+        iconName: string;
+        name: string;
+        needs_attention: boolean;
+        needsAttention: boolean;
+        title: string;
+        use_underline: boolean;
+        useUnderline: boolean;
+        visible: boolean;
+    }
+}
+export class ViewStackPage extends GObject.Object {
+    static $gtype: GObject.GType<ViewStackPage>;
+
+    constructor(properties?: Partial<ViewStackPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ViewStackPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get badge_number(): number;
+    set badge_number(val: number);
+    get badgeNumber(): number;
+    set badgeNumber(val: number);
+    get child(): Gtk.Widget;
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get name(): string;
+    set name(val: string);
+    get needs_attention(): boolean;
+    set needs_attention(val: boolean);
+    get needsAttention(): boolean;
+    set needsAttention(val: boolean);
+    get title(): string;
+    set title(val: string);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+    get visible(): boolean;
+    set visible(val: boolean);
+
+    // Members
+
+    get_badge_number(): number;
+    get_child(): Gtk.Widget;
+    get_icon_name(): string | null;
+    get_name(): string | null;
+    get_needs_attention(): boolean;
+    get_title(): string | null;
+    get_use_underline(): boolean;
+    get_visible(): boolean;
+    set_badge_number(badge_number: number): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_name(name?: string | null): void;
+    set_needs_attention(needs_attention: boolean): void;
+    set_title(title?: string | null): void;
+    set_use_underline(use_underline: boolean): void;
+    set_visible(visible: boolean): void;
+}
+export module ViewSwitcher {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        policy: ViewSwitcherPolicy;
+        stack: ViewStack;
+    }
+}
+export class ViewSwitcher extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<ViewSwitcher>;
+
+    constructor(properties?: Partial<ViewSwitcher.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ViewSwitcher.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get policy(): ViewSwitcherPolicy;
+    set policy(val: ViewSwitcherPolicy);
+    get stack(): ViewStack;
+    set stack(val: ViewStack);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ViewSwitcher;
+
+    // Members
+
+    get_policy(): ViewSwitcherPolicy;
+    get_stack(): ViewStack | null;
+    set_policy(policy: ViewSwitcherPolicy): void;
+    set_stack(stack?: ViewStack | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ViewSwitcherBar {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        reveal: boolean;
+        stack: ViewStack;
+    }
+}
+export class ViewSwitcherBar extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, 
Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<ViewSwitcherBar>;
+
+    constructor(properties?: Partial<ViewSwitcherBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ViewSwitcherBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get reveal(): boolean;
+    set reveal(val: boolean);
+    get stack(): ViewStack;
+    set stack(val: ViewStack);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ViewSwitcherBar;
+
+    // Members
+
+    get_reveal(): boolean;
+    get_stack(): ViewStack | null;
+    set_reveal(reveal: boolean): void;
+    set_stack(stack?: ViewStack | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ViewSwitcherTitle {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        stack: ViewStack;
+        subtitle: string;
+        title: string;
+        title_visible: boolean;
+        titleVisible: boolean;
+        view_switcher_enabled: boolean;
+        viewSwitcherEnabled: boolean;
+    }
+}
+export class ViewSwitcherTitle extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, 
Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<ViewSwitcherTitle>;
+
+    constructor(properties?: Partial<ViewSwitcherTitle.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ViewSwitcherTitle.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get stack(): ViewStack;
+    set stack(val: ViewStack);
+    get subtitle(): string;
+    set subtitle(val: string);
+    get title(): string;
+    set title(val: string);
+    get title_visible(): boolean;
+    get titleVisible(): boolean;
+    get view_switcher_enabled(): boolean;
+    set view_switcher_enabled(val: boolean);
+    get viewSwitcherEnabled(): boolean;
+    set viewSwitcherEnabled(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ViewSwitcherTitle;
+
+    // Members
+
+    get_stack(): ViewStack | null;
+    get_subtitle(): string;
+    get_title(): string;
+    get_title_visible(): boolean;
+    get_view_switcher_enabled(): boolean;
+    set_stack(stack?: ViewStack | null): void;
+    set_subtitle(subtitle: string): void;
+    set_title(title: string): void;
+    set_view_switcher_enabled(enabled: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Window {
+    export interface ConstructorProperties extends Gtk.Window.ConstructorProperties {
+        [key: string]: any;
+        content: Gtk.Widget;
+    }
+}
+export class Window
+    extends Gtk.Window
+    implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager
+{
+    static $gtype: GObject.GType<Window>;
+
+    constructor(properties?: Partial<Window.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Window.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get content(): Gtk.Widget;
+    set content(val: Gtk.Widget);
+
+    // Constructors
+
+    static ["new"](): Window;
+
+    // Members
+
+    get_content(): Gtk.Widget | null;
+    set_content(content?: Gtk.Widget | null): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Gtk.Widget | null;
+    set_focus(focus?: Gtk.Widget | null): void;
+    vfunc_add_controller(controller: Gtk.ShortcutController): void;
+    vfunc_remove_controller(controller: Gtk.ShortcutController): void;
+}
+export module WindowTitle {
+    export interface ConstructorProperties extends Gtk.Widget.ConstructorProperties {
+        [key: string]: any;
+        subtitle: string;
+        title: string;
+    }
+}
+export class WindowTitle extends Gtk.Widget implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
+    static $gtype: GObject.GType<WindowTitle>;
+
+    constructor(properties?: Partial<WindowTitle.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<WindowTitle.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get subtitle(): string;
+    set subtitle(val: string);
+    get title(): string;
+    set title(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): Gtk.AccessibleRole;
+    set accessible_role(val: Gtk.AccessibleRole);
+    get accessibleRole(): Gtk.AccessibleRole;
+    set accessibleRole(val: Gtk.AccessibleRole);
+
+    // Constructors
+
+    static ["new"](title: string, subtitle: string): WindowTitle;
+
+    // Members
+
+    get_subtitle(): string;
+    get_title(): string;
+    set_subtitle(subtitle: string): void;
+    set_title(title: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): Gtk.AccessibleRole;
+    reset_property(property: Gtk.AccessibleProperty): void;
+    reset_relation(relation: Gtk.AccessibleRelation): void;
+    reset_state(state: Gtk.AccessibleState): void;
+    update_property(properties: Gtk.AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: Gtk.AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: Gtk.AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Gtk.Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Gtk.Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Gtk.Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, Gtk.BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Gtk.Builder, childname: string): T;
+    vfunc_parser_finished(builder: Gtk.Builder): void;
+    vfunc_set_buildable_property(builder: Gtk.Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+
+export class SpringParams {
+    static $gtype: GObject.GType<SpringParams>;
+
+    constructor(damping_ratio: number, mass: number, stiffness: number);
+    constructor(copy: SpringParams);
+
+    // Constructors
+    static ["new"](damping_ratio: number, mass: number, stiffness: number): SpringParams;
+    static new_full(damping: number, mass: number, stiffness: number): SpringParams;
+
+    // Members
+    get_damping(): number;
+    get_damping_ratio(): number;
+    get_mass(): number;
+    get_stiffness(): number;
+    ref(): SpringParams;
+    unref(): void;
+}
+
+export interface SwipeableNamespace {
+    $gtype: GObject.GType<Swipeable>;
+    prototype: SwipeablePrototype;
+}
+export type Swipeable = SwipeablePrototype;
+export interface SwipeablePrototype extends Gtk.Widget {
+    // Members
+
+    get_cancel_progress(): number;
+    get_distance(): number;
+    get_progress(): number;
+    get_snap_points(): number[];
+    get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+    vfunc_get_cancel_progress(): number;
+    vfunc_get_distance(): number;
+    vfunc_get_progress(): number;
+    vfunc_get_snap_points(): number[];
+    vfunc_get_swipe_area(navigation_direction: NavigationDirection, is_drag: boolean): Gdk.Rectangle;
+}
+
+export const Swipeable: SwipeableNamespace;
diff --git a/types/ambient.d.ts b/types/ambient.d.ts
new file mode 100644
index 0000000..29b03ff
--- /dev/null
+++ b/types/ambient.d.ts
@@ -0,0 +1,44 @@
+/// <reference path="./gtk.d.ts" />
+
+declare function _(id: string): string;
+declare const pkg: {
+  version: string;
+  name: string;
+};
+
+declare module "gi://GObject" {
+  export * as default from "gobject";
+}
+declare module "gi://GLib" {
+  export * as default from "glib";
+}
+declare module "gi://Gio" {
+  export * as default from "gio";
+}
+declare module "gi://Gdk" {
+  export * as default from "gdk";
+}
+declare module "gi://Gdk?version=4.0" {
+  export * as default from "gdk";
+}
+declare module "gi://Gtk" {
+  export * as default from "gtk";
+}
+declare module "gi://Gtk?version=4.0" {
+  export * as default from "gtk";
+}
+declare module "gi://Adw" {
+  export * as default from "adw";
+}
+declare module "gi://Gst" {
+  export * as default from "gst";
+}
+declare module "gi://GstAudio" {
+  export * as default from "gstaudio";
+}
+declare module "gi://GstPbutils" {
+  export * as default from "gstpbutils";
+}
+declare module "gi://GstPlayer" {
+  export * as default from "gstplayer";
+}
\ No newline at end of file
diff --git a/types/cairo.d.ts b/types/cairo.d.ts
new file mode 100644
index 0000000..5ad85f3
--- /dev/null
+++ b/types/cairo.d.ts
@@ -0,0 +1,437 @@
+/**
+ * cairo 1.0
+ *
+ * Generated from 1.0
+ */
+
+import * as GObject from "gobject";
+
+export function image_surface_create(): void;
+
+export namespace Status {
+    export const $gtype: GObject.GType<Status>;
+}
+
+export enum Status {
+    SUCCESS = 0,
+    NO_MEMORY = 1,
+    INVALID_RESTORE = 2,
+    INVALID_POP_GROUP = 3,
+    NO_CURRENT_POINT = 4,
+    INVALID_MATRIX = 5,
+    INVALID_STATUS = 6,
+    NULL_POINTER = 7,
+    INVALID_STRING = 8,
+    INVALID_PATH_DATA = 9,
+    READ_ERROR = 10,
+    WRITE_ERROR = 11,
+    SURFACE_FINISHED = 12,
+    SURFACE_TYPE_MISMATCH = 13,
+    PATTERN_TYPE_MISMATCH = 14,
+    INVALID_CONTENT = 15,
+    INVALID_FORMAT = 16,
+    INVALID_VISUAL = 17,
+    FILE_NOT_FOUND = 18,
+    INVALID_DASH = 19,
+    INVALID_DSC_COMMENT = 20,
+    INVALID_INDEX = 21,
+    CLIP_NOT_REPRESENTABLE = 22,
+    TEMP_FILE_ERROR = 23,
+    INVALID_STRIDE = 24,
+    FONT_TYPE_MISMATCH = 25,
+    USER_FONT_IMMUTABLE = 26,
+    USER_FONT_ERROR = 27,
+    NEGATIVE_COUNT = 28,
+    INVALID_CLUSTERS = 29,
+    INVALID_SLANT = 30,
+    INVALID_WEIGHT = 31,
+    INVALID_SIZE = 32,
+    USER_FONT_NOT_IMPLEMENTED = 33,
+    DEVICE_TYPE_MISMATCH = 34,
+    DEVICE_ERROR = 35,
+    INVALID_MESH_CONSTRUCTION = 36,
+    DEVICE_FINISHED = 37,
+    JBIG2_GLOBAL_MISSING = 38,
+}
+
+export namespace Content {
+    export const $gtype: GObject.GType<Content>;
+}
+
+export enum Content {
+    COLOR = 4096,
+    ALPHA = 8192,
+    COLOR_ALPHA = 12288,
+}
+
+export namespace Operator {
+    export const $gtype: GObject.GType<Operator>;
+}
+
+export enum Operator {
+    CLEAR = 0,
+    SOURCE = 1,
+    OVER = 2,
+    IN = 3,
+    OUT = 4,
+    ATOP = 5,
+    DEST = 6,
+    DEST_OVER = 7,
+    DEST_IN = 8,
+    DEST_OUT = 9,
+    DEST_ATOP = 10,
+    XOR = 11,
+    ADD = 12,
+    SATURATE = 13,
+    MULTIPLY = 14,
+    SCREEN = 15,
+    OVERLAY = 16,
+    DARKEN = 17,
+    LIGHTEN = 18,
+    COLOR_DODGE = 19,
+    COLOR_BURN = 20,
+    HARD_LIGHT = 21,
+    SOFT_LIGHT = 22,
+    DIFFERENCE = 23,
+    EXCLUSION = 24,
+    HSL_HUE = 25,
+    HSL_SATURATION = 26,
+    HSL_COLOR = 27,
+    HSL_LUMINOSITY = 28,
+}
+
+export namespace Antialias {
+    export const $gtype: GObject.GType<Antialias>;
+}
+
+export enum Antialias {
+    DEFAULT = 0,
+    NONE = 1,
+    GRAY = 2,
+    SUBPIXEL = 3,
+    FAST = 4,
+    GOOD = 5,
+    BEST = 6,
+}
+
+export namespace FillRule {
+    export const $gtype: GObject.GType<FillRule>;
+}
+
+export enum FillRule {
+    WINDING = 0,
+    EVEN_ODD = 1,
+}
+
+export namespace LineCap {
+    export const $gtype: GObject.GType<LineCap>;
+}
+
+export enum LineCap {
+    BUTT = 0,
+    ROUND = 1,
+    SQUARE = 2,
+}
+
+export namespace LineJoin {
+    export const $gtype: GObject.GType<LineJoin>;
+}
+
+export enum LineJoin {
+    MITER = 0,
+    ROUND = 1,
+    BEVEL = 2,
+}
+
+export namespace TextClusterFlags {
+    export const $gtype: GObject.GType<TextClusterFlags>;
+}
+
+export enum TextClusterFlags {
+    BACKWARD = 1,
+}
+
+export namespace FontSlant {
+    export const $gtype: GObject.GType<FontSlant>;
+}
+
+export enum FontSlant {
+    NORMAL = 0,
+    ITALIC = 1,
+    OBLIQUE = 2,
+}
+
+export namespace FontWeight {
+    export const $gtype: GObject.GType<FontWeight>;
+}
+
+export enum FontWeight {
+    NORMAL = 0,
+    BOLD = 1,
+}
+
+export namespace SubpixelOrder {
+    export const $gtype: GObject.GType<SubpixelOrder>;
+}
+
+export enum SubpixelOrder {
+    DEFAULT = 0,
+    RGB = 1,
+    BGR = 2,
+    VRGB = 3,
+    VBGR = 4,
+}
+
+export namespace HintStyle {
+    export const $gtype: GObject.GType<HintStyle>;
+}
+
+export enum HintStyle {
+    DEFAULT = 0,
+    NONE = 1,
+    SLIGHT = 2,
+    MEDIUM = 3,
+    FULL = 4,
+}
+
+export namespace HintMetrics {
+    export const $gtype: GObject.GType<HintMetrics>;
+}
+
+export enum HintMetrics {
+    DEFAULT = 0,
+    OFF = 1,
+    ON = 2,
+}
+
+export namespace FontType {
+    export const $gtype: GObject.GType<FontType>;
+}
+
+export enum FontType {
+    TOY = 0,
+    FT = 1,
+    WIN32 = 2,
+    QUARTZ = 3,
+    USER = 4,
+}
+
+export namespace PathDataType {
+    export const $gtype: GObject.GType<PathDataType>;
+}
+
+export enum PathDataType {
+    MOVE_TO = 0,
+    LINE_TO = 1,
+    CURVE_TO = 2,
+    CLOSE_PATH = 3,
+}
+
+export namespace DeviceType {
+    export const $gtype: GObject.GType<DeviceType>;
+}
+
+export enum DeviceType {
+    DRM = 0,
+    GL = 1,
+    SCRIPT = 2,
+    XCB = 3,
+    XLIB = 4,
+    XML = 5,
+    COGL = 6,
+    WIN32 = 7,
+    INVALID = -1,
+}
+
+export namespace SurfaceType {
+    export const $gtype: GObject.GType<SurfaceType>;
+}
+
+export enum SurfaceType {
+    IMAGE = 0,
+    PDF = 1,
+    PS = 2,
+    XLIB = 3,
+    XCB = 4,
+    GLITZ = 5,
+    QUARTZ = 6,
+    WIN32 = 7,
+    BEOS = 8,
+    DIRECTFB = 9,
+    SVG = 10,
+    OS2 = 11,
+    WIN32_PRINTING = 12,
+    QUARTZ_IMAGE = 13,
+    SCRIPT = 14,
+    QT = 15,
+    RECORDING = 16,
+    VG = 17,
+    GL = 18,
+    DRM = 19,
+    TEE = 20,
+    XML = 21,
+    SKIA = 22,
+    SUBSURFACE = 23,
+    COGL = 24,
+}
+
+export namespace Format {
+    export const $gtype: GObject.GType<Format>;
+}
+
+export enum Format {
+    INVALID = -1,
+    ARGB32 = 0,
+    RGB24 = 1,
+    A8 = 2,
+    A1 = 3,
+    RGB16_565 = 4,
+    RGB30 = 5,
+}
+
+export namespace PatternType {
+    export const $gtype: GObject.GType<PatternType>;
+}
+
+export enum PatternType {
+    SOLID = 0,
+    SURFACE = 1,
+    LINEAR = 2,
+    RADIAL = 3,
+    MESH = 4,
+    RASTER_SOURCE = 5,
+}
+
+export namespace Extend {
+    export const $gtype: GObject.GType<Extend>;
+}
+
+export enum Extend {
+    NONE = 0,
+    REPEAT = 1,
+    REFLECT = 2,
+    PAD = 3,
+}
+
+export namespace Filter {
+    export const $gtype: GObject.GType<Filter>;
+}
+
+export enum Filter {
+    FAST = 0,
+    GOOD = 1,
+    BEST = 2,
+    NEAREST = 3,
+    BILINEAR = 4,
+    GAUSSIAN = 5,
+}
+
+export namespace RegionOverlap {
+    export const $gtype: GObject.GType<RegionOverlap>;
+}
+
+export enum RegionOverlap {
+    IN = 0,
+    OUT = 1,
+    PART = 2,
+}
+
+export class Context {
+    static $gtype: GObject.GType<Context>;
+
+    constructor(copy: Context);
+}
+
+export class Device {
+    static $gtype: GObject.GType<Device>;
+
+    constructor(copy: Device);
+}
+
+export class Surface {
+    static $gtype: GObject.GType<Surface>;
+
+    constructor(copy: Surface);
+}
+
+export class Matrix {
+    static $gtype: GObject.GType<Matrix>;
+
+    constructor(copy: Matrix);
+}
+
+export class Pattern {
+    static $gtype: GObject.GType<Pattern>;
+
+    constructor(copy: Pattern);
+}
+
+export class Region {
+    static $gtype: GObject.GType<Region>;
+
+    constructor(copy: Region);
+}
+
+export class FontOptions {
+    static $gtype: GObject.GType<FontOptions>;
+
+    constructor(copy: FontOptions);
+}
+
+export class FontFace {
+    static $gtype: GObject.GType<FontFace>;
+
+    constructor(copy: FontFace);
+}
+
+export class ScaledFont {
+    static $gtype: GObject.GType<ScaledFont>;
+
+    constructor(copy: ScaledFont);
+}
+
+export class Path {
+    static $gtype: GObject.GType<Path>;
+
+    constructor(copy: Path);
+}
+
+export class Rectangle {
+    static $gtype: GObject.GType<Rectangle>;
+
+    constructor(
+        properties?: Partial<{
+            x?: number;
+            y?: number;
+            width?: number;
+            height?: number;
+        }>
+    );
+    constructor(copy: Rectangle);
+
+    // Fields
+    x: number;
+    y: number;
+    width: number;
+    height: number;
+}
+
+export class RectangleInt {
+    static $gtype: GObject.GType<RectangleInt>;
+
+    constructor(
+        properties?: Partial<{
+            x?: number;
+            y?: number;
+            width?: number;
+            height?: number;
+        }>
+    );
+    constructor(copy: RectangleInt);
+
+    // Fields
+    x: number;
+    y: number;
+    width: number;
+    height: number;
+}
diff --git a/types/gdk.d.ts b/types/gdk.d.ts
new file mode 100644
index 0000000..d0aba66
--- /dev/null
+++ b/types/gdk.d.ts
@@ -0,0 +1,4637 @@
+/**
+ * Gdk 4.0
+ *
+ * Generated from 4.0
+ */
+
+import * as GObject from "gobject";
+import * as Gio from "gio";
+import * as cairo from "cairo";
+import * as GdkPixbuf from "gdkpixbuf";
+import * as GLib from "glib";
+import * as Pango from "pango";
+
+export const ACTION_ALL: number;
+export const BUTTON_MIDDLE: number;
+export const BUTTON_PRIMARY: number;
+export const BUTTON_SECONDARY: number;
+export const CURRENT_TIME: number;
+export const EVENT_PROPAGATE: boolean;
+export const EVENT_STOP: boolean;
+export const KEY_0: number;
+export const KEY_1: number;
+export const KEY_2: number;
+export const KEY_3: number;
+export const KEY_3270_AltCursor: number;
+export const KEY_3270_Attn: number;
+export const KEY_3270_BackTab: number;
+export const KEY_3270_ChangeScreen: number;
+export const KEY_3270_Copy: number;
+export const KEY_3270_CursorBlink: number;
+export const KEY_3270_CursorSelect: number;
+export const KEY_3270_DeleteWord: number;
+export const KEY_3270_Duplicate: number;
+export const KEY_3270_Enter: number;
+export const KEY_3270_EraseEOF: number;
+export const KEY_3270_EraseInput: number;
+export const KEY_3270_ExSelect: number;
+export const KEY_3270_FieldMark: number;
+export const KEY_3270_Ident: number;
+export const KEY_3270_Jump: number;
+export const KEY_3270_KeyClick: number;
+export const KEY_3270_Left2: number;
+export const KEY_3270_PA1: number;
+export const KEY_3270_PA2: number;
+export const KEY_3270_PA3: number;
+export const KEY_3270_Play: number;
+export const KEY_3270_PrintScreen: number;
+export const KEY_3270_Quit: number;
+export const KEY_3270_Record: number;
+export const KEY_3270_Reset: number;
+export const KEY_3270_Right2: number;
+export const KEY_3270_Rule: number;
+export const KEY_3270_Setup: number;
+export const KEY_3270_Test: number;
+export const KEY_4: number;
+export const KEY_5: number;
+export const KEY_6: number;
+export const KEY_7: number;
+export const KEY_8: number;
+export const KEY_9: number;
+export const KEY_A: number;
+export const KEY_AE: number;
+export const KEY_Aacute: number;
+export const KEY_Abelowdot: number;
+export const KEY_Abreve: number;
+export const KEY_Abreveacute: number;
+export const KEY_Abrevebelowdot: number;
+export const KEY_Abrevegrave: number;
+export const KEY_Abrevehook: number;
+export const KEY_Abrevetilde: number;
+export const KEY_AccessX_Enable: number;
+export const KEY_AccessX_Feedback_Enable: number;
+export const KEY_Acircumflex: number;
+export const KEY_Acircumflexacute: number;
+export const KEY_Acircumflexbelowdot: number;
+export const KEY_Acircumflexgrave: number;
+export const KEY_Acircumflexhook: number;
+export const KEY_Acircumflextilde: number;
+export const KEY_AddFavorite: number;
+export const KEY_Adiaeresis: number;
+export const KEY_Agrave: number;
+export const KEY_Ahook: number;
+export const KEY_Alt_L: number;
+export const KEY_Alt_R: number;
+export const KEY_Amacron: number;
+export const KEY_Aogonek: number;
+export const KEY_ApplicationLeft: number;
+export const KEY_ApplicationRight: number;
+export const KEY_Arabic_0: number;
+export const KEY_Arabic_1: number;
+export const KEY_Arabic_2: number;
+export const KEY_Arabic_3: number;
+export const KEY_Arabic_4: number;
+export const KEY_Arabic_5: number;
+export const KEY_Arabic_6: number;
+export const KEY_Arabic_7: number;
+export const KEY_Arabic_8: number;
+export const KEY_Arabic_9: number;
+export const KEY_Arabic_ain: number;
+export const KEY_Arabic_alef: number;
+export const KEY_Arabic_alefmaksura: number;
+export const KEY_Arabic_beh: number;
+export const KEY_Arabic_comma: number;
+export const KEY_Arabic_dad: number;
+export const KEY_Arabic_dal: number;
+export const KEY_Arabic_damma: number;
+export const KEY_Arabic_dammatan: number;
+export const KEY_Arabic_ddal: number;
+export const KEY_Arabic_farsi_yeh: number;
+export const KEY_Arabic_fatha: number;
+export const KEY_Arabic_fathatan: number;
+export const KEY_Arabic_feh: number;
+export const KEY_Arabic_fullstop: number;
+export const KEY_Arabic_gaf: number;
+export const KEY_Arabic_ghain: number;
+export const KEY_Arabic_ha: number;
+export const KEY_Arabic_hah: number;
+export const KEY_Arabic_hamza: number;
+export const KEY_Arabic_hamza_above: number;
+export const KEY_Arabic_hamza_below: number;
+export const KEY_Arabic_hamzaonalef: number;
+export const KEY_Arabic_hamzaonwaw: number;
+export const KEY_Arabic_hamzaonyeh: number;
+export const KEY_Arabic_hamzaunderalef: number;
+export const KEY_Arabic_heh: number;
+export const KEY_Arabic_heh_doachashmee: number;
+export const KEY_Arabic_heh_goal: number;
+export const KEY_Arabic_jeem: number;
+export const KEY_Arabic_jeh: number;
+export const KEY_Arabic_kaf: number;
+export const KEY_Arabic_kasra: number;
+export const KEY_Arabic_kasratan: number;
+export const KEY_Arabic_keheh: number;
+export const KEY_Arabic_khah: number;
+export const KEY_Arabic_lam: number;
+export const KEY_Arabic_madda_above: number;
+export const KEY_Arabic_maddaonalef: number;
+export const KEY_Arabic_meem: number;
+export const KEY_Arabic_noon: number;
+export const KEY_Arabic_noon_ghunna: number;
+export const KEY_Arabic_peh: number;
+export const KEY_Arabic_percent: number;
+export const KEY_Arabic_qaf: number;
+export const KEY_Arabic_question_mark: number;
+export const KEY_Arabic_ra: number;
+export const KEY_Arabic_rreh: number;
+export const KEY_Arabic_sad: number;
+export const KEY_Arabic_seen: number;
+export const KEY_Arabic_semicolon: number;
+export const KEY_Arabic_shadda: number;
+export const KEY_Arabic_sheen: number;
+export const KEY_Arabic_sukun: number;
+export const KEY_Arabic_superscript_alef: number;
+export const KEY_Arabic_switch: number;
+export const KEY_Arabic_tah: number;
+export const KEY_Arabic_tatweel: number;
+export const KEY_Arabic_tcheh: number;
+export const KEY_Arabic_teh: number;
+export const KEY_Arabic_tehmarbuta: number;
+export const KEY_Arabic_thal: number;
+export const KEY_Arabic_theh: number;
+export const KEY_Arabic_tteh: number;
+export const KEY_Arabic_veh: number;
+export const KEY_Arabic_waw: number;
+export const KEY_Arabic_yeh: number;
+export const KEY_Arabic_yeh_baree: number;
+export const KEY_Arabic_zah: number;
+export const KEY_Arabic_zain: number;
+export const KEY_Aring: number;
+export const KEY_Armenian_AT: number;
+export const KEY_Armenian_AYB: number;
+export const KEY_Armenian_BEN: number;
+export const KEY_Armenian_CHA: number;
+export const KEY_Armenian_DA: number;
+export const KEY_Armenian_DZA: number;
+export const KEY_Armenian_E: number;
+export const KEY_Armenian_FE: number;
+export const KEY_Armenian_GHAT: number;
+export const KEY_Armenian_GIM: number;
+export const KEY_Armenian_HI: number;
+export const KEY_Armenian_HO: number;
+export const KEY_Armenian_INI: number;
+export const KEY_Armenian_JE: number;
+export const KEY_Armenian_KE: number;
+export const KEY_Armenian_KEN: number;
+export const KEY_Armenian_KHE: number;
+export const KEY_Armenian_LYUN: number;
+export const KEY_Armenian_MEN: number;
+export const KEY_Armenian_NU: number;
+export const KEY_Armenian_O: number;
+export const KEY_Armenian_PE: number;
+export const KEY_Armenian_PYUR: number;
+export const KEY_Armenian_RA: number;
+export const KEY_Armenian_RE: number;
+export const KEY_Armenian_SE: number;
+export const KEY_Armenian_SHA: number;
+export const KEY_Armenian_TCHE: number;
+export const KEY_Armenian_TO: number;
+export const KEY_Armenian_TSA: number;
+export const KEY_Armenian_TSO: number;
+export const KEY_Armenian_TYUN: number;
+export const KEY_Armenian_VEV: number;
+export const KEY_Armenian_VO: number;
+export const KEY_Armenian_VYUN: number;
+export const KEY_Armenian_YECH: number;
+export const KEY_Armenian_ZA: number;
+export const KEY_Armenian_ZHE: number;
+export const KEY_Armenian_accent: number;
+export const KEY_Armenian_amanak: number;
+export const KEY_Armenian_apostrophe: number;
+export const KEY_Armenian_at: number;
+export const KEY_Armenian_ayb: number;
+export const KEY_Armenian_ben: number;
+export const KEY_Armenian_but: number;
+export const KEY_Armenian_cha: number;
+export const KEY_Armenian_da: number;
+export const KEY_Armenian_dza: number;
+export const KEY_Armenian_e: number;
+export const KEY_Armenian_exclam: number;
+export const KEY_Armenian_fe: number;
+export const KEY_Armenian_full_stop: number;
+export const KEY_Armenian_ghat: number;
+export const KEY_Armenian_gim: number;
+export const KEY_Armenian_hi: number;
+export const KEY_Armenian_ho: number;
+export const KEY_Armenian_hyphen: number;
+export const KEY_Armenian_ini: number;
+export const KEY_Armenian_je: number;
+export const KEY_Armenian_ke: number;
+export const KEY_Armenian_ken: number;
+export const KEY_Armenian_khe: number;
+export const KEY_Armenian_ligature_ew: number;
+export const KEY_Armenian_lyun: number;
+export const KEY_Armenian_men: number;
+export const KEY_Armenian_nu: number;
+export const KEY_Armenian_o: number;
+export const KEY_Armenian_paruyk: number;
+export const KEY_Armenian_pe: number;
+export const KEY_Armenian_pyur: number;
+export const KEY_Armenian_question: number;
+export const KEY_Armenian_ra: number;
+export const KEY_Armenian_re: number;
+export const KEY_Armenian_se: number;
+export const KEY_Armenian_separation_mark: number;
+export const KEY_Armenian_sha: number;
+export const KEY_Armenian_shesht: number;
+export const KEY_Armenian_tche: number;
+export const KEY_Armenian_to: number;
+export const KEY_Armenian_tsa: number;
+export const KEY_Armenian_tso: number;
+export const KEY_Armenian_tyun: number;
+export const KEY_Armenian_verjaket: number;
+export const KEY_Armenian_vev: number;
+export const KEY_Armenian_vo: number;
+export const KEY_Armenian_vyun: number;
+export const KEY_Armenian_yech: number;
+export const KEY_Armenian_yentamna: number;
+export const KEY_Armenian_za: number;
+export const KEY_Armenian_zhe: number;
+export const KEY_Atilde: number;
+export const KEY_AudibleBell_Enable: number;
+export const KEY_AudioCycleTrack: number;
+export const KEY_AudioForward: number;
+export const KEY_AudioLowerVolume: number;
+export const KEY_AudioMedia: number;
+export const KEY_AudioMicMute: number;
+export const KEY_AudioMute: number;
+export const KEY_AudioNext: number;
+export const KEY_AudioPause: number;
+export const KEY_AudioPlay: number;
+export const KEY_AudioPreset: number;
+export const KEY_AudioPrev: number;
+export const KEY_AudioRaiseVolume: number;
+export const KEY_AudioRandomPlay: number;
+export const KEY_AudioRecord: number;
+export const KEY_AudioRepeat: number;
+export const KEY_AudioRewind: number;
+export const KEY_AudioStop: number;
+export const KEY_Away: number;
+export const KEY_B: number;
+export const KEY_Babovedot: number;
+export const KEY_Back: number;
+export const KEY_BackForward: number;
+export const KEY_BackSpace: number;
+export const KEY_Battery: number;
+export const KEY_Begin: number;
+export const KEY_Blue: number;
+export const KEY_Bluetooth: number;
+export const KEY_Book: number;
+export const KEY_BounceKeys_Enable: number;
+export const KEY_Break: number;
+export const KEY_BrightnessAdjust: number;
+export const KEY_Byelorussian_SHORTU: number;
+export const KEY_Byelorussian_shortu: number;
+export const KEY_C: number;
+export const KEY_CD: number;
+export const KEY_CH: number;
+export const KEY_C_H: number;
+export const KEY_C_h: number;
+export const KEY_Cabovedot: number;
+export const KEY_Cacute: number;
+export const KEY_Calculator: number;
+export const KEY_Calendar: number;
+export const KEY_Cancel: number;
+export const KEY_Caps_Lock: number;
+export const KEY_Ccaron: number;
+export const KEY_Ccedilla: number;
+export const KEY_Ccircumflex: number;
+export const KEY_Ch: number;
+export const KEY_Clear: number;
+export const KEY_ClearGrab: number;
+export const KEY_Close: number;
+export const KEY_Codeinput: number;
+export const KEY_ColonSign: number;
+export const KEY_Community: number;
+export const KEY_ContrastAdjust: number;
+export const KEY_Control_L: number;
+export const KEY_Control_R: number;
+export const KEY_Copy: number;
+export const KEY_CruzeiroSign: number;
+export const KEY_Cut: number;
+export const KEY_CycleAngle: number;
+export const KEY_Cyrillic_A: number;
+export const KEY_Cyrillic_BE: number;
+export const KEY_Cyrillic_CHE: number;
+export const KEY_Cyrillic_CHE_descender: number;
+export const KEY_Cyrillic_CHE_vertstroke: number;
+export const KEY_Cyrillic_DE: number;
+export const KEY_Cyrillic_DZHE: number;
+export const KEY_Cyrillic_E: number;
+export const KEY_Cyrillic_EF: number;
+export const KEY_Cyrillic_EL: number;
+export const KEY_Cyrillic_EM: number;
+export const KEY_Cyrillic_EN: number;
+export const KEY_Cyrillic_EN_descender: number;
+export const KEY_Cyrillic_ER: number;
+export const KEY_Cyrillic_ES: number;
+export const KEY_Cyrillic_GHE: number;
+export const KEY_Cyrillic_GHE_bar: number;
+export const KEY_Cyrillic_HA: number;
+export const KEY_Cyrillic_HARDSIGN: number;
+export const KEY_Cyrillic_HA_descender: number;
+export const KEY_Cyrillic_I: number;
+export const KEY_Cyrillic_IE: number;
+export const KEY_Cyrillic_IO: number;
+export const KEY_Cyrillic_I_macron: number;
+export const KEY_Cyrillic_JE: number;
+export const KEY_Cyrillic_KA: number;
+export const KEY_Cyrillic_KA_descender: number;
+export const KEY_Cyrillic_KA_vertstroke: number;
+export const KEY_Cyrillic_LJE: number;
+export const KEY_Cyrillic_NJE: number;
+export const KEY_Cyrillic_O: number;
+export const KEY_Cyrillic_O_bar: number;
+export const KEY_Cyrillic_PE: number;
+export const KEY_Cyrillic_SCHWA: number;
+export const KEY_Cyrillic_SHA: number;
+export const KEY_Cyrillic_SHCHA: number;
+export const KEY_Cyrillic_SHHA: number;
+export const KEY_Cyrillic_SHORTI: number;
+export const KEY_Cyrillic_SOFTSIGN: number;
+export const KEY_Cyrillic_TE: number;
+export const KEY_Cyrillic_TSE: number;
+export const KEY_Cyrillic_U: number;
+export const KEY_Cyrillic_U_macron: number;
+export const KEY_Cyrillic_U_straight: number;
+export const KEY_Cyrillic_U_straight_bar: number;
+export const KEY_Cyrillic_VE: number;
+export const KEY_Cyrillic_YA: number;
+export const KEY_Cyrillic_YERU: number;
+export const KEY_Cyrillic_YU: number;
+export const KEY_Cyrillic_ZE: number;
+export const KEY_Cyrillic_ZHE: number;
+export const KEY_Cyrillic_ZHE_descender: number;
+export const KEY_Cyrillic_a: number;
+export const KEY_Cyrillic_be: number;
+export const KEY_Cyrillic_che: number;
+export const KEY_Cyrillic_che_descender: number;
+export const KEY_Cyrillic_che_vertstroke: number;
+export const KEY_Cyrillic_de: number;
+export const KEY_Cyrillic_dzhe: number;
+export const KEY_Cyrillic_e: number;
+export const KEY_Cyrillic_ef: number;
+export const KEY_Cyrillic_el: number;
+export const KEY_Cyrillic_em: number;
+export const KEY_Cyrillic_en: number;
+export const KEY_Cyrillic_en_descender: number;
+export const KEY_Cyrillic_er: number;
+export const KEY_Cyrillic_es: number;
+export const KEY_Cyrillic_ghe: number;
+export const KEY_Cyrillic_ghe_bar: number;
+export const KEY_Cyrillic_ha: number;
+export const KEY_Cyrillic_ha_descender: number;
+export const KEY_Cyrillic_hardsign: number;
+export const KEY_Cyrillic_i: number;
+export const KEY_Cyrillic_i_macron: number;
+export const KEY_Cyrillic_ie: number;
+export const KEY_Cyrillic_io: number;
+export const KEY_Cyrillic_je: number;
+export const KEY_Cyrillic_ka: number;
+export const KEY_Cyrillic_ka_descender: number;
+export const KEY_Cyrillic_ka_vertstroke: number;
+export const KEY_Cyrillic_lje: number;
+export const KEY_Cyrillic_nje: number;
+export const KEY_Cyrillic_o: number;
+export const KEY_Cyrillic_o_bar: number;
+export const KEY_Cyrillic_pe: number;
+export const KEY_Cyrillic_schwa: number;
+export const KEY_Cyrillic_sha: number;
+export const KEY_Cyrillic_shcha: number;
+export const KEY_Cyrillic_shha: number;
+export const KEY_Cyrillic_shorti: number;
+export const KEY_Cyrillic_softsign: number;
+export const KEY_Cyrillic_te: number;
+export const KEY_Cyrillic_tse: number;
+export const KEY_Cyrillic_u: number;
+export const KEY_Cyrillic_u_macron: number;
+export const KEY_Cyrillic_u_straight: number;
+export const KEY_Cyrillic_u_straight_bar: number;
+export const KEY_Cyrillic_ve: number;
+export const KEY_Cyrillic_ya: number;
+export const KEY_Cyrillic_yeru: number;
+export const KEY_Cyrillic_yu: number;
+export const KEY_Cyrillic_ze: number;
+export const KEY_Cyrillic_zhe: number;
+export const KEY_Cyrillic_zhe_descender: number;
+export const KEY_D: number;
+export const KEY_DOS: number;
+export const KEY_Dabovedot: number;
+export const KEY_Dcaron: number;
+export const KEY_Delete: number;
+export const KEY_Display: number;
+export const KEY_Documents: number;
+export const KEY_DongSign: number;
+export const KEY_Down: number;
+export const KEY_Dstroke: number;
+export const KEY_E: number;
+export const KEY_ENG: number;
+export const KEY_ETH: number;
+export const KEY_EZH: number;
+export const KEY_Eabovedot: number;
+export const KEY_Eacute: number;
+export const KEY_Ebelowdot: number;
+export const KEY_Ecaron: number;
+export const KEY_Ecircumflex: number;
+export const KEY_Ecircumflexacute: number;
+export const KEY_Ecircumflexbelowdot: number;
+export const KEY_Ecircumflexgrave: number;
+export const KEY_Ecircumflexhook: number;
+export const KEY_Ecircumflextilde: number;
+export const KEY_EcuSign: number;
+export const KEY_Ediaeresis: number;
+export const KEY_Egrave: number;
+export const KEY_Ehook: number;
+export const KEY_Eisu_Shift: number;
+export const KEY_Eisu_toggle: number;
+export const KEY_Eject: number;
+export const KEY_Emacron: number;
+export const KEY_End: number;
+export const KEY_Eogonek: number;
+export const KEY_Escape: number;
+export const KEY_Eth: number;
+export const KEY_Etilde: number;
+export const KEY_EuroSign: number;
+export const KEY_Excel: number;
+export const KEY_Execute: number;
+export const KEY_Explorer: number;
+export const KEY_F: number;
+export const KEY_F1: number;
+export const KEY_F10: number;
+export const KEY_F11: number;
+export const KEY_F12: number;
+export const KEY_F13: number;
+export const KEY_F14: number;
+export const KEY_F15: number;
+export const KEY_F16: number;
+export const KEY_F17: number;
+export const KEY_F18: number;
+export const KEY_F19: number;
+export const KEY_F2: number;
+export const KEY_F20: number;
+export const KEY_F21: number;
+export const KEY_F22: number;
+export const KEY_F23: number;
+export const KEY_F24: number;
+export const KEY_F25: number;
+export const KEY_F26: number;
+export const KEY_F27: number;
+export const KEY_F28: number;
+export const KEY_F29: number;
+export const KEY_F3: number;
+export const KEY_F30: number;
+export const KEY_F31: number;
+export const KEY_F32: number;
+export const KEY_F33: number;
+export const KEY_F34: number;
+export const KEY_F35: number;
+export const KEY_F4: number;
+export const KEY_F5: number;
+export const KEY_F6: number;
+export const KEY_F7: number;
+export const KEY_F8: number;
+export const KEY_F9: number;
+export const KEY_FFrancSign: number;
+export const KEY_Fabovedot: number;
+export const KEY_Farsi_0: number;
+export const KEY_Farsi_1: number;
+export const KEY_Farsi_2: number;
+export const KEY_Farsi_3: number;
+export const KEY_Farsi_4: number;
+export const KEY_Farsi_5: number;
+export const KEY_Farsi_6: number;
+export const KEY_Farsi_7: number;
+export const KEY_Farsi_8: number;
+export const KEY_Farsi_9: number;
+export const KEY_Farsi_yeh: number;
+export const KEY_Favorites: number;
+export const KEY_Finance: number;
+export const KEY_Find: number;
+export const KEY_First_Virtual_Screen: number;
+export const KEY_Forward: number;
+export const KEY_FrameBack: number;
+export const KEY_FrameForward: number;
+export const KEY_G: number;
+export const KEY_Gabovedot: number;
+export const KEY_Game: number;
+export const KEY_Gbreve: number;
+export const KEY_Gcaron: number;
+export const KEY_Gcedilla: number;
+export const KEY_Gcircumflex: number;
+export const KEY_Georgian_an: number;
+export const KEY_Georgian_ban: number;
+export const KEY_Georgian_can: number;
+export const KEY_Georgian_char: number;
+export const KEY_Georgian_chin: number;
+export const KEY_Georgian_cil: number;
+export const KEY_Georgian_don: number;
+export const KEY_Georgian_en: number;
+export const KEY_Georgian_fi: number;
+export const KEY_Georgian_gan: number;
+export const KEY_Georgian_ghan: number;
+export const KEY_Georgian_hae: number;
+export const KEY_Georgian_har: number;
+export const KEY_Georgian_he: number;
+export const KEY_Georgian_hie: number;
+export const KEY_Georgian_hoe: number;
+export const KEY_Georgian_in: number;
+export const KEY_Georgian_jhan: number;
+export const KEY_Georgian_jil: number;
+export const KEY_Georgian_kan: number;
+export const KEY_Georgian_khar: number;
+export const KEY_Georgian_las: number;
+export const KEY_Georgian_man: number;
+export const KEY_Georgian_nar: number;
+export const KEY_Georgian_on: number;
+export const KEY_Georgian_par: number;
+export const KEY_Georgian_phar: number;
+export const KEY_Georgian_qar: number;
+export const KEY_Georgian_rae: number;
+export const KEY_Georgian_san: number;
+export const KEY_Georgian_shin: number;
+export const KEY_Georgian_tan: number;
+export const KEY_Georgian_tar: number;
+export const KEY_Georgian_un: number;
+export const KEY_Georgian_vin: number;
+export const KEY_Georgian_we: number;
+export const KEY_Georgian_xan: number;
+export const KEY_Georgian_zen: number;
+export const KEY_Georgian_zhar: number;
+export const KEY_Go: number;
+export const KEY_Greek_ALPHA: number;
+export const KEY_Greek_ALPHAaccent: number;
+export const KEY_Greek_BETA: number;
+export const KEY_Greek_CHI: number;
+export const KEY_Greek_DELTA: number;
+export const KEY_Greek_EPSILON: number;
+export const KEY_Greek_EPSILONaccent: number;
+export const KEY_Greek_ETA: number;
+export const KEY_Greek_ETAaccent: number;
+export const KEY_Greek_GAMMA: number;
+export const KEY_Greek_IOTA: number;
+export const KEY_Greek_IOTAaccent: number;
+export const KEY_Greek_IOTAdiaeresis: number;
+export const KEY_Greek_IOTAdieresis: number;
+export const KEY_Greek_KAPPA: number;
+export const KEY_Greek_LAMBDA: number;
+export const KEY_Greek_LAMDA: number;
+export const KEY_Greek_MU: number;
+export const KEY_Greek_NU: number;
+export const KEY_Greek_OMEGA: number;
+export const KEY_Greek_OMEGAaccent: number;
+export const KEY_Greek_OMICRON: number;
+export const KEY_Greek_OMICRONaccent: number;
+export const KEY_Greek_PHI: number;
+export const KEY_Greek_PI: number;
+export const KEY_Greek_PSI: number;
+export const KEY_Greek_RHO: number;
+export const KEY_Greek_SIGMA: number;
+export const KEY_Greek_TAU: number;
+export const KEY_Greek_THETA: number;
+export const KEY_Greek_UPSILON: number;
+export const KEY_Greek_UPSILONaccent: number;
+export const KEY_Greek_UPSILONdieresis: number;
+export const KEY_Greek_XI: number;
+export const KEY_Greek_ZETA: number;
+export const KEY_Greek_accentdieresis: number;
+export const KEY_Greek_alpha: number;
+export const KEY_Greek_alphaaccent: number;
+export const KEY_Greek_beta: number;
+export const KEY_Greek_chi: number;
+export const KEY_Greek_delta: number;
+export const KEY_Greek_epsilon: number;
+export const KEY_Greek_epsilonaccent: number;
+export const KEY_Greek_eta: number;
+export const KEY_Greek_etaaccent: number;
+export const KEY_Greek_finalsmallsigma: number;
+export const KEY_Greek_gamma: number;
+export const KEY_Greek_horizbar: number;
+export const KEY_Greek_iota: number;
+export const KEY_Greek_iotaaccent: number;
+export const KEY_Greek_iotaaccentdieresis: number;
+export const KEY_Greek_iotadieresis: number;
+export const KEY_Greek_kappa: number;
+export const KEY_Greek_lambda: number;
+export const KEY_Greek_lamda: number;
+export const KEY_Greek_mu: number;
+export const KEY_Greek_nu: number;
+export const KEY_Greek_omega: number;
+export const KEY_Greek_omegaaccent: number;
+export const KEY_Greek_omicron: number;
+export const KEY_Greek_omicronaccent: number;
+export const KEY_Greek_phi: number;
+export const KEY_Greek_pi: number;
+export const KEY_Greek_psi: number;
+export const KEY_Greek_rho: number;
+export const KEY_Greek_sigma: number;
+export const KEY_Greek_switch: number;
+export const KEY_Greek_tau: number;
+export const KEY_Greek_theta: number;
+export const KEY_Greek_upsilon: number;
+export const KEY_Greek_upsilonaccent: number;
+export const KEY_Greek_upsilonaccentdieresis: number;
+export const KEY_Greek_upsilondieresis: number;
+export const KEY_Greek_xi: number;
+export const KEY_Greek_zeta: number;
+export const KEY_Green: number;
+export const KEY_H: number;
+export const KEY_Hangul: number;
+export const KEY_Hangul_A: number;
+export const KEY_Hangul_AE: number;
+export const KEY_Hangul_AraeA: number;
+export const KEY_Hangul_AraeAE: number;
+export const KEY_Hangul_Banja: number;
+export const KEY_Hangul_Cieuc: number;
+export const KEY_Hangul_Codeinput: number;
+export const KEY_Hangul_Dikeud: number;
+export const KEY_Hangul_E: number;
+export const KEY_Hangul_EO: number;
+export const KEY_Hangul_EU: number;
+export const KEY_Hangul_End: number;
+export const KEY_Hangul_Hanja: number;
+export const KEY_Hangul_Hieuh: number;
+export const KEY_Hangul_I: number;
+export const KEY_Hangul_Ieung: number;
+export const KEY_Hangul_J_Cieuc: number;
+export const KEY_Hangul_J_Dikeud: number;
+export const KEY_Hangul_J_Hieuh: number;
+export const KEY_Hangul_J_Ieung: number;
+export const KEY_Hangul_J_Jieuj: number;
+export const KEY_Hangul_J_Khieuq: number;
+export const KEY_Hangul_J_Kiyeog: number;
+export const KEY_Hangul_J_KiyeogSios: number;
+export const KEY_Hangul_J_KkogjiDalrinIeung: number;
+export const KEY_Hangul_J_Mieum: number;
+export const KEY_Hangul_J_Nieun: number;
+export const KEY_Hangul_J_NieunHieuh: number;
+export const KEY_Hangul_J_NieunJieuj: number;
+export const KEY_Hangul_J_PanSios: number;
+export const KEY_Hangul_J_Phieuf: number;
+export const KEY_Hangul_J_Pieub: number;
+export const KEY_Hangul_J_PieubSios: number;
+export const KEY_Hangul_J_Rieul: number;
+export const KEY_Hangul_J_RieulHieuh: number;
+export const KEY_Hangul_J_RieulKiyeog: number;
+export const KEY_Hangul_J_RieulMieum: number;
+export const KEY_Hangul_J_RieulPhieuf: number;
+export const KEY_Hangul_J_RieulPieub: number;
+export const KEY_Hangul_J_RieulSios: number;
+export const KEY_Hangul_J_RieulTieut: number;
+export const KEY_Hangul_J_Sios: number;
+export const KEY_Hangul_J_SsangKiyeog: number;
+export const KEY_Hangul_J_SsangSios: number;
+export const KEY_Hangul_J_Tieut: number;
+export const KEY_Hangul_J_YeorinHieuh: number;
+export const KEY_Hangul_Jamo: number;
+export const KEY_Hangul_Jeonja: number;
+export const KEY_Hangul_Jieuj: number;
+export const KEY_Hangul_Khieuq: number;
+export const KEY_Hangul_Kiyeog: number;
+export const KEY_Hangul_KiyeogSios: number;
+export const KEY_Hangul_KkogjiDalrinIeung: number;
+export const KEY_Hangul_Mieum: number;
+export const KEY_Hangul_MultipleCandidate: number;
+export const KEY_Hangul_Nieun: number;
+export const KEY_Hangul_NieunHieuh: number;
+export const KEY_Hangul_NieunJieuj: number;
+export const KEY_Hangul_O: number;
+export const KEY_Hangul_OE: number;
+export const KEY_Hangul_PanSios: number;
+export const KEY_Hangul_Phieuf: number;
+export const KEY_Hangul_Pieub: number;
+export const KEY_Hangul_PieubSios: number;
+export const KEY_Hangul_PostHanja: number;
+export const KEY_Hangul_PreHanja: number;
+export const KEY_Hangul_PreviousCandidate: number;
+export const KEY_Hangul_Rieul: number;
+export const KEY_Hangul_RieulHieuh: number;
+export const KEY_Hangul_RieulKiyeog: number;
+export const KEY_Hangul_RieulMieum: number;
+export const KEY_Hangul_RieulPhieuf: number;
+export const KEY_Hangul_RieulPieub: number;
+export const KEY_Hangul_RieulSios: number;
+export const KEY_Hangul_RieulTieut: number;
+export const KEY_Hangul_RieulYeorinHieuh: number;
+export const KEY_Hangul_Romaja: number;
+export const KEY_Hangul_SingleCandidate: number;
+export const KEY_Hangul_Sios: number;
+export const KEY_Hangul_Special: number;
+export const KEY_Hangul_SsangDikeud: number;
+export const KEY_Hangul_SsangJieuj: number;
+export const KEY_Hangul_SsangKiyeog: number;
+export const KEY_Hangul_SsangPieub: number;
+export const KEY_Hangul_SsangSios: number;
+export const KEY_Hangul_Start: number;
+export const KEY_Hangul_SunkyeongeumMieum: number;
+export const KEY_Hangul_SunkyeongeumPhieuf: number;
+export const KEY_Hangul_SunkyeongeumPieub: number;
+export const KEY_Hangul_Tieut: number;
+export const KEY_Hangul_U: number;
+export const KEY_Hangul_WA: number;
+export const KEY_Hangul_WAE: number;
+export const KEY_Hangul_WE: number;
+export const KEY_Hangul_WEO: number;
+export const KEY_Hangul_WI: number;
+export const KEY_Hangul_YA: number;
+export const KEY_Hangul_YAE: number;
+export const KEY_Hangul_YE: number;
+export const KEY_Hangul_YEO: number;
+export const KEY_Hangul_YI: number;
+export const KEY_Hangul_YO: number;
+export const KEY_Hangul_YU: number;
+export const KEY_Hangul_YeorinHieuh: number;
+export const KEY_Hangul_switch: number;
+export const KEY_Hankaku: number;
+export const KEY_Hcircumflex: number;
+export const KEY_Hebrew_switch: number;
+export const KEY_Help: number;
+export const KEY_Henkan: number;
+export const KEY_Henkan_Mode: number;
+export const KEY_Hibernate: number;
+export const KEY_Hiragana: number;
+export const KEY_Hiragana_Katakana: number;
+export const KEY_History: number;
+export const KEY_Home: number;
+export const KEY_HomePage: number;
+export const KEY_HotLinks: number;
+export const KEY_Hstroke: number;
+export const KEY_Hyper_L: number;
+export const KEY_Hyper_R: number;
+export const KEY_I: number;
+export const KEY_ISO_Center_Object: number;
+export const KEY_ISO_Continuous_Underline: number;
+export const KEY_ISO_Discontinuous_Underline: number;
+export const KEY_ISO_Emphasize: number;
+export const KEY_ISO_Enter: number;
+export const KEY_ISO_Fast_Cursor_Down: number;
+export const KEY_ISO_Fast_Cursor_Left: number;
+export const KEY_ISO_Fast_Cursor_Right: number;
+export const KEY_ISO_Fast_Cursor_Up: number;
+export const KEY_ISO_First_Group: number;
+export const KEY_ISO_First_Group_Lock: number;
+export const KEY_ISO_Group_Latch: number;
+export const KEY_ISO_Group_Lock: number;
+export const KEY_ISO_Group_Shift: number;
+export const KEY_ISO_Last_Group: number;
+export const KEY_ISO_Last_Group_Lock: number;
+export const KEY_ISO_Left_Tab: number;
+export const KEY_ISO_Level2_Latch: number;
+export const KEY_ISO_Level3_Latch: number;
+export const KEY_ISO_Level3_Lock: number;
+export const KEY_ISO_Level3_Shift: number;
+export const KEY_ISO_Level5_Latch: number;
+export const KEY_ISO_Level5_Lock: number;
+export const KEY_ISO_Level5_Shift: number;
+export const KEY_ISO_Lock: number;
+export const KEY_ISO_Move_Line_Down: number;
+export const KEY_ISO_Move_Line_Up: number;
+export const KEY_ISO_Next_Group: number;
+export const KEY_ISO_Next_Group_Lock: number;
+export const KEY_ISO_Partial_Line_Down: number;
+export const KEY_ISO_Partial_Line_Up: number;
+export const KEY_ISO_Partial_Space_Left: number;
+export const KEY_ISO_Partial_Space_Right: number;
+export const KEY_ISO_Prev_Group: number;
+export const KEY_ISO_Prev_Group_Lock: number;
+export const KEY_ISO_Release_Both_Margins: number;
+export const KEY_ISO_Release_Margin_Left: number;
+export const KEY_ISO_Release_Margin_Right: number;
+export const KEY_ISO_Set_Margin_Left: number;
+export const KEY_ISO_Set_Margin_Right: number;
+export const KEY_Iabovedot: number;
+export const KEY_Iacute: number;
+export const KEY_Ibelowdot: number;
+export const KEY_Ibreve: number;
+export const KEY_Icircumflex: number;
+export const KEY_Idiaeresis: number;
+export const KEY_Igrave: number;
+export const KEY_Ihook: number;
+export const KEY_Imacron: number;
+export const KEY_Insert: number;
+export const KEY_Iogonek: number;
+export const KEY_Itilde: number;
+export const KEY_J: number;
+export const KEY_Jcircumflex: number;
+export const KEY_K: number;
+export const KEY_KP_0: number;
+export const KEY_KP_1: number;
+export const KEY_KP_2: number;
+export const KEY_KP_3: number;
+export const KEY_KP_4: number;
+export const KEY_KP_5: number;
+export const KEY_KP_6: number;
+export const KEY_KP_7: number;
+export const KEY_KP_8: number;
+export const KEY_KP_9: number;
+export const KEY_KP_Add: number;
+export const KEY_KP_Begin: number;
+export const KEY_KP_Decimal: number;
+export const KEY_KP_Delete: number;
+export const KEY_KP_Divide: number;
+export const KEY_KP_Down: number;
+export const KEY_KP_End: number;
+export const KEY_KP_Enter: number;
+export const KEY_KP_Equal: number;
+export const KEY_KP_F1: number;
+export const KEY_KP_F2: number;
+export const KEY_KP_F3: number;
+export const KEY_KP_F4: number;
+export const KEY_KP_Home: number;
+export const KEY_KP_Insert: number;
+export const KEY_KP_Left: number;
+export const KEY_KP_Multiply: number;
+export const KEY_KP_Next: number;
+export const KEY_KP_Page_Down: number;
+export const KEY_KP_Page_Up: number;
+export const KEY_KP_Prior: number;
+export const KEY_KP_Right: number;
+export const KEY_KP_Separator: number;
+export const KEY_KP_Space: number;
+export const KEY_KP_Subtract: number;
+export const KEY_KP_Tab: number;
+export const KEY_KP_Up: number;
+export const KEY_Kana_Lock: number;
+export const KEY_Kana_Shift: number;
+export const KEY_Kanji: number;
+export const KEY_Kanji_Bangou: number;
+export const KEY_Katakana: number;
+export const KEY_KbdBrightnessDown: number;
+export const KEY_KbdBrightnessUp: number;
+export const KEY_KbdLightOnOff: number;
+export const KEY_Kcedilla: number;
+export const KEY_Keyboard: number;
+export const KEY_Korean_Won: number;
+export const KEY_L: number;
+export const KEY_L1: number;
+export const KEY_L10: number;
+export const KEY_L2: number;
+export const KEY_L3: number;
+export const KEY_L4: number;
+export const KEY_L5: number;
+export const KEY_L6: number;
+export const KEY_L7: number;
+export const KEY_L8: number;
+export const KEY_L9: number;
+export const KEY_Lacute: number;
+export const KEY_Last_Virtual_Screen: number;
+export const KEY_Launch0: number;
+export const KEY_Launch1: number;
+export const KEY_Launch2: number;
+export const KEY_Launch3: number;
+export const KEY_Launch4: number;
+export const KEY_Launch5: number;
+export const KEY_Launch6: number;
+export const KEY_Launch7: number;
+export const KEY_Launch8: number;
+export const KEY_Launch9: number;
+export const KEY_LaunchA: number;
+export const KEY_LaunchB: number;
+export const KEY_LaunchC: number;
+export const KEY_LaunchD: number;
+export const KEY_LaunchE: number;
+export const KEY_LaunchF: number;
+export const KEY_Lbelowdot: number;
+export const KEY_Lcaron: number;
+export const KEY_Lcedilla: number;
+export const KEY_Left: number;
+export const KEY_LightBulb: number;
+export const KEY_Linefeed: number;
+export const KEY_LiraSign: number;
+export const KEY_LogGrabInfo: number;
+export const KEY_LogOff: number;
+export const KEY_LogWindowTree: number;
+export const KEY_Lstroke: number;
+export const KEY_M: number;
+export const KEY_Mabovedot: number;
+export const KEY_Macedonia_DSE: number;
+export const KEY_Macedonia_GJE: number;
+export const KEY_Macedonia_KJE: number;
+export const KEY_Macedonia_dse: number;
+export const KEY_Macedonia_gje: number;
+export const KEY_Macedonia_kje: number;
+export const KEY_Mae_Koho: number;
+export const KEY_Mail: number;
+export const KEY_MailForward: number;
+export const KEY_Market: number;
+export const KEY_Massyo: number;
+export const KEY_Meeting: number;
+export const KEY_Memo: number;
+export const KEY_Menu: number;
+export const KEY_MenuKB: number;
+export const KEY_MenuPB: number;
+export const KEY_Messenger: number;
+export const KEY_Meta_L: number;
+export const KEY_Meta_R: number;
+export const KEY_MillSign: number;
+export const KEY_ModeLock: number;
+export const KEY_Mode_switch: number;
+export const KEY_MonBrightnessDown: number;
+export const KEY_MonBrightnessUp: number;
+export const KEY_MouseKeys_Accel_Enable: number;
+export const KEY_MouseKeys_Enable: number;
+export const KEY_Muhenkan: number;
+export const KEY_Multi_key: number;
+export const KEY_MultipleCandidate: number;
+export const KEY_Music: number;
+export const KEY_MyComputer: number;
+export const KEY_MySites: number;
+export const KEY_N: number;
+export const KEY_Nacute: number;
+export const KEY_NairaSign: number;
+export const KEY_Ncaron: number;
+export const KEY_Ncedilla: number;
+export const KEY_New: number;
+export const KEY_NewSheqelSign: number;
+export const KEY_News: number;
+export const KEY_Next: number;
+export const KEY_Next_VMode: number;
+export const KEY_Next_Virtual_Screen: number;
+export const KEY_Ntilde: number;
+export const KEY_Num_Lock: number;
+export const KEY_O: number;
+export const KEY_OE: number;
+export const KEY_Oacute: number;
+export const KEY_Obarred: number;
+export const KEY_Obelowdot: number;
+export const KEY_Ocaron: number;
+export const KEY_Ocircumflex: number;
+export const KEY_Ocircumflexacute: number;
+export const KEY_Ocircumflexbelowdot: number;
+export const KEY_Ocircumflexgrave: number;
+export const KEY_Ocircumflexhook: number;
+export const KEY_Ocircumflextilde: number;
+export const KEY_Odiaeresis: number;
+export const KEY_Odoubleacute: number;
+export const KEY_OfficeHome: number;
+export const KEY_Ograve: number;
+export const KEY_Ohook: number;
+export const KEY_Ohorn: number;
+export const KEY_Ohornacute: number;
+export const KEY_Ohornbelowdot: number;
+export const KEY_Ohorngrave: number;
+export const KEY_Ohornhook: number;
+export const KEY_Ohorntilde: number;
+export const KEY_Omacron: number;
+export const KEY_Ooblique: number;
+export const KEY_Open: number;
+export const KEY_OpenURL: number;
+export const KEY_Option: number;
+export const KEY_Oslash: number;
+export const KEY_Otilde: number;
+export const KEY_Overlay1_Enable: number;
+export const KEY_Overlay2_Enable: number;
+export const KEY_P: number;
+export const KEY_Pabovedot: number;
+export const KEY_Page_Down: number;
+export const KEY_Page_Up: number;
+export const KEY_Paste: number;
+export const KEY_Pause: number;
+export const KEY_PesetaSign: number;
+export const KEY_Phone: number;
+export const KEY_Pictures: number;
+export const KEY_Pointer_Accelerate: number;
+export const KEY_Pointer_Button1: number;
+export const KEY_Pointer_Button2: number;
+export const KEY_Pointer_Button3: number;
+export const KEY_Pointer_Button4: number;
+export const KEY_Pointer_Button5: number;
+export const KEY_Pointer_Button_Dflt: number;
+export const KEY_Pointer_DblClick1: number;
+export const KEY_Pointer_DblClick2: number;
+export const KEY_Pointer_DblClick3: number;
+export const KEY_Pointer_DblClick4: number;
+export const KEY_Pointer_DblClick5: number;
+export const KEY_Pointer_DblClick_Dflt: number;
+export const KEY_Pointer_DfltBtnNext: number;
+export const KEY_Pointer_DfltBtnPrev: number;
+export const KEY_Pointer_Down: number;
+export const KEY_Pointer_DownLeft: number;
+export const KEY_Pointer_DownRight: number;
+export const KEY_Pointer_Drag1: number;
+export const KEY_Pointer_Drag2: number;
+export const KEY_Pointer_Drag3: number;
+export const KEY_Pointer_Drag4: number;
+export const KEY_Pointer_Drag5: number;
+export const KEY_Pointer_Drag_Dflt: number;
+export const KEY_Pointer_EnableKeys: number;
+export const KEY_Pointer_Left: number;
+export const KEY_Pointer_Right: number;
+export const KEY_Pointer_Up: number;
+export const KEY_Pointer_UpLeft: number;
+export const KEY_Pointer_UpRight: number;
+export const KEY_PowerDown: number;
+export const KEY_PowerOff: number;
+export const KEY_Prev_VMode: number;
+export const KEY_Prev_Virtual_Screen: number;
+export const KEY_PreviousCandidate: number;
+export const KEY_Print: number;
+export const KEY_Prior: number;
+export const KEY_Q: number;
+export const KEY_R: number;
+export const KEY_R1: number;
+export const KEY_R10: number;
+export const KEY_R11: number;
+export const KEY_R12: number;
+export const KEY_R13: number;
+export const KEY_R14: number;
+export const KEY_R15: number;
+export const KEY_R2: number;
+export const KEY_R3: number;
+export const KEY_R4: number;
+export const KEY_R5: number;
+export const KEY_R6: number;
+export const KEY_R7: number;
+export const KEY_R8: number;
+export const KEY_R9: number;
+export const KEY_RFKill: number;
+export const KEY_Racute: number;
+export const KEY_Rcaron: number;
+export const KEY_Rcedilla: number;
+export const KEY_Red: number;
+export const KEY_Redo: number;
+export const KEY_Refresh: number;
+export const KEY_Reload: number;
+export const KEY_RepeatKeys_Enable: number;
+export const KEY_Reply: number;
+export const KEY_Return: number;
+export const KEY_Right: number;
+export const KEY_RockerDown: number;
+export const KEY_RockerEnter: number;
+export const KEY_RockerUp: number;
+export const KEY_Romaji: number;
+export const KEY_RotateWindows: number;
+export const KEY_RotationKB: number;
+export const KEY_RotationPB: number;
+export const KEY_RupeeSign: number;
+export const KEY_S: number;
+export const KEY_SCHWA: number;
+export const KEY_Sabovedot: number;
+export const KEY_Sacute: number;
+export const KEY_Save: number;
+export const KEY_Scaron: number;
+export const KEY_Scedilla: number;
+export const KEY_Scircumflex: number;
+export const KEY_ScreenSaver: number;
+export const KEY_ScrollClick: number;
+export const KEY_ScrollDown: number;
+export const KEY_ScrollUp: number;
+export const KEY_Scroll_Lock: number;
+export const KEY_Search: number;
+export const KEY_Select: number;
+export const KEY_SelectButton: number;
+export const KEY_Send: number;
+export const KEY_Serbian_DJE: number;
+export const KEY_Serbian_DZE: number;
+export const KEY_Serbian_JE: number;
+export const KEY_Serbian_LJE: number;
+export const KEY_Serbian_NJE: number;
+export const KEY_Serbian_TSHE: number;
+export const KEY_Serbian_dje: number;
+export const KEY_Serbian_dze: number;
+export const KEY_Serbian_je: number;
+export const KEY_Serbian_lje: number;
+export const KEY_Serbian_nje: number;
+export const KEY_Serbian_tshe: number;
+export const KEY_Shift_L: number;
+export const KEY_Shift_Lock: number;
+export const KEY_Shift_R: number;
+export const KEY_Shop: number;
+export const KEY_SingleCandidate: number;
+export const KEY_Sinh_a: number;
+export const KEY_Sinh_aa: number;
+export const KEY_Sinh_aa2: number;
+export const KEY_Sinh_ae: number;
+export const KEY_Sinh_ae2: number;
+export const KEY_Sinh_aee: number;
+export const KEY_Sinh_aee2: number;
+export const KEY_Sinh_ai: number;
+export const KEY_Sinh_ai2: number;
+export const KEY_Sinh_al: number;
+export const KEY_Sinh_au: number;
+export const KEY_Sinh_au2: number;
+export const KEY_Sinh_ba: number;
+export const KEY_Sinh_bha: number;
+export const KEY_Sinh_ca: number;
+export const KEY_Sinh_cha: number;
+export const KEY_Sinh_dda: number;
+export const KEY_Sinh_ddha: number;
+export const KEY_Sinh_dha: number;
+export const KEY_Sinh_dhha: number;
+export const KEY_Sinh_e: number;
+export const KEY_Sinh_e2: number;
+export const KEY_Sinh_ee: number;
+export const KEY_Sinh_ee2: number;
+export const KEY_Sinh_fa: number;
+export const KEY_Sinh_ga: number;
+export const KEY_Sinh_gha: number;
+export const KEY_Sinh_h2: number;
+export const KEY_Sinh_ha: number;
+export const KEY_Sinh_i: number;
+export const KEY_Sinh_i2: number;
+export const KEY_Sinh_ii: number;
+export const KEY_Sinh_ii2: number;
+export const KEY_Sinh_ja: number;
+export const KEY_Sinh_jha: number;
+export const KEY_Sinh_jnya: number;
+export const KEY_Sinh_ka: number;
+export const KEY_Sinh_kha: number;
+export const KEY_Sinh_kunddaliya: number;
+export const KEY_Sinh_la: number;
+export const KEY_Sinh_lla: number;
+export const KEY_Sinh_lu: number;
+export const KEY_Sinh_lu2: number;
+export const KEY_Sinh_luu: number;
+export const KEY_Sinh_luu2: number;
+export const KEY_Sinh_ma: number;
+export const KEY_Sinh_mba: number;
+export const KEY_Sinh_na: number;
+export const KEY_Sinh_ndda: number;
+export const KEY_Sinh_ndha: number;
+export const KEY_Sinh_ng: number;
+export const KEY_Sinh_ng2: number;
+export const KEY_Sinh_nga: number;
+export const KEY_Sinh_nja: number;
+export const KEY_Sinh_nna: number;
+export const KEY_Sinh_nya: number;
+export const KEY_Sinh_o: number;
+export const KEY_Sinh_o2: number;
+export const KEY_Sinh_oo: number;
+export const KEY_Sinh_oo2: number;
+export const KEY_Sinh_pa: number;
+export const KEY_Sinh_pha: number;
+export const KEY_Sinh_ra: number;
+export const KEY_Sinh_ri: number;
+export const KEY_Sinh_rii: number;
+export const KEY_Sinh_ru2: number;
+export const KEY_Sinh_ruu2: number;
+export const KEY_Sinh_sa: number;
+export const KEY_Sinh_sha: number;
+export const KEY_Sinh_ssha: number;
+export const KEY_Sinh_tha: number;
+export const KEY_Sinh_thha: number;
+export const KEY_Sinh_tta: number;
+export const KEY_Sinh_ttha: number;
+export const KEY_Sinh_u: number;
+export const KEY_Sinh_u2: number;
+export const KEY_Sinh_uu: number;
+export const KEY_Sinh_uu2: number;
+export const KEY_Sinh_va: number;
+export const KEY_Sinh_ya: number;
+export const KEY_Sleep: number;
+export const KEY_SlowKeys_Enable: number;
+export const KEY_Spell: number;
+export const KEY_SplitScreen: number;
+export const KEY_Standby: number;
+export const KEY_Start: number;
+export const KEY_StickyKeys_Enable: number;
+export const KEY_Stop: number;
+export const KEY_Subtitle: number;
+export const KEY_Super_L: number;
+export const KEY_Super_R: number;
+export const KEY_Support: number;
+export const KEY_Suspend: number;
+export const KEY_Switch_VT_1: number;
+export const KEY_Switch_VT_10: number;
+export const KEY_Switch_VT_11: number;
+export const KEY_Switch_VT_12: number;
+export const KEY_Switch_VT_2: number;
+export const KEY_Switch_VT_3: number;
+export const KEY_Switch_VT_4: number;
+export const KEY_Switch_VT_5: number;
+export const KEY_Switch_VT_6: number;
+export const KEY_Switch_VT_7: number;
+export const KEY_Switch_VT_8: number;
+export const KEY_Switch_VT_9: number;
+export const KEY_Sys_Req: number;
+export const KEY_T: number;
+export const KEY_THORN: number;
+export const KEY_Tab: number;
+export const KEY_Tabovedot: number;
+export const KEY_TaskPane: number;
+export const KEY_Tcaron: number;
+export const KEY_Tcedilla: number;
+export const KEY_Terminal: number;
+export const KEY_Terminate_Server: number;
+export const KEY_Thai_baht: number;
+export const KEY_Thai_bobaimai: number;
+export const KEY_Thai_chochan: number;
+export const KEY_Thai_chochang: number;
+export const KEY_Thai_choching: number;
+export const KEY_Thai_chochoe: number;
+export const KEY_Thai_dochada: number;
+export const KEY_Thai_dodek: number;
+export const KEY_Thai_fofa: number;
+export const KEY_Thai_fofan: number;
+export const KEY_Thai_hohip: number;
+export const KEY_Thai_honokhuk: number;
+export const KEY_Thai_khokhai: number;
+export const KEY_Thai_khokhon: number;
+export const KEY_Thai_khokhuat: number;
+export const KEY_Thai_khokhwai: number;
+export const KEY_Thai_khorakhang: number;
+export const KEY_Thai_kokai: number;
+export const KEY_Thai_lakkhangyao: number;
+export const KEY_Thai_lekchet: number;
+export const KEY_Thai_lekha: number;
+export const KEY_Thai_lekhok: number;
+export const KEY_Thai_lekkao: number;
+export const KEY_Thai_leknung: number;
+export const KEY_Thai_lekpaet: number;
+export const KEY_Thai_leksam: number;
+export const KEY_Thai_leksi: number;
+export const KEY_Thai_leksong: number;
+export const KEY_Thai_leksun: number;
+export const KEY_Thai_lochula: number;
+export const KEY_Thai_loling: number;
+export const KEY_Thai_lu: number;
+export const KEY_Thai_maichattawa: number;
+export const KEY_Thai_maiek: number;
+export const KEY_Thai_maihanakat: number;
+export const KEY_Thai_maihanakat_maitho: number;
+export const KEY_Thai_maitaikhu: number;
+export const KEY_Thai_maitho: number;
+export const KEY_Thai_maitri: number;
+export const KEY_Thai_maiyamok: number;
+export const KEY_Thai_moma: number;
+export const KEY_Thai_ngongu: number;
+export const KEY_Thai_nikhahit: number;
+export const KEY_Thai_nonen: number;
+export const KEY_Thai_nonu: number;
+export const KEY_Thai_oang: number;
+export const KEY_Thai_paiyannoi: number;
+export const KEY_Thai_phinthu: number;
+export const KEY_Thai_phophan: number;
+export const KEY_Thai_phophung: number;
+export const KEY_Thai_phosamphao: number;
+export const KEY_Thai_popla: number;
+export const KEY_Thai_rorua: number;
+export const KEY_Thai_ru: number;
+export const KEY_Thai_saraa: number;
+export const KEY_Thai_saraaa: number;
+export const KEY_Thai_saraae: number;
+export const KEY_Thai_saraaimaimalai: number;
+export const KEY_Thai_saraaimaimuan: number;
+export const KEY_Thai_saraam: number;
+export const KEY_Thai_sarae: number;
+export const KEY_Thai_sarai: number;
+export const KEY_Thai_saraii: number;
+export const KEY_Thai_sarao: number;
+export const KEY_Thai_sarau: number;
+export const KEY_Thai_saraue: number;
+export const KEY_Thai_sarauee: number;
+export const KEY_Thai_sarauu: number;
+export const KEY_Thai_sorusi: number;
+export const KEY_Thai_sosala: number;
+export const KEY_Thai_soso: number;
+export const KEY_Thai_sosua: number;
+export const KEY_Thai_thanthakhat: number;
+export const KEY_Thai_thonangmontho: number;
+export const KEY_Thai_thophuthao: number;
+export const KEY_Thai_thothahan: number;
+export const KEY_Thai_thothan: number;
+export const KEY_Thai_thothong: number;
+export const KEY_Thai_thothung: number;
+export const KEY_Thai_topatak: number;
+export const KEY_Thai_totao: number;
+export const KEY_Thai_wowaen: number;
+export const KEY_Thai_yoyak: number;
+export const KEY_Thai_yoying: number;
+export const KEY_Thorn: number;
+export const KEY_Time: number;
+export const KEY_ToDoList: number;
+export const KEY_Tools: number;
+export const KEY_TopMenu: number;
+export const KEY_TouchpadOff: number;
+export const KEY_TouchpadOn: number;
+export const KEY_TouchpadToggle: number;
+export const KEY_Touroku: number;
+export const KEY_Travel: number;
+export const KEY_Tslash: number;
+export const KEY_U: number;
+export const KEY_UWB: number;
+export const KEY_Uacute: number;
+export const KEY_Ubelowdot: number;
+export const KEY_Ubreve: number;
+export const KEY_Ucircumflex: number;
+export const KEY_Udiaeresis: number;
+export const KEY_Udoubleacute: number;
+export const KEY_Ugrave: number;
+export const KEY_Uhook: number;
+export const KEY_Uhorn: number;
+export const KEY_Uhornacute: number;
+export const KEY_Uhornbelowdot: number;
+export const KEY_Uhorngrave: number;
+export const KEY_Uhornhook: number;
+export const KEY_Uhorntilde: number;
+export const KEY_Ukrainian_GHE_WITH_UPTURN: number;
+export const KEY_Ukrainian_I: number;
+export const KEY_Ukrainian_IE: number;
+export const KEY_Ukrainian_YI: number;
+export const KEY_Ukrainian_ghe_with_upturn: number;
+export const KEY_Ukrainian_i: number;
+export const KEY_Ukrainian_ie: number;
+export const KEY_Ukrainian_yi: number;
+export const KEY_Ukranian_I: number;
+export const KEY_Ukranian_JE: number;
+export const KEY_Ukranian_YI: number;
+export const KEY_Ukranian_i: number;
+export const KEY_Ukranian_je: number;
+export const KEY_Ukranian_yi: number;
+export const KEY_Umacron: number;
+export const KEY_Undo: number;
+export const KEY_Ungrab: number;
+export const KEY_Uogonek: number;
+export const KEY_Up: number;
+export const KEY_Uring: number;
+export const KEY_User1KB: number;
+export const KEY_User2KB: number;
+export const KEY_UserPB: number;
+export const KEY_Utilde: number;
+export const KEY_V: number;
+export const KEY_VendorHome: number;
+export const KEY_Video: number;
+export const KEY_View: number;
+export const KEY_VoidSymbol: number;
+export const KEY_W: number;
+export const KEY_WLAN: number;
+export const KEY_WWAN: number;
+export const KEY_WWW: number;
+export const KEY_Wacute: number;
+export const KEY_WakeUp: number;
+export const KEY_Wcircumflex: number;
+export const KEY_Wdiaeresis: number;
+export const KEY_WebCam: number;
+export const KEY_Wgrave: number;
+export const KEY_WheelButton: number;
+export const KEY_WindowClear: number;
+export const KEY_WonSign: number;
+export const KEY_Word: number;
+export const KEY_X: number;
+export const KEY_Xabovedot: number;
+export const KEY_Xfer: number;
+export const KEY_Y: number;
+export const KEY_Yacute: number;
+export const KEY_Ybelowdot: number;
+export const KEY_Ycircumflex: number;
+export const KEY_Ydiaeresis: number;
+export const KEY_Yellow: number;
+export const KEY_Ygrave: number;
+export const KEY_Yhook: number;
+export const KEY_Ytilde: number;
+export const KEY_Z: number;
+export const KEY_Zabovedot: number;
+export const KEY_Zacute: number;
+export const KEY_Zcaron: number;
+export const KEY_Zen_Koho: number;
+export const KEY_Zenkaku: number;
+export const KEY_Zenkaku_Hankaku: number;
+export const KEY_ZoomIn: number;
+export const KEY_ZoomOut: number;
+export const KEY_Zstroke: number;
+export const KEY_a: number;
+export const KEY_aacute: number;
+export const KEY_abelowdot: number;
+export const KEY_abovedot: number;
+export const KEY_abreve: number;
+export const KEY_abreveacute: number;
+export const KEY_abrevebelowdot: number;
+export const KEY_abrevegrave: number;
+export const KEY_abrevehook: number;
+export const KEY_abrevetilde: number;
+export const KEY_acircumflex: number;
+export const KEY_acircumflexacute: number;
+export const KEY_acircumflexbelowdot: number;
+export const KEY_acircumflexgrave: number;
+export const KEY_acircumflexhook: number;
+export const KEY_acircumflextilde: number;
+export const KEY_acute: number;
+export const KEY_adiaeresis: number;
+export const KEY_ae: number;
+export const KEY_agrave: number;
+export const KEY_ahook: number;
+export const KEY_amacron: number;
+export const KEY_ampersand: number;
+export const KEY_aogonek: number;
+export const KEY_apostrophe: number;
+export const KEY_approxeq: number;
+export const KEY_approximate: number;
+export const KEY_aring: number;
+export const KEY_asciicircum: number;
+export const KEY_asciitilde: number;
+export const KEY_asterisk: number;
+export const KEY_at: number;
+export const KEY_atilde: number;
+export const KEY_b: number;
+export const KEY_babovedot: number;
+export const KEY_backslash: number;
+export const KEY_ballotcross: number;
+export const KEY_bar: number;
+export const KEY_because: number;
+export const KEY_blank: number;
+export const KEY_botintegral: number;
+export const KEY_botleftparens: number;
+export const KEY_botleftsqbracket: number;
+export const KEY_botleftsummation: number;
+export const KEY_botrightparens: number;
+export const KEY_botrightsqbracket: number;
+export const KEY_botrightsummation: number;
+export const KEY_bott: number;
+export const KEY_botvertsummationconnector: number;
+export const KEY_braceleft: number;
+export const KEY_braceright: number;
+export const KEY_bracketleft: number;
+export const KEY_bracketright: number;
+export const KEY_braille_blank: number;
+export const KEY_braille_dot_1: number;
+export const KEY_braille_dot_10: number;
+export const KEY_braille_dot_2: number;
+export const KEY_braille_dot_3: number;
+export const KEY_braille_dot_4: number;
+export const KEY_braille_dot_5: number;
+export const KEY_braille_dot_6: number;
+export const KEY_braille_dot_7: number;
+export const KEY_braille_dot_8: number;
+export const KEY_braille_dot_9: number;
+export const KEY_braille_dots_1: number;
+export const KEY_braille_dots_12: number;
+export const KEY_braille_dots_123: number;
+export const KEY_braille_dots_1234: number;
+export const KEY_braille_dots_12345: number;
+export const KEY_braille_dots_123456: number;
+export const KEY_braille_dots_1234567: number;
+export const KEY_braille_dots_12345678: number;
+export const KEY_braille_dots_1234568: number;
+export const KEY_braille_dots_123457: number;
+export const KEY_braille_dots_1234578: number;
+export const KEY_braille_dots_123458: number;
+export const KEY_braille_dots_12346: number;
+export const KEY_braille_dots_123467: number;
+export const KEY_braille_dots_1234678: number;
+export const KEY_braille_dots_123468: number;
+export const KEY_braille_dots_12347: number;
+export const KEY_braille_dots_123478: number;
+export const KEY_braille_dots_12348: number;
+export const KEY_braille_dots_1235: number;
+export const KEY_braille_dots_12356: number;
+export const KEY_braille_dots_123567: number;
+export const KEY_braille_dots_1235678: number;
+export const KEY_braille_dots_123568: number;
+export const KEY_braille_dots_12357: number;
+export const KEY_braille_dots_123578: number;
+export const KEY_braille_dots_12358: number;
+export const KEY_braille_dots_1236: number;
+export const KEY_braille_dots_12367: number;
+export const KEY_braille_dots_123678: number;
+export const KEY_braille_dots_12368: number;
+export const KEY_braille_dots_1237: number;
+export const KEY_braille_dots_12378: number;
+export const KEY_braille_dots_1238: number;
+export const KEY_braille_dots_124: number;
+export const KEY_braille_dots_1245: number;
+export const KEY_braille_dots_12456: number;
+export const KEY_braille_dots_124567: number;
+export const KEY_braille_dots_1245678: number;
+export const KEY_braille_dots_124568: number;
+export const KEY_braille_dots_12457: number;
+export const KEY_braille_dots_124578: number;
+export const KEY_braille_dots_12458: number;
+export const KEY_braille_dots_1246: number;
+export const KEY_braille_dots_12467: number;
+export const KEY_braille_dots_124678: number;
+export const KEY_braille_dots_12468: number;
+export const KEY_braille_dots_1247: number;
+export const KEY_braille_dots_12478: number;
+export const KEY_braille_dots_1248: number;
+export const KEY_braille_dots_125: number;
+export const KEY_braille_dots_1256: number;
+export const KEY_braille_dots_12567: number;
+export const KEY_braille_dots_125678: number;
+export const KEY_braille_dots_12568: number;
+export const KEY_braille_dots_1257: number;
+export const KEY_braille_dots_12578: number;
+export const KEY_braille_dots_1258: number;
+export const KEY_braille_dots_126: number;
+export const KEY_braille_dots_1267: number;
+export const KEY_braille_dots_12678: number;
+export const KEY_braille_dots_1268: number;
+export const KEY_braille_dots_127: number;
+export const KEY_braille_dots_1278: number;
+export const KEY_braille_dots_128: number;
+export const KEY_braille_dots_13: number;
+export const KEY_braille_dots_134: number;
+export const KEY_braille_dots_1345: number;
+export const KEY_braille_dots_13456: number;
+export const KEY_braille_dots_134567: number;
+export const KEY_braille_dots_1345678: number;
+export const KEY_braille_dots_134568: number;
+export const KEY_braille_dots_13457: number;
+export const KEY_braille_dots_134578: number;
+export const KEY_braille_dots_13458: number;
+export const KEY_braille_dots_1346: number;
+export const KEY_braille_dots_13467: number;
+export const KEY_braille_dots_134678: number;
+export const KEY_braille_dots_13468: number;
+export const KEY_braille_dots_1347: number;
+export const KEY_braille_dots_13478: number;
+export const KEY_braille_dots_1348: number;
+export const KEY_braille_dots_135: number;
+export const KEY_braille_dots_1356: number;
+export const KEY_braille_dots_13567: number;
+export const KEY_braille_dots_135678: number;
+export const KEY_braille_dots_13568: number;
+export const KEY_braille_dots_1357: number;
+export const KEY_braille_dots_13578: number;
+export const KEY_braille_dots_1358: number;
+export const KEY_braille_dots_136: number;
+export const KEY_braille_dots_1367: number;
+export const KEY_braille_dots_13678: number;
+export const KEY_braille_dots_1368: number;
+export const KEY_braille_dots_137: number;
+export const KEY_braille_dots_1378: number;
+export const KEY_braille_dots_138: number;
+export const KEY_braille_dots_14: number;
+export const KEY_braille_dots_145: number;
+export const KEY_braille_dots_1456: number;
+export const KEY_braille_dots_14567: number;
+export const KEY_braille_dots_145678: number;
+export const KEY_braille_dots_14568: number;
+export const KEY_braille_dots_1457: number;
+export const KEY_braille_dots_14578: number;
+export const KEY_braille_dots_1458: number;
+export const KEY_braille_dots_146: number;
+export const KEY_braille_dots_1467: number;
+export const KEY_braille_dots_14678: number;
+export const KEY_braille_dots_1468: number;
+export const KEY_braille_dots_147: number;
+export const KEY_braille_dots_1478: number;
+export const KEY_braille_dots_148: number;
+export const KEY_braille_dots_15: number;
+export const KEY_braille_dots_156: number;
+export const KEY_braille_dots_1567: number;
+export const KEY_braille_dots_15678: number;
+export const KEY_braille_dots_1568: number;
+export const KEY_braille_dots_157: number;
+export const KEY_braille_dots_1578: number;
+export const KEY_braille_dots_158: number;
+export const KEY_braille_dots_16: number;
+export const KEY_braille_dots_167: number;
+export const KEY_braille_dots_1678: number;
+export const KEY_braille_dots_168: number;
+export const KEY_braille_dots_17: number;
+export const KEY_braille_dots_178: number;
+export const KEY_braille_dots_18: number;
+export const KEY_braille_dots_2: number;
+export const KEY_braille_dots_23: number;
+export const KEY_braille_dots_234: number;
+export const KEY_braille_dots_2345: number;
+export const KEY_braille_dots_23456: number;
+export const KEY_braille_dots_234567: number;
+export const KEY_braille_dots_2345678: number;
+export const KEY_braille_dots_234568: number;
+export const KEY_braille_dots_23457: number;
+export const KEY_braille_dots_234578: number;
+export const KEY_braille_dots_23458: number;
+export const KEY_braille_dots_2346: number;
+export const KEY_braille_dots_23467: number;
+export const KEY_braille_dots_234678: number;
+export const KEY_braille_dots_23468: number;
+export const KEY_braille_dots_2347: number;
+export const KEY_braille_dots_23478: number;
+export const KEY_braille_dots_2348: number;
+export const KEY_braille_dots_235: number;
+export const KEY_braille_dots_2356: number;
+export const KEY_braille_dots_23567: number;
+export const KEY_braille_dots_235678: number;
+export const KEY_braille_dots_23568: number;
+export const KEY_braille_dots_2357: number;
+export const KEY_braille_dots_23578: number;
+export const KEY_braille_dots_2358: number;
+export const KEY_braille_dots_236: number;
+export const KEY_braille_dots_2367: number;
+export const KEY_braille_dots_23678: number;
+export const KEY_braille_dots_2368: number;
+export const KEY_braille_dots_237: number;
+export const KEY_braille_dots_2378: number;
+export const KEY_braille_dots_238: number;
+export const KEY_braille_dots_24: number;
+export const KEY_braille_dots_245: number;
+export const KEY_braille_dots_2456: number;
+export const KEY_braille_dots_24567: number;
+export const KEY_braille_dots_245678: number;
+export const KEY_braille_dots_24568: number;
+export const KEY_braille_dots_2457: number;
+export const KEY_braille_dots_24578: number;
+export const KEY_braille_dots_2458: number;
+export const KEY_braille_dots_246: number;
+export const KEY_braille_dots_2467: number;
+export const KEY_braille_dots_24678: number;
+export const KEY_braille_dots_2468: number;
+export const KEY_braille_dots_247: number;
+export const KEY_braille_dots_2478: number;
+export const KEY_braille_dots_248: number;
+export const KEY_braille_dots_25: number;
+export const KEY_braille_dots_256: number;
+export const KEY_braille_dots_2567: number;
+export const KEY_braille_dots_25678: number;
+export const KEY_braille_dots_2568: number;
+export const KEY_braille_dots_257: number;
+export const KEY_braille_dots_2578: number;
+export const KEY_braille_dots_258: number;
+export const KEY_braille_dots_26: number;
+export const KEY_braille_dots_267: number;
+export const KEY_braille_dots_2678: number;
+export const KEY_braille_dots_268: number;
+export const KEY_braille_dots_27: number;
+export const KEY_braille_dots_278: number;
+export const KEY_braille_dots_28: number;
+export const KEY_braille_dots_3: number;
+export const KEY_braille_dots_34: number;
+export const KEY_braille_dots_345: number;
+export const KEY_braille_dots_3456: number;
+export const KEY_braille_dots_34567: number;
+export const KEY_braille_dots_345678: number;
+export const KEY_braille_dots_34568: number;
+export const KEY_braille_dots_3457: number;
+export const KEY_braille_dots_34578: number;
+export const KEY_braille_dots_3458: number;
+export const KEY_braille_dots_346: number;
+export const KEY_braille_dots_3467: number;
+export const KEY_braille_dots_34678: number;
+export const KEY_braille_dots_3468: number;
+export const KEY_braille_dots_347: number;
+export const KEY_braille_dots_3478: number;
+export const KEY_braille_dots_348: number;
+export const KEY_braille_dots_35: number;
+export const KEY_braille_dots_356: number;
+export const KEY_braille_dots_3567: number;
+export const KEY_braille_dots_35678: number;
+export const KEY_braille_dots_3568: number;
+export const KEY_braille_dots_357: number;
+export const KEY_braille_dots_3578: number;
+export const KEY_braille_dots_358: number;
+export const KEY_braille_dots_36: number;
+export const KEY_braille_dots_367: number;
+export const KEY_braille_dots_3678: number;
+export const KEY_braille_dots_368: number;
+export const KEY_braille_dots_37: number;
+export const KEY_braille_dots_378: number;
+export const KEY_braille_dots_38: number;
+export const KEY_braille_dots_4: number;
+export const KEY_braille_dots_45: number;
+export const KEY_braille_dots_456: number;
+export const KEY_braille_dots_4567: number;
+export const KEY_braille_dots_45678: number;
+export const KEY_braille_dots_4568: number;
+export const KEY_braille_dots_457: number;
+export const KEY_braille_dots_4578: number;
+export const KEY_braille_dots_458: number;
+export const KEY_braille_dots_46: number;
+export const KEY_braille_dots_467: number;
+export const KEY_braille_dots_4678: number;
+export const KEY_braille_dots_468: number;
+export const KEY_braille_dots_47: number;
+export const KEY_braille_dots_478: number;
+export const KEY_braille_dots_48: number;
+export const KEY_braille_dots_5: number;
+export const KEY_braille_dots_56: number;
+export const KEY_braille_dots_567: number;
+export const KEY_braille_dots_5678: number;
+export const KEY_braille_dots_568: number;
+export const KEY_braille_dots_57: number;
+export const KEY_braille_dots_578: number;
+export const KEY_braille_dots_58: number;
+export const KEY_braille_dots_6: number;
+export const KEY_braille_dots_67: number;
+export const KEY_braille_dots_678: number;
+export const KEY_braille_dots_68: number;
+export const KEY_braille_dots_7: number;
+export const KEY_braille_dots_78: number;
+export const KEY_braille_dots_8: number;
+export const KEY_breve: number;
+export const KEY_brokenbar: number;
+export const KEY_c: number;
+export const KEY_c_h: number;
+export const KEY_cabovedot: number;
+export const KEY_cacute: number;
+export const KEY_careof: number;
+export const KEY_caret: number;
+export const KEY_caron: number;
+export const KEY_ccaron: number;
+export const KEY_ccedilla: number;
+export const KEY_ccircumflex: number;
+export const KEY_cedilla: number;
+export const KEY_cent: number;
+export const KEY_ch: number;
+export const KEY_checkerboard: number;
+export const KEY_checkmark: number;
+export const KEY_circle: number;
+export const KEY_club: number;
+export const KEY_colon: number;
+export const KEY_comma: number;
+export const KEY_containsas: number;
+export const KEY_copyright: number;
+export const KEY_cr: number;
+export const KEY_crossinglines: number;
+export const KEY_cuberoot: number;
+export const KEY_currency: number;
+export const KEY_cursor: number;
+export const KEY_d: number;
+export const KEY_dabovedot: number;
+export const KEY_dagger: number;
+export const KEY_dcaron: number;
+export const KEY_dead_A: number;
+export const KEY_dead_E: number;
+export const KEY_dead_I: number;
+export const KEY_dead_O: number;
+export const KEY_dead_U: number;
+export const KEY_dead_a: number;
+export const KEY_dead_abovecomma: number;
+export const KEY_dead_abovedot: number;
+export const KEY_dead_abovereversedcomma: number;
+export const KEY_dead_abovering: number;
+export const KEY_dead_aboveverticalline: number;
+export const KEY_dead_acute: number;
+export const KEY_dead_belowbreve: number;
+export const KEY_dead_belowcircumflex: number;
+export const KEY_dead_belowcomma: number;
+export const KEY_dead_belowdiaeresis: number;
+export const KEY_dead_belowdot: number;
+export const KEY_dead_belowmacron: number;
+export const KEY_dead_belowring: number;
+export const KEY_dead_belowtilde: number;
+export const KEY_dead_belowverticalline: number;
+export const KEY_dead_breve: number;
+export const KEY_dead_capital_schwa: number;
+export const KEY_dead_caron: number;
+export const KEY_dead_cedilla: number;
+export const KEY_dead_circumflex: number;
+export const KEY_dead_currency: number;
+export const KEY_dead_dasia: number;
+export const KEY_dead_diaeresis: number;
+export const KEY_dead_doubleacute: number;
+export const KEY_dead_doublegrave: number;
+export const KEY_dead_e: number;
+export const KEY_dead_grave: number;
+export const KEY_dead_greek: number;
+export const KEY_dead_hook: number;
+export const KEY_dead_horn: number;
+export const KEY_dead_i: number;
+export const KEY_dead_invertedbreve: number;
+export const KEY_dead_iota: number;
+export const KEY_dead_longsolidusoverlay: number;
+export const KEY_dead_lowline: number;
+export const KEY_dead_macron: number;
+export const KEY_dead_o: number;
+export const KEY_dead_ogonek: number;
+export const KEY_dead_perispomeni: number;
+export const KEY_dead_psili: number;
+export const KEY_dead_semivoiced_sound: number;
+export const KEY_dead_small_schwa: number;
+export const KEY_dead_stroke: number;
+export const KEY_dead_tilde: number;
+export const KEY_dead_u: number;
+export const KEY_dead_voiced_sound: number;
+export const KEY_decimalpoint: number;
+export const KEY_degree: number;
+export const KEY_diaeresis: number;
+export const KEY_diamond: number;
+export const KEY_digitspace: number;
+export const KEY_dintegral: number;
+export const KEY_division: number;
+export const KEY_dollar: number;
+export const KEY_doubbaselinedot: number;
+export const KEY_doubleacute: number;
+export const KEY_doubledagger: number;
+export const KEY_doublelowquotemark: number;
+export const KEY_downarrow: number;
+export const KEY_downcaret: number;
+export const KEY_downshoe: number;
+export const KEY_downstile: number;
+export const KEY_downtack: number;
+export const KEY_dstroke: number;
+export const KEY_e: number;
+export const KEY_eabovedot: number;
+export const KEY_eacute: number;
+export const KEY_ebelowdot: number;
+export const KEY_ecaron: number;
+export const KEY_ecircumflex: number;
+export const KEY_ecircumflexacute: number;
+export const KEY_ecircumflexbelowdot: number;
+export const KEY_ecircumflexgrave: number;
+export const KEY_ecircumflexhook: number;
+export const KEY_ecircumflextilde: number;
+export const KEY_ediaeresis: number;
+export const KEY_egrave: number;
+export const KEY_ehook: number;
+export const KEY_eightsubscript: number;
+export const KEY_eightsuperior: number;
+export const KEY_elementof: number;
+export const KEY_ellipsis: number;
+export const KEY_em3space: number;
+export const KEY_em4space: number;
+export const KEY_emacron: number;
+export const KEY_emdash: number;
+export const KEY_emfilledcircle: number;
+export const KEY_emfilledrect: number;
+export const KEY_emopencircle: number;
+export const KEY_emopenrectangle: number;
+export const KEY_emptyset: number;
+export const KEY_emspace: number;
+export const KEY_endash: number;
+export const KEY_enfilledcircbullet: number;
+export const KEY_enfilledsqbullet: number;
+export const KEY_eng: number;
+export const KEY_enopencircbullet: number;
+export const KEY_enopensquarebullet: number;
+export const KEY_enspace: number;
+export const KEY_eogonek: number;
+export const KEY_equal: number;
+export const KEY_eth: number;
+export const KEY_etilde: number;
+export const KEY_exclam: number;
+export const KEY_exclamdown: number;
+export const KEY_ezh: number;
+export const KEY_f: number;
+export const KEY_fabovedot: number;
+export const KEY_femalesymbol: number;
+export const KEY_ff: number;
+export const KEY_figdash: number;
+export const KEY_filledlefttribullet: number;
+export const KEY_filledrectbullet: number;
+export const KEY_filledrighttribullet: number;
+export const KEY_filledtribulletdown: number;
+export const KEY_filledtribulletup: number;
+export const KEY_fiveeighths: number;
+export const KEY_fivesixths: number;
+export const KEY_fivesubscript: number;
+export const KEY_fivesuperior: number;
+export const KEY_fourfifths: number;
+export const KEY_foursubscript: number;
+export const KEY_foursuperior: number;
+export const KEY_fourthroot: number;
+export const KEY_function: number;
+export const KEY_g: number;
+export const KEY_gabovedot: number;
+export const KEY_gbreve: number;
+export const KEY_gcaron: number;
+export const KEY_gcedilla: number;
+export const KEY_gcircumflex: number;
+export const KEY_grave: number;
+export const KEY_greater: number;
+export const KEY_greaterthanequal: number;
+export const KEY_guillemotleft: number;
+export const KEY_guillemotright: number;
+export const KEY_h: number;
+export const KEY_hairspace: number;
+export const KEY_hcircumflex: number;
+export const KEY_heart: number;
+export const KEY_hebrew_aleph: number;
+export const KEY_hebrew_ayin: number;
+export const KEY_hebrew_bet: number;
+export const KEY_hebrew_beth: number;
+export const KEY_hebrew_chet: number;
+export const KEY_hebrew_dalet: number;
+export const KEY_hebrew_daleth: number;
+export const KEY_hebrew_doublelowline: number;
+export const KEY_hebrew_finalkaph: number;
+export const KEY_hebrew_finalmem: number;
+export const KEY_hebrew_finalnun: number;
+export const KEY_hebrew_finalpe: number;
+export const KEY_hebrew_finalzade: number;
+export const KEY_hebrew_finalzadi: number;
+export const KEY_hebrew_gimel: number;
+export const KEY_hebrew_gimmel: number;
+export const KEY_hebrew_he: number;
+export const KEY_hebrew_het: number;
+export const KEY_hebrew_kaph: number;
+export const KEY_hebrew_kuf: number;
+export const KEY_hebrew_lamed: number;
+export const KEY_hebrew_mem: number;
+export const KEY_hebrew_nun: number;
+export const KEY_hebrew_pe: number;
+export const KEY_hebrew_qoph: number;
+export const KEY_hebrew_resh: number;
+export const KEY_hebrew_samech: number;
+export const KEY_hebrew_samekh: number;
+export const KEY_hebrew_shin: number;
+export const KEY_hebrew_taf: number;
+export const KEY_hebrew_taw: number;
+export const KEY_hebrew_tet: number;
+export const KEY_hebrew_teth: number;
+export const KEY_hebrew_waw: number;
+export const KEY_hebrew_yod: number;
+export const KEY_hebrew_zade: number;
+export const KEY_hebrew_zadi: number;
+export const KEY_hebrew_zain: number;
+export const KEY_hebrew_zayin: number;
+export const KEY_hexagram: number;
+export const KEY_horizconnector: number;
+export const KEY_horizlinescan1: number;
+export const KEY_horizlinescan3: number;
+export const KEY_horizlinescan5: number;
+export const KEY_horizlinescan7: number;
+export const KEY_horizlinescan9: number;
+export const KEY_hstroke: number;
+export const KEY_ht: number;
+export const KEY_hyphen: number;
+export const KEY_i: number;
+export const KEY_iTouch: number;
+export const KEY_iacute: number;
+export const KEY_ibelowdot: number;
+export const KEY_ibreve: number;
+export const KEY_icircumflex: number;
+export const KEY_identical: number;
+export const KEY_idiaeresis: number;
+export const KEY_idotless: number;
+export const KEY_ifonlyif: number;
+export const KEY_igrave: number;
+export const KEY_ihook: number;
+export const KEY_imacron: number;
+export const KEY_implies: number;
+export const KEY_includedin: number;
+export const KEY_includes: number;
+export const KEY_infinity: number;
+export const KEY_integral: number;
+export const KEY_intersection: number;
+export const KEY_iogonek: number;
+export const KEY_itilde: number;
+export const KEY_j: number;
+export const KEY_jcircumflex: number;
+export const KEY_jot: number;
+export const KEY_k: number;
+export const KEY_kana_A: number;
+export const KEY_kana_CHI: number;
+export const KEY_kana_E: number;
+export const KEY_kana_FU: number;
+export const KEY_kana_HA: number;
+export const KEY_kana_HE: number;
+export const KEY_kana_HI: number;
+export const KEY_kana_HO: number;
+export const KEY_kana_HU: number;
+export const KEY_kana_I: number;
+export const KEY_kana_KA: number;
+export const KEY_kana_KE: number;
+export const KEY_kana_KI: number;
+export const KEY_kana_KO: number;
+export const KEY_kana_KU: number;
+export const KEY_kana_MA: number;
+export const KEY_kana_ME: number;
+export const KEY_kana_MI: number;
+export const KEY_kana_MO: number;
+export const KEY_kana_MU: number;
+export const KEY_kana_N: number;
+export const KEY_kana_NA: number;
+export const KEY_kana_NE: number;
+export const KEY_kana_NI: number;
+export const KEY_kana_NO: number;
+export const KEY_kana_NU: number;
+export const KEY_kana_O: number;
+export const KEY_kana_RA: number;
+export const KEY_kana_RE: number;
+export const KEY_kana_RI: number;
+export const KEY_kana_RO: number;
+export const KEY_kana_RU: number;
+export const KEY_kana_SA: number;
+export const KEY_kana_SE: number;
+export const KEY_kana_SHI: number;
+export const KEY_kana_SO: number;
+export const KEY_kana_SU: number;
+export const KEY_kana_TA: number;
+export const KEY_kana_TE: number;
+export const KEY_kana_TI: number;
+export const KEY_kana_TO: number;
+export const KEY_kana_TSU: number;
+export const KEY_kana_TU: number;
+export const KEY_kana_U: number;
+export const KEY_kana_WA: number;
+export const KEY_kana_WO: number;
+export const KEY_kana_YA: number;
+export const KEY_kana_YO: number;
+export const KEY_kana_YU: number;
+export const KEY_kana_a: number;
+export const KEY_kana_closingbracket: number;
+export const KEY_kana_comma: number;
+export const KEY_kana_conjunctive: number;
+export const KEY_kana_e: number;
+export const KEY_kana_fullstop: number;
+export const KEY_kana_i: number;
+export const KEY_kana_middledot: number;
+export const KEY_kana_o: number;
+export const KEY_kana_openingbracket: number;
+export const KEY_kana_switch: number;
+export const KEY_kana_tsu: number;
+export const KEY_kana_tu: number;
+export const KEY_kana_u: number;
+export const KEY_kana_ya: number;
+export const KEY_kana_yo: number;
+export const KEY_kana_yu: number;
+export const KEY_kappa: number;
+export const KEY_kcedilla: number;
+export const KEY_kra: number;
+export const KEY_l: number;
+export const KEY_lacute: number;
+export const KEY_latincross: number;
+export const KEY_lbelowdot: number;
+export const KEY_lcaron: number;
+export const KEY_lcedilla: number;
+export const KEY_leftanglebracket: number;
+export const KEY_leftarrow: number;
+export const KEY_leftcaret: number;
+export const KEY_leftdoublequotemark: number;
+export const KEY_leftmiddlecurlybrace: number;
+export const KEY_leftopentriangle: number;
+export const KEY_leftpointer: number;
+export const KEY_leftradical: number;
+export const KEY_leftshoe: number;
+export const KEY_leftsinglequotemark: number;
+export const KEY_leftt: number;
+export const KEY_lefttack: number;
+export const KEY_less: number;
+export const KEY_lessthanequal: number;
+export const KEY_lf: number;
+export const KEY_logicaland: number;
+export const KEY_logicalor: number;
+export const KEY_lowleftcorner: number;
+export const KEY_lowrightcorner: number;
+export const KEY_lstroke: number;
+export const KEY_m: number;
+export const KEY_mabovedot: number;
+export const KEY_macron: number;
+export const KEY_malesymbol: number;
+export const KEY_maltesecross: number;
+export const KEY_marker: number;
+export const KEY_masculine: number;
+export const KEY_minus: number;
+export const KEY_minutes: number;
+export const KEY_mu: number;
+export const KEY_multiply: number;
+export const KEY_musicalflat: number;
+export const KEY_musicalsharp: number;
+export const KEY_n: number;
+export const KEY_nabla: number;
+export const KEY_nacute: number;
+export const KEY_ncaron: number;
+export const KEY_ncedilla: number;
+export const KEY_ninesubscript: number;
+export const KEY_ninesuperior: number;
+export const KEY_nl: number;
+export const KEY_nobreakspace: number;
+export const KEY_notapproxeq: number;
+export const KEY_notelementof: number;
+export const KEY_notequal: number;
+export const KEY_notidentical: number;
+export const KEY_notsign: number;
+export const KEY_ntilde: number;
+export const KEY_numbersign: number;
+export const KEY_numerosign: number;
+export const KEY_o: number;
+export const KEY_oacute: number;
+export const KEY_obarred: number;
+export const KEY_obelowdot: number;
+export const KEY_ocaron: number;
+export const KEY_ocircumflex: number;
+export const KEY_ocircumflexacute: number;
+export const KEY_ocircumflexbelowdot: number;
+export const KEY_ocircumflexgrave: number;
+export const KEY_ocircumflexhook: number;
+export const KEY_ocircumflextilde: number;
+export const KEY_odiaeresis: number;
+export const KEY_odoubleacute: number;
+export const KEY_oe: number;
+export const KEY_ogonek: number;
+export const KEY_ograve: number;
+export const KEY_ohook: number;
+export const KEY_ohorn: number;
+export const KEY_ohornacute: number;
+export const KEY_ohornbelowdot: number;
+export const KEY_ohorngrave: number;
+export const KEY_ohornhook: number;
+export const KEY_ohorntilde: number;
+export const KEY_omacron: number;
+export const KEY_oneeighth: number;
+export const KEY_onefifth: number;
+export const KEY_onehalf: number;
+export const KEY_onequarter: number;
+export const KEY_onesixth: number;
+export const KEY_onesubscript: number;
+export const KEY_onesuperior: number;
+export const KEY_onethird: number;
+export const KEY_ooblique: number;
+export const KEY_openrectbullet: number;
+export const KEY_openstar: number;
+export const KEY_opentribulletdown: number;
+export const KEY_opentribulletup: number;
+export const KEY_ordfeminine: number;
+export const KEY_oslash: number;
+export const KEY_otilde: number;
+export const KEY_overbar: number;
+export const KEY_overline: number;
+export const KEY_p: number;
+export const KEY_pabovedot: number;
+export const KEY_paragraph: number;
+export const KEY_parenleft: number;
+export const KEY_parenright: number;
+export const KEY_partdifferential: number;
+export const KEY_partialderivative: number;
+export const KEY_percent: number;
+export const KEY_period: number;
+export const KEY_periodcentered: number;
+export const KEY_permille: number;
+export const KEY_phonographcopyright: number;
+export const KEY_plus: number;
+export const KEY_plusminus: number;
+export const KEY_prescription: number;
+export const KEY_prolongedsound: number;
+export const KEY_punctspace: number;
+export const KEY_q: number;
+export const KEY_quad: number;
+export const KEY_question: number;
+export const KEY_questiondown: number;
+export const KEY_quotedbl: number;
+export const KEY_quoteleft: number;
+export const KEY_quoteright: number;
+export const KEY_r: number;
+export const KEY_racute: number;
+export const KEY_radical: number;
+export const KEY_rcaron: number;
+export const KEY_rcedilla: number;
+export const KEY_registered: number;
+export const KEY_rightanglebracket: number;
+export const KEY_rightarrow: number;
+export const KEY_rightcaret: number;
+export const KEY_rightdoublequotemark: number;
+export const KEY_rightmiddlecurlybrace: number;
+export const KEY_rightmiddlesummation: number;
+export const KEY_rightopentriangle: number;
+export const KEY_rightpointer: number;
+export const KEY_rightshoe: number;
+export const KEY_rightsinglequotemark: number;
+export const KEY_rightt: number;
+export const KEY_righttack: number;
+export const KEY_s: number;
+export const KEY_sabovedot: number;
+export const KEY_sacute: number;
+export const KEY_scaron: number;
+export const KEY_scedilla: number;
+export const KEY_schwa: number;
+export const KEY_scircumflex: number;
+export const KEY_script_switch: number;
+export const KEY_seconds: number;
+export const KEY_section: number;
+export const KEY_semicolon: number;
+export const KEY_semivoicedsound: number;
+export const KEY_seveneighths: number;
+export const KEY_sevensubscript: number;
+export const KEY_sevensuperior: number;
+export const KEY_signaturemark: number;
+export const KEY_signifblank: number;
+export const KEY_similarequal: number;
+export const KEY_singlelowquotemark: number;
+export const KEY_sixsubscript: number;
+export const KEY_sixsuperior: number;
+export const KEY_slash: number;
+export const KEY_soliddiamond: number;
+export const KEY_space: number;
+export const KEY_squareroot: number;
+export const KEY_ssharp: number;
+export const KEY_sterling: number;
+export const KEY_stricteq: number;
+export const KEY_t: number;
+export const KEY_tabovedot: number;
+export const KEY_tcaron: number;
+export const KEY_tcedilla: number;
+export const KEY_telephone: number;
+export const KEY_telephonerecorder: number;
+export const KEY_therefore: number;
+export const KEY_thinspace: number;
+export const KEY_thorn: number;
+export const KEY_threeeighths: number;
+export const KEY_threefifths: number;
+export const KEY_threequarters: number;
+export const KEY_threesubscript: number;
+export const KEY_threesuperior: number;
+export const KEY_tintegral: number;
+export const KEY_topintegral: number;
+export const KEY_topleftparens: number;
+export const KEY_topleftradical: number;
+export const KEY_topleftsqbracket: number;
+export const KEY_topleftsummation: number;
+export const KEY_toprightparens: number;
+export const KEY_toprightsqbracket: number;
+export const KEY_toprightsummation: number;
+export const KEY_topt: number;
+export const KEY_topvertsummationconnector: number;
+export const KEY_trademark: number;
+export const KEY_trademarkincircle: number;
+export const KEY_tslash: number;
+export const KEY_twofifths: number;
+export const KEY_twosubscript: number;
+export const KEY_twosuperior: number;
+export const KEY_twothirds: number;
+export const KEY_u: number;
+export const KEY_uacute: number;
+export const KEY_ubelowdot: number;
+export const KEY_ubreve: number;
+export const KEY_ucircumflex: number;
+export const KEY_udiaeresis: number;
+export const KEY_udoubleacute: number;
+export const KEY_ugrave: number;
+export const KEY_uhook: number;
+export const KEY_uhorn: number;
+export const KEY_uhornacute: number;
+export const KEY_uhornbelowdot: number;
+export const KEY_uhorngrave: number;
+export const KEY_uhornhook: number;
+export const KEY_uhorntilde: number;
+export const KEY_umacron: number;
+export const KEY_underbar: number;
+export const KEY_underscore: number;
+export const KEY_union: number;
+export const KEY_uogonek: number;
+export const KEY_uparrow: number;
+export const KEY_upcaret: number;
+export const KEY_upleftcorner: number;
+export const KEY_uprightcorner: number;
+export const KEY_upshoe: number;
+export const KEY_upstile: number;
+export const KEY_uptack: number;
+export const KEY_uring: number;
+export const KEY_utilde: number;
+export const KEY_v: number;
+export const KEY_variation: number;
+export const KEY_vertbar: number;
+export const KEY_vertconnector: number;
+export const KEY_voicedsound: number;
+export const KEY_vt: number;
+export const KEY_w: number;
+export const KEY_wacute: number;
+export const KEY_wcircumflex: number;
+export const KEY_wdiaeresis: number;
+export const KEY_wgrave: number;
+export const KEY_x: number;
+export const KEY_xabovedot: number;
+export const KEY_y: number;
+export const KEY_yacute: number;
+export const KEY_ybelowdot: number;
+export const KEY_ycircumflex: number;
+export const KEY_ydiaeresis: number;
+export const KEY_yen: number;
+export const KEY_ygrave: number;
+export const KEY_yhook: number;
+export const KEY_ytilde: number;
+export const KEY_z: number;
+export const KEY_zabovedot: number;
+export const KEY_zacute: number;
+export const KEY_zcaron: number;
+export const KEY_zerosubscript: number;
+export const KEY_zerosuperior: number;
+export const KEY_zstroke: number;
+export const MODIFIER_MASK: number;
+export const PRIORITY_REDRAW: number;
+export function cairo_draw_from_gl(
+    cr: cairo.Context,
+    surface: Surface,
+    source: number,
+    source_type: number,
+    buffer_scale: number,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function cairo_rectangle(cr: cairo.Context, rectangle: Rectangle): void;
+export function cairo_region(cr: cairo.Context, region: cairo.Region): void;
+export function cairo_region_create_from_surface(surface: cairo.Surface): cairo.Region;
+export function cairo_set_source_pixbuf(
+    cr: cairo.Context,
+    pixbuf: GdkPixbuf.Pixbuf,
+    pixbuf_x: number,
+    pixbuf_y: number
+): void;
+export function cairo_set_source_rgba(cr: cairo.Context, rgba: RGBA): void;
+export function content_deserialize_async(
+    stream: Gio.InputStream,
+    mime_type: string,
+    type: GObject.GType,
+    io_priority: number,
+    cancellable?: Gio.Cancellable | null,
+    callback?: Gio.AsyncReadyCallback<Gio.InputStream> | null
+): void;
+export function content_deserialize_finish(result: Gio.AsyncResult): [boolean, unknown];
+export function content_formats_parse(string: string): ContentFormats | null;
+export function content_register_deserializer(
+    mime_type: string,
+    type: GObject.GType,
+    deserialize: ContentDeserializeFunc
+): void;
+export function content_register_serializer(
+    type: GObject.GType,
+    mime_type: string,
+    serialize: ContentSerializeFunc
+): void;
+export function content_serialize_async(
+    stream: Gio.OutputStream,
+    mime_type: string,
+    value: GObject.Value | any,
+    io_priority: number,
+    cancellable?: Gio.Cancellable | null,
+    callback?: Gio.AsyncReadyCallback<Gio.OutputStream> | null
+): void;
+export function content_serialize_finish(result: Gio.AsyncResult): boolean;
+export function drag_action_is_unique(action: DragAction): boolean;
+export function events_get_angle(event1: Event, event2: Event): [boolean, number];
+export function events_get_center(event1: Event, event2: Event): [boolean, number, number];
+export function events_get_distance(event1: Event, event2: Event): [boolean, number];
+export function gl_error_quark(): GLib.Quark;
+export function intern_mime_type(string: string): string | null;
+export function keyval_convert_case(symbol: number): [number, number];
+export function keyval_from_name(keyval_name: string): number;
+export function keyval_is_lower(keyval: number): boolean;
+export function keyval_is_upper(keyval: number): boolean;
+export function keyval_name(keyval: number): string | null;
+export function keyval_to_lower(keyval: number): number;
+export function keyval_to_unicode(keyval: number): number;
+export function keyval_to_upper(keyval: number): number;
+export function paintable_new_empty(intrinsic_width: number, intrinsic_height: number): Paintable;
+export function pixbuf_get_from_surface(
+    surface: cairo.Surface,
+    src_x: number,
+    src_y: number,
+    width: number,
+    height: number
+): GdkPixbuf.Pixbuf | null;
+export function pixbuf_get_from_texture(texture: Texture): GdkPixbuf.Pixbuf | null;
+export function set_allowed_backends(backends: string): void;
+export function texture_error_quark(): GLib.Quark;
+export function toplevel_size_get_type(): GObject.GType;
+export function unicode_to_keyval(wc: number): number;
+export function vulkan_error_quark(): GLib.Quark;
+export type ContentDeserializeFunc = (deserializer: ContentDeserializer) => void;
+export type ContentSerializeFunc = (serializer: ContentSerializer) => void;
+
+export namespace AxisUse {
+    export const $gtype: GObject.GType<AxisUse>;
+}
+
+export enum AxisUse {
+    IGNORE = 0,
+    X = 1,
+    Y = 2,
+    DELTA_X = 3,
+    DELTA_Y = 4,
+    PRESSURE = 5,
+    XTILT = 6,
+    YTILT = 7,
+    WHEEL = 8,
+    DISTANCE = 9,
+    ROTATION = 10,
+    SLIDER = 11,
+    LAST = 12,
+}
+
+export namespace CrossingMode {
+    export const $gtype: GObject.GType<CrossingMode>;
+}
+
+export enum CrossingMode {
+    NORMAL = 0,
+    GRAB = 1,
+    UNGRAB = 2,
+    GTK_GRAB = 3,
+    GTK_UNGRAB = 4,
+    STATE_CHANGED = 5,
+    TOUCH_BEGIN = 6,
+    TOUCH_END = 7,
+    DEVICE_SWITCH = 8,
+}
+
+export namespace DevicePadFeature {
+    export const $gtype: GObject.GType<DevicePadFeature>;
+}
+
+export enum DevicePadFeature {
+    BUTTON = 0,
+    RING = 1,
+    STRIP = 2,
+}
+
+export namespace DeviceToolType {
+    export const $gtype: GObject.GType<DeviceToolType>;
+}
+
+export enum DeviceToolType {
+    UNKNOWN = 0,
+    PEN = 1,
+    ERASER = 2,
+    BRUSH = 3,
+    PENCIL = 4,
+    AIRBRUSH = 5,
+    MOUSE = 6,
+    LENS = 7,
+}
+
+export namespace DragCancelReason {
+    export const $gtype: GObject.GType<DragCancelReason>;
+}
+
+export enum DragCancelReason {
+    NO_TARGET = 0,
+    USER_CANCELLED = 1,
+    ERROR = 2,
+}
+
+export namespace EventType {
+    export const $gtype: GObject.GType<EventType>;
+}
+
+export enum EventType {
+    DELETE = 0,
+    MOTION_NOTIFY = 1,
+    BUTTON_PRESS = 2,
+    BUTTON_RELEASE = 3,
+    KEY_PRESS = 4,
+    KEY_RELEASE = 5,
+    ENTER_NOTIFY = 6,
+    LEAVE_NOTIFY = 7,
+    FOCUS_CHANGE = 8,
+    PROXIMITY_IN = 9,
+    PROXIMITY_OUT = 10,
+    DRAG_ENTER = 11,
+    DRAG_LEAVE = 12,
+    DRAG_MOTION = 13,
+    DROP_START = 14,
+    SCROLL = 15,
+    GRAB_BROKEN = 16,
+    TOUCH_BEGIN = 17,
+    TOUCH_UPDATE = 18,
+    TOUCH_END = 19,
+    TOUCH_CANCEL = 20,
+    TOUCHPAD_SWIPE = 21,
+    TOUCHPAD_PINCH = 22,
+    PAD_BUTTON_PRESS = 23,
+    PAD_BUTTON_RELEASE = 24,
+    PAD_RING = 25,
+    PAD_STRIP = 26,
+    PAD_GROUP_MODE = 27,
+    TOUCHPAD_HOLD = 28,
+    EVENT_LAST = 29,
+}
+
+export namespace FullscreenMode {
+    export const $gtype: GObject.GType<FullscreenMode>;
+}
+
+export enum FullscreenMode {
+    CURRENT_MONITOR = 0,
+    ALL_MONITORS = 1,
+}
+
+export class GLError extends GLib.Error {
+    static $gtype: GObject.GType<GLError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: GLError);
+
+    // Fields
+    static NOT_AVAILABLE: number;
+    static UNSUPPORTED_FORMAT: number;
+    static UNSUPPORTED_PROFILE: number;
+    static COMPILATION_FAILED: number;
+    static LINK_FAILED: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace Gravity {
+    export const $gtype: GObject.GType<Gravity>;
+}
+
+export enum Gravity {
+    NORTH_WEST = 1,
+    NORTH = 2,
+    NORTH_EAST = 3,
+    WEST = 4,
+    CENTER = 5,
+    EAST = 6,
+    SOUTH_WEST = 7,
+    SOUTH = 8,
+    SOUTH_EAST = 9,
+    STATIC = 10,
+}
+
+export namespace InputSource {
+    export const $gtype: GObject.GType<InputSource>;
+}
+
+export enum InputSource {
+    MOUSE = 0,
+    PEN = 1,
+    KEYBOARD = 2,
+    TOUCHSCREEN = 3,
+    TOUCHPAD = 4,
+    TRACKPOINT = 5,
+    TABLET_PAD = 6,
+}
+
+export namespace KeyMatch {
+    export const $gtype: GObject.GType<KeyMatch>;
+}
+
+export enum KeyMatch {
+    NONE = 0,
+    PARTIAL = 1,
+    EXACT = 2,
+}
+
+export namespace MemoryFormat {
+    export const $gtype: GObject.GType<MemoryFormat>;
+}
+
+export enum MemoryFormat {
+    B8G8R8A8_PREMULTIPLIED = 0,
+    A8R8G8B8_PREMULTIPLIED = 1,
+    R8G8B8A8_PREMULTIPLIED = 2,
+    B8G8R8A8 = 3,
+    A8R8G8B8 = 4,
+    R8G8B8A8 = 5,
+    A8B8G8R8 = 6,
+    R8G8B8 = 7,
+    B8G8R8 = 8,
+    R16G16B16 = 9,
+    R16G16B16A16_PREMULTIPLIED = 10,
+    R16G16B16A16 = 11,
+    R16G16B16_FLOAT = 12,
+    R16G16B16A16_FLOAT_PREMULTIPLIED = 13,
+    R16G16B16A16_FLOAT = 14,
+    R32G32B32_FLOAT = 15,
+    R32G32B32A32_FLOAT_PREMULTIPLIED = 16,
+    R32G32B32A32_FLOAT = 17,
+    N_FORMATS = 18,
+}
+
+export namespace NotifyType {
+    export const $gtype: GObject.GType<NotifyType>;
+}
+
+export enum NotifyType {
+    ANCESTOR = 0,
+    VIRTUAL = 1,
+    INFERIOR = 2,
+    NONLINEAR = 3,
+    NONLINEAR_VIRTUAL = 4,
+    UNKNOWN = 5,
+}
+
+export namespace ScrollDirection {
+    export const $gtype: GObject.GType<ScrollDirection>;
+}
+
+export enum ScrollDirection {
+    UP = 0,
+    DOWN = 1,
+    LEFT = 2,
+    RIGHT = 3,
+    SMOOTH = 4,
+}
+
+export namespace ScrollUnit {
+    export const $gtype: GObject.GType<ScrollUnit>;
+}
+
+export enum ScrollUnit {
+    WHEEL = 0,
+    SURFACE = 1,
+}
+
+export namespace SubpixelLayout {
+    export const $gtype: GObject.GType<SubpixelLayout>;
+}
+
+export enum SubpixelLayout {
+    UNKNOWN = 0,
+    NONE = 1,
+    HORIZONTAL_RGB = 2,
+    HORIZONTAL_BGR = 3,
+    VERTICAL_RGB = 4,
+    VERTICAL_BGR = 5,
+}
+
+export namespace SurfaceEdge {
+    export const $gtype: GObject.GType<SurfaceEdge>;
+}
+
+export enum SurfaceEdge {
+    NORTH_WEST = 0,
+    NORTH = 1,
+    NORTH_EAST = 2,
+    WEST = 3,
+    EAST = 4,
+    SOUTH_WEST = 5,
+    SOUTH = 6,
+    SOUTH_EAST = 7,
+}
+
+export class TextureError extends GLib.Error {
+    static $gtype: GObject.GType<TextureError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: TextureError);
+
+    // Fields
+    static TOO_LARGE: number;
+    static CORRUPT_IMAGE: number;
+    static UNSUPPORTED_CONTENT: number;
+    static UNSUPPORTED_FORMAT: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace TitlebarGesture {
+    export const $gtype: GObject.GType<TitlebarGesture>;
+}
+
+export enum TitlebarGesture {
+    DOUBLE_CLICK = 1,
+    RIGHT_CLICK = 2,
+    MIDDLE_CLICK = 3,
+}
+
+export namespace TouchpadGesturePhase {
+    export const $gtype: GObject.GType<TouchpadGesturePhase>;
+}
+
+export enum TouchpadGesturePhase {
+    BEGIN = 0,
+    UPDATE = 1,
+    END = 2,
+    CANCEL = 3,
+}
+
+export class VulkanError extends GLib.Error {
+    static $gtype: GObject.GType<VulkanError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: VulkanError);
+
+    // Fields
+    static UNSUPPORTED: number;
+    static NOT_AVAILABLE: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace AnchorHints {
+    export const $gtype: GObject.GType<AnchorHints>;
+}
+
+export enum AnchorHints {
+    FLIP_X = 1,
+    FLIP_Y = 2,
+    SLIDE_X = 4,
+    SLIDE_Y = 8,
+    RESIZE_X = 16,
+    RESIZE_Y = 32,
+    FLIP = 3,
+    SLIDE = 12,
+    RESIZE = 48,
+}
+
+export namespace AxisFlags {
+    export const $gtype: GObject.GType<AxisFlags>;
+}
+
+export enum AxisFlags {
+    X = 2,
+    Y = 4,
+    DELTA_X = 8,
+    DELTA_Y = 16,
+    PRESSURE = 32,
+    XTILT = 64,
+    YTILT = 128,
+    WHEEL = 256,
+    DISTANCE = 512,
+    ROTATION = 1024,
+    SLIDER = 2048,
+}
+
+export namespace DragAction {
+    export const $gtype: GObject.GType<DragAction>;
+}
+
+export enum DragAction {
+    COPY = 1,
+    MOVE = 2,
+    LINK = 4,
+    ASK = 8,
+}
+
+export namespace FrameClockPhase {
+    export const $gtype: GObject.GType<FrameClockPhase>;
+}
+
+export enum FrameClockPhase {
+    NONE = 0,
+    FLUSH_EVENTS = 1,
+    BEFORE_PAINT = 2,
+    UPDATE = 4,
+    LAYOUT = 8,
+    PAINT = 16,
+    RESUME_EVENTS = 32,
+    AFTER_PAINT = 64,
+}
+
+export namespace GLAPI {
+    export const $gtype: GObject.GType<GLAPI>;
+}
+
+export enum GLAPI {
+    GL = 1,
+    GLES = 2,
+}
+
+export namespace ModifierType {
+    export const $gtype: GObject.GType<ModifierType>;
+}
+
+export enum ModifierType {
+    SHIFT_MASK = 1,
+    LOCK_MASK = 2,
+    CONTROL_MASK = 4,
+    ALT_MASK = 8,
+    BUTTON1_MASK = 256,
+    BUTTON2_MASK = 512,
+    BUTTON3_MASK = 1024,
+    BUTTON4_MASK = 2048,
+    BUTTON5_MASK = 4096,
+    SUPER_MASK = 67108864,
+    HYPER_MASK = 134217728,
+    META_MASK = 268435456,
+}
+
+export namespace PaintableFlags {
+    export const $gtype: GObject.GType<PaintableFlags>;
+}
+
+export enum PaintableFlags {
+    SIZE = 1,
+    CONTENTS = 2,
+}
+
+export namespace SeatCapabilities {
+    export const $gtype: GObject.GType<SeatCapabilities>;
+}
+
+export enum SeatCapabilities {
+    NONE = 0,
+    POINTER = 1,
+    TOUCH = 2,
+    TABLET_STYLUS = 4,
+    KEYBOARD = 8,
+    TABLET_PAD = 16,
+    ALL_POINTING = 7,
+    ALL = 15,
+}
+
+export namespace ToplevelState {
+    export const $gtype: GObject.GType<ToplevelState>;
+}
+
+export enum ToplevelState {
+    MINIMIZED = 1,
+    MAXIMIZED = 2,
+    STICKY = 4,
+    FULLSCREEN = 8,
+    ABOVE = 16,
+    BELOW = 32,
+    FOCUSED = 64,
+    TILED = 128,
+    TOP_TILED = 256,
+    TOP_RESIZABLE = 512,
+    RIGHT_TILED = 1024,
+    RIGHT_RESIZABLE = 2048,
+    BOTTOM_TILED = 4096,
+    BOTTOM_RESIZABLE = 8192,
+    LEFT_TILED = 16384,
+    LEFT_RESIZABLE = 32768,
+}
+export module AppLaunchContext {
+    export interface ConstructorProperties extends Gio.AppLaunchContext.ConstructorProperties {
+        [key: string]: any;
+        display: Display;
+    }
+}
+export class AppLaunchContext extends Gio.AppLaunchContext {
+    static $gtype: GObject.GType<AppLaunchContext>;
+
+    constructor(properties?: Partial<AppLaunchContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AppLaunchContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get display(): Display;
+
+    // Members
+
+    get_display(): Display;
+    // Conflicted with Gio.AppLaunchContext.get_display
+    get_display(...args: never[]): any;
+    set_desktop(desktop: number): void;
+    set_icon(icon?: Gio.Icon | null): void;
+    set_icon_name(icon_name?: string | null): void;
+    set_timestamp(timestamp: number): void;
+}
+export module ButtonEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ButtonEvent extends Event {
+    static $gtype: GObject.GType<ButtonEvent>;
+
+    constructor(properties?: Partial<ButtonEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ButtonEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_button(): number;
+}
+export module CairoContext {
+    export interface ConstructorProperties extends DrawContext.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class CairoContext extends DrawContext {
+    static $gtype: GObject.GType<CairoContext>;
+
+    constructor(properties?: Partial<CairoContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CairoContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    cairo_create(): cairo.Context | null;
+}
+export module Clipboard {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        content: ContentProvider;
+        display: Display;
+        formats: ContentFormats;
+        local: boolean;
+    }
+}
+export class Clipboard extends GObject.Object {
+    static $gtype: GObject.GType<Clipboard>;
+
+    constructor(properties?: Partial<Clipboard.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Clipboard.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get content(): ContentProvider;
+    get display(): Display;
+    get formats(): ContentFormats;
+    get local(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+
+    // Members
+
+    get_content(): ContentProvider | null;
+    get_display(): Display;
+    get_formats(): ContentFormats;
+    is_local(): boolean;
+    read_async(
+        mime_types: string[],
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    read_finish(result: Gio.AsyncResult): [Gio.InputStream | null, string];
+    read_text_async(cancellable?: Gio.Cancellable | null, callback?: Gio.AsyncReadyCallback<this> | null): 
void;
+    read_text_finish(result: Gio.AsyncResult): string | null;
+    read_texture_async(cancellable?: Gio.Cancellable | null, callback?: Gio.AsyncReadyCallback<this> | 
null): void;
+    read_texture_finish(result: Gio.AsyncResult): Texture | null;
+    read_value_async(
+        type: GObject.GType,
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    read_value_finish(result: Gio.AsyncResult): unknown;
+    set_content(provider?: ContentProvider | null): boolean;
+    set(value: GObject.Value | any): void;
+    // Conflicted with GObject.Object.set
+    set(...args: never[]): any;
+    store_async(
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    store_finish(result: Gio.AsyncResult): boolean;
+}
+export module ContentDeserializer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ContentDeserializer extends GObject.Object implements Gio.AsyncResult {
+    static $gtype: GObject.GType<ContentDeserializer>;
+
+    constructor(properties?: Partial<ContentDeserializer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ContentDeserializer.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_cancellable(): Gio.Cancellable | null;
+    get_gtype(): GObject.GType;
+    get_input_stream(): Gio.InputStream;
+    get_mime_type(): string;
+    get_priority(): number;
+    get_task_data(): any | null;
+    get_user_data(): any | null;
+    get_value(): unknown;
+    return_error(error: GLib.Error): void;
+    return_success(): void;
+    set_task_data(data?: any | null): void;
+
+    // Implemented Members
+
+    get_source_object<T = GObject.Object>(): T;
+    is_tagged(source_tag?: any | null): boolean;
+    legacy_propagate_error(): boolean;
+    vfunc_get_source_object<T = GObject.Object>(): T;
+    vfunc_get_user_data(): any | null;
+    vfunc_is_tagged(source_tag?: any | null): boolean;
+}
+export module ContentProvider {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        formats: ContentFormats;
+        storable_formats: ContentFormats;
+        storableFormats: ContentFormats;
+    }
+}
+export class ContentProvider extends GObject.Object {
+    static $gtype: GObject.GType<ContentProvider>;
+
+    constructor(properties?: Partial<ContentProvider.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ContentProvider.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get formats(): ContentFormats;
+    get storable_formats(): ContentFormats;
+    get storableFormats(): ContentFormats;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "content-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "content-changed", callback: (_source: this) => void): number;
+    emit(signal: "content-changed"): void;
+
+    // Constructors
+
+    static new_for_bytes(mime_type: string, bytes: GLib.Bytes | Uint8Array): ContentProvider;
+    static new_for_value(value: GObject.Value | any): ContentProvider;
+    static new_union(providers?: ContentProvider[] | null): ContentProvider;
+
+    // Members
+
+    content_changed(): void;
+    get_value(): [boolean, unknown];
+    ref_formats(): ContentFormats;
+    ref_storable_formats(): ContentFormats;
+    write_mime_type_async(
+        mime_type: string,
+        stream: Gio.OutputStream,
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    write_mime_type_finish(result: Gio.AsyncResult): boolean;
+    vfunc_attach_clipboard(clipboard: Clipboard): void;
+    vfunc_content_changed(): void;
+    vfunc_detach_clipboard(clipboard: Clipboard): void;
+    vfunc_get_value(): [boolean, unknown];
+    vfunc_ref_formats(): ContentFormats;
+    vfunc_ref_storable_formats(): ContentFormats;
+    vfunc_write_mime_type_async(
+        mime_type: string,
+        stream: Gio.OutputStream,
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_write_mime_type_finish(result: Gio.AsyncResult): boolean;
+}
+export module ContentSerializer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ContentSerializer extends GObject.Object implements Gio.AsyncResult {
+    static $gtype: GObject.GType<ContentSerializer>;
+
+    constructor(properties?: Partial<ContentSerializer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ContentSerializer.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_cancellable(): Gio.Cancellable | null;
+    get_gtype(): GObject.GType;
+    get_mime_type(): string;
+    get_output_stream(): Gio.OutputStream;
+    get_priority(): number;
+    get_task_data(): any | null;
+    get_user_data(): any | null;
+    get_value(): unknown;
+    return_error(error: GLib.Error): void;
+    return_success(): void;
+    set_task_data(data?: any | null): void;
+
+    // Implemented Members
+
+    get_source_object<T = GObject.Object>(): T;
+    is_tagged(source_tag?: any | null): boolean;
+    legacy_propagate_error(): boolean;
+    vfunc_get_source_object<T = GObject.Object>(): T;
+    vfunc_get_user_data(): any | null;
+    vfunc_is_tagged(source_tag?: any | null): boolean;
+}
+export module CrossingEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CrossingEvent extends Event {
+    static $gtype: GObject.GType<CrossingEvent>;
+
+    constructor(properties?: Partial<CrossingEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CrossingEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_detail(): NotifyType;
+    get_focus(): boolean;
+    get_mode(): CrossingMode;
+}
+export module Cursor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        fallback: Cursor;
+        hotspot_x: number;
+        hotspotX: number;
+        hotspot_y: number;
+        hotspotY: number;
+        name: string;
+        texture: Texture;
+    }
+}
+export class Cursor extends GObject.Object {
+    static $gtype: GObject.GType<Cursor>;
+
+    constructor(properties?: Partial<Cursor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Cursor.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get fallback(): Cursor;
+    get hotspot_x(): number;
+    get hotspotX(): number;
+    get hotspot_y(): number;
+    get hotspotY(): number;
+    get name(): string;
+    get texture(): Texture;
+
+    // Constructors
+
+    static new_from_name(name: string, fallback?: Cursor | null): Cursor;
+    static new_from_texture(texture: Texture, hotspot_x: number, hotspot_y: number, fallback?: Cursor | 
null): Cursor;
+
+    // Members
+
+    get_fallback(): Cursor | null;
+    get_hotspot_x(): number;
+    get_hotspot_y(): number;
+    get_name(): string | null;
+    get_texture(): Texture | null;
+}
+export module DNDEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DNDEvent extends Event {
+    static $gtype: GObject.GType<DNDEvent>;
+
+    constructor(properties?: Partial<DNDEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DNDEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_drop(): Drop | null;
+}
+export module DeleteEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DeleteEvent extends Event {
+    static $gtype: GObject.GType<DeleteEvent>;
+
+    constructor(properties?: Partial<DeleteEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DeleteEvent.ConstructorProperties>, ...args: any[]): void;
+}
+export module Device {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        caps_lock_state: boolean;
+        capsLockState: boolean;
+        direction: Pango.Direction;
+        display: Display;
+        has_bidi_layouts: boolean;
+        hasBidiLayouts: boolean;
+        has_cursor: boolean;
+        hasCursor: boolean;
+        modifier_state: ModifierType;
+        modifierState: ModifierType;
+        n_axes: number;
+        nAxes: number;
+        name: string;
+        num_lock_state: boolean;
+        numLockState: boolean;
+        num_touches: number;
+        numTouches: number;
+        product_id: string;
+        productId: string;
+        scroll_lock_state: boolean;
+        scrollLockState: boolean;
+        seat: Seat;
+        source: InputSource;
+        tool: DeviceTool;
+        vendor_id: string;
+        vendorId: string;
+    }
+}
+export abstract class Device extends GObject.Object {
+    static $gtype: GObject.GType<Device>;
+
+    constructor(properties?: Partial<Device.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Device.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get caps_lock_state(): boolean;
+    get capsLockState(): boolean;
+    get direction(): Pango.Direction;
+    get display(): Display;
+    get has_bidi_layouts(): boolean;
+    get hasBidiLayouts(): boolean;
+    get has_cursor(): boolean;
+    get hasCursor(): boolean;
+    get modifier_state(): ModifierType;
+    get modifierState(): ModifierType;
+    get n_axes(): number;
+    get nAxes(): number;
+    get name(): string;
+    get num_lock_state(): boolean;
+    get numLockState(): boolean;
+    get num_touches(): number;
+    get numTouches(): number;
+    get product_id(): string;
+    get productId(): string;
+    get scroll_lock_state(): boolean;
+    get scrollLockState(): boolean;
+    get seat(): Seat;
+    set seat(val: Seat);
+    get source(): InputSource;
+    get tool(): DeviceTool;
+    get vendor_id(): string;
+    get vendorId(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+    connect(signal: "tool-changed", callback: (_source: this, tool: DeviceTool) => void): number;
+    connect_after(signal: "tool-changed", callback: (_source: this, tool: DeviceTool) => void): number;
+    emit(signal: "tool-changed", tool: DeviceTool): void;
+
+    // Members
+
+    get_caps_lock_state(): boolean;
+    get_device_tool(): DeviceTool | null;
+    get_direction(): Pango.Direction;
+    get_display(): Display;
+    get_has_cursor(): boolean;
+    get_modifier_state(): ModifierType;
+    get_name(): string;
+    get_num_lock_state(): boolean;
+    get_num_touches(): number;
+    get_product_id(): string | null;
+    get_scroll_lock_state(): boolean;
+    get_seat(): Seat;
+    get_source(): InputSource;
+    get_surface_at_position(): [Surface | null, number, number];
+    get_timestamp(): number;
+    get_vendor_id(): string | null;
+}
+export module DeviceTool {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        axes: AxisFlags;
+        hardware_id: number;
+        hardwareId: number;
+        serial: number;
+        tool_type: DeviceToolType;
+        toolType: DeviceToolType;
+    }
+}
+export class DeviceTool extends GObject.Object {
+    static $gtype: GObject.GType<DeviceTool>;
+
+    constructor(properties?: Partial<DeviceTool.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DeviceTool.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get axes(): AxisFlags;
+    get hardware_id(): number;
+    get hardwareId(): number;
+    get serial(): number;
+    get tool_type(): DeviceToolType;
+    get toolType(): DeviceToolType;
+
+    // Members
+
+    get_axes(): AxisFlags;
+    get_hardware_id(): number;
+    get_serial(): number;
+    get_tool_type(): DeviceToolType;
+}
+export module Display {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        composited: boolean;
+        input_shapes: boolean;
+        inputShapes: boolean;
+        rgba: boolean;
+    }
+}
+export class Display extends GObject.Object {
+    static $gtype: GObject.GType<Display>;
+
+    constructor(properties?: Partial<Display.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Display.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get composited(): boolean;
+    get input_shapes(): boolean;
+    get inputShapes(): boolean;
+    get rgba(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "closed", callback: (_source: this, is_error: boolean) => void): number;
+    connect_after(signal: "closed", callback: (_source: this, is_error: boolean) => void): number;
+    emit(signal: "closed", is_error: boolean): void;
+    connect(signal: "opened", callback: (_source: this) => void): number;
+    connect_after(signal: "opened", callback: (_source: this) => void): number;
+    emit(signal: "opened"): void;
+    connect(signal: "seat-added", callback: (_source: this, seat: Seat) => void): number;
+    connect_after(signal: "seat-added", callback: (_source: this, seat: Seat) => void): number;
+    emit(signal: "seat-added", seat: Seat): void;
+    connect(signal: "seat-removed", callback: (_source: this, seat: Seat) => void): number;
+    connect_after(signal: "seat-removed", callback: (_source: this, seat: Seat) => void): number;
+    emit(signal: "seat-removed", seat: Seat): void;
+    connect(signal: "setting-changed", callback: (_source: this, setting: string) => void): number;
+    connect_after(signal: "setting-changed", callback: (_source: this, setting: string) => void): number;
+    emit(signal: "setting-changed", setting: string): void;
+
+    // Members
+
+    beep(): void;
+    close(): void;
+    create_gl_context(): GLContext;
+    device_is_grabbed(device: Device): boolean;
+    flush(): void;
+    get_app_launch_context(): AppLaunchContext;
+    get_clipboard(): Clipboard;
+    get_default_seat(): Seat | null;
+    get_monitor_at_surface(surface: Surface): Monitor;
+    get_monitors(): Gio.ListModel;
+    get_name(): string;
+    get_primary_clipboard(): Clipboard;
+    get_setting(name: string, value: GObject.Value | any): boolean;
+    get_startup_notification_id(): string | null;
+    is_closed(): boolean;
+    is_composited(): boolean;
+    is_rgba(): boolean;
+    list_seats(): Seat[];
+    map_keycode(keycode: number): [boolean, KeymapKey[] | null, number[] | null];
+    map_keyval(keyval: number): [boolean, KeymapKey[]];
+    notify_startup_complete(startup_id: string): void;
+    prepare_gl(): boolean;
+    put_event(event: Event): void;
+    supports_input_shapes(): boolean;
+    sync(): void;
+    translate_key(
+        keycode: number,
+        state: ModifierType,
+        group: number
+    ): [boolean, number, number, number, ModifierType | null];
+    static get_default(): Display | null;
+    static open(display_name: string): Display | null;
+}
+export module DisplayManager {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        default_display: Display;
+        defaultDisplay: Display;
+    }
+}
+export class DisplayManager extends GObject.Object {
+    static $gtype: GObject.GType<DisplayManager>;
+
+    constructor(properties?: Partial<DisplayManager.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DisplayManager.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get default_display(): Display;
+    set default_display(val: Display);
+    get defaultDisplay(): Display;
+    set defaultDisplay(val: Display);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "display-opened", callback: (_source: this, display: Display) => void): number;
+    connect_after(signal: "display-opened", callback: (_source: this, display: Display) => void): number;
+    emit(signal: "display-opened", display: Display): void;
+
+    // Members
+
+    get_default_display(): Display | null;
+    list_displays(): Display[];
+    open_display(name: string): Display | null;
+    set_default_display(display: Display): void;
+    static get(): DisplayManager;
+}
+export module Drag {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        actions: DragAction;
+        content: ContentProvider;
+        device: Device;
+        display: Display;
+        formats: ContentFormats;
+        selected_action: DragAction;
+        selectedAction: DragAction;
+        surface: Surface;
+    }
+}
+export abstract class Drag extends GObject.Object {
+    static $gtype: GObject.GType<Drag>;
+
+    constructor(properties?: Partial<Drag.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Drag.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get actions(): DragAction;
+    set actions(val: DragAction);
+    get content(): ContentProvider;
+    get device(): Device;
+    get display(): Display;
+    get formats(): ContentFormats;
+    get selected_action(): DragAction;
+    set selected_action(val: DragAction);
+    get selectedAction(): DragAction;
+    set selectedAction(val: DragAction);
+    get surface(): Surface;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "cancel", callback: (_source: this, reason: DragCancelReason) => void): number;
+    connect_after(signal: "cancel", callback: (_source: this, reason: DragCancelReason) => void): number;
+    emit(signal: "cancel", reason: DragCancelReason): void;
+    connect(signal: "dnd-finished", callback: (_source: this) => void): number;
+    connect_after(signal: "dnd-finished", callback: (_source: this) => void): number;
+    emit(signal: "dnd-finished"): void;
+    connect(signal: "drop-performed", callback: (_source: this) => void): number;
+    connect_after(signal: "drop-performed", callback: (_source: this) => void): number;
+    emit(signal: "drop-performed"): void;
+
+    // Members
+
+    drop_done(success: boolean): void;
+    get_actions(): DragAction;
+    get_content(): ContentProvider;
+    get_device(): Device;
+    get_display(): Display;
+    get_drag_surface(): Surface | null;
+    get_formats(): ContentFormats;
+    get_selected_action(): DragAction;
+    get_surface(): Surface;
+    set_hotspot(hot_x: number, hot_y: number): void;
+    static begin(
+        surface: Surface,
+        device: Device,
+        content: ContentProvider,
+        actions: DragAction,
+        dx: number,
+        dy: number
+    ): Drag | null;
+}
+export module DrawContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        display: Display;
+        surface: Surface;
+    }
+}
+export abstract class DrawContext extends GObject.Object {
+    static $gtype: GObject.GType<DrawContext>;
+
+    constructor(properties?: Partial<DrawContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DrawContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get display(): Display;
+    get surface(): Surface;
+
+    // Members
+
+    begin_frame(region: cairo.Region): void;
+    end_frame(): void;
+    get_display(): Display | null;
+    get_frame_region(): cairo.Region | null;
+    get_surface(): Surface | null;
+    is_in_frame(): boolean;
+}
+export module Drop {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        actions: DragAction;
+        device: Device;
+        display: Display;
+        drag: Drag;
+        formats: ContentFormats;
+        surface: Surface;
+    }
+}
+export abstract class Drop extends GObject.Object {
+    static $gtype: GObject.GType<Drop>;
+
+    constructor(properties?: Partial<Drop.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Drop.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get actions(): DragAction;
+    get device(): Device;
+    get display(): Display;
+    get drag(): Drag;
+    get formats(): ContentFormats;
+    get surface(): Surface;
+
+    // Members
+
+    finish(action: DragAction): void;
+    get_actions(): DragAction;
+    get_device(): Device;
+    get_display(): Display;
+    get_drag(): Drag | null;
+    get_formats(): ContentFormats;
+    get_surface(): Surface;
+    read_async(
+        mime_types: string[],
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    read_finish(result: Gio.AsyncResult): [Gio.InputStream | null, string];
+    read_value_async(
+        type: GObject.GType,
+        io_priority: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    read_value_finish(result: Gio.AsyncResult): unknown;
+    status(actions: DragAction, preferred: DragAction): void;
+}
+export module Event {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Event {
+    static $gtype: GObject.GType<Event>;
+
+    constructor(properties?: Partial<Event.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Event.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    _get_angle(event2: Event): [boolean, number];
+    _get_center(event2: Event): [boolean, number, number];
+    _get_distance(event2: Event): [boolean, number];
+    get_axes(): [boolean, number[]];
+    get_axis(axis_use: AxisUse): [boolean, number];
+    get_device(): Device | null;
+    get_device_tool(): DeviceTool | null;
+    get_display(): Display | null;
+    get_event_sequence(): EventSequence;
+    get_event_type(): EventType;
+    get_history(): TimeCoord[] | null;
+    get_modifier_state(): ModifierType;
+    get_pointer_emulated(): boolean;
+    get_position(): [boolean, number, number];
+    get_seat(): Seat | null;
+    get_surface(): Surface | null;
+    get_time(): number;
+    ref(): Event;
+    triggers_context_menu(): boolean;
+    unref(): void;
+}
+export module FocusEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FocusEvent extends Event {
+    static $gtype: GObject.GType<FocusEvent>;
+
+    constructor(properties?: Partial<FocusEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FocusEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_in(): boolean;
+}
+export module FrameClock {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class FrameClock extends GObject.Object {
+    static $gtype: GObject.GType<FrameClock>;
+
+    constructor(properties?: Partial<FrameClock.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FrameClock.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "after-paint", callback: (_source: this) => void): number;
+    connect_after(signal: "after-paint", callback: (_source: this) => void): number;
+    emit(signal: "after-paint"): void;
+    connect(signal: "before-paint", callback: (_source: this) => void): number;
+    connect_after(signal: "before-paint", callback: (_source: this) => void): number;
+    emit(signal: "before-paint"): void;
+    connect(signal: "flush-events", callback: (_source: this) => void): number;
+    connect_after(signal: "flush-events", callback: (_source: this) => void): number;
+    emit(signal: "flush-events"): void;
+    connect(signal: "layout", callback: (_source: this) => void): number;
+    connect_after(signal: "layout", callback: (_source: this) => void): number;
+    emit(signal: "layout"): void;
+    connect(signal: "paint", callback: (_source: this) => void): number;
+    connect_after(signal: "paint", callback: (_source: this) => void): number;
+    emit(signal: "paint"): void;
+    connect(signal: "resume-events", callback: (_source: this) => void): number;
+    connect_after(signal: "resume-events", callback: (_source: this) => void): number;
+    emit(signal: "resume-events"): void;
+    connect(signal: "update", callback: (_source: this) => void): number;
+    connect_after(signal: "update", callback: (_source: this) => void): number;
+    emit(signal: "update"): void;
+
+    // Members
+
+    begin_updating(): void;
+    end_updating(): void;
+    get_current_timings(): FrameTimings | null;
+    get_fps(): number;
+    get_frame_counter(): number;
+    get_frame_time(): number;
+    get_history_start(): number;
+    get_refresh_info(base_time: number): [number, number];
+    get_timings(frame_counter: number): FrameTimings | null;
+    request_phase(phase: FrameClockPhase): void;
+}
+export module GLContext {
+    export interface ConstructorProperties extends DrawContext.ConstructorProperties {
+        [key: string]: any;
+        allowed_apis: GLAPI;
+        allowedApis: GLAPI;
+        api: GLAPI;
+        shared_context: GLContext;
+        sharedContext: GLContext;
+    }
+}
+export abstract class GLContext extends DrawContext {
+    static $gtype: GObject.GType<GLContext>;
+
+    constructor(properties?: Partial<GLContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GLContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get allowed_apis(): GLAPI;
+    set allowed_apis(val: GLAPI);
+    get allowedApis(): GLAPI;
+    set allowedApis(val: GLAPI);
+    get api(): GLAPI;
+    get shared_context(): GLContext;
+    get sharedContext(): GLContext;
+
+    // Members
+
+    get_allowed_apis(): GLAPI;
+    get_api(): GLAPI;
+    get_debug_enabled(): boolean;
+    get_display(): Display | null;
+    get_forward_compatible(): boolean;
+    get_required_version(): [number, number];
+    get_shared_context(): GLContext | null;
+    get_surface(): Surface | null;
+    get_use_es(): boolean;
+    get_version(): [number, number];
+    is_legacy(): boolean;
+    is_shared(other: GLContext): boolean;
+    make_current(): void;
+    realize(): boolean;
+    set_allowed_apis(apis: GLAPI): void;
+    set_debug_enabled(enabled: boolean): void;
+    set_forward_compatible(compatible: boolean): void;
+    set_required_version(major: number, minor: number): void;
+    set_use_es(use_es: number): void;
+    static clear_current(): void;
+    static get_current(): GLContext | null;
+}
+export module GLTexture {
+    export interface ConstructorProperties extends Texture.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GLTexture extends Texture implements Paintable, Gio.Icon, Gio.LoadableIcon {
+    static $gtype: GObject.GType<GLTexture>;
+
+    constructor(properties?: Partial<GLTexture.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GLTexture.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](context: GLContext, id: number, width: number, height: number, data?: any | null): 
GLTexture;
+
+    // Members
+
+    release(): void;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Paintable;
+    get_flags(): PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Paintable;
+    vfunc_get_flags(): PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Snapshot, width: number, height: number): void;
+    equal(icon2?: Gio.Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Gio.Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+    load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+    vfunc_load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    vfunc_load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+}
+export module GrabBrokenEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GrabBrokenEvent extends Event {
+    static $gtype: GObject.GType<GrabBrokenEvent>;
+
+    constructor(properties?: Partial<GrabBrokenEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GrabBrokenEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_grab_surface(): Surface;
+    get_implicit(): boolean;
+}
+export module KeyEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class KeyEvent extends Event {
+    static $gtype: GObject.GType<KeyEvent>;
+
+    constructor(properties?: Partial<KeyEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<KeyEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_consumed_modifiers(): ModifierType;
+    get_keycode(): number;
+    get_keyval(): number;
+    get_layout(): number;
+    get_level(): number;
+    get_match(): [boolean, number, ModifierType];
+    is_modifier(): boolean;
+    matches(keyval: number, modifiers: ModifierType): KeyMatch;
+}
+export module MemoryTexture {
+    export interface ConstructorProperties extends Texture.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class MemoryTexture extends Texture implements Paintable, Gio.Icon, Gio.LoadableIcon {
+    static $gtype: GObject.GType<MemoryTexture>;
+
+    constructor(properties?: Partial<MemoryTexture.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MemoryTexture.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        width: number,
+        height: number,
+        format: MemoryFormat,
+        bytes: GLib.Bytes | Uint8Array,
+        stride: number
+    ): MemoryTexture;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Paintable;
+    get_flags(): PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Paintable;
+    vfunc_get_flags(): PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Snapshot, width: number, height: number): void;
+    equal(icon2?: Gio.Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Gio.Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+    load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+    vfunc_load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    vfunc_load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+}
+export module Monitor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        connector: string;
+        display: Display;
+        geometry: Rectangle;
+        height_mm: number;
+        heightMm: number;
+        manufacturer: string;
+        model: string;
+        refresh_rate: number;
+        refreshRate: number;
+        scale_factor: number;
+        scaleFactor: number;
+        subpixel_layout: SubpixelLayout;
+        subpixelLayout: SubpixelLayout;
+        valid: boolean;
+        width_mm: number;
+        widthMm: number;
+    }
+}
+export class Monitor extends GObject.Object {
+    static $gtype: GObject.GType<Monitor>;
+
+    constructor(properties?: Partial<Monitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Monitor.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get connector(): string;
+    get display(): Display;
+    get geometry(): Rectangle;
+    get height_mm(): number;
+    get heightMm(): number;
+    get manufacturer(): string;
+    get model(): string;
+    get refresh_rate(): number;
+    get refreshRate(): number;
+    get scale_factor(): number;
+    get scaleFactor(): number;
+    get subpixel_layout(): SubpixelLayout;
+    get subpixelLayout(): SubpixelLayout;
+    get valid(): boolean;
+    get width_mm(): number;
+    get widthMm(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "invalidate", callback: (_source: this) => void): number;
+    connect_after(signal: "invalidate", callback: (_source: this) => void): number;
+    emit(signal: "invalidate"): void;
+
+    // Members
+
+    get_connector(): string | null;
+    get_display(): Display;
+    get_geometry(): Rectangle;
+    get_height_mm(): number;
+    get_manufacturer(): string | null;
+    get_model(): string | null;
+    get_refresh_rate(): number;
+    get_scale_factor(): number;
+    get_subpixel_layout(): SubpixelLayout;
+    get_width_mm(): number;
+    is_valid(): boolean;
+}
+export module MotionEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class MotionEvent extends Event {
+    static $gtype: GObject.GType<MotionEvent>;
+
+    constructor(properties?: Partial<MotionEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MotionEvent.ConstructorProperties>, ...args: any[]): void;
+}
+export module PadEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PadEvent extends Event {
+    static $gtype: GObject.GType<PadEvent>;
+
+    constructor(properties?: Partial<PadEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PadEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_axis_value(): [number, number];
+    get_button(): number;
+    get_group_mode(): [number, number];
+}
+export module ProximityEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ProximityEvent extends Event {
+    static $gtype: GObject.GType<ProximityEvent>;
+
+    constructor(properties?: Partial<ProximityEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ProximityEvent.ConstructorProperties>, ...args: any[]): void;
+}
+export module ScrollEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ScrollEvent extends Event {
+    static $gtype: GObject.GType<ScrollEvent>;
+
+    constructor(properties?: Partial<ScrollEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ScrollEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_deltas(): [number, number];
+    get_direction(): ScrollDirection;
+    get_unit(): ScrollUnit;
+    is_stop(): boolean;
+}
+export module Seat {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        display: Display;
+    }
+}
+export abstract class Seat extends GObject.Object {
+    static $gtype: GObject.GType<Seat>;
+
+    constructor(properties?: Partial<Seat.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Seat.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get display(): Display;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "device-added", callback: (_source: this, device: Device) => void): number;
+    connect_after(signal: "device-added", callback: (_source: this, device: Device) => void): number;
+    emit(signal: "device-added", device: Device): void;
+    connect(signal: "device-removed", callback: (_source: this, device: Device) => void): number;
+    connect_after(signal: "device-removed", callback: (_source: this, device: Device) => void): number;
+    emit(signal: "device-removed", device: Device): void;
+    connect(signal: "tool-added", callback: (_source: this, tool: DeviceTool) => void): number;
+    connect_after(signal: "tool-added", callback: (_source: this, tool: DeviceTool) => void): number;
+    emit(signal: "tool-added", tool: DeviceTool): void;
+    connect(signal: "tool-removed", callback: (_source: this, tool: DeviceTool) => void): number;
+    connect_after(signal: "tool-removed", callback: (_source: this, tool: DeviceTool) => void): number;
+    emit(signal: "tool-removed", tool: DeviceTool): void;
+
+    // Members
+
+    get_capabilities(): SeatCapabilities;
+    get_devices(capabilities: SeatCapabilities): Device[];
+    get_display(): Display;
+    get_keyboard(): Device | null;
+    get_pointer(): Device | null;
+    get_tools(): DeviceTool[];
+}
+export module Snapshot {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Snapshot extends GObject.Object {
+    static $gtype: GObject.GType<Snapshot>;
+
+    constructor(properties?: Partial<Snapshot.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Snapshot.ConstructorProperties>, ...args: any[]): void;
+}
+export module Surface {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        cursor: Cursor;
+        display: Display;
+        frame_clock: FrameClock;
+        frameClock: FrameClock;
+        height: number;
+        mapped: boolean;
+        scale_factor: number;
+        scaleFactor: number;
+        width: number;
+    }
+}
+export abstract class Surface extends GObject.Object {
+    static $gtype: GObject.GType<Surface>;
+
+    constructor(properties?: Partial<Surface.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Surface.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get cursor(): Cursor;
+    set cursor(val: Cursor);
+    get display(): Display;
+    get frame_clock(): FrameClock;
+    get frameClock(): FrameClock;
+    get height(): number;
+    get mapped(): boolean;
+    get scale_factor(): number;
+    get scaleFactor(): number;
+    get width(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "enter-monitor", callback: (_source: this, monitor: Monitor) => void): number;
+    connect_after(signal: "enter-monitor", callback: (_source: this, monitor: Monitor) => void): number;
+    emit(signal: "enter-monitor", monitor: Monitor): void;
+    connect(signal: "event", callback: (_source: this, event: Event) => boolean): number;
+    connect_after(signal: "event", callback: (_source: this, event: Event) => boolean): number;
+    emit(signal: "event", event: Event): void;
+    connect(signal: "layout", callback: (_source: this, width: number, height: number) => void): number;
+    connect_after(signal: "layout", callback: (_source: this, width: number, height: number) => void): 
number;
+    emit(signal: "layout", width: number, height: number): void;
+    connect(signal: "leave-monitor", callback: (_source: this, monitor: Monitor) => void): number;
+    connect_after(signal: "leave-monitor", callback: (_source: this, monitor: Monitor) => void): number;
+    emit(signal: "leave-monitor", monitor: Monitor): void;
+    connect(signal: "render", callback: (_source: this, region: cairo.Region) => boolean): number;
+    connect_after(signal: "render", callback: (_source: this, region: cairo.Region) => boolean): number;
+    emit(signal: "render", region: cairo.Region): void;
+
+    // Constructors
+
+    static new_popup(parent: Surface, autohide: boolean): Surface;
+    static new_toplevel(display: Display): Surface;
+
+    // Members
+
+    beep(): void;
+    create_cairo_context(): CairoContext;
+    create_gl_context(): GLContext;
+    create_similar_surface(content: cairo.Content, width: number, height: number): cairo.Surface;
+    create_vulkan_context(): VulkanContext;
+    destroy(): void;
+    get_cursor(): Cursor | null;
+    get_device_cursor(device: Device): Cursor | null;
+    get_device_position(device: Device): [boolean, number, number, ModifierType | null];
+    get_display(): Display;
+    get_frame_clock(): FrameClock;
+    get_height(): number;
+    get_mapped(): boolean;
+    get_scale_factor(): number;
+    get_width(): number;
+    hide(): void;
+    is_destroyed(): boolean;
+    queue_render(): void;
+    request_layout(): void;
+    set_cursor(cursor?: Cursor | null): void;
+    set_device_cursor(device: Device, cursor: Cursor): void;
+    set_input_region(region: cairo.Region): void;
+    set_opaque_region(region?: cairo.Region | null): void;
+    translate_coordinates(to: Surface, x: number, y: number): [boolean, number, number];
+}
+export module Texture {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        height: number;
+        width: number;
+    }
+}
+export abstract class Texture extends GObject.Object implements Paintable, Gio.Icon, Gio.LoadableIcon {
+    static $gtype: GObject.GType<Texture>;
+
+    constructor(properties?: Partial<Texture.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Texture.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get height(): number;
+    get width(): number;
+
+    // Constructors
+
+    static new_for_pixbuf(pixbuf: GdkPixbuf.Pixbuf): Texture;
+    static new_from_bytes(bytes: GLib.Bytes | Uint8Array): Texture;
+    static new_from_file(file: Gio.File): Texture;
+    static new_from_filename(path: string): Texture;
+    static new_from_resource(resource_path: string): Texture;
+
+    // Members
+
+    download(data: Uint8Array | string, stride: number): void;
+    get_height(): number;
+    get_width(): number;
+    save_to_png(filename: string): boolean;
+    save_to_png_bytes(): GLib.Bytes;
+    save_to_tiff(filename: string): boolean;
+    save_to_tiff_bytes(): GLib.Bytes;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Paintable;
+    get_flags(): PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Paintable;
+    vfunc_get_flags(): PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Snapshot, width: number, height: number): void;
+    equal(icon2?: Gio.Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Gio.Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+    load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+    vfunc_load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    vfunc_load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+}
+export module TouchEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TouchEvent extends Event {
+    static $gtype: GObject.GType<TouchEvent>;
+
+    constructor(properties?: Partial<TouchEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TouchEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_emulating_pointer(): boolean;
+}
+export module TouchpadEvent {
+    export interface ConstructorProperties extends Event.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TouchpadEvent extends Event {
+    static $gtype: GObject.GType<TouchpadEvent>;
+
+    constructor(properties?: Partial<TouchpadEvent.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TouchpadEvent.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_deltas(): [number, number];
+    get_gesture_phase(): TouchpadGesturePhase;
+    get_n_fingers(): number;
+    get_pinch_angle_delta(): number;
+    get_pinch_scale(): number;
+}
+export module VulkanContext {
+    export interface ConstructorProperties extends DrawContext.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class VulkanContext extends DrawContext implements Gio.Initable {
+    static $gtype: GObject.GType<VulkanContext>;
+
+    constructor(properties?: Partial<VulkanContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<VulkanContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "images-updated", callback: (_source: this) => void): number;
+    connect_after(signal: "images-updated", callback: (_source: this) => void): number;
+    emit(signal: "images-updated"): void;
+
+    // Implemented Members
+
+    init(cancellable?: Gio.Cancellable | null): boolean;
+    vfunc_init(cancellable?: Gio.Cancellable | null): boolean;
+}
+
+export class ContentFormats {
+    static $gtype: GObject.GType<ContentFormats>;
+
+    constructor(mime_types?: string[] | null);
+    constructor(copy: ContentFormats);
+
+    // Constructors
+    static ["new"](mime_types?: string[] | null): ContentFormats;
+    static new_for_gtype(type: GObject.GType): ContentFormats;
+
+    // Members
+    contain_gtype(type: GObject.GType): boolean;
+    contain_mime_type(mime_type: string): boolean;
+    get_gtypes(): GObject.GType[] | null;
+    get_mime_types(): string[] | null;
+    match(second: ContentFormats): boolean;
+    match_gtype(second: ContentFormats): GObject.GType;
+    match_mime_type(second: ContentFormats): string | null;
+    print(string: GLib.String): void;
+    ref(): ContentFormats;
+    to_string(): string;
+    union(second: ContentFormats): ContentFormats;
+    union_deserialize_gtypes(): ContentFormats;
+    union_deserialize_mime_types(): ContentFormats;
+    union_serialize_gtypes(): ContentFormats;
+    union_serialize_mime_types(): ContentFormats;
+    unref(): void;
+    static parse(string: string): ContentFormats | null;
+}
+
+export class ContentFormatsBuilder {
+    static $gtype: GObject.GType<ContentFormatsBuilder>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: ContentFormatsBuilder);
+
+    // Constructors
+    static ["new"](): ContentFormatsBuilder;
+
+    // Members
+    add_formats(formats: ContentFormats): void;
+    add_gtype(type: GObject.GType): void;
+    add_mime_type(mime_type: string): void;
+    ref(): ContentFormatsBuilder;
+    to_formats(): ContentFormats;
+    unref(): void;
+}
+
+export class EventSequence {
+    static $gtype: GObject.GType<EventSequence>;
+
+    constructor(copy: EventSequence);
+}
+
+export class FileList {
+    static $gtype: GObject.GType<FileList>;
+
+    constructor(copy: FileList);
+
+    // Members
+    get_files(): Gio.File[];
+}
+
+export class FrameClockPrivate {
+    static $gtype: GObject.GType<FrameClockPrivate>;
+
+    constructor(copy: FrameClockPrivate);
+}
+
+export class FrameTimings {
+    static $gtype: GObject.GType<FrameTimings>;
+
+    constructor(copy: FrameTimings);
+
+    // Members
+    get_complete(): boolean;
+    get_frame_counter(): number;
+    get_frame_time(): number;
+    get_predicted_presentation_time(): number;
+    get_presentation_time(): number;
+    get_refresh_interval(): number;
+    ref(): FrameTimings;
+    unref(): void;
+}
+
+export class KeymapKey {
+    static $gtype: GObject.GType<KeymapKey>;
+
+    constructor(
+        properties?: Partial<{
+            keycode?: number;
+            group?: number;
+            level?: number;
+        }>
+    );
+    constructor(copy: KeymapKey);
+
+    // Fields
+    keycode: number;
+    group: number;
+    level: number;
+}
+
+export class PopupLayout {
+    static $gtype: GObject.GType<PopupLayout>;
+
+    constructor(anchor_rect: Rectangle, rect_anchor: Gravity, surface_anchor: Gravity);
+    constructor(copy: PopupLayout);
+
+    // Constructors
+    static ["new"](anchor_rect: Rectangle, rect_anchor: Gravity, surface_anchor: Gravity): PopupLayout;
+
+    // Members
+    copy(): PopupLayout;
+    equal(other: PopupLayout): boolean;
+    get_anchor_hints(): AnchorHints;
+    get_anchor_rect(): Rectangle;
+    get_offset(): [number, number];
+    get_rect_anchor(): Gravity;
+    get_shadow_width(): [number, number, number, number];
+    get_surface_anchor(): Gravity;
+    ref(): PopupLayout;
+    set_anchor_hints(anchor_hints: AnchorHints): void;
+    set_anchor_rect(anchor_rect: Rectangle): void;
+    set_offset(dx: number, dy: number): void;
+    set_rect_anchor(anchor: Gravity): void;
+    set_shadow_width(left: number, right: number, top: number, bottom: number): void;
+    set_surface_anchor(anchor: Gravity): void;
+    unref(): void;
+}
+
+export class RGBA {
+    static $gtype: GObject.GType<RGBA>;
+
+    constructor(
+        properties?: Partial<{
+            red?: number;
+            green?: number;
+            blue?: number;
+            alpha?: number;
+        }>
+    );
+    constructor(copy: RGBA);
+
+    // Fields
+    red: number;
+    green: number;
+    blue: number;
+    alpha: number;
+
+    // Members
+    copy(): RGBA;
+    equal(p2: RGBA): boolean;
+    free(): void;
+    hash(): number;
+    is_clear(): boolean;
+    is_opaque(): boolean;
+    parse(spec: string): boolean;
+    to_string(): string;
+}
+
+export class Rectangle {
+    static $gtype: GObject.GType<Rectangle>;
+
+    constructor(
+        properties?: Partial<{
+            x?: number;
+            y?: number;
+            width?: number;
+            height?: number;
+        }>
+    );
+    constructor(copy: Rectangle);
+
+    // Fields
+    x: number;
+    y: number;
+    width: number;
+    height: number;
+
+    // Members
+    contains_point(x: number, y: number): boolean;
+    equal(rect2: Rectangle): boolean;
+    intersect(src2: Rectangle): [boolean, Rectangle | null];
+    union(src2: Rectangle): Rectangle;
+}
+
+export class TimeCoord {
+    static $gtype: GObject.GType<TimeCoord>;
+
+    constructor(copy: TimeCoord);
+
+    // Fields
+    time: number;
+    flags: AxisFlags;
+    axes: number[];
+}
+
+export class ToplevelLayout {
+    static $gtype: GObject.GType<ToplevelLayout>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: ToplevelLayout);
+
+    // Constructors
+    static ["new"](): ToplevelLayout;
+
+    // Members
+    copy(): ToplevelLayout;
+    equal(other: ToplevelLayout): boolean;
+    get_fullscreen(): [boolean, boolean];
+    get_fullscreen_monitor(): Monitor | null;
+    get_maximized(): [boolean, boolean];
+    get_resizable(): boolean;
+    ref(): ToplevelLayout;
+    set_fullscreen(fullscreen: boolean, monitor?: Monitor | null): void;
+    set_maximized(maximized: boolean): void;
+    set_resizable(resizable: boolean): void;
+    unref(): void;
+}
+
+export class ToplevelSize {
+    static $gtype: GObject.GType<ToplevelSize>;
+
+    constructor(copy: ToplevelSize);
+
+    // Members
+    get_bounds(): [number, number];
+    set_min_size(min_width: number, min_height: number): void;
+    set_shadow_width(left: number, right: number, top: number, bottom: number): void;
+    set_size(width: number, height: number): void;
+}
+
+export interface DevicePadNamespace {
+    $gtype: GObject.GType<DevicePad>;
+    prototype: DevicePadPrototype;
+}
+export type DevicePad = DevicePadPrototype;
+export interface DevicePadPrototype extends Device {
+    // Members
+
+    get_feature_group(feature: DevicePadFeature, feature_idx: number): number;
+    get_group_n_modes(group_idx: number): number;
+    get_n_features(feature: DevicePadFeature): number;
+    get_n_groups(): number;
+}
+
+export const DevicePad: DevicePadNamespace;
+
+export interface DragSurfaceNamespace {
+    $gtype: GObject.GType<DragSurface>;
+    prototype: DragSurfacePrototype;
+}
+export type DragSurface = DragSurfacePrototype;
+export interface DragSurfacePrototype extends Surface {
+    // Members
+
+    present(width: number, height: number): boolean;
+}
+
+export const DragSurface: DragSurfaceNamespace;
+
+export interface PaintableNamespace {
+    $gtype: GObject.GType<Paintable>;
+    prototype: PaintablePrototype;
+
+    new_empty(intrinsic_width: number, intrinsic_height: number): Paintable;
+}
+export type Paintable = PaintablePrototype;
+export interface PaintablePrototype extends GObject.Object {
+    // Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Paintable;
+    get_flags(): PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Paintable;
+    vfunc_get_flags(): PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Snapshot, width: number, height: number): void;
+}
+
+export const Paintable: PaintableNamespace;
+
+export interface PopupNamespace {
+    $gtype: GObject.GType<Popup>;
+    prototype: PopupPrototype;
+}
+export type Popup = PopupPrototype;
+export interface PopupPrototype extends Surface {
+    // Properties
+    readonly autohide: boolean;
+
+    // Members
+
+    get_autohide(): boolean;
+    get_parent(): Surface | null;
+    get_position_x(): number;
+    get_position_y(): number;
+    get_rect_anchor(): Gravity;
+    get_surface_anchor(): Gravity;
+    present(width: number, height: number, layout: PopupLayout): boolean;
+}
+
+export const Popup: PopupNamespace;
+
+export interface ToplevelNamespace {
+    $gtype: GObject.GType<Toplevel>;
+    prototype: ToplevelPrototype;
+}
+export type Toplevel = ToplevelPrototype;
+export interface ToplevelPrototype extends Surface {
+    // Properties
+    decorated: boolean;
+    deletable: boolean;
+    fullscreen_mode: FullscreenMode;
+    fullscreenMode: FullscreenMode;
+    icon_list: any;
+    iconList: any;
+    modal: boolean;
+    readonly shortcuts_inhibited: boolean;
+    readonly shortcutsInhibited: boolean;
+    startup_id: string;
+    startupId: string;
+    readonly state: ToplevelState;
+    title: string;
+    transient_for: Surface;
+    transientFor: Surface;
+
+    // Members
+
+    begin_move(device: Device, button: number, x: number, y: number, timestamp: number): void;
+    begin_resize(
+        edge: SurfaceEdge,
+        device: Device | null,
+        button: number,
+        x: number,
+        y: number,
+        timestamp: number
+    ): void;
+    focus(timestamp: number): void;
+    get_state(): ToplevelState;
+    inhibit_system_shortcuts(event?: Event | null): void;
+    lower(): boolean;
+    minimize(): boolean;
+    present(layout: ToplevelLayout): void;
+    restore_system_shortcuts(): void;
+    set_decorated(decorated: boolean): void;
+    set_deletable(deletable: boolean): void;
+    set_icon_list(surfaces: Texture[]): void;
+    set_modal(modal: boolean): void;
+    set_startup_id(startup_id: string): void;
+    set_title(title: string): void;
+    set_transient_for(parent: Surface): void;
+    show_window_menu(event: Event): boolean;
+    supports_edge_constraints(): boolean;
+    titlebar_gesture(gesture: TitlebarGesture): boolean;
+}
+
+export const Toplevel: ToplevelNamespace;
diff --git a/types/gdkpixbuf.d.ts b/types/gdkpixbuf.d.ts
new file mode 100644
index 0000000..4722b6f
--- /dev/null
+++ b/types/gdkpixbuf.d.ts
@@ -0,0 +1,599 @@
+/**
+ * GdkPixbuf 2.0
+ *
+ * Generated from 2.0
+ */
+
+import * as GObject from "gobject";
+import * as GModule from "gmodule";
+import * as Gio from "gio";
+import * as GLib from "glib";
+
+export const PIXBUF_MAJOR: number;
+export const PIXBUF_MICRO: number;
+export const PIXBUF_MINOR: number;
+export const PIXBUF_VERSION: string;
+export function pixbuf_error_quark(): GLib.Quark;
+export type PixbufDestroyNotify = (pixels: Uint8Array | string) => void;
+export type PixbufModuleFillInfoFunc = (info: PixbufFormat) => void;
+export type PixbufModuleFillVtableFunc = (module: PixbufModule) => void;
+export type PixbufModuleIncrementLoadFunc = (context: any | null, buf: Uint8Array | string) => boolean;
+export type PixbufModuleLoadAnimationFunc = (f?: any | null) => PixbufAnimation;
+export type PixbufModuleLoadFunc = (f?: any | null) => Pixbuf;
+export type PixbufModuleLoadXpmDataFunc = (data: string[]) => Pixbuf;
+export type PixbufModulePreparedFunc = (pixbuf: Pixbuf, anim: PixbufAnimation) => void;
+export type PixbufModuleSaveFunc = (
+    f: any | null,
+    pixbuf: Pixbuf,
+    param_keys?: string[] | null,
+    param_values?: string[] | null
+) => boolean;
+export type PixbufModuleSaveOptionSupportedFunc = (option_key: string) => boolean;
+export type PixbufModuleSizeFunc = (width: number, height: number) => void;
+export type PixbufModuleStopLoadFunc = (context?: any | null) => boolean;
+export type PixbufModuleUpdatedFunc = (pixbuf: Pixbuf, x: number, y: number, width: number, height: number) 
=> void;
+export type PixbufSaveFunc = (buf: Uint8Array | string) => boolean;
+
+export namespace Colorspace {
+    export const $gtype: GObject.GType<Colorspace>;
+}
+
+export enum Colorspace {
+    RGB = 0,
+}
+
+export namespace InterpType {
+    export const $gtype: GObject.GType<InterpType>;
+}
+
+export enum InterpType {
+    NEAREST = 0,
+    TILES = 1,
+    BILINEAR = 2,
+    HYPER = 3,
+}
+
+export namespace PixbufAlphaMode {
+    export const $gtype: GObject.GType<PixbufAlphaMode>;
+}
+
+export enum PixbufAlphaMode {
+    BILEVEL = 0,
+    FULL = 1,
+}
+
+export class PixbufError extends GLib.Error {
+    static $gtype: GObject.GType<PixbufError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: PixbufError);
+
+    // Fields
+    static CORRUPT_IMAGE: number;
+    static INSUFFICIENT_MEMORY: number;
+    static BAD_OPTION: number;
+    static UNKNOWN_TYPE: number;
+    static UNSUPPORTED_OPERATION: number;
+    static FAILED: number;
+    static INCOMPLETE_ANIMATION: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace PixbufRotation {
+    export const $gtype: GObject.GType<PixbufRotation>;
+}
+
+export enum PixbufRotation {
+    NONE = 0,
+    COUNTERCLOCKWISE = 90,
+    UPSIDEDOWN = 180,
+    CLOCKWISE = 270,
+}
+
+export namespace PixbufFormatFlags {
+    export const $gtype: GObject.GType<PixbufFormatFlags>;
+}
+
+export enum PixbufFormatFlags {
+    WRITABLE = 1,
+    SCALABLE = 2,
+    THREADSAFE = 4,
+}
+export module Pixbuf {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        bits_per_sample: number;
+        bitsPerSample: number;
+        colorspace: Colorspace;
+        has_alpha: boolean;
+        hasAlpha: boolean;
+        height: number;
+        n_channels: number;
+        nChannels: number;
+        pixel_bytes: GLib.Bytes;
+        pixelBytes: GLib.Bytes;
+        pixels: any;
+        rowstride: number;
+        width: number;
+    }
+}
+export class Pixbuf extends GObject.Object implements Gio.Icon, Gio.LoadableIcon {
+    static $gtype: GObject.GType<Pixbuf>;
+
+    constructor(properties?: Partial<Pixbuf.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Pixbuf.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get bits_per_sample(): number;
+    get bitsPerSample(): number;
+    get colorspace(): Colorspace;
+    get has_alpha(): boolean;
+    get hasAlpha(): boolean;
+    get height(): number;
+    get n_channels(): number;
+    get nChannels(): number;
+    get pixel_bytes(): GLib.Bytes;
+    get pixelBytes(): GLib.Bytes;
+    get pixels(): any;
+    get rowstride(): number;
+    get width(): number;
+
+    // Constructors
+
+    static ["new"](
+        colorspace: Colorspace,
+        has_alpha: boolean,
+        bits_per_sample: number,
+        width: number,
+        height: number
+    ): Pixbuf;
+    static new_from_bytes(
+        data: GLib.Bytes | Uint8Array,
+        colorspace: Colorspace,
+        has_alpha: boolean,
+        bits_per_sample: number,
+        width: number,
+        height: number,
+        rowstride: number
+    ): Pixbuf;
+    static new_from_data(
+        data: Uint8Array | string,
+        colorspace: Colorspace,
+        has_alpha: boolean,
+        bits_per_sample: number,
+        width: number,
+        height: number,
+        rowstride: number,
+        destroy_fn?: PixbufDestroyNotify | null
+    ): Pixbuf;
+    static new_from_file(filename: string): Pixbuf;
+    static new_from_file_at_scale(
+        filename: string,
+        width: number,
+        height: number,
+        preserve_aspect_ratio: boolean
+    ): Pixbuf;
+    static new_from_file_at_size(filename: string, width: number, height: number): Pixbuf;
+    static new_from_inline(data: Uint8Array | string, copy_pixels: boolean): Pixbuf;
+    static new_from_resource(resource_path: string): Pixbuf;
+    static new_from_resource_at_scale(
+        resource_path: string,
+        width: number,
+        height: number,
+        preserve_aspect_ratio: boolean
+    ): Pixbuf;
+    static new_from_stream(stream: Gio.InputStream, cancellable?: Gio.Cancellable | null): Pixbuf;
+    static new_from_stream_at_scale(
+        stream: Gio.InputStream,
+        width: number,
+        height: number,
+        preserve_aspect_ratio: boolean,
+        cancellable?: Gio.Cancellable | null
+    ): Pixbuf;
+    static new_from_stream_finish(async_result: Gio.AsyncResult): Pixbuf;
+    static new_from_xpm_data(data: string[]): Pixbuf;
+
+    // Members
+
+    add_alpha(substitute_color: boolean, r: number, g: number, b: number): Pixbuf;
+    apply_embedded_orientation(): Pixbuf | null;
+    composite(
+        dest: Pixbuf,
+        dest_x: number,
+        dest_y: number,
+        dest_width: number,
+        dest_height: number,
+        offset_x: number,
+        offset_y: number,
+        scale_x: number,
+        scale_y: number,
+        interp_type: InterpType,
+        overall_alpha: number
+    ): void;
+    composite_color(
+        dest: Pixbuf,
+        dest_x: number,
+        dest_y: number,
+        dest_width: number,
+        dest_height: number,
+        offset_x: number,
+        offset_y: number,
+        scale_x: number,
+        scale_y: number,
+        interp_type: InterpType,
+        overall_alpha: number,
+        check_x: number,
+        check_y: number,
+        check_size: number,
+        color1: number,
+        color2: number
+    ): void;
+    composite_color_simple(
+        dest_width: number,
+        dest_height: number,
+        interp_type: InterpType,
+        overall_alpha: number,
+        check_size: number,
+        color1: number,
+        color2: number
+    ): Pixbuf | null;
+    copy(): Pixbuf | null;
+    copy_area(
+        src_x: number,
+        src_y: number,
+        width: number,
+        height: number,
+        dest_pixbuf: Pixbuf,
+        dest_x: number,
+        dest_y: number
+    ): void;
+    copy_options(dest_pixbuf: Pixbuf): boolean;
+    fill(pixel: number): void;
+    flip(horizontal: boolean): Pixbuf | null;
+    get_bits_per_sample(): number;
+    get_byte_length(): number;
+    get_colorspace(): Colorspace;
+    get_has_alpha(): boolean;
+    get_height(): number;
+    get_n_channels(): number;
+    get_option(key: string): string | null;
+    get_options(): GLib.HashTable<string, string>;
+    get_pixels(): Uint8Array;
+    get_pixels(): Uint8Array;
+    get_rowstride(): number;
+    get_width(): number;
+    new_subpixbuf(src_x: number, src_y: number, width: number, height: number): Pixbuf;
+    read_pixel_bytes(): GLib.Bytes;
+    read_pixels(): number;
+    remove_option(key: string): boolean;
+    rotate_simple(angle: PixbufRotation): Pixbuf | null;
+    saturate_and_pixelate(dest: Pixbuf, saturation: number, pixelate: boolean): void;
+    save_to_bufferv(
+        type: string,
+        option_keys?: string[] | null,
+        option_values?: string[] | null
+    ): [boolean, Uint8Array];
+    save_to_callbackv(
+        save_func: PixbufSaveFunc,
+        type: string,
+        option_keys?: string[] | null,
+        option_values?: string[] | null
+    ): boolean;
+    save_to_streamv(
+        stream: Gio.OutputStream,
+        type: string,
+        option_keys?: string[] | null,
+        option_values?: string[] | null,
+        cancellable?: Gio.Cancellable | null
+    ): boolean;
+    save_to_streamv_async(
+        stream: Gio.OutputStream,
+        type: string,
+        option_keys?: string[] | null,
+        option_values?: string[] | null,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    savev(filename: string, type: string, option_keys?: string[] | null, option_values?: string[] | null): 
boolean;
+    scale(
+        dest: Pixbuf,
+        dest_x: number,
+        dest_y: number,
+        dest_width: number,
+        dest_height: number,
+        offset_x: number,
+        offset_y: number,
+        scale_x: number,
+        scale_y: number,
+        interp_type: InterpType
+    ): void;
+    scale_simple(dest_width: number, dest_height: number, interp_type: InterpType): Pixbuf | null;
+    set_option(key: string, value: string): boolean;
+    static calculate_rowstride(
+        colorspace: Colorspace,
+        has_alpha: boolean,
+        bits_per_sample: number,
+        width: number,
+        height: number
+    ): number;
+    static get_file_info(filename: string): [PixbufFormat | null, number, number];
+    static get_file_info_async(
+        filename: string,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<Pixbuf> | null
+    ): void;
+    static get_file_info_finish(async_result: Gio.AsyncResult): [PixbufFormat | null, number, number];
+    static get_formats(): PixbufFormat[];
+    static init_modules(path: string): boolean;
+    static new_from_stream_async(
+        stream: Gio.InputStream,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<Pixbuf> | null
+    ): void;
+    static new_from_stream_at_scale_async(
+        stream: Gio.InputStream,
+        width: number,
+        height: number,
+        preserve_aspect_ratio: boolean,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<Pixbuf> | null
+    ): void;
+    static save_to_stream_finish(async_result: Gio.AsyncResult): boolean;
+
+    // Implemented Members
+
+    equal(icon2?: Gio.Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Gio.Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+    load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+    vfunc_load(size: number, cancellable?: Gio.Cancellable | null): [Gio.InputStream, string];
+    vfunc_load_async(
+        size: number,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_load_finish(res: Gio.AsyncResult): [Gio.InputStream, string];
+}
+export module PixbufAnimation {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PixbufAnimation extends GObject.Object {
+    static $gtype: GObject.GType<PixbufAnimation>;
+
+    constructor(properties?: Partial<PixbufAnimation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PixbufAnimation.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static new_from_file(filename: string): PixbufAnimation;
+    static new_from_resource(resource_path: string): PixbufAnimation;
+    static new_from_stream(stream: Gio.InputStream, cancellable?: Gio.Cancellable | null): PixbufAnimation;
+    static new_from_stream_finish(async_result: Gio.AsyncResult): PixbufAnimation;
+
+    // Members
+
+    get_height(): number;
+    get_iter(start_time?: GLib.TimeVal | null): PixbufAnimationIter;
+    get_static_image(): Pixbuf;
+    get_width(): number;
+    is_static_image(): boolean;
+    vfunc_get_iter(start_time?: GLib.TimeVal | null): PixbufAnimationIter;
+    vfunc_get_size(width: number, height: number): void;
+    vfunc_get_static_image(): Pixbuf;
+    vfunc_is_static_image(): boolean;
+    static new_from_stream_async(
+        stream: Gio.InputStream,
+        cancellable?: Gio.Cancellable | null,
+        callback?: Gio.AsyncReadyCallback<PixbufAnimation> | null
+    ): void;
+}
+export module PixbufAnimationIter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PixbufAnimationIter extends GObject.Object {
+    static $gtype: GObject.GType<PixbufAnimationIter>;
+
+    constructor(properties?: Partial<PixbufAnimationIter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PixbufAnimationIter.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    advance(current_time?: GLib.TimeVal | null): boolean;
+    get_delay_time(): number;
+    get_pixbuf(): Pixbuf;
+    on_currently_loading_frame(): boolean;
+    vfunc_advance(current_time?: GLib.TimeVal | null): boolean;
+    vfunc_get_delay_time(): number;
+    vfunc_get_pixbuf(): Pixbuf;
+    vfunc_on_currently_loading_frame(): boolean;
+}
+export module PixbufLoader {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PixbufLoader extends GObject.Object {
+    static $gtype: GObject.GType<PixbufLoader>;
+
+    constructor(properties?: Partial<PixbufLoader.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PixbufLoader.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "area-prepared", callback: (_source: this) => void): number;
+    connect_after(signal: "area-prepared", callback: (_source: this) => void): number;
+    emit(signal: "area-prepared"): void;
+    connect(
+        signal: "area-updated",
+        callback: (_source: this, x: number, y: number, width: number, height: number) => void
+    ): number;
+    connect_after(
+        signal: "area-updated",
+        callback: (_source: this, x: number, y: number, width: number, height: number) => void
+    ): number;
+    emit(signal: "area-updated", x: number, y: number, width: number, height: number): void;
+    connect(signal: "closed", callback: (_source: this) => void): number;
+    connect_after(signal: "closed", callback: (_source: this) => void): number;
+    emit(signal: "closed"): void;
+    connect(signal: "size-prepared", callback: (_source: this, width: number, height: number) => void): 
number;
+    connect_after(signal: "size-prepared", callback: (_source: this, width: number, height: number) => 
void): number;
+    emit(signal: "size-prepared", width: number, height: number): void;
+
+    // Constructors
+
+    static ["new"](): PixbufLoader;
+    static new_with_mime_type(mime_type: string): PixbufLoader;
+    static new_with_type(image_type: string): PixbufLoader;
+
+    // Members
+
+    close(): boolean;
+    get_animation(): PixbufAnimation | null;
+    get_format(): PixbufFormat | null;
+    get_pixbuf(): Pixbuf | null;
+    set_size(width: number, height: number): void;
+    write(buf: Uint8Array | string): boolean;
+    write_bytes(buffer: GLib.Bytes | Uint8Array): boolean;
+    vfunc_area_prepared(): void;
+    vfunc_area_updated(x: number, y: number, width: number, height: number): void;
+    vfunc_closed(): void;
+    vfunc_size_prepared(width: number, height: number): void;
+}
+export module PixbufNonAnim {
+    export interface ConstructorProperties extends PixbufAnimation.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PixbufNonAnim extends PixbufAnimation {
+    static $gtype: GObject.GType<PixbufNonAnim>;
+
+    constructor(properties?: Partial<PixbufNonAnim.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PixbufNonAnim.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](pixbuf: Pixbuf): PixbufNonAnim;
+}
+export module PixbufSimpleAnim {
+    export interface ConstructorProperties extends PixbufAnimation.ConstructorProperties {
+        [key: string]: any;
+        loop: boolean;
+    }
+}
+export class PixbufSimpleAnim extends PixbufAnimation {
+    static $gtype: GObject.GType<PixbufSimpleAnim>;
+
+    constructor(properties?: Partial<PixbufSimpleAnim.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PixbufSimpleAnim.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get loop(): boolean;
+    set loop(val: boolean);
+
+    // Constructors
+
+    static ["new"](width: number, height: number, rate: number): PixbufSimpleAnim;
+
+    // Members
+
+    add_frame(pixbuf: Pixbuf): void;
+    get_loop(): boolean;
+    set_loop(loop: boolean): void;
+}
+export module PixbufSimpleAnimIter {
+    export interface ConstructorProperties extends PixbufAnimationIter.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PixbufSimpleAnimIter extends PixbufAnimationIter {
+    static $gtype: GObject.GType<PixbufSimpleAnimIter>;
+
+    constructor(properties?: Partial<PixbufSimpleAnimIter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PixbufSimpleAnimIter.ConstructorProperties>, ...args: any[]): void;
+}
+
+export class PixbufFormat {
+    static $gtype: GObject.GType<PixbufFormat>;
+
+    constructor(copy: PixbufFormat);
+
+    // Fields
+    name: string;
+    signature: PixbufModulePattern;
+    domain: string;
+    description: string;
+    mime_types: string[];
+    extensions: string[];
+    flags: number;
+    disabled: boolean;
+    license: string;
+
+    // Members
+    copy(): PixbufFormat;
+    free(): void;
+    get_description(): string;
+    get_extensions(): string[];
+    get_license(): string;
+    get_mime_types(): string[];
+    get_name(): string;
+    is_disabled(): boolean;
+    is_save_option_supported(option_key: string): boolean;
+    is_scalable(): boolean;
+    is_writable(): boolean;
+    set_disabled(disabled: boolean): void;
+}
+
+export class PixbufModule {
+    static $gtype: GObject.GType<PixbufModule>;
+
+    constructor(copy: PixbufModule);
+
+    // Fields
+    module_name: string;
+    module_path: string;
+    module: GModule.Module;
+    info: PixbufFormat;
+    load: PixbufModuleLoadFunc;
+    load_xpm_data: PixbufModuleLoadXpmDataFunc;
+    stop_load: PixbufModuleStopLoadFunc;
+    load_increment: PixbufModuleIncrementLoadFunc;
+    load_animation: PixbufModuleLoadAnimationFunc;
+    save: PixbufModuleSaveFunc;
+    is_save_option_supported: PixbufModuleSaveOptionSupportedFunc;
+}
+
+export class PixbufModulePattern {
+    static $gtype: GObject.GType<PixbufModulePattern>;
+
+    constructor(
+        properties?: Partial<{
+            prefix?: string;
+            mask?: string;
+            relevance?: number;
+        }>
+    );
+    constructor(copy: PixbufModulePattern);
+
+    // Fields
+    prefix: string;
+    mask: string;
+    relevance: number;
+}
diff --git a/types/gio.d.ts b/types/gio.d.ts
new file mode 100644
index 0000000..797463b
--- /dev/null
+++ b/types/gio.d.ts
@@ -0,0 +1,10540 @@
+/**
+ * Gio 2.0
+ *
+ * Generated from 2.72.2
+ */
+
+import * as GObject from "gobject";
+import * as GLib from "glib";
+
+export const DBUS_METHOD_INVOCATION_HANDLED: boolean;
+export const DBUS_METHOD_INVOCATION_UNHANDLED: boolean;
+export const DEBUG_CONTROLLER_EXTENSION_POINT_NAME: string;
+export const DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME: string;
+export const DRIVE_IDENTIFIER_KIND_UNIX_DEVICE: string;
+export const FILE_ATTRIBUTE_ACCESS_CAN_DELETE: string;
+export const FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE: string;
+export const FILE_ATTRIBUTE_ACCESS_CAN_READ: string;
+export const FILE_ATTRIBUTE_ACCESS_CAN_RENAME: string;
+export const FILE_ATTRIBUTE_ACCESS_CAN_TRASH: string;
+export const FILE_ATTRIBUTE_ACCESS_CAN_WRITE: string;
+export const FILE_ATTRIBUTE_DOS_IS_ARCHIVE: string;
+export const FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT: string;
+export const FILE_ATTRIBUTE_DOS_IS_SYSTEM: string;
+export const FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG: string;
+export const FILE_ATTRIBUTE_ETAG_VALUE: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_FREE: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_READONLY: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_REMOTE: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_SIZE: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_TYPE: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_USED: string;
+export const FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW: string;
+export const FILE_ATTRIBUTE_GVFS_BACKEND: string;
+export const FILE_ATTRIBUTE_ID_FILE: string;
+export const FILE_ATTRIBUTE_ID_FILESYSTEM: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_START: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE: string;
+export const FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE: string;
+export const FILE_ATTRIBUTE_OWNER_GROUP: string;
+export const FILE_ATTRIBUTE_OWNER_USER: string;
+export const FILE_ATTRIBUTE_OWNER_USER_REAL: string;
+export const FILE_ATTRIBUTE_PREVIEW_ICON: string;
+export const FILE_ATTRIBUTE_RECENT_MODIFIED: string;
+export const FILE_ATTRIBUTE_SELINUX_CONTEXT: string;
+export const FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE: string;
+export const FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE: string;
+export const FILE_ATTRIBUTE_STANDARD_COPY_NAME: string;
+export const FILE_ATTRIBUTE_STANDARD_DESCRIPTION: string;
+export const FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME: string;
+export const FILE_ATTRIBUTE_STANDARD_EDIT_NAME: string;
+export const FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE: string;
+export const FILE_ATTRIBUTE_STANDARD_ICON: string;
+export const FILE_ATTRIBUTE_STANDARD_IS_BACKUP: string;
+export const FILE_ATTRIBUTE_STANDARD_IS_HIDDEN: string;
+export const FILE_ATTRIBUTE_STANDARD_IS_SYMLINK: string;
+export const FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL: string;
+export const FILE_ATTRIBUTE_STANDARD_IS_VOLATILE: string;
+export const FILE_ATTRIBUTE_STANDARD_NAME: string;
+export const FILE_ATTRIBUTE_STANDARD_SIZE: string;
+export const FILE_ATTRIBUTE_STANDARD_SORT_ORDER: string;
+export const FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON: string;
+export const FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET: string;
+export const FILE_ATTRIBUTE_STANDARD_TARGET_URI: string;
+export const FILE_ATTRIBUTE_STANDARD_TYPE: string;
+export const FILE_ATTRIBUTE_THUMBNAILING_FAILED: string;
+export const FILE_ATTRIBUTE_THUMBNAIL_IS_VALID: string;
+export const FILE_ATTRIBUTE_THUMBNAIL_PATH: string;
+export const FILE_ATTRIBUTE_TIME_ACCESS: string;
+export const FILE_ATTRIBUTE_TIME_ACCESS_USEC: string;
+export const FILE_ATTRIBUTE_TIME_CHANGED: string;
+export const FILE_ATTRIBUTE_TIME_CHANGED_USEC: string;
+export const FILE_ATTRIBUTE_TIME_CREATED: string;
+export const FILE_ATTRIBUTE_TIME_CREATED_USEC: string;
+export const FILE_ATTRIBUTE_TIME_MODIFIED: string;
+export const FILE_ATTRIBUTE_TIME_MODIFIED_USEC: string;
+export const FILE_ATTRIBUTE_TRASH_DELETION_DATE: string;
+export const FILE_ATTRIBUTE_TRASH_ITEM_COUNT: string;
+export const FILE_ATTRIBUTE_TRASH_ORIG_PATH: string;
+export const FILE_ATTRIBUTE_UNIX_BLOCKS: string;
+export const FILE_ATTRIBUTE_UNIX_BLOCK_SIZE: string;
+export const FILE_ATTRIBUTE_UNIX_DEVICE: string;
+export const FILE_ATTRIBUTE_UNIX_GID: string;
+export const FILE_ATTRIBUTE_UNIX_INODE: string;
+export const FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT: string;
+export const FILE_ATTRIBUTE_UNIX_MODE: string;
+export const FILE_ATTRIBUTE_UNIX_NLINK: string;
+export const FILE_ATTRIBUTE_UNIX_RDEV: string;
+export const FILE_ATTRIBUTE_UNIX_UID: string;
+export const MEMORY_MONITOR_EXTENSION_POINT_NAME: string;
+export const MENU_ATTRIBUTE_ACTION: string;
+export const MENU_ATTRIBUTE_ACTION_NAMESPACE: string;
+export const MENU_ATTRIBUTE_ICON: string;
+export const MENU_ATTRIBUTE_LABEL: string;
+export const MENU_ATTRIBUTE_TARGET: string;
+export const MENU_LINK_SECTION: string;
+export const MENU_LINK_SUBMENU: string;
+export const NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME: string;
+export const NETWORK_MONITOR_EXTENSION_POINT_NAME: string;
+export const POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME: string;
+export const PROXY_EXTENSION_POINT_NAME: string;
+export const PROXY_RESOLVER_EXTENSION_POINT_NAME: string;
+export const SETTINGS_BACKEND_EXTENSION_POINT_NAME: string;
+export const TLS_BACKEND_EXTENSION_POINT_NAME: string;
+export const TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT: string;
+export const TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER: string;
+export const VFS_EXTENSION_POINT_NAME: string;
+export const VOLUME_IDENTIFIER_KIND_CLASS: string;
+export const VOLUME_IDENTIFIER_KIND_HAL_UDI: string;
+export const VOLUME_IDENTIFIER_KIND_LABEL: string;
+export const VOLUME_IDENTIFIER_KIND_NFS_MOUNT: string;
+export const VOLUME_IDENTIFIER_KIND_UNIX_DEVICE: string;
+export const VOLUME_IDENTIFIER_KIND_UUID: string;
+export const VOLUME_MONITOR_EXTENSION_POINT_NAME: string;
+export function action_name_is_valid(action_name: string): boolean;
+export function action_parse_detailed_name(detailed_name: string): [boolean, string, GLib.Variant];
+export function action_print_detailed_name(action_name: string, target_value?: GLib.Variant | null): string;
+export function app_info_create_from_commandline(
+    commandline: string,
+    application_name: string | null,
+    flags: AppInfoCreateFlags
+): AppInfo;
+export function app_info_get_all(): AppInfo[];
+export function app_info_get_all_for_type(content_type: string): AppInfo[];
+export function app_info_get_default_for_type(content_type: string, must_support_uris: boolean): AppInfo | 
null;
+export function app_info_get_default_for_uri_scheme(uri_scheme: string): AppInfo | null;
+export function app_info_get_fallback_for_type(content_type: string): AppInfo[];
+export function app_info_get_recommended_for_type(content_type: string): AppInfo[];
+export function app_info_launch_default_for_uri(uri: string, context?: AppLaunchContext | null): boolean;
+export function app_info_launch_default_for_uri_async(
+    uri: string,
+    context?: AppLaunchContext | null,
+    cancellable?: Cancellable | null,
+    callback?: AsyncReadyCallback<string> | null
+): void;
+export function app_info_launch_default_for_uri_finish(result: AsyncResult): boolean;
+export function app_info_reset_type_associations(content_type: string): void;
+export function async_initable_newv_async(
+    object_type: GObject.GType,
+    n_parameters: number,
+    parameters: GObject.Parameter,
+    io_priority: number,
+    cancellable?: Cancellable | null,
+    callback?: AsyncReadyCallback<GObject.GType> | null
+): void;
+export function bus_get(
+    bus_type: BusType,
+    cancellable?: Cancellable | null,
+    callback?: AsyncReadyCallback<BusType> | null
+): void;
+export function bus_get_finish(res: AsyncResult): DBusConnection;
+export function bus_get_sync(bus_type: BusType, cancellable?: Cancellable | null): DBusConnection;
+export function bus_own_name_on_connection(
+    connection: DBusConnection,
+    name: string,
+    flags: BusNameOwnerFlags,
+    name_acquired_closure?: GObject.Closure | null,
+    name_lost_closure?: GObject.Closure | null
+): number;
+export function bus_own_name(
+    bus_type: BusType,
+    name: string,
+    flags: BusNameOwnerFlags,
+    bus_acquired_closure?: GObject.Closure | null,
+    name_acquired_closure?: GObject.Closure | null,
+    name_lost_closure?: GObject.Closure | null
+): number;
+export function bus_unown_name(owner_id: number): void;
+export function bus_unwatch_name(watcher_id: number): void;
+export function bus_watch_name_on_connection(
+    connection: DBusConnection,
+    name: string,
+    flags: BusNameWatcherFlags,
+    name_appeared_closure?: GObject.Closure | null,
+    name_vanished_closure?: GObject.Closure | null
+): number;
+export function bus_watch_name(
+    bus_type: BusType,
+    name: string,
+    flags: BusNameWatcherFlags,
+    name_appeared_closure?: GObject.Closure | null,
+    name_vanished_closure?: GObject.Closure | null
+): number;
+export function content_type_can_be_executable(type: string): boolean;
+export function content_type_equals(type1: string, type2: string): boolean;
+export function content_type_from_mime_type(mime_type: string): string | null;
+export function content_type_get_description(type: string): string;
+export function content_type_get_generic_icon_name(type: string): string | null;
+export function content_type_get_icon(type: string): Icon;
+export function content_type_get_mime_dirs(): string[];
+export function content_type_get_mime_type(type: string): string | null;
+export function content_type_get_symbolic_icon(type: string): Icon;
+export function content_type_guess(filename: string | null, data: Uint8Array | null): [string, boolean];
+export function content_type_guess_for_tree(root: File): string[];
+export function content_type_is_a(type: string, supertype: string): boolean;
+export function content_type_is_mime_type(type: string, mime_type: string): boolean;
+export function content_type_is_unknown(type: string): boolean;
+export function content_type_set_mime_dirs(dirs?: string[] | null): void;
+export function content_types_get_registered(): string[];
+export function dbus_address_escape_value(string: string): string;
+export function dbus_address_get_for_bus_sync(bus_type: BusType, cancellable?: Cancellable | null): string;
+export function dbus_address_get_stream(
+    address: string,
+    cancellable?: Cancellable | null,
+    callback?: AsyncReadyCallback<string> | null
+): void;
+export function dbus_address_get_stream_finish(res: AsyncResult): [IOStream, string];
+export function dbus_address_get_stream_sync(address: string, cancellable?: Cancellable | null): [IOStream, 
string];
+export function dbus_annotation_info_lookup(annotations: DBusAnnotationInfo[] | null, name: string): string 
| null;
+export function dbus_error_encode_gerror(error: GLib.Error): string;
+export function dbus_error_get_remote_error(error: GLib.Error): string | null;
+export function dbus_error_is_remote_error(error: GLib.Error): boolean;
+export function dbus_error_new_for_dbus_error(dbus_error_name: string, dbus_error_message: string): 
GLib.Error;
+export function dbus_error_quark(): GLib.Quark;
+export function dbus_error_register_error(
+    error_domain: GLib.Quark,
+    error_code: number,
+    dbus_error_name: string
+): boolean;
+export function dbus_error_register_error_domain(
+    error_domain_quark_name: string,
+    quark_volatile: number,
+    entries: DBusErrorEntry[]
+): void;
+export function dbus_error_strip_remote_error(error: GLib.Error): boolean;
+export function dbus_error_unregister_error(
+    error_domain: GLib.Quark,
+    error_code: number,
+    dbus_error_name: string
+): boolean;
+export function dbus_escape_object_path(s: string): string;
+export function dbus_escape_object_path_bytestring(bytes: Uint8Array | string): string;
+export function dbus_generate_guid(): string;
+export function dbus_gvalue_to_gvariant(gvalue: GObject.Value | any, type: GLib.VariantType): GLib.Variant;
+export function dbus_gvariant_to_gvalue(value: GLib.Variant): unknown;
+export function dbus_is_address(string: string): boolean;
+export function dbus_is_error_name(string: string): boolean;
+export function dbus_is_guid(string: string): boolean;
+export function dbus_is_interface_name(string: string): boolean;
+export function dbus_is_member_name(string: string): boolean;
+export function dbus_is_name(string: string): boolean;
+export function dbus_is_supported_address(string: string): boolean;
+export function dbus_is_unique_name(string: string): boolean;
+export function dbus_unescape_object_path(s: string): Uint8Array | null;
+export function dtls_client_connection_new(
+    base_socket: DatagramBased,
+    server_identity?: SocketConnectable | null
+): DtlsClientConnection;
+export function dtls_server_connection_new(
+    base_socket: DatagramBased,
+    certificate?: TlsCertificate | null
+): DtlsServerConnection;
+export function file_new_for_commandline_arg(arg: string): File;
+export function file_new_for_commandline_arg_and_cwd(arg: string, cwd: string): File;
+export function file_new_for_path(path: string): File;
+export function file_new_for_uri(uri: string): File;
+export function file_new_tmp(tmpl: string | null): [File, FileIOStream];
+export function file_parse_name(parse_name: string): File;
+export function icon_deserialize(value: GLib.Variant): Icon | null;
+export function icon_hash(icon: any): number;
+export function icon_new_for_string(str: string): Icon;
+export function initable_newv<T = GObject.Object>(
+    object_type: GObject.GType,
+    parameters: GObject.Parameter[],
+    cancellable?: Cancellable | null
+): T;
+export function io_error_from_errno(err_no: number): IOErrorEnum;
+export function io_error_quark(): GLib.Quark;
+export function io_extension_point_implement(
+    extension_point_name: string,
+    type: GObject.GType,
+    extension_name: string,
+    priority: number
+): IOExtension;
+export function io_extension_point_lookup(name: string): IOExtensionPoint;
+export function io_extension_point_register(name: string): IOExtensionPoint;
+export function io_modules_load_all_in_directory(dirname: string): IOModule[];
+export function io_modules_load_all_in_directory_with_scope(dirname: string, scope: IOModuleScope): 
IOModule[];
+export function io_modules_scan_all_in_directory(dirname: string): void;
+export function io_modules_scan_all_in_directory_with_scope(dirname: string, scope: IOModuleScope): void;
+export function io_scheduler_cancel_all_jobs(): void;
+export function io_scheduler_push_job(
+    job_func: IOSchedulerJobFunc,
+    notify: GLib.DestroyNotify | null,
+    io_priority: number,
+    cancellable?: Cancellable | null
+): void;
+export function keyfile_settings_backend_new(
+    filename: string,
+    root_path: string,
+    root_group?: string | null
+): SettingsBackend;
+export function memory_monitor_dup_default(): MemoryMonitor;
+export function memory_settings_backend_new(): SettingsBackend;
+export function network_monitor_get_default(): NetworkMonitor;
+export function networking_init(): void;
+export function null_settings_backend_new(): SettingsBackend;
+export function pollable_source_new(pollable_stream: GObject.Object): GLib.Source;
+export function pollable_source_new_full(
+    pollable_stream: GObject.Object,
+    child_source?: GLib.Source | null,
+    cancellable?: Cancellable | null
+): GLib.Source;
+export function pollable_stream_read(
+    stream: InputStream,
+    buffer: Uint8Array | string,
+    blocking: boolean,
+    cancellable?: Cancellable | null
+): number;
+export function pollable_stream_write(
+    stream: OutputStream,
+    buffer: Uint8Array | string,
+    blocking: boolean,
+    cancellable?: Cancellable | null
+): number;
+export function pollable_stream_write_all(
+    stream: OutputStream,
+    buffer: Uint8Array | string,
+    blocking: boolean,
+    cancellable?: Cancellable | null
+): [boolean, number];
+export function power_profile_monitor_dup_default(): PowerProfileMonitor;
+export function proxy_get_default_for_protocol(protocol: string): Proxy | null;
+export function proxy_resolver_get_default(): ProxyResolver;
+export function resolver_error_quark(): GLib.Quark;
+export function resource_error_quark(): GLib.Quark;
+export function resource_load(filename: string): Resource;
+export function resources_enumerate_children(path: string, lookup_flags: ResourceLookupFlags): string[];
+export function resources_get_info(path: string, lookup_flags: ResourceLookupFlags): [boolean, number, 
number];
+export function resources_lookup_data(path: string, lookup_flags: ResourceLookupFlags): GLib.Bytes;
+export function resources_open_stream(path: string, lookup_flags: ResourceLookupFlags): InputStream;
+export function resources_register(resource: Resource): void;
+export function resources_unregister(resource: Resource): void;
+export function settings_schema_source_get_default(): SettingsSchemaSource | null;
+export function simple_async_report_gerror_in_idle(
+    object: GObject.Object | null,
+    callback: AsyncReadyCallback<GObject.Object | null> | null,
+    error: GLib.Error
+): void;
+export function tls_backend_get_default(): TlsBackend;
+export function tls_channel_binding_error_quark(): GLib.Quark;
+export function tls_client_connection_new(
+    base_io_stream: IOStream,
+    server_identity?: SocketConnectable | null
+): TlsClientConnection;
+export function tls_error_quark(): GLib.Quark;
+export function tls_file_database_new(anchors: string): TlsFileDatabase;
+export function tls_server_connection_new(
+    base_io_stream: IOStream,
+    certificate?: TlsCertificate | null
+): TlsServerConnection;
+export function unix_is_mount_path_system_internal(mount_path: string): boolean;
+export function unix_is_system_device_path(device_path: string): boolean;
+export function unix_is_system_fs_type(fs_type: string): boolean;
+export function unix_mount_at(mount_path: string): [UnixMountEntry | null, number];
+export function unix_mount_compare(mount1: UnixMountEntry, mount2: UnixMountEntry): number;
+export function unix_mount_copy(mount_entry: UnixMountEntry): UnixMountEntry;
+export function unix_mount_for(file_path: string): [UnixMountEntry | null, number];
+export function unix_mount_free(mount_entry: UnixMountEntry): void;
+export function unix_mount_get_device_path(mount_entry: UnixMountEntry): string;
+export function unix_mount_get_fs_type(mount_entry: UnixMountEntry): string;
+export function unix_mount_get_mount_path(mount_entry: UnixMountEntry): string;
+export function unix_mount_get_options(mount_entry: UnixMountEntry): string | null;
+export function unix_mount_get_root_path(mount_entry: UnixMountEntry): string | null;
+export function unix_mount_guess_can_eject(mount_entry: UnixMountEntry): boolean;
+export function unix_mount_guess_icon(mount_entry: UnixMountEntry): Icon;
+export function unix_mount_guess_name(mount_entry: UnixMountEntry): string;
+export function unix_mount_guess_should_display(mount_entry: UnixMountEntry): boolean;
+export function unix_mount_guess_symbolic_icon(mount_entry: UnixMountEntry): Icon;
+export function unix_mount_is_readonly(mount_entry: UnixMountEntry): boolean;
+export function unix_mount_is_system_internal(mount_entry: UnixMountEntry): boolean;
+export function unix_mount_point_at(mount_path: string): [UnixMountPoint | null, number];
+export function unix_mount_points_changed_since(time: number): boolean;
+export function unix_mount_points_get(): [UnixMountPoint[], number];
+export function unix_mounts_changed_since(time: number): boolean;
+export function unix_mounts_get(): [UnixMountEntry[], number];
+export type AsyncReadyCallback<A = GObject.Object> = (source_object: A | null, res: AsyncResult) => void;
+export type BusAcquiredCallback = (connection: DBusConnection, name: string) => void;
+export type BusNameAcquiredCallback = (connection: DBusConnection, name: string) => void;
+export type BusNameAppearedCallback = (connection: DBusConnection, name: string, name_owner: string) => void;
+export type BusNameLostCallback = (connection: DBusConnection, name: string) => void;
+export type BusNameVanishedCallback = (connection: DBusConnection, name: string) => void;
+export type CancellableSourceFunc = (cancellable?: Cancellable | null) => boolean;
+export type DBusInterfaceGetPropertyFunc = (
+    connection: DBusConnection,
+    sender: string,
+    object_path: string,
+    interface_name: string,
+    property_name: string,
+    error: GLib.Error
+) => GLib.Variant;
+export type DBusInterfaceMethodCallFunc = (
+    connection: DBusConnection,
+    sender: string,
+    object_path: string,
+    interface_name: string,
+    method_name: string,
+    parameters: GLib.Variant,
+    invocation: DBusMethodInvocation
+) => void;
+export type DBusInterfaceSetPropertyFunc = (
+    connection: DBusConnection,
+    sender: string,
+    object_path: string,
+    interface_name: string,
+    property_name: string,
+    value: GLib.Variant,
+    error: GLib.Error
+) => boolean;
+export type DBusMessageFilterFunction = (
+    connection: DBusConnection,
+    message: DBusMessage,
+    incoming: boolean
+) => DBusMessage | null;
+export type DBusProxyTypeFunc = (
+    manager: DBusObjectManagerClient,
+    object_path: string,
+    interface_name?: string | null
+) => GObject.GType;
+export type DBusSignalCallback = (
+    connection: DBusConnection,
+    sender_name: string | null,
+    object_path: string,
+    interface_name: string,
+    signal_name: string,
+    parameters: GLib.Variant
+) => void;
+export type DBusSubtreeDispatchFunc = (
+    connection: DBusConnection,
+    sender: string,
+    object_path: string,
+    interface_name: string,
+    node: string,
+    out_user_data: any
+) => DBusInterfaceVTable | null;
+export type DBusSubtreeEnumerateFunc = (connection: DBusConnection, sender: string, object_path: string) => 
string[];
+export type DBusSubtreeIntrospectFunc = (
+    connection: DBusConnection,
+    sender: string,
+    object_path: string,
+    node: string
+) => DBusInterfaceInfo[] | null;
+export type DatagramBasedSourceFunc = (datagram_based: DatagramBased, condition: GLib.IOCondition) => 
boolean;
+export type DesktopAppLaunchCallback = (appinfo: DesktopAppInfo, pid: GLib.Pid) => void;
+export type FileMeasureProgressCallback = (
+    reporting: boolean,
+    current_size: number,
+    num_dirs: number,
+    num_files: number
+) => void;
+export type FileProgressCallback = (current_num_bytes: number, total_num_bytes: number) => void;
+export type FileReadMoreCallback = (file_contents: string, file_size: number) => boolean;
+export type IOSchedulerJobFunc = (job: IOSchedulerJob, cancellable?: Cancellable | null) => boolean;
+export type PollableSourceFunc<A = GObject.Object> = (pollable_stream: A) => boolean;
+export type ReallocFunc = (data: any | null, size: number) => any | null;
+export type SettingsBindGetMapping = (value: GObject.Value | any, variant: GLib.Variant) => boolean;
+export type SettingsBindSetMapping = (value: GObject.Value | any, expected_type: GLib.VariantType) => 
GLib.Variant;
+export type SettingsGetMapping = (value: GLib.Variant) => boolean;
+export type SimpleAsyncThreadFunc<A = GObject.Object> = (
+    res: SimpleAsyncResult,
+    object: A,
+    cancellable?: Cancellable | null
+) => void;
+export type SocketSourceFunc = (socket: Socket, condition: GLib.IOCondition) => boolean;
+export type TaskThreadFunc<A = GObject.Object> = (
+    task: Task,
+    source_object: A,
+    task_data?: any | null,
+    cancellable?: Cancellable | null
+) => void;
+export type VfsFileLookupFunc = (vfs: Vfs, identifier: string) => File;
+
+export namespace BusType {
+    export const $gtype: GObject.GType<BusType>;
+}
+
+export enum BusType {
+    STARTER = -1,
+    NONE = 0,
+    SYSTEM = 1,
+    SESSION = 2,
+}
+
+export namespace ConverterResult {
+    export const $gtype: GObject.GType<ConverterResult>;
+}
+
+export enum ConverterResult {
+    ERROR = 0,
+    CONVERTED = 1,
+    FINISHED = 2,
+    FLUSHED = 3,
+}
+
+export namespace CredentialsType {
+    export const $gtype: GObject.GType<CredentialsType>;
+}
+
+export enum CredentialsType {
+    INVALID = 0,
+    LINUX_UCRED = 1,
+    FREEBSD_CMSGCRED = 2,
+    OPENBSD_SOCKPEERCRED = 3,
+    SOLARIS_UCRED = 4,
+    NETBSD_UNPCBID = 5,
+    APPLE_XUCRED = 6,
+    WIN32_PID = 7,
+}
+
+export class DBusError extends GLib.Error {
+    static $gtype: GObject.GType<DBusError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: DBusError);
+
+    // Fields
+    static FAILED: number;
+    static NO_MEMORY: number;
+    static SERVICE_UNKNOWN: number;
+    static NAME_HAS_NO_OWNER: number;
+    static NO_REPLY: number;
+    static IO_ERROR: number;
+    static BAD_ADDRESS: number;
+    static NOT_SUPPORTED: number;
+    static LIMITS_EXCEEDED: number;
+    static ACCESS_DENIED: number;
+    static AUTH_FAILED: number;
+    static NO_SERVER: number;
+    static TIMEOUT: number;
+    static NO_NETWORK: number;
+    static ADDRESS_IN_USE: number;
+    static DISCONNECTED: number;
+    static INVALID_ARGS: number;
+    static FILE_NOT_FOUND: number;
+    static FILE_EXISTS: number;
+    static UNKNOWN_METHOD: number;
+    static TIMED_OUT: number;
+    static MATCH_RULE_NOT_FOUND: number;
+    static MATCH_RULE_INVALID: number;
+    static SPAWN_EXEC_FAILED: number;
+    static SPAWN_FORK_FAILED: number;
+    static SPAWN_CHILD_EXITED: number;
+    static SPAWN_CHILD_SIGNALED: number;
+    static SPAWN_FAILED: number;
+    static SPAWN_SETUP_FAILED: number;
+    static SPAWN_CONFIG_INVALID: number;
+    static SPAWN_SERVICE_INVALID: number;
+    static SPAWN_SERVICE_NOT_FOUND: number;
+    static SPAWN_PERMISSIONS_INVALID: number;
+    static SPAWN_FILE_INVALID: number;
+    static SPAWN_NO_MEMORY: number;
+    static UNIX_PROCESS_ID_UNKNOWN: number;
+    static INVALID_SIGNATURE: number;
+    static INVALID_FILE_CONTENT: number;
+    static SELINUX_SECURITY_CONTEXT_UNKNOWN: number;
+    static ADT_AUDIT_DATA_UNKNOWN: number;
+    static OBJECT_PATH_IN_USE: number;
+    static UNKNOWN_OBJECT: number;
+    static UNKNOWN_INTERFACE: number;
+    static UNKNOWN_PROPERTY: number;
+    static PROPERTY_READ_ONLY: number;
+
+    // Members
+    static encode_gerror(error: GLib.Error): string;
+    static get_remote_error(error: GLib.Error): string | null;
+    static is_remote_error(error: GLib.Error): boolean;
+    static new_for_dbus_error(dbus_error_name: string, dbus_error_message: string): GLib.Error;
+    static quark(): GLib.Quark;
+    static register_error(error_domain: GLib.Quark, error_code: number, dbus_error_name: string): boolean;
+    static register_error_domain(
+        error_domain_quark_name: string,
+        quark_volatile: number,
+        entries: DBusErrorEntry[]
+    ): void;
+    static set_dbus_error(
+        error: GLib.Error,
+        dbus_error_name: string,
+        dbus_error_message: string,
+        format: string | null,
+        ___: any[]
+    ): void;
+    static set_dbus_error_valist(
+        error: GLib.Error,
+        dbus_error_name: string,
+        dbus_error_message: string,
+        format: string | null,
+        var_args: any
+    ): void;
+    static strip_remote_error(error: GLib.Error): boolean;
+    static unregister_error(error_domain: GLib.Quark, error_code: number, dbus_error_name: string): boolean;
+}
+
+export namespace DBusMessageByteOrder {
+    export const $gtype: GObject.GType<DBusMessageByteOrder>;
+}
+
+export enum DBusMessageByteOrder {
+    BIG_ENDIAN = 66,
+    LITTLE_ENDIAN = 108,
+}
+
+export namespace DBusMessageHeaderField {
+    export const $gtype: GObject.GType<DBusMessageHeaderField>;
+}
+
+export enum DBusMessageHeaderField {
+    INVALID = 0,
+    PATH = 1,
+    INTERFACE = 2,
+    MEMBER = 3,
+    ERROR_NAME = 4,
+    REPLY_SERIAL = 5,
+    DESTINATION = 6,
+    SENDER = 7,
+    SIGNATURE = 8,
+    NUM_UNIX_FDS = 9,
+}
+
+export namespace DBusMessageType {
+    export const $gtype: GObject.GType<DBusMessageType>;
+}
+
+export enum DBusMessageType {
+    INVALID = 0,
+    METHOD_CALL = 1,
+    METHOD_RETURN = 2,
+    ERROR = 3,
+    SIGNAL = 4,
+}
+
+export namespace DataStreamByteOrder {
+    export const $gtype: GObject.GType<DataStreamByteOrder>;
+}
+
+export enum DataStreamByteOrder {
+    BIG_ENDIAN = 0,
+    LITTLE_ENDIAN = 1,
+    HOST_ENDIAN = 2,
+}
+
+export namespace DataStreamNewlineType {
+    export const $gtype: GObject.GType<DataStreamNewlineType>;
+}
+
+export enum DataStreamNewlineType {
+    LF = 0,
+    CR = 1,
+    CR_LF = 2,
+    ANY = 3,
+}
+
+export namespace DriveStartStopType {
+    export const $gtype: GObject.GType<DriveStartStopType>;
+}
+
+export enum DriveStartStopType {
+    UNKNOWN = 0,
+    SHUTDOWN = 1,
+    NETWORK = 2,
+    MULTIDISK = 3,
+    PASSWORD = 4,
+}
+
+export namespace EmblemOrigin {
+    export const $gtype: GObject.GType<EmblemOrigin>;
+}
+
+export enum EmblemOrigin {
+    UNKNOWN = 0,
+    DEVICE = 1,
+    LIVEMETADATA = 2,
+    TAG = 3,
+}
+
+export namespace FileAttributeStatus {
+    export const $gtype: GObject.GType<FileAttributeStatus>;
+}
+
+export enum FileAttributeStatus {
+    UNSET = 0,
+    SET = 1,
+    ERROR_SETTING = 2,
+}
+
+export namespace FileAttributeType {
+    export const $gtype: GObject.GType<FileAttributeType>;
+}
+
+export enum FileAttributeType {
+    INVALID = 0,
+    STRING = 1,
+    BYTE_STRING = 2,
+    BOOLEAN = 3,
+    UINT32 = 4,
+    INT32 = 5,
+    UINT64 = 6,
+    INT64 = 7,
+    OBJECT = 8,
+    STRINGV = 9,
+}
+
+export namespace FileMonitorEvent {
+    export const $gtype: GObject.GType<FileMonitorEvent>;
+}
+
+export enum FileMonitorEvent {
+    CHANGED = 0,
+    CHANGES_DONE_HINT = 1,
+    DELETED = 2,
+    CREATED = 3,
+    ATTRIBUTE_CHANGED = 4,
+    PRE_UNMOUNT = 5,
+    UNMOUNTED = 6,
+    MOVED = 7,
+    RENAMED = 8,
+    MOVED_IN = 9,
+    MOVED_OUT = 10,
+}
+
+export namespace FileType {
+    export const $gtype: GObject.GType<FileType>;
+}
+
+export enum FileType {
+    UNKNOWN = 0,
+    REGULAR = 1,
+    DIRECTORY = 2,
+    SYMBOLIC_LINK = 3,
+    SPECIAL = 4,
+    SHORTCUT = 5,
+    MOUNTABLE = 6,
+}
+
+export namespace FilesystemPreviewType {
+    export const $gtype: GObject.GType<FilesystemPreviewType>;
+}
+
+export enum FilesystemPreviewType {
+    IF_ALWAYS = 0,
+    IF_LOCAL = 1,
+    NEVER = 2,
+}
+
+export class IOErrorEnum extends GLib.Error {
+    static $gtype: GObject.GType<IOErrorEnum>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: IOErrorEnum);
+
+    // Fields
+    static FAILED: number;
+    static NOT_FOUND: number;
+    static EXISTS: number;
+    static IS_DIRECTORY: number;
+    static NOT_DIRECTORY: number;
+    static NOT_EMPTY: number;
+    static NOT_REGULAR_FILE: number;
+    static NOT_SYMBOLIC_LINK: number;
+    static NOT_MOUNTABLE_FILE: number;
+    static FILENAME_TOO_LONG: number;
+    static INVALID_FILENAME: number;
+    static TOO_MANY_LINKS: number;
+    static NO_SPACE: number;
+    static INVALID_ARGUMENT: number;
+    static PERMISSION_DENIED: number;
+    static NOT_SUPPORTED: number;
+    static NOT_MOUNTED: number;
+    static ALREADY_MOUNTED: number;
+    static CLOSED: number;
+    static CANCELLED: number;
+    static PENDING: number;
+    static READ_ONLY: number;
+    static CANT_CREATE_BACKUP: number;
+    static WRONG_ETAG: number;
+    static TIMED_OUT: number;
+    static WOULD_RECURSE: number;
+    static BUSY: number;
+    static WOULD_BLOCK: number;
+    static HOST_NOT_FOUND: number;
+    static WOULD_MERGE: number;
+    static FAILED_HANDLED: number;
+    static TOO_MANY_OPEN_FILES: number;
+    static NOT_INITIALIZED: number;
+    static ADDRESS_IN_USE: number;
+    static PARTIAL_INPUT: number;
+    static INVALID_DATA: number;
+    static DBUS_ERROR: number;
+    static HOST_UNREACHABLE: number;
+    static NETWORK_UNREACHABLE: number;
+    static CONNECTION_REFUSED: number;
+    static PROXY_FAILED: number;
+    static PROXY_AUTH_FAILED: number;
+    static PROXY_NEED_AUTH: number;
+    static PROXY_NOT_ALLOWED: number;
+    static BROKEN_PIPE: number;
+    static CONNECTION_CLOSED: number;
+    static NOT_CONNECTED: number;
+    static MESSAGE_TOO_LARGE: number;
+}
+
+export namespace IOModuleScopeFlags {
+    export const $gtype: GObject.GType<IOModuleScopeFlags>;
+}
+
+export enum IOModuleScopeFlags {
+    NONE = 0,
+    BLOCK_DUPLICATES = 1,
+}
+
+export namespace MemoryMonitorWarningLevel {
+    export const $gtype: GObject.GType<MemoryMonitorWarningLevel>;
+}
+
+export enum MemoryMonitorWarningLevel {
+    LOW = 50,
+    MEDIUM = 100,
+    CRITICAL = 255,
+}
+
+export namespace MountOperationResult {
+    export const $gtype: GObject.GType<MountOperationResult>;
+}
+
+export enum MountOperationResult {
+    HANDLED = 0,
+    ABORTED = 1,
+    UNHANDLED = 2,
+}
+
+export namespace NetworkConnectivity {
+    export const $gtype: GObject.GType<NetworkConnectivity>;
+}
+
+export enum NetworkConnectivity {
+    LOCAL = 1,
+    LIMITED = 2,
+    PORTAL = 3,
+    FULL = 4,
+}
+
+export namespace NotificationPriority {
+    export const $gtype: GObject.GType<NotificationPriority>;
+}
+
+export enum NotificationPriority {
+    NORMAL = 0,
+    LOW = 1,
+    HIGH = 2,
+    URGENT = 3,
+}
+
+export namespace PasswordSave {
+    export const $gtype: GObject.GType<PasswordSave>;
+}
+
+export enum PasswordSave {
+    NEVER = 0,
+    FOR_SESSION = 1,
+    PERMANENTLY = 2,
+}
+
+export namespace PollableReturn {
+    export const $gtype: GObject.GType<PollableReturn>;
+}
+
+export enum PollableReturn {
+    FAILED = 0,
+    OK = 1,
+    WOULD_BLOCK = -27,
+}
+
+export class ResolverError extends GLib.Error {
+    static $gtype: GObject.GType<ResolverError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ResolverError);
+
+    // Fields
+    static NOT_FOUND: number;
+    static TEMPORARY_FAILURE: number;
+    static INTERNAL: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace ResolverRecordType {
+    export const $gtype: GObject.GType<ResolverRecordType>;
+}
+
+export enum ResolverRecordType {
+    SRV = 1,
+    MX = 2,
+    TXT = 3,
+    SOA = 4,
+    NS = 5,
+}
+
+export class ResourceError extends GLib.Error {
+    static $gtype: GObject.GType<ResourceError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ResourceError);
+
+    // Fields
+    static NOT_FOUND: number;
+    static INTERNAL: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace SocketClientEvent {
+    export const $gtype: GObject.GType<SocketClientEvent>;
+}
+
+export enum SocketClientEvent {
+    RESOLVING = 0,
+    RESOLVED = 1,
+    CONNECTING = 2,
+    CONNECTED = 3,
+    PROXY_NEGOTIATING = 4,
+    PROXY_NEGOTIATED = 5,
+    TLS_HANDSHAKING = 6,
+    TLS_HANDSHAKED = 7,
+    COMPLETE = 8,
+}
+
+export namespace SocketFamily {
+    export const $gtype: GObject.GType<SocketFamily>;
+}
+
+export enum SocketFamily {
+    INVALID = 0,
+    UNIX = 1,
+    IPV4 = 2,
+    IPV6 = 10,
+}
+
+export namespace SocketListenerEvent {
+    export const $gtype: GObject.GType<SocketListenerEvent>;
+}
+
+export enum SocketListenerEvent {
+    BINDING = 0,
+    BOUND = 1,
+    LISTENING = 2,
+    LISTENED = 3,
+}
+
+export namespace SocketProtocol {
+    export const $gtype: GObject.GType<SocketProtocol>;
+}
+
+export enum SocketProtocol {
+    UNKNOWN = -1,
+    DEFAULT = 0,
+    TCP = 6,
+    UDP = 17,
+    SCTP = 132,
+}
+
+export namespace SocketType {
+    export const $gtype: GObject.GType<SocketType>;
+}
+
+export enum SocketType {
+    INVALID = 0,
+    STREAM = 1,
+    DATAGRAM = 2,
+    SEQPACKET = 3,
+}
+
+export namespace TlsAuthenticationMode {
+    export const $gtype: GObject.GType<TlsAuthenticationMode>;
+}
+
+export enum TlsAuthenticationMode {
+    NONE = 0,
+    REQUESTED = 1,
+    REQUIRED = 2,
+}
+
+export namespace TlsCertificateRequestFlags {
+    export const $gtype: GObject.GType<TlsCertificateRequestFlags>;
+}
+
+export enum TlsCertificateRequestFlags {
+    NONE = 0,
+}
+
+export class TlsChannelBindingError extends GLib.Error {
+    static $gtype: GObject.GType<TlsChannelBindingError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: TlsChannelBindingError);
+
+    // Fields
+    static NOT_IMPLEMENTED: number;
+    static INVALID_STATE: number;
+    static NOT_AVAILABLE: number;
+    static NOT_SUPPORTED: number;
+    static GENERAL_ERROR: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace TlsChannelBindingType {
+    export const $gtype: GObject.GType<TlsChannelBindingType>;
+}
+
+export enum TlsChannelBindingType {
+    UNIQUE = 0,
+    SERVER_END_POINT = 1,
+}
+
+export namespace TlsDatabaseLookupFlags {
+    export const $gtype: GObject.GType<TlsDatabaseLookupFlags>;
+}
+
+export enum TlsDatabaseLookupFlags {
+    NONE = 0,
+    KEYPAIR = 1,
+}
+
+export class TlsError extends GLib.Error {
+    static $gtype: GObject.GType<TlsError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: TlsError);
+
+    // Fields
+    static UNAVAILABLE: number;
+    static MISC: number;
+    static BAD_CERTIFICATE: number;
+    static NOT_TLS: number;
+    static HANDSHAKE: number;
+    static CERTIFICATE_REQUIRED: number;
+    static EOF: number;
+    static INAPPROPRIATE_FALLBACK: number;
+    static BAD_CERTIFICATE_PASSWORD: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace TlsInteractionResult {
+    export const $gtype: GObject.GType<TlsInteractionResult>;
+}
+
+export enum TlsInteractionResult {
+    UNHANDLED = 0,
+    HANDLED = 1,
+    FAILED = 2,
+}
+
+export namespace TlsProtocolVersion {
+    export const $gtype: GObject.GType<TlsProtocolVersion>;
+}
+
+export enum TlsProtocolVersion {
+    UNKNOWN = 0,
+    SSL_3_0 = 1,
+    TLS_1_0 = 2,
+    TLS_1_1 = 3,
+    TLS_1_2 = 4,
+    TLS_1_3 = 5,
+    DTLS_1_0 = 201,
+    DTLS_1_2 = 202,
+}
+
+export namespace TlsRehandshakeMode {
+    export const $gtype: GObject.GType<TlsRehandshakeMode>;
+}
+
+export enum TlsRehandshakeMode {
+    NEVER = 0,
+    SAFELY = 1,
+    UNSAFELY = 2,
+}
+
+export namespace UnixSocketAddressType {
+    export const $gtype: GObject.GType<UnixSocketAddressType>;
+}
+
+export enum UnixSocketAddressType {
+    INVALID = 0,
+    ANONYMOUS = 1,
+    PATH = 2,
+    ABSTRACT = 3,
+    ABSTRACT_PADDED = 4,
+}
+
+export namespace ZlibCompressorFormat {
+    export const $gtype: GObject.GType<ZlibCompressorFormat>;
+}
+
+export enum ZlibCompressorFormat {
+    ZLIB = 0,
+    GZIP = 1,
+    RAW = 2,
+}
+
+export namespace AppInfoCreateFlags {
+    export const $gtype: GObject.GType<AppInfoCreateFlags>;
+}
+
+export enum AppInfoCreateFlags {
+    NONE = 0,
+    NEEDS_TERMINAL = 1,
+    SUPPORTS_URIS = 2,
+    SUPPORTS_STARTUP_NOTIFICATION = 4,
+}
+
+export namespace ApplicationFlags {
+    export const $gtype: GObject.GType<ApplicationFlags>;
+}
+
+export enum ApplicationFlags {
+    FLAGS_NONE = 0,
+    IS_SERVICE = 1,
+    IS_LAUNCHER = 2,
+    HANDLES_OPEN = 4,
+    HANDLES_COMMAND_LINE = 8,
+    SEND_ENVIRONMENT = 16,
+    NON_UNIQUE = 32,
+    CAN_OVERRIDE_APP_ID = 64,
+    ALLOW_REPLACEMENT = 128,
+    REPLACE = 256,
+}
+
+export namespace AskPasswordFlags {
+    export const $gtype: GObject.GType<AskPasswordFlags>;
+}
+
+export enum AskPasswordFlags {
+    NEED_PASSWORD = 1,
+    NEED_USERNAME = 2,
+    NEED_DOMAIN = 4,
+    SAVING_SUPPORTED = 8,
+    ANONYMOUS_SUPPORTED = 16,
+    TCRYPT = 32,
+}
+
+export namespace BusNameOwnerFlags {
+    export const $gtype: GObject.GType<BusNameOwnerFlags>;
+}
+
+export enum BusNameOwnerFlags {
+    NONE = 0,
+    ALLOW_REPLACEMENT = 1,
+    REPLACE = 2,
+    DO_NOT_QUEUE = 4,
+}
+
+export namespace BusNameWatcherFlags {
+    export const $gtype: GObject.GType<BusNameWatcherFlags>;
+}
+
+export enum BusNameWatcherFlags {
+    NONE = 0,
+    AUTO_START = 1,
+}
+
+export namespace ConverterFlags {
+    export const $gtype: GObject.GType<ConverterFlags>;
+}
+
+export enum ConverterFlags {
+    NONE = 0,
+    INPUT_AT_END = 1,
+    FLUSH = 2,
+}
+
+export namespace DBusCallFlags {
+    export const $gtype: GObject.GType<DBusCallFlags>;
+}
+
+export enum DBusCallFlags {
+    NONE = 0,
+    NO_AUTO_START = 1,
+    ALLOW_INTERACTIVE_AUTHORIZATION = 2,
+}
+
+export namespace DBusCapabilityFlags {
+    export const $gtype: GObject.GType<DBusCapabilityFlags>;
+}
+
+export enum DBusCapabilityFlags {
+    NONE = 0,
+    UNIX_FD_PASSING = 1,
+}
+
+export namespace DBusConnectionFlags {
+    export const $gtype: GObject.GType<DBusConnectionFlags>;
+}
+
+export enum DBusConnectionFlags {
+    NONE = 0,
+    AUTHENTICATION_CLIENT = 1,
+    AUTHENTICATION_SERVER = 2,
+    AUTHENTICATION_ALLOW_ANONYMOUS = 4,
+    MESSAGE_BUS_CONNECTION = 8,
+    DELAY_MESSAGE_PROCESSING = 16,
+    AUTHENTICATION_REQUIRE_SAME_USER = 32,
+}
+
+export namespace DBusInterfaceSkeletonFlags {
+    export const $gtype: GObject.GType<DBusInterfaceSkeletonFlags>;
+}
+
+export enum DBusInterfaceSkeletonFlags {
+    NONE = 0,
+    HANDLE_METHOD_INVOCATIONS_IN_THREAD = 1,
+}
+
+export namespace DBusMessageFlags {
+    export const $gtype: GObject.GType<DBusMessageFlags>;
+}
+
+export enum DBusMessageFlags {
+    NONE = 0,
+    NO_REPLY_EXPECTED = 1,
+    NO_AUTO_START = 2,
+    ALLOW_INTERACTIVE_AUTHORIZATION = 4,
+}
+
+export namespace DBusObjectManagerClientFlags {
+    export const $gtype: GObject.GType<DBusObjectManagerClientFlags>;
+}
+
+export enum DBusObjectManagerClientFlags {
+    NONE = 0,
+    DO_NOT_AUTO_START = 1,
+}
+
+export namespace DBusPropertyInfoFlags {
+    export const $gtype: GObject.GType<DBusPropertyInfoFlags>;
+}
+
+export enum DBusPropertyInfoFlags {
+    NONE = 0,
+    READABLE = 1,
+    WRITABLE = 2,
+}
+
+export namespace DBusProxyFlags {
+    export const $gtype: GObject.GType<DBusProxyFlags>;
+}
+
+export enum DBusProxyFlags {
+    NONE = 0,
+    DO_NOT_LOAD_PROPERTIES = 1,
+    DO_NOT_CONNECT_SIGNALS = 2,
+    DO_NOT_AUTO_START = 4,
+    GET_INVALIDATED_PROPERTIES = 8,
+    DO_NOT_AUTO_START_AT_CONSTRUCTION = 16,
+    NO_MATCH_RULE = 32,
+}
+
+export namespace DBusSendMessageFlags {
+    export const $gtype: GObject.GType<DBusSendMessageFlags>;
+}
+
+export enum DBusSendMessageFlags {
+    NONE = 0,
+    PRESERVE_SERIAL = 1,
+}
+
+export namespace DBusServerFlags {
+    export const $gtype: GObject.GType<DBusServerFlags>;
+}
+
+export enum DBusServerFlags {
+    NONE = 0,
+    RUN_IN_THREAD = 1,
+    AUTHENTICATION_ALLOW_ANONYMOUS = 2,
+    AUTHENTICATION_REQUIRE_SAME_USER = 4,
+}
+
+export namespace DBusSignalFlags {
+    export const $gtype: GObject.GType<DBusSignalFlags>;
+}
+
+export enum DBusSignalFlags {
+    NONE = 0,
+    NO_MATCH_RULE = 1,
+    MATCH_ARG0_NAMESPACE = 2,
+    MATCH_ARG0_PATH = 4,
+}
+
+export namespace DBusSubtreeFlags {
+    export const $gtype: GObject.GType<DBusSubtreeFlags>;
+}
+
+export enum DBusSubtreeFlags {
+    NONE = 0,
+    DISPATCH_TO_UNENUMERATED_NODES = 1,
+}
+
+export namespace DriveStartFlags {
+    export const $gtype: GObject.GType<DriveStartFlags>;
+}
+
+export enum DriveStartFlags {
+    NONE = 0,
+}
+
+export namespace FileAttributeInfoFlags {
+    export const $gtype: GObject.GType<FileAttributeInfoFlags>;
+}
+
+export enum FileAttributeInfoFlags {
+    NONE = 0,
+    COPY_WITH_FILE = 1,
+    COPY_WHEN_MOVED = 2,
+}
+
+export namespace FileCopyFlags {
+    export const $gtype: GObject.GType<FileCopyFlags>;
+}
+
+export enum FileCopyFlags {
+    NONE = 0,
+    OVERWRITE = 1,
+    BACKUP = 2,
+    NOFOLLOW_SYMLINKS = 4,
+    ALL_METADATA = 8,
+    NO_FALLBACK_FOR_MOVE = 16,
+    TARGET_DEFAULT_PERMS = 32,
+}
+
+export namespace FileCreateFlags {
+    export const $gtype: GObject.GType<FileCreateFlags>;
+}
+
+export enum FileCreateFlags {
+    NONE = 0,
+    PRIVATE = 1,
+    REPLACE_DESTINATION = 2,
+}
+
+export namespace FileMeasureFlags {
+    export const $gtype: GObject.GType<FileMeasureFlags>;
+}
+
+export enum FileMeasureFlags {
+    NONE = 0,
+    REPORT_ANY_ERROR = 2,
+    APPARENT_SIZE = 4,
+    NO_XDEV = 8,
+}
+
+export namespace FileMonitorFlags {
+    export const $gtype: GObject.GType<FileMonitorFlags>;
+}
+
+export enum FileMonitorFlags {
+    NONE = 0,
+    WATCH_MOUNTS = 1,
+    SEND_MOVED = 2,
+    WATCH_HARD_LINKS = 4,
+    WATCH_MOVES = 8,
+}
+
+export namespace FileQueryInfoFlags {
+    export const $gtype: GObject.GType<FileQueryInfoFlags>;
+}
+
+export enum FileQueryInfoFlags {
+    NONE = 0,
+    NOFOLLOW_SYMLINKS = 1,
+}
+
+export namespace IOStreamSpliceFlags {
+    export const $gtype: GObject.GType<IOStreamSpliceFlags>;
+}
+
+export enum IOStreamSpliceFlags {
+    NONE = 0,
+    CLOSE_STREAM1 = 1,
+    CLOSE_STREAM2 = 2,
+    WAIT_FOR_BOTH = 4,
+}
+
+export namespace MountMountFlags {
+    export const $gtype: GObject.GType<MountMountFlags>;
+}
+
+export enum MountMountFlags {
+    NONE = 0,
+}
+
+export namespace MountUnmountFlags {
+    export const $gtype: GObject.GType<MountUnmountFlags>;
+}
+
+export enum MountUnmountFlags {
+    NONE = 0,
+    FORCE = 1,
+}
+
+export namespace OutputStreamSpliceFlags {
+    export const $gtype: GObject.GType<OutputStreamSpliceFlags>;
+}
+
+export enum OutputStreamSpliceFlags {
+    NONE = 0,
+    CLOSE_SOURCE = 1,
+    CLOSE_TARGET = 2,
+}
+
+export namespace ResolverNameLookupFlags {
+    export const $gtype: GObject.GType<ResolverNameLookupFlags>;
+}
+
+export enum ResolverNameLookupFlags {
+    DEFAULT = 0,
+    IPV4_ONLY = 1,
+    IPV6_ONLY = 2,
+}
+
+export namespace ResourceFlags {
+    export const $gtype: GObject.GType<ResourceFlags>;
+}
+
+export enum ResourceFlags {
+    NONE = 0,
+    COMPRESSED = 1,
+}
+
+export namespace ResourceLookupFlags {
+    export const $gtype: GObject.GType<ResourceLookupFlags>;
+}
+
+export enum ResourceLookupFlags {
+    NONE = 0,
+}
+
+export namespace SettingsBindFlags {
+    export const $gtype: GObject.GType<SettingsBindFlags>;
+}
+
+export enum SettingsBindFlags {
+    DEFAULT = 0,
+    GET = 1,
+    SET = 2,
+    NO_SENSITIVITY = 4,
+    GET_NO_CHANGES = 8,
+    INVERT_BOOLEAN = 16,
+}
+
+export namespace SocketMsgFlags {
+    export const $gtype: GObject.GType<SocketMsgFlags>;
+}
+
+export enum SocketMsgFlags {
+    NONE = 0,
+    OOB = 1,
+    PEEK = 2,
+    DONTROUTE = 4,
+}
+
+export namespace SubprocessFlags {
+    export const $gtype: GObject.GType<SubprocessFlags>;
+}
+
+export enum SubprocessFlags {
+    NONE = 0,
+    STDIN_PIPE = 1,
+    STDIN_INHERIT = 2,
+    STDOUT_PIPE = 4,
+    STDOUT_SILENCE = 8,
+    STDERR_PIPE = 16,
+    STDERR_SILENCE = 32,
+    STDERR_MERGE = 64,
+    INHERIT_FDS = 128,
+    SEARCH_PATH_FROM_ENVP = 256,
+}
+
+export namespace TestDBusFlags {
+    export const $gtype: GObject.GType<TestDBusFlags>;
+}
+
+export enum TestDBusFlags {
+    NONE = 0,
+}
+
+export namespace TlsCertificateFlags {
+    export const $gtype: GObject.GType<TlsCertificateFlags>;
+}
+
+export enum TlsCertificateFlags {
+    UNKNOWN_CA = 1,
+    BAD_IDENTITY = 2,
+    NOT_ACTIVATED = 4,
+    EXPIRED = 8,
+    REVOKED = 16,
+    INSECURE = 32,
+    GENERIC_ERROR = 64,
+    VALIDATE_ALL = 127,
+}
+
+export namespace TlsDatabaseVerifyFlags {
+    export const $gtype: GObject.GType<TlsDatabaseVerifyFlags>;
+}
+
+export enum TlsDatabaseVerifyFlags {
+    NONE = 0,
+}
+
+export namespace TlsPasswordFlags {
+    export const $gtype: GObject.GType<TlsPasswordFlags>;
+}
+
+export enum TlsPasswordFlags {
+    NONE = 0,
+    RETRY = 2,
+    MANY_TRIES = 4,
+    FINAL_TRY = 8,
+    PKCS11_USER = 16,
+    PKCS11_SECURITY_OFFICER = 32,
+    PKCS11_CONTEXT_SPECIFIC = 64,
+}
+export module AppInfoMonitor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class AppInfoMonitor extends GObject.Object {
+    static $gtype: GObject.GType<AppInfoMonitor>;
+
+    constructor(properties?: Partial<AppInfoMonitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AppInfoMonitor.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+
+    // Members
+
+    static get(): AppInfoMonitor;
+}
+export module AppLaunchContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class AppLaunchContext extends GObject.Object {
+    static $gtype: GObject.GType<AppLaunchContext>;
+
+    constructor(properties?: Partial<AppLaunchContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AppLaunchContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "launch-failed", callback: (_source: this, startup_notify_id: string) => void): number;
+    connect_after(signal: "launch-failed", callback: (_source: this, startup_notify_id: string) => void): 
number;
+    emit(signal: "launch-failed", startup_notify_id: string): void;
+    connect(
+        signal: "launch-started",
+        callback: (_source: this, info: AppInfo, platform_data: GLib.Variant | null) => void
+    ): number;
+    connect_after(
+        signal: "launch-started",
+        callback: (_source: this, info: AppInfo, platform_data: GLib.Variant | null) => void
+    ): number;
+    emit(signal: "launch-started", info: AppInfo, platform_data: GLib.Variant | null): void;
+    connect(signal: "launched", callback: (_source: this, info: AppInfo, platform_data: GLib.Variant) => 
void): number;
+    connect_after(
+        signal: "launched",
+        callback: (_source: this, info: AppInfo, platform_data: GLib.Variant) => void
+    ): number;
+    emit(signal: "launched", info: AppInfo, platform_data: GLib.Variant): void;
+
+    // Constructors
+
+    static ["new"](): AppLaunchContext;
+
+    // Members
+
+    get_display(info: AppInfo, files: File[]): string | null;
+    get_environment(): string[];
+    get_startup_notify_id(info: AppInfo, files: File[]): string | null;
+    launch_failed(startup_notify_id: string): void;
+    setenv(variable: string, value: string): void;
+    unsetenv(variable: string): void;
+    vfunc_get_display(info: AppInfo, files: File[]): string | null;
+    vfunc_get_startup_notify_id(info: AppInfo, files: File[]): string | null;
+    vfunc_launch_failed(startup_notify_id: string): void;
+    vfunc_launch_started(info: AppInfo, platform_data: GLib.Variant): void;
+    vfunc_launched(info: AppInfo, platform_data: GLib.Variant): void;
+}
+export module Application {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        action_group: ActionGroup;
+        actionGroup: ActionGroup;
+        application_id: string;
+        applicationId: string;
+        flags: ApplicationFlags;
+        inactivity_timeout: number;
+        inactivityTimeout: number;
+        is_busy: boolean;
+        isBusy: boolean;
+        is_registered: boolean;
+        isRegistered: boolean;
+        is_remote: boolean;
+        isRemote: boolean;
+        resource_base_path: string;
+        resourceBasePath: string;
+    }
+}
+export class Application extends GObject.Object implements ActionGroup, ActionMap {
+    static $gtype: GObject.GType<Application>;
+
+    constructor(properties?: Partial<Application.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Application.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set action_group(val: ActionGroup);
+    set actionGroup(val: ActionGroup);
+    get application_id(): string;
+    set application_id(val: string);
+    get applicationId(): string;
+    set applicationId(val: string);
+    get flags(): ApplicationFlags;
+    set flags(val: ApplicationFlags);
+    get inactivity_timeout(): number;
+    set inactivity_timeout(val: number);
+    get inactivityTimeout(): number;
+    set inactivityTimeout(val: number);
+    get is_busy(): boolean;
+    get isBusy(): boolean;
+    get is_registered(): boolean;
+    get isRegistered(): boolean;
+    get is_remote(): boolean;
+    get isRemote(): boolean;
+    get resource_base_path(): string;
+    set resource_base_path(val: string);
+    get resourceBasePath(): string;
+    set resourceBasePath(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "command-line", callback: (_source: this, command_line: ApplicationCommandLine) => 
number): number;
+    connect_after(
+        signal: "command-line",
+        callback: (_source: this, command_line: ApplicationCommandLine) => number
+    ): number;
+    emit(signal: "command-line", command_line: ApplicationCommandLine): void;
+    connect(signal: "handle-local-options", callback: (_source: this, options: GLib.VariantDict) => number): 
number;
+    connect_after(
+        signal: "handle-local-options",
+        callback: (_source: this, options: GLib.VariantDict) => number
+    ): number;
+    emit(signal: "handle-local-options", options: GLib.VariantDict): void;
+    connect(signal: "name-lost", callback: (_source: this) => boolean): number;
+    connect_after(signal: "name-lost", callback: (_source: this) => boolean): number;
+    emit(signal: "name-lost"): void;
+    connect(signal: "open", callback: (_source: this, files: File[], n_files: number, hint: string) => 
void): number;
+    connect_after(
+        signal: "open",
+        callback: (_source: this, files: File[], n_files: number, hint: string) => void
+    ): number;
+    emit(signal: "open", files: File[], n_files: number, hint: string): void;
+    connect(signal: "shutdown", callback: (_source: this) => void): number;
+    connect_after(signal: "shutdown", callback: (_source: this) => void): number;
+    emit(signal: "shutdown"): void;
+    connect(signal: "startup", callback: (_source: this) => void): number;
+    connect_after(signal: "startup", callback: (_source: this) => void): number;
+    emit(signal: "startup"): void;
+
+    // Constructors
+
+    static ["new"](application_id: string | null, flags: ApplicationFlags): Application;
+
+    // Members
+
+    activate(): void;
+    add_main_option(
+        long_name: string,
+        short_name: number,
+        flags: GLib.OptionFlags,
+        arg: GLib.OptionArg,
+        description: string,
+        arg_description?: string | null
+    ): void;
+    add_main_option_entries(entries: GLib.OptionEntry[]): void;
+    add_option_group(group: GLib.OptionGroup): void;
+    bind_busy_property(object: GObject.Object, property: string): void;
+    get_application_id(): string | null;
+    get_dbus_connection(): DBusConnection | null;
+    get_dbus_object_path(): string | null;
+    get_flags(): ApplicationFlags;
+    get_inactivity_timeout(): number;
+    get_is_busy(): boolean;
+    get_is_registered(): boolean;
+    get_is_remote(): boolean;
+    get_resource_base_path(): string | null;
+    hold(): void;
+    mark_busy(): void;
+    open(files: File[], hint: string): void;
+    quit(): void;
+    register(cancellable?: Cancellable | null): boolean;
+    release(): void;
+    run(argv?: string[] | null): number;
+    send_notification(id: string | null, notification: Notification): void;
+    set_action_group(action_group?: ActionGroup | null): void;
+    set_application_id(application_id?: string | null): void;
+    set_default(): void;
+    set_flags(flags: ApplicationFlags): void;
+    set_inactivity_timeout(inactivity_timeout: number): void;
+    set_option_context_description(description?: string | null): void;
+    set_option_context_parameter_string(parameter_string?: string | null): void;
+    set_option_context_summary(summary?: string | null): void;
+    set_resource_base_path(resource_path?: string | null): void;
+    unbind_busy_property(object: GObject.Object, property: string): void;
+    unmark_busy(): void;
+    withdraw_notification(id: string): void;
+    vfunc_activate(): void;
+    vfunc_add_platform_data(builder: GLib.VariantBuilder): void;
+    vfunc_after_emit(platform_data: GLib.Variant): void;
+    vfunc_before_emit(platform_data: GLib.Variant): void;
+    vfunc_command_line(command_line: ApplicationCommandLine): number;
+    vfunc_dbus_register(connection: DBusConnection, object_path: string): boolean;
+    vfunc_dbus_unregister(connection: DBusConnection, object_path: string): void;
+    vfunc_handle_local_options(options: GLib.VariantDict): number;
+    vfunc_local_command_line(_arguments: string[]): [boolean, string[], number];
+    vfunc_name_lost(): boolean;
+    vfunc_open(files: File[], hint: string): void;
+    vfunc_quit_mainloop(): void;
+    vfunc_run_mainloop(): void;
+    vfunc_shutdown(): void;
+    vfunc_startup(): void;
+    static get_default(): Application | null;
+    static id_is_valid(application_id: string): boolean;
+
+    // Implemented Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    add_action(action: Action): void;
+    add_action_entries(entries: ActionEntry[], user_data?: any | null): void;
+    lookup_action(action_name: string): Action | null;
+    remove_action(action_name: string): void;
+    vfunc_add_action(action: Action): void;
+    vfunc_lookup_action(action_name: string): Action | null;
+    vfunc_remove_action(action_name: string): void;
+}
+export module ApplicationCommandLine {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        arguments: GLib.Variant;
+        is_remote: boolean;
+        isRemote: boolean;
+        options: GLib.Variant;
+        platform_data: GLib.Variant;
+        platformData: GLib.Variant;
+    }
+}
+export class ApplicationCommandLine extends GObject.Object {
+    static $gtype: GObject.GType<ApplicationCommandLine>;
+
+    constructor(properties?: Partial<ApplicationCommandLine.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ApplicationCommandLine.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set arguments(val: GLib.Variant);
+    get is_remote(): boolean;
+    get isRemote(): boolean;
+    set options(val: GLib.Variant);
+    set platform_data(val: GLib.Variant);
+    set platformData(val: GLib.Variant);
+
+    // Members
+
+    create_file_for_arg(arg: string): File;
+    get_arguments(): string[];
+    get_cwd(): string | null;
+    get_environ(): string[];
+    get_exit_status(): number;
+    get_is_remote(): boolean;
+    get_options_dict(): GLib.VariantDict;
+    get_platform_data(): GLib.Variant | null;
+    get_stdin(): InputStream | null;
+    getenv(name: string): string | null;
+    set_exit_status(exit_status: number): void;
+    vfunc_get_stdin(): InputStream | null;
+    vfunc_print_literal(message: string): void;
+    vfunc_printerr_literal(message: string): void;
+}
+export module BufferedInputStream {
+    export interface ConstructorProperties extends FilterInputStream.ConstructorProperties {
+        [key: string]: any;
+        buffer_size: number;
+        bufferSize: number;
+    }
+}
+export class BufferedInputStream extends FilterInputStream implements Seekable {
+    static $gtype: GObject.GType<BufferedInputStream>;
+
+    constructor(properties?: Partial<BufferedInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BufferedInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get buffer_size(): number;
+    set buffer_size(val: number);
+    get bufferSize(): number;
+    set bufferSize(val: number);
+
+    // Constructors
+
+    static ["new"](base_stream: InputStream): BufferedInputStream;
+    static new_sized(base_stream: InputStream, size: number): BufferedInputStream;
+
+    // Members
+
+    fill(count: number, cancellable?: Cancellable | null): number;
+    fill_async(
+        count: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    fill_finish(result: AsyncResult): number;
+    get_available(): number;
+    get_buffer_size(): number;
+    peek(buffer: Uint8Array | string, offset: number): number;
+    peek_buffer(): Uint8Array;
+    read_byte(cancellable?: Cancellable | null): number;
+    set_buffer_size(size: number): void;
+    vfunc_fill(count: number, cancellable?: Cancellable | null): number;
+    vfunc_fill_async(
+        count: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_fill_finish(result: AsyncResult): number;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module BufferedOutputStream {
+    export interface ConstructorProperties extends FilterOutputStream.ConstructorProperties {
+        [key: string]: any;
+        auto_grow: boolean;
+        autoGrow: boolean;
+        buffer_size: number;
+        bufferSize: number;
+    }
+}
+export class BufferedOutputStream extends FilterOutputStream implements Seekable {
+    static $gtype: GObject.GType<BufferedOutputStream>;
+
+    constructor(properties?: Partial<BufferedOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BufferedOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get auto_grow(): boolean;
+    set auto_grow(val: boolean);
+    get autoGrow(): boolean;
+    set autoGrow(val: boolean);
+    get buffer_size(): number;
+    set buffer_size(val: number);
+    get bufferSize(): number;
+    set bufferSize(val: number);
+
+    // Fields
+    priv: BufferedOutputStreamPrivate;
+
+    // Constructors
+
+    static ["new"](base_stream: OutputStream): BufferedOutputStream;
+    static new_sized(base_stream: OutputStream, size: number): BufferedOutputStream;
+
+    // Members
+
+    get_auto_grow(): boolean;
+    get_buffer_size(): number;
+    set_auto_grow(auto_grow: boolean): void;
+    set_buffer_size(size: number): void;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module BytesIcon {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        bytes: GLib.Bytes;
+    }
+}
+export class BytesIcon extends GObject.Object implements Icon, LoadableIcon {
+    static $gtype: GObject.GType<BytesIcon>;
+
+    constructor(properties?: Partial<BytesIcon.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BytesIcon.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get bytes(): GLib.Bytes;
+
+    // Constructors
+
+    static ["new"](bytes: GLib.Bytes | Uint8Array): BytesIcon;
+
+    // Members
+
+    get_bytes(): GLib.Bytes;
+
+    // Implemented Members
+
+    equal(icon2?: Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+    load(size: number, cancellable?: Cancellable | null): [InputStream, string];
+    load_async(size: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    load_finish(res: AsyncResult): [InputStream, string];
+    vfunc_load(size: number, cancellable?: Cancellable | null): [InputStream, string];
+    vfunc_load_async(size: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    vfunc_load_finish(res: AsyncResult): [InputStream, string];
+}
+export module Cancellable {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Cancellable extends GObject.Object {
+    static $gtype: GObject.GType<Cancellable>;
+
+    constructor(properties?: Partial<Cancellable.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Cancellable.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect_after(signal: "cancelled", callback: (_source: this) => void): number;
+    emit(signal: "cancelled"): void;
+
+    // Constructors
+
+    static ["new"](): Cancellable;
+
+    // Members
+
+    cancel(): void;
+    connect(callback: GObject.Callback, data_destroy_func?: GLib.DestroyNotify | null): number;
+    connect(...args: never[]): any;
+    disconnect(handler_id: number): void;
+    get_fd(): number;
+    is_cancelled(): boolean;
+    make_pollfd(pollfd: GLib.PollFD): boolean;
+    pop_current(): void;
+    push_current(): void;
+    release_fd(): void;
+    reset(): void;
+    set_error_if_cancelled(): boolean;
+    source_new(): GLib.Source;
+    vfunc_cancelled(): void;
+    static get_current(): Cancellable | null;
+}
+export module CharsetConverter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        from_charset: string;
+        fromCharset: string;
+        to_charset: string;
+        toCharset: string;
+        use_fallback: boolean;
+        useFallback: boolean;
+    }
+}
+export class CharsetConverter extends GObject.Object implements Converter, Initable {
+    static $gtype: GObject.GType<CharsetConverter>;
+
+    constructor(properties?: Partial<CharsetConverter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CharsetConverter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get from_charset(): string;
+    get fromCharset(): string;
+    get to_charset(): string;
+    get toCharset(): string;
+    get use_fallback(): boolean;
+    set use_fallback(val: boolean);
+    get useFallback(): boolean;
+    set useFallback(val: boolean);
+
+    // Constructors
+
+    static ["new"](to_charset: string, from_charset: string): CharsetConverter;
+
+    // Members
+
+    get_num_fallbacks(): number;
+    get_use_fallback(): boolean;
+    set_use_fallback(use_fallback: boolean): void;
+
+    // Implemented Members
+
+    convert(
+        inbuf: Uint8Array | string,
+        outbuf: Uint8Array | string,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    reset(): void;
+    vfunc_convert(
+        inbuf: Uint8Array | null,
+        outbuf: Uint8Array | null,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    vfunc_reset(): void;
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module ConverterInputStream {
+    export interface ConstructorProperties extends FilterInputStream.ConstructorProperties {
+        [key: string]: any;
+        converter: Converter;
+    }
+}
+export class ConverterInputStream extends FilterInputStream implements PollableInputStream {
+    static $gtype: GObject.GType<ConverterInputStream>;
+
+    constructor(properties?: Partial<ConverterInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ConverterInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get converter(): Converter;
+
+    // Constructors
+
+    static ["new"](base_stream: InputStream, converter: Converter): ConverterInputStream;
+
+    // Members
+
+    get_converter(): Converter;
+
+    // Implemented Members
+
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_readable(): boolean;
+    read_nonblocking(cancellable?: Cancellable | null): [number, Uint8Array];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_readable(): boolean;
+    vfunc_read_nonblocking(): [number, Uint8Array | null];
+}
+export module ConverterOutputStream {
+    export interface ConstructorProperties extends FilterOutputStream.ConstructorProperties {
+        [key: string]: any;
+        converter: Converter;
+    }
+}
+export class ConverterOutputStream extends FilterOutputStream implements PollableOutputStream {
+    static $gtype: GObject.GType<ConverterOutputStream>;
+
+    constructor(properties?: Partial<ConverterOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ConverterOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get converter(): Converter;
+
+    // Constructors
+
+    static ["new"](base_stream: OutputStream, converter: Converter): ConverterOutputStream;
+
+    // Members
+
+    get_converter(): Converter;
+
+    // Implemented Members
+
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_writable(): boolean;
+    write_nonblocking(buffer: Uint8Array | string, cancellable?: Cancellable | null): number;
+    writev_nonblocking(vectors: OutputVector[], cancellable?: Cancellable | null): [PollableReturn, number];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_writable(): boolean;
+    vfunc_write_nonblocking(buffer?: Uint8Array | null): number;
+    vfunc_writev_nonblocking(vectors: OutputVector[]): [PollableReturn, number];
+}
+export module Credentials {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Credentials extends GObject.Object {
+    static $gtype: GObject.GType<Credentials>;
+
+    constructor(properties?: Partial<Credentials.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Credentials.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): Credentials;
+
+    // Members
+
+    get_unix_pid(): number;
+    get_unix_user(): number;
+    is_same_user(other_credentials: Credentials): boolean;
+    set_native(native_type: CredentialsType, _native: any): void;
+    set_unix_user(uid: number): boolean;
+    to_string(): string;
+}
+export module DBusActionGroup {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DBusActionGroup extends GObject.Object implements ActionGroup, RemoteActionGroup {
+    static $gtype: GObject.GType<DBusActionGroup>;
+
+    constructor(properties?: Partial<DBusActionGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusActionGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static get(connection: DBusConnection, bus_name: string | null, object_path: string): DBusActionGroup;
+
+    // Implemented Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    activate_action_full(action_name: string, parameter: GLib.Variant | null, platform_data: GLib.Variant): 
void;
+    change_action_state_full(action_name: string, value: GLib.Variant, platform_data: GLib.Variant): void;
+    vfunc_activate_action_full(action_name: string, parameter: GLib.Variant | null, platform_data: 
GLib.Variant): void;
+    vfunc_change_action_state_full(action_name: string, value: GLib.Variant, platform_data: GLib.Variant): 
void;
+}
+export module DBusAuthObserver {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DBusAuthObserver extends GObject.Object {
+    static $gtype: GObject.GType<DBusAuthObserver>;
+
+    constructor(properties?: Partial<DBusAuthObserver.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusAuthObserver.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "allow-mechanism", callback: (_source: this, mechanism: string) => boolean): number;
+    connect_after(signal: "allow-mechanism", callback: (_source: this, mechanism: string) => boolean): 
number;
+    emit(signal: "allow-mechanism", mechanism: string): void;
+    connect(
+        signal: "authorize-authenticated-peer",
+        callback: (_source: this, stream: IOStream, credentials: Credentials | null) => boolean
+    ): number;
+    connect_after(
+        signal: "authorize-authenticated-peer",
+        callback: (_source: this, stream: IOStream, credentials: Credentials | null) => boolean
+    ): number;
+    emit(signal: "authorize-authenticated-peer", stream: IOStream, credentials: Credentials | null): void;
+
+    // Constructors
+
+    static ["new"](): DBusAuthObserver;
+
+    // Members
+
+    allow_mechanism(mechanism: string): boolean;
+    authorize_authenticated_peer(stream: IOStream, credentials?: Credentials | null): boolean;
+}
+export module DBusConnection {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        address: string;
+        authentication_observer: DBusAuthObserver;
+        authenticationObserver: DBusAuthObserver;
+        capabilities: DBusCapabilityFlags;
+        closed: boolean;
+        exit_on_close: boolean;
+        exitOnClose: boolean;
+        flags: DBusConnectionFlags;
+        guid: string;
+        stream: IOStream;
+        unique_name: string;
+        uniqueName: string;
+    }
+}
+export class DBusConnection extends GObject.Object implements AsyncInitable<DBusConnection>, Initable {
+    static $gtype: GObject.GType<DBusConnection>;
+
+    constructor(properties?: Partial<DBusConnection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusConnection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set address(val: string);
+    set authentication_observer(val: DBusAuthObserver);
+    set authenticationObserver(val: DBusAuthObserver);
+    get capabilities(): DBusCapabilityFlags;
+    get closed(): boolean;
+    get exit_on_close(): boolean;
+    set exit_on_close(val: boolean);
+    get exitOnClose(): boolean;
+    set exitOnClose(val: boolean);
+    get flags(): DBusConnectionFlags;
+    get guid(): string;
+    get stream(): IOStream;
+    get unique_name(): string;
+    get uniqueName(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "closed",
+        callback: (_source: this, remote_peer_vanished: boolean, error: GLib.Error | null) => void
+    ): number;
+    connect_after(
+        signal: "closed",
+        callback: (_source: this, remote_peer_vanished: boolean, error: GLib.Error | null) => void
+    ): number;
+    emit(signal: "closed", remote_peer_vanished: boolean, error: GLib.Error | null): void;
+
+    // Constructors
+
+    static new_finish(res: AsyncResult): DBusConnection;
+    // Conflicted with Gio.AsyncInitable.new_finish
+    static new_finish(...args: never[]): any;
+    static new_for_address_finish(res: AsyncResult): DBusConnection;
+    static new_for_address_sync(
+        address: string,
+        flags: DBusConnectionFlags,
+        observer?: DBusAuthObserver | null,
+        cancellable?: Cancellable | null
+    ): DBusConnection;
+    static new_sync(
+        stream: IOStream,
+        guid: string | null,
+        flags: DBusConnectionFlags,
+        observer?: DBusAuthObserver | null,
+        cancellable?: Cancellable | null
+    ): DBusConnection;
+
+    // Members
+
+    add_filter(filter_function: DBusMessageFilterFunction): number;
+    call<T extends string = any>(
+        bus_name: string | null,
+        object_path: string,
+        interface_name: string,
+        method_name: string,
+        parameters: GLib.Variant | null,
+        reply_type: GLib.VariantType<T> | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    call_finish<T extends string = any>(res: AsyncResult): GLib.Variant<T>;
+    call_sync(
+        bus_name: string | null,
+        object_path: string,
+        interface_name: string,
+        method_name: string,
+        parameters: GLib.Variant | null,
+        reply_type: GLib.VariantType | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        cancellable?: Cancellable | null
+    ): GLib.Variant;
+    call_with_unix_fd_list(
+        bus_name: string | null,
+        object_path: string,
+        interface_name: string,
+        method_name: string,
+        parameters: GLib.Variant | null,
+        reply_type: GLib.VariantType | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        fd_list?: UnixFDList | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    call_with_unix_fd_list_finish(res: AsyncResult): [GLib.Variant, UnixFDList | null];
+    call_with_unix_fd_list_sync(
+        bus_name: string | null,
+        object_path: string,
+        interface_name: string,
+        method_name: string,
+        parameters: GLib.Variant | null,
+        reply_type: GLib.VariantType | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        fd_list?: UnixFDList | null,
+        cancellable?: Cancellable | null
+    ): [GLib.Variant, UnixFDList | null];
+    close(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    close_finish(res: AsyncResult): boolean;
+    close_sync(cancellable?: Cancellable | null): boolean;
+    emit_signal(
+        destination_bus_name: string | null,
+        object_path: string,
+        interface_name: string,
+        signal_name: string,
+        parameters?: GLib.Variant | null
+    ): boolean;
+    export_action_group(object_path: string, action_group: ActionGroup): number;
+    export_menu_model(object_path: string, menu: MenuModel): number;
+    flush(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    flush_finish(res: AsyncResult): boolean;
+    flush_sync(cancellable?: Cancellable | null): boolean;
+    get_capabilities(): DBusCapabilityFlags;
+    get_exit_on_close(): boolean;
+    get_flags(): DBusConnectionFlags;
+    get_guid(): string;
+    get_last_serial(): number;
+    get_peer_credentials(): Credentials | null;
+    get_stream(): IOStream;
+    get_unique_name(): string | null;
+    is_closed(): boolean;
+    register_object(
+        object_path: string,
+        interface_info: DBusInterfaceInfo,
+        vtable?: DBusInterfaceVTable | null,
+        user_data?: any | null
+    ): number;
+    register_object(
+        object_path: string,
+        interface_info: DBusInterfaceInfo,
+        method_call_closure?: GObject.Closure | null,
+        get_property_closure?: GObject.Closure | null,
+        set_property_closure?: GObject.Closure | null
+    ): number;
+    register_subtree(
+        object_path: string,
+        vtable: DBusSubtreeVTable,
+        flags: DBusSubtreeFlags,
+        user_data?: any | null
+    ): number;
+    remove_filter(filter_id: number): void;
+    send_message(message: DBusMessage, flags: DBusSendMessageFlags): [boolean, number];
+    send_message_with_reply(
+        message: DBusMessage,
+        flags: DBusSendMessageFlags,
+        timeout_msec: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): number;
+    send_message_with_reply_finish(res: AsyncResult): DBusMessage;
+    send_message_with_reply_sync(
+        message: DBusMessage,
+        flags: DBusSendMessageFlags,
+        timeout_msec: number,
+        cancellable?: Cancellable | null
+    ): [DBusMessage, number];
+    set_exit_on_close(exit_on_close: boolean): void;
+    signal_subscribe(
+        sender: string | null,
+        interface_name: string | null,
+        member: string | null,
+        object_path: string | null,
+        arg0: string | null,
+        flags: DBusSignalFlags,
+        callback: DBusSignalCallback,
+        user_data_free_func?: GLib.DestroyNotify | null
+    ): number;
+    signal_unsubscribe(subscription_id: number): void;
+    start_message_processing(): void;
+    unexport_action_group(export_id: number): void;
+    unexport_menu_model(export_id: number): void;
+    unregister_object(registration_id: number): boolean;
+    unregister_subtree(registration_id: number): boolean;
+    static new(
+        stream: IOStream,
+        guid: string | null,
+        flags: DBusConnectionFlags,
+        observer?: DBusAuthObserver | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<DBusConnection> | null
+    ): void;
+    static new_for_address(
+        address: string,
+        flags: DBusConnectionFlags,
+        observer?: DBusAuthObserver | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<DBusConnection> | null
+    ): void;
+    watch_name(
+        name: string,
+        flags: BusNameWatcherFlags,
+        name_appeared_closure?: GObject.Closure | null,
+        name_vanished_closure?: GObject.Closure | null
+    ): number;
+    unwatch_name(watcher_id: number): void;
+    own_name(
+        name: string,
+        flags: BusNameOwnerFlags,
+        name_acquired_closure?: GObject.Closure | null,
+        name_lost_closure?: GObject.Closure | null
+    ): number;
+    unown_name(owner_id: number): void;
+
+    // Implemented Members
+
+    init_async(io_priority: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    init_finish(res: AsyncResult): boolean;
+    new_finish(res: AsyncResult): DBusConnection;
+    vfunc_init_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_init_finish(res: AsyncResult): boolean;
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module DBusInterfaceSkeleton {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        g_flags: DBusInterfaceSkeletonFlags;
+        gFlags: DBusInterfaceSkeletonFlags;
+    }
+}
+export abstract class DBusInterfaceSkeleton extends GObject.Object implements DBusInterface {
+    static $gtype: GObject.GType<DBusInterfaceSkeleton>;
+
+    constructor(properties?: Partial<DBusInterfaceSkeleton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusInterfaceSkeleton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get g_flags(): DBusInterfaceSkeletonFlags;
+    set g_flags(val: DBusInterfaceSkeletonFlags);
+    get gFlags(): DBusInterfaceSkeletonFlags;
+    set gFlags(val: DBusInterfaceSkeletonFlags);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "g-authorize-method",
+        callback: (_source: this, invocation: DBusMethodInvocation) => boolean
+    ): number;
+    connect_after(
+        signal: "g-authorize-method",
+        callback: (_source: this, invocation: DBusMethodInvocation) => boolean
+    ): number;
+    emit(signal: "g-authorize-method", invocation: DBusMethodInvocation): void;
+
+    // Members
+
+    ["export"](connection: DBusConnection, object_path: string): boolean;
+    flush(): void;
+    get_connection(): DBusConnection | null;
+    get_connections(): DBusConnection[];
+    get_flags(): DBusInterfaceSkeletonFlags;
+    get_info(): DBusInterfaceInfo;
+    get_object_path(): string | null;
+    get_properties(): GLib.Variant;
+    has_connection(connection: DBusConnection): boolean;
+    set_flags(flags: DBusInterfaceSkeletonFlags): void;
+    unexport(): void;
+    unexport_from_connection(connection: DBusConnection): void;
+    vfunc_flush(): void;
+    vfunc_g_authorize_method(invocation: DBusMethodInvocation): boolean;
+    vfunc_get_info(): DBusInterfaceInfo;
+    vfunc_get_properties(): GLib.Variant;
+
+    // Implemented Members
+
+    get_object(): DBusObject | null;
+    set_object(object?: DBusObject | null): void;
+    vfunc_dup_object(): DBusObject | null;
+    vfunc_set_object(object?: DBusObject | null): void;
+}
+export module DBusMenuModel {
+    export interface ConstructorProperties extends MenuModel.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DBusMenuModel extends MenuModel {
+    static $gtype: GObject.GType<DBusMenuModel>;
+
+    constructor(properties?: Partial<DBusMenuModel.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusMenuModel.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static get(connection: DBusConnection, bus_name: string | null, object_path: string): DBusMenuModel;
+}
+export module DBusMessage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        locked: boolean;
+    }
+}
+export class DBusMessage extends GObject.Object {
+    static $gtype: GObject.GType<DBusMessage>;
+
+    constructor(properties?: Partial<DBusMessage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusMessage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get locked(): boolean;
+
+    // Constructors
+
+    static ["new"](): DBusMessage;
+    static new_from_blob(blob: Uint8Array | string, capabilities: DBusCapabilityFlags): DBusMessage;
+    static new_method_call(name: string | null, path: string, interface_: string | null, method: string): 
DBusMessage;
+    static new_signal(path: string, interface_: string, signal: string): DBusMessage;
+
+    // Members
+
+    copy(): DBusMessage;
+    get_arg0(): string | null;
+    get_body(): GLib.Variant | null;
+    get_byte_order(): DBusMessageByteOrder;
+    get_destination(): string | null;
+    get_error_name(): string | null;
+    get_flags(): DBusMessageFlags;
+    get_header(header_field: DBusMessageHeaderField): GLib.Variant | null;
+    get_header_fields(): Uint8Array;
+    get_interface(): string | null;
+    get_locked(): boolean;
+    get_member(): string | null;
+    get_message_type(): DBusMessageType;
+    get_num_unix_fds(): number;
+    get_path(): string | null;
+    get_reply_serial(): number;
+    get_sender(): string | null;
+    get_serial(): number;
+    get_signature(): string;
+    get_unix_fd_list(): UnixFDList | null;
+    lock(): void;
+    new_method_error_literal(error_name: string, error_message: string): DBusMessage;
+    new_method_reply(): DBusMessage;
+    print(indent: number): string;
+    set_body(body: GLib.Variant): void;
+    set_byte_order(byte_order: DBusMessageByteOrder): void;
+    set_destination(value?: string | null): void;
+    set_error_name(value: string): void;
+    set_flags(flags: DBusMessageFlags): void;
+    set_header(header_field: DBusMessageHeaderField, value?: GLib.Variant | null): void;
+    set_interface(value?: string | null): void;
+    set_member(value?: string | null): void;
+    set_message_type(type: DBusMessageType): void;
+    set_num_unix_fds(value: number): void;
+    set_path(value?: string | null): void;
+    set_reply_serial(value: number): void;
+    set_sender(value?: string | null): void;
+    set_serial(serial: number): void;
+    set_signature(value?: string | null): void;
+    set_unix_fd_list(fd_list?: UnixFDList | null): void;
+    to_blob(capabilities: DBusCapabilityFlags): Uint8Array;
+    to_gerror(): boolean;
+    static bytes_needed(blob: Uint8Array | string): number;
+}
+export module DBusMethodInvocation {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DBusMethodInvocation extends GObject.Object {
+    static $gtype: GObject.GType<DBusMethodInvocation>;
+
+    constructor(properties?: Partial<DBusMethodInvocation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusMethodInvocation.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_connection(): DBusConnection;
+    get_interface_name(): string;
+    get_message(): DBusMessage;
+    get_method_info(): DBusMethodInfo | null;
+    get_method_name(): string;
+    get_object_path(): string;
+    get_parameters(): GLib.Variant;
+    get_property_info(): DBusPropertyInfo | null;
+    get_sender(): string;
+    return_dbus_error(error_name: string, error_message: string): void;
+    return_error_literal(domain: GLib.Quark, code: number, message: string): void;
+    return_gerror(error: GLib.Error): void;
+    return_value(parameters?: GLib.Variant | null): void;
+    return_value_with_unix_fd_list(parameters?: GLib.Variant | null, fd_list?: UnixFDList | null): void;
+}
+export module DBusObjectManagerClient {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        bus_type: BusType;
+        busType: BusType;
+        connection: DBusConnection;
+        flags: DBusObjectManagerClientFlags;
+        get_proxy_type_destroy_notify: any;
+        getProxyTypeDestroyNotify: any;
+        get_proxy_type_func: any;
+        getProxyTypeFunc: any;
+        get_proxy_type_user_data: any;
+        getProxyTypeUserData: any;
+        name: string;
+        name_owner: string;
+        nameOwner: string;
+        object_path: string;
+        objectPath: string;
+    }
+}
+export class DBusObjectManagerClient
+    extends GObject.Object
+    implements AsyncInitable<DBusObjectManagerClient>, DBusObjectManager, Initable
+{
+    static $gtype: GObject.GType<DBusObjectManagerClient>;
+
+    constructor(properties?: Partial<DBusObjectManagerClient.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusObjectManagerClient.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set bus_type(val: BusType);
+    set busType(val: BusType);
+    get connection(): DBusConnection;
+    get flags(): DBusObjectManagerClientFlags;
+    get get_proxy_type_destroy_notify(): any;
+    get getProxyTypeDestroyNotify(): any;
+    get get_proxy_type_func(): any;
+    get getProxyTypeFunc(): any;
+    get get_proxy_type_user_data(): any;
+    get getProxyTypeUserData(): any;
+    get name(): string;
+    get name_owner(): string;
+    get nameOwner(): string;
+    get object_path(): string;
+    get objectPath(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "interface-proxy-properties-changed",
+        callback: (
+            _source: this,
+            object_proxy: DBusObjectProxy,
+            interface_proxy: DBusProxy,
+            changed_properties: GLib.Variant,
+            invalidated_properties: string[]
+        ) => void
+    ): number;
+    connect_after(
+        signal: "interface-proxy-properties-changed",
+        callback: (
+            _source: this,
+            object_proxy: DBusObjectProxy,
+            interface_proxy: DBusProxy,
+            changed_properties: GLib.Variant,
+            invalidated_properties: string[]
+        ) => void
+    ): number;
+    emit(
+        signal: "interface-proxy-properties-changed",
+        object_proxy: DBusObjectProxy,
+        interface_proxy: DBusProxy,
+        changed_properties: GLib.Variant,
+        invalidated_properties: string[]
+    ): void;
+    connect(
+        signal: "interface-proxy-signal",
+        callback: (
+            _source: this,
+            object_proxy: DBusObjectProxy,
+            interface_proxy: DBusProxy,
+            sender_name: string,
+            signal_name: string,
+            parameters: GLib.Variant
+        ) => void
+    ): number;
+    connect_after(
+        signal: "interface-proxy-signal",
+        callback: (
+            _source: this,
+            object_proxy: DBusObjectProxy,
+            interface_proxy: DBusProxy,
+            sender_name: string,
+            signal_name: string,
+            parameters: GLib.Variant
+        ) => void
+    ): number;
+    emit(
+        signal: "interface-proxy-signal",
+        object_proxy: DBusObjectProxy,
+        interface_proxy: DBusProxy,
+        sender_name: string,
+        signal_name: string,
+        parameters: GLib.Variant
+    ): void;
+
+    // Constructors
+
+    static new_finish(res: AsyncResult): DBusObjectManagerClient;
+    // Conflicted with Gio.AsyncInitable.new_finish
+    static new_finish(...args: never[]): any;
+    static new_for_bus_finish(res: AsyncResult): DBusObjectManagerClient;
+    static new_for_bus_sync(
+        bus_type: BusType,
+        flags: DBusObjectManagerClientFlags,
+        name: string,
+        object_path: string,
+        get_proxy_type_func?: DBusProxyTypeFunc | null,
+        get_proxy_type_destroy_notify?: GLib.DestroyNotify | null,
+        cancellable?: Cancellable | null
+    ): DBusObjectManagerClient;
+    static new_sync(
+        connection: DBusConnection,
+        flags: DBusObjectManagerClientFlags,
+        name: string | null,
+        object_path: string,
+        get_proxy_type_func?: DBusProxyTypeFunc | null,
+        get_proxy_type_destroy_notify?: GLib.DestroyNotify | null,
+        cancellable?: Cancellable | null
+    ): DBusObjectManagerClient;
+
+    // Members
+
+    get_connection(): DBusConnection;
+    get_flags(): DBusObjectManagerClientFlags;
+    get_name(): string;
+    get_name_owner(): string | null;
+    vfunc_interface_proxy_properties_changed(
+        object_proxy: DBusObjectProxy,
+        interface_proxy: DBusProxy,
+        changed_properties: GLib.Variant,
+        invalidated_properties: string
+    ): void;
+    vfunc_interface_proxy_signal(
+        object_proxy: DBusObjectProxy,
+        interface_proxy: DBusProxy,
+        sender_name: string,
+        signal_name: string,
+        parameters: GLib.Variant
+    ): void;
+    static new(
+        connection: DBusConnection,
+        flags: DBusObjectManagerClientFlags,
+        name: string,
+        object_path: string,
+        get_proxy_type_func?: DBusProxyTypeFunc | null,
+        get_proxy_type_destroy_notify?: GLib.DestroyNotify | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<DBusObjectManagerClient> | null
+    ): void;
+    static new_for_bus(
+        bus_type: BusType,
+        flags: DBusObjectManagerClientFlags,
+        name: string,
+        object_path: string,
+        get_proxy_type_func?: DBusProxyTypeFunc | null,
+        get_proxy_type_destroy_notify?: GLib.DestroyNotify | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<DBusObjectManagerClient> | null
+    ): void;
+
+    // Implemented Members
+
+    init_async(io_priority: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    init_finish(res: AsyncResult): boolean;
+    new_finish(res: AsyncResult): DBusObjectManagerClient;
+    vfunc_init_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_init_finish(res: AsyncResult): boolean;
+    get_interface(object_path: string, interface_name: string): DBusInterface | null;
+    get_object(object_path: string): DBusObject | null;
+    get_object_path(): string;
+    get_objects(): DBusObject[];
+    vfunc_get_interface(object_path: string, interface_name: string): DBusInterface | null;
+    vfunc_get_object(object_path: string): DBusObject | null;
+    vfunc_get_object_path(): string;
+    vfunc_get_objects(): DBusObject[];
+    vfunc_interface_added(object: DBusObject, interface_: DBusInterface): void;
+    vfunc_interface_removed(object: DBusObject, interface_: DBusInterface): void;
+    vfunc_object_added(object: DBusObject): void;
+    vfunc_object_removed(object: DBusObject): void;
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module DBusObjectManagerServer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        connection: DBusConnection;
+        object_path: string;
+        objectPath: string;
+    }
+}
+export class DBusObjectManagerServer extends GObject.Object implements DBusObjectManager {
+    static $gtype: GObject.GType<DBusObjectManagerServer>;
+
+    constructor(properties?: Partial<DBusObjectManagerServer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusObjectManagerServer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get connection(): DBusConnection;
+    set connection(val: DBusConnection);
+    get object_path(): string;
+    get objectPath(): string;
+
+    // Constructors
+
+    static ["new"](object_path: string): DBusObjectManagerServer;
+
+    // Members
+
+    ["export"](object: DBusObjectSkeleton): void;
+    export_uniquely(object: DBusObjectSkeleton): void;
+    get_connection(): DBusConnection | null;
+    is_exported(object: DBusObjectSkeleton): boolean;
+    set_connection(connection?: DBusConnection | null): void;
+    unexport(object_path: string): boolean;
+
+    // Implemented Members
+
+    get_interface(object_path: string, interface_name: string): DBusInterface | null;
+    get_object(object_path: string): DBusObject | null;
+    get_object_path(): string;
+    get_objects(): DBusObject[];
+    vfunc_get_interface(object_path: string, interface_name: string): DBusInterface | null;
+    vfunc_get_object(object_path: string): DBusObject | null;
+    vfunc_get_object_path(): string;
+    vfunc_get_objects(): DBusObject[];
+    vfunc_interface_added(object: DBusObject, interface_: DBusInterface): void;
+    vfunc_interface_removed(object: DBusObject, interface_: DBusInterface): void;
+    vfunc_object_added(object: DBusObject): void;
+    vfunc_object_removed(object: DBusObject): void;
+}
+export module DBusObjectProxy {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        g_connection: DBusConnection;
+        gConnection: DBusConnection;
+        g_object_path: string;
+        gObjectPath: string;
+    }
+}
+export class DBusObjectProxy extends GObject.Object implements DBusObject {
+    static $gtype: GObject.GType<DBusObjectProxy>;
+
+    constructor(properties?: Partial<DBusObjectProxy.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusObjectProxy.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get g_connection(): DBusConnection;
+    get gConnection(): DBusConnection;
+    get g_object_path(): string;
+    get gObjectPath(): string;
+
+    // Constructors
+
+    static ["new"](connection: DBusConnection, object_path: string): DBusObjectProxy;
+
+    // Members
+
+    get_connection(): DBusConnection;
+
+    // Implemented Members
+
+    get_interface(interface_name: string): DBusInterface | null;
+    get_interfaces(): DBusInterface[];
+    get_object_path(): string;
+    vfunc_get_interface(interface_name: string): DBusInterface | null;
+    vfunc_get_interfaces(): DBusInterface[];
+    vfunc_get_object_path(): string;
+    vfunc_interface_added(interface_: DBusInterface): void;
+    vfunc_interface_removed(interface_: DBusInterface): void;
+}
+export module DBusObjectSkeleton {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        g_object_path: string;
+        gObjectPath: string;
+    }
+}
+export class DBusObjectSkeleton extends GObject.Object implements DBusObject {
+    static $gtype: GObject.GType<DBusObjectSkeleton>;
+
+    constructor(properties?: Partial<DBusObjectSkeleton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusObjectSkeleton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get g_object_path(): string;
+    set g_object_path(val: string);
+    get gObjectPath(): string;
+    set gObjectPath(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "authorize-method",
+        callback: (_source: this, _interface: DBusInterfaceSkeleton, invocation: DBusMethodInvocation) => 
boolean
+    ): number;
+    connect_after(
+        signal: "authorize-method",
+        callback: (_source: this, _interface: DBusInterfaceSkeleton, invocation: DBusMethodInvocation) => 
boolean
+    ): number;
+    emit(signal: "authorize-method", _interface: DBusInterfaceSkeleton, invocation: DBusMethodInvocation): 
void;
+
+    // Constructors
+
+    static ["new"](object_path: string): DBusObjectSkeleton;
+
+    // Members
+
+    add_interface(interface_: DBusInterfaceSkeleton): void;
+    flush(): void;
+    remove_interface(interface_: DBusInterfaceSkeleton): void;
+    remove_interface_by_name(interface_name: string): void;
+    set_object_path(object_path: string): void;
+    vfunc_authorize_method(interface_: DBusInterfaceSkeleton, invocation: DBusMethodInvocation): boolean;
+
+    // Implemented Members
+
+    get_interface(interface_name: string): DBusInterface | null;
+    get_interfaces(): DBusInterface[];
+    get_object_path(): string;
+    vfunc_get_interface(interface_name: string): DBusInterface | null;
+    vfunc_get_interfaces(): DBusInterface[];
+    vfunc_get_object_path(): string;
+    vfunc_interface_added(interface_: DBusInterface): void;
+    vfunc_interface_removed(interface_: DBusInterface): void;
+}
+export module DBusProxy {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        g_bus_type: BusType;
+        gBusType: BusType;
+        g_connection: DBusConnection;
+        gConnection: DBusConnection;
+        g_default_timeout: number;
+        gDefaultTimeout: number;
+        g_flags: DBusProxyFlags;
+        gFlags: DBusProxyFlags;
+        g_interface_info: DBusInterfaceInfo;
+        gInterfaceInfo: DBusInterfaceInfo;
+        g_interface_name: string;
+        gInterfaceName: string;
+        g_name: string;
+        gName: string;
+        g_name_owner: string;
+        gNameOwner: string;
+        g_object_path: string;
+        gObjectPath: string;
+    }
+}
+export class DBusProxy extends GObject.Object implements AsyncInitable<DBusProxy>, DBusInterface, Initable {
+    [key: string]: any;
+
+    static $gtype: GObject.GType<DBusProxy>;
+
+    constructor(properties?: Partial<DBusProxy.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusProxy.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set g_bus_type(val: BusType);
+    set gBusType(val: BusType);
+    get g_connection(): DBusConnection;
+    get gConnection(): DBusConnection;
+    get g_default_timeout(): number;
+    set g_default_timeout(val: number);
+    get gDefaultTimeout(): number;
+    set gDefaultTimeout(val: number);
+    get g_flags(): DBusProxyFlags;
+    get gFlags(): DBusProxyFlags;
+    get g_interface_info(): DBusInterfaceInfo;
+    set g_interface_info(val: DBusInterfaceInfo);
+    get gInterfaceInfo(): DBusInterfaceInfo;
+    set gInterfaceInfo(val: DBusInterfaceInfo);
+    get g_interface_name(): string;
+    get gInterfaceName(): string;
+    get g_name(): string;
+    get gName(): string;
+    get g_name_owner(): string;
+    get gNameOwner(): string;
+    get g_object_path(): string;
+    get gObjectPath(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "g-properties-changed",
+        callback: (_source: this, changed_properties: GLib.Variant, invalidated_properties: string[]) => void
+    ): number;
+    connect_after(
+        signal: "g-properties-changed",
+        callback: (_source: this, changed_properties: GLib.Variant, invalidated_properties: string[]) => void
+    ): number;
+    emit(signal: "g-properties-changed", changed_properties: GLib.Variant, invalidated_properties: 
string[]): void;
+    connect(
+        signal: "g-signal",
+        callback: (_source: this, sender_name: string | null, signal_name: string, parameters: GLib.Variant) 
=> void
+    ): number;
+    connect_after(
+        signal: "g-signal",
+        callback: (_source: this, sender_name: string | null, signal_name: string, parameters: GLib.Variant) 
=> void
+    ): number;
+    emit(signal: "g-signal", sender_name: string | null, signal_name: string, parameters: GLib.Variant): 
void;
+
+    // Constructors
+
+    static new_finish(res: AsyncResult): DBusProxy;
+    // Conflicted with Gio.AsyncInitable.new_finish
+    static new_finish(...args: never[]): any;
+    static new_for_bus_finish(res: AsyncResult): DBusProxy;
+    static new_for_bus_sync(
+        bus_type: BusType,
+        flags: DBusProxyFlags,
+        info: DBusInterfaceInfo | null,
+        name: string,
+        object_path: string,
+        interface_name: string,
+        cancellable?: Cancellable | null
+    ): DBusProxy;
+    static new_sync(
+        connection: DBusConnection,
+        flags: DBusProxyFlags,
+        info: DBusInterfaceInfo | null,
+        name: string | null,
+        object_path: string,
+        interface_name: string,
+        cancellable?: Cancellable | null
+    ): DBusProxy;
+
+    // Members
+
+    call(
+        method_name: string,
+        parameters: GLib.Variant | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    call_finish(res: AsyncResult): GLib.Variant;
+    call_sync(
+        method_name: string,
+        parameters: GLib.Variant | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        cancellable?: Cancellable | null
+    ): GLib.Variant;
+    call_with_unix_fd_list(
+        method_name: string,
+        parameters: GLib.Variant | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        fd_list?: UnixFDList | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    call_with_unix_fd_list_finish(res: AsyncResult): [GLib.Variant, UnixFDList | null];
+    call_with_unix_fd_list_sync(
+        method_name: string,
+        parameters: GLib.Variant | null,
+        flags: DBusCallFlags,
+        timeout_msec: number,
+        fd_list?: UnixFDList | null,
+        cancellable?: Cancellable | null
+    ): [GLib.Variant, UnixFDList | null];
+    get_cached_property(property_name: string): GLib.Variant | null;
+    get_cached_property_names(): string[] | null;
+    get_connection(): DBusConnection;
+    get_default_timeout(): number;
+    get_flags(): DBusProxyFlags;
+    get_interface_info(): DBusInterfaceInfo | null;
+    get_interface_name(): string;
+    get_name(): string | null;
+    get_name_owner(): string | null;
+    get_object_path(): string;
+    set_cached_property(property_name: string, value?: GLib.Variant | null): void;
+    set_default_timeout(timeout_msec: number): void;
+    set_interface_info(info?: DBusInterfaceInfo | null): void;
+    vfunc_g_properties_changed(changed_properties: GLib.Variant, invalidated_properties: string): void;
+    vfunc_g_signal(sender_name: string, signal_name: string, parameters: GLib.Variant): void;
+    static new(
+        connection: DBusConnection,
+        flags: DBusProxyFlags,
+        info: DBusInterfaceInfo | null,
+        name: string | null,
+        object_path: string,
+        interface_name: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<DBusProxy> | null
+    ): void;
+    static new_for_bus(
+        bus_type: BusType,
+        flags: DBusProxyFlags,
+        info: DBusInterfaceInfo | null,
+        name: string,
+        object_path: string,
+        interface_name: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<DBusProxy> | null
+    ): void;
+    static makeProxyWrapper(...args: any[]): any;
+    connectSignal(...args: any[]): any;
+    disconnectSignal(...args: any[]): any;
+
+    // Implemented Members
+
+    init_async(io_priority: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    init_finish(res: AsyncResult): boolean;
+    new_finish(res: AsyncResult): DBusProxy;
+    vfunc_init_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_init_finish(res: AsyncResult): boolean;
+    get_object(): DBusObject | null;
+    get_info(): DBusInterfaceInfo;
+    set_object(object?: DBusObject | null): void;
+    vfunc_dup_object(): DBusObject | null;
+    vfunc_get_info(): DBusInterfaceInfo;
+    vfunc_set_object(object?: DBusObject | null): void;
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module DBusServer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        active: boolean;
+        address: string;
+        authentication_observer: DBusAuthObserver;
+        authenticationObserver: DBusAuthObserver;
+        client_address: string;
+        clientAddress: string;
+        flags: DBusServerFlags;
+        guid: string;
+    }
+}
+export class DBusServer extends GObject.Object implements Initable {
+    static $gtype: GObject.GType<DBusServer>;
+
+    constructor(properties?: Partial<DBusServer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusServer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): boolean;
+    get address(): string;
+    get authentication_observer(): DBusAuthObserver;
+    get authenticationObserver(): DBusAuthObserver;
+    get client_address(): string;
+    get clientAddress(): string;
+    get flags(): DBusServerFlags;
+    get guid(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "new-connection", callback: (_source: this, connection: DBusConnection) => boolean): 
number;
+    connect_after(signal: "new-connection", callback: (_source: this, connection: DBusConnection) => 
boolean): number;
+    emit(signal: "new-connection", connection: DBusConnection): void;
+
+    // Constructors
+
+    static new_sync(
+        address: string,
+        flags: DBusServerFlags,
+        guid: string,
+        observer?: DBusAuthObserver | null,
+        cancellable?: Cancellable | null
+    ): DBusServer;
+
+    // Members
+
+    get_client_address(): string;
+    get_flags(): DBusServerFlags;
+    get_guid(): string;
+    is_active(): boolean;
+    start(): void;
+    stop(): void;
+
+    // Implemented Members
+
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module DataInputStream {
+    export interface ConstructorProperties extends BufferedInputStream.ConstructorProperties {
+        [key: string]: any;
+        byte_order: DataStreamByteOrder;
+        byteOrder: DataStreamByteOrder;
+        newline_type: DataStreamNewlineType;
+        newlineType: DataStreamNewlineType;
+    }
+}
+export class DataInputStream extends BufferedInputStream implements Seekable {
+    static $gtype: GObject.GType<DataInputStream>;
+
+    constructor(properties?: Partial<DataInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DataInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get byte_order(): DataStreamByteOrder;
+    set byte_order(val: DataStreamByteOrder);
+    get byteOrder(): DataStreamByteOrder;
+    set byteOrder(val: DataStreamByteOrder);
+    get newline_type(): DataStreamNewlineType;
+    set newline_type(val: DataStreamNewlineType);
+    get newlineType(): DataStreamNewlineType;
+    set newlineType(val: DataStreamNewlineType);
+
+    // Constructors
+
+    static ["new"](base_stream: InputStream): DataInputStream;
+
+    // Members
+
+    get_byte_order(): DataStreamByteOrder;
+    get_newline_type(): DataStreamNewlineType;
+    read_byte(cancellable?: Cancellable | null): number;
+    read_int16(cancellable?: Cancellable | null): number;
+    read_int32(cancellable?: Cancellable | null): number;
+    read_int64(cancellable?: Cancellable | null): number;
+    read_line(cancellable?: Cancellable | null): [Uint8Array | null, number];
+    read_line_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    read_line_finish(result: AsyncResult): [Uint8Array | null, number];
+    read_line_finish_utf8(result: AsyncResult): [string | null, number];
+    read_line_utf8(cancellable?: Cancellable | null): [string | null, number];
+    read_uint16(cancellable?: Cancellable | null): number;
+    read_uint32(cancellable?: Cancellable | null): number;
+    read_uint64(cancellable?: Cancellable | null): number;
+    read_until(stop_chars: string, cancellable?: Cancellable | null): [string, number];
+    read_until_async(
+        stop_chars: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    read_until_finish(result: AsyncResult): [string, number];
+    read_upto(stop_chars: string, stop_chars_len: number, cancellable?: Cancellable | null): [string, 
number];
+    read_upto_async(
+        stop_chars: string,
+        stop_chars_len: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    read_upto_finish(result: AsyncResult): [string, number];
+    set_byte_order(order: DataStreamByteOrder): void;
+    set_newline_type(type: DataStreamNewlineType): void;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module DataOutputStream {
+    export interface ConstructorProperties extends FilterOutputStream.ConstructorProperties {
+        [key: string]: any;
+        byte_order: DataStreamByteOrder;
+        byteOrder: DataStreamByteOrder;
+    }
+}
+export class DataOutputStream extends FilterOutputStream implements Seekable {
+    static $gtype: GObject.GType<DataOutputStream>;
+
+    constructor(properties?: Partial<DataOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DataOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get byte_order(): DataStreamByteOrder;
+    set byte_order(val: DataStreamByteOrder);
+    get byteOrder(): DataStreamByteOrder;
+    set byteOrder(val: DataStreamByteOrder);
+
+    // Constructors
+
+    static ["new"](base_stream: OutputStream): DataOutputStream;
+
+    // Members
+
+    get_byte_order(): DataStreamByteOrder;
+    put_byte(data: number, cancellable?: Cancellable | null): boolean;
+    put_int16(data: number, cancellable?: Cancellable | null): boolean;
+    put_int32(data: number, cancellable?: Cancellable | null): boolean;
+    put_int64(data: number, cancellable?: Cancellable | null): boolean;
+    put_string(str: string, cancellable?: Cancellable | null): boolean;
+    put_uint16(data: number, cancellable?: Cancellable | null): boolean;
+    put_uint32(data: number, cancellable?: Cancellable | null): boolean;
+    put_uint64(data: number, cancellable?: Cancellable | null): boolean;
+    set_byte_order(order: DataStreamByteOrder): void;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module DebugControllerDBus {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        connection: DBusConnection;
+    }
+}
+export class DebugControllerDBus extends GObject.Object implements DebugController, Initable {
+    static $gtype: GObject.GType<DebugControllerDBus>;
+
+    constructor(properties?: Partial<DebugControllerDBus.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DebugControllerDBus.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get connection(): DBusConnection;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "authorize", callback: (_source: this, invocation: DBusMethodInvocation) => boolean): 
number;
+    connect_after(signal: "authorize", callback: (_source: this, invocation: DBusMethodInvocation) => 
boolean): number;
+    emit(signal: "authorize", invocation: DBusMethodInvocation): void;
+
+    // Implemented Properties
+
+    get debug_enabled(): boolean;
+    set debug_enabled(val: boolean);
+    get debugEnabled(): boolean;
+    set debugEnabled(val: boolean);
+
+    // Constructors
+
+    static ["new"](connection: DBusConnection, cancellable?: Cancellable | null): DebugControllerDBus;
+
+    // Members
+
+    stop(): void;
+    vfunc_authorize(invocation: DBusMethodInvocation): boolean;
+
+    // Implemented Members
+
+    get_debug_enabled(): boolean;
+    set_debug_enabled(debug_enabled: boolean): void;
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module DesktopAppInfo {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        filename: string;
+    }
+}
+export class DesktopAppInfo extends GObject.Object implements AppInfo {
+    static $gtype: GObject.GType<DesktopAppInfo>;
+
+    constructor(properties?: Partial<DesktopAppInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DesktopAppInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get filename(): string;
+
+    // Constructors
+
+    static ["new"](desktop_id: string): DesktopAppInfo;
+    static new_from_filename(filename: string): DesktopAppInfo;
+    static new_from_keyfile(key_file: GLib.KeyFile): DesktopAppInfo;
+
+    // Members
+
+    get_action_name(action_name: string): string;
+    get_boolean(key: string): boolean;
+    get_categories(): string | null;
+    get_filename(): string | null;
+    get_generic_name(): string | null;
+    get_is_hidden(): boolean;
+    get_keywords(): string[];
+    get_locale_string(key: string): string | null;
+    get_nodisplay(): boolean;
+    get_show_in(desktop_env?: string | null): boolean;
+    get_startup_wm_class(): string | null;
+    get_string(key: string): string | null;
+    get_string_list(key: string): string[];
+    has_key(key: string): boolean;
+    launch_action(action_name: string, launch_context?: AppLaunchContext | null): void;
+    launch_uris_as_manager(
+        uris: string[],
+        launch_context: AppLaunchContext | null,
+        spawn_flags: GLib.SpawnFlags
+    ): boolean;
+    launch_uris_as_manager_with_fds(
+        uris: string[],
+        launch_context: AppLaunchContext | null,
+        spawn_flags: GLib.SpawnFlags,
+        stdin_fd: number,
+        stdout_fd: number,
+        stderr_fd: number
+    ): boolean;
+    list_actions(): string[];
+    static get_implementations(_interface: string): DesktopAppInfo[];
+    static search(search_string: string): string[][];
+    static set_desktop_env(desktop_env: string): void;
+
+    // Implemented Members
+
+    add_supports_type(content_type: string): boolean;
+    can_delete(): boolean;
+    can_remove_supports_type(): boolean;
+    ["delete"](): boolean;
+    dup(): AppInfo;
+    equal(appinfo2: AppInfo): boolean;
+    get_commandline(): string | null;
+    get_description(): string | null;
+    get_display_name(): string;
+    get_executable(): string;
+    get_icon(): Icon | null;
+    get_id(): string | null;
+    get_name(): string;
+    get_supported_types(): string[];
+    launch(files?: File[] | null, context?: AppLaunchContext | null): boolean;
+    launch_uris(uris?: string[] | null, context?: AppLaunchContext | null): boolean;
+    launch_uris_async(
+        uris?: string[] | null,
+        context?: AppLaunchContext | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    launch_uris_finish(result: AsyncResult): boolean;
+    remove_supports_type(content_type: string): boolean;
+    set_as_default_for_extension(extension: string): boolean;
+    set_as_default_for_type(content_type: string): boolean;
+    set_as_last_used_for_type(content_type: string): boolean;
+    should_show(): boolean;
+    supports_files(): boolean;
+    supports_uris(): boolean;
+    vfunc_add_supports_type(content_type: string): boolean;
+    vfunc_can_delete(): boolean;
+    vfunc_can_remove_supports_type(): boolean;
+    vfunc_do_delete(): boolean;
+    vfunc_dup(): AppInfo;
+    vfunc_equal(appinfo2: AppInfo): boolean;
+    vfunc_get_commandline(): string | null;
+    vfunc_get_description(): string | null;
+    vfunc_get_display_name(): string;
+    vfunc_get_executable(): string;
+    vfunc_get_icon(): Icon | null;
+    vfunc_get_id(): string | null;
+    vfunc_get_name(): string;
+    vfunc_get_supported_types(): string[];
+    vfunc_launch(files?: File[] | null, context?: AppLaunchContext | null): boolean;
+    vfunc_launch_uris(uris?: string[] | null, context?: AppLaunchContext | null): boolean;
+    vfunc_launch_uris_async(
+        uris?: string[] | null,
+        context?: AppLaunchContext | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_launch_uris_finish(result: AsyncResult): boolean;
+    vfunc_remove_supports_type(content_type: string): boolean;
+    vfunc_set_as_default_for_extension(extension: string): boolean;
+    vfunc_set_as_default_for_type(content_type: string): boolean;
+    vfunc_set_as_last_used_for_type(content_type: string): boolean;
+    vfunc_should_show(): boolean;
+    vfunc_supports_files(): boolean;
+    vfunc_supports_uris(): boolean;
+}
+export module Emblem {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        icon: GObject.Object;
+        origin: EmblemOrigin;
+    }
+}
+export class Emblem extends GObject.Object implements Icon {
+    static $gtype: GObject.GType<Emblem>;
+
+    constructor(properties?: Partial<Emblem.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Emblem.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get icon(): GObject.Object;
+    get origin(): EmblemOrigin;
+
+    // Constructors
+
+    static ["new"](icon: Icon): Emblem;
+    static new_with_origin(icon: Icon, origin: EmblemOrigin): Emblem;
+
+    // Members
+
+    get_icon(): Icon;
+    get_origin(): EmblemOrigin;
+
+    // Implemented Members
+
+    equal(icon2?: Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+}
+export module EmblemedIcon {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        gicon: Icon;
+    }
+}
+export class EmblemedIcon extends GObject.Object implements Icon {
+    static $gtype: GObject.GType<EmblemedIcon>;
+
+    constructor(properties?: Partial<EmblemedIcon.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EmblemedIcon.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get gicon(): Icon;
+
+    // Constructors
+
+    static ["new"](icon: Icon, emblem?: Emblem | null): EmblemedIcon;
+
+    // Members
+
+    add_emblem(emblem: Emblem): void;
+    clear_emblems(): void;
+    get_emblems(): Emblem[];
+    get_icon(): Icon;
+
+    // Implemented Members
+
+    equal(icon2?: Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+}
+export module FileEnumerator {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        container: File;
+    }
+}
+export class FileEnumerator extends GObject.Object {
+    static $gtype: GObject.GType<FileEnumerator>;
+
+    constructor(properties?: Partial<FileEnumerator.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileEnumerator.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set container(val: File);
+
+    // Members
+
+    close(cancellable?: Cancellable | null): boolean;
+    close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    close_finish(result: AsyncResult): boolean;
+    get_child(info: FileInfo): File;
+    get_container(): File;
+    has_pending(): boolean;
+    is_closed(): boolean;
+    iterate(cancellable?: Cancellable | null): [boolean, FileInfo | null, File | null];
+    next_file(cancellable?: Cancellable | null): FileInfo | null;
+    next_files_async(
+        num_files: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    next_files_finish(result: AsyncResult): FileInfo[];
+    set_pending(pending: boolean): void;
+    vfunc_close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_close_finish(result: AsyncResult): boolean;
+    vfunc_close_fn(cancellable?: Cancellable | null): boolean;
+    vfunc_next_file(cancellable?: Cancellable | null): FileInfo | null;
+    vfunc_next_files_async(
+        num_files: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_next_files_finish(result: AsyncResult): FileInfo[];
+}
+export module FileIOStream {
+    export interface ConstructorProperties extends IOStream.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FileIOStream extends IOStream implements Seekable {
+    static $gtype: GObject.GType<FileIOStream>;
+
+    constructor(properties?: Partial<FileIOStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileIOStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_etag(): string | null;
+    query_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    query_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    query_info_finish(result: AsyncResult): FileInfo;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_get_etag(): string | null;
+    vfunc_query_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    vfunc_query_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_query_info_finish(result: AsyncResult): FileInfo;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(size: number, cancellable?: Cancellable | null): boolean;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module FileIcon {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        file: File;
+    }
+}
+export class FileIcon extends GObject.Object implements Icon, LoadableIcon {
+    static $gtype: GObject.GType<FileIcon>;
+
+    constructor(properties?: Partial<FileIcon.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileIcon.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get file(): File;
+
+    // Constructors
+
+    static ["new"](file: File): FileIcon;
+
+    // Members
+
+    get_file(): File;
+
+    // Implemented Members
+
+    equal(icon2?: Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+    load(size: number, cancellable?: Cancellable | null): [InputStream, string];
+    load_async(size: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    load_finish(res: AsyncResult): [InputStream, string];
+    vfunc_load(size: number, cancellable?: Cancellable | null): [InputStream, string];
+    vfunc_load_async(size: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    vfunc_load_finish(res: AsyncResult): [InputStream, string];
+}
+export module FileInfo {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FileInfo extends GObject.Object {
+    static $gtype: GObject.GType<FileInfo>;
+
+    constructor(properties?: Partial<FileInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): FileInfo;
+
+    // Members
+
+    clear_status(): void;
+    copy_into(dest_info: FileInfo): void;
+    dup(): FileInfo;
+    get_access_date_time(): GLib.DateTime | null;
+    get_attribute_as_string(attribute: string): string | null;
+    get_attribute_boolean(attribute: string): boolean;
+    get_attribute_byte_string(attribute: string): string | null;
+    get_attribute_data(attribute: string): [boolean, FileAttributeType | null, any, FileAttributeStatus | 
null];
+    get_attribute_int32(attribute: string): number;
+    get_attribute_int64(attribute: string): number;
+    get_attribute_object<T = GObject.Object>(attribute: string): T;
+    get_attribute_status(attribute: string): FileAttributeStatus;
+    get_attribute_string(attribute: string): string | null;
+    get_attribute_stringv(attribute: string): string[] | null;
+    get_attribute_type(attribute: string): FileAttributeType;
+    get_attribute_uint32(attribute: string): number;
+    get_attribute_uint64(attribute: string): number;
+    get_content_type(): string | null;
+    get_creation_date_time(): GLib.DateTime | null;
+    get_deletion_date(): GLib.DateTime | null;
+    get_display_name(): string;
+    get_edit_name(): string;
+    get_etag(): string | null;
+    get_file_type(): FileType;
+    get_icon(): Icon | null;
+    get_is_backup(): boolean;
+    get_is_hidden(): boolean;
+    get_is_symlink(): boolean;
+    get_modification_date_time(): GLib.DateTime | null;
+    get_modification_time(): GLib.TimeVal;
+    get_name(): string;
+    get_size(): number;
+    get_sort_order(): number;
+    get_symbolic_icon(): Icon | null;
+    get_symlink_target(): string | null;
+    has_attribute(attribute: string): boolean;
+    has_namespace(name_space: string): boolean;
+    list_attributes(name_space?: string | null): string[] | null;
+    remove_attribute(attribute: string): void;
+    set_access_date_time(atime: GLib.DateTime): void;
+    set_attribute(attribute: string, type: FileAttributeType, value_p: any): void;
+    set_attribute_boolean(attribute: string, attr_value: boolean): void;
+    set_attribute_byte_string(attribute: string, attr_value: string): void;
+    set_attribute_int32(attribute: string, attr_value: number): void;
+    set_attribute_int64(attribute: string, attr_value: number): void;
+    set_attribute_mask(mask: FileAttributeMatcher): void;
+    set_attribute_object(attribute: string, attr_value: GObject.Object): void;
+    set_attribute_status(attribute: string, status: FileAttributeStatus): boolean;
+    set_attribute_string(attribute: string, attr_value: string): void;
+    set_attribute_stringv(attribute: string, attr_value: string[]): void;
+    set_attribute_uint32(attribute: string, attr_value: number): void;
+    set_attribute_uint64(attribute: string, attr_value: number): void;
+    set_content_type(content_type: string): void;
+    set_creation_date_time(creation_time: GLib.DateTime): void;
+    set_display_name(display_name: string): void;
+    set_edit_name(edit_name: string): void;
+    set_file_type(type: FileType): void;
+    set_icon(icon: Icon): void;
+    set_is_hidden(is_hidden: boolean): void;
+    set_is_symlink(is_symlink: boolean): void;
+    set_modification_date_time(mtime: GLib.DateTime): void;
+    set_modification_time(mtime: GLib.TimeVal): void;
+    set_name(name: string): void;
+    set_size(size: number): void;
+    set_sort_order(sort_order: number): void;
+    set_symbolic_icon(icon: Icon): void;
+    set_symlink_target(symlink_target: string): void;
+    unset_attribute_mask(): void;
+}
+export module FileInputStream {
+    export interface ConstructorProperties extends InputStream.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FileInputStream extends InputStream implements Seekable {
+    static $gtype: GObject.GType<FileInputStream>;
+
+    constructor(properties?: Partial<FileInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    query_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    query_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    query_info_finish(result: AsyncResult): FileInfo;
+    vfunc_can_seek(): boolean;
+    vfunc_query_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    vfunc_query_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_query_info_finish(result: AsyncResult): FileInfo;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module FileMonitor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        cancelled: boolean;
+        rate_limit: number;
+        rateLimit: number;
+    }
+}
+export abstract class FileMonitor extends GObject.Object {
+    static $gtype: GObject.GType<FileMonitor>;
+
+    constructor(properties?: Partial<FileMonitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileMonitor.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get cancelled(): boolean;
+    get rate_limit(): number;
+    set rate_limit(val: number);
+    get rateLimit(): number;
+    set rateLimit(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "changed",
+        callback: (_source: this, file: File, other_file: File | null, event_type: FileMonitorEvent) => void
+    ): number;
+    connect_after(
+        signal: "changed",
+        callback: (_source: this, file: File, other_file: File | null, event_type: FileMonitorEvent) => void
+    ): number;
+    emit(signal: "changed", file: File, other_file: File | null, event_type: FileMonitorEvent): void;
+
+    // Members
+
+    cancel(): boolean;
+    emit_event(child: File, other_file: File, event_type: FileMonitorEvent): void;
+    is_cancelled(): boolean;
+    set_rate_limit(limit_msecs: number): void;
+    vfunc_cancel(): boolean;
+    vfunc_changed(file: File, other_file: File, event_type: FileMonitorEvent): void;
+}
+export module FileOutputStream {
+    export interface ConstructorProperties extends OutputStream.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FileOutputStream extends OutputStream implements Seekable {
+    static $gtype: GObject.GType<FileOutputStream>;
+
+    constructor(properties?: Partial<FileOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_etag(): string | null;
+    query_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    query_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    query_info_finish(result: AsyncResult): FileInfo;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_get_etag(): string | null;
+    vfunc_query_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    vfunc_query_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_query_info_finish(result: AsyncResult): FileInfo;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(size: number, cancellable?: Cancellable | null): boolean;
+
+    // Implemented Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module FilenameCompleter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FilenameCompleter extends GObject.Object {
+    static $gtype: GObject.GType<FilenameCompleter>;
+
+    constructor(properties?: Partial<FilenameCompleter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FilenameCompleter.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "got-completion-data", callback: (_source: this) => void): number;
+    connect_after(signal: "got-completion-data", callback: (_source: this) => void): number;
+    emit(signal: "got-completion-data"): void;
+
+    // Constructors
+
+    static ["new"](): FilenameCompleter;
+
+    // Members
+
+    get_completion_suffix(initial_text: string): string | null;
+    get_completions(initial_text: string): string[];
+    set_dirs_only(dirs_only: boolean): void;
+    vfunc_got_completion_data(): void;
+}
+export module FilterInputStream {
+    export interface ConstructorProperties extends InputStream.ConstructorProperties {
+        [key: string]: any;
+        base_stream: InputStream;
+        baseStream: InputStream;
+        close_base_stream: boolean;
+        closeBaseStream: boolean;
+    }
+}
+export abstract class FilterInputStream extends InputStream {
+    static $gtype: GObject.GType<FilterInputStream>;
+
+    constructor(properties?: Partial<FilterInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FilterInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get base_stream(): InputStream;
+    get baseStream(): InputStream;
+    get close_base_stream(): boolean;
+    set close_base_stream(val: boolean);
+    get closeBaseStream(): boolean;
+    set closeBaseStream(val: boolean);
+
+    // Members
+
+    get_base_stream(): InputStream;
+    get_close_base_stream(): boolean;
+    set_close_base_stream(close_base: boolean): void;
+}
+export module FilterOutputStream {
+    export interface ConstructorProperties extends OutputStream.ConstructorProperties {
+        [key: string]: any;
+        base_stream: OutputStream;
+        baseStream: OutputStream;
+        close_base_stream: boolean;
+        closeBaseStream: boolean;
+    }
+}
+export abstract class FilterOutputStream extends OutputStream {
+    static $gtype: GObject.GType<FilterOutputStream>;
+
+    constructor(properties?: Partial<FilterOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FilterOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get base_stream(): OutputStream;
+    get baseStream(): OutputStream;
+    get close_base_stream(): boolean;
+    get closeBaseStream(): boolean;
+
+    // Members
+
+    get_base_stream(): OutputStream;
+    get_close_base_stream(): boolean;
+    set_close_base_stream(close_base: boolean): void;
+}
+export module IOModule {
+    export interface ConstructorProperties extends GObject.TypeModule.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class IOModule extends GObject.TypeModule implements GObject.TypePlugin {
+    static $gtype: GObject.GType<IOModule>;
+
+    constructor(properties?: Partial<IOModule.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IOModule.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](filename: string): IOModule;
+
+    // Members
+
+    static query(): string[];
+
+    // Implemented Members
+
+    complete_interface_info(
+        instance_type: GObject.GType,
+        interface_type: GObject.GType,
+        info: GObject.InterfaceInfo
+    ): void;
+    complete_type_info(g_type: GObject.GType, info: GObject.TypeInfo, value_table: GObject.TypeValueTable): 
void;
+    unuse(): void;
+    use(): void;
+    // Conflicted with GObject.TypeModule.use
+    use(...args: never[]): any;
+}
+export module IOStream {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        closed: boolean;
+        input_stream: InputStream;
+        inputStream: InputStream;
+        output_stream: OutputStream;
+        outputStream: OutputStream;
+    }
+}
+export abstract class IOStream extends GObject.Object {
+    static $gtype: GObject.GType<IOStream>;
+
+    constructor(properties?: Partial<IOStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IOStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get closed(): boolean;
+    get input_stream(): InputStream;
+    get inputStream(): InputStream;
+    get output_stream(): OutputStream;
+    get outputStream(): OutputStream;
+
+    // Members
+
+    clear_pending(): void;
+    close(cancellable?: Cancellable | null): boolean;
+    close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    close_finish(result: AsyncResult): boolean;
+    get_input_stream(): InputStream;
+    get_output_stream(): OutputStream;
+    has_pending(): boolean;
+    is_closed(): boolean;
+    set_pending(): boolean;
+    splice_async(
+        stream2: IOStream,
+        flags: IOStreamSpliceFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_close_finish(result: AsyncResult): boolean;
+    vfunc_close_fn(cancellable?: Cancellable | null): boolean;
+    vfunc_get_input_stream(): InputStream;
+    vfunc_get_output_stream(): OutputStream;
+    static splice_finish(result: AsyncResult): boolean;
+}
+export module InetAddress {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        bytes: any;
+        family: SocketFamily;
+        is_any: boolean;
+        isAny: boolean;
+        is_link_local: boolean;
+        isLinkLocal: boolean;
+        is_loopback: boolean;
+        isLoopback: boolean;
+        is_mc_global: boolean;
+        isMcGlobal: boolean;
+        is_mc_link_local: boolean;
+        isMcLinkLocal: boolean;
+        is_mc_node_local: boolean;
+        isMcNodeLocal: boolean;
+        is_mc_org_local: boolean;
+        isMcOrgLocal: boolean;
+        is_mc_site_local: boolean;
+        isMcSiteLocal: boolean;
+        is_multicast: boolean;
+        isMulticast: boolean;
+        is_site_local: boolean;
+        isSiteLocal: boolean;
+    }
+}
+export class InetAddress extends GObject.Object {
+    static $gtype: GObject.GType<InetAddress>;
+
+    constructor(properties?: Partial<InetAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<InetAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get bytes(): any;
+    get family(): SocketFamily;
+    get is_any(): boolean;
+    get isAny(): boolean;
+    get is_link_local(): boolean;
+    get isLinkLocal(): boolean;
+    get is_loopback(): boolean;
+    get isLoopback(): boolean;
+    get is_mc_global(): boolean;
+    get isMcGlobal(): boolean;
+    get is_mc_link_local(): boolean;
+    get isMcLinkLocal(): boolean;
+    get is_mc_node_local(): boolean;
+    get isMcNodeLocal(): boolean;
+    get is_mc_org_local(): boolean;
+    get isMcOrgLocal(): boolean;
+    get is_mc_site_local(): boolean;
+    get isMcSiteLocal(): boolean;
+    get is_multicast(): boolean;
+    get isMulticast(): boolean;
+    get is_site_local(): boolean;
+    get isSiteLocal(): boolean;
+
+    // Constructors
+
+    static new_any(family: SocketFamily): InetAddress;
+    static new_from_bytes(bytes: Uint8Array | string, family: SocketFamily): InetAddress;
+    static new_from_string(string: string): InetAddress;
+    static new_loopback(family: SocketFamily): InetAddress;
+
+    // Members
+
+    equal(other_address: InetAddress): boolean;
+    get_family(): SocketFamily;
+    get_is_any(): boolean;
+    get_is_link_local(): boolean;
+    get_is_loopback(): boolean;
+    get_is_mc_global(): boolean;
+    get_is_mc_link_local(): boolean;
+    get_is_mc_node_local(): boolean;
+    get_is_mc_org_local(): boolean;
+    get_is_mc_site_local(): boolean;
+    get_is_multicast(): boolean;
+    get_is_site_local(): boolean;
+    get_native_size(): number;
+    to_string(): string;
+    vfunc_to_string(): string;
+}
+export module InetAddressMask {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        address: InetAddress;
+        family: SocketFamily;
+        length: number;
+    }
+}
+export class InetAddressMask extends GObject.Object implements Initable {
+    static $gtype: GObject.GType<InetAddressMask>;
+
+    constructor(properties?: Partial<InetAddressMask.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<InetAddressMask.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get address(): InetAddress;
+    set address(val: InetAddress);
+    get family(): SocketFamily;
+    get length(): number;
+    set length(val: number);
+
+    // Constructors
+
+    static ["new"](addr: InetAddress, length: number): InetAddressMask;
+    static new_from_string(mask_string: string): InetAddressMask;
+
+    // Members
+
+    equal(mask2: InetAddressMask): boolean;
+    get_address(): InetAddress;
+    get_family(): SocketFamily;
+    get_length(): number;
+    matches(address: InetAddress): boolean;
+    to_string(): string;
+
+    // Implemented Members
+
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module InetSocketAddress {
+    export interface ConstructorProperties extends SocketAddress.ConstructorProperties {
+        [key: string]: any;
+        address: InetAddress;
+        flowinfo: number;
+        port: number;
+        scope_id: number;
+        scopeId: number;
+    }
+}
+export class InetSocketAddress extends SocketAddress implements SocketConnectable {
+    static $gtype: GObject.GType<InetSocketAddress>;
+
+    constructor(properties?: Partial<InetSocketAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<InetSocketAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get address(): InetAddress;
+    get flowinfo(): number;
+    get port(): number;
+    get scope_id(): number;
+    get scopeId(): number;
+
+    // Constructors
+
+    static ["new"](address: InetAddress, port: number): InetSocketAddress;
+    static new_from_string(address: string, port: number): InetSocketAddress;
+
+    // Members
+
+    get_address(): InetAddress;
+    get_flowinfo(): number;
+    get_port(): number;
+    get_scope_id(): number;
+
+    // Implemented Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+export module InputStream {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class InputStream extends GObject.Object {
+    static $gtype: GObject.GType<InputStream>;
+
+    constructor(properties?: Partial<InputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<InputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    clear_pending(): void;
+    close(cancellable?: Cancellable | null): boolean;
+    close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    close_finish(result: AsyncResult): boolean;
+    has_pending(): boolean;
+    is_closed(): boolean;
+    read(cancellable?: Cancellable | null): [number, Uint8Array];
+    read_all(cancellable?: Cancellable | null): [boolean, Uint8Array, number];
+    read_all_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): Uint8Array;
+    read_all_finish(result: AsyncResult): [boolean, number];
+    read_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): Uint8Array;
+    read_bytes(count: number, cancellable?: Cancellable | null): GLib.Bytes;
+    read_bytes_async(
+        count: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    read_bytes_finish(result: AsyncResult): GLib.Bytes;
+    read_finish(result: AsyncResult): number;
+    set_pending(): boolean;
+    skip(count: number, cancellable?: Cancellable | null): number;
+    skip_async(
+        count: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    skip_finish(result: AsyncResult): number;
+    vfunc_close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_close_finish(result: AsyncResult): boolean;
+    vfunc_close_fn(cancellable?: Cancellable | null): boolean;
+    vfunc_read_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): Uint8Array | null;
+    vfunc_read_finish(result: AsyncResult): number;
+    vfunc_read_fn(buffer: any | null, count: number, cancellable?: Cancellable | null): number;
+    vfunc_skip(count: number, cancellable?: Cancellable | null): number;
+    vfunc_skip_async(
+        count: number,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_skip_finish(result: AsyncResult): number;
+}
+export module ListStore {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        item_type: GObject.GType;
+        itemType: GObject.GType;
+    }
+}
+export class ListStore<A extends GObject.Object = GObject.Object> extends GObject.Object implements 
ListModel<A> {
+    static $gtype: GObject.GType<ListStore>;
+
+    constructor(properties?: Partial<ListStore.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<ListStore.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get item_type(): GObject.GType;
+    get itemType(): GObject.GType;
+
+    // Fields
+    [Symbol.iterator]: () => IterableIterator<A>;
+
+    // Constructors
+
+    static ["new"](item_type: GObject.GType): ListStore;
+
+    // Members
+
+    append(item: A): void;
+    find(item: A): [boolean, number];
+    find_with_equal_func(item: A, equal_func: GLib.EqualFunc): [boolean, number];
+    insert(position: number, item: A): void;
+    insert_sorted(item: A, compare_func: GLib.CompareDataFunc): number;
+    remove(position: number): void;
+    remove_all(): void;
+    sort(compare_func: GLib.CompareDataFunc): void;
+    splice(position: number, n_removals: number, additions: A[]): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module MemoryInputStream {
+    export interface ConstructorProperties extends InputStream.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class MemoryInputStream extends InputStream implements PollableInputStream, Seekable {
+    static $gtype: GObject.GType<MemoryInputStream>;
+
+    constructor(properties?: Partial<MemoryInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MemoryInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): MemoryInputStream;
+    static new_from_bytes(bytes: GLib.Bytes | Uint8Array): MemoryInputStream;
+    static new_from_data(data: Uint8Array | string, destroy?: GLib.DestroyNotify | null): MemoryInputStream;
+
+    // Members
+
+    add_bytes(bytes: GLib.Bytes | Uint8Array): void;
+    add_data(data: Uint8Array | string, destroy?: GLib.DestroyNotify | null): void;
+
+    // Implemented Members
+
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_readable(): boolean;
+    read_nonblocking(cancellable?: Cancellable | null): [number, Uint8Array];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_readable(): boolean;
+    vfunc_read_nonblocking(): [number, Uint8Array | null];
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module MemoryOutputStream {
+    export interface ConstructorProperties extends OutputStream.ConstructorProperties {
+        [key: string]: any;
+        data: any;
+        data_size: number;
+        dataSize: number;
+        size: number;
+    }
+}
+export class MemoryOutputStream extends OutputStream implements PollableOutputStream, Seekable {
+    static $gtype: GObject.GType<MemoryOutputStream>;
+
+    constructor(properties?: Partial<MemoryOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MemoryOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get data(): any;
+    get data_size(): number;
+    get dataSize(): number;
+    get size(): number;
+
+    // Constructors
+
+    static new_resizable(): MemoryOutputStream;
+
+    // Members
+
+    get_data(): any | null;
+    get_data_size(): number;
+    get_size(): number;
+    steal_as_bytes(): GLib.Bytes;
+    steal_data(): any | null;
+
+    // Implemented Members
+
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_writable(): boolean;
+    write_nonblocking(buffer: Uint8Array | string, cancellable?: Cancellable | null): number;
+    writev_nonblocking(vectors: OutputVector[], cancellable?: Cancellable | null): [PollableReturn, number];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_writable(): boolean;
+    vfunc_write_nonblocking(buffer?: Uint8Array | null): number;
+    vfunc_writev_nonblocking(vectors: OutputVector[]): [PollableReturn, number];
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+export module Menu {
+    export interface ConstructorProperties extends MenuModel.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Menu extends MenuModel {
+    static $gtype: GObject.GType<Menu>;
+
+    constructor(properties?: Partial<Menu.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Menu.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): Menu;
+
+    // Members
+
+    append(label?: string | null, detailed_action?: string | null): void;
+    append_item(item: MenuItem): void;
+    append_section(label: string | null, section: MenuModel): void;
+    append_submenu(label: string | null, submenu: MenuModel): void;
+    freeze(): void;
+    insert(position: number, label?: string | null, detailed_action?: string | null): void;
+    insert_item(position: number, item: MenuItem): void;
+    insert_section(position: number, label: string | null, section: MenuModel): void;
+    insert_submenu(position: number, label: string | null, submenu: MenuModel): void;
+    prepend(label?: string | null, detailed_action?: string | null): void;
+    prepend_item(item: MenuItem): void;
+    prepend_section(label: string | null, section: MenuModel): void;
+    prepend_submenu(label: string | null, submenu: MenuModel): void;
+    remove(position: number): void;
+    remove_all(): void;
+}
+export module MenuAttributeIter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class MenuAttributeIter extends GObject.Object {
+    static $gtype: GObject.GType<MenuAttributeIter>;
+
+    constructor(properties?: Partial<MenuAttributeIter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MenuAttributeIter.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: MenuAttributeIterPrivate;
+
+    // Members
+
+    get_name(): string;
+    get_next(): [boolean, string, GLib.Variant | null];
+    get_value(): GLib.Variant;
+    next(): boolean;
+    vfunc_get_next(): [boolean, string, GLib.Variant | null];
+}
+export module MenuItem {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class MenuItem extends GObject.Object {
+    static $gtype: GObject.GType<MenuItem>;
+
+    constructor(properties?: Partial<MenuItem.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MenuItem.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](label?: string | null, detailed_action?: string | null): MenuItem;
+    static new_from_model(model: MenuModel, item_index: number): MenuItem;
+    static new_section(label: string | null, section: MenuModel): MenuItem;
+    static new_submenu(label: string | null, submenu: MenuModel): MenuItem;
+
+    // Members
+
+    get_attribute_value(attribute: string, expected_type?: GLib.VariantType | null): GLib.Variant | null;
+    get_link(link: string): MenuModel | null;
+    set_action_and_target_value(action?: string | null, target_value?: GLib.Variant | null): void;
+    set_attribute_value(attribute: string, value?: GLib.Variant | null): void;
+    set_detailed_action(detailed_action: string): void;
+    set_icon(icon: Icon): void;
+    set_label(label?: string | null): void;
+    set_link(link: string, model?: MenuModel | null): void;
+    set_section(section?: MenuModel | null): void;
+    set_submenu(submenu?: MenuModel | null): void;
+}
+export module MenuLinkIter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class MenuLinkIter extends GObject.Object {
+    static $gtype: GObject.GType<MenuLinkIter>;
+
+    constructor(properties?: Partial<MenuLinkIter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MenuLinkIter.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: MenuLinkIterPrivate;
+
+    // Members
+
+    get_name(): string;
+    get_next(): [boolean, string, MenuModel | null];
+    get_value(): MenuModel;
+    next(): boolean;
+    vfunc_get_next(): [boolean, string, MenuModel | null];
+}
+export module MenuModel {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class MenuModel extends GObject.Object {
+    static $gtype: GObject.GType<MenuModel>;
+
+    constructor(properties?: Partial<MenuModel.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MenuModel.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: MenuModelPrivate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "items-changed",
+        callback: (_source: this, position: number, removed: number, added: number) => void
+    ): number;
+    connect_after(
+        signal: "items-changed",
+        callback: (_source: this, position: number, removed: number, added: number) => void
+    ): number;
+    emit(signal: "items-changed", position: number, removed: number, added: number): void;
+
+    // Members
+
+    get_item_attribute_value(
+        item_index: number,
+        attribute: string,
+        expected_type?: GLib.VariantType | null
+    ): GLib.Variant | null;
+    get_item_link(item_index: number, link: string): MenuModel | null;
+    get_n_items(): number;
+    is_mutable(): boolean;
+    items_changed(position: number, removed: number, added: number): void;
+    iterate_item_attributes(item_index: number): MenuAttributeIter;
+    iterate_item_links(item_index: number): MenuLinkIter;
+    vfunc_get_item_attribute_value(
+        item_index: number,
+        attribute: string,
+        expected_type?: GLib.VariantType | null
+    ): GLib.Variant | null;
+    vfunc_get_item_attributes(item_index: number): GLib.HashTable<string, GLib.Variant>;
+    vfunc_get_item_link(item_index: number, link: string): MenuModel | null;
+    vfunc_get_item_links(item_index: number): GLib.HashTable<string, MenuModel>;
+    vfunc_get_n_items(): number;
+    vfunc_is_mutable(): boolean;
+    vfunc_iterate_item_attributes(item_index: number): MenuAttributeIter;
+    vfunc_iterate_item_links(item_index: number): MenuLinkIter;
+}
+export module MountOperation {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        anonymous: boolean;
+        choice: number;
+        domain: string;
+        is_tcrypt_hidden_volume: boolean;
+        isTcryptHiddenVolume: boolean;
+        is_tcrypt_system_volume: boolean;
+        isTcryptSystemVolume: boolean;
+        password: string;
+        password_save: PasswordSave;
+        passwordSave: PasswordSave;
+        pim: number;
+        username: string;
+    }
+}
+export class MountOperation extends GObject.Object {
+    static $gtype: GObject.GType<MountOperation>;
+
+    constructor(properties?: Partial<MountOperation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MountOperation.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get anonymous(): boolean;
+    set anonymous(val: boolean);
+    get choice(): number;
+    set choice(val: number);
+    get domain(): string;
+    set domain(val: string);
+    get is_tcrypt_hidden_volume(): boolean;
+    set is_tcrypt_hidden_volume(val: boolean);
+    get isTcryptHiddenVolume(): boolean;
+    set isTcryptHiddenVolume(val: boolean);
+    get is_tcrypt_system_volume(): boolean;
+    set is_tcrypt_system_volume(val: boolean);
+    get isTcryptSystemVolume(): boolean;
+    set isTcryptSystemVolume(val: boolean);
+    get password(): string;
+    set password(val: string);
+    get password_save(): PasswordSave;
+    set password_save(val: PasswordSave);
+    get passwordSave(): PasswordSave;
+    set passwordSave(val: PasswordSave);
+    get pim(): number;
+    set pim(val: number);
+    get username(): string;
+    set username(val: string);
+
+    // Fields
+    priv: MountOperationPrivate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "aborted", callback: (_source: this) => void): number;
+    connect_after(signal: "aborted", callback: (_source: this) => void): number;
+    emit(signal: "aborted"): void;
+    connect(
+        signal: "ask-password",
+        callback: (
+            _source: this,
+            message: string,
+            default_user: string,
+            default_domain: string,
+            flags: AskPasswordFlags
+        ) => void
+    ): number;
+    connect_after(
+        signal: "ask-password",
+        callback: (
+            _source: this,
+            message: string,
+            default_user: string,
+            default_domain: string,
+            flags: AskPasswordFlags
+        ) => void
+    ): number;
+    emit(
+        signal: "ask-password",
+        message: string,
+        default_user: string,
+        default_domain: string,
+        flags: AskPasswordFlags
+    ): void;
+    connect(signal: "ask-question", callback: (_source: this, message: string, choices: string[]) => void): 
number;
+    connect_after(
+        signal: "ask-question",
+        callback: (_source: this, message: string, choices: string[]) => void
+    ): number;
+    emit(signal: "ask-question", message: string, choices: string[]): void;
+    connect(signal: "reply", callback: (_source: this, result: MountOperationResult) => void): number;
+    connect_after(signal: "reply", callback: (_source: this, result: MountOperationResult) => void): number;
+    emit(signal: "reply", result: MountOperationResult): void;
+    connect(
+        signal: "show-processes",
+        callback: (_source: this, message: string, processes: GLib.Pid[], choices: string[]) => void
+    ): number;
+    connect_after(
+        signal: "show-processes",
+        callback: (_source: this, message: string, processes: GLib.Pid[], choices: string[]) => void
+    ): number;
+    emit(signal: "show-processes", message: string, processes: GLib.Pid[], choices: string[]): void;
+    connect(
+        signal: "show-unmount-progress",
+        callback: (_source: this, message: string, time_left: number, bytes_left: number) => void
+    ): number;
+    connect_after(
+        signal: "show-unmount-progress",
+        callback: (_source: this, message: string, time_left: number, bytes_left: number) => void
+    ): number;
+    emit(signal: "show-unmount-progress", message: string, time_left: number, bytes_left: number): void;
+
+    // Constructors
+
+    static ["new"](): MountOperation;
+
+    // Members
+
+    get_anonymous(): boolean;
+    get_choice(): number;
+    get_domain(): string | null;
+    get_is_tcrypt_hidden_volume(): boolean;
+    get_is_tcrypt_system_volume(): boolean;
+    get_password(): string | null;
+    get_password_save(): PasswordSave;
+    get_pim(): number;
+    get_username(): string | null;
+    reply(result: MountOperationResult): void;
+    set_anonymous(anonymous: boolean): void;
+    set_choice(choice: number): void;
+    set_domain(domain?: string | null): void;
+    set_is_tcrypt_hidden_volume(hidden_volume: boolean): void;
+    set_is_tcrypt_system_volume(system_volume: boolean): void;
+    set_password(password?: string | null): void;
+    set_password_save(save: PasswordSave): void;
+    set_pim(pim: number): void;
+    set_username(username?: string | null): void;
+    vfunc_aborted(): void;
+    vfunc_ask_password(message: string, default_user: string, default_domain: string, flags: 
AskPasswordFlags): void;
+    vfunc_ask_question(message: string, choices: string[]): void;
+    vfunc_reply(result: MountOperationResult): void;
+    vfunc_show_processes(message: string, processes: GLib.Pid[], choices: string[]): void;
+    vfunc_show_unmount_progress(message: string, time_left: number, bytes_left: number): void;
+}
+export module NativeSocketAddress {
+    export interface ConstructorProperties extends SocketAddress.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class NativeSocketAddress extends SocketAddress implements SocketConnectable {
+    static $gtype: GObject.GType<NativeSocketAddress>;
+
+    constructor(properties?: Partial<NativeSocketAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NativeSocketAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](_native: any | null, len: number): NativeSocketAddress;
+
+    // Implemented Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+export module NativeVolumeMonitor {
+    export interface ConstructorProperties extends VolumeMonitor.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class NativeVolumeMonitor extends VolumeMonitor {
+    static $gtype: GObject.GType<NativeVolumeMonitor>;
+
+    constructor(properties?: Partial<NativeVolumeMonitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NativeVolumeMonitor.ConstructorProperties>, ...args: any[]): void;
+}
+export module NetworkAddress {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        hostname: string;
+        port: number;
+        scheme: string;
+    }
+}
+export class NetworkAddress extends GObject.Object implements SocketConnectable {
+    static $gtype: GObject.GType<NetworkAddress>;
+
+    constructor(properties?: Partial<NetworkAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NetworkAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get hostname(): string;
+    get port(): number;
+    get scheme(): string;
+
+    // Constructors
+
+    static ["new"](hostname: string, port: number): NetworkAddress;
+    static new_loopback(port: number): NetworkAddress;
+
+    // Members
+
+    get_hostname(): string;
+    get_port(): number;
+    get_scheme(): string | null;
+    static parse(host_and_port: string, default_port: number): NetworkAddress;
+    static parse_uri(uri: string, default_port: number): NetworkAddress;
+
+    // Implemented Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+export module NetworkService {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        domain: string;
+        protocol: string;
+        scheme: string;
+        service: string;
+    }
+}
+export class NetworkService extends GObject.Object implements SocketConnectable {
+    static $gtype: GObject.GType<NetworkService>;
+
+    constructor(properties?: Partial<NetworkService.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NetworkService.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get domain(): string;
+    get protocol(): string;
+    get scheme(): string;
+    set scheme(val: string);
+    get service(): string;
+
+    // Constructors
+
+    static ["new"](service: string, protocol: string, domain: string): NetworkService;
+
+    // Members
+
+    get_domain(): string;
+    get_protocol(): string;
+    get_scheme(): string;
+    get_service(): string;
+    set_scheme(scheme: string): void;
+
+    // Implemented Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+export module Notification {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Notification extends GObject.Object {
+    static $gtype: GObject.GType<Notification>;
+
+    constructor(properties?: Partial<Notification.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Notification.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](title: string): Notification;
+
+    // Members
+
+    add_button(label: string, detailed_action: string): void;
+    add_button_with_target(label: string, action: string, target?: GLib.Variant | null): void;
+    set_body(body?: string | null): void;
+    set_category(category?: string | null): void;
+    set_default_action(detailed_action: string): void;
+    set_default_action_and_target(action: string, target?: GLib.Variant | null): void;
+    set_icon(icon: Icon): void;
+    set_priority(priority: NotificationPriority): void;
+    set_title(title: string): void;
+    set_urgent(urgent: boolean): void;
+}
+export module OutputStream {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class OutputStream extends GObject.Object {
+    static $gtype: GObject.GType<OutputStream>;
+
+    constructor(properties?: Partial<OutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<OutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    clear_pending(): void;
+    close(cancellable?: Cancellable | null): boolean;
+    close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    close_finish(result: AsyncResult): boolean;
+    flush(cancellable?: Cancellable | null): boolean;
+    flush_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    flush_finish(result: AsyncResult): boolean;
+    has_pending(): boolean;
+    is_closed(): boolean;
+    is_closing(): boolean;
+    set_pending(): boolean;
+    splice(source: InputStream, flags: OutputStreamSpliceFlags, cancellable?: Cancellable | null): number;
+    splice_async(
+        source: InputStream,
+        flags: OutputStreamSpliceFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    splice_finish(result: AsyncResult): number;
+    write(buffer: Uint8Array | string, cancellable?: Cancellable | null): number;
+    write_all(buffer: Uint8Array | string, cancellable?: Cancellable | null): [boolean, number];
+    write_all_async(
+        buffer: Uint8Array | string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    write_all_finish(result: AsyncResult): [boolean, number];
+    write_async(
+        buffer: Uint8Array | string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    write_bytes(bytes: GLib.Bytes | Uint8Array, cancellable?: Cancellable | null): number;
+    write_bytes_async(
+        bytes: GLib.Bytes | Uint8Array,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    write_bytes_finish(result: AsyncResult): number;
+    write_finish(result: AsyncResult): number;
+    writev(vectors: OutputVector[], cancellable?: Cancellable | null): [boolean, number];
+    writev_all(vectors: OutputVector[], cancellable?: Cancellable | null): [boolean, number];
+    writev_all_async(
+        vectors: OutputVector[],
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    writev_all_finish(result: AsyncResult): [boolean, number];
+    writev_async(
+        vectors: OutputVector[],
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    writev_finish(result: AsyncResult): [boolean, number];
+    vfunc_close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_close_finish(result: AsyncResult): boolean;
+    vfunc_close_fn(cancellable?: Cancellable | null): boolean;
+    vfunc_flush(cancellable?: Cancellable | null): boolean;
+    vfunc_flush_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_flush_finish(result: AsyncResult): boolean;
+    vfunc_splice(source: InputStream, flags: OutputStreamSpliceFlags, cancellable?: Cancellable | null): 
number;
+    vfunc_splice_async(
+        source: InputStream,
+        flags: OutputStreamSpliceFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_splice_finish(result: AsyncResult): number;
+    vfunc_write_async(
+        buffer: Uint8Array | null,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_write_finish(result: AsyncResult): number;
+    vfunc_write_fn(buffer?: Uint8Array | null, cancellable?: Cancellable | null): number;
+    vfunc_writev_async(
+        vectors: OutputVector[],
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_writev_finish(result: AsyncResult): [boolean, number];
+    vfunc_writev_fn(vectors: OutputVector[], cancellable?: Cancellable | null): [boolean, number];
+}
+export module Permission {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        allowed: boolean;
+        can_acquire: boolean;
+        canAcquire: boolean;
+        can_release: boolean;
+        canRelease: boolean;
+    }
+}
+export abstract class Permission extends GObject.Object {
+    static $gtype: GObject.GType<Permission>;
+
+    constructor(properties?: Partial<Permission.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Permission.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get allowed(): boolean;
+    get can_acquire(): boolean;
+    get canAcquire(): boolean;
+    get can_release(): boolean;
+    get canRelease(): boolean;
+
+    // Members
+
+    acquire(cancellable?: Cancellable | null): boolean;
+    acquire_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    acquire_finish(result: AsyncResult): boolean;
+    get_allowed(): boolean;
+    get_can_acquire(): boolean;
+    get_can_release(): boolean;
+    impl_update(allowed: boolean, can_acquire: boolean, can_release: boolean): void;
+    release(cancellable?: Cancellable | null): boolean;
+    release_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    release_finish(result: AsyncResult): boolean;
+    vfunc_acquire(cancellable?: Cancellable | null): boolean;
+    vfunc_acquire_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    vfunc_acquire_finish(result: AsyncResult): boolean;
+    vfunc_release(cancellable?: Cancellable | null): boolean;
+    vfunc_release_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    vfunc_release_finish(result: AsyncResult): boolean;
+}
+export module PropertyAction {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        enabled: boolean;
+        invert_boolean: boolean;
+        invertBoolean: boolean;
+        name: string;
+        object: GObject.Object;
+        parameter_type: GLib.VariantType;
+        parameterType: GLib.VariantType;
+        property_name: string;
+        propertyName: string;
+        state: GLib.Variant;
+        state_type: GLib.VariantType;
+        stateType: GLib.VariantType;
+    }
+}
+export class PropertyAction extends GObject.Object implements Action {
+    static $gtype: GObject.GType<PropertyAction>;
+
+    constructor(properties?: Partial<PropertyAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PropertyAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enabled(): boolean;
+    get invert_boolean(): boolean;
+    get invertBoolean(): boolean;
+    get name(): string;
+    set object(val: GObject.Object);
+    get parameter_type(): GLib.VariantType;
+    get parameterType(): GLib.VariantType;
+    set property_name(val: string);
+    set propertyName(val: string);
+    get state(): GLib.Variant;
+    get state_type(): GLib.VariantType;
+    get stateType(): GLib.VariantType;
+
+    // Constructors
+
+    static ["new"](name: string, object: GObject.Object, property_name: string): PropertyAction;
+
+    // Implemented Members
+
+    activate(parameter?: GLib.Variant | null): void;
+    change_state(value: GLib.Variant): void;
+    get_enabled(): boolean;
+    get_name(): string;
+    get_parameter_type(): GLib.VariantType | null;
+    get_state(): GLib.Variant | null;
+    get_state_hint(): GLib.Variant | null;
+    get_state_type(): GLib.VariantType | null;
+    vfunc_activate(parameter?: GLib.Variant | null): void;
+    vfunc_change_state(value: GLib.Variant): void;
+    vfunc_get_enabled(): boolean;
+    vfunc_get_name(): string;
+    vfunc_get_parameter_type(): GLib.VariantType | null;
+    vfunc_get_state(): GLib.Variant | null;
+    vfunc_get_state_hint(): GLib.Variant | null;
+    vfunc_get_state_type(): GLib.VariantType | null;
+}
+export module ProxyAddress {
+    export interface ConstructorProperties extends InetSocketAddress.ConstructorProperties {
+        [key: string]: any;
+        destination_hostname: string;
+        destinationHostname: string;
+        destination_port: number;
+        destinationPort: number;
+        destination_protocol: string;
+        destinationProtocol: string;
+        password: string;
+        protocol: string;
+        uri: string;
+        username: string;
+    }
+}
+export class ProxyAddress extends InetSocketAddress implements SocketConnectable {
+    static $gtype: GObject.GType<ProxyAddress>;
+
+    constructor(properties?: Partial<ProxyAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ProxyAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get destination_hostname(): string;
+    get destinationHostname(): string;
+    get destination_port(): number;
+    get destinationPort(): number;
+    get destination_protocol(): string;
+    get destinationProtocol(): string;
+    get password(): string;
+    get protocol(): string;
+    get uri(): string;
+    get username(): string;
+
+    // Constructors
+
+    static ["new"](
+        inetaddr: InetAddress,
+        port: number,
+        protocol: string,
+        dest_hostname: string,
+        dest_port: number,
+        username?: string | null,
+        password?: string | null
+    ): ProxyAddress;
+    // Conflicted with Gio.InetSocketAddress.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_destination_hostname(): string;
+    get_destination_port(): number;
+    get_destination_protocol(): string;
+    get_password(): string | null;
+    get_protocol(): string;
+    get_uri(): string | null;
+    get_username(): string | null;
+}
+export module ProxyAddressEnumerator {
+    export interface ConstructorProperties extends SocketAddressEnumerator.ConstructorProperties {
+        [key: string]: any;
+        connectable: SocketConnectable;
+        default_port: number;
+        defaultPort: number;
+        proxy_resolver: ProxyResolver;
+        proxyResolver: ProxyResolver;
+        uri: string;
+    }
+}
+export class ProxyAddressEnumerator extends SocketAddressEnumerator {
+    static $gtype: GObject.GType<ProxyAddressEnumerator>;
+
+    constructor(properties?: Partial<ProxyAddressEnumerator.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ProxyAddressEnumerator.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get connectable(): SocketConnectable;
+    get default_port(): number;
+    get defaultPort(): number;
+    get proxy_resolver(): ProxyResolver;
+    set proxy_resolver(val: ProxyResolver);
+    get proxyResolver(): ProxyResolver;
+    set proxyResolver(val: ProxyResolver);
+    get uri(): string;
+}
+export module Resolver {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Resolver extends GObject.Object {
+    static $gtype: GObject.GType<Resolver>;
+
+    constructor(properties?: Partial<Resolver.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Resolver.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: ResolverPrivate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "reload", callback: (_source: this) => void): number;
+    connect_after(signal: "reload", callback: (_source: this) => void): number;
+    emit(signal: "reload"): void;
+
+    // Members
+
+    lookup_by_address(address: InetAddress, cancellable?: Cancellable | null): string;
+    lookup_by_address_async(
+        address: InetAddress,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_by_address_finish(result: AsyncResult): string;
+    lookup_by_name(hostname: string, cancellable?: Cancellable | null): InetAddress[];
+    lookup_by_name_async(
+        hostname: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_by_name_finish(result: AsyncResult): InetAddress[];
+    lookup_by_name_with_flags(
+        hostname: string,
+        flags: ResolverNameLookupFlags,
+        cancellable?: Cancellable | null
+    ): InetAddress[];
+    lookup_by_name_with_flags_async(
+        hostname: string,
+        flags: ResolverNameLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_by_name_with_flags_finish(result: AsyncResult): InetAddress[];
+    lookup_records(rrname: string, record_type: ResolverRecordType, cancellable?: Cancellable | null): 
GLib.Variant[];
+    lookup_records_async(
+        rrname: string,
+        record_type: ResolverRecordType,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_records_finish(result: AsyncResult): GLib.Variant[];
+    lookup_service(service: string, protocol: string, domain: string, cancellable?: Cancellable | null): 
SrvTarget[];
+    lookup_service_async(
+        service: string,
+        protocol: string,
+        domain: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_service_finish(result: AsyncResult): SrvTarget[];
+    set_default(): void;
+    vfunc_lookup_by_address(address: InetAddress, cancellable?: Cancellable | null): string;
+    vfunc_lookup_by_address_async(
+        address: InetAddress,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_by_address_finish(result: AsyncResult): string;
+    vfunc_lookup_by_name(hostname: string, cancellable?: Cancellable | null): InetAddress[];
+    vfunc_lookup_by_name_async(
+        hostname: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_by_name_finish(result: AsyncResult): InetAddress[];
+    vfunc_lookup_by_name_with_flags(
+        hostname: string,
+        flags: ResolverNameLookupFlags,
+        cancellable?: Cancellable | null
+    ): InetAddress[];
+    vfunc_lookup_by_name_with_flags_async(
+        hostname: string,
+        flags: ResolverNameLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_by_name_with_flags_finish(result: AsyncResult): InetAddress[];
+    vfunc_lookup_records(
+        rrname: string,
+        record_type: ResolverRecordType,
+        cancellable?: Cancellable | null
+    ): GLib.Variant[];
+    vfunc_lookup_records_async(
+        rrname: string,
+        record_type: ResolverRecordType,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_records_finish(result: AsyncResult): GLib.Variant[];
+    vfunc_lookup_service_async(
+        rrname: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_service_finish(result: AsyncResult): SrvTarget[];
+    vfunc_reload(): void;
+    static get_default(): Resolver;
+}
+export module Settings {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        backend: SettingsBackend;
+        delay_apply: boolean;
+        delayApply: boolean;
+        has_unapplied: boolean;
+        hasUnapplied: boolean;
+        path: string;
+        schema: string;
+        schema_id: string;
+        schemaId: string;
+        settings_schema: SettingsSchema;
+        settingsSchema: SettingsSchema;
+    }
+}
+export class Settings extends GObject.Object {
+    static $gtype: GObject.GType<Settings>;
+
+    constructor(properties?: Partial<Settings.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Settings.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get backend(): SettingsBackend;
+    get delay_apply(): boolean;
+    get delayApply(): boolean;
+    get has_unapplied(): boolean;
+    get hasUnapplied(): boolean;
+    get path(): string;
+    get schema(): string;
+    get schema_id(): string;
+    get schemaId(): string;
+    get settings_schema(): SettingsSchema;
+    get settingsSchema(): SettingsSchema;
+
+    // Fields
+    priv: SettingsPrivate;
+    _realInit: (...args: any[]) => any;
+    _realMethods: typeof Settings.prototype;
+    _keys: string[];
+    _children: string[];
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "change-event",
+        callback: (_source: this, keys: GLib.Quark[] | null, n_keys: number) => boolean
+    ): number;
+    connect_after(
+        signal: "change-event",
+        callback: (_source: this, keys: GLib.Quark[] | null, n_keys: number) => boolean
+    ): number;
+    emit(signal: "change-event", keys: GLib.Quark[] | null, n_keys: number): void;
+    connect(signal: "changed", callback: (_source: this, key: string) => void): number;
+    connect_after(signal: "changed", callback: (_source: this, key: string) => void): number;
+    emit(signal: "changed", key: string): void;
+    connect(signal: "writable-change-event", callback: (_source: this, key: number) => boolean): number;
+    connect_after(signal: "writable-change-event", callback: (_source: this, key: number) => boolean): 
number;
+    emit(signal: "writable-change-event", key: number): void;
+    connect(signal: "writable-changed", callback: (_source: this, key: string) => void): number;
+    connect_after(signal: "writable-changed", callback: (_source: this, key: string) => void): number;
+    emit(signal: "writable-changed", key: string): void;
+
+    // Constructors
+
+    static ["new"](schema_id: string): Settings;
+    static new_full(schema: SettingsSchema, backend?: SettingsBackend | null, path?: string | null): 
Settings;
+    static new_with_backend(schema_id: string, backend: SettingsBackend): Settings;
+    static new_with_backend_and_path(schema_id: string, backend: SettingsBackend, path: string): Settings;
+    static new_with_path(schema_id: string, path: string): Settings;
+
+    // Members
+
+    apply(): void;
+    bind(key: string, object: GObject.Object, property: string, flags: SettingsBindFlags): void;
+    bind_writable(key: string, object: GObject.Object, property: string, inverted: boolean): void;
+    create_action(key: string): Action;
+    delay(): void;
+    get_boolean(key: string): boolean;
+    get_child(name: string): Settings;
+    get_default_value<T extends string = any>(key: string): GLib.Variant<T> | null;
+    get_double(key: string): number;
+    get_enum(key: string): number;
+    get_flags(key: string): number;
+    get_has_unapplied(): boolean;
+    get_int(key: string): number;
+    get_int64(key: string): number;
+    get_mapped(key: string, mapping: SettingsGetMapping): any | null;
+    get_range(key: string): GLib.Variant;
+    get_string(key: string): string;
+    get_strv(key: string): string[];
+    get_uint(key: string): number;
+    get_uint64(key: string): number;
+    get_user_value<T extends string = any>(key: string): GLib.Variant<T> | null;
+    get_value<T extends string = any>(key: string): GLib.Variant<T>;
+    is_writable(name: string): boolean;
+    list_children(): string[];
+    list_keys(): string[];
+    range_check(key: string, value: GLib.Variant): boolean;
+    reset(key: string): void;
+    revert(): void;
+    set_boolean(key: string, value: boolean): boolean;
+    set_double(key: string, value: number): boolean;
+    set_enum(key: string, value: number): boolean;
+    set_flags(key: string, value: number): boolean;
+    set_int(key: string, value: number): boolean;
+    set_int64(key: string, value: number): boolean;
+    set_string(key: string, value: string): boolean;
+    set_strv(key: string, value?: string[] | null): boolean;
+    set_uint(key: string, value: number): boolean;
+    set_uint64(key: string, value: number): boolean;
+    set_value(key: string, value: GLib.Variant): boolean;
+    vfunc_change_event(keys: GLib.Quark, n_keys: number): boolean;
+    vfunc_changed(key: string): void;
+    vfunc_writable_change_event(key: GLib.Quark): boolean;
+    vfunc_writable_changed(key: string): void;
+    static list_relocatable_schemas(): string[];
+    static list_schemas(): string[];
+    static sync(): void;
+    static unbind(object: GObject.Object, property: string): void;
+}
+export module SettingsBackend {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class SettingsBackend extends GObject.Object {
+    static $gtype: GObject.GType<SettingsBackend>;
+
+    constructor(properties?: Partial<SettingsBackend.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SettingsBackend.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    changed(key: string, origin_tag?: any | null): void;
+    changed_tree(tree: GLib.Tree, origin_tag?: any | null): void;
+    keys_changed(path: string, items: string[], origin_tag?: any | null): void;
+    path_changed(path: string, origin_tag?: any | null): void;
+    path_writable_changed(path: string): void;
+    writable_changed(key: string): void;
+    vfunc_get_writable(key: string): boolean;
+    vfunc_read(key: string, expected_type: GLib.VariantType, default_value: boolean): GLib.Variant;
+    vfunc_read_user_value(key: string, expected_type: GLib.VariantType): GLib.Variant;
+    vfunc_reset(key: string, origin_tag?: any | null): void;
+    vfunc_subscribe(name: string): void;
+    vfunc_sync(): void;
+    vfunc_unsubscribe(name: string): void;
+    vfunc_write(key: string, value: GLib.Variant, origin_tag?: any | null): boolean;
+    vfunc_write_tree(tree: GLib.Tree, origin_tag?: any | null): boolean;
+    static flatten_tree(tree: GLib.Tree): [string, string[], GLib.Variant[] | null];
+    static get_default(): SettingsBackend;
+}
+export module SimpleAction {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        enabled: boolean;
+        name: string;
+        parameter_type: GLib.VariantType;
+        parameterType: GLib.VariantType;
+        state: GLib.Variant;
+        state_type: GLib.VariantType;
+        stateType: GLib.VariantType;
+    }
+}
+export class SimpleAction extends GObject.Object implements Action {
+    static $gtype: GObject.GType<SimpleAction>;
+
+    constructor(properties?: Partial<SimpleAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SimpleAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enabled(): boolean;
+    set enabled(val: boolean);
+    get name(): string;
+    get parameter_type(): GLib.VariantType;
+    get parameterType(): GLib.VariantType;
+    get state(): GLib.Variant;
+    set state(val: GLib.Variant);
+    get state_type(): GLib.VariantType;
+    get stateType(): GLib.VariantType;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this, parameter: GLib.Variant | null) => void): number;
+    connect_after(signal: "activate", callback: (_source: this, parameter: GLib.Variant | null) => void): 
number;
+    emit(signal: "activate", parameter: GLib.Variant | null): void;
+    connect(signal: "change-state", callback: (_source: this, value: GLib.Variant | null) => void): number;
+    connect_after(signal: "change-state", callback: (_source: this, value: GLib.Variant | null) => void): 
number;
+    emit(signal: "change-state", value: GLib.Variant | null): void;
+
+    // Constructors
+
+    static ["new"](name: string, parameter_type?: GLib.VariantType | null): SimpleAction;
+    static new_stateful(name: string, parameter_type: GLib.VariantType | null, state: GLib.Variant): 
SimpleAction;
+
+    // Members
+
+    set_enabled(enabled: boolean): void;
+    set_state(value: GLib.Variant): void;
+    set_state_hint(state_hint?: GLib.Variant | null): void;
+
+    // Implemented Members
+
+    activate(parameter?: GLib.Variant | null): void;
+    change_state(value: GLib.Variant): void;
+    get_enabled(): boolean;
+    get_name(): string;
+    get_parameter_type(): GLib.VariantType | null;
+    get_state(): GLib.Variant | null;
+    get_state_hint(): GLib.Variant | null;
+    get_state_type(): GLib.VariantType | null;
+    vfunc_activate(parameter?: GLib.Variant | null): void;
+    vfunc_change_state(value: GLib.Variant): void;
+    vfunc_get_enabled(): boolean;
+    vfunc_get_name(): string;
+    vfunc_get_parameter_type(): GLib.VariantType | null;
+    vfunc_get_state(): GLib.Variant | null;
+    vfunc_get_state_hint(): GLib.Variant | null;
+    vfunc_get_state_type(): GLib.VariantType | null;
+}
+export module SimpleActionGroup {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class SimpleActionGroup extends GObject.Object implements ActionGroup, ActionMap {
+    static $gtype: GObject.GType<SimpleActionGroup>;
+
+    constructor(properties?: Partial<SimpleActionGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SimpleActionGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): SimpleActionGroup;
+
+    // Members
+
+    add_entries(entries: ActionEntry[], user_data?: any | null): void;
+    insert(action: Action): void;
+    lookup(action_name: string): Action;
+    remove(action_name: string): void;
+
+    // Implemented Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    add_action(action: Action): void;
+    add_action_entries(entries: ActionEntry[], user_data?: any | null): void;
+    lookup_action(action_name: string): Action | null;
+    remove_action(action_name: string): void;
+    vfunc_add_action(action: Action): void;
+    vfunc_lookup_action(action_name: string): Action | null;
+    vfunc_remove_action(action_name: string): void;
+}
+export module SimpleAsyncResult {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class SimpleAsyncResult extends GObject.Object implements AsyncResult {
+    static $gtype: GObject.GType<SimpleAsyncResult>;
+
+    constructor(properties?: Partial<SimpleAsyncResult.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SimpleAsyncResult.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        source_object?: GObject.Object | null,
+        callback?: AsyncReadyCallback | null,
+        source_tag?: any | null
+    ): SimpleAsyncResult;
+    static new_from_error(
+        source_object: GObject.Object | null,
+        callback: AsyncReadyCallback | null,
+        error: GLib.Error
+    ): SimpleAsyncResult;
+
+    // Members
+
+    complete(): void;
+    complete_in_idle(): void;
+    get_op_res_gboolean(): boolean;
+    get_op_res_gssize(): number;
+    propagate_error(): boolean;
+    set_check_cancellable(check_cancellable?: Cancellable | null): void;
+    set_from_error(error: GLib.Error): void;
+    set_handle_cancellation(handle_cancellation: boolean): void;
+    set_op_res_gboolean(op_res: boolean): void;
+    set_op_res_gssize(op_res: number): void;
+    static is_valid(result: AsyncResult, source?: GObject.Object | null, source_tag?: any | null): boolean;
+
+    // Implemented Members
+
+    get_source_object<T = GObject.Object>(): T;
+    get_user_data(): any | null;
+    is_tagged(source_tag?: any | null): boolean;
+    legacy_propagate_error(): boolean;
+    vfunc_get_source_object<T = GObject.Object>(): T;
+    vfunc_get_user_data(): any | null;
+    vfunc_is_tagged(source_tag?: any | null): boolean;
+}
+export module SimpleIOStream {
+    export interface ConstructorProperties extends IOStream.ConstructorProperties {
+        [key: string]: any;
+        input_stream: InputStream;
+        inputStream: InputStream;
+        output_stream: OutputStream;
+        outputStream: OutputStream;
+    }
+}
+export class SimpleIOStream extends IOStream {
+    static $gtype: GObject.GType<SimpleIOStream>;
+
+    constructor(properties?: Partial<SimpleIOStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SimpleIOStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get input_stream(): InputStream;
+    get inputStream(): InputStream;
+    get output_stream(): OutputStream;
+    get outputStream(): OutputStream;
+
+    // Constructors
+
+    static ["new"](input_stream: InputStream, output_stream: OutputStream): SimpleIOStream;
+}
+export module SimplePermission {
+    export interface ConstructorProperties extends Permission.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class SimplePermission extends Permission {
+    static $gtype: GObject.GType<SimplePermission>;
+
+    constructor(properties?: Partial<SimplePermission.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SimplePermission.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](allowed: boolean): SimplePermission;
+}
+export module SimpleProxyResolver {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        default_proxy: string;
+        defaultProxy: string;
+        ignore_hosts: string[];
+        ignoreHosts: string[];
+    }
+}
+export class SimpleProxyResolver extends GObject.Object implements ProxyResolver {
+    static $gtype: GObject.GType<SimpleProxyResolver>;
+
+    constructor(properties?: Partial<SimpleProxyResolver.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SimpleProxyResolver.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get default_proxy(): string;
+    set default_proxy(val: string);
+    get defaultProxy(): string;
+    set defaultProxy(val: string);
+    get ignore_hosts(): string[];
+    set ignore_hosts(val: string[]);
+    get ignoreHosts(): string[];
+    set ignoreHosts(val: string[]);
+
+    // Members
+
+    set_default_proxy(default_proxy: string): void;
+    set_ignore_hosts(ignore_hosts: string[]): void;
+    set_uri_proxy(uri_scheme: string, proxy: string): void;
+    static new(default_proxy?: string | null, ignore_hosts?: string[] | null): ProxyResolver;
+
+    // Implemented Members
+
+    is_supported(): boolean;
+    lookup(uri: string, cancellable?: Cancellable | null): string[];
+    lookup_async(uri: string, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    lookup_finish(result: AsyncResult): string[];
+    vfunc_is_supported(): boolean;
+    vfunc_lookup(uri: string, cancellable?: Cancellable | null): string[];
+    vfunc_lookup_async(uri: string, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    vfunc_lookup_finish(result: AsyncResult): string[];
+}
+export module Socket {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        blocking: boolean;
+        broadcast: boolean;
+        family: SocketFamily;
+        fd: number;
+        keepalive: boolean;
+        listen_backlog: number;
+        listenBacklog: number;
+        local_address: SocketAddress;
+        localAddress: SocketAddress;
+        multicast_loopback: boolean;
+        multicastLoopback: boolean;
+        multicast_ttl: number;
+        multicastTtl: number;
+        protocol: SocketProtocol;
+        remote_address: SocketAddress;
+        remoteAddress: SocketAddress;
+        timeout: number;
+        ttl: number;
+        type: SocketType;
+    }
+}
+export class Socket extends GObject.Object implements DatagramBased, Initable {
+    static $gtype: GObject.GType<Socket>;
+
+    constructor(properties?: Partial<Socket.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Socket.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get blocking(): boolean;
+    set blocking(val: boolean);
+    get broadcast(): boolean;
+    set broadcast(val: boolean);
+    get family(): SocketFamily;
+    get fd(): number;
+    get keepalive(): boolean;
+    set keepalive(val: boolean);
+    get listen_backlog(): number;
+    set listen_backlog(val: number);
+    get listenBacklog(): number;
+    set listenBacklog(val: number);
+    get local_address(): SocketAddress;
+    get localAddress(): SocketAddress;
+    get multicast_loopback(): boolean;
+    set multicast_loopback(val: boolean);
+    get multicastLoopback(): boolean;
+    set multicastLoopback(val: boolean);
+    get multicast_ttl(): number;
+    set multicast_ttl(val: number);
+    get multicastTtl(): number;
+    set multicastTtl(val: number);
+    get protocol(): SocketProtocol;
+    get remote_address(): SocketAddress;
+    get remoteAddress(): SocketAddress;
+    get timeout(): number;
+    set timeout(val: number);
+    get ttl(): number;
+    set ttl(val: number);
+    get type(): SocketType;
+
+    // Fields
+    priv: SocketPrivate;
+
+    // Constructors
+
+    static ["new"](family: SocketFamily, type: SocketType, protocol: SocketProtocol): Socket;
+    static new_from_fd(fd: number): Socket;
+
+    // Members
+
+    accept(cancellable?: Cancellable | null): Socket;
+    bind(address: SocketAddress, allow_reuse: boolean): boolean;
+    check_connect_result(): boolean;
+    close(): boolean;
+    condition_check(condition: GLib.IOCondition): GLib.IOCondition;
+    condition_timed_wait(condition: GLib.IOCondition, timeout_us: number, cancellable?: Cancellable | null): 
boolean;
+    condition_wait(condition: GLib.IOCondition, cancellable?: Cancellable | null): boolean;
+    // Conflicted with Gio.DatagramBased.condition_wait
+    condition_wait(...args: never[]): any;
+    connect(address: SocketAddress, cancellable?: Cancellable | null): boolean;
+    connect(...args: never[]): any;
+    connection_factory_create_connection(): SocketConnection;
+    get_available_bytes(): number;
+    get_blocking(): boolean;
+    get_broadcast(): boolean;
+    get_credentials(): Credentials;
+    get_family(): SocketFamily;
+    get_fd(): number;
+    get_keepalive(): boolean;
+    get_listen_backlog(): number;
+    get_local_address(): SocketAddress;
+    get_multicast_loopback(): boolean;
+    get_multicast_ttl(): number;
+    get_option(level: number, optname: number): [boolean, number];
+    get_protocol(): SocketProtocol;
+    get_remote_address(): SocketAddress;
+    get_socket_type(): SocketType;
+    get_timeout(): number;
+    get_ttl(): number;
+    is_closed(): boolean;
+    is_connected(): boolean;
+    join_multicast_group(group: InetAddress, source_specific: boolean, iface?: string | null): boolean;
+    join_multicast_group_ssm(group: InetAddress, source_specific?: InetAddress | null, iface?: string | 
null): boolean;
+    leave_multicast_group(group: InetAddress, source_specific: boolean, iface?: string | null): boolean;
+    leave_multicast_group_ssm(group: InetAddress, source_specific?: InetAddress | null, iface?: string | 
null): boolean;
+    listen(): boolean;
+    receive(cancellable?: Cancellable | null): [number, Uint8Array];
+    receive_from(cancellable?: Cancellable | null): [number, SocketAddress | null, Uint8Array];
+    receive_message(
+        vectors: InputVector[],
+        flags: number,
+        cancellable?: Cancellable | null
+    ): [number, SocketAddress | null, SocketControlMessage[] | null, number];
+    receive_messages(messages: InputMessage[], flags: number, cancellable?: Cancellable | null): number;
+    // Conflicted with Gio.DatagramBased.receive_messages
+    receive_messages(...args: never[]): any;
+    receive_with_blocking(blocking: boolean, cancellable?: Cancellable | null): [number, Uint8Array];
+    send(buffer: Uint8Array | string, cancellable?: Cancellable | null): number;
+    send_message(
+        address: SocketAddress | null,
+        vectors: OutputVector[],
+        messages: SocketControlMessage[] | null,
+        flags: number,
+        cancellable?: Cancellable | null
+    ): number;
+    send_message_with_timeout(
+        address: SocketAddress | null,
+        vectors: OutputVector[],
+        messages: SocketControlMessage[] | null,
+        flags: number,
+        timeout_us: number,
+        cancellable?: Cancellable | null
+    ): [PollableReturn, number];
+    send_messages(messages: OutputMessage[], flags: number, cancellable?: Cancellable | null): number;
+    // Conflicted with Gio.DatagramBased.send_messages
+    send_messages(...args: never[]): any;
+    send_to(address: SocketAddress | null, buffer: Uint8Array | string, cancellable?: Cancellable | null): 
number;
+    send_with_blocking(buffer: Uint8Array | string, blocking: boolean, cancellable?: Cancellable | null): 
number;
+    set_blocking(blocking: boolean): void;
+    set_broadcast(broadcast: boolean): void;
+    set_keepalive(keepalive: boolean): void;
+    set_listen_backlog(backlog: number): void;
+    set_multicast_loopback(loopback: boolean): void;
+    set_multicast_ttl(ttl: number): void;
+    set_option(level: number, optname: number, value: number): boolean;
+    set_timeout(timeout: number): void;
+    set_ttl(ttl: number): void;
+    shutdown(shutdown_read: boolean, shutdown_write: boolean): boolean;
+    speaks_ipv4(): boolean;
+
+    // Implemented Members
+
+    create_source(condition: GLib.IOCondition, cancellable?: Cancellable | null): GLib.Source;
+    vfunc_condition_check(condition: GLib.IOCondition): GLib.IOCondition;
+    vfunc_condition_wait(condition: GLib.IOCondition, timeout: number, cancellable?: Cancellable | null): 
boolean;
+    vfunc_create_source(condition: GLib.IOCondition, cancellable?: Cancellable | null): GLib.Source;
+    vfunc_receive_messages(
+        messages: InputMessage[],
+        flags: number,
+        timeout: number,
+        cancellable?: Cancellable | null
+    ): number;
+    vfunc_send_messages(
+        messages: OutputMessage[],
+        flags: number,
+        timeout: number,
+        cancellable?: Cancellable | null
+    ): number;
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module SocketAddress {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        family: SocketFamily;
+    }
+}
+export abstract class SocketAddress extends GObject.Object implements SocketConnectable {
+    static $gtype: GObject.GType<SocketAddress>;
+
+    constructor(properties?: Partial<SocketAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get family(): SocketFamily;
+
+    // Constructors
+
+    static new_from_native(_native: any, len: number): SocketAddress;
+
+    // Members
+
+    get_family(): SocketFamily;
+    get_native_size(): number;
+    to_native(dest: any | null, destlen: number): boolean;
+    vfunc_get_family(): SocketFamily;
+    vfunc_get_native_size(): number;
+    vfunc_to_native(dest: any | null, destlen: number): boolean;
+
+    // Implemented Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+export module SocketAddressEnumerator {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class SocketAddressEnumerator extends GObject.Object {
+    static $gtype: GObject.GType<SocketAddressEnumerator>;
+
+    constructor(properties?: Partial<SocketAddressEnumerator.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketAddressEnumerator.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    next(cancellable?: Cancellable | null): SocketAddress;
+    next_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    next_finish(result: AsyncResult): SocketAddress;
+    vfunc_next(cancellable?: Cancellable | null): SocketAddress;
+    vfunc_next_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    vfunc_next_finish(result: AsyncResult): SocketAddress;
+}
+export module SocketClient {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        enable_proxy: boolean;
+        enableProxy: boolean;
+        family: SocketFamily;
+        local_address: SocketAddress;
+        localAddress: SocketAddress;
+        protocol: SocketProtocol;
+        proxy_resolver: ProxyResolver;
+        proxyResolver: ProxyResolver;
+        timeout: number;
+        tls: boolean;
+        tls_validation_flags: TlsCertificateFlags;
+        tlsValidationFlags: TlsCertificateFlags;
+        type: SocketType;
+    }
+}
+export class SocketClient extends GObject.Object {
+    static $gtype: GObject.GType<SocketClient>;
+
+    constructor(properties?: Partial<SocketClient.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketClient.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_proxy(): boolean;
+    set enable_proxy(val: boolean);
+    get enableProxy(): boolean;
+    set enableProxy(val: boolean);
+    get family(): SocketFamily;
+    set family(val: SocketFamily);
+    get local_address(): SocketAddress;
+    set local_address(val: SocketAddress);
+    get localAddress(): SocketAddress;
+    set localAddress(val: SocketAddress);
+    get protocol(): SocketProtocol;
+    set protocol(val: SocketProtocol);
+    get proxy_resolver(): ProxyResolver;
+    set proxy_resolver(val: ProxyResolver);
+    get proxyResolver(): ProxyResolver;
+    set proxyResolver(val: ProxyResolver);
+    get timeout(): number;
+    set timeout(val: number);
+    get tls(): boolean;
+    set tls(val: boolean);
+    get tls_validation_flags(): TlsCertificateFlags;
+    set tls_validation_flags(val: TlsCertificateFlags);
+    get tlsValidationFlags(): TlsCertificateFlags;
+    set tlsValidationFlags(val: TlsCertificateFlags);
+    get type(): SocketType;
+    set type(val: SocketType);
+
+    // Fields
+    priv: SocketClientPrivate;
+
+    // Signals
+
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect_after(
+        signal: "event",
+        callback: (
+            _source: this,
+            event: SocketClientEvent,
+            connectable: SocketConnectable,
+            connection: IOStream | null
+        ) => void
+    ): number;
+    emit(signal: "event", event: SocketClientEvent, connectable: SocketConnectable, connection: IOStream | 
null): void;
+
+    // Constructors
+
+    static ["new"](): SocketClient;
+
+    // Members
+
+    add_application_proxy(protocol: string): void;
+    connect(connectable: SocketConnectable, cancellable?: Cancellable | null): SocketConnection;
+    connect(...args: never[]): any;
+    connect_async(
+        connectable: SocketConnectable,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    connect_finish(result: AsyncResult): SocketConnection;
+    connect_to_host(host_and_port: string, default_port: number, cancellable?: Cancellable | null): 
SocketConnection;
+    connect_to_host_async(
+        host_and_port: string,
+        default_port: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    connect_to_host_finish(result: AsyncResult): SocketConnection;
+    connect_to_service(domain: string, service: string, cancellable?: Cancellable | null): SocketConnection;
+    connect_to_service_async(
+        domain: string,
+        service: string,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    connect_to_service_finish(result: AsyncResult): SocketConnection;
+    connect_to_uri(uri: string, default_port: number, cancellable?: Cancellable | null): SocketConnection;
+    connect_to_uri_async(
+        uri: string,
+        default_port: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    connect_to_uri_finish(result: AsyncResult): SocketConnection;
+    get_enable_proxy(): boolean;
+    get_family(): SocketFamily;
+    get_local_address(): SocketAddress | null;
+    get_protocol(): SocketProtocol;
+    get_proxy_resolver(): ProxyResolver;
+    get_socket_type(): SocketType;
+    get_timeout(): number;
+    get_tls(): boolean;
+    get_tls_validation_flags(): TlsCertificateFlags;
+    set_enable_proxy(enable: boolean): void;
+    set_family(family: SocketFamily): void;
+    set_local_address(address?: SocketAddress | null): void;
+    set_protocol(protocol: SocketProtocol): void;
+    set_proxy_resolver(proxy_resolver?: ProxyResolver | null): void;
+    set_socket_type(type: SocketType): void;
+    set_timeout(timeout: number): void;
+    set_tls(tls: boolean): void;
+    set_tls_validation_flags(flags: TlsCertificateFlags): void;
+    vfunc_event(event: SocketClientEvent, connectable: SocketConnectable, connection: IOStream): void;
+}
+export module SocketConnection {
+    export interface ConstructorProperties extends IOStream.ConstructorProperties {
+        [key: string]: any;
+        socket: Socket;
+    }
+}
+export class SocketConnection extends IOStream {
+    static $gtype: GObject.GType<SocketConnection>;
+
+    constructor(properties?: Partial<SocketConnection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketConnection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get socket(): Socket;
+
+    // Fields
+    priv: SocketConnectionPrivate;
+
+    // Members
+
+    connect(address: SocketAddress, cancellable?: Cancellable | null): boolean;
+    connect(...args: never[]): any;
+    connect_async(
+        address: SocketAddress,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    connect_finish(result: AsyncResult): boolean;
+    get_local_address(): SocketAddress;
+    get_remote_address(): SocketAddress;
+    get_socket(): Socket;
+    is_connected(): boolean;
+    static factory_lookup_type(family: SocketFamily, type: SocketType, protocol_id: number): GObject.GType;
+    static factory_register_type(g_type: GObject.GType, family: SocketFamily, type: SocketType, protocol: 
number): void;
+}
+export module SocketControlMessage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class SocketControlMessage extends GObject.Object {
+    static $gtype: GObject.GType<SocketControlMessage>;
+
+    constructor(properties?: Partial<SocketControlMessage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketControlMessage.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: SocketControlMessagePrivate;
+
+    // Members
+
+    get_level(): number;
+    get_msg_type(): number;
+    get_size(): number;
+    serialize(data: any): void;
+    vfunc_get_level(): number;
+    vfunc_get_size(): number;
+    vfunc_get_type(): number;
+    vfunc_serialize(data: any): void;
+    static deserialize(level: number, type: number, data: Uint8Array | string): SocketControlMessage;
+}
+export module SocketListener {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        listen_backlog: number;
+        listenBacklog: number;
+    }
+}
+export class SocketListener extends GObject.Object {
+    static $gtype: GObject.GType<SocketListener>;
+
+    constructor(properties?: Partial<SocketListener.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketListener.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get listen_backlog(): number;
+    set listen_backlog(val: number);
+    get listenBacklog(): number;
+    set listenBacklog(val: number);
+
+    // Fields
+    priv: SocketListenerPrivate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "event", callback: (_source: this, event: SocketListenerEvent, socket: Socket) => void): 
number;
+    connect_after(
+        signal: "event",
+        callback: (_source: this, event: SocketListenerEvent, socket: Socket) => void
+    ): number;
+    emit(signal: "event", event: SocketListenerEvent, socket: Socket): void;
+
+    // Constructors
+
+    static ["new"](): SocketListener;
+
+    // Members
+
+    accept(cancellable?: Cancellable | null): [SocketConnection, GObject.Object | null];
+    accept_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    accept_finish(result: AsyncResult): [SocketConnection, GObject.Object | null];
+    accept_socket(cancellable?: Cancellable | null): [Socket, GObject.Object | null];
+    accept_socket_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    accept_socket_finish(result: AsyncResult): [Socket, GObject.Object | null];
+    add_address(
+        address: SocketAddress,
+        type: SocketType,
+        protocol: SocketProtocol,
+        source_object?: GObject.Object | null
+    ): [boolean, SocketAddress | null];
+    add_any_inet_port(source_object?: GObject.Object | null): number;
+    add_inet_port(port: number, source_object?: GObject.Object | null): boolean;
+    add_socket(socket: Socket, source_object?: GObject.Object | null): boolean;
+    close(): void;
+    set_backlog(listen_backlog: number): void;
+    vfunc_changed(): void;
+    vfunc_event(event: SocketListenerEvent, socket: Socket): void;
+}
+export module SocketService {
+    export interface ConstructorProperties extends SocketListener.ConstructorProperties {
+        [key: string]: any;
+        active: boolean;
+    }
+}
+export class SocketService extends SocketListener {
+    static $gtype: GObject.GType<SocketService>;
+
+    constructor(properties?: Partial<SocketService.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SocketService.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): boolean;
+    set active(val: boolean);
+
+    // Fields
+    priv: SocketServicePrivate | any;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "incoming",
+        callback: (_source: this, connection: SocketConnection, source_object: GObject.Object | null) => 
boolean
+    ): number;
+    connect_after(
+        signal: "incoming",
+        callback: (_source: this, connection: SocketConnection, source_object: GObject.Object | null) => 
boolean
+    ): number;
+    emit(signal: "incoming", connection: SocketConnection, source_object: GObject.Object | null): void;
+
+    // Constructors
+
+    static ["new"](): SocketService;
+
+    // Members
+
+    is_active(): boolean;
+    start(): void;
+    stop(): void;
+    vfunc_incoming(connection: SocketConnection, source_object: GObject.Object): boolean;
+}
+export module Subprocess {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        argv: string[];
+        flags: SubprocessFlags;
+    }
+}
+export class Subprocess extends GObject.Object implements Initable {
+    static $gtype: GObject.GType<Subprocess>;
+
+    constructor(properties?: Partial<Subprocess.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Subprocess.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set argv(val: string[]);
+    set flags(val: SubprocessFlags);
+
+    // Constructors
+
+    static ["new"](argv: string[], flags: SubprocessFlags): Subprocess;
+
+    // Members
+
+    communicate(
+        stdin_buf?: GLib.Bytes | null,
+        cancellable?: Cancellable | null
+    ): [boolean, GLib.Bytes | null, GLib.Bytes | null];
+    communicate_async(
+        stdin_buf?: GLib.Bytes | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    communicate_finish(result: AsyncResult): [boolean, GLib.Bytes | null, GLib.Bytes | null];
+    communicate_utf8(stdin_buf: string | null, cancellable: Cancellable | null): [boolean, string, string];
+    communicate_utf8_async(
+        stdin_buf?: string | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    communicate_utf8_finish(result: AsyncResult): [boolean, string, string];
+    force_exit(): void;
+    get_exit_status(): number;
+    get_identifier(): string | null;
+    get_if_exited(): boolean;
+    get_if_signaled(): boolean;
+    get_status(): number;
+    get_stderr_pipe(): InputStream | null;
+    get_stdin_pipe(): OutputStream | null;
+    get_stdout_pipe(): InputStream | null;
+    get_successful(): boolean;
+    get_term_sig(): number;
+    send_signal(signal_num: number): void;
+    wait(cancellable?: Cancellable | null): boolean;
+    wait_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    wait_check(cancellable?: Cancellable | null): boolean;
+    wait_check_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    wait_check_finish(result: AsyncResult): boolean;
+    wait_finish(result: AsyncResult): boolean;
+
+    // Implemented Members
+
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+export module SubprocessLauncher {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        flags: SubprocessFlags;
+    }
+}
+export class SubprocessLauncher extends GObject.Object {
+    static $gtype: GObject.GType<SubprocessLauncher>;
+
+    constructor(properties?: Partial<SubprocessLauncher.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SubprocessLauncher.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set flags(val: SubprocessFlags);
+
+    // Constructors
+
+    static ["new"](flags: SubprocessFlags): SubprocessLauncher;
+
+    // Members
+
+    close(): void;
+    getenv(variable: string): string | null;
+    set_cwd(cwd: string): void;
+    set_environ(env: string[]): void;
+    set_flags(flags: SubprocessFlags): void;
+    set_stderr_file_path(path?: string | null): void;
+    set_stdin_file_path(path: string): void;
+    set_stdout_file_path(path?: string | null): void;
+    setenv(variable: string, value: string, overwrite: boolean): void;
+    spawnv(argv: string[]): Subprocess;
+    take_fd(source_fd: number, target_fd: number): void;
+    take_stderr_fd(fd: number): void;
+    take_stdin_fd(fd: number): void;
+    take_stdout_fd(fd: number): void;
+    unsetenv(variable: string): void;
+}
+export module Task {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        completed: boolean;
+    }
+}
+export class Task extends GObject.Object implements AsyncResult {
+    static $gtype: GObject.GType<Task>;
+
+    constructor(properties?: Partial<Task.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Task.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get completed(): boolean;
+
+    // Constructors
+
+    static ["new"](
+        source_object?: GObject.Object | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback | null
+    ): Task;
+
+    // Members
+
+    get_cancellable(): Cancellable;
+    get_check_cancellable(): boolean;
+    get_completed(): boolean;
+    get_context(): GLib.MainContext;
+    get_name(): string | null;
+    get_priority(): number;
+    get_return_on_cancel(): boolean;
+    get_source_object<T = GObject.Object>(): T;
+    get_source_tag(): any | null;
+    get_task_data(): any | null;
+    had_error(): boolean;
+    propagate_boolean(): boolean;
+    propagate_int(): number;
+    propagate_pointer(): any | null;
+    propagate_value(): [boolean, unknown];
+    return_boolean(result: boolean): void;
+    return_error(error: GLib.Error): void;
+    return_error_if_cancelled(): boolean;
+    return_int(result: number): void;
+    return_pointer(result?: any | null, result_destroy?: GLib.DestroyNotify | null): void;
+    return_value(result?: GObject.Value | null): void;
+    run_in_thread(task_func: TaskThreadFunc): void;
+    run_in_thread_sync(task_func: TaskThreadFunc): void;
+    set_check_cancellable(check_cancellable: boolean): void;
+    set_name(name?: string | null): void;
+    set_priority(priority: number): void;
+    set_return_on_cancel(return_on_cancel: boolean): boolean;
+    set_source_tag(source_tag?: any | null): void;
+    set_task_data(task_data?: any | null, task_data_destroy?: GLib.DestroyNotify | null): void;
+    static is_valid(result: AsyncResult, source_object?: GObject.Object | null): boolean;
+    static report_error(
+        source_object: GObject.Object | null,
+        callback: AsyncReadyCallback<Task> | null,
+        source_tag: any | null,
+        error: GLib.Error
+    ): void;
+
+    // Implemented Members
+
+    get_user_data(): any | null;
+    is_tagged(source_tag?: any | null): boolean;
+    legacy_propagate_error(): boolean;
+    vfunc_get_source_object<T = GObject.Object>(): T;
+    vfunc_get_user_data(): any | null;
+    vfunc_is_tagged(source_tag?: any | null): boolean;
+}
+export module TcpConnection {
+    export interface ConstructorProperties extends SocketConnection.ConstructorProperties {
+        [key: string]: any;
+        graceful_disconnect: boolean;
+        gracefulDisconnect: boolean;
+    }
+}
+export class TcpConnection extends SocketConnection {
+    static $gtype: GObject.GType<TcpConnection>;
+
+    constructor(properties?: Partial<TcpConnection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TcpConnection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get graceful_disconnect(): boolean;
+    set graceful_disconnect(val: boolean);
+    get gracefulDisconnect(): boolean;
+    set gracefulDisconnect(val: boolean);
+
+    // Fields
+    priv: TcpConnectionPrivate | any;
+
+    // Members
+
+    get_graceful_disconnect(): boolean;
+    set_graceful_disconnect(graceful_disconnect: boolean): void;
+}
+export module TcpWrapperConnection {
+    export interface ConstructorProperties extends TcpConnection.ConstructorProperties {
+        [key: string]: any;
+        base_io_stream: IOStream;
+        baseIoStream: IOStream;
+    }
+}
+export class TcpWrapperConnection extends TcpConnection {
+    static $gtype: GObject.GType<TcpWrapperConnection>;
+
+    constructor(properties?: Partial<TcpWrapperConnection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TcpWrapperConnection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get base_io_stream(): IOStream;
+    get baseIoStream(): IOStream;
+
+    // Fields
+    priv: TcpWrapperConnectionPrivate | any;
+
+    // Constructors
+
+    static ["new"](base_io_stream: IOStream, socket: Socket): TcpWrapperConnection;
+
+    // Members
+
+    get_base_io_stream(): IOStream;
+}
+export module TestDBus {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        flags: TestDBusFlags;
+    }
+}
+export class TestDBus extends GObject.Object {
+    static $gtype: GObject.GType<TestDBus>;
+
+    constructor(properties?: Partial<TestDBus.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TestDBus.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get flags(): TestDBusFlags;
+
+    // Constructors
+
+    static ["new"](flags: TestDBusFlags): TestDBus;
+
+    // Members
+
+    add_service_dir(path: string): void;
+    down(): void;
+    get_bus_address(): string | null;
+    get_flags(): TestDBusFlags;
+    stop(): void;
+    up(): void;
+    static unset(): void;
+}
+export module ThemedIcon {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        name: string;
+        names: string[];
+        use_default_fallbacks: boolean;
+        useDefaultFallbacks: boolean;
+    }
+}
+export class ThemedIcon extends GObject.Object implements Icon {
+    static $gtype: GObject.GType<ThemedIcon>;
+
+    constructor(properties?: Partial<ThemedIcon.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ThemedIcon.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set name(val: string);
+    get names(): string[];
+    get use_default_fallbacks(): boolean;
+    get useDefaultFallbacks(): boolean;
+
+    // Constructors
+
+    static ["new"](iconname: string): ThemedIcon;
+    static new_from_names(iconnames: string[]): ThemedIcon;
+    static new_with_default_fallbacks(iconname: string): ThemedIcon;
+
+    // Members
+
+    append_name(iconname: string): void;
+    get_names(): string[];
+    prepend_name(iconname: string): void;
+
+    // Implemented Members
+
+    equal(icon2?: Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+}
+export module ThreadedSocketService {
+    export interface ConstructorProperties extends SocketService.ConstructorProperties {
+        [key: string]: any;
+        max_threads: number;
+        maxThreads: number;
+    }
+}
+export class ThreadedSocketService extends SocketService {
+    static $gtype: GObject.GType<ThreadedSocketService>;
+
+    constructor(properties?: Partial<ThreadedSocketService.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ThreadedSocketService.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get max_threads(): number;
+    get maxThreads(): number;
+
+    // Fields
+    priv: ThreadedSocketServicePrivate | any;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "run",
+        callback: (_source: this, connection: SocketConnection, source_object: GObject.Object | null) => 
boolean
+    ): number;
+    connect_after(
+        signal: "run",
+        callback: (_source: this, connection: SocketConnection, source_object: GObject.Object | null) => 
boolean
+    ): number;
+    emit(signal: "run", connection: SocketConnection, source_object: GObject.Object | null): void;
+
+    // Constructors
+
+    static ["new"](max_threads: number): ThreadedSocketService;
+    // Conflicted with Gio.SocketService.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    vfunc_run(connection: SocketConnection, source_object: GObject.Object): boolean;
+}
+export module TlsCertificate {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        certificate: Uint8Array;
+        certificate_pem: string;
+        certificatePem: string;
+        dns_names: any[];
+        dnsNames: any[];
+        ip_addresses: any[];
+        ipAddresses: any[];
+        issuer: TlsCertificate;
+        issuer_name: string;
+        issuerName: string;
+        not_valid_after: GLib.DateTime;
+        notValidAfter: GLib.DateTime;
+        not_valid_before: GLib.DateTime;
+        notValidBefore: GLib.DateTime;
+        password: string;
+        pkcs11_uri: string;
+        pkcs11Uri: string;
+        pkcs12_data: Uint8Array;
+        pkcs12Data: Uint8Array;
+        private_key: Uint8Array;
+        privateKey: Uint8Array;
+        private_key_pem: string;
+        privateKeyPem: string;
+        private_key_pkcs11_uri: string;
+        privateKeyPkcs11Uri: string;
+        subject_name: string;
+        subjectName: string;
+    }
+}
+export abstract class TlsCertificate extends GObject.Object {
+    static $gtype: GObject.GType<TlsCertificate>;
+
+    constructor(properties?: Partial<TlsCertificate.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TlsCertificate.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get certificate(): Uint8Array;
+    get certificate_pem(): string;
+    get certificatePem(): string;
+    get dns_names(): any[];
+    get dnsNames(): any[];
+    get ip_addresses(): any[];
+    get ipAddresses(): any[];
+    get issuer(): TlsCertificate;
+    get issuer_name(): string;
+    get issuerName(): string;
+    get not_valid_after(): GLib.DateTime;
+    get notValidAfter(): GLib.DateTime;
+    get not_valid_before(): GLib.DateTime;
+    get notValidBefore(): GLib.DateTime;
+    set password(val: string);
+    get pkcs11_uri(): string;
+    get pkcs11Uri(): string;
+    set pkcs12_data(val: Uint8Array);
+    set pkcs12Data(val: Uint8Array);
+    get private_key(): Uint8Array;
+    get privateKey(): Uint8Array;
+    get private_key_pem(): string;
+    get privateKeyPem(): string;
+    get private_key_pkcs11_uri(): string;
+    get privateKeyPkcs11Uri(): string;
+    get subject_name(): string;
+    get subjectName(): string;
+
+    // Fields
+    priv: TlsCertificatePrivate;
+
+    // Constructors
+
+    static new_from_file(file: string): TlsCertificate;
+    static new_from_file_with_password(file: string, password: string): TlsCertificate;
+    static new_from_files(cert_file: string, key_file: string): TlsCertificate;
+    static new_from_pem(data: string, length: number): TlsCertificate;
+    static new_from_pkcs11_uris(pkcs11_uri: string, private_key_pkcs11_uri?: string | null): TlsCertificate;
+    static new_from_pkcs12(data: Uint8Array | string, password?: string | null): TlsCertificate;
+
+    // Members
+
+    get_dns_names(): GLib.Bytes[] | null;
+    get_ip_addresses(): InetAddress[] | null;
+    get_issuer(): TlsCertificate | null;
+    get_issuer_name(): string | null;
+    get_not_valid_after(): GLib.DateTime | null;
+    get_not_valid_before(): GLib.DateTime | null;
+    get_subject_name(): string | null;
+    is_same(cert_two: TlsCertificate): boolean;
+    verify(identity?: SocketConnectable | null, trusted_ca?: TlsCertificate | null): TlsCertificateFlags;
+    vfunc_verify(identity?: SocketConnectable | null, trusted_ca?: TlsCertificate | null): 
TlsCertificateFlags;
+    static list_new_from_file(file: string): TlsCertificate[];
+}
+export module TlsConnection {
+    export interface ConstructorProperties extends IOStream.ConstructorProperties {
+        [key: string]: any;
+        advertised_protocols: string[];
+        advertisedProtocols: string[];
+        base_io_stream: IOStream;
+        baseIoStream: IOStream;
+        certificate: TlsCertificate;
+        ciphersuite_name: string;
+        ciphersuiteName: string;
+        database: TlsDatabase;
+        interaction: TlsInteraction;
+        negotiated_protocol: string;
+        negotiatedProtocol: string;
+        peer_certificate: TlsCertificate;
+        peerCertificate: TlsCertificate;
+        peer_certificate_errors: TlsCertificateFlags;
+        peerCertificateErrors: TlsCertificateFlags;
+        protocol_version: TlsProtocolVersion;
+        protocolVersion: TlsProtocolVersion;
+        rehandshake_mode: TlsRehandshakeMode;
+        rehandshakeMode: TlsRehandshakeMode;
+        require_close_notify: boolean;
+        requireCloseNotify: boolean;
+        use_system_certdb: boolean;
+        useSystemCertdb: boolean;
+    }
+}
+export abstract class TlsConnection extends IOStream {
+    static $gtype: GObject.GType<TlsConnection>;
+
+    constructor(properties?: Partial<TlsConnection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TlsConnection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get advertised_protocols(): string[];
+    set advertised_protocols(val: string[]);
+    get advertisedProtocols(): string[];
+    set advertisedProtocols(val: string[]);
+    get base_io_stream(): IOStream;
+    get baseIoStream(): IOStream;
+    get certificate(): TlsCertificate;
+    set certificate(val: TlsCertificate);
+    get ciphersuite_name(): string;
+    get ciphersuiteName(): string;
+    get database(): TlsDatabase;
+    set database(val: TlsDatabase);
+    get interaction(): TlsInteraction;
+    set interaction(val: TlsInteraction);
+    get negotiated_protocol(): string;
+    get negotiatedProtocol(): string;
+    get peer_certificate(): TlsCertificate;
+    get peerCertificate(): TlsCertificate;
+    get peer_certificate_errors(): TlsCertificateFlags;
+    get peerCertificateErrors(): TlsCertificateFlags;
+    get protocol_version(): TlsProtocolVersion;
+    get protocolVersion(): TlsProtocolVersion;
+    get rehandshake_mode(): TlsRehandshakeMode;
+    set rehandshake_mode(val: TlsRehandshakeMode);
+    get rehandshakeMode(): TlsRehandshakeMode;
+    set rehandshakeMode(val: TlsRehandshakeMode);
+    get require_close_notify(): boolean;
+    set require_close_notify(val: boolean);
+    get requireCloseNotify(): boolean;
+    set requireCloseNotify(val: boolean);
+    get use_system_certdb(): boolean;
+    set use_system_certdb(val: boolean);
+    get useSystemCertdb(): boolean;
+    set useSystemCertdb(val: boolean);
+
+    // Fields
+    priv: TlsConnectionPrivate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "accept-certificate",
+        callback: (_source: this, peer_cert: TlsCertificate, errors: TlsCertificateFlags) => boolean
+    ): number;
+    connect_after(
+        signal: "accept-certificate",
+        callback: (_source: this, peer_cert: TlsCertificate, errors: TlsCertificateFlags) => boolean
+    ): number;
+    emit(signal: "accept-certificate", peer_cert: TlsCertificate, errors: TlsCertificateFlags): void;
+
+    // Members
+
+    emit_accept_certificate(peer_cert: TlsCertificate, errors: TlsCertificateFlags): boolean;
+    get_certificate(): TlsCertificate | null;
+    get_channel_binding_data(type: TlsChannelBindingType): [boolean, Uint8Array | null];
+    get_ciphersuite_name(): string | null;
+    get_database(): TlsDatabase | null;
+    get_interaction(): TlsInteraction | null;
+    get_negotiated_protocol(): string | null;
+    get_peer_certificate(): TlsCertificate | null;
+    get_peer_certificate_errors(): TlsCertificateFlags;
+    get_protocol_version(): TlsProtocolVersion;
+    get_rehandshake_mode(): TlsRehandshakeMode;
+    get_require_close_notify(): boolean;
+    get_use_system_certdb(): boolean;
+    handshake(cancellable?: Cancellable | null): boolean;
+    handshake_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    handshake_finish(result: AsyncResult): boolean;
+    set_advertised_protocols(protocols?: string[] | null): void;
+    set_certificate(certificate: TlsCertificate): void;
+    set_database(database?: TlsDatabase | null): void;
+    set_interaction(interaction?: TlsInteraction | null): void;
+    set_rehandshake_mode(mode: TlsRehandshakeMode): void;
+    set_require_close_notify(require_close_notify: boolean): void;
+    set_use_system_certdb(use_system_certdb: boolean): void;
+    vfunc_accept_certificate(peer_cert: TlsCertificate, errors: TlsCertificateFlags): boolean;
+    vfunc_get_binding_data(type: TlsChannelBindingType, data: Uint8Array | string): boolean;
+    vfunc_get_negotiated_protocol(): string | null;
+    vfunc_handshake(cancellable?: Cancellable | null): boolean;
+    vfunc_handshake_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_handshake_finish(result: AsyncResult): boolean;
+}
+export module TlsDatabase {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class TlsDatabase extends GObject.Object {
+    static $gtype: GObject.GType<TlsDatabase>;
+
+    constructor(properties?: Partial<TlsDatabase.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TlsDatabase.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: TlsDatabasePrivate;
+
+    // Members
+
+    create_certificate_handle(certificate: TlsCertificate): string | null;
+    lookup_certificate_for_handle(
+        handle: string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificate | null;
+    lookup_certificate_for_handle_async(
+        handle: string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_certificate_for_handle_finish(result: AsyncResult): TlsCertificate;
+    lookup_certificate_issuer(
+        certificate: TlsCertificate,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificate;
+    lookup_certificate_issuer_async(
+        certificate: TlsCertificate,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_certificate_issuer_finish(result: AsyncResult): TlsCertificate;
+    lookup_certificates_issued_by(
+        issuer_raw_dn: Uint8Array | string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificate[];
+    lookup_certificates_issued_by_async(
+        issuer_raw_dn: Uint8Array | string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    lookup_certificates_issued_by_finish(result: AsyncResult): TlsCertificate[];
+    verify_chain(
+        chain: TlsCertificate,
+        purpose: string,
+        identity: SocketConnectable | null,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseVerifyFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificateFlags;
+    verify_chain_async(
+        chain: TlsCertificate,
+        purpose: string,
+        identity: SocketConnectable | null,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseVerifyFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    verify_chain_finish(result: AsyncResult): TlsCertificateFlags;
+    vfunc_create_certificate_handle(certificate: TlsCertificate): string | null;
+    vfunc_lookup_certificate_for_handle(
+        handle: string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificate | null;
+    vfunc_lookup_certificate_for_handle_async(
+        handle: string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_certificate_for_handle_finish(result: AsyncResult): TlsCertificate;
+    vfunc_lookup_certificate_issuer(
+        certificate: TlsCertificate,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificate;
+    vfunc_lookup_certificate_issuer_async(
+        certificate: TlsCertificate,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_certificate_issuer_finish(result: AsyncResult): TlsCertificate;
+    vfunc_lookup_certificates_issued_by(
+        issuer_raw_dn: Uint8Array | string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificate[];
+    vfunc_lookup_certificates_issued_by_async(
+        issuer_raw_dn: Uint8Array | string,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseLookupFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_lookup_certificates_issued_by_finish(result: AsyncResult): TlsCertificate[];
+    vfunc_verify_chain(
+        chain: TlsCertificate,
+        purpose: string,
+        identity: SocketConnectable | null,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseVerifyFlags,
+        cancellable?: Cancellable | null
+    ): TlsCertificateFlags;
+    vfunc_verify_chain_async(
+        chain: TlsCertificate,
+        purpose: string,
+        identity: SocketConnectable | null,
+        interaction: TlsInteraction | null,
+        flags: TlsDatabaseVerifyFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_verify_chain_finish(result: AsyncResult): TlsCertificateFlags;
+}
+export module TlsInteraction {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TlsInteraction extends GObject.Object {
+    static $gtype: GObject.GType<TlsInteraction>;
+
+    constructor(properties?: Partial<TlsInteraction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TlsInteraction.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    ask_password(password: TlsPassword, cancellable?: Cancellable | null): TlsInteractionResult;
+    ask_password_async(
+        password: TlsPassword,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    ask_password_finish(result: AsyncResult): TlsInteractionResult;
+    invoke_ask_password(password: TlsPassword, cancellable?: Cancellable | null): TlsInteractionResult;
+    invoke_request_certificate(
+        connection: TlsConnection,
+        flags: TlsCertificateRequestFlags,
+        cancellable?: Cancellable | null
+    ): TlsInteractionResult;
+    request_certificate(
+        connection: TlsConnection,
+        flags: TlsCertificateRequestFlags,
+        cancellable?: Cancellable | null
+    ): TlsInteractionResult;
+    request_certificate_async(
+        connection: TlsConnection,
+        flags: TlsCertificateRequestFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    request_certificate_finish(result: AsyncResult): TlsInteractionResult;
+    vfunc_ask_password(password: TlsPassword, cancellable?: Cancellable | null): TlsInteractionResult;
+    vfunc_ask_password_async(
+        password: TlsPassword,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_ask_password_finish(result: AsyncResult): TlsInteractionResult;
+    vfunc_request_certificate(
+        connection: TlsConnection,
+        flags: TlsCertificateRequestFlags,
+        cancellable?: Cancellable | null
+    ): TlsInteractionResult;
+    vfunc_request_certificate_async(
+        connection: TlsConnection,
+        flags: TlsCertificateRequestFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_request_certificate_finish(result: AsyncResult): TlsInteractionResult;
+}
+export module TlsPassword {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        description: string;
+        flags: TlsPasswordFlags;
+        warning: string;
+    }
+}
+export class TlsPassword extends GObject.Object {
+    static $gtype: GObject.GType<TlsPassword>;
+
+    constructor(properties?: Partial<TlsPassword.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TlsPassword.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get description(): string;
+    set description(val: string);
+    get flags(): TlsPasswordFlags;
+    set flags(val: TlsPasswordFlags);
+    get warning(): string;
+    set warning(val: string);
+
+    // Fields
+    priv: TlsPasswordPrivate;
+
+    // Constructors
+
+    static ["new"](flags: TlsPasswordFlags, description: string): TlsPassword;
+
+    // Members
+
+    get_description(): string;
+    get_flags(): TlsPasswordFlags;
+    get_value(): Uint8Array;
+    get_warning(): string;
+    set_description(description: string): void;
+    set_flags(flags: TlsPasswordFlags): void;
+    set_value(value: Uint8Array | string): void;
+    set_value_full(value: Uint8Array | string, destroy?: GLib.DestroyNotify | null): void;
+    set_warning(warning: string): void;
+    vfunc_get_default_warning(): string;
+    vfunc_get_value(): Uint8Array;
+    vfunc_set_value(value: Uint8Array | string, destroy?: GLib.DestroyNotify | null): void;
+}
+export module UnixConnection {
+    export interface ConstructorProperties extends SocketConnection.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class UnixConnection extends SocketConnection {
+    static $gtype: GObject.GType<UnixConnection>;
+
+    constructor(properties?: Partial<UnixConnection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixConnection.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: UnixConnectionPrivate | any;
+
+    // Members
+
+    receive_credentials(cancellable?: Cancellable | null): Credentials;
+    receive_credentials_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    receive_credentials_finish(result: AsyncResult): Credentials;
+    receive_fd(cancellable?: Cancellable | null): number;
+    send_credentials(cancellable?: Cancellable | null): boolean;
+    send_credentials_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    send_credentials_finish(result: AsyncResult): boolean;
+    send_fd(fd: number, cancellable?: Cancellable | null): boolean;
+}
+export module UnixCredentialsMessage {
+    export interface ConstructorProperties extends SocketControlMessage.ConstructorProperties {
+        [key: string]: any;
+        credentials: Credentials;
+    }
+}
+export class UnixCredentialsMessage extends SocketControlMessage {
+    static $gtype: GObject.GType<UnixCredentialsMessage>;
+
+    constructor(properties?: Partial<UnixCredentialsMessage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixCredentialsMessage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get credentials(): Credentials;
+
+    // Fields
+    priv: UnixCredentialsMessagePrivate | any;
+
+    // Constructors
+
+    static ["new"](): UnixCredentialsMessage;
+    static new_with_credentials(credentials: Credentials): UnixCredentialsMessage;
+
+    // Members
+
+    get_credentials(): Credentials;
+    static is_supported(): boolean;
+}
+export module UnixFDList {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class UnixFDList extends GObject.Object {
+    static $gtype: GObject.GType<UnixFDList>;
+
+    constructor(properties?: Partial<UnixFDList.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixFDList.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: UnixFDListPrivate;
+
+    // Constructors
+
+    static ["new"](): UnixFDList;
+    static new_from_array(fds: number[]): UnixFDList;
+
+    // Members
+
+    append(fd: number): number;
+    get(index_: number): number;
+    get_length(): number;
+    peek_fds(): number[];
+    steal_fds(): number[];
+}
+export module UnixFDMessage {
+    export interface ConstructorProperties extends SocketControlMessage.ConstructorProperties {
+        [key: string]: any;
+        fd_list: UnixFDList;
+        fdList: UnixFDList;
+    }
+}
+export class UnixFDMessage extends SocketControlMessage {
+    static $gtype: GObject.GType<UnixFDMessage>;
+
+    constructor(properties?: Partial<UnixFDMessage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixFDMessage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get fd_list(): UnixFDList;
+    get fdList(): UnixFDList;
+
+    // Fields
+    priv: UnixFDMessagePrivate | any;
+
+    // Constructors
+
+    static ["new"](): UnixFDMessage;
+    static new_with_fd_list(fd_list: UnixFDList): UnixFDMessage;
+
+    // Members
+
+    append_fd(fd: number): boolean;
+    get_fd_list(): UnixFDList;
+    steal_fds(): number[];
+}
+export module UnixInputStream {
+    export interface ConstructorProperties extends InputStream.ConstructorProperties {
+        [key: string]: any;
+        close_fd: boolean;
+        closeFd: boolean;
+        fd: number;
+    }
+}
+export class UnixInputStream extends InputStream implements FileDescriptorBased, PollableInputStream {
+    static $gtype: GObject.GType<UnixInputStream>;
+
+    constructor(properties?: Partial<UnixInputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixInputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get close_fd(): boolean;
+    set close_fd(val: boolean);
+    get closeFd(): boolean;
+    set closeFd(val: boolean);
+    get fd(): number;
+
+    // Constructors
+
+    static ["new"](fd: number, close_fd: boolean): UnixInputStream;
+
+    // Members
+
+    get_close_fd(): boolean;
+    get_fd(): number;
+    set_close_fd(close_fd: boolean): void;
+
+    // Implemented Members
+
+    vfunc_get_fd(): number;
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_readable(): boolean;
+    read_nonblocking(cancellable?: Cancellable | null): [number, Uint8Array];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_readable(): boolean;
+    vfunc_read_nonblocking(): [number, Uint8Array | null];
+}
+export module UnixMountMonitor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class UnixMountMonitor extends GObject.Object {
+    static $gtype: GObject.GType<UnixMountMonitor>;
+
+    constructor(properties?: Partial<UnixMountMonitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixMountMonitor.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "mountpoints-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "mountpoints-changed", callback: (_source: this) => void): number;
+    emit(signal: "mountpoints-changed"): void;
+    connect(signal: "mounts-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "mounts-changed", callback: (_source: this) => void): number;
+    emit(signal: "mounts-changed"): void;
+
+    // Constructors
+
+    static ["new"](): UnixMountMonitor;
+
+    // Members
+
+    set_rate_limit(limit_msec: number): void;
+    static get(): UnixMountMonitor;
+}
+export module UnixOutputStream {
+    export interface ConstructorProperties extends OutputStream.ConstructorProperties {
+        [key: string]: any;
+        close_fd: boolean;
+        closeFd: boolean;
+        fd: number;
+    }
+}
+export class UnixOutputStream extends OutputStream implements FileDescriptorBased, PollableOutputStream {
+    static $gtype: GObject.GType<UnixOutputStream>;
+
+    constructor(properties?: Partial<UnixOutputStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixOutputStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get close_fd(): boolean;
+    set close_fd(val: boolean);
+    get closeFd(): boolean;
+    set closeFd(val: boolean);
+    get fd(): number;
+
+    // Constructors
+
+    static ["new"](fd: number, close_fd: boolean): UnixOutputStream;
+
+    // Members
+
+    get_close_fd(): boolean;
+    get_fd(): number;
+    set_close_fd(close_fd: boolean): void;
+
+    // Implemented Members
+
+    vfunc_get_fd(): number;
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_writable(): boolean;
+    write_nonblocking(buffer: Uint8Array | string, cancellable?: Cancellable | null): number;
+    writev_nonblocking(vectors: OutputVector[], cancellable?: Cancellable | null): [PollableReturn, number];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_writable(): boolean;
+    vfunc_write_nonblocking(buffer?: Uint8Array | null): number;
+    vfunc_writev_nonblocking(vectors: OutputVector[]): [PollableReturn, number];
+}
+export module UnixSocketAddress {
+    export interface ConstructorProperties extends SocketAddress.ConstructorProperties {
+        [key: string]: any;
+        abstract: boolean;
+        address_type: UnixSocketAddressType;
+        addressType: UnixSocketAddressType;
+        path: string;
+        path_as_array: Uint8Array;
+        pathAsArray: Uint8Array;
+    }
+}
+export class UnixSocketAddress extends SocketAddress implements SocketConnectable {
+    static $gtype: GObject.GType<UnixSocketAddress>;
+
+    constructor(properties?: Partial<UnixSocketAddress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<UnixSocketAddress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get abstract(): boolean;
+    get address_type(): UnixSocketAddressType;
+    get addressType(): UnixSocketAddressType;
+    get path(): string;
+    get path_as_array(): Uint8Array;
+    get pathAsArray(): Uint8Array;
+
+    // Constructors
+
+    static ["new"](path: string): UnixSocketAddress;
+    static new_abstract(path: number[]): UnixSocketAddress;
+    static new_with_type(path: number[], type: UnixSocketAddressType): UnixSocketAddress;
+
+    // Members
+
+    get_address_type(): UnixSocketAddressType;
+    get_is_abstract(): boolean;
+    get_path(): string;
+    get_path_len(): number;
+    static abstract_names_supported(): boolean;
+
+    // Implemented Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+export module Vfs {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Vfs extends GObject.Object {
+    static $gtype: GObject.GType<Vfs>;
+
+    constructor(properties?: Partial<Vfs.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Vfs.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_file_for_path(path: string): File;
+    get_file_for_uri(uri: string): File;
+    get_supported_uri_schemes(): string[];
+    is_active(): boolean;
+    parse_name(parse_name: string): File;
+    register_uri_scheme(
+        scheme: string,
+        uri_func?: VfsFileLookupFunc | null,
+        uri_destroy?: GLib.DestroyNotify | null,
+        parse_name_func?: VfsFileLookupFunc | null,
+        parse_name_destroy?: GLib.DestroyNotify | null
+    ): boolean;
+    unregister_uri_scheme(scheme: string): boolean;
+    vfunc_add_writable_namespaces(list: FileAttributeInfoList): void;
+    vfunc_get_file_for_path(path: string): File;
+    vfunc_get_file_for_uri(uri: string): File;
+    vfunc_get_supported_uri_schemes(): string[];
+    vfunc_is_active(): boolean;
+    vfunc_local_file_add_info(
+        filename: string,
+        device: number,
+        attribute_matcher: FileAttributeMatcher,
+        info: FileInfo,
+        cancellable?: Cancellable | null,
+        extra_data?: any | null
+    ): void;
+    vfunc_local_file_moved(source: string, dest: string): void;
+    vfunc_local_file_removed(filename: string): void;
+    vfunc_local_file_set_attributes(
+        filename: string,
+        info: FileInfo,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    vfunc_parse_name(parse_name: string): File;
+    static get_default(): Vfs;
+    static get_local(): Vfs;
+}
+export module VolumeMonitor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class VolumeMonitor extends GObject.Object {
+    static $gtype: GObject.GType<VolumeMonitor>;
+
+    constructor(properties?: Partial<VolumeMonitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<VolumeMonitor.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "drive-changed", callback: (_source: this, drive: Drive) => void): number;
+    connect_after(signal: "drive-changed", callback: (_source: this, drive: Drive) => void): number;
+    emit(signal: "drive-changed", drive: Drive): void;
+    connect(signal: "drive-connected", callback: (_source: this, drive: Drive) => void): number;
+    connect_after(signal: "drive-connected", callback: (_source: this, drive: Drive) => void): number;
+    emit(signal: "drive-connected", drive: Drive): void;
+    connect(signal: "drive-disconnected", callback: (_source: this, drive: Drive) => void): number;
+    connect_after(signal: "drive-disconnected", callback: (_source: this, drive: Drive) => void): number;
+    emit(signal: "drive-disconnected", drive: Drive): void;
+    connect(signal: "drive-eject-button", callback: (_source: this, drive: Drive) => void): number;
+    connect_after(signal: "drive-eject-button", callback: (_source: this, drive: Drive) => void): number;
+    emit(signal: "drive-eject-button", drive: Drive): void;
+    connect(signal: "drive-stop-button", callback: (_source: this, drive: Drive) => void): number;
+    connect_after(signal: "drive-stop-button", callback: (_source: this, drive: Drive) => void): number;
+    emit(signal: "drive-stop-button", drive: Drive): void;
+    connect(signal: "mount-added", callback: (_source: this, mount: Mount) => void): number;
+    connect_after(signal: "mount-added", callback: (_source: this, mount: Mount) => void): number;
+    emit(signal: "mount-added", mount: Mount): void;
+    connect(signal: "mount-changed", callback: (_source: this, mount: Mount) => void): number;
+    connect_after(signal: "mount-changed", callback: (_source: this, mount: Mount) => void): number;
+    emit(signal: "mount-changed", mount: Mount): void;
+    connect(signal: "mount-pre-unmount", callback: (_source: this, mount: Mount) => void): number;
+    connect_after(signal: "mount-pre-unmount", callback: (_source: this, mount: Mount) => void): number;
+    emit(signal: "mount-pre-unmount", mount: Mount): void;
+    connect(signal: "mount-removed", callback: (_source: this, mount: Mount) => void): number;
+    connect_after(signal: "mount-removed", callback: (_source: this, mount: Mount) => void): number;
+    emit(signal: "mount-removed", mount: Mount): void;
+    connect(signal: "volume-added", callback: (_source: this, volume: Volume) => void): number;
+    connect_after(signal: "volume-added", callback: (_source: this, volume: Volume) => void): number;
+    emit(signal: "volume-added", volume: Volume): void;
+    connect(signal: "volume-changed", callback: (_source: this, volume: Volume) => void): number;
+    connect_after(signal: "volume-changed", callback: (_source: this, volume: Volume) => void): number;
+    emit(signal: "volume-changed", volume: Volume): void;
+    connect(signal: "volume-removed", callback: (_source: this, volume: Volume) => void): number;
+    connect_after(signal: "volume-removed", callback: (_source: this, volume: Volume) => void): number;
+    emit(signal: "volume-removed", volume: Volume): void;
+
+    // Members
+
+    get_connected_drives(): Drive[];
+    get_mount_for_uuid(uuid: string): Mount | null;
+    get_mounts(): Mount[];
+    get_volume_for_uuid(uuid: string): Volume | null;
+    get_volumes(): Volume[];
+    vfunc_drive_changed(drive: Drive): void;
+    vfunc_drive_connected(drive: Drive): void;
+    vfunc_drive_disconnected(drive: Drive): void;
+    vfunc_drive_eject_button(drive: Drive): void;
+    vfunc_drive_stop_button(drive: Drive): void;
+    vfunc_get_connected_drives(): Drive[];
+    vfunc_get_mount_for_uuid(uuid: string): Mount | null;
+    vfunc_get_mounts(): Mount[];
+    vfunc_get_volume_for_uuid(uuid: string): Volume | null;
+    vfunc_get_volumes(): Volume[];
+    vfunc_mount_added(mount: Mount): void;
+    vfunc_mount_changed(mount: Mount): void;
+    vfunc_mount_pre_unmount(mount: Mount): void;
+    vfunc_mount_removed(mount: Mount): void;
+    vfunc_volume_added(volume: Volume): void;
+    vfunc_volume_changed(volume: Volume): void;
+    vfunc_volume_removed(volume: Volume): void;
+    static adopt_orphan_mount(mount: Mount): Volume;
+    static get(): VolumeMonitor;
+}
+export module ZlibCompressor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        file_info: FileInfo;
+        fileInfo: FileInfo;
+        format: ZlibCompressorFormat;
+        level: number;
+    }
+}
+export class ZlibCompressor extends GObject.Object implements Converter {
+    static $gtype: GObject.GType<ZlibCompressor>;
+
+    constructor(properties?: Partial<ZlibCompressor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ZlibCompressor.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get file_info(): FileInfo;
+    set file_info(val: FileInfo);
+    get fileInfo(): FileInfo;
+    set fileInfo(val: FileInfo);
+    get format(): ZlibCompressorFormat;
+    get level(): number;
+
+    // Constructors
+
+    static ["new"](format: ZlibCompressorFormat, level: number): ZlibCompressor;
+
+    // Members
+
+    get_file_info(): FileInfo | null;
+    set_file_info(file_info?: FileInfo | null): void;
+
+    // Implemented Members
+
+    convert(
+        inbuf: Uint8Array | string,
+        outbuf: Uint8Array | string,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    reset(): void;
+    vfunc_convert(
+        inbuf: Uint8Array | null,
+        outbuf: Uint8Array | null,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    vfunc_reset(): void;
+}
+export module ZlibDecompressor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        file_info: FileInfo;
+        fileInfo: FileInfo;
+        format: ZlibCompressorFormat;
+    }
+}
+export class ZlibDecompressor extends GObject.Object implements Converter {
+    static $gtype: GObject.GType<ZlibDecompressor>;
+
+    constructor(properties?: Partial<ZlibDecompressor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ZlibDecompressor.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get file_info(): FileInfo;
+    get fileInfo(): FileInfo;
+    get format(): ZlibCompressorFormat;
+
+    // Constructors
+
+    static ["new"](format: ZlibCompressorFormat): ZlibDecompressor;
+
+    // Members
+
+    get_file_info(): FileInfo | null;
+
+    // Implemented Members
+
+    convert(
+        inbuf: Uint8Array | string,
+        outbuf: Uint8Array | string,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    reset(): void;
+    vfunc_convert(
+        inbuf: Uint8Array | null,
+        outbuf: Uint8Array | null,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    vfunc_reset(): void;
+}
+
+export class ActionEntry {
+    static $gtype: GObject.GType<ActionEntry>;
+
+    constructor(
+        properties?: Partial<{
+            name?: string;
+            parameter_type?: string;
+            state?: string;
+        }>
+    );
+    constructor(copy: ActionEntry);
+
+    // Fields
+    name: string;
+    parameter_type: string;
+    state: string;
+}
+
+export class AppLaunchContextPrivate {
+    static $gtype: GObject.GType<AppLaunchContextPrivate>;
+
+    constructor(copy: AppLaunchContextPrivate);
+}
+
+export class ApplicationCommandLinePrivate {
+    static $gtype: GObject.GType<ApplicationCommandLinePrivate>;
+
+    constructor(copy: ApplicationCommandLinePrivate);
+}
+
+export class ApplicationPrivate {
+    static $gtype: GObject.GType<ApplicationPrivate>;
+
+    constructor(copy: ApplicationPrivate);
+}
+
+export class BufferedInputStreamPrivate {
+    static $gtype: GObject.GType<BufferedInputStreamPrivate>;
+
+    constructor(copy: BufferedInputStreamPrivate);
+}
+
+export class BufferedOutputStreamPrivate {
+    static $gtype: GObject.GType<BufferedOutputStreamPrivate>;
+
+    constructor(copy: BufferedOutputStreamPrivate);
+}
+
+export class CancellablePrivate {
+    static $gtype: GObject.GType<CancellablePrivate>;
+
+    constructor(copy: CancellablePrivate);
+}
+
+export class ConverterInputStreamPrivate {
+    static $gtype: GObject.GType<ConverterInputStreamPrivate>;
+
+    constructor(copy: ConverterInputStreamPrivate);
+}
+
+export class ConverterOutputStreamPrivate {
+    static $gtype: GObject.GType<ConverterOutputStreamPrivate>;
+
+    constructor(copy: ConverterOutputStreamPrivate);
+}
+
+export class DBusAnnotationInfo {
+    static $gtype: GObject.GType<DBusAnnotationInfo>;
+
+    constructor(copy: DBusAnnotationInfo);
+
+    // Fields
+    ref_count: number;
+    key: string;
+    value: string;
+    annotations: DBusAnnotationInfo[];
+
+    // Members
+    ref(): DBusAnnotationInfo;
+    unref(): void;
+    static lookup(annotations: DBusAnnotationInfo[] | null, name: string): string | null;
+}
+
+export class DBusArgInfo {
+    static $gtype: GObject.GType<DBusArgInfo>;
+
+    constructor(copy: DBusArgInfo);
+
+    // Fields
+    ref_count: number;
+    name: string;
+    signature: string;
+    annotations: DBusAnnotationInfo[];
+
+    // Members
+    ref(): DBusArgInfo;
+    unref(): void;
+}
+
+export class DBusErrorEntry {
+    static $gtype: GObject.GType<DBusErrorEntry>;
+
+    constructor(
+        properties?: Partial<{
+            error_code?: number;
+            dbus_error_name?: string;
+        }>
+    );
+    constructor(copy: DBusErrorEntry);
+
+    // Fields
+    error_code: number;
+    dbus_error_name: string;
+}
+
+export class DBusInterfaceInfo {
+    static $gtype: GObject.GType<DBusInterfaceInfo>;
+
+    constructor(copy: DBusInterfaceInfo);
+
+    // Fields
+    ref_count: number;
+    name: string;
+    methods: DBusMethodInfo[];
+    signals: DBusSignalInfo[];
+    properties: DBusPropertyInfo[];
+    annotations: DBusAnnotationInfo[];
+
+    // Constructors
+    static new_for_xml(info: string): DBusInterfaceInfo;
+
+    // Members
+    cache_build(): void;
+    cache_release(): void;
+    generate_xml(indent: number, string_builder: GLib.String): void;
+    lookup_method(name: string): DBusMethodInfo | null;
+    lookup_property(name: string): DBusPropertyInfo | null;
+    lookup_signal(name: string): DBusSignalInfo | null;
+    ref(): DBusInterfaceInfo;
+    unref(): void;
+}
+
+export class DBusInterfaceSkeletonPrivate {
+    static $gtype: GObject.GType<DBusInterfaceSkeletonPrivate>;
+
+    constructor(copy: DBusInterfaceSkeletonPrivate);
+}
+
+export class DBusInterfaceVTable {
+    static $gtype: GObject.GType<DBusInterfaceVTable>;
+
+    constructor(copy: DBusInterfaceVTable);
+
+    // Fields
+    method_call: DBusInterfaceMethodCallFunc;
+    get_property: DBusInterfaceGetPropertyFunc;
+    set_property: DBusInterfaceSetPropertyFunc;
+}
+
+export class DBusMethodInfo {
+    static $gtype: GObject.GType<DBusMethodInfo>;
+
+    constructor(copy: DBusMethodInfo);
+
+    // Fields
+    ref_count: number;
+    name: string;
+    in_args: DBusArgInfo[];
+    out_args: DBusArgInfo[];
+    annotations: DBusAnnotationInfo[];
+
+    // Members
+    ref(): DBusMethodInfo;
+    unref(): void;
+}
+
+export class DBusNodeInfo {
+    static $gtype: GObject.GType<DBusNodeInfo>;
+
+    constructor(xml_data: string);
+    constructor(copy: DBusNodeInfo);
+
+    // Fields
+    ref_count: number;
+    path: string;
+    interfaces: DBusInterfaceInfo[];
+    nodes: DBusNodeInfo[];
+    annotations: DBusAnnotationInfo[];
+
+    // Constructors
+    static new_for_xml(xml_data: string): DBusNodeInfo;
+    static new_for_xml(info: string): DBusNodeInfo;
+
+    // Members
+    generate_xml(indent: number, string_builder: GLib.String): void;
+    lookup_interface(name: string): DBusInterfaceInfo | null;
+    ref(): DBusNodeInfo;
+    unref(): void;
+}
+
+export class DBusObjectManagerClientPrivate {
+    static $gtype: GObject.GType<DBusObjectManagerClientPrivate>;
+
+    constructor(copy: DBusObjectManagerClientPrivate);
+}
+
+export class DBusObjectManagerServerPrivate {
+    static $gtype: GObject.GType<DBusObjectManagerServerPrivate>;
+
+    constructor(copy: DBusObjectManagerServerPrivate);
+}
+
+export class DBusObjectProxyPrivate {
+    static $gtype: GObject.GType<DBusObjectProxyPrivate>;
+
+    constructor(copy: DBusObjectProxyPrivate);
+}
+
+export class DBusObjectSkeletonPrivate {
+    static $gtype: GObject.GType<DBusObjectSkeletonPrivate>;
+
+    constructor(copy: DBusObjectSkeletonPrivate);
+}
+
+export class DBusPropertyInfo {
+    static $gtype: GObject.GType<DBusPropertyInfo>;
+
+    constructor(copy: DBusPropertyInfo);
+
+    // Fields
+    ref_count: number;
+    name: string;
+    signature: string;
+    flags: DBusPropertyInfoFlags;
+    annotations: DBusAnnotationInfo[];
+
+    // Members
+    ref(): DBusPropertyInfo;
+    unref(): void;
+}
+
+export class DBusProxyPrivate {
+    static $gtype: GObject.GType<DBusProxyPrivate>;
+
+    constructor(copy: DBusProxyPrivate);
+}
+
+export class DBusSignalInfo {
+    static $gtype: GObject.GType<DBusSignalInfo>;
+
+    constructor(copy: DBusSignalInfo);
+
+    // Fields
+    ref_count: number;
+    name: string;
+    args: DBusArgInfo[];
+    annotations: DBusAnnotationInfo[];
+
+    // Members
+    ref(): DBusSignalInfo;
+    unref(): void;
+}
+
+export class DBusSubtreeVTable {
+    static $gtype: GObject.GType<DBusSubtreeVTable>;
+
+    constructor(copy: DBusSubtreeVTable);
+
+    // Fields
+    enumerate: DBusSubtreeEnumerateFunc;
+    introspect: DBusSubtreeIntrospectFunc;
+    dispatch: DBusSubtreeDispatchFunc;
+}
+
+export class DataInputStreamPrivate {
+    static $gtype: GObject.GType<DataInputStreamPrivate>;
+
+    constructor(copy: DataInputStreamPrivate);
+}
+
+export class DataOutputStreamPrivate {
+    static $gtype: GObject.GType<DataOutputStreamPrivate>;
+
+    constructor(copy: DataOutputStreamPrivate);
+}
+
+export class EmblemedIconPrivate {
+    static $gtype: GObject.GType<EmblemedIconPrivate>;
+
+    constructor(copy: EmblemedIconPrivate);
+}
+
+export class FileAttributeInfo {
+    static $gtype: GObject.GType<FileAttributeInfo>;
+
+    constructor(copy: FileAttributeInfo);
+
+    // Fields
+    name: string;
+    type: FileAttributeType;
+    flags: FileAttributeInfoFlags;
+}
+
+export class FileAttributeInfoList {
+    static $gtype: GObject.GType<FileAttributeInfoList>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            infos?: FileAttributeInfo;
+            n_infos?: number;
+        }>
+    );
+    constructor(copy: FileAttributeInfoList);
+
+    // Fields
+    infos: FileAttributeInfo;
+    n_infos: number;
+
+    // Constructors
+    static ["new"](): FileAttributeInfoList;
+
+    // Members
+    add(name: string, type: FileAttributeType, flags: FileAttributeInfoFlags): void;
+    dup(): FileAttributeInfoList;
+    lookup(name: string): FileAttributeInfo;
+    ref(): FileAttributeInfoList;
+    unref(): void;
+}
+
+export class FileAttributeMatcher {
+    static $gtype: GObject.GType<FileAttributeMatcher>;
+
+    constructor(attributes: string);
+    constructor(copy: FileAttributeMatcher);
+
+    // Constructors
+    static ["new"](attributes: string): FileAttributeMatcher;
+
+    // Members
+    enumerate_namespace(ns: string): boolean;
+    enumerate_next(): string | null;
+    matches(attribute: string): boolean;
+    matches_only(attribute: string): boolean;
+    ref(): FileAttributeMatcher;
+    subtract(subtract?: FileAttributeMatcher | null): FileAttributeMatcher | null;
+    to_string(): string;
+    unref(): void;
+}
+
+export class FileEnumeratorPrivate {
+    static $gtype: GObject.GType<FileEnumeratorPrivate>;
+
+    constructor(copy: FileEnumeratorPrivate);
+}
+
+export class FileIOStreamPrivate {
+    static $gtype: GObject.GType<FileIOStreamPrivate>;
+
+    constructor(copy: FileIOStreamPrivate);
+}
+
+export class FileInputStreamPrivate {
+    static $gtype: GObject.GType<FileInputStreamPrivate>;
+
+    constructor(copy: FileInputStreamPrivate);
+}
+
+export class FileMonitorPrivate {
+    static $gtype: GObject.GType<FileMonitorPrivate>;
+
+    constructor(copy: FileMonitorPrivate);
+}
+
+export class FileOutputStreamPrivate {
+    static $gtype: GObject.GType<FileOutputStreamPrivate>;
+
+    constructor(copy: FileOutputStreamPrivate);
+}
+
+export class IOExtension {
+    static $gtype: GObject.GType<IOExtension>;
+
+    constructor(copy: IOExtension);
+
+    // Members
+    get_name(): string;
+    get_priority(): number;
+    get_type(): GObject.GType;
+}
+
+export class IOExtensionPoint {
+    static $gtype: GObject.GType<IOExtensionPoint>;
+
+    constructor(copy: IOExtensionPoint);
+
+    // Members
+    get_extension_by_name(name: string): IOExtension;
+    get_extensions(): IOExtension[];
+    get_required_type(): GObject.GType;
+    set_required_type(type: GObject.GType): void;
+    static implement(
+        extension_point_name: string,
+        type: GObject.GType,
+        extension_name: string,
+        priority: number
+    ): IOExtension;
+    static lookup(name: string): IOExtensionPoint;
+    static register(name: string): IOExtensionPoint;
+}
+
+export class IOModuleScope {
+    static $gtype: GObject.GType<IOModuleScope>;
+
+    constructor(copy: IOModuleScope);
+
+    // Members
+    block(basename: string): void;
+    free(): void;
+}
+
+export class IOSchedulerJob {
+    static $gtype: GObject.GType<IOSchedulerJob>;
+
+    constructor(copy: IOSchedulerJob);
+
+    // Members
+    send_to_mainloop(func: GLib.SourceFunc, notify?: GLib.DestroyNotify | null): boolean;
+    send_to_mainloop_async(func: GLib.SourceFunc, notify?: GLib.DestroyNotify | null): void;
+}
+
+export class IOStreamAdapter {
+    static $gtype: GObject.GType<IOStreamAdapter>;
+
+    constructor(copy: IOStreamAdapter);
+}
+
+export class IOStreamPrivate {
+    static $gtype: GObject.GType<IOStreamPrivate>;
+
+    constructor(copy: IOStreamPrivate);
+}
+
+export class InetAddressMaskPrivate {
+    static $gtype: GObject.GType<InetAddressMaskPrivate>;
+
+    constructor(copy: InetAddressMaskPrivate);
+}
+
+export class InetAddressPrivate {
+    static $gtype: GObject.GType<InetAddressPrivate>;
+
+    constructor(copy: InetAddressPrivate);
+}
+
+export class InetSocketAddressPrivate {
+    static $gtype: GObject.GType<InetSocketAddressPrivate>;
+
+    constructor(copy: InetSocketAddressPrivate);
+}
+
+export class InputMessage {
+    static $gtype: GObject.GType<InputMessage>;
+
+    constructor(copy: InputMessage);
+
+    // Fields
+    address: SocketAddress;
+    vectors: InputVector[];
+    num_vectors: number;
+    bytes_received: number;
+    flags: number;
+    control_messages: SocketControlMessage[];
+    num_control_messages: number;
+}
+
+export class InputStreamPrivate {
+    static $gtype: GObject.GType<InputStreamPrivate>;
+
+    constructor(copy: InputStreamPrivate);
+}
+
+export class InputVector {
+    static $gtype: GObject.GType<InputVector>;
+
+    constructor(
+        properties?: Partial<{
+            buffer?: any;
+            size?: number;
+        }>
+    );
+    constructor(copy: InputVector);
+
+    // Fields
+    buffer: any;
+    size: number;
+}
+
+export class MemoryInputStreamPrivate {
+    static $gtype: GObject.GType<MemoryInputStreamPrivate>;
+
+    constructor(copy: MemoryInputStreamPrivate);
+}
+
+export class MemoryOutputStreamPrivate {
+    static $gtype: GObject.GType<MemoryOutputStreamPrivate>;
+
+    constructor(copy: MemoryOutputStreamPrivate);
+}
+
+export class MenuAttributeIterPrivate {
+    static $gtype: GObject.GType<MenuAttributeIterPrivate>;
+
+    constructor(copy: MenuAttributeIterPrivate);
+}
+
+export class MenuLinkIterPrivate {
+    static $gtype: GObject.GType<MenuLinkIterPrivate>;
+
+    constructor(copy: MenuLinkIterPrivate);
+}
+
+export class MenuModelPrivate {
+    static $gtype: GObject.GType<MenuModelPrivate>;
+
+    constructor(copy: MenuModelPrivate);
+}
+
+export class MountOperationPrivate {
+    static $gtype: GObject.GType<MountOperationPrivate>;
+
+    constructor(copy: MountOperationPrivate);
+}
+
+export class NativeSocketAddressPrivate {
+    static $gtype: GObject.GType<NativeSocketAddressPrivate>;
+
+    constructor(copy: NativeSocketAddressPrivate);
+}
+
+export class NetworkAddressPrivate {
+    static $gtype: GObject.GType<NetworkAddressPrivate>;
+
+    constructor(copy: NetworkAddressPrivate);
+}
+
+export class NetworkServicePrivate {
+    static $gtype: GObject.GType<NetworkServicePrivate>;
+
+    constructor(copy: NetworkServicePrivate);
+}
+
+export class OutputMessage {
+    static $gtype: GObject.GType<OutputMessage>;
+
+    constructor(copy: OutputMessage);
+
+    // Fields
+    address: SocketAddress;
+    vectors: OutputVector;
+    num_vectors: number;
+    bytes_sent: number;
+    control_messages: SocketControlMessage[];
+    num_control_messages: number;
+}
+
+export class OutputStreamPrivate {
+    static $gtype: GObject.GType<OutputStreamPrivate>;
+
+    constructor(copy: OutputStreamPrivate);
+}
+
+export class OutputVector {
+    static $gtype: GObject.GType<OutputVector>;
+
+    constructor(
+        properties?: Partial<{
+            buffer?: any;
+            size?: number;
+        }>
+    );
+    constructor(copy: OutputVector);
+
+    // Fields
+    buffer: any;
+    size: number;
+}
+
+export class PermissionPrivate {
+    static $gtype: GObject.GType<PermissionPrivate>;
+
+    constructor(copy: PermissionPrivate);
+}
+
+export class ProxyAddressEnumeratorPrivate {
+    static $gtype: GObject.GType<ProxyAddressEnumeratorPrivate>;
+
+    constructor(copy: ProxyAddressEnumeratorPrivate);
+}
+
+export class ProxyAddressPrivate {
+    static $gtype: GObject.GType<ProxyAddressPrivate>;
+
+    constructor(copy: ProxyAddressPrivate);
+}
+
+export class ResolverPrivate {
+    static $gtype: GObject.GType<ResolverPrivate>;
+
+    constructor(copy: ResolverPrivate);
+}
+
+export class Resource {
+    static $gtype: GObject.GType<Resource>;
+
+    constructor(data: GLib.Bytes | Uint8Array);
+    constructor(copy: Resource);
+
+    // Constructors
+    static new_from_data(data: GLib.Bytes | Uint8Array): Resource;
+
+    // Members
+    _register(): void;
+    _unregister(): void;
+    enumerate_children(path: string, lookup_flags: ResourceLookupFlags): string[];
+    get_info(path: string, lookup_flags: ResourceLookupFlags): [boolean, number, number];
+    lookup_data(path: string, lookup_flags: ResourceLookupFlags): GLib.Bytes;
+    open_stream(path: string, lookup_flags: ResourceLookupFlags): InputStream;
+    ref(): Resource;
+    unref(): void;
+    static load(filename: string): Resource;
+}
+
+export class SettingsBackendPrivate {
+    static $gtype: GObject.GType<SettingsBackendPrivate>;
+
+    constructor(copy: SettingsBackendPrivate);
+}
+
+export class SettingsPrivate {
+    static $gtype: GObject.GType<SettingsPrivate>;
+
+    constructor(copy: SettingsPrivate);
+}
+
+export class SettingsSchema {
+    static $gtype: GObject.GType<SettingsSchema>;
+
+    constructor(properties?: Partial<{}>);
+    constructor(copy: SettingsSchema);
+
+    // Fields
+    _realGetKey: typeof SettingsSchema.prototype.get_key;
+
+    // Members
+    get_id(): string;
+    get_key(name: string): SettingsSchemaKey;
+    get_path(): string | null;
+    has_key(name: string): boolean;
+    list_children(): string[];
+    list_keys(): string[];
+    ref(): SettingsSchema;
+    unref(): void;
+}
+
+export class SettingsSchemaKey {
+    static $gtype: GObject.GType<SettingsSchemaKey>;
+
+    constructor(copy: SettingsSchemaKey);
+
+    // Members
+    get_default_value(): GLib.Variant;
+    get_description(): string | null;
+    get_name(): string;
+    get_range(): GLib.Variant;
+    get_summary(): string | null;
+    get_value_type(): GLib.VariantType;
+    range_check(value: GLib.Variant): boolean;
+    ref(): SettingsSchemaKey;
+    unref(): void;
+}
+
+export class SettingsSchemaSource {
+    static $gtype: GObject.GType<SettingsSchemaSource>;
+
+    constructor(directory: string, parent: SettingsSchemaSource | null, trusted: boolean);
+    constructor(copy: SettingsSchemaSource);
+
+    // Constructors
+    static new_from_directory(
+        directory: string,
+        parent: SettingsSchemaSource | null,
+        trusted: boolean
+    ): SettingsSchemaSource;
+
+    // Members
+    list_schemas(recursive: boolean): [string[], string[]];
+    lookup(schema_id: string, recursive: boolean): SettingsSchema | null;
+    ref(): SettingsSchemaSource;
+    unref(): void;
+    static get_default(): SettingsSchemaSource | null;
+}
+
+export class SimpleActionGroupPrivate {
+    static $gtype: GObject.GType<SimpleActionGroupPrivate>;
+
+    constructor(copy: SimpleActionGroupPrivate);
+}
+
+export class SimpleProxyResolverPrivate {
+    static $gtype: GObject.GType<SimpleProxyResolverPrivate>;
+
+    constructor(copy: SimpleProxyResolverPrivate);
+}
+
+export class SocketClientPrivate {
+    static $gtype: GObject.GType<SocketClientPrivate>;
+
+    constructor(copy: SocketClientPrivate);
+}
+
+export class SocketConnectionPrivate {
+    static $gtype: GObject.GType<SocketConnectionPrivate>;
+
+    constructor(copy: SocketConnectionPrivate);
+}
+
+export class SocketControlMessagePrivate {
+    static $gtype: GObject.GType<SocketControlMessagePrivate>;
+
+    constructor(copy: SocketControlMessagePrivate);
+}
+
+export class SocketListenerPrivate {
+    static $gtype: GObject.GType<SocketListenerPrivate>;
+
+    constructor(copy: SocketListenerPrivate);
+}
+
+export class SocketPrivate {
+    static $gtype: GObject.GType<SocketPrivate>;
+
+    constructor(copy: SocketPrivate);
+}
+
+export class SocketServicePrivate {
+    static $gtype: GObject.GType<SocketServicePrivate>;
+
+    constructor(copy: SocketServicePrivate);
+}
+
+export class SrvTarget {
+    static $gtype: GObject.GType<SrvTarget>;
+
+    constructor(hostname: string, port: number, priority: number, weight: number);
+    constructor(copy: SrvTarget);
+
+    // Constructors
+    static ["new"](hostname: string, port: number, priority: number, weight: number): SrvTarget;
+
+    // Members
+    copy(): SrvTarget;
+    free(): void;
+    get_hostname(): string;
+    get_port(): number;
+    get_priority(): number;
+    get_weight(): number;
+}
+
+export class StaticResource {
+    static $gtype: GObject.GType<StaticResource>;
+
+    constructor(copy: StaticResource);
+
+    // Members
+    fini(): void;
+    get_resource(): Resource;
+    init(): void;
+}
+
+export class TcpConnectionPrivate {
+    static $gtype: GObject.GType<TcpConnectionPrivate>;
+
+    constructor(copy: TcpConnectionPrivate);
+}
+
+export class TcpWrapperConnectionPrivate {
+    static $gtype: GObject.GType<TcpWrapperConnectionPrivate>;
+
+    constructor(copy: TcpWrapperConnectionPrivate);
+}
+
+export class ThreadedSocketServicePrivate {
+    static $gtype: GObject.GType<ThreadedSocketServicePrivate>;
+
+    constructor(copy: ThreadedSocketServicePrivate);
+}
+
+export class TlsCertificatePrivate {
+    static $gtype: GObject.GType<TlsCertificatePrivate>;
+
+    constructor(copy: TlsCertificatePrivate);
+}
+
+export class TlsConnectionPrivate {
+    static $gtype: GObject.GType<TlsConnectionPrivate>;
+
+    constructor(copy: TlsConnectionPrivate);
+}
+
+export class TlsDatabasePrivate {
+    static $gtype: GObject.GType<TlsDatabasePrivate>;
+
+    constructor(copy: TlsDatabasePrivate);
+}
+
+export class TlsInteractionPrivate {
+    static $gtype: GObject.GType<TlsInteractionPrivate>;
+
+    constructor(copy: TlsInteractionPrivate);
+}
+
+export class TlsPasswordPrivate {
+    static $gtype: GObject.GType<TlsPasswordPrivate>;
+
+    constructor(copy: TlsPasswordPrivate);
+}
+
+export class UnixConnectionPrivate {
+    static $gtype: GObject.GType<UnixConnectionPrivate>;
+
+    constructor(copy: UnixConnectionPrivate);
+}
+
+export class UnixCredentialsMessagePrivate {
+    static $gtype: GObject.GType<UnixCredentialsMessagePrivate>;
+
+    constructor(copy: UnixCredentialsMessagePrivate);
+}
+
+export class UnixFDListPrivate {
+    static $gtype: GObject.GType<UnixFDListPrivate>;
+
+    constructor(copy: UnixFDListPrivate);
+}
+
+export class UnixFDMessagePrivate {
+    static $gtype: GObject.GType<UnixFDMessagePrivate>;
+
+    constructor(copy: UnixFDMessagePrivate);
+}
+
+export class UnixInputStreamPrivate {
+    static $gtype: GObject.GType<UnixInputStreamPrivate>;
+
+    constructor(copy: UnixInputStreamPrivate);
+}
+
+export class UnixMountEntry {
+    static $gtype: GObject.GType<UnixMountEntry>;
+
+    constructor(copy: UnixMountEntry);
+}
+
+export class UnixMountPoint {
+    static $gtype: GObject.GType<UnixMountPoint>;
+
+    constructor(copy: UnixMountPoint);
+
+    // Members
+    compare(mount2: UnixMountPoint): number;
+    copy(): UnixMountPoint;
+    free(): void;
+    get_device_path(): string;
+    get_fs_type(): string;
+    get_mount_path(): string;
+    get_options(): string | null;
+    guess_can_eject(): boolean;
+    guess_icon(): Icon;
+    guess_name(): string;
+    guess_symbolic_icon(): Icon;
+    is_loopback(): boolean;
+    is_readonly(): boolean;
+    is_user_mountable(): boolean;
+    static at(mount_path: string): [UnixMountPoint | null, number];
+}
+
+export class UnixOutputStreamPrivate {
+    static $gtype: GObject.GType<UnixOutputStreamPrivate>;
+
+    constructor(copy: UnixOutputStreamPrivate);
+}
+
+export class UnixSocketAddressPrivate {
+    static $gtype: GObject.GType<UnixSocketAddressPrivate>;
+
+    constructor(copy: UnixSocketAddressPrivate);
+}
+
+export interface ActionNamespace {
+    $gtype: GObject.GType<Action>;
+    prototype: ActionPrototype;
+
+    name_is_valid(action_name: string): boolean;
+    parse_detailed_name(detailed_name: string): [boolean, string, GLib.Variant];
+    print_detailed_name(action_name: string, target_value?: GLib.Variant | null): string;
+}
+export type Action = ActionPrototype;
+export interface ActionPrototype extends GObject.Object {
+    // Properties
+    readonly enabled: boolean;
+    readonly name: string;
+    readonly parameter_type: GLib.VariantType;
+    readonly parameterType: GLib.VariantType;
+    readonly state: GLib.Variant;
+    readonly state_type: GLib.VariantType;
+    readonly stateType: GLib.VariantType;
+
+    // Members
+
+    activate(parameter?: GLib.Variant | null): void;
+    change_state(value: GLib.Variant): void;
+    get_enabled(): boolean;
+    get_name(): string;
+    get_parameter_type(): GLib.VariantType | null;
+    get_state(): GLib.Variant | null;
+    get_state_hint(): GLib.Variant | null;
+    get_state_type(): GLib.VariantType | null;
+    vfunc_activate(parameter?: GLib.Variant | null): void;
+    vfunc_change_state(value: GLib.Variant): void;
+    vfunc_get_enabled(): boolean;
+    vfunc_get_name(): string;
+    vfunc_get_parameter_type(): GLib.VariantType | null;
+    vfunc_get_state(): GLib.Variant | null;
+    vfunc_get_state_hint(): GLib.Variant | null;
+    vfunc_get_state_type(): GLib.VariantType | null;
+}
+
+export const Action: ActionNamespace;
+
+export interface ActionGroupNamespace {
+    $gtype: GObject.GType<ActionGroup>;
+    prototype: ActionGroupPrototype;
+}
+export type ActionGroup = ActionGroupPrototype;
+export interface ActionGroupPrototype extends GObject.Object {
+    // Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+}
+
+export const ActionGroup: ActionGroupNamespace;
+
+export interface ActionMapNamespace {
+    $gtype: GObject.GType<ActionMap>;
+    prototype: ActionMapPrototype;
+}
+export type ActionMap = ActionMapPrototype;
+export interface ActionMapPrototype extends GObject.Object {
+    // Members
+
+    add_action(action: Action): void;
+    add_action_entries(entries: ActionEntry[], user_data?: any | null): void;
+    lookup_action(action_name: string): Action | null;
+    remove_action(action_name: string): void;
+    vfunc_add_action(action: Action): void;
+    vfunc_lookup_action(action_name: string): Action | null;
+    vfunc_remove_action(action_name: string): void;
+}
+
+export const ActionMap: ActionMapNamespace;
+
+export interface AppInfoNamespace {
+    $gtype: GObject.GType<AppInfo>;
+    prototype: AppInfoPrototype;
+
+    create_from_commandline(commandline: string, application_name: string | null, flags: 
AppInfoCreateFlags): AppInfo;
+    get_all(): AppInfo[];
+    get_all_for_type(content_type: string): AppInfo[];
+    get_default_for_type(content_type: string, must_support_uris: boolean): AppInfo | null;
+    get_default_for_uri_scheme(uri_scheme: string): AppInfo | null;
+    get_fallback_for_type(content_type: string): AppInfo[];
+    get_recommended_for_type(content_type: string): AppInfo[];
+    launch_default_for_uri(uri: string, context?: AppLaunchContext | null): boolean;
+    launch_default_for_uri_async(
+        uri: string,
+        context?: AppLaunchContext | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<AppInfo> | null
+    ): void;
+    launch_default_for_uri_finish(result: AsyncResult): boolean;
+    reset_type_associations(content_type: string): void;
+}
+export type AppInfo = AppInfoPrototype;
+export interface AppInfoPrototype extends GObject.Object {
+    // Members
+
+    add_supports_type(content_type: string): boolean;
+    can_delete(): boolean;
+    can_remove_supports_type(): boolean;
+    ["delete"](): boolean;
+    dup(): AppInfo;
+    equal(appinfo2: AppInfo): boolean;
+    get_commandline(): string | null;
+    get_description(): string | null;
+    get_display_name(): string;
+    get_executable(): string;
+    get_icon(): Icon | null;
+    get_id(): string | null;
+    get_name(): string;
+    get_supported_types(): string[];
+    launch(files?: File[] | null, context?: AppLaunchContext | null): boolean;
+    launch_uris(uris?: string[] | null, context?: AppLaunchContext | null): boolean;
+    launch_uris_async(
+        uris?: string[] | null,
+        context?: AppLaunchContext | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    launch_uris_finish(result: AsyncResult): boolean;
+    remove_supports_type(content_type: string): boolean;
+    set_as_default_for_extension(extension: string): boolean;
+    set_as_default_for_type(content_type: string): boolean;
+    set_as_last_used_for_type(content_type: string): boolean;
+    should_show(): boolean;
+    supports_files(): boolean;
+    supports_uris(): boolean;
+    vfunc_add_supports_type(content_type: string): boolean;
+    vfunc_can_delete(): boolean;
+    vfunc_can_remove_supports_type(): boolean;
+    vfunc_do_delete(): boolean;
+    vfunc_dup(): AppInfo;
+    vfunc_equal(appinfo2: AppInfo): boolean;
+    vfunc_get_commandline(): string | null;
+    vfunc_get_description(): string | null;
+    vfunc_get_display_name(): string;
+    vfunc_get_executable(): string;
+    vfunc_get_icon(): Icon | null;
+    vfunc_get_id(): string | null;
+    vfunc_get_name(): string;
+    vfunc_get_supported_types(): string[];
+    vfunc_launch(files?: File[] | null, context?: AppLaunchContext | null): boolean;
+    vfunc_launch_uris(uris?: string[] | null, context?: AppLaunchContext | null): boolean;
+    vfunc_launch_uris_async(
+        uris?: string[] | null,
+        context?: AppLaunchContext | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_launch_uris_finish(result: AsyncResult): boolean;
+    vfunc_remove_supports_type(content_type: string): boolean;
+    vfunc_set_as_default_for_extension(extension: string): boolean;
+    vfunc_set_as_default_for_type(content_type: string): boolean;
+    vfunc_set_as_last_used_for_type(content_type: string): boolean;
+    vfunc_should_show(): boolean;
+    vfunc_supports_files(): boolean;
+    vfunc_supports_uris(): boolean;
+}
+
+export const AppInfo: AppInfoNamespace;
+
+export interface AsyncInitableNamespace {
+    $gtype: GObject.GType<AsyncInitable>;
+    prototype: AsyncInitablePrototype;
+
+    newv_async(
+        object_type: GObject.GType,
+        n_parameters: number,
+        parameters: GObject.Parameter,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<AsyncInitable> | null
+    ): void;
+}
+export type AsyncInitable<A extends GObject.Object = GObject.Object> = AsyncInitablePrototype<A>;
+export interface AsyncInitablePrototype<A extends GObject.Object = GObject.Object> extends GObject.Object {
+    // Members
+
+    init_async(io_priority: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    init_finish(res: AsyncResult): boolean;
+    new_finish(res: AsyncResult): A;
+    vfunc_init_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_init_finish(res: AsyncResult): boolean;
+}
+
+export const AsyncInitable: AsyncInitableNamespace;
+
+export interface AsyncResultNamespace {
+    $gtype: GObject.GType<AsyncResult>;
+    prototype: AsyncResultPrototype;
+}
+export type AsyncResult = AsyncResultPrototype;
+export interface AsyncResultPrototype extends GObject.Object {
+    // Members
+
+    get_source_object<T = GObject.Object>(): T;
+    get_user_data(): any | null;
+    is_tagged(source_tag?: any | null): boolean;
+    legacy_propagate_error(): boolean;
+    vfunc_get_source_object<T = GObject.Object>(): T;
+    vfunc_get_user_data(): any | null;
+    vfunc_is_tagged(source_tag?: any | null): boolean;
+}
+
+export const AsyncResult: AsyncResultNamespace;
+
+export interface ConverterNamespace {
+    $gtype: GObject.GType<Converter>;
+    prototype: ConverterPrototype;
+}
+export type Converter = ConverterPrototype;
+export interface ConverterPrototype extends GObject.Object {
+    // Members
+
+    convert(
+        inbuf: Uint8Array | string,
+        outbuf: Uint8Array | string,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    reset(): void;
+    vfunc_convert(
+        inbuf: Uint8Array | null,
+        outbuf: Uint8Array | null,
+        flags: ConverterFlags
+    ): [ConverterResult, number, number];
+    vfunc_reset(): void;
+}
+
+export const Converter: ConverterNamespace;
+
+export interface DBusInterfaceNamespace {
+    $gtype: GObject.GType<DBusInterface>;
+    prototype: DBusInterfacePrototype;
+}
+export type DBusInterface = DBusInterfacePrototype;
+export interface DBusInterfacePrototype extends GObject.Object {
+    // Members
+
+    get_object(): DBusObject | null;
+    get_info(): DBusInterfaceInfo;
+    set_object(object?: DBusObject | null): void;
+    vfunc_dup_object(): DBusObject | null;
+    vfunc_get_info(): DBusInterfaceInfo;
+    vfunc_set_object(object?: DBusObject | null): void;
+}
+
+export const DBusInterface: DBusInterfaceNamespace;
+
+export interface DBusObjectNamespace {
+    $gtype: GObject.GType<DBusObject>;
+    prototype: DBusObjectPrototype;
+}
+export type DBusObject = DBusObjectPrototype;
+export interface DBusObjectPrototype extends GObject.Object {
+    // Members
+
+    get_interface(interface_name: string): DBusInterface | null;
+    get_interfaces(): DBusInterface[];
+    get_object_path(): string;
+    vfunc_get_interface(interface_name: string): DBusInterface | null;
+    vfunc_get_interfaces(): DBusInterface[];
+    vfunc_get_object_path(): string;
+    vfunc_interface_added(interface_: DBusInterface): void;
+    vfunc_interface_removed(interface_: DBusInterface): void;
+}
+
+export const DBusObject: DBusObjectNamespace;
+
+export interface DBusObjectManagerNamespace {
+    $gtype: GObject.GType<DBusObjectManager>;
+    prototype: DBusObjectManagerPrototype;
+}
+export type DBusObjectManager = DBusObjectManagerPrototype;
+export interface DBusObjectManagerPrototype extends GObject.Object {
+    // Members
+
+    get_interface(object_path: string, interface_name: string): DBusInterface | null;
+    get_object(object_path: string): DBusObject | null;
+    get_object_path(): string;
+    get_objects(): DBusObject[];
+    vfunc_get_interface(object_path: string, interface_name: string): DBusInterface | null;
+    vfunc_get_object(object_path: string): DBusObject | null;
+    vfunc_get_object_path(): string;
+    vfunc_get_objects(): DBusObject[];
+    vfunc_interface_added(object: DBusObject, interface_: DBusInterface): void;
+    vfunc_interface_removed(object: DBusObject, interface_: DBusInterface): void;
+    vfunc_object_added(object: DBusObject): void;
+    vfunc_object_removed(object: DBusObject): void;
+}
+
+export const DBusObjectManager: DBusObjectManagerNamespace;
+
+export interface DatagramBasedNamespace {
+    $gtype: GObject.GType<DatagramBased>;
+    prototype: DatagramBasedPrototype;
+}
+export type DatagramBased = DatagramBasedPrototype;
+export interface DatagramBasedPrototype extends GObject.Object {
+    // Members
+
+    condition_check(condition: GLib.IOCondition): GLib.IOCondition;
+    condition_wait(condition: GLib.IOCondition, timeout: number, cancellable?: Cancellable | null): boolean;
+    create_source(condition: GLib.IOCondition, cancellable?: Cancellable | null): GLib.Source;
+    receive_messages(
+        messages: InputMessage[],
+        flags: number,
+        timeout: number,
+        cancellable?: Cancellable | null
+    ): number;
+    send_messages(messages: OutputMessage[], flags: number, timeout: number, cancellable?: Cancellable | 
null): number;
+    vfunc_condition_check(condition: GLib.IOCondition): GLib.IOCondition;
+    vfunc_condition_wait(condition: GLib.IOCondition, timeout: number, cancellable?: Cancellable | null): 
boolean;
+    vfunc_create_source(condition: GLib.IOCondition, cancellable?: Cancellable | null): GLib.Source;
+    vfunc_receive_messages(
+        messages: InputMessage[],
+        flags: number,
+        timeout: number,
+        cancellable?: Cancellable | null
+    ): number;
+    vfunc_send_messages(
+        messages: OutputMessage[],
+        flags: number,
+        timeout: number,
+        cancellable?: Cancellable | null
+    ): number;
+}
+
+export const DatagramBased: DatagramBasedNamespace;
+
+export interface DebugControllerNamespace {
+    $gtype: GObject.GType<DebugController>;
+    prototype: DebugControllerPrototype;
+}
+export type DebugController = DebugControllerPrototype;
+export interface DebugControllerPrototype extends Initable {
+    // Properties
+    debug_enabled: boolean;
+    debugEnabled: boolean;
+
+    // Members
+
+    get_debug_enabled(): boolean;
+    set_debug_enabled(debug_enabled: boolean): void;
+}
+
+export const DebugController: DebugControllerNamespace;
+
+export interface DesktopAppInfoLookupNamespace {
+    $gtype: GObject.GType<DesktopAppInfoLookup>;
+    prototype: DesktopAppInfoLookupPrototype;
+}
+export type DesktopAppInfoLookup = DesktopAppInfoLookupPrototype;
+export interface DesktopAppInfoLookupPrototype extends GObject.Object {
+    // Members
+
+    get_default_for_uri_scheme(uri_scheme: string): AppInfo | null;
+    vfunc_get_default_for_uri_scheme(uri_scheme: string): AppInfo | null;
+}
+
+export const DesktopAppInfoLookup: DesktopAppInfoLookupNamespace;
+
+export interface DriveNamespace {
+    $gtype: GObject.GType<Drive>;
+    prototype: DrivePrototype;
+}
+export type Drive = DrivePrototype;
+export interface DrivePrototype extends GObject.Object {
+    // Members
+
+    can_eject(): boolean;
+    can_poll_for_media(): boolean;
+    can_start(): boolean;
+    can_start_degraded(): boolean;
+    can_stop(): boolean;
+    eject(flags: MountUnmountFlags, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    eject_finish(result: AsyncResult): boolean;
+    eject_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    eject_with_operation_finish(result: AsyncResult): boolean;
+    enumerate_identifiers(): string[];
+    get_icon(): Icon;
+    get_identifier(kind: string): string | null;
+    get_name(): string;
+    get_sort_key(): string | null;
+    get_start_stop_type(): DriveStartStopType;
+    get_symbolic_icon(): Icon;
+    get_volumes(): Volume[];
+    has_media(): boolean;
+    has_volumes(): boolean;
+    is_media_check_automatic(): boolean;
+    is_media_removable(): boolean;
+    is_removable(): boolean;
+    poll_for_media(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    poll_for_media_finish(result: AsyncResult): boolean;
+    start(
+        flags: DriveStartFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    start_finish(result: AsyncResult): boolean;
+    stop(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    stop_finish(result: AsyncResult): boolean;
+    vfunc_can_eject(): boolean;
+    vfunc_can_poll_for_media(): boolean;
+    vfunc_can_start(): boolean;
+    vfunc_can_start_degraded(): boolean;
+    vfunc_can_stop(): boolean;
+    vfunc_changed(): void;
+    vfunc_disconnected(): void;
+    vfunc_eject(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_button(): void;
+    vfunc_eject_finish(result: AsyncResult): boolean;
+    vfunc_eject_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_with_operation_finish(result: AsyncResult): boolean;
+    vfunc_enumerate_identifiers(): string[];
+    vfunc_get_icon(): Icon;
+    vfunc_get_identifier(kind: string): string | null;
+    vfunc_get_name(): string;
+    vfunc_get_sort_key(): string | null;
+    vfunc_get_start_stop_type(): DriveStartStopType;
+    vfunc_get_symbolic_icon(): Icon;
+    vfunc_get_volumes(): Volume[];
+    vfunc_has_media(): boolean;
+    vfunc_has_volumes(): boolean;
+    vfunc_is_media_check_automatic(): boolean;
+    vfunc_is_media_removable(): boolean;
+    vfunc_is_removable(): boolean;
+    vfunc_poll_for_media(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    vfunc_poll_for_media_finish(result: AsyncResult): boolean;
+    vfunc_start(
+        flags: DriveStartFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_start_finish(result: AsyncResult): boolean;
+    vfunc_stop(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_stop_button(): void;
+    vfunc_stop_finish(result: AsyncResult): boolean;
+}
+
+export const Drive: DriveNamespace;
+
+export interface DtlsClientConnectionNamespace {
+    $gtype: GObject.GType<DtlsClientConnection>;
+    prototype: DtlsClientConnectionPrototype;
+
+    ["new"](base_socket: DatagramBased, server_identity?: SocketConnectable | null): DtlsClientConnection;
+}
+export type DtlsClientConnection = DtlsClientConnectionPrototype;
+export interface DtlsClientConnectionPrototype extends DatagramBased {
+    // Properties
+    readonly accepted_cas: any[];
+    readonly acceptedCas: any[];
+    server_identity: SocketConnectable;
+    serverIdentity: SocketConnectable;
+    validation_flags: TlsCertificateFlags;
+    validationFlags: TlsCertificateFlags;
+
+    // Members
+
+    get_accepted_cas(): GLib.List;
+    get_server_identity(): SocketConnectable;
+    get_validation_flags(): TlsCertificateFlags;
+    set_server_identity(identity: SocketConnectable): void;
+    set_validation_flags(flags: TlsCertificateFlags): void;
+}
+
+export const DtlsClientConnection: DtlsClientConnectionNamespace;
+
+export interface DtlsConnectionNamespace {
+    $gtype: GObject.GType<DtlsConnection>;
+    prototype: DtlsConnectionPrototype;
+}
+export type DtlsConnection = DtlsConnectionPrototype;
+export interface DtlsConnectionPrototype extends DatagramBased {
+    // Properties
+    advertised_protocols: string[];
+    advertisedProtocols: string[];
+    readonly base_socket: DatagramBased;
+    readonly baseSocket: DatagramBased;
+    certificate: TlsCertificate;
+    readonly ciphersuite_name: string;
+    readonly ciphersuiteName: string;
+    database: TlsDatabase;
+    interaction: TlsInteraction;
+    readonly negotiated_protocol: string;
+    readonly negotiatedProtocol: string;
+    readonly peer_certificate: TlsCertificate;
+    readonly peerCertificate: TlsCertificate;
+    readonly peer_certificate_errors: TlsCertificateFlags;
+    readonly peerCertificateErrors: TlsCertificateFlags;
+    readonly protocol_version: TlsProtocolVersion;
+    readonly protocolVersion: TlsProtocolVersion;
+    rehandshake_mode: TlsRehandshakeMode;
+    rehandshakeMode: TlsRehandshakeMode;
+    require_close_notify: boolean;
+    requireCloseNotify: boolean;
+
+    // Members
+
+    close(cancellable?: Cancellable | null): boolean;
+    close_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    close_finish(result: AsyncResult): boolean;
+    emit_accept_certificate(peer_cert: TlsCertificate, errors: TlsCertificateFlags): boolean;
+    get_certificate(): TlsCertificate | null;
+    get_channel_binding_data(type: TlsChannelBindingType): [boolean, Uint8Array | null];
+    get_ciphersuite_name(): string | null;
+    get_database(): TlsDatabase | null;
+    get_interaction(): TlsInteraction | null;
+    get_negotiated_protocol(): string | null;
+    get_peer_certificate(): TlsCertificate | null;
+    get_peer_certificate_errors(): TlsCertificateFlags;
+    get_protocol_version(): TlsProtocolVersion;
+    get_rehandshake_mode(): TlsRehandshakeMode;
+    get_require_close_notify(): boolean;
+    handshake(cancellable?: Cancellable | null): boolean;
+    handshake_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    handshake_finish(result: AsyncResult): boolean;
+    set_advertised_protocols(protocols?: string[] | null): void;
+    set_certificate(certificate: TlsCertificate): void;
+    set_database(database?: TlsDatabase | null): void;
+    set_interaction(interaction?: TlsInteraction | null): void;
+    set_rehandshake_mode(mode: TlsRehandshakeMode): void;
+    set_require_close_notify(require_close_notify: boolean): void;
+    shutdown(shutdown_read: boolean, shutdown_write: boolean, cancellable?: Cancellable | null): boolean;
+    shutdown_async(
+        shutdown_read: boolean,
+        shutdown_write: boolean,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    shutdown_finish(result: AsyncResult): boolean;
+    vfunc_accept_certificate(peer_cert: TlsCertificate, errors: TlsCertificateFlags): boolean;
+    vfunc_get_binding_data(type: TlsChannelBindingType, data: Uint8Array | string): boolean;
+    vfunc_get_negotiated_protocol(): string | null;
+    vfunc_handshake(cancellable?: Cancellable | null): boolean;
+    vfunc_handshake_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_handshake_finish(result: AsyncResult): boolean;
+    vfunc_set_advertised_protocols(protocols?: string[] | null): void;
+    vfunc_shutdown(shutdown_read: boolean, shutdown_write: boolean, cancellable?: Cancellable | null): 
boolean;
+    vfunc_shutdown_async(
+        shutdown_read: boolean,
+        shutdown_write: boolean,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_shutdown_finish(result: AsyncResult): boolean;
+}
+
+export const DtlsConnection: DtlsConnectionNamespace;
+
+export interface DtlsServerConnectionNamespace {
+    $gtype: GObject.GType<DtlsServerConnection>;
+    prototype: DtlsServerConnectionPrototype;
+
+    ["new"](base_socket: DatagramBased, certificate?: TlsCertificate | null): DtlsServerConnection;
+}
+export type DtlsServerConnection = DtlsServerConnectionPrototype;
+export interface DtlsServerConnectionPrototype extends DatagramBased {
+    // Properties
+    authentication_mode: TlsAuthenticationMode;
+    authenticationMode: TlsAuthenticationMode;
+}
+
+export const DtlsServerConnection: DtlsServerConnectionNamespace;
+
+export interface FileNamespace {
+    $gtype: GObject.GType<File>;
+    prototype: FilePrototype;
+
+    new_for_commandline_arg(arg: string): File;
+    new_for_commandline_arg_and_cwd(arg: string, cwd: string): File;
+    new_for_path(path: string): File;
+    new_for_uri(uri: string): File;
+    new_tmp(tmpl: string | null): [File, FileIOStream];
+    parse_name(parse_name: string): File;
+}
+export type File = FilePrototype;
+export interface FilePrototype extends GObject.Object {
+    // Members
+
+    append_to(flags: FileCreateFlags, cancellable?: Cancellable | null): FileOutputStream;
+    append_to_async(
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    append_to_finish(res: AsyncResult): FileOutputStream;
+    build_attribute_list_for_copy(flags: FileCopyFlags, cancellable?: Cancellable | null): string;
+    copy(
+        destination: File,
+        flags: FileCopyFlags,
+        cancellable?: Cancellable | null,
+        progress_callback?: FileProgressCallback | null
+    ): boolean;
+    copy_async(destination: File, flags: FileCopyFlags, io_priority: number, cancellable?: Cancellable | 
null): void;
+    copy_attributes(destination: File, flags: FileCopyFlags, cancellable?: Cancellable | null): boolean;
+    copy_finish(res: AsyncResult): boolean;
+    create(flags: FileCreateFlags, cancellable?: Cancellable | null): FileOutputStream;
+    create_async(
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    create_finish(res: AsyncResult): FileOutputStream;
+    create_readwrite(flags: FileCreateFlags, cancellable?: Cancellable | null): FileIOStream;
+    create_readwrite_async(
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    create_readwrite_finish(res: AsyncResult): FileIOStream;
+    ["delete"](cancellable?: Cancellable | null): boolean;
+    delete_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    delete_finish(result: AsyncResult): boolean;
+    dup(): File;
+    eject_mountable(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    eject_mountable_finish(result: AsyncResult): boolean;
+    eject_mountable_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    eject_mountable_with_operation_finish(result: AsyncResult): boolean;
+    enumerate_children(attributes: string, flags: FileQueryInfoFlags, cancellable?: Cancellable | null): 
FileEnumerator;
+    enumerate_children_async(
+        attributes: string,
+        flags: FileQueryInfoFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    enumerate_children_finish(res: AsyncResult): FileEnumerator;
+    equal(file2: File): boolean;
+    find_enclosing_mount(cancellable?: Cancellable | null): Mount;
+    find_enclosing_mount_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    find_enclosing_mount_finish(res: AsyncResult): Mount;
+    get_basename(): string | null;
+    get_child(name: string): File;
+    get_child_for_display_name(display_name: string): File;
+    get_parent(): File | null;
+    get_parse_name(): string;
+    get_path(): string | null;
+    get_relative_path(descendant: File): string | null;
+    get_uri(): string;
+    get_uri_scheme(): string | null;
+    has_parent(parent?: File | null): boolean;
+    has_prefix(prefix: File): boolean;
+    has_uri_scheme(uri_scheme: string): boolean;
+    hash(): number;
+    is_native(): boolean;
+    load_bytes(cancellable: Cancellable | null): [GLib.Bytes, string];
+    load_bytes_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    load_bytes_finish(result: AsyncResult): [GLib.Bytes, string];
+    load_contents(cancellable: Cancellable | null): [boolean, Uint8Array, string];
+    load_contents_async(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    load_contents_finish(res: AsyncResult): [boolean, Uint8Array, string];
+    load_partial_contents_finish(res: AsyncResult): [boolean, Uint8Array, string];
+    make_directory(cancellable?: Cancellable | null): boolean;
+    make_directory_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    make_directory_finish(result: AsyncResult): boolean;
+    make_directory_with_parents(cancellable?: Cancellable | null): boolean;
+    make_symbolic_link(symlink_value: string, cancellable?: Cancellable | null): boolean;
+    measure_disk_usage_finish(result: AsyncResult): [boolean, number, number, number];
+    monitor(flags: FileMonitorFlags, cancellable?: Cancellable | null): FileMonitor;
+    monitor_directory(flags: FileMonitorFlags, cancellable?: Cancellable | null): FileMonitor;
+    monitor_file(flags: FileMonitorFlags, cancellable?: Cancellable | null): FileMonitor;
+    mount_enclosing_volume(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    mount_enclosing_volume_finish(result: AsyncResult): boolean;
+    mount_mountable(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    mount_mountable_finish(result: AsyncResult): File;
+    move(
+        destination: File,
+        flags: FileCopyFlags,
+        cancellable?: Cancellable | null,
+        progress_callback?: FileProgressCallback | null
+    ): boolean;
+    move_async(
+        destination: File,
+        flags: FileCopyFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        progress_callback?: FileProgressCallback | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    move_finish(result: AsyncResult): boolean;
+    open_readwrite(cancellable?: Cancellable | null): FileIOStream;
+    open_readwrite_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    open_readwrite_finish(res: AsyncResult): FileIOStream;
+    peek_path(): string | null;
+    poll_mountable(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    poll_mountable_finish(result: AsyncResult): boolean;
+    query_default_handler(cancellable?: Cancellable | null): AppInfo;
+    query_default_handler_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    query_default_handler_finish(result: AsyncResult): AppInfo;
+    query_exists(cancellable?: Cancellable | null): boolean;
+    query_file_type(flags: FileQueryInfoFlags, cancellable?: Cancellable | null): FileType;
+    query_filesystem_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    query_filesystem_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    query_filesystem_info_finish(res: AsyncResult): FileInfo;
+    query_info(attributes: string, flags: FileQueryInfoFlags, cancellable?: Cancellable | null): FileInfo;
+    query_info_async(
+        attributes: string,
+        flags: FileQueryInfoFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    query_info_finish(res: AsyncResult): FileInfo;
+    query_settable_attributes(cancellable?: Cancellable | null): FileAttributeInfoList;
+    query_writable_namespaces(cancellable?: Cancellable | null): FileAttributeInfoList;
+    read(cancellable?: Cancellable | null): FileInputStream;
+    read_async(io_priority: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    read_finish(res: AsyncResult): FileInputStream;
+    replace(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null
+    ): FileOutputStream;
+    replace_async(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    replace_contents(
+        contents: Uint8Array | string,
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null
+    ): [boolean, string];
+    replace_contents_async(
+        contents: Uint8Array | string,
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    replace_contents_bytes_async(
+        contents: GLib.Bytes | Uint8Array,
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    replace_contents_finish(res: AsyncResult): [boolean, string];
+    replace_finish(res: AsyncResult): FileOutputStream;
+    replace_readwrite(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null
+    ): FileIOStream;
+    replace_readwrite_async(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    replace_readwrite_finish(res: AsyncResult): FileIOStream;
+    resolve_relative_path(relative_path: string): File;
+    set_attribute(
+        attribute: string,
+        type: FileAttributeType,
+        value_p: any | null,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attribute_byte_string(
+        attribute: string,
+        value: string,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attribute_int32(
+        attribute: string,
+        value: number,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attribute_int64(
+        attribute: string,
+        value: number,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attribute_string(
+        attribute: string,
+        value: string,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attribute_uint32(
+        attribute: string,
+        value: number,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attribute_uint64(
+        attribute: string,
+        value: number,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    set_attributes_async(
+        info: FileInfo,
+        flags: FileQueryInfoFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    set_attributes_finish(result: AsyncResult): [boolean, FileInfo];
+    set_attributes_from_info(info: FileInfo, flags: FileQueryInfoFlags, cancellable?: Cancellable | null): 
boolean;
+    set_display_name(display_name: string, cancellable?: Cancellable | null): File;
+    set_display_name_async(
+        display_name: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    set_display_name_finish(res: AsyncResult): File;
+    start_mountable(
+        flags: DriveStartFlags,
+        start_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    start_mountable_finish(result: AsyncResult): boolean;
+    stop_mountable(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    stop_mountable_finish(result: AsyncResult): boolean;
+    supports_thread_contexts(): boolean;
+    trash(cancellable?: Cancellable | null): boolean;
+    trash_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    trash_finish(result: AsyncResult): boolean;
+    unmount_mountable(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    unmount_mountable_finish(result: AsyncResult): boolean;
+    unmount_mountable_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    unmount_mountable_with_operation_finish(result: AsyncResult): boolean;
+    vfunc_append_to(flags: FileCreateFlags, cancellable?: Cancellable | null): FileOutputStream;
+    vfunc_append_to_async(
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_append_to_finish(res: AsyncResult): FileOutputStream;
+    vfunc_copy(
+        destination: File,
+        flags: FileCopyFlags,
+        cancellable?: Cancellable | null,
+        progress_callback?: FileProgressCallback | null
+    ): boolean;
+    vfunc_copy_async(
+        destination: File,
+        flags: FileCopyFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null
+    ): void;
+    vfunc_copy_finish(res: AsyncResult): boolean;
+    vfunc_create(flags: FileCreateFlags, cancellable?: Cancellable | null): FileOutputStream;
+    vfunc_create_async(
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_create_finish(res: AsyncResult): FileOutputStream;
+    vfunc_create_readwrite(flags: FileCreateFlags, cancellable?: Cancellable | null): FileIOStream;
+    vfunc_create_readwrite_async(
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_create_readwrite_finish(res: AsyncResult): FileIOStream;
+    vfunc_delete_file(cancellable?: Cancellable | null): boolean;
+    vfunc_delete_file_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_delete_file_finish(result: AsyncResult): boolean;
+    vfunc_dup(): File;
+    vfunc_eject_mountable(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_mountable_finish(result: AsyncResult): boolean;
+    vfunc_eject_mountable_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_mountable_with_operation_finish(result: AsyncResult): boolean;
+    vfunc_enumerate_children(
+        attributes: string,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): FileEnumerator;
+    vfunc_enumerate_children_async(
+        attributes: string,
+        flags: FileQueryInfoFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_enumerate_children_finish(res: AsyncResult): FileEnumerator;
+    vfunc_equal(file2: File): boolean;
+    vfunc_find_enclosing_mount(cancellable?: Cancellable | null): Mount;
+    vfunc_find_enclosing_mount_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_find_enclosing_mount_finish(res: AsyncResult): Mount;
+    vfunc_get_basename(): string | null;
+    vfunc_get_child_for_display_name(display_name: string): File;
+    vfunc_get_parent(): File | null;
+    vfunc_get_parse_name(): string;
+    vfunc_get_path(): string | null;
+    vfunc_get_relative_path(descendant: File): string | null;
+    vfunc_get_uri(): string;
+    vfunc_get_uri_scheme(): string | null;
+    vfunc_has_uri_scheme(uri_scheme: string): boolean;
+    vfunc_hash(): number;
+    vfunc_is_native(): boolean;
+    vfunc_make_directory(cancellable?: Cancellable | null): boolean;
+    vfunc_make_directory_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_make_directory_finish(result: AsyncResult): boolean;
+    vfunc_make_symbolic_link(symlink_value: string, cancellable?: Cancellable | null): boolean;
+    vfunc_measure_disk_usage_finish(result: AsyncResult): [boolean, number, number, number];
+    vfunc_monitor_dir(flags: FileMonitorFlags, cancellable?: Cancellable | null): FileMonitor;
+    vfunc_monitor_file(flags: FileMonitorFlags, cancellable?: Cancellable | null): FileMonitor;
+    vfunc_mount_enclosing_volume(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_mount_enclosing_volume_finish(result: AsyncResult): boolean;
+    vfunc_mount_mountable(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_mount_mountable_finish(result: AsyncResult): File;
+    vfunc_move(
+        destination: File,
+        flags: FileCopyFlags,
+        cancellable?: Cancellable | null,
+        progress_callback?: FileProgressCallback | null
+    ): boolean;
+    vfunc_move_async(
+        destination: File,
+        flags: FileCopyFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        progress_callback?: FileProgressCallback | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_move_finish(result: AsyncResult): boolean;
+    vfunc_open_readwrite(cancellable?: Cancellable | null): FileIOStream;
+    vfunc_open_readwrite_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_open_readwrite_finish(res: AsyncResult): FileIOStream;
+    vfunc_poll_mountable(cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): void;
+    vfunc_poll_mountable_finish(result: AsyncResult): boolean;
+    vfunc_prefix_matches(file: File): boolean;
+    vfunc_query_filesystem_info(attributes: string, cancellable?: Cancellable | null): FileInfo;
+    vfunc_query_filesystem_info_async(
+        attributes: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_query_filesystem_info_finish(res: AsyncResult): FileInfo;
+    vfunc_query_info(attributes: string, flags: FileQueryInfoFlags, cancellable?: Cancellable | null): 
FileInfo;
+    vfunc_query_info_async(
+        attributes: string,
+        flags: FileQueryInfoFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_query_info_finish(res: AsyncResult): FileInfo;
+    vfunc_query_settable_attributes(cancellable?: Cancellable | null): FileAttributeInfoList;
+    vfunc_query_writable_namespaces(cancellable?: Cancellable | null): FileAttributeInfoList;
+    vfunc_read_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_read_finish(res: AsyncResult): FileInputStream;
+    vfunc_read_fn(cancellable?: Cancellable | null): FileInputStream;
+    vfunc_replace(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null
+    ): FileOutputStream;
+    vfunc_replace_async(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_replace_finish(res: AsyncResult): FileOutputStream;
+    vfunc_replace_readwrite(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        cancellable?: Cancellable | null
+    ): FileIOStream;
+    vfunc_replace_readwrite_async(
+        etag: string | null,
+        make_backup: boolean,
+        flags: FileCreateFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_replace_readwrite_finish(res: AsyncResult): FileIOStream;
+    vfunc_resolve_relative_path(relative_path: string): File;
+    vfunc_set_attribute(
+        attribute: string,
+        type: FileAttributeType,
+        value_p: any | null,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    vfunc_set_attributes_async(
+        info: FileInfo,
+        flags: FileQueryInfoFlags,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_set_attributes_finish(result: AsyncResult): [boolean, FileInfo];
+    vfunc_set_attributes_from_info(
+        info: FileInfo,
+        flags: FileQueryInfoFlags,
+        cancellable?: Cancellable | null
+    ): boolean;
+    vfunc_set_display_name(display_name: string, cancellable?: Cancellable | null): File;
+    vfunc_set_display_name_async(
+        display_name: string,
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_set_display_name_finish(res: AsyncResult): File;
+    vfunc_start_mountable(
+        flags: DriveStartFlags,
+        start_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_start_mountable_finish(result: AsyncResult): boolean;
+    vfunc_stop_mountable(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_stop_mountable_finish(result: AsyncResult): boolean;
+    vfunc_trash(cancellable?: Cancellable | null): boolean;
+    vfunc_trash_async(
+        io_priority: number,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_trash_finish(result: AsyncResult): boolean;
+    vfunc_unmount_mountable(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_unmount_mountable_finish(result: AsyncResult): boolean;
+    vfunc_unmount_mountable_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_unmount_mountable_with_operation_finish(result: AsyncResult): boolean;
+}
+
+export const File: FileNamespace;
+
+export interface FileDescriptorBasedNamespace {
+    $gtype: GObject.GType<FileDescriptorBased>;
+    prototype: FileDescriptorBasedPrototype;
+}
+export type FileDescriptorBased = FileDescriptorBasedPrototype;
+export interface FileDescriptorBasedPrototype extends GObject.Object {
+    // Members
+
+    get_fd(): number;
+    vfunc_get_fd(): number;
+}
+
+export const FileDescriptorBased: FileDescriptorBasedNamespace;
+
+export interface IconNamespace {
+    $gtype: GObject.GType<Icon>;
+    prototype: IconPrototype;
+
+    deserialize(value: GLib.Variant): Icon | null;
+    hash(icon: any): number;
+    new_for_string(str: string): Icon;
+}
+export type Icon = IconPrototype;
+export interface IconPrototype extends GObject.Object {
+    // Members
+
+    equal(icon2?: Icon | null): boolean;
+    serialize(): GLib.Variant | null;
+    to_string(): string | null;
+    vfunc_equal(icon2?: Icon | null): boolean;
+    vfunc_hash(): number;
+    vfunc_serialize(): GLib.Variant | null;
+}
+
+export const Icon: IconNamespace;
+
+export interface InitableNamespace {
+    $gtype: GObject.GType<Initable>;
+    prototype: InitablePrototype;
+
+    newv<T = GObject.Object>(
+        object_type: GObject.GType,
+        parameters: GObject.Parameter[],
+        cancellable?: Cancellable | null
+    ): T;
+    // Conflicted with GObject.Object.newv
+    newv(...args: never[]): any;
+}
+export type Initable = InitablePrototype;
+export interface InitablePrototype extends GObject.Object {
+    // Members
+
+    init(cancellable?: Cancellable | null): boolean;
+    vfunc_init(cancellable?: Cancellable | null): boolean;
+}
+
+export const Initable: InitableNamespace;
+
+export interface ListModelNamespace {
+    $gtype: GObject.GType<ListModel>;
+    prototype: ListModelPrototype;
+}
+export type ListModel<A extends GObject.Object = GObject.Object> = ListModelPrototype<A>;
+export interface ListModelPrototype<A extends GObject.Object = GObject.Object> extends GObject.Object {
+    // Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+
+export const ListModel: ListModelNamespace;
+
+export interface LoadableIconNamespace {
+    $gtype: GObject.GType<LoadableIcon>;
+    prototype: LoadableIconPrototype;
+}
+export type LoadableIcon = LoadableIconPrototype;
+export interface LoadableIconPrototype extends Icon {
+    // Members
+
+    load(size: number, cancellable?: Cancellable | null): [InputStream, string];
+    load_async(size: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    load_finish(res: AsyncResult): [InputStream, string];
+    vfunc_load(size: number, cancellable?: Cancellable | null): [InputStream, string];
+    vfunc_load_async(size: number, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    vfunc_load_finish(res: AsyncResult): [InputStream, string];
+}
+
+export const LoadableIcon: LoadableIconNamespace;
+
+export interface MemoryMonitorNamespace {
+    $gtype: GObject.GType<MemoryMonitor>;
+    prototype: MemoryMonitorPrototype;
+
+    dup_default(): MemoryMonitor;
+}
+export type MemoryMonitor = MemoryMonitorPrototype;
+export interface MemoryMonitorPrototype extends Initable {
+    // Members
+
+    vfunc_low_memory_warning(level: MemoryMonitorWarningLevel): void;
+}
+
+export const MemoryMonitor: MemoryMonitorNamespace;
+
+export interface MountNamespace {
+    $gtype: GObject.GType<Mount>;
+    prototype: MountPrototype;
+}
+export type Mount = MountPrototype;
+export interface MountPrototype extends GObject.Object {
+    // Members
+
+    can_eject(): boolean;
+    can_unmount(): boolean;
+    eject(flags: MountUnmountFlags, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    eject_finish(result: AsyncResult): boolean;
+    eject_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    eject_with_operation_finish(result: AsyncResult): boolean;
+    get_default_location(): File;
+    get_drive(): Drive | null;
+    get_icon(): Icon;
+    get_name(): string;
+    get_root(): File;
+    get_sort_key(): string | null;
+    get_symbolic_icon(): Icon;
+    get_uuid(): string | null;
+    get_volume(): Volume | null;
+    guess_content_type(
+        force_rescan: boolean,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    guess_content_type_finish(result: AsyncResult): string[];
+    guess_content_type_sync(force_rescan: boolean, cancellable?: Cancellable | null): string[];
+    is_shadowed(): boolean;
+    remount(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    remount_finish(result: AsyncResult): boolean;
+    shadow(): void;
+    unmount(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    unmount_finish(result: AsyncResult): boolean;
+    unmount_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    unmount_with_operation_finish(result: AsyncResult): boolean;
+    unshadow(): void;
+    vfunc_can_eject(): boolean;
+    vfunc_can_unmount(): boolean;
+    vfunc_changed(): void;
+    vfunc_eject(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_finish(result: AsyncResult): boolean;
+    vfunc_eject_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_with_operation_finish(result: AsyncResult): boolean;
+    vfunc_get_default_location(): File;
+    vfunc_get_drive(): Drive | null;
+    vfunc_get_icon(): Icon;
+    vfunc_get_name(): string;
+    vfunc_get_root(): File;
+    vfunc_get_sort_key(): string | null;
+    vfunc_get_symbolic_icon(): Icon;
+    vfunc_get_uuid(): string | null;
+    vfunc_get_volume(): Volume | null;
+    vfunc_guess_content_type(
+        force_rescan: boolean,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_guess_content_type_finish(result: AsyncResult): string[];
+    vfunc_guess_content_type_sync(force_rescan: boolean, cancellable?: Cancellable | null): string[];
+    vfunc_pre_unmount(): void;
+    vfunc_remount(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_remount_finish(result: AsyncResult): boolean;
+    vfunc_unmount(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_unmount_finish(result: AsyncResult): boolean;
+    vfunc_unmount_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_unmount_with_operation_finish(result: AsyncResult): boolean;
+    vfunc_unmounted(): void;
+}
+
+export const Mount: MountNamespace;
+
+export interface NetworkMonitorNamespace {
+    $gtype: GObject.GType<NetworkMonitor>;
+    prototype: NetworkMonitorPrototype;
+
+    get_default(): NetworkMonitor;
+}
+export type NetworkMonitor = NetworkMonitorPrototype;
+export interface NetworkMonitorPrototype extends Initable {
+    // Properties
+    readonly connectivity: NetworkConnectivity;
+    readonly network_available: boolean;
+    readonly networkAvailable: boolean;
+    readonly network_metered: boolean;
+    readonly networkMetered: boolean;
+
+    // Members
+
+    can_reach(connectable: SocketConnectable, cancellable?: Cancellable | null): boolean;
+    can_reach_async(
+        connectable: SocketConnectable,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    can_reach_finish(result: AsyncResult): boolean;
+    get_connectivity(): NetworkConnectivity;
+    get_network_available(): boolean;
+    get_network_metered(): boolean;
+    vfunc_can_reach(connectable: SocketConnectable, cancellable?: Cancellable | null): boolean;
+    vfunc_can_reach_async(
+        connectable: SocketConnectable,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_can_reach_finish(result: AsyncResult): boolean;
+    vfunc_network_changed(network_available: boolean): void;
+}
+
+export const NetworkMonitor: NetworkMonitorNamespace;
+
+export interface PollableInputStreamNamespace {
+    $gtype: GObject.GType<PollableInputStream>;
+    prototype: PollableInputStreamPrototype;
+}
+export type PollableInputStream = PollableInputStreamPrototype;
+export interface PollableInputStreamPrototype extends InputStream {
+    // Members
+
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_readable(): boolean;
+    read_nonblocking(cancellable?: Cancellable | null): [number, Uint8Array];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_readable(): boolean;
+    vfunc_read_nonblocking(): [number, Uint8Array | null];
+}
+
+export const PollableInputStream: PollableInputStreamNamespace;
+
+export interface PollableOutputStreamNamespace {
+    $gtype: GObject.GType<PollableOutputStream>;
+    prototype: PollableOutputStreamPrototype;
+}
+export type PollableOutputStream = PollableOutputStreamPrototype;
+export interface PollableOutputStreamPrototype extends OutputStream {
+    // Members
+
+    can_poll(): boolean;
+    create_source(cancellable?: Cancellable | null): GLib.Source;
+    is_writable(): boolean;
+    write_nonblocking(buffer: Uint8Array | string, cancellable?: Cancellable | null): number;
+    writev_nonblocking(vectors: OutputVector[], cancellable?: Cancellable | null): [PollableReturn, number];
+    vfunc_can_poll(): boolean;
+    vfunc_create_source(cancellable?: Cancellable | null): GLib.Source;
+    vfunc_is_writable(): boolean;
+    vfunc_write_nonblocking(buffer?: Uint8Array | null): number;
+    vfunc_writev_nonblocking(vectors: OutputVector[]): [PollableReturn, number];
+}
+
+export const PollableOutputStream: PollableOutputStreamNamespace;
+
+export interface PowerProfileMonitorNamespace {
+    $gtype: GObject.GType<PowerProfileMonitor>;
+    prototype: PowerProfileMonitorPrototype;
+
+    dup_default(): PowerProfileMonitor;
+}
+export type PowerProfileMonitor = PowerProfileMonitorPrototype;
+export interface PowerProfileMonitorPrototype extends Initable {
+    // Properties
+    readonly power_saver_enabled: boolean;
+    readonly powerSaverEnabled: boolean;
+
+    // Members
+
+    get_power_saver_enabled(): boolean;
+}
+
+export const PowerProfileMonitor: PowerProfileMonitorNamespace;
+
+export interface ProxyNamespace {
+    $gtype: GObject.GType<Proxy>;
+    prototype: ProxyPrototype;
+
+    get_default_for_protocol(protocol: string): Proxy | null;
+}
+export type Proxy = ProxyPrototype;
+export interface ProxyPrototype extends GObject.Object {
+    // Members
+
+    connect(connection: IOStream, proxy_address: ProxyAddress, cancellable?: Cancellable | null): IOStream;
+    connect(...args: never[]): any;
+    connect_async(
+        connection: IOStream,
+        proxy_address: ProxyAddress,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    connect_finish(result: AsyncResult): IOStream;
+    supports_hostname(): boolean;
+    vfunc_connect(connection: IOStream, proxy_address: ProxyAddress, cancellable?: Cancellable | null): 
IOStream;
+    vfunc_connect_async(
+        connection: IOStream,
+        proxy_address: ProxyAddress,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_connect_finish(result: AsyncResult): IOStream;
+    vfunc_supports_hostname(): boolean;
+}
+
+export const Proxy: ProxyNamespace;
+
+export interface ProxyResolverNamespace {
+    $gtype: GObject.GType<ProxyResolver>;
+    prototype: ProxyResolverPrototype;
+
+    get_default(): ProxyResolver;
+}
+export type ProxyResolver = ProxyResolverPrototype;
+export interface ProxyResolverPrototype extends GObject.Object {
+    // Members
+
+    is_supported(): boolean;
+    lookup(uri: string, cancellable?: Cancellable | null): string[];
+    lookup_async(uri: string, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | null): 
void;
+    lookup_finish(result: AsyncResult): string[];
+    vfunc_is_supported(): boolean;
+    vfunc_lookup(uri: string, cancellable?: Cancellable | null): string[];
+    vfunc_lookup_async(uri: string, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    vfunc_lookup_finish(result: AsyncResult): string[];
+}
+
+export const ProxyResolver: ProxyResolverNamespace;
+
+export interface RemoteActionGroupNamespace {
+    $gtype: GObject.GType<RemoteActionGroup>;
+    prototype: RemoteActionGroupPrototype;
+}
+export type RemoteActionGroup = RemoteActionGroupPrototype;
+export interface RemoteActionGroupPrototype extends ActionGroup {
+    // Members
+
+    activate_action_full(action_name: string, parameter: GLib.Variant | null, platform_data: GLib.Variant): 
void;
+    change_action_state_full(action_name: string, value: GLib.Variant, platform_data: GLib.Variant): void;
+    vfunc_activate_action_full(action_name: string, parameter: GLib.Variant | null, platform_data: 
GLib.Variant): void;
+    vfunc_change_action_state_full(action_name: string, value: GLib.Variant, platform_data: GLib.Variant): 
void;
+}
+
+export const RemoteActionGroup: RemoteActionGroupNamespace;
+
+export interface SeekableNamespace {
+    $gtype: GObject.GType<Seekable>;
+    prototype: SeekablePrototype;
+}
+export type Seekable = SeekablePrototype;
+export interface SeekablePrototype extends GObject.Object {
+    // Members
+
+    can_seek(): boolean;
+    can_truncate(): boolean;
+    seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    tell(): number;
+    truncate(offset: number, cancellable?: Cancellable | null): boolean;
+    vfunc_can_seek(): boolean;
+    vfunc_can_truncate(): boolean;
+    vfunc_seek(offset: number, type: GLib.SeekType, cancellable?: Cancellable | null): boolean;
+    vfunc_tell(): number;
+    vfunc_truncate_fn(offset: number, cancellable?: Cancellable | null): boolean;
+}
+
+export const Seekable: SeekableNamespace;
+
+export interface SocketConnectableNamespace {
+    $gtype: GObject.GType<SocketConnectable>;
+    prototype: SocketConnectablePrototype;
+}
+export type SocketConnectable = SocketConnectablePrototype;
+export interface SocketConnectablePrototype extends GObject.Object {
+    // Members
+
+    enumerate(): SocketAddressEnumerator;
+    proxy_enumerate(): SocketAddressEnumerator;
+    to_string(): string;
+    vfunc_enumerate(): SocketAddressEnumerator;
+    vfunc_proxy_enumerate(): SocketAddressEnumerator;
+    vfunc_to_string(): string;
+}
+
+export const SocketConnectable: SocketConnectableNamespace;
+
+export interface TlsBackendNamespace {
+    $gtype: GObject.GType<TlsBackend>;
+    prototype: TlsBackendPrototype;
+
+    get_default(): TlsBackend;
+}
+export type TlsBackend = TlsBackendPrototype;
+export interface TlsBackendPrototype extends GObject.Object {
+    // Members
+
+    get_certificate_type(): GObject.GType;
+    get_client_connection_type(): GObject.GType;
+    get_default_database(): TlsDatabase;
+    get_dtls_client_connection_type(): GObject.GType;
+    get_dtls_server_connection_type(): GObject.GType;
+    get_file_database_type(): GObject.GType;
+    get_server_connection_type(): GObject.GType;
+    set_default_database(database?: TlsDatabase | null): void;
+    supports_dtls(): boolean;
+    supports_tls(): boolean;
+    vfunc_get_default_database(): TlsDatabase;
+    vfunc_supports_dtls(): boolean;
+    vfunc_supports_tls(): boolean;
+}
+
+export const TlsBackend: TlsBackendNamespace;
+
+export interface TlsClientConnectionNamespace {
+    $gtype: GObject.GType<TlsClientConnection>;
+    prototype: TlsClientConnectionPrototype;
+
+    ["new"](base_io_stream: IOStream, server_identity?: SocketConnectable | null): TlsClientConnection;
+}
+export type TlsClientConnection = TlsClientConnectionPrototype;
+export interface TlsClientConnectionPrototype extends TlsConnection {
+    // Properties
+    readonly accepted_cas: any[];
+    readonly acceptedCas: any[];
+    server_identity: SocketConnectable;
+    serverIdentity: SocketConnectable;
+    use_ssl3: boolean;
+    useSsl3: boolean;
+    validation_flags: TlsCertificateFlags;
+    validationFlags: TlsCertificateFlags;
+
+    // Members
+
+    copy_session_state(source: TlsClientConnection): void;
+    get_accepted_cas(): GLib.List;
+    get_server_identity(): SocketConnectable | null;
+    get_use_ssl3(): boolean;
+    get_validation_flags(): TlsCertificateFlags;
+    set_server_identity(identity: SocketConnectable): void;
+    set_use_ssl3(use_ssl3: boolean): void;
+    set_validation_flags(flags: TlsCertificateFlags): void;
+    vfunc_copy_session_state(source: TlsClientConnection): void;
+}
+
+export const TlsClientConnection: TlsClientConnectionNamespace;
+
+export interface TlsFileDatabaseNamespace {
+    $gtype: GObject.GType<TlsFileDatabase>;
+    prototype: TlsFileDatabasePrototype;
+
+    ["new"](anchors: string): TlsFileDatabase;
+}
+export type TlsFileDatabase = TlsFileDatabasePrototype;
+export interface TlsFileDatabasePrototype extends TlsDatabase {
+    // Properties
+    anchors: string;
+}
+
+export const TlsFileDatabase: TlsFileDatabaseNamespace;
+
+export interface TlsServerConnectionNamespace {
+    $gtype: GObject.GType<TlsServerConnection>;
+    prototype: TlsServerConnectionPrototype;
+
+    ["new"](base_io_stream: IOStream, certificate?: TlsCertificate | null): TlsServerConnection;
+}
+export type TlsServerConnection = TlsServerConnectionPrototype;
+export interface TlsServerConnectionPrototype extends TlsConnection {
+    // Properties
+    authentication_mode: TlsAuthenticationMode;
+    authenticationMode: TlsAuthenticationMode;
+}
+
+export const TlsServerConnection: TlsServerConnectionNamespace;
+
+export interface VolumeNamespace {
+    $gtype: GObject.GType<Volume>;
+    prototype: VolumePrototype;
+}
+export type Volume = VolumePrototype;
+export interface VolumePrototype extends GObject.Object {
+    // Members
+
+    can_eject(): boolean;
+    can_mount(): boolean;
+    eject(flags: MountUnmountFlags, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<this> | 
null): void;
+    eject_finish(result: AsyncResult): boolean;
+    eject_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    eject_with_operation_finish(result: AsyncResult): boolean;
+    enumerate_identifiers(): string[];
+    get_activation_root(): File | null;
+    get_drive(): Drive | null;
+    get_icon(): Icon;
+    get_identifier(kind: string): string | null;
+    get_mount(): Mount | null;
+    get_name(): string;
+    get_sort_key(): string | null;
+    get_symbolic_icon(): Icon;
+    get_uuid(): string | null;
+    mount(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    mount_finish(result: AsyncResult): boolean;
+    should_automount(): boolean;
+    vfunc_can_eject(): boolean;
+    vfunc_can_mount(): boolean;
+    vfunc_changed(): void;
+    vfunc_eject(
+        flags: MountUnmountFlags,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_finish(result: AsyncResult): boolean;
+    vfunc_eject_with_operation(
+        flags: MountUnmountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_eject_with_operation_finish(result: AsyncResult): boolean;
+    vfunc_enumerate_identifiers(): string[];
+    vfunc_get_activation_root(): File | null;
+    vfunc_get_drive(): Drive | null;
+    vfunc_get_icon(): Icon;
+    vfunc_get_identifier(kind: string): string | null;
+    vfunc_get_mount(): Mount | null;
+    vfunc_get_name(): string;
+    vfunc_get_sort_key(): string | null;
+    vfunc_get_symbolic_icon(): Icon;
+    vfunc_get_uuid(): string | null;
+    vfunc_mount_finish(result: AsyncResult): boolean;
+    vfunc_mount_fn(
+        flags: MountMountFlags,
+        mount_operation?: MountOperation | null,
+        cancellable?: Cancellable | null,
+        callback?: AsyncReadyCallback<this> | null
+    ): void;
+    vfunc_removed(): void;
+    vfunc_should_automount(): boolean;
+}
+
+export const Volume: VolumeNamespace;
+
+export interface DBusNamespace {
+    prototype: DBusPrototype;
+    readonly session: DBusConnection;
+    readonly system: DBusConnection;
+    get(bus_type: BusType, cancellable?: Cancellable | null, callback?: AsyncReadyCallback<BusType> | null): 
void;
+    get_finish(res: AsyncResult): DBusConnection;
+    get_sync(bus_type: BusType, cancellable?: Cancellable | null): DBusConnection;
+    own_name(
+        bus_type: BusType,
+        name: string,
+        flags: BusNameOwnerFlags,
+        bus_acquired_closure?: GObject.Closure | null,
+        name_acquired_closure?: GObject.Closure | null,
+        name_lost_closure?: GObject.Closure | null
+    ): number;
+    own_name_on_connection(
+        connection: DBusConnection,
+        name: string,
+        flags: BusNameOwnerFlags,
+        name_acquired_closure?: GObject.Closure | null,
+        name_lost_closure?: GObject.Closure | null
+    ): number;
+    unown_name(owner_id: number): void;
+    watch_name(
+        bus_type: BusType,
+        name: string,
+        flags: BusNameWatcherFlags,
+        name_appeared_closure?: GObject.Closure | null,
+        name_vanished_closure?: GObject.Closure | null
+    ): number;
+    unwatch_name(watcher_id: number): void;
+    watch_name_on_connection(
+        connection: DBusConnection,
+        name: string,
+        flags: BusNameWatcherFlags,
+        name_appeared_closure?: GObject.Closure | null,
+        name_vanished_closure?: GObject.Closure | null
+    ): number;
+}
+export type DBus = DBusPrototype;
+export interface DBusPrototype {}
+
+export const DBus: DBusNamespace;
+
+export module DBusExportedObject {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DBusExportedObject {
+    static $gtype: GObject.GType<DBusExportedObject>;
+
+    constructor(properties?: Partial<DBusExportedObject.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DBusExportedObject.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static wrapJSObject(info: string, obj: any): DBusExportedObject;
+    get_info(): DBusInterfaceInfo;
+    get_connection(): DBusConnection;
+    get_object_path(): string;
+    unexport_from_connection(connection: DBusConnection): void;
+    ["export"](busConnection: DBusConnection, objectPath: string): void;
+    unexport(): void;
+    flush(): void;
+    emit_signal(name: string, variant: GLib.Variant): void;
+    emit_property_changed(name: string, variant: GLib.Variant): void;
+}
+
+export function _promisify(klass: any, function_name: string, finish_function_name: string): void;
+export interface _LocalFilePrototype extends FilePrototype {}
+export const _LocalFilePrototype: _LocalFilePrototype;
diff --git a/types/glib.d.ts b/types/glib.d.ts
new file mode 100644
index 0000000..9d5274a
--- /dev/null
+++ b/types/glib.d.ts
@@ -0,0 +1,4491 @@
+/**
+ * GLib 2.0
+ *
+ * Generated from 2.72.2
+ */
+
+import * as GObject from "gobject";
+
+export const ANALYZER_ANALYZING: number;
+export const ASCII_DTOSTR_BUF_SIZE: number;
+export const BIG_ENDIAN: number;
+export const CSET_A_2_Z: string;
+export const CSET_DIGITS: string;
+export const CSET_a_2_z: string;
+export const DATALIST_FLAGS_MASK: number;
+export const DATE_BAD_DAY: number;
+export const DATE_BAD_JULIAN: number;
+export const DATE_BAD_YEAR: number;
+export const DIR_SEPARATOR: number;
+export const DIR_SEPARATOR_S: string;
+export const E: number;
+export const GINT16_FORMAT: string;
+export const GINT16_MODIFIER: string;
+export const GINT32_FORMAT: string;
+export const GINT32_MODIFIER: string;
+export const GINT64_FORMAT: string;
+export const GINT64_MODIFIER: string;
+export const GINTPTR_FORMAT: string;
+export const GINTPTR_MODIFIER: string;
+export const GNUC_FUNCTION: string;
+export const GNUC_PRETTY_FUNCTION: string;
+export const GSIZE_FORMAT: string;
+export const GSIZE_MODIFIER: string;
+export const GSSIZE_FORMAT: string;
+export const GSSIZE_MODIFIER: string;
+export const GUINT16_FORMAT: string;
+export const GUINT32_FORMAT: string;
+export const GUINT64_FORMAT: string;
+export const GUINTPTR_FORMAT: string;
+export const HAVE_GINT64: number;
+export const HAVE_GNUC_VARARGS: number;
+export const HAVE_GNUC_VISIBILITY: number;
+export const HAVE_GROWING_STACK: number;
+export const HAVE_ISO_VARARGS: number;
+export const HOOK_FLAG_USER_SHIFT: number;
+export const IEEE754_DOUBLE_BIAS: number;
+export const IEEE754_FLOAT_BIAS: number;
+export const KEY_FILE_DESKTOP_GROUP: string;
+export const KEY_FILE_DESKTOP_KEY_ACTIONS: string;
+export const KEY_FILE_DESKTOP_KEY_CATEGORIES: string;
+export const KEY_FILE_DESKTOP_KEY_COMMENT: string;
+export const KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE: string;
+export const KEY_FILE_DESKTOP_KEY_EXEC: string;
+export const KEY_FILE_DESKTOP_KEY_GENERIC_NAME: string;
+export const KEY_FILE_DESKTOP_KEY_HIDDEN: string;
+export const KEY_FILE_DESKTOP_KEY_ICON: string;
+export const KEY_FILE_DESKTOP_KEY_MIME_TYPE: string;
+export const KEY_FILE_DESKTOP_KEY_NAME: string;
+export const KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN: string;
+export const KEY_FILE_DESKTOP_KEY_NO_DISPLAY: string;
+export const KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN: string;
+export const KEY_FILE_DESKTOP_KEY_PATH: string;
+export const KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY: string;
+export const KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS: string;
+export const KEY_FILE_DESKTOP_KEY_TERMINAL: string;
+export const KEY_FILE_DESKTOP_KEY_TRY_EXEC: string;
+export const KEY_FILE_DESKTOP_KEY_TYPE: string;
+export const KEY_FILE_DESKTOP_KEY_URL: string;
+export const KEY_FILE_DESKTOP_KEY_VERSION: string;
+export const KEY_FILE_DESKTOP_TYPE_APPLICATION: string;
+export const KEY_FILE_DESKTOP_TYPE_DIRECTORY: string;
+export const KEY_FILE_DESKTOP_TYPE_LINK: string;
+export const LITTLE_ENDIAN: number;
+export const LN10: number;
+export const LN2: number;
+export const LOG_2_BASE_10: number;
+export const LOG_DOMAIN: number;
+export const LOG_FATAL_MASK: number;
+export const LOG_LEVEL_USER_SHIFT: number;
+export const MAJOR_VERSION: number;
+export const MAXINT16: number;
+export const MAXINT32: number;
+export const MAXINT64: number;
+export const MAXINT8: number;
+export const MAXUINT16: number;
+export const MAXUINT32: number;
+export const MAXUINT64: number;
+export const MAXUINT8: number;
+export const MICRO_VERSION: number;
+export const MININT16: number;
+export const MININT32: number;
+export const MININT64: number;
+export const MININT8: number;
+export const MINOR_VERSION: number;
+export const MODULE_SUFFIX: string;
+export const OPTION_REMAINING: string;
+export const PDP_ENDIAN: number;
+export const PI: number;
+export const PID_FORMAT: string;
+export const PI_2: number;
+export const PI_4: number;
+export const POLLFD_FORMAT: string;
+export const PRIORITY_DEFAULT: number;
+export const PRIORITY_DEFAULT_IDLE: number;
+export const PRIORITY_HIGH: number;
+export const PRIORITY_HIGH_IDLE: number;
+export const PRIORITY_LOW: number;
+export const SEARCHPATH_SEPARATOR: number;
+export const SEARCHPATH_SEPARATOR_S: string;
+export const SIZEOF_LONG: number;
+export const SIZEOF_SIZE_T: number;
+export const SIZEOF_SSIZE_T: number;
+export const SIZEOF_VOID_P: number;
+export const SOURCE_CONTINUE: boolean;
+export const SOURCE_REMOVE: boolean;
+export const SQRT2: number;
+export const STR_DELIMITERS: string;
+export const SYSDEF_AF_INET: number;
+export const SYSDEF_AF_INET6: number;
+export const SYSDEF_AF_UNIX: number;
+export const SYSDEF_MSG_DONTROUTE: number;
+export const SYSDEF_MSG_OOB: number;
+export const SYSDEF_MSG_PEEK: number;
+export const TEST_OPTION_ISOLATE_DIRS: string;
+export const TIME_SPAN_DAY: number;
+export const TIME_SPAN_HOUR: number;
+export const TIME_SPAN_MILLISECOND: number;
+export const TIME_SPAN_MINUTE: number;
+export const TIME_SPAN_SECOND: number;
+export const UNICHAR_MAX_DECOMPOSITION_LENGTH: number;
+export const URI_RESERVED_CHARS_GENERIC_DELIMITERS: string;
+export const URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS: string;
+export const USEC_PER_SEC: number;
+export const VA_COPY_AS_ARRAY: number;
+export const VERSION_MIN_REQUIRED: number;
+export const WIN32_MSG_HANDLE: number;
+export const macro__has_attribute___noreturn__: number;
+export function access(filename: string, mode: number): number;
+export function aligned_alloc(n_blocks: number, n_block_bytes: number, alignment: number): any | null;
+export function aligned_alloc0(n_blocks: number, n_block_bytes: number, alignment: number): any | null;
+export function aligned_free(mem?: any | null): void;
+export function ascii_digit_value(c: number): number;
+export function ascii_dtostr(buffer: string, buf_len: number, d: number): string;
+export function ascii_formatd(buffer: string, buf_len: number, format: string, d: number): string;
+export function ascii_strcasecmp(s1: string, s2: string): number;
+export function ascii_strdown(str: string, len: number): string;
+export function ascii_string_to_signed(str: string, base: number, min: number, max: number): [boolean, 
number];
+export function ascii_string_to_unsigned(str: string, base: number, min: number, max: number): [boolean, 
number];
+export function ascii_strncasecmp(s1: string, s2: string, n: number): number;
+export function ascii_strtod(nptr: string): [number, string];
+export function ascii_strtoll(nptr: string, base: number): [number, string];
+export function ascii_strtoull(nptr: string, base: number): [number, string];
+export function ascii_strup(str: string, len: number): string;
+export function ascii_tolower(c: number): number;
+export function ascii_toupper(c: number): number;
+export function ascii_xdigit_value(c: number): number;
+export function assert_warning(
+    log_domain: string,
+    file: string,
+    line: number,
+    pretty_function: string,
+    expression: string
+): void;
+export function assertion_message(domain: string, file: string, line: number, func: string, message: 
string): void;
+export function assertion_message_cmpstr(
+    domain: string,
+    file: string,
+    line: number,
+    func: string,
+    expr: string,
+    arg1: string,
+    cmp: string,
+    arg2: string
+): void;
+export function assertion_message_cmpstrv(
+    domain: string,
+    file: string,
+    line: number,
+    func: string,
+    expr: string,
+    arg1: string,
+    arg2: string,
+    first_wrong_idx: number
+): void;
+export function assertion_message_error(
+    domain: string,
+    file: string,
+    line: number,
+    func: string,
+    expr: string,
+    error: Error,
+    error_domain: Quark,
+    error_code: number
+): void;
+export function atexit(func: VoidFunc): void;
+export function atomic_int_add(atomic: number, val: number): number;
+export function atomic_int_and(atomic: number, val: number): number;
+export function atomic_int_compare_and_exchange(atomic: number, oldval: number, newval: number): boolean;
+export function atomic_int_dec_and_test(atomic: number): boolean;
+export function atomic_int_exchange_and_add(atomic: number, val: number): number;
+export function atomic_int_get(atomic: number): number;
+export function atomic_int_inc(atomic: number): void;
+export function atomic_int_or(atomic: number, val: number): number;
+export function atomic_int_set(atomic: number, newval: number): void;
+export function atomic_int_xor(atomic: number, val: number): number;
+export function atomic_pointer_add(atomic: any, val: number): number;
+export function atomic_pointer_and(atomic: any, val: number): number;
+export function atomic_pointer_compare_and_exchange(atomic: any, oldval?: any | null, newval?: any | null): 
boolean;
+export function atomic_pointer_get(atomic: any): any | null;
+export function atomic_pointer_or(atomic: any, val: number): number;
+export function atomic_pointer_set(atomic: any, newval?: any | null): void;
+export function atomic_pointer_xor(atomic: any, val: number): number;
+export function atomic_rc_box_acquire(mem_block: any): any;
+export function atomic_rc_box_alloc(block_size: number): any;
+export function atomic_rc_box_alloc0(block_size: number): any;
+export function atomic_rc_box_dup(block_size: number, mem_block: any): any;
+export function atomic_rc_box_get_size(mem_block: any): number;
+export function atomic_rc_box_release(mem_block: any): void;
+export function atomic_rc_box_release_full(mem_block: any): void;
+export function atomic_ref_count_compare(arc: number, val: number): boolean;
+export function atomic_ref_count_dec(arc: number): boolean;
+export function atomic_ref_count_inc(arc: number): void;
+export function atomic_ref_count_init(arc: number): void;
+export function base64_decode(text: string): Uint8Array;
+export function base64_decode_inplace(text: Uint8Array | string): [number, Uint8Array];
+export function base64_encode(data?: Uint8Array | null): string;
+export function base64_encode_close(
+    break_lines: boolean,
+    state: number,
+    save: number
+): [number, Uint8Array, number, number];
+export function base64_encode_step(
+    _in: Uint8Array | string,
+    break_lines: boolean,
+    state: number,
+    save: number
+): [number, Uint8Array, number, number];
+export function basename(file_name: string): string;
+export function bit_lock(address: number, lock_bit: number): void;
+export function bit_nth_lsf(mask: number, nth_bit: number): number;
+export function bit_nth_msf(mask: number, nth_bit: number): number;
+export function bit_storage(number: number): number;
+export function bit_trylock(address: number, lock_bit: number): boolean;
+export function bit_unlock(address: number, lock_bit: number): void;
+export function bookmark_file_error_quark(): Quark;
+export function build_filenamev(args: string[]): string;
+export function build_pathv(separator: string, args: string[]): string;
+export function byte_array_free(array: Uint8Array | string, free_segment: boolean): number;
+export function byte_array_free_to_bytes(array: Uint8Array | string): Bytes;
+export function byte_array_new(): Uint8Array;
+export function byte_array_new_take(data: Uint8Array | string): Uint8Array;
+export function byte_array_steal(array: Uint8Array | string): [number, number];
+export function byte_array_unref(array: Uint8Array | string): void;
+export function canonicalize_filename(filename: string, relative_to?: string | null): string;
+export function chdir(path: string): number;
+export function check_version(required_major: number, required_minor: number, required_micro: number): 
string | null;
+export function checksum_type_get_length(checksum_type: ChecksumType): number;
+export function child_watch_add(
+    priority: number,
+    pid: Pid,
+    _function: ChildWatchFunc,
+    notify?: DestroyNotify | null
+): number;
+export function child_watch_source_new(pid: Pid): Source;
+export function clear_error(): void;
+export function close(fd: number): boolean;
+export function compute_checksum_for_bytes(checksum_type: ChecksumType, data: Bytes | Uint8Array): string | 
null;
+export function compute_checksum_for_data(checksum_type: ChecksumType, data: Uint8Array | string): string | 
null;
+export function compute_checksum_for_string(checksum_type: ChecksumType, str: string, length: number): 
string | null;
+export function compute_hmac_for_bytes(
+    digest_type: ChecksumType,
+    key: Bytes | Uint8Array,
+    data: Bytes | Uint8Array
+): string;
+export function compute_hmac_for_data(
+    digest_type: ChecksumType,
+    key: Uint8Array | string,
+    data: Uint8Array | string
+): string;
+export function compute_hmac_for_string(
+    digest_type: ChecksumType,
+    key: Uint8Array | string,
+    str: string,
+    length: number
+): string;
+export function convert(str: Uint8Array | string, to_codeset: string, from_codeset: string): [Uint8Array, 
number];
+export function convert_error_quark(): Quark;
+export function convert_with_fallback(
+    str: Uint8Array | string,
+    to_codeset: string,
+    from_codeset: string,
+    fallback: string
+): [Uint8Array, number];
+export function datalist_foreach(datalist: Data, func: DataForeachFunc): void;
+export function datalist_get_data(datalist: Data, key: string): any | null;
+export function datalist_get_flags(datalist: Data): number;
+export function datalist_id_get_data(datalist: Data, key_id: Quark): any | null;
+export function datalist_set_flags(datalist: Data, flags: number): void;
+export function datalist_unset_flags(datalist: Data, flags: number): void;
+export function dataset_destroy(dataset_location: any): void;
+export function dataset_foreach(dataset_location: any, func: DataForeachFunc): void;
+export function dataset_id_get_data(dataset_location: any, key_id: Quark): any | null;
+export function date_get_days_in_month(month: DateMonth, year: DateYear): number;
+export function date_get_monday_weeks_in_year(year: DateYear): number;
+export function date_get_sunday_weeks_in_year(year: DateYear): number;
+export function date_is_leap_year(year: DateYear): boolean;
+export function date_strftime(s: string, slen: number, format: string, date: Date): number;
+export function date_valid_day(day: DateDay): boolean;
+export function date_valid_dmy(day: DateDay, month: DateMonth, year: DateYear): boolean;
+export function date_valid_julian(julian_date: number): boolean;
+export function date_valid_month(month: DateMonth): boolean;
+export function date_valid_weekday(weekday: DateWeekday): boolean;
+export function date_valid_year(year: DateYear): boolean;
+export function dcgettext(domain: string | null, msgid: string, category: number): string;
+export function dgettext(domain: string | null, msgid: string): string;
+export function dir_make_tmp(tmpl?: string | null): string;
+export function direct_equal(v1?: any | null, v2?: any | null): boolean;
+export function direct_hash(v?: any | null): number;
+export function dngettext(domain: string | null, msgid: string, msgid_plural: string, n: number): string;
+export function double_equal(v1: any, v2: any): boolean;
+export function double_hash(v: any): number;
+export function dpgettext(domain: string | null, msgctxtid: string, msgidoffset: number): string;
+export function dpgettext2(domain: string | null, context: string, msgid: string): string;
+export function environ_getenv(envp: string[] | null, variable: string): string | null;
+export function environ_setenv(envp: string[] | null, variable: string, value: string, overwrite: boolean): 
string[];
+export function environ_unsetenv(envp: string[] | null, variable: string): string[];
+export function file_error_from_errno(err_no: number): FileError;
+export function file_error_quark(): Quark;
+export function file_get_contents(filename: string): [boolean, Uint8Array];
+export function file_open_tmp(tmpl: string | null): [number, string];
+export function file_read_link(filename: string): string;
+export function file_set_contents(filename: string, contents: Uint8Array | string): boolean;
+export function file_set_contents_full(
+    filename: string,
+    contents: Uint8Array | string,
+    flags: FileSetContentsFlags,
+    mode: number
+): boolean;
+export function file_test(filename: string, test: FileTest): boolean;
+export function filename_display_basename(filename: string): string;
+export function filename_display_name(filename: string): string;
+export function filename_from_uri(uri: string): [string, string];
+export function filename_from_utf8(utf8string: string, len: number): [string, number, number];
+export function filename_to_uri(filename: string, hostname?: string | null): string;
+export function filename_to_utf8(opsysstring: string, len: number): [string, number, number];
+export function find_program_in_path(program: string): string | null;
+export function format_size(size: number): string;
+export function format_size_for_display(size: number): string;
+export function format_size_full(size: number, flags: FormatSizeFlags): string;
+export function free(mem?: any | null): void;
+export function get_application_name(): string | null;
+export function get_charset(): [boolean, string];
+export function get_codeset(): string;
+export function get_console_charset(): [boolean, string];
+export function get_current_dir(): string;
+export function get_current_time(result: TimeVal): void;
+export function get_environ(): string[];
+export function get_filename_charsets(): [boolean, string[]];
+export function get_home_dir(): string;
+export function get_host_name(): string;
+export function get_language_names(): string[];
+export function get_language_names_with_category(category_name: string): string[];
+export function get_locale_variants(locale: string): string[];
+export function get_monotonic_time(): number;
+export function get_num_processors(): number;
+export function get_os_info(key_name: string): string | null;
+export function get_prgname(): string | null;
+export function get_real_name(): string;
+export function get_real_time(): number;
+export function get_system_config_dirs(): string[];
+export function get_system_data_dirs(): string[];
+export function get_tmp_dir(): string;
+export function get_user_cache_dir(): string;
+export function get_user_config_dir(): string;
+export function get_user_data_dir(): string;
+export function get_user_name(): string;
+export function get_user_runtime_dir(): string;
+export function get_user_special_dir(directory: UserDirectory): string | null;
+export function get_user_state_dir(): string;
+export function getenv(variable: string): string | null;
+export function hash_table_add(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | null): 
boolean;
+export function hash_table_contains(
+    hash_table: { [key: string]: any } | HashTable<any, any>,
+    key?: any | null
+): boolean;
+export function hash_table_destroy(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+export function hash_table_insert(
+    hash_table: { [key: string]: any } | HashTable<any, any>,
+    key?: any | null,
+    value?: any | null
+): boolean;
+export function hash_table_lookup(
+    hash_table: { [key: string]: any } | HashTable<any, any>,
+    key?: any | null
+): any | null;
+export function hash_table_lookup_extended(
+    hash_table: { [key: string]: any } | HashTable<any, any>,
+    lookup_key: any | null
+): [boolean, any, any];
+export function hash_table_new_similar(
+    other_hash_table: { [key: string]: any } | HashTable<any, any>
+): HashTable<any, any>;
+export function hash_table_remove(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | 
null): boolean;
+export function hash_table_remove_all(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+export function hash_table_replace(
+    hash_table: { [key: string]: any } | HashTable<any, any>,
+    key?: any | null,
+    value?: any | null
+): boolean;
+export function hash_table_size(hash_table: { [key: string]: any } | HashTable<any, any>): number;
+export function hash_table_steal(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | 
null): boolean;
+export function hash_table_steal_all(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+export function hash_table_steal_extended(
+    hash_table: { [key: string]: any } | HashTable<any, any>,
+    lookup_key: any | null
+): [boolean, any, any];
+export function hash_table_unref(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+export function hook_destroy(hook_list: HookList, hook_id: number): boolean;
+export function hook_destroy_link(hook_list: HookList, hook: Hook): void;
+export function hook_free(hook_list: HookList, hook: Hook): void;
+export function hook_insert_before(hook_list: HookList, sibling: Hook | null, hook: Hook): void;
+export function hook_prepend(hook_list: HookList, hook: Hook): void;
+export function hook_unref(hook_list: HookList, hook: Hook): void;
+export function hostname_is_ascii_encoded(hostname: string): boolean;
+export function hostname_is_ip_address(hostname: string): boolean;
+export function hostname_is_non_ascii(hostname: string): boolean;
+export function hostname_to_ascii(hostname: string): string | null;
+export function hostname_to_unicode(hostname: string): string | null;
+export function idle_add(priority: number, _function: SourceFunc, notify?: DestroyNotify | null): number;
+export function idle_remove_by_data(data?: any | null): boolean;
+export function idle_source_new(): Source;
+export function int64_equal(v1: any, v2: any): boolean;
+export function int64_hash(v: any): number;
+export function int_equal(v1: any, v2: any): boolean;
+export function int_hash(v: any): number;
+export function intern_static_string(string?: string | null): string;
+export function intern_string(string?: string | null): string;
+export function io_add_watch(channel: IOChannel, priority: number, condition: IOCondition, func: IOFunc): 
number;
+export function io_channel_error_from_errno(en: number): IOChannelError;
+export function io_channel_error_quark(): Quark;
+export function io_create_watch(channel: IOChannel, condition: IOCondition): Source;
+export function key_file_error_quark(): Quark;
+export function listenv(): string[];
+export function locale_from_utf8(utf8string: string, len: number): [Uint8Array, number];
+export function locale_to_utf8(opsysstring: Uint8Array | string): [string, number, number];
+export function log_default_handler(
+    log_domain: string | null,
+    log_level: LogLevelFlags,
+    message?: string | null,
+    unused_data?: any | null
+): void;
+export function log_get_debug_enabled(): boolean;
+export function log_remove_handler(log_domain: string, handler_id: number): void;
+export function log_set_always_fatal(fatal_mask: LogLevelFlags): LogLevelFlags;
+export function log_set_debug_enabled(enabled: boolean): void;
+export function log_set_fatal_mask(log_domain: string, fatal_mask: LogLevelFlags): LogLevelFlags;
+export function log_set_handler(log_domain: string | null, log_levels: LogLevelFlags, log_func: LogFunc): 
number;
+export function log_set_writer_func(): void;
+export function log_structured_array(log_level: LogLevelFlags, fields: LogField[]): void;
+export function log_variant(log_domain: string | null, log_level: LogLevelFlags, fields: Variant): void;
+export function log_writer_default(
+    log_level: LogLevelFlags,
+    fields: LogField[],
+    user_data?: any | null
+): LogWriterOutput;
+export function log_writer_default_set_use_stderr(use_stderr: boolean): void;
+export function log_writer_default_would_drop(log_level: LogLevelFlags, log_domain?: string | null): boolean;
+export function log_writer_format_fields(log_level: LogLevelFlags, fields: LogField[], use_color: boolean): 
string;
+export function log_writer_is_journald(output_fd: number): boolean;
+export function log_writer_journald(
+    log_level: LogLevelFlags,
+    fields: LogField[],
+    user_data?: any | null
+): LogWriterOutput;
+export function log_writer_standard_streams(
+    log_level: LogLevelFlags,
+    fields: LogField[],
+    user_data?: any | null
+): LogWriterOutput;
+export function log_writer_supports_color(output_fd: number): boolean;
+export function main_context_default(): MainContext;
+export function main_context_get_thread_default(): MainContext | null;
+export function main_context_ref_thread_default(): MainContext;
+export function main_current_source(): Source | null;
+export function main_depth(): number;
+export function malloc(n_bytes: number): any | null;
+export function malloc0(n_bytes: number): any | null;
+export function malloc0_n(n_blocks: number, n_block_bytes: number): any | null;
+export function malloc_n(n_blocks: number, n_block_bytes: number): any | null;
+export function markup_error_quark(): Quark;
+export function markup_escape_text(text: string, length: number): string;
+export function mem_is_system_malloc(): boolean;
+export function mem_profile(): void;
+export function mem_set_vtable(vtable: MemVTable): void;
+export function memdup(mem: any | null, byte_size: number): any | null;
+export function memdup2(mem: any | null, byte_size: number): any | null;
+export function mkdir_with_parents(pathname: string, mode: number): number;
+export function nullify_pointer(nullify_location: any): void;
+export function number_parser_error_quark(): Quark;
+export function on_error_query(prg_name: string): void;
+export function on_error_stack_trace(prg_name: string): void;
+export function once_init_enter(location: any): boolean;
+export function once_init_leave(location: any, result: number): void;
+export function option_error_quark(): Quark;
+export function parse_debug_string(string: string | null, keys: DebugKey[]): number;
+export function path_get_basename(file_name: string): string;
+export function path_get_dirname(file_name: string): string;
+export function path_is_absolute(file_name: string): boolean;
+export function path_skip_root(file_name: string): string | null;
+export function pattern_match_simple(pattern: string, string: string): boolean;
+export function pointer_bit_lock(address: any, lock_bit: number): void;
+export function pointer_bit_trylock(address: any, lock_bit: number): boolean;
+export function pointer_bit_unlock(address: any, lock_bit: number): void;
+export function poll(fds: PollFD, nfds: number, timeout: number): number;
+export function prefix_error_literal(err: Error | null, prefix: string): void;
+export function propagate_error(src: Error): Error | null;
+export function quark_from_static_string(string?: string | null): Quark;
+export function quark_from_string(string?: string | null): Quark;
+export function quark_to_string(quark: Quark): string;
+export function quark_try_string(string?: string | null): Quark;
+export function random_double(): number;
+export function random_double_range(begin: number, end: number): number;
+export function random_int(): number;
+export function random_int_range(begin: number, end: number): number;
+export function random_set_seed(seed: number): void;
+export function rc_box_acquire(mem_block: any): any;
+export function rc_box_alloc(block_size: number): any;
+export function rc_box_alloc0(block_size: number): any;
+export function rc_box_dup(block_size: number, mem_block: any): any;
+export function rc_box_get_size(mem_block: any): number;
+export function rc_box_release(mem_block: any): void;
+export function rc_box_release_full(mem_block: any): void;
+export function realloc(mem: any | null, n_bytes: number): any | null;
+export function realloc_n(mem: any | null, n_blocks: number, n_block_bytes: number): any | null;
+export function ref_count_compare(rc: number, val: number): boolean;
+export function ref_count_dec(rc: number): boolean;
+export function ref_count_inc(rc: number): void;
+export function ref_count_init(rc: number): void;
+export function ref_string_acquire(str: string): string;
+export function ref_string_length(str: string): number;
+export function ref_string_new(str: string): string;
+export function ref_string_new_intern(str: string): string;
+export function ref_string_new_len(str: string, len: number): string;
+export function ref_string_release(str: string): void;
+export function regex_check_replacement(replacement: string): [boolean, boolean];
+export function regex_error_quark(): Quark;
+export function regex_escape_nul(string: string, length: number): string;
+export function regex_escape_string(string: string[]): string;
+export function regex_match_simple(
+    pattern: string,
+    string: string,
+    compile_options: RegexCompileFlags,
+    match_options: RegexMatchFlags
+): boolean;
+export function regex_split_simple(
+    pattern: string,
+    string: string,
+    compile_options: RegexCompileFlags,
+    match_options: RegexMatchFlags
+): string[];
+export function reload_user_special_dirs_cache(): void;
+export function rmdir(filename: string): number;
+export function sequence_get(iter: SequenceIter): any | null;
+export function sequence_insert_before(iter: SequenceIter, data?: any | null): SequenceIter;
+export function sequence_move(src: SequenceIter, dest: SequenceIter): void;
+export function sequence_move_range(dest: SequenceIter, begin: SequenceIter, end: SequenceIter): void;
+export function sequence_range_get_midpoint(begin: SequenceIter, end: SequenceIter): SequenceIter;
+export function sequence_remove(iter: SequenceIter): void;
+export function sequence_remove_range(begin: SequenceIter, end: SequenceIter): void;
+export function sequence_set(iter: SequenceIter, data?: any | null): void;
+export function sequence_swap(a: SequenceIter, b: SequenceIter): void;
+export function set_application_name(application_name: string): void;
+export function set_error_literal(domain: Quark, code: number, message: string): Error | null;
+export function set_prgname(prgname: string): void;
+export function setenv(variable: string, value: string, overwrite: boolean): boolean;
+export function shell_error_quark(): Quark;
+export function shell_parse_argv(command_line: string): [boolean, string[] | null];
+export function shell_quote(unquoted_string: string): string;
+export function shell_unquote(quoted_string: string): string;
+export function slice_alloc(block_size: number): any | null;
+export function slice_alloc0(block_size: number): any | null;
+export function slice_copy(block_size: number, mem_block?: any | null): any | null;
+export function slice_free1(block_size: number, mem_block?: any | null): void;
+export function slice_free_chain_with_offset(block_size: number, mem_chain: any | null, next_offset: 
number): void;
+export function slice_get_config(ckey: SliceConfig): number;
+export function slice_get_config_state(ckey: SliceConfig, address: number, n_values: number): number;
+export function slice_set_config(ckey: SliceConfig, value: number): void;
+export function source_remove(tag: number): boolean;
+export function source_remove_by_funcs_user_data(funcs: SourceFuncs, user_data?: any | null): boolean;
+export function source_remove_by_user_data(user_data?: any | null): boolean;
+export function source_set_name_by_id(tag: number, name: string): void;
+export function spaced_primes_closest(num: number): number;
+export function spawn_async(
+    working_directory: string | null,
+    argv: string[],
+    envp: string[] | null,
+    flags: SpawnFlags,
+    child_setup?: SpawnChildSetupFunc | null
+): [boolean, Pid | null];
+export function spawn_async_with_fds(
+    working_directory: string | null,
+    argv: string[],
+    envp: string[] | null,
+    flags: SpawnFlags,
+    child_setup: SpawnChildSetupFunc | null,
+    stdin_fd: number,
+    stdout_fd: number,
+    stderr_fd: number
+): [boolean, Pid | null];
+export function spawn_async_with_pipes(
+    working_directory: string | null,
+    argv: string[],
+    envp: string[] | null,
+    flags: SpawnFlags,
+    child_setup: SpawnChildSetupFunc | null
+): [boolean, Pid | null, number, number, number];
+export function spawn_async_with_pipes_and_fds(
+    working_directory: string | null,
+    argv: string[],
+    envp: string[] | null,
+    flags: SpawnFlags,
+    child_setup: SpawnChildSetupFunc | null,
+    stdin_fd: number,
+    stdout_fd: number,
+    stderr_fd: number,
+    source_fds: number[] | null,
+    target_fds: number[] | null
+): [boolean, Pid | null, number, number, number];
+export function spawn_check_exit_status(wait_status: number): boolean;
+export function spawn_check_wait_status(wait_status: number): boolean;
+export function spawn_close_pid(pid: Pid): void;
+export function spawn_command_line_async(command_line: string): boolean;
+export function spawn_command_line_sync(command_line: string): [boolean, Uint8Array | null, Uint8Array | 
null, number];
+export function spawn_error_quark(): Quark;
+export function spawn_exit_error_quark(): Quark;
+export function spawn_sync(
+    working_directory: string | null,
+    argv: string[],
+    envp: string[] | null,
+    flags: SpawnFlags,
+    child_setup: SpawnChildSetupFunc | null
+): [boolean, Uint8Array | null, Uint8Array | null, number];
+export function stpcpy(dest: string, src: string): string;
+export function str_equal(v1: any, v2: any): boolean;
+export function str_has_prefix(str: string, prefix: string): boolean;
+export function str_has_suffix(str: string, suffix: string): boolean;
+export function str_hash(v: any): number;
+export function str_is_ascii(str: string): boolean;
+export function str_match_string(search_term: string, potential_hit: string, accept_alternates: boolean): 
boolean;
+export function str_to_ascii(str: string, from_locale?: string | null): string;
+export function str_tokenize_and_fold(string: string, translit_locale: string | null): [string[], string[]];
+export function strcanon(string: string, valid_chars: string, substitutor: number): string;
+export function strcasecmp(s1: string, s2: string): number;
+export function strchomp(string: string): string;
+export function strchug(string: string): string;
+export function strcmp0(str1?: string | null, str2?: string | null): number;
+export function strcompress(source: string): string;
+export function strdelimit(string: string, delimiters: string | null, new_delimiter: number): string;
+export function strdown(string: string): string;
+export function strdup(str?: string | null): string;
+export function strerror(errnum: number): string;
+export function strescape(source: string, exceptions?: string | null): string;
+export function strfreev(str_array?: string | null): void;
+export function strip_context(msgid: string, msgval: string): string;
+export function strjoinv(separator: string | null, str_array: string): string;
+export function strlcat(dest: string, src: string, dest_size: number): number;
+export function strlcpy(dest: string, src: string, dest_size: number): number;
+export function strncasecmp(s1: string, s2: string, n: number): number;
+export function strndup(str: string, n: number): string;
+export function strnfill(length: number, fill_char: number): string;
+export function strreverse(string: string): string;
+export function strrstr(haystack: string, needle: string): string;
+export function strrstr_len(haystack: string, haystack_len: number, needle: string): string;
+export function strsignal(signum: number): string;
+export function strstr_len(haystack: string, haystack_len: number, needle: string): string;
+export function strtod(nptr: string): [number, string];
+export function strup(string: string): string;
+export function strv_contains(strv: string, str: string): boolean;
+export function strv_equal(strv1: string, strv2: string): boolean;
+export function strv_get_type(): GObject.GType;
+export function strv_length(str_array: string): number;
+export function test_add_data_func(testpath: string, test_data: any | null, test_func: TestDataFunc): void;
+export function test_add_data_func_full(testpath: string, test_data: any | null, test_func: TestDataFunc): 
void;
+export function test_add_func(testpath: string, test_func: TestFunc): void;
+export function test_assert_expected_messages_internal(domain: string, file: string, line: number, func: 
string): void;
+export function test_bug(bug_uri_snippet: string): void;
+export function test_bug_base(uri_pattern: string): void;
+export function test_expect_message(log_domain: string | null, log_level: LogLevelFlags, pattern: string): 
void;
+export function test_fail(): void;
+export function test_failed(): boolean;
+export function test_get_dir(file_type: TestFileType): string;
+export function test_get_path(): string;
+export function test_incomplete(msg?: string | null): void;
+export function test_log_type_name(log_type: TestLogType): string;
+export function test_queue_destroy(destroy_data?: any | null): void;
+export function test_queue_free(gfree_pointer?: any | null): void;
+export function test_rand_double(): number;
+export function test_rand_double_range(range_start: number, range_end: number): number;
+export function test_rand_int(): number;
+export function test_rand_int_range(begin: number, end: number): number;
+export function test_run(): number;
+export function test_run_suite(suite: TestSuite): number;
+export function test_set_nonfatal_assertions(): void;
+export function test_skip(msg?: string | null): void;
+export function test_subprocess(): boolean;
+export function test_summary(summary: string): void;
+export function test_timer_elapsed(): number;
+export function test_timer_last(): number;
+export function test_timer_start(): void;
+export function test_trap_assertions(
+    domain: string,
+    file: string,
+    line: number,
+    func: string,
+    assertion_flags: number,
+    pattern: string
+): void;
+export function test_trap_fork(usec_timeout: number, test_trap_flags: TestTrapFlags): boolean;
+export function test_trap_has_passed(): boolean;
+export function test_trap_reached_timeout(): boolean;
+export function test_trap_subprocess(
+    test_path: string | null,
+    usec_timeout: number,
+    test_flags: TestSubprocessFlags
+): void;
+export function thread_error_quark(): Quark;
+export function thread_exit(retval?: any | null): void;
+export function thread_pool_get_max_idle_time(): number;
+export function thread_pool_get_max_unused_threads(): number;
+export function thread_pool_get_num_unused_threads(): number;
+export function thread_pool_set_max_idle_time(interval: number): void;
+export function thread_pool_set_max_unused_threads(max_threads: number): void;
+export function thread_pool_stop_unused_threads(): void;
+export function thread_self(): Thread;
+export function thread_yield(): void;
+export function time_val_from_iso8601(iso_date: string): [boolean, TimeVal];
+export function timeout_add(
+    priority: number,
+    interval: number,
+    _function: SourceFunc,
+    notify?: DestroyNotify | null
+): number;
+export function timeout_add_seconds(
+    priority: number,
+    interval: number,
+    _function: SourceFunc,
+    notify?: DestroyNotify | null
+): number;
+export function timeout_source_new(interval: number): Source;
+export function timeout_source_new_seconds(interval: number): Source;
+export function trash_stack_height(stack_p: TrashStack): number;
+export function trash_stack_peek(stack_p: TrashStack): any | null;
+export function trash_stack_pop(stack_p: TrashStack): any | null;
+export function trash_stack_push(stack_p: TrashStack, data_p: any): void;
+export function try_malloc(n_bytes: number): any | null;
+export function try_malloc0(n_bytes: number): any | null;
+export function try_malloc0_n(n_blocks: number, n_block_bytes: number): any | null;
+export function try_malloc_n(n_blocks: number, n_block_bytes: number): any | null;
+export function try_realloc(mem: any | null, n_bytes: number): any | null;
+export function try_realloc_n(mem: any | null, n_blocks: number, n_block_bytes: number): any | null;
+export function ucs4_to_utf16(str: number, len: number): [number, number, number];
+export function ucs4_to_utf8(str: number, len: number): [string, number, number];
+export function unichar_break_type(c: number): UnicodeBreakType;
+export function unichar_combining_class(uc: number): number;
+export function unichar_compose(a: number, b: number): [boolean, number];
+export function unichar_decompose(ch: number): [boolean, number, number];
+export function unichar_digit_value(c: number): number;
+export function unichar_fully_decompose(ch: number, compat: boolean, result_len: number): [number, number];
+export function unichar_get_mirror_char(ch: number, mirrored_ch: number): boolean;
+export function unichar_get_script(ch: number): UnicodeScript;
+export function unichar_isalnum(c: number): boolean;
+export function unichar_isalpha(c: number): boolean;
+export function unichar_iscntrl(c: number): boolean;
+export function unichar_isdefined(c: number): boolean;
+export function unichar_isdigit(c: number): boolean;
+export function unichar_isgraph(c: number): boolean;
+export function unichar_islower(c: number): boolean;
+export function unichar_ismark(c: number): boolean;
+export function unichar_isprint(c: number): boolean;
+export function unichar_ispunct(c: number): boolean;
+export function unichar_isspace(c: number): boolean;
+export function unichar_istitle(c: number): boolean;
+export function unichar_isupper(c: number): boolean;
+export function unichar_iswide(c: number): boolean;
+export function unichar_iswide_cjk(c: number): boolean;
+export function unichar_isxdigit(c: number): boolean;
+export function unichar_iszerowidth(c: number): boolean;
+export function unichar_to_utf8(c: number): [number, string];
+export function unichar_tolower(c: number): number;
+export function unichar_totitle(c: number): number;
+export function unichar_toupper(c: number): number;
+export function unichar_type(c: number): UnicodeType;
+export function unichar_validate(ch: number): boolean;
+export function unichar_xdigit_value(c: number): number;
+export function unicode_canonical_decomposition(ch: number, result_len: number): number;
+export function unicode_canonical_ordering(string: number, len: number): void;
+export function unicode_script_from_iso15924(iso15924: number): UnicodeScript;
+export function unicode_script_to_iso15924(script: UnicodeScript): number;
+export function unix_error_quark(): Quark;
+export function unix_fd_add_full(
+    priority: number,
+    fd: number,
+    condition: IOCondition,
+    _function: UnixFDSourceFunc
+): number;
+export function unix_fd_source_new(fd: number, condition: IOCondition): Source;
+export function unix_get_passwd_entry(user_name: string): any | null;
+export function unix_open_pipe(fds: number, flags: number): boolean;
+export function unix_set_fd_nonblocking(fd: number, nonblock: boolean): boolean;
+export function unix_signal_add(priority: number, signum: number, handler: SourceFunc): number;
+export function unix_signal_source_new(signum: number): Source;
+export function unlink(filename: string): number;
+export function unsetenv(variable: string): void;
+export function uri_build(
+    flags: UriFlags,
+    scheme: string,
+    userinfo: string | null,
+    host: string | null,
+    port: number,
+    path: string,
+    query?: string | null,
+    fragment?: string | null
+): Uri;
+export function uri_build_with_user(
+    flags: UriFlags,
+    scheme: string,
+    user: string | null,
+    password: string | null,
+    auth_params: string | null,
+    host: string | null,
+    port: number,
+    path: string,
+    query?: string | null,
+    fragment?: string | null
+): Uri;
+export function uri_error_quark(): Quark;
+export function uri_escape_bytes(unescaped: Uint8Array | string, reserved_chars_allowed?: string | null): 
string;
+export function uri_escape_string(
+    unescaped: string,
+    reserved_chars_allowed: string | null,
+    allow_utf8: boolean
+): string;
+export function uri_is_valid(uri_string: string, flags: UriFlags): boolean;
+export function uri_join(
+    flags: UriFlags,
+    scheme: string | null,
+    userinfo: string | null,
+    host: string | null,
+    port: number,
+    path: string,
+    query?: string | null,
+    fragment?: string | null
+): string;
+export function uri_join_with_user(
+    flags: UriFlags,
+    scheme: string | null,
+    user: string | null,
+    password: string | null,
+    auth_params: string | null,
+    host: string | null,
+    port: number,
+    path: string,
+    query?: string | null,
+    fragment?: string | null
+): string;
+export function uri_list_extract_uris(uri_list: string): string[];
+export function uri_parse(uri_string: string, flags: UriFlags): Uri;
+export function uri_parse_params(
+    params: string,
+    length: number,
+    separators: string,
+    flags: UriParamsFlags
+): HashTable<string, string>;
+export function uri_parse_scheme(uri: string): string | null;
+export function uri_peek_scheme(uri: string): string | null;
+export function uri_resolve_relative(base_uri_string: string | null, uri_ref: string, flags: UriFlags): 
string;
+export function uri_split(
+    uri_ref: string,
+    flags: UriFlags
+): [boolean, string, string, string, number, string, string, string];
+export function uri_split_network(uri_string: string, flags: UriFlags): [boolean, string, string, number];
+export function uri_split_with_user(
+    uri_ref: string,
+    flags: UriFlags
+): [boolean, string, string, string, string, string, number, string, string, string];
+export function uri_unescape_bytes(escaped_string: string, length: number, illegal_characters?: string | 
null): Bytes;
+export function uri_unescape_segment(
+    escaped_string?: string | null,
+    escaped_string_end?: string | null,
+    illegal_characters?: string | null
+): string | null;
+export function uri_unescape_string(escaped_string: string, illegal_characters?: string | null): string | 
null;
+export function usleep(microseconds: number): void;
+export function utf16_to_ucs4(str: number, len: number): [number, number, number];
+export function utf16_to_utf8(str: number, len: number): [string, number, number];
+export function utf8_casefold(str: string, len: number): string;
+export function utf8_collate(str1: string, str2: string): number;
+export function utf8_collate_key(str: string, len: number): string;
+export function utf8_collate_key_for_filename(str: string, len: number): string;
+export function utf8_find_next_char(p: string, end?: string | null): string | null;
+export function utf8_find_prev_char(str: string, p: string): string | null;
+export function utf8_get_char(p: string): number;
+export function utf8_get_char_validated(p: string, max_len: number): number;
+export function utf8_make_valid(str: string, len: number): string;
+export function utf8_normalize(str: string, len: number, mode: NormalizeMode): string | null;
+export function utf8_offset_to_pointer(str: string, offset: number): string;
+export function utf8_pointer_to_offset(str: string, pos: string): number;
+export function utf8_prev_char(p: string): string;
+export function utf8_strchr(p: string, len: number, c: number): string | null;
+export function utf8_strdown(str: string, len: number): string;
+export function utf8_strlen(p: string, max: number): number;
+export function utf8_strncpy(dest: string, src: string, n: number): string;
+export function utf8_strrchr(p: string, len: number, c: number): string | null;
+export function utf8_strreverse(str: string, len: number): string;
+export function utf8_strup(str: string, len: number): string;
+export function utf8_substring(str: string, start_pos: number, end_pos: number): string;
+export function utf8_to_ucs4(str: string, len: number): [number, number, number];
+export function utf8_to_ucs4_fast(str: string, len: number): [number, number];
+export function utf8_to_utf16(str: string, len: number): [number, number, number];
+export function utf8_validate(str: Uint8Array | string): [boolean, string];
+export function utf8_validate_len(str: Uint8Array | string): [boolean, string];
+export function uuid_string_is_valid(str: string): boolean;
+export function uuid_string_random(): string;
+export function variant_get_gtype(): GObject.GType;
+export function variant_is_object_path(string: string): boolean;
+export function variant_is_signature(string: string): boolean;
+export function variant_parse(
+    type: VariantType | null,
+    text: string,
+    limit?: string | null,
+    endptr?: string | null
+): Variant;
+export function variant_parse_error_print_context(error: Error, source_str: string): string;
+export function variant_parse_error_quark(): Quark;
+export function variant_parser_get_error_quark(): Quark;
+export function variant_type_checked_(arg0: string): VariantType;
+export function variant_type_string_get_depth_(type_string: string): number;
+export function variant_type_string_is_valid(type_string: string): boolean;
+export function variant_type_string_scan(string: string, limit: string | null): [boolean, string];
+export type ChildWatchFunc = (pid: Pid, wait_status: number) => void;
+export type ClearHandleFunc = (handle_id: number) => void;
+export type CompareDataFunc = (a?: any | null, b?: any | null) => number;
+export type CompareFunc = (a?: any | null, b?: any | null) => number;
+export type CopyFunc = (src: any, data?: any | null) => any;
+export type DataForeachFunc = (key_id: Quark, data?: any | null) => void;
+export type DestroyNotify = (data?: any | null) => void;
+export type DuplicateFunc = (data?: any | null) => any | null;
+export type EqualFunc = (a?: any | null, b?: any | null) => boolean;
+export type ErrorClearFunc = (error: Error) => void;
+export type ErrorCopyFunc = (src_error: Error, dest_error: Error) => void;
+export type ErrorInitFunc = (error: Error) => void;
+export type FreeFunc = (data?: any | null) => void;
+export type Func = (data?: any | null) => void;
+export type HFunc = (key?: any | null, value?: any | null) => void;
+export type HRFunc = (key?: any | null, value?: any | null) => boolean;
+export type HashFunc = (key?: any | null) => number;
+export type HookCheckFunc = (data?: any | null) => boolean;
+export type HookCheckMarshaller = (hook: Hook, marshal_data?: any | null) => boolean;
+export type HookCompareFunc = (new_hook: Hook, sibling: Hook) => number;
+export type HookFinalizeFunc = (hook_list: HookList, hook: Hook) => void;
+export type HookFindFunc = (hook: Hook, data?: any | null) => boolean;
+export type HookFunc = (data?: any | null) => void;
+export type HookMarshaller = (hook: Hook, marshal_data?: any | null) => void;
+export type IOFunc = (source: IOChannel, condition: IOCondition, data?: any | null) => boolean;
+export type LogFunc = (log_domain: string, log_level: LogLevelFlags, message: string) => void;
+export type LogWriterFunc = (log_level: LogLevelFlags, fields: LogField[]) => LogWriterOutput;
+export type NodeForeachFunc = (node: Node, data?: any | null) => void;
+export type NodeTraverseFunc = (node: Node, data?: any | null) => boolean;
+export type OptionArgFunc = (option_name: string, value: string, data?: any | null) => boolean;
+export type OptionErrorFunc = (context: OptionContext, group: OptionGroup, data?: any | null) => void;
+export type OptionParseFunc = (context: OptionContext, group: OptionGroup, data?: any | null) => boolean;
+export type PollFunc = (ufds: PollFD, nfsd: number, timeout_: number) => number;
+export type PrintFunc = (string: string) => void;
+export type RegexEvalCallback = (match_info: MatchInfo, result: String) => boolean;
+export type ScannerMsgFunc = (scanner: Scanner, message: string, error: boolean) => void;
+export type SequenceIterCompareFunc = (a: SequenceIter, b: SequenceIter, data?: any | null) => number;
+export type SourceDisposeFunc = (source: Source) => void;
+export type SourceDummyMarshal = () => void;
+export type SourceFunc = () => boolean;
+export type SpawnChildSetupFunc = () => void;
+export type TestDataFunc = () => void;
+export type TestFixtureFunc = (fixture: any) => void;
+export type TestFunc = () => void;
+export type TestLogFatalFunc = (log_domain: string, log_level: LogLevelFlags, message: string) => boolean;
+export type ThreadFunc = (data?: any | null) => any | null;
+export type TranslateFunc = (str: string, data?: any | null) => string;
+export type TraverseFunc = (key?: any | null, value?: any | null, data?: any | null) => boolean;
+export type TraverseNodeFunc = (node: TreeNode, data?: any | null) => boolean;
+export type UnixFDSourceFunc = (fd: number, condition: IOCondition) => boolean;
+export type VoidFunc = () => void;
+
+export class BookmarkFileError extends Error {
+    static $gtype: GObject.GType<BookmarkFileError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: BookmarkFileError);
+
+    // Fields
+    static INVALID_URI: number;
+    static INVALID_VALUE: number;
+    static APP_NOT_REGISTERED: number;
+    static URI_NOT_FOUND: number;
+    static READ: number;
+    static UNKNOWN_ENCODING: number;
+    static WRITE: number;
+    static FILE_NOT_FOUND: number;
+}
+
+export namespace ChecksumType {
+    export const $gtype: GObject.GType<ChecksumType>;
+}
+
+export enum ChecksumType {
+    MD5 = 0,
+    SHA1 = 1,
+    SHA256 = 2,
+    SHA512 = 3,
+    SHA384 = 4,
+}
+
+export class ConvertError extends Error {
+    static $gtype: GObject.GType<ConvertError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ConvertError);
+
+    // Fields
+    static NO_CONVERSION: number;
+    static ILLEGAL_SEQUENCE: number;
+    static FAILED: number;
+    static PARTIAL_INPUT: number;
+    static BAD_URI: number;
+    static NOT_ABSOLUTE_PATH: number;
+    static NO_MEMORY: number;
+    static EMBEDDED_NUL: number;
+}
+
+export namespace DateDMY {
+    export const $gtype: GObject.GType<DateDMY>;
+}
+
+export enum DateDMY {
+    DAY = 0,
+    MONTH = 1,
+    YEAR = 2,
+}
+
+export namespace DateMonth {
+    export const $gtype: GObject.GType<DateMonth>;
+}
+
+export enum DateMonth {
+    BAD_MONTH = 0,
+    JANUARY = 1,
+    FEBRUARY = 2,
+    MARCH = 3,
+    APRIL = 4,
+    MAY = 5,
+    JUNE = 6,
+    JULY = 7,
+    AUGUST = 8,
+    SEPTEMBER = 9,
+    OCTOBER = 10,
+    NOVEMBER = 11,
+    DECEMBER = 12,
+}
+
+export namespace DateWeekday {
+    export const $gtype: GObject.GType<DateWeekday>;
+}
+
+export enum DateWeekday {
+    BAD_WEEKDAY = 0,
+    MONDAY = 1,
+    TUESDAY = 2,
+    WEDNESDAY = 3,
+    THURSDAY = 4,
+    FRIDAY = 5,
+    SATURDAY = 6,
+    SUNDAY = 7,
+}
+
+export namespace ErrorType {
+    export const $gtype: GObject.GType<ErrorType>;
+}
+
+export enum ErrorType {
+    UNKNOWN = 0,
+    UNEXP_EOF = 1,
+    UNEXP_EOF_IN_STRING = 2,
+    UNEXP_EOF_IN_COMMENT = 3,
+    NON_DIGIT_IN_CONST = 4,
+    DIGIT_RADIX = 5,
+    FLOAT_RADIX = 6,
+    FLOAT_MALFORMED = 7,
+}
+
+export class FileError extends Error {
+    static $gtype: GObject.GType<FileError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: FileError);
+
+    // Fields
+    static EXIST: number;
+    static ISDIR: number;
+    static ACCES: number;
+    static NAMETOOLONG: number;
+    static NOENT: number;
+    static NOTDIR: number;
+    static NXIO: number;
+    static NODEV: number;
+    static ROFS: number;
+    static TXTBSY: number;
+    static FAULT: number;
+    static LOOP: number;
+    static NOSPC: number;
+    static NOMEM: number;
+    static MFILE: number;
+    static NFILE: number;
+    static BADF: number;
+    static INVAL: number;
+    static PIPE: number;
+    static AGAIN: number;
+    static INTR: number;
+    static IO: number;
+    static PERM: number;
+    static NOSYS: number;
+    static FAILED: number;
+}
+
+export class IOChannelError extends Error {
+    static $gtype: GObject.GType<IOChannelError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: IOChannelError);
+
+    // Fields
+    static FBIG: number;
+    static INVAL: number;
+    static IO: number;
+    static ISDIR: number;
+    static NOSPC: number;
+    static NXIO: number;
+    static OVERFLOW: number;
+    static PIPE: number;
+    static FAILED: number;
+}
+
+export namespace IOError {
+    export const $gtype: GObject.GType<IOError>;
+}
+
+export enum IOError {
+    NONE = 0,
+    AGAIN = 1,
+    INVAL = 2,
+    UNKNOWN = 3,
+}
+
+export namespace IOStatus {
+    export const $gtype: GObject.GType<IOStatus>;
+}
+
+export enum IOStatus {
+    ERROR = 0,
+    NORMAL = 1,
+    EOF = 2,
+    AGAIN = 3,
+}
+
+export class KeyFileError extends Error {
+    static $gtype: GObject.GType<KeyFileError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: KeyFileError);
+
+    // Fields
+    static UNKNOWN_ENCODING: number;
+    static PARSE: number;
+    static NOT_FOUND: number;
+    static KEY_NOT_FOUND: number;
+    static GROUP_NOT_FOUND: number;
+    static INVALID_VALUE: number;
+}
+
+export namespace LogWriterOutput {
+    export const $gtype: GObject.GType<LogWriterOutput>;
+}
+
+export enum LogWriterOutput {
+    HANDLED = 1,
+    UNHANDLED = 0,
+}
+
+export class MarkupError extends Error {
+    static $gtype: GObject.GType<MarkupError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: MarkupError);
+
+    // Fields
+    static BAD_UTF8: number;
+    static EMPTY: number;
+    static PARSE: number;
+    static UNKNOWN_ELEMENT: number;
+    static UNKNOWN_ATTRIBUTE: number;
+    static INVALID_CONTENT: number;
+    static MISSING_ATTRIBUTE: number;
+}
+
+export namespace NormalizeMode {
+    export const $gtype: GObject.GType<NormalizeMode>;
+}
+
+export enum NormalizeMode {
+    DEFAULT = 0,
+    NFD = 0,
+    DEFAULT_COMPOSE = 1,
+    NFC = 1,
+    ALL = 2,
+    NFKD = 2,
+    ALL_COMPOSE = 3,
+    NFKC = 3,
+}
+
+export class NumberParserError extends Error {
+    static $gtype: GObject.GType<NumberParserError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: NumberParserError);
+
+    // Fields
+    static INVALID: number;
+    static OUT_OF_BOUNDS: number;
+}
+
+export namespace OnceStatus {
+    export const $gtype: GObject.GType<OnceStatus>;
+}
+
+export enum OnceStatus {
+    NOTCALLED = 0,
+    PROGRESS = 1,
+    READY = 2,
+}
+
+export namespace OptionArg {
+    export const $gtype: GObject.GType<OptionArg>;
+}
+
+export enum OptionArg {
+    NONE = 0,
+    STRING = 1,
+    INT = 2,
+    CALLBACK = 3,
+    FILENAME = 4,
+    STRING_ARRAY = 5,
+    FILENAME_ARRAY = 6,
+    DOUBLE = 7,
+    INT64 = 8,
+}
+
+export class OptionError extends Error {
+    static $gtype: GObject.GType<OptionError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: OptionError);
+
+    // Fields
+    static UNKNOWN_OPTION: number;
+    static BAD_VALUE: number;
+    static FAILED: number;
+}
+
+export class RegexError extends Error {
+    static $gtype: GObject.GType<RegexError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: RegexError);
+
+    // Fields
+    static COMPILE: number;
+    static OPTIMIZE: number;
+    static REPLACE: number;
+    static MATCH: number;
+    static INTERNAL: number;
+    static STRAY_BACKSLASH: number;
+    static MISSING_CONTROL_CHAR: number;
+    static UNRECOGNIZED_ESCAPE: number;
+    static QUANTIFIERS_OUT_OF_ORDER: number;
+    static QUANTIFIER_TOO_BIG: number;
+    static UNTERMINATED_CHARACTER_CLASS: number;
+    static INVALID_ESCAPE_IN_CHARACTER_CLASS: number;
+    static RANGE_OUT_OF_ORDER: number;
+    static NOTHING_TO_REPEAT: number;
+    static UNRECOGNIZED_CHARACTER: number;
+    static POSIX_NAMED_CLASS_OUTSIDE_CLASS: number;
+    static UNMATCHED_PARENTHESIS: number;
+    static INEXISTENT_SUBPATTERN_REFERENCE: number;
+    static UNTERMINATED_COMMENT: number;
+    static EXPRESSION_TOO_LARGE: number;
+    static MEMORY_ERROR: number;
+    static VARIABLE_LENGTH_LOOKBEHIND: number;
+    static MALFORMED_CONDITION: number;
+    static TOO_MANY_CONDITIONAL_BRANCHES: number;
+    static ASSERTION_EXPECTED: number;
+    static UNKNOWN_POSIX_CLASS_NAME: number;
+    static POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: number;
+    static HEX_CODE_TOO_LARGE: number;
+    static INVALID_CONDITION: number;
+    static SINGLE_BYTE_MATCH_IN_LOOKBEHIND: number;
+    static INFINITE_LOOP: number;
+    static MISSING_SUBPATTERN_NAME_TERMINATOR: number;
+    static DUPLICATE_SUBPATTERN_NAME: number;
+    static MALFORMED_PROPERTY: number;
+    static UNKNOWN_PROPERTY: number;
+    static SUBPATTERN_NAME_TOO_LONG: number;
+    static TOO_MANY_SUBPATTERNS: number;
+    static INVALID_OCTAL_VALUE: number;
+    static TOO_MANY_BRANCHES_IN_DEFINE: number;
+    static DEFINE_REPETION: number;
+    static INCONSISTENT_NEWLINE_OPTIONS: number;
+    static MISSING_BACK_REFERENCE: number;
+    static INVALID_RELATIVE_REFERENCE: number;
+    static BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: number;
+    static UNKNOWN_BACKTRACKING_CONTROL_VERB: number;
+    static NUMBER_TOO_BIG: number;
+    static MISSING_SUBPATTERN_NAME: number;
+    static MISSING_DIGIT: number;
+    static INVALID_DATA_CHARACTER: number;
+    static EXTRA_SUBPATTERN_NAME: number;
+    static BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: number;
+    static INVALID_CONTROL_CHAR: number;
+    static MISSING_NAME: number;
+    static NOT_SUPPORTED_IN_CLASS: number;
+    static TOO_MANY_FORWARD_REFERENCES: number;
+    static NAME_TOO_LONG: number;
+    static CHARACTER_VALUE_TOO_LARGE: number;
+}
+
+export namespace SeekType {
+    export const $gtype: GObject.GType<SeekType>;
+}
+
+export enum SeekType {
+    CUR = 0,
+    SET = 1,
+    END = 2,
+}
+
+export class ShellError extends Error {
+    static $gtype: GObject.GType<ShellError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ShellError);
+
+    // Fields
+    static BAD_QUOTING: number;
+    static EMPTY_STRING: number;
+    static FAILED: number;
+}
+
+export namespace SliceConfig {
+    export const $gtype: GObject.GType<SliceConfig>;
+}
+
+export enum SliceConfig {
+    ALWAYS_MALLOC = 1,
+    BYPASS_MAGAZINES = 2,
+    WORKING_SET_MSECS = 3,
+    COLOR_INCREMENT = 4,
+    CHUNK_SIZES = 5,
+    CONTENTION_COUNTER = 6,
+}
+
+export class SpawnError extends Error {
+    static $gtype: GObject.GType<SpawnError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: SpawnError);
+
+    // Fields
+    static FORK: number;
+    static READ: number;
+    static CHDIR: number;
+    static ACCES: number;
+    static PERM: number;
+    static TOO_BIG: number;
+    static "2BIG": number;
+    static NOEXEC: number;
+    static NAMETOOLONG: number;
+    static NOENT: number;
+    static NOMEM: number;
+    static NOTDIR: number;
+    static LOOP: number;
+    static TXTBUSY: number;
+    static IO: number;
+    static NFILE: number;
+    static MFILE: number;
+    static INVAL: number;
+    static ISDIR: number;
+    static LIBBAD: number;
+    static FAILED: number;
+}
+
+export namespace TestFileType {
+    export const $gtype: GObject.GType<TestFileType>;
+}
+
+export enum TestFileType {
+    DIST = 0,
+    BUILT = 1,
+}
+
+export namespace TestLogType {
+    export const $gtype: GObject.GType<TestLogType>;
+}
+
+export enum TestLogType {
+    NONE = 0,
+    ERROR = 1,
+    START_BINARY = 2,
+    LIST_CASE = 3,
+    SKIP_CASE = 4,
+    START_CASE = 5,
+    STOP_CASE = 6,
+    MIN_RESULT = 7,
+    MAX_RESULT = 8,
+    MESSAGE = 9,
+    START_SUITE = 10,
+    STOP_SUITE = 11,
+}
+
+export namespace TestResult {
+    export const $gtype: GObject.GType<TestResult>;
+}
+
+export enum TestResult {
+    SUCCESS = 0,
+    SKIPPED = 1,
+    FAILURE = 2,
+    INCOMPLETE = 3,
+}
+
+export class ThreadError extends Error {
+    static $gtype: GObject.GType<ThreadError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ThreadError);
+
+    // Fields
+    static THREAD_ERROR_AGAIN: number;
+}
+
+export namespace TimeType {
+    export const $gtype: GObject.GType<TimeType>;
+}
+
+export enum TimeType {
+    STANDARD = 0,
+    DAYLIGHT = 1,
+    UNIVERSAL = 2,
+}
+
+export namespace TokenType {
+    export const $gtype: GObject.GType<TokenType>;
+}
+
+export enum TokenType {
+    EOF = 0,
+    LEFT_PAREN = 40,
+    RIGHT_PAREN = 41,
+    LEFT_CURLY = 123,
+    RIGHT_CURLY = 125,
+    LEFT_BRACE = 91,
+    RIGHT_BRACE = 93,
+    EQUAL_SIGN = 61,
+    COMMA = 44,
+    NONE = 256,
+    ERROR = 257,
+    CHAR = 258,
+    BINARY = 259,
+    OCTAL = 260,
+    INT = 261,
+    HEX = 262,
+    FLOAT = 263,
+    STRING = 264,
+    SYMBOL = 265,
+    IDENTIFIER = 266,
+    IDENTIFIER_NULL = 267,
+    COMMENT_SINGLE = 268,
+    COMMENT_MULTI = 269,
+}
+
+export namespace TraverseType {
+    export const $gtype: GObject.GType<TraverseType>;
+}
+
+export enum TraverseType {
+    IN_ORDER = 0,
+    PRE_ORDER = 1,
+    POST_ORDER = 2,
+    LEVEL_ORDER = 3,
+}
+
+export namespace UnicodeBreakType {
+    export const $gtype: GObject.GType<UnicodeBreakType>;
+}
+
+export enum UnicodeBreakType {
+    MANDATORY = 0,
+    CARRIAGE_RETURN = 1,
+    LINE_FEED = 2,
+    COMBINING_MARK = 3,
+    SURROGATE = 4,
+    ZERO_WIDTH_SPACE = 5,
+    INSEPARABLE = 6,
+    NON_BREAKING_GLUE = 7,
+    CONTINGENT = 8,
+    SPACE = 9,
+    AFTER = 10,
+    BEFORE = 11,
+    BEFORE_AND_AFTER = 12,
+    HYPHEN = 13,
+    NON_STARTER = 14,
+    OPEN_PUNCTUATION = 15,
+    CLOSE_PUNCTUATION = 16,
+    QUOTATION = 17,
+    EXCLAMATION = 18,
+    IDEOGRAPHIC = 19,
+    NUMERIC = 20,
+    INFIX_SEPARATOR = 21,
+    SYMBOL = 22,
+    ALPHABETIC = 23,
+    PREFIX = 24,
+    POSTFIX = 25,
+    COMPLEX_CONTEXT = 26,
+    AMBIGUOUS = 27,
+    UNKNOWN = 28,
+    NEXT_LINE = 29,
+    WORD_JOINER = 30,
+    HANGUL_L_JAMO = 31,
+    HANGUL_V_JAMO = 32,
+    HANGUL_T_JAMO = 33,
+    HANGUL_LV_SYLLABLE = 34,
+    HANGUL_LVT_SYLLABLE = 35,
+    CLOSE_PARANTHESIS = 36,
+    CLOSE_PARENTHESIS = 36,
+    CONDITIONAL_JAPANESE_STARTER = 37,
+    HEBREW_LETTER = 38,
+    REGIONAL_INDICATOR = 39,
+    EMOJI_BASE = 40,
+    EMOJI_MODIFIER = 41,
+    ZERO_WIDTH_JOINER = 42,
+}
+
+export namespace UnicodeScript {
+    export const $gtype: GObject.GType<UnicodeScript>;
+}
+
+export enum UnicodeScript {
+    INVALID_CODE = -1,
+    COMMON = 0,
+    INHERITED = 1,
+    ARABIC = 2,
+    ARMENIAN = 3,
+    BENGALI = 4,
+    BOPOMOFO = 5,
+    CHEROKEE = 6,
+    COPTIC = 7,
+    CYRILLIC = 8,
+    DESERET = 9,
+    DEVANAGARI = 10,
+    ETHIOPIC = 11,
+    GEORGIAN = 12,
+    GOTHIC = 13,
+    GREEK = 14,
+    GUJARATI = 15,
+    GURMUKHI = 16,
+    HAN = 17,
+    HANGUL = 18,
+    HEBREW = 19,
+    HIRAGANA = 20,
+    KANNADA = 21,
+    KATAKANA = 22,
+    KHMER = 23,
+    LAO = 24,
+    LATIN = 25,
+    MALAYALAM = 26,
+    MONGOLIAN = 27,
+    MYANMAR = 28,
+    OGHAM = 29,
+    OLD_ITALIC = 30,
+    ORIYA = 31,
+    RUNIC = 32,
+    SINHALA = 33,
+    SYRIAC = 34,
+    TAMIL = 35,
+    TELUGU = 36,
+    THAANA = 37,
+    THAI = 38,
+    TIBETAN = 39,
+    CANADIAN_ABORIGINAL = 40,
+    YI = 41,
+    TAGALOG = 42,
+    HANUNOO = 43,
+    BUHID = 44,
+    TAGBANWA = 45,
+    BRAILLE = 46,
+    CYPRIOT = 47,
+    LIMBU = 48,
+    OSMANYA = 49,
+    SHAVIAN = 50,
+    LINEAR_B = 51,
+    TAI_LE = 52,
+    UGARITIC = 53,
+    NEW_TAI_LUE = 54,
+    BUGINESE = 55,
+    GLAGOLITIC = 56,
+    TIFINAGH = 57,
+    SYLOTI_NAGRI = 58,
+    OLD_PERSIAN = 59,
+    KHAROSHTHI = 60,
+    UNKNOWN = 61,
+    BALINESE = 62,
+    CUNEIFORM = 63,
+    PHOENICIAN = 64,
+    PHAGS_PA = 65,
+    NKO = 66,
+    KAYAH_LI = 67,
+    LEPCHA = 68,
+    REJANG = 69,
+    SUNDANESE = 70,
+    SAURASHTRA = 71,
+    CHAM = 72,
+    OL_CHIKI = 73,
+    VAI = 74,
+    CARIAN = 75,
+    LYCIAN = 76,
+    LYDIAN = 77,
+    AVESTAN = 78,
+    BAMUM = 79,
+    EGYPTIAN_HIEROGLYPHS = 80,
+    IMPERIAL_ARAMAIC = 81,
+    INSCRIPTIONAL_PAHLAVI = 82,
+    INSCRIPTIONAL_PARTHIAN = 83,
+    JAVANESE = 84,
+    KAITHI = 85,
+    LISU = 86,
+    MEETEI_MAYEK = 87,
+    OLD_SOUTH_ARABIAN = 88,
+    OLD_TURKIC = 89,
+    SAMARITAN = 90,
+    TAI_THAM = 91,
+    TAI_VIET = 92,
+    BATAK = 93,
+    BRAHMI = 94,
+    MANDAIC = 95,
+    CHAKMA = 96,
+    MEROITIC_CURSIVE = 97,
+    MEROITIC_HIEROGLYPHS = 98,
+    MIAO = 99,
+    SHARADA = 100,
+    SORA_SOMPENG = 101,
+    TAKRI = 102,
+    BASSA_VAH = 103,
+    CAUCASIAN_ALBANIAN = 104,
+    DUPLOYAN = 105,
+    ELBASAN = 106,
+    GRANTHA = 107,
+    KHOJKI = 108,
+    KHUDAWADI = 109,
+    LINEAR_A = 110,
+    MAHAJANI = 111,
+    MANICHAEAN = 112,
+    MENDE_KIKAKUI = 113,
+    MODI = 114,
+    MRO = 115,
+    NABATAEAN = 116,
+    OLD_NORTH_ARABIAN = 117,
+    OLD_PERMIC = 118,
+    PAHAWH_HMONG = 119,
+    PALMYRENE = 120,
+    PAU_CIN_HAU = 121,
+    PSALTER_PAHLAVI = 122,
+    SIDDHAM = 123,
+    TIRHUTA = 124,
+    WARANG_CITI = 125,
+    AHOM = 126,
+    ANATOLIAN_HIEROGLYPHS = 127,
+    HATRAN = 128,
+    MULTANI = 129,
+    OLD_HUNGARIAN = 130,
+    SIGNWRITING = 131,
+    ADLAM = 132,
+    BHAIKSUKI = 133,
+    MARCHEN = 134,
+    NEWA = 135,
+    OSAGE = 136,
+    TANGUT = 137,
+    MASARAM_GONDI = 138,
+    NUSHU = 139,
+    SOYOMBO = 140,
+    ZANABAZAR_SQUARE = 141,
+    DOGRA = 142,
+    GUNJALA_GONDI = 143,
+    HANIFI_ROHINGYA = 144,
+    MAKASAR = 145,
+    MEDEFAIDRIN = 146,
+    OLD_SOGDIAN = 147,
+    SOGDIAN = 148,
+    ELYMAIC = 149,
+    NANDINAGARI = 150,
+    NYIAKENG_PUACHUE_HMONG = 151,
+    WANCHO = 152,
+    CHORASMIAN = 153,
+    DIVES_AKURU = 154,
+    KHITAN_SMALL_SCRIPT = 155,
+    YEZIDI = 156,
+    CYPRO_MINOAN = 157,
+    OLD_UYGHUR = 158,
+    TANGSA = 159,
+    TOTO = 160,
+    VITHKUQI = 161,
+    MATH = 162,
+}
+
+export namespace UnicodeType {
+    export const $gtype: GObject.GType<UnicodeType>;
+}
+
+export enum UnicodeType {
+    CONTROL = 0,
+    FORMAT = 1,
+    UNASSIGNED = 2,
+    PRIVATE_USE = 3,
+    SURROGATE = 4,
+    LOWERCASE_LETTER = 5,
+    MODIFIER_LETTER = 6,
+    OTHER_LETTER = 7,
+    TITLECASE_LETTER = 8,
+    UPPERCASE_LETTER = 9,
+    SPACING_MARK = 10,
+    ENCLOSING_MARK = 11,
+    NON_SPACING_MARK = 12,
+    DECIMAL_NUMBER = 13,
+    LETTER_NUMBER = 14,
+    OTHER_NUMBER = 15,
+    CONNECT_PUNCTUATION = 16,
+    DASH_PUNCTUATION = 17,
+    CLOSE_PUNCTUATION = 18,
+    FINAL_PUNCTUATION = 19,
+    INITIAL_PUNCTUATION = 20,
+    OTHER_PUNCTUATION = 21,
+    OPEN_PUNCTUATION = 22,
+    CURRENCY_SYMBOL = 23,
+    MODIFIER_SYMBOL = 24,
+    MATH_SYMBOL = 25,
+    OTHER_SYMBOL = 26,
+    LINE_SEPARATOR = 27,
+    PARAGRAPH_SEPARATOR = 28,
+    SPACE_SEPARATOR = 29,
+}
+
+export class UriError extends Error {
+    static $gtype: GObject.GType<UriError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: UriError);
+
+    // Fields
+    static FAILED: number;
+    static BAD_SCHEME: number;
+    static BAD_USER: number;
+    static BAD_PASSWORD: number;
+    static BAD_AUTH_PARAMS: number;
+    static BAD_HOST: number;
+    static BAD_PORT: number;
+    static BAD_PATH: number;
+    static BAD_QUERY: number;
+    static BAD_FRAGMENT: number;
+}
+
+export namespace UserDirectory {
+    export const $gtype: GObject.GType<UserDirectory>;
+}
+
+export enum UserDirectory {
+    DIRECTORY_DESKTOP = 0,
+    DIRECTORY_DOCUMENTS = 1,
+    DIRECTORY_DOWNLOAD = 2,
+    DIRECTORY_MUSIC = 3,
+    DIRECTORY_PICTURES = 4,
+    DIRECTORY_PUBLIC_SHARE = 5,
+    DIRECTORY_TEMPLATES = 6,
+    DIRECTORY_VIDEOS = 7,
+    N_DIRECTORIES = 8,
+}
+
+export namespace VariantClass {
+    export const $gtype: GObject.GType<VariantClass>;
+}
+
+export enum VariantClass {
+    BOOLEAN = 98,
+    BYTE = 121,
+    INT16 = 110,
+    UINT16 = 113,
+    INT32 = 105,
+    UINT32 = 117,
+    INT64 = 120,
+    UINT64 = 116,
+    HANDLE = 104,
+    DOUBLE = 100,
+    STRING = 115,
+    OBJECT_PATH = 111,
+    SIGNATURE = 103,
+    VARIANT = 118,
+    MAYBE = 109,
+    ARRAY = 97,
+    TUPLE = 40,
+    DICT_ENTRY = 123,
+}
+
+export class VariantParseError extends Error {
+    static $gtype: GObject.GType<VariantParseError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: VariantParseError);
+
+    // Fields
+    static FAILED: number;
+    static BASIC_TYPE_EXPECTED: number;
+    static CANNOT_INFER_TYPE: number;
+    static DEFINITE_TYPE_EXPECTED: number;
+    static INPUT_NOT_AT_END: number;
+    static INVALID_CHARACTER: number;
+    static INVALID_FORMAT_STRING: number;
+    static INVALID_OBJECT_PATH: number;
+    static INVALID_SIGNATURE: number;
+    static INVALID_TYPE_STRING: number;
+    static NO_COMMON_TYPE: number;
+    static NUMBER_OUT_OF_RANGE: number;
+    static NUMBER_TOO_BIG: number;
+    static TYPE_ERROR: number;
+    static UNEXPECTED_TOKEN: number;
+    static UNKNOWN_KEYWORD: number;
+    static UNTERMINATED_STRING_CONSTANT: number;
+    static VALUE_EXPECTED: number;
+    static RECURSION: number;
+}
+
+export namespace AsciiType {
+    export const $gtype: GObject.GType<AsciiType>;
+}
+
+export enum AsciiType {
+    ALNUM = 1,
+    ALPHA = 2,
+    CNTRL = 4,
+    DIGIT = 8,
+    GRAPH = 16,
+    LOWER = 32,
+    PRINT = 64,
+    PUNCT = 128,
+    SPACE = 256,
+    UPPER = 512,
+    XDIGIT = 1024,
+}
+
+export namespace FileSetContentsFlags {
+    export const $gtype: GObject.GType<FileSetContentsFlags>;
+}
+
+export enum FileSetContentsFlags {
+    NONE = 0,
+    CONSISTENT = 1,
+    DURABLE = 2,
+    ONLY_EXISTING = 4,
+}
+
+export namespace FileTest {
+    export const $gtype: GObject.GType<FileTest>;
+}
+
+export enum FileTest {
+    IS_REGULAR = 1,
+    IS_SYMLINK = 2,
+    IS_DIR = 4,
+    IS_EXECUTABLE = 8,
+    EXISTS = 16,
+}
+
+export namespace FormatSizeFlags {
+    export const $gtype: GObject.GType<FormatSizeFlags>;
+}
+
+export enum FormatSizeFlags {
+    DEFAULT = 0,
+    LONG_FORMAT = 1,
+    IEC_UNITS = 2,
+    BITS = 4,
+}
+
+export namespace HookFlagMask {
+    export const $gtype: GObject.GType<HookFlagMask>;
+}
+
+export enum HookFlagMask {
+    ACTIVE = 1,
+    IN_CALL = 2,
+    MASK = 15,
+}
+
+export namespace IOCondition {
+    export const $gtype: GObject.GType<IOCondition>;
+}
+
+export enum IOCondition {
+    IN = 1,
+    OUT = 4,
+    PRI = 2,
+    ERR = 8,
+    HUP = 16,
+    NVAL = 32,
+}
+
+export namespace IOFlags {
+    export const $gtype: GObject.GType<IOFlags>;
+}
+
+export enum IOFlags {
+    APPEND = 1,
+    NONBLOCK = 2,
+    IS_READABLE = 4,
+    IS_WRITABLE = 8,
+    IS_WRITEABLE = 8,
+    IS_SEEKABLE = 16,
+    MASK = 31,
+    GET_MASK = 31,
+    SET_MASK = 3,
+}
+
+export namespace KeyFileFlags {
+    export const $gtype: GObject.GType<KeyFileFlags>;
+}
+
+export enum KeyFileFlags {
+    NONE = 0,
+    KEEP_COMMENTS = 1,
+    KEEP_TRANSLATIONS = 2,
+}
+
+export namespace LogLevelFlags {
+    export const $gtype: GObject.GType<LogLevelFlags>;
+}
+
+export enum LogLevelFlags {
+    FLAG_RECURSION = 1,
+    FLAG_FATAL = 2,
+    LEVEL_ERROR = 4,
+    LEVEL_CRITICAL = 8,
+    LEVEL_WARNING = 16,
+    LEVEL_MESSAGE = 32,
+    LEVEL_INFO = 64,
+    LEVEL_DEBUG = 128,
+    LEVEL_MASK = -4,
+}
+
+export namespace MainContextFlags {
+    export const $gtype: GObject.GType<MainContextFlags>;
+}
+
+export enum MainContextFlags {
+    NONE = 0,
+    OWNERLESS_POLLING = 1,
+}
+
+export namespace MarkupCollectType {
+    export const $gtype: GObject.GType<MarkupCollectType>;
+}
+
+export enum MarkupCollectType {
+    INVALID = 0,
+    STRING = 1,
+    STRDUP = 2,
+    BOOLEAN = 3,
+    TRISTATE = 4,
+    OPTIONAL = 65536,
+}
+
+export namespace MarkupParseFlags {
+    export const $gtype: GObject.GType<MarkupParseFlags>;
+}
+
+export enum MarkupParseFlags {
+    DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1,
+    TREAT_CDATA_AS_TEXT = 2,
+    PREFIX_ERROR_POSITION = 4,
+    IGNORE_QUALIFIED = 8,
+}
+
+export namespace OptionFlags {
+    export const $gtype: GObject.GType<OptionFlags>;
+}
+
+export enum OptionFlags {
+    NONE = 0,
+    HIDDEN = 1,
+    IN_MAIN = 2,
+    REVERSE = 4,
+    NO_ARG = 8,
+    FILENAME = 16,
+    OPTIONAL_ARG = 32,
+    NOALIAS = 64,
+}
+
+export namespace RegexCompileFlags {
+    export const $gtype: GObject.GType<RegexCompileFlags>;
+}
+
+export enum RegexCompileFlags {
+    CASELESS = 1,
+    MULTILINE = 2,
+    DOTALL = 4,
+    EXTENDED = 8,
+    ANCHORED = 16,
+    DOLLAR_ENDONLY = 32,
+    UNGREEDY = 512,
+    RAW = 2048,
+    NO_AUTO_CAPTURE = 4096,
+    OPTIMIZE = 8192,
+    FIRSTLINE = 262144,
+    DUPNAMES = 524288,
+    NEWLINE_CR = 1048576,
+    NEWLINE_LF = 2097152,
+    NEWLINE_CRLF = 3145728,
+    NEWLINE_ANYCRLF = 5242880,
+    BSR_ANYCRLF = 8388608,
+    JAVASCRIPT_COMPAT = 33554432,
+}
+
+export namespace RegexMatchFlags {
+    export const $gtype: GObject.GType<RegexMatchFlags>;
+}
+
+export enum RegexMatchFlags {
+    ANCHORED = 16,
+    NOTBOL = 128,
+    NOTEOL = 256,
+    NOTEMPTY = 1024,
+    PARTIAL = 32768,
+    NEWLINE_CR = 1048576,
+    NEWLINE_LF = 2097152,
+    NEWLINE_CRLF = 3145728,
+    NEWLINE_ANY = 4194304,
+    NEWLINE_ANYCRLF = 5242880,
+    BSR_ANYCRLF = 8388608,
+    BSR_ANY = 16777216,
+    PARTIAL_SOFT = 32768,
+    PARTIAL_HARD = 134217728,
+    NOTEMPTY_ATSTART = 268435456,
+}
+
+export namespace SpawnFlags {
+    export const $gtype: GObject.GType<SpawnFlags>;
+}
+
+export enum SpawnFlags {
+    DEFAULT = 0,
+    LEAVE_DESCRIPTORS_OPEN = 1,
+    DO_NOT_REAP_CHILD = 2,
+    SEARCH_PATH = 4,
+    STDOUT_TO_DEV_NULL = 8,
+    STDERR_TO_DEV_NULL = 16,
+    CHILD_INHERITS_STDIN = 32,
+    FILE_AND_ARGV_ZERO = 64,
+    SEARCH_PATH_FROM_ENVP = 128,
+    CLOEXEC_PIPES = 256,
+}
+
+export namespace TestSubprocessFlags {
+    export const $gtype: GObject.GType<TestSubprocessFlags>;
+}
+
+export enum TestSubprocessFlags {
+    STDIN = 1,
+    STDOUT = 2,
+    STDERR = 4,
+}
+
+export namespace TestTrapFlags {
+    export const $gtype: GObject.GType<TestTrapFlags>;
+}
+
+export enum TestTrapFlags {
+    SILENCE_STDOUT = 128,
+    SILENCE_STDERR = 256,
+    INHERIT_STDIN = 512,
+}
+
+export namespace TraverseFlags {
+    export const $gtype: GObject.GType<TraverseFlags>;
+}
+
+export enum TraverseFlags {
+    LEAVES = 1,
+    NON_LEAVES = 2,
+    ALL = 3,
+    MASK = 3,
+    LEAFS = 1,
+    NON_LEAFS = 2,
+}
+
+export namespace UriFlags {
+    export const $gtype: GObject.GType<UriFlags>;
+}
+
+export enum UriFlags {
+    NONE = 0,
+    PARSE_RELAXED = 1,
+    HAS_PASSWORD = 2,
+    HAS_AUTH_PARAMS = 4,
+    ENCODED = 8,
+    NON_DNS = 16,
+    ENCODED_QUERY = 32,
+    ENCODED_PATH = 64,
+    ENCODED_FRAGMENT = 128,
+    SCHEME_NORMALIZE = 256,
+}
+
+export namespace UriHideFlags {
+    export const $gtype: GObject.GType<UriHideFlags>;
+}
+
+export enum UriHideFlags {
+    NONE = 0,
+    USERINFO = 1,
+    PASSWORD = 2,
+    AUTH_PARAMS = 4,
+    QUERY = 8,
+    FRAGMENT = 16,
+}
+
+export namespace UriParamsFlags {
+    export const $gtype: GObject.GType<UriParamsFlags>;
+}
+
+export enum UriParamsFlags {
+    NONE = 0,
+    CASE_INSENSITIVE = 1,
+    WWW_FORM = 2,
+    PARSE_RELAXED = 4,
+}
+
+export class Array {
+    static $gtype: GObject.GType<Array>;
+
+    constructor(
+        properties?: Partial<{
+            data?: string;
+            len?: number;
+        }>
+    );
+    constructor(copy: Array);
+
+    // Fields
+    data: string;
+    len: number;
+}
+
+export class AsyncQueue {
+    static $gtype: GObject.GType<AsyncQueue>;
+
+    constructor(copy: AsyncQueue);
+
+    // Members
+    length(): number;
+    length_unlocked(): number;
+    lock(): void;
+    pop(): any | null;
+    pop_unlocked(): any | null;
+    push(data?: any | null): void;
+    push_front(item?: any | null): void;
+    push_front_unlocked(item?: any | null): void;
+    push_unlocked(data?: any | null): void;
+    ref_unlocked(): void;
+    remove(item?: any | null): boolean;
+    remove_unlocked(item?: any | null): boolean;
+    timed_pop(end_time: TimeVal): any | null;
+    timed_pop_unlocked(end_time: TimeVal): any | null;
+    timeout_pop(timeout: number): any | null;
+    timeout_pop_unlocked(timeout: number): any | null;
+    try_pop(): any | null;
+    try_pop_unlocked(): any | null;
+    unlock(): void;
+    unref(): void;
+    unref_and_unlock(): void;
+}
+
+export class BookmarkFile {
+    static $gtype: GObject.GType<BookmarkFile>;
+
+    constructor(copy: BookmarkFile);
+
+    // Members
+    add_application(uri: string, name?: string | null, exec?: string | null): void;
+    add_group(uri: string, group: string): void;
+    free(): void;
+    get_added(uri: string): number;
+    get_added_date_time(uri: string): DateTime;
+    get_app_info(uri: string, name: string): [boolean, string, number, number];
+    get_application_info(uri: string, name: string): [boolean, string, number, DateTime | null];
+    get_applications(uri: string): string[];
+    get_description(uri: string): string;
+    get_groups(uri: string): string[];
+    get_icon(uri: string): [boolean, string, string];
+    get_is_private(uri: string): boolean;
+    get_mime_type(uri: string): string;
+    get_modified(uri: string): number;
+    get_modified_date_time(uri: string): DateTime;
+    get_size(): number;
+    get_title(uri?: string | null): string;
+    get_uris(): string[];
+    get_visited(uri: string): number;
+    get_visited_date_time(uri: string): DateTime;
+    has_application(uri: string, name: string): boolean;
+    has_group(uri: string, group: string): boolean;
+    has_item(uri: string): boolean;
+    load_from_data(data: Uint8Array | string): boolean;
+    load_from_data_dirs(file: string): [boolean, string];
+    load_from_file(filename: string): boolean;
+    move_item(old_uri: string, new_uri?: string | null): boolean;
+    remove_application(uri: string, name: string): boolean;
+    remove_group(uri: string, group: string): boolean;
+    remove_item(uri: string): boolean;
+    set_added(uri: string, added: number): void;
+    set_added_date_time(uri: string, added: DateTime): void;
+    set_app_info(uri: string, name: string, exec: string, count: number, stamp: number): boolean;
+    set_application_info(uri: string, name: string, exec: string, count: number, stamp?: DateTime | null): 
boolean;
+    set_description(uri: string | null, description: string): void;
+    set_groups(uri: string, groups?: string[] | null): void;
+    set_icon(uri: string, href: string | null, mime_type: string): void;
+    set_is_private(uri: string, is_private: boolean): void;
+    set_mime_type(uri: string, mime_type: string): void;
+    set_modified(uri: string, modified: number): void;
+    set_modified_date_time(uri: string, modified: DateTime): void;
+    set_title(uri: string | null, title: string): void;
+    set_visited(uri: string, visited: number): void;
+    set_visited_date_time(uri: string, visited: DateTime): void;
+    to_data(): Uint8Array;
+    to_file(filename: string): boolean;
+    static error_quark(): Quark;
+}
+
+export class ByteArray {
+    static $gtype: GObject.GType<ByteArray>;
+
+    constructor(
+        properties?: Partial<{
+            data?: number;
+            len?: number;
+        }>
+    );
+    constructor(copy: ByteArray);
+
+    // Fields
+    data: number;
+    len: number;
+
+    // Members
+    static free(array: Uint8Array | string, free_segment: boolean): number;
+    static free_to_bytes(array: Uint8Array | string): Bytes;
+    static new(): Uint8Array;
+    static new_take(data: Uint8Array | string): Uint8Array;
+    static steal(array: Uint8Array | string): [number, number];
+    static unref(array: Uint8Array | string): void;
+}
+
+export class Bytes {
+    static $gtype: GObject.GType<Bytes>;
+
+    constructor(data?: Uint8Array | null);
+    constructor(copy: Bytes);
+
+    // Constructors
+    static ["new"](data?: Uint8Array | null): Bytes;
+    static new_take(data?: Uint8Array | null): Bytes;
+
+    // Members
+    compare(bytes2: Bytes | Uint8Array): number;
+    equal(bytes2: Bytes | Uint8Array): boolean;
+    get_data(): Uint8Array | null;
+    get_region(element_size: number, offset: number, n_elements: number): any | null;
+    get_size(): number;
+    hash(): number;
+    new_from_bytes(offset: number, length: number): Bytes;
+    ref(): Bytes;
+    unref(): void;
+    unref_to_array(): Uint8Array;
+    unref_to_data(): Uint8Array;
+    toArray(): Uint8Array;
+}
+
+export class Checksum {
+    static $gtype: GObject.GType<Checksum>;
+
+    constructor(checksum_type: ChecksumType);
+    constructor(copy: Checksum);
+
+    // Constructors
+    static ["new"](checksum_type: ChecksumType): Checksum;
+
+    // Members
+    copy(): Checksum;
+    free(): void;
+    get_string(): string;
+    reset(): void;
+    update(data: Uint8Array | string): void;
+    static type_get_length(checksum_type: ChecksumType): number;
+}
+
+export class Cond {
+    static $gtype: GObject.GType<Cond>;
+
+    constructor(copy: Cond);
+
+    // Members
+    broadcast(): void;
+    clear(): void;
+    init(): void;
+    signal(): void;
+    wait(mutex: Mutex): void;
+    wait_until(mutex: Mutex, end_time: number): boolean;
+}
+
+export class Data {
+    static $gtype: GObject.GType<Data>;
+
+    constructor(copy: Data);
+}
+
+export class Date {
+    static $gtype: GObject.GType<Date>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            julian_days?: number;
+            julian?: number;
+            dmy?: number;
+            day?: number;
+            month?: number;
+            year?: number;
+        }>
+    );
+    constructor(copy: Date);
+
+    // Fields
+    julian_days: number;
+    julian: number;
+    dmy: number;
+    day: number;
+    month: number;
+    year: number;
+
+    // Constructors
+    static ["new"](): Date;
+    static new_dmy(day: DateDay, month: DateMonth, year: DateYear): Date;
+    static new_julian(julian_day: number): Date;
+
+    // Members
+    add_days(n_days: number): void;
+    add_months(n_months: number): void;
+    add_years(n_years: number): void;
+    clamp(min_date: Date, max_date: Date): void;
+    clear(n_dates: number): void;
+    compare(rhs: Date): number;
+    copy(): Date;
+    days_between(date2: Date): number;
+    free(): void;
+    get_day(): DateDay;
+    get_day_of_year(): number;
+    get_iso8601_week_of_year(): number;
+    get_julian(): number;
+    get_monday_week_of_year(): number;
+    get_month(): DateMonth;
+    get_sunday_week_of_year(): number;
+    get_weekday(): DateWeekday;
+    get_year(): DateYear;
+    is_first_of_month(): boolean;
+    is_last_of_month(): boolean;
+    order(date2: Date): void;
+    set_day(day: DateDay): void;
+    set_dmy(day: DateDay, month: DateMonth, y: DateYear): void;
+    set_julian(julian_date: number): void;
+    set_month(month: DateMonth): void;
+    set_parse(str: string): void;
+    set_time(time_: Time): void;
+    set_time_t(timet: number): void;
+    set_time_val(timeval: TimeVal): void;
+    set_year(year: DateYear): void;
+    subtract_days(n_days: number): void;
+    subtract_months(n_months: number): void;
+    subtract_years(n_years: number): void;
+    to_struct_tm(tm: any): void;
+    valid(): boolean;
+    static get_days_in_month(month: DateMonth, year: DateYear): number;
+    static get_monday_weeks_in_year(year: DateYear): number;
+    static get_sunday_weeks_in_year(year: DateYear): number;
+    static is_leap_year(year: DateYear): boolean;
+    static strftime(s: string, slen: number, format: string, date: Date): number;
+    static valid_day(day: DateDay): boolean;
+    static valid_dmy(day: DateDay, month: DateMonth, year: DateYear): boolean;
+    static valid_julian(julian_date: number): boolean;
+    static valid_month(month: DateMonth): boolean;
+    static valid_weekday(weekday: DateWeekday): boolean;
+    static valid_year(year: DateYear): boolean;
+}
+
+export class DateTime {
+    static $gtype: GObject.GType<DateTime>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: DateTime);
+
+    // Constructors
+    static ["new"](
+        tz: TimeZone,
+        year: number,
+        month: number,
+        day: number,
+        hour: number,
+        minute: number,
+        seconds: number
+    ): DateTime;
+    static new_from_iso8601(text: string, default_tz?: TimeZone | null): DateTime;
+    static new_from_timeval_local(tv: TimeVal): DateTime;
+    static new_from_timeval_utc(tv: TimeVal): DateTime;
+    static new_from_unix_local(t: number): DateTime;
+    static new_from_unix_utc(t: number): DateTime;
+    static new_local(year: number, month: number, day: number, hour: number, minute: number, seconds: 
number): DateTime;
+    static new_now(tz: TimeZone): DateTime;
+    static new_now_local(): DateTime;
+    static new_now_utc(): DateTime;
+    static new_utc(year: number, month: number, day: number, hour: number, minute: number, seconds: number): 
DateTime;
+
+    // Members
+    add(timespan: TimeSpan): DateTime | null;
+    add_days(days: number): DateTime | null;
+    add_full(
+        years: number,
+        months: number,
+        days: number,
+        hours: number,
+        minutes: number,
+        seconds: number
+    ): DateTime | null;
+    add_hours(hours: number): DateTime | null;
+    add_minutes(minutes: number): DateTime | null;
+    add_months(months: number): DateTime | null;
+    add_seconds(seconds: number): DateTime | null;
+    add_weeks(weeks: number): DateTime | null;
+    add_years(years: number): DateTime | null;
+    compare(dt2: DateTime): number;
+    difference(begin: DateTime): TimeSpan;
+    equal(dt2: DateTime): boolean;
+    format(format: string): string | null;
+    format_iso8601(): string | null;
+    get_day_of_month(): number;
+    get_day_of_week(): number;
+    get_day_of_year(): number;
+    get_hour(): number;
+    get_microsecond(): number;
+    get_minute(): number;
+    get_month(): number;
+    get_second(): number;
+    get_seconds(): number;
+    get_timezone(): TimeZone;
+    get_timezone_abbreviation(): string;
+    get_utc_offset(): TimeSpan;
+    get_week_numbering_year(): number;
+    get_week_of_year(): number;
+    get_year(): number;
+    get_ymd(): [number, number, number];
+    hash(): number;
+    is_daylight_savings(): boolean;
+    ref(): DateTime;
+    to_local(): DateTime | null;
+    to_timeval(tv: TimeVal): boolean;
+    to_timezone(tz: TimeZone): DateTime | null;
+    to_unix(): number;
+    to_utc(): DateTime | null;
+    unref(): void;
+}
+
+export class DebugKey {
+    static $gtype: GObject.GType<DebugKey>;
+
+    constructor(
+        properties?: Partial<{
+            key?: string;
+            value?: number;
+        }>
+    );
+    constructor(copy: DebugKey);
+
+    // Fields
+    key: string;
+    value: number;
+}
+
+export class Dir {
+    static $gtype: GObject.GType<Dir>;
+
+    constructor(copy: Dir);
+
+    // Members
+    close(): void;
+    read_name(): string;
+    rewind(): void;
+    static make_tmp(tmpl?: string | null): string;
+}
+
+export class Error {
+    static $gtype: GObject.GType<Error>;
+
+    constructor(domain: { new (...args: any[]): Error } | Quark, code: number, message: string);
+    constructor(copy: Error);
+
+    // Fields
+    domain: Quark;
+    code: number;
+    message: string;
+
+    // Constructors
+    static new_literal(domain: { new (...args: any[]): Error } | Quark, code: number, message: string): 
Error;
+
+    // Members
+    copy(): Error;
+    free(): void;
+    matches(domain: { new (...args: any[]): Error } | Quark, code: number): boolean;
+}
+
+export class HashTable<A = string, B = any> {
+    [key: string]: B;
+
+    static $gtype: GObject.GType<HashTable>;
+
+    constructor(copy: HashTable);
+
+    // Members
+    static add(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | null): boolean;
+    static contains(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | null): boolean;
+    static destroy(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+    static insert(
+        hash_table: { [key: string]: any } | HashTable<any, any>,
+        key?: any | null,
+        value?: any | null
+    ): boolean;
+    static lookup(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | null): any | null;
+    static lookup_extended(
+        hash_table: { [key: string]: any } | HashTable<any, any>,
+        lookup_key: any | null
+    ): [boolean, any, any];
+    static new_similar(other_hash_table: { [key: string]: any } | HashTable<any, any>): HashTable<any, any>;
+    static remove(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | null): boolean;
+    static remove_all(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+    static replace(
+        hash_table: { [key: string]: any } | HashTable<any, any>,
+        key?: any | null,
+        value?: any | null
+    ): boolean;
+    static size(hash_table: { [key: string]: any } | HashTable<any, any>): number;
+    static steal(hash_table: { [key: string]: any } | HashTable<any, any>, key?: any | null): boolean;
+    static steal_all(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+    static steal_extended(
+        hash_table: { [key: string]: any } | HashTable<any, any>,
+        lookup_key: any | null
+    ): [boolean, any, any];
+    static unref(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+}
+
+export class HashTableIter {
+    static $gtype: GObject.GType<HashTableIter>;
+
+    constructor(copy: HashTableIter);
+
+    // Members
+    init(hash_table: { [key: string]: any } | HashTable<any, any>): void;
+    next(): [boolean, any, any];
+    remove(): void;
+    replace(value?: any | null): void;
+    steal(): void;
+}
+
+export class Hmac {
+    static $gtype: GObject.GType<Hmac>;
+
+    constructor(copy: Hmac);
+
+    // Members
+    get_digest(buffer: Uint8Array | string): void;
+    get_string(): string;
+    unref(): void;
+    update(data: Uint8Array | string): void;
+}
+
+export class Hook {
+    static $gtype: GObject.GType<Hook>;
+
+    constructor(copy: Hook);
+
+    // Fields
+    data: any;
+    next: Hook;
+    prev: Hook;
+    ref_count: number;
+    hook_id: number;
+    flags: number;
+    func: any;
+
+    // Members
+    compare_ids(sibling: Hook): number;
+    static destroy(hook_list: HookList, hook_id: number): boolean;
+    static destroy_link(hook_list: HookList, hook: Hook): void;
+    static free(hook_list: HookList, hook: Hook): void;
+    static insert_before(hook_list: HookList, sibling: Hook | null, hook: Hook): void;
+    static prepend(hook_list: HookList, hook: Hook): void;
+    static unref(hook_list: HookList, hook: Hook): void;
+}
+
+export class HookList {
+    static $gtype: GObject.GType<HookList>;
+
+    constructor(copy: HookList);
+
+    // Fields
+    seq_id: number;
+    hook_size: number;
+    is_setup: number;
+    hooks: Hook;
+    dummy3: any;
+    finalize_hook: HookFinalizeFunc;
+    dummy: any[];
+
+    // Members
+    clear(): void;
+    init(hook_size: number): void;
+    invoke(may_recurse: boolean): void;
+    invoke_check(may_recurse: boolean): void;
+}
+
+export class IOChannel {
+    static $gtype: GObject.GType<IOChannel>;
+
+    constructor(filename: string, mode: string);
+    constructor(copy: IOChannel);
+
+    // Constructors
+    static new_file(filename: string, mode: string): IOChannel;
+    static unix_new(fd: number): IOChannel;
+
+    // Members
+    close(): void;
+    flush(): IOStatus;
+    get_buffer_condition(): IOCondition;
+    get_buffer_size(): number;
+    get_buffered(): boolean;
+    get_close_on_unref(): boolean;
+    get_encoding(): string;
+    get_flags(): IOFlags;
+    get_line_term(length: number): string;
+    init(): void;
+    read(buf: string, count: number, bytes_read: number): IOError;
+    read_chars(): [IOStatus, Uint8Array, number];
+    read_line(): [IOStatus, string, number, number];
+    read_line_string(buffer: String, terminator_pos?: number | null): IOStatus;
+    read_to_end(): [IOStatus, Uint8Array];
+    read_unichar(): [IOStatus, number];
+    ref(): IOChannel;
+    seek(offset: number, type: SeekType): IOError;
+    seek_position(offset: number, type: SeekType): IOStatus;
+    set_buffer_size(size: number): void;
+    set_buffered(buffered: boolean): void;
+    set_close_on_unref(do_close: boolean): void;
+    set_encoding(encoding?: string | null): IOStatus;
+    set_flags(flags: IOFlags): IOStatus;
+    set_line_term(line_term: string | null, length: number): void;
+    shutdown(flush: boolean): IOStatus;
+    unix_get_fd(): number;
+    unref(): void;
+    write(buf: string, count: number, bytes_written: number): IOError;
+    write_chars(buf: Uint8Array | string, count: number): [IOStatus, number];
+    write_unichar(thechar: number): IOStatus;
+    static error_from_errno(en: number): IOChannelError;
+    static error_quark(): Quark;
+}
+
+export class IOFuncs {
+    static $gtype: GObject.GType<IOFuncs>;
+
+    constructor(copy: IOFuncs);
+}
+
+export class KeyFile {
+    static $gtype: GObject.GType<KeyFile>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: KeyFile);
+
+    // Constructors
+    static ["new"](): KeyFile;
+
+    // Members
+    get_boolean(group_name: string, key: string): boolean;
+    get_boolean_list(group_name: string, key: string): boolean[];
+    get_comment(group_name?: string | null, key?: string | null): string;
+    get_double(group_name: string, key: string): number;
+    get_double_list(group_name: string, key: string): number[];
+    get_groups(): [string[], number];
+    get_int64(group_name: string, key: string): number;
+    get_integer(group_name: string, key: string): number;
+    get_integer_list(group_name: string, key: string): number[];
+    get_keys(group_name: string): [string[], number];
+    get_locale_for_key(group_name: string, key: string, locale?: string | null): string | null;
+    get_locale_string(group_name: string, key: string, locale?: string | null): string;
+    get_locale_string_list(group_name: string, key: string, locale?: string | null): string[];
+    get_start_group(): string | null;
+    get_string(group_name: string, key: string): string;
+    get_string_list(group_name: string, key: string): string[];
+    get_uint64(group_name: string, key: string): number;
+    get_value(group_name: string, key: string): string;
+    has_group(group_name: string): boolean;
+    load_from_bytes(bytes: Bytes | Uint8Array, flags: KeyFileFlags): boolean;
+    load_from_data(data: string, length: number, flags: KeyFileFlags): boolean;
+    load_from_data_dirs(file: string, flags: KeyFileFlags): [boolean, string];
+    load_from_dirs(file: string, search_dirs: string[], flags: KeyFileFlags): [boolean, string];
+    load_from_file(file: string, flags: KeyFileFlags): boolean;
+    remove_comment(group_name?: string | null, key?: string | null): boolean;
+    remove_group(group_name: string): boolean;
+    remove_key(group_name: string, key: string): boolean;
+    save_to_file(filename: string): boolean;
+    set_boolean(group_name: string, key: string, value: boolean): void;
+    set_boolean_list(group_name: string, key: string, list: boolean[]): void;
+    set_comment(group_name: string | null, key: string | null, comment: string): boolean;
+    set_double(group_name: string, key: string, value: number): void;
+    set_double_list(group_name: string, key: string, list: number[]): void;
+    set_int64(group_name: string, key: string, value: number): void;
+    set_integer(group_name: string, key: string, value: number): void;
+    set_integer_list(group_name: string, key: string, list: number[]): void;
+    set_list_separator(separator: number): void;
+    set_locale_string(group_name: string, key: string, locale: string, string: string): void;
+    set_locale_string_list(group_name: string, key: string, locale: string, list: string[]): void;
+    set_string(group_name: string, key: string, string: string): void;
+    set_string_list(group_name: string, key: string, list: string[]): void;
+    set_uint64(group_name: string, key: string, value: number): void;
+    set_value(group_name: string, key: string, value: string): void;
+    to_data(): [string, number];
+    unref(): void;
+    static error_quark(): Quark;
+}
+
+export class List {
+    static $gtype: GObject.GType<List>;
+
+    constructor(copy: List);
+
+    // Fields
+    data: any;
+    next: any[];
+    prev: any[];
+}
+
+export class LogField {
+    static $gtype: GObject.GType<LogField>;
+
+    constructor(
+        properties?: Partial<{
+            key?: string;
+            value?: any;
+            length?: number;
+        }>
+    );
+    constructor(copy: LogField);
+
+    // Fields
+    key: string;
+    value: any;
+    length: number;
+}
+
+export class MainContext {
+    static $gtype: GObject.GType<MainContext>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: MainContext);
+
+    // Constructors
+    static ["new"](): MainContext;
+    static new_with_flags(flags: MainContextFlags): MainContext;
+
+    // Members
+    acquire(): boolean;
+    add_poll(fd: PollFD, priority: number): void;
+    check(max_priority: number, fds: PollFD[]): boolean;
+    dispatch(): void;
+    find_source_by_funcs_user_data(funcs: SourceFuncs, user_data?: any | null): Source;
+    find_source_by_id(source_id: number): Source;
+    find_source_by_user_data(user_data?: any | null): Source;
+    invoke_full(priority: number, _function: SourceFunc, notify?: DestroyNotify | null): void;
+    is_owner(): boolean;
+    iteration(may_block: boolean): boolean;
+    pending(): boolean;
+    pop_thread_default(): void;
+    prepare(): [boolean, number];
+    push_thread_default(): void;
+    query(max_priority: number): [number, number, PollFD[]];
+    ref(): MainContext;
+    release(): void;
+    remove_poll(fd: PollFD): void;
+    unref(): void;
+    wait(cond: Cond, mutex: Mutex): boolean;
+    wakeup(): void;
+    static default(): MainContext;
+    static get_thread_default(): MainContext | null;
+    static ref_thread_default(): MainContext;
+}
+
+export class MainLoop {
+    static $gtype: GObject.GType<MainLoop>;
+
+    constructor(context: MainContext | null, is_running: boolean);
+    constructor(copy: MainLoop);
+
+    // Constructors
+    static ["new"](context: MainContext | null, is_running: boolean): MainLoop;
+
+    // Members
+    get_context(): MainContext;
+    is_running(): boolean;
+    quit(): void;
+    ref(): MainLoop;
+    run(): void;
+    unref(): void;
+}
+
+export class MappedFile {
+    static $gtype: GObject.GType<MappedFile>;
+
+    constructor(filename: string, writable: boolean);
+    constructor(copy: MappedFile);
+
+    // Constructors
+    static ["new"](filename: string, writable: boolean): MappedFile;
+    static new_from_fd(fd: number, writable: boolean): MappedFile;
+
+    // Members
+    free(): void;
+    get_bytes(): Bytes;
+    get_contents(): string;
+    get_length(): number;
+    ref(): MappedFile;
+    unref(): void;
+}
+
+export class MarkupParseContext {
+    static $gtype: GObject.GType<MarkupParseContext>;
+
+    constructor(parser: MarkupParser, flags: MarkupParseFlags, user_data?: any | null);
+    constructor(copy: MarkupParseContext);
+
+    // Constructors
+    static ["new"](parser: MarkupParser, flags: MarkupParseFlags, user_data?: any | null): 
MarkupParseContext;
+
+    // Members
+    end_parse(): boolean;
+    free(): void;
+    get_element(): string;
+    get_position(): [number, number];
+    get_user_data(): any | null;
+    parse(text: string, text_len: number): boolean;
+    pop(): any | null;
+    push(parser: MarkupParser, user_data?: any | null): void;
+    ref(): MarkupParseContext;
+    unref(): void;
+}
+
+export class MarkupParser {
+    static $gtype: GObject.GType<MarkupParser>;
+
+    constructor(copy: MarkupParser);
+}
+
+export class MatchInfo {
+    static $gtype: GObject.GType<MatchInfo>;
+
+    constructor(copy: MatchInfo);
+
+    // Members
+    expand_references(string_to_expand: string): string | null;
+    fetch(match_num: number): string | null;
+    fetch_all(): string[];
+    fetch_named(name: string): string | null;
+    fetch_named_pos(name: string): [boolean, number, number];
+    fetch_pos(match_num: number): [boolean, number, number];
+    free(): void;
+    get_match_count(): number;
+    get_regex(): Regex;
+    get_string(): string;
+    is_partial_match(): boolean;
+    matches(): boolean;
+    next(): boolean;
+    ref(): MatchInfo;
+    unref(): void;
+}
+
+export class MemVTable {
+    static $gtype: GObject.GType<MemVTable>;
+
+    constructor(copy: MemVTable);
+}
+
+export class Node {
+    static $gtype: GObject.GType<Node>;
+
+    constructor(copy: Node);
+
+    // Fields
+    data: any;
+    next: Node;
+    prev: Node;
+    parent: Node;
+    children: Node;
+
+    // Members
+    child_index(data?: any | null): number;
+    child_position(child: Node): number;
+    depth(): number;
+    destroy(): void;
+    is_ancestor(descendant: Node): boolean;
+    max_height(): number;
+    n_children(): number;
+    n_nodes(flags: TraverseFlags): number;
+    reverse_children(): void;
+    unlink(): void;
+}
+
+export class Once {
+    static $gtype: GObject.GType<Once>;
+
+    constructor(copy: Once);
+
+    // Fields
+    status: OnceStatus;
+    retval: any;
+
+    // Members
+    static init_enter(location: any): boolean;
+    static init_leave(location: any, result: number): void;
+}
+
+export class OptionContext {
+    static $gtype: GObject.GType<OptionContext>;
+
+    constructor(copy: OptionContext);
+
+    // Members
+    add_group(group: OptionGroup): void;
+    add_main_entries(entries: OptionEntry[], translation_domain?: string | null): void;
+    free(): void;
+    get_description(): string;
+    get_help(main_help: boolean, group?: OptionGroup | null): string;
+    get_help_enabled(): boolean;
+    get_ignore_unknown_options(): boolean;
+    get_main_group(): OptionGroup;
+    get_strict_posix(): boolean;
+    get_summary(): string;
+    parse(argv?: string[]): [boolean, string[]];
+    parse_strv(_arguments?: string[]): [boolean, string[]];
+    set_description(description?: string | null): void;
+    set_help_enabled(help_enabled: boolean): void;
+    set_ignore_unknown_options(ignore_unknown: boolean): void;
+    set_main_group(group: OptionGroup): void;
+    set_strict_posix(strict_posix: boolean): void;
+    set_summary(summary?: string | null): void;
+    set_translate_func(func?: TranslateFunc | null, destroy_notify?: DestroyNotify | null): void;
+    set_translation_domain(domain: string): void;
+}
+
+export class OptionEntry {
+    static $gtype: GObject.GType<OptionEntry>;
+
+    constructor(copy: OptionEntry);
+
+    // Fields
+    long_name: string;
+    short_name: number;
+    flags: number;
+    arg: OptionArg;
+    arg_data: any;
+    description: string;
+    arg_description: string;
+}
+
+export class OptionGroup {
+    static $gtype: GObject.GType<OptionGroup>;
+
+    constructor(
+        name: string,
+        description: string,
+        help_description: string,
+        user_data?: any | null,
+        destroy?: DestroyNotify | null
+    );
+    constructor(copy: OptionGroup);
+
+    // Constructors
+    static ["new"](
+        name: string,
+        description: string,
+        help_description: string,
+        user_data?: any | null,
+        destroy?: DestroyNotify | null
+    ): OptionGroup;
+
+    // Members
+    add_entries(entries: OptionEntry[]): void;
+    free(): void;
+    ref(): OptionGroup;
+    set_translate_func(func?: TranslateFunc | null, destroy_notify?: DestroyNotify | null): void;
+    set_translation_domain(domain: string): void;
+    unref(): void;
+}
+
+export class PatternSpec {
+    static $gtype: GObject.GType<PatternSpec>;
+
+    constructor(pattern: string);
+    constructor(copy: PatternSpec);
+
+    // Constructors
+    static ["new"](pattern: string): PatternSpec;
+
+    // Members
+    copy(): PatternSpec;
+    equal(pspec2: PatternSpec): boolean;
+    free(): void;
+    match(string_length: number, string: string, string_reversed?: string | null): boolean;
+    match_string(string: string): boolean;
+}
+
+export class PollFD {
+    static $gtype: GObject.GType<PollFD>;
+
+    constructor(
+        properties?: Partial<{
+            fd?: number;
+            events?: number;
+            revents?: number;
+        }>
+    );
+    constructor(copy: PollFD);
+
+    // Fields
+    fd: number;
+    events: number;
+    revents: number;
+}
+
+export class Private {
+    static $gtype: GObject.GType<Private>;
+
+    constructor(copy: Private);
+
+    // Members
+    get(): any | null;
+    replace(value?: any | null): void;
+    set(value?: any | null): void;
+}
+
+export class PtrArray {
+    static $gtype: GObject.GType<PtrArray>;
+
+    constructor(
+        properties?: Partial<{
+            pdata?: any;
+            len?: number;
+        }>
+    );
+    constructor(copy: PtrArray);
+
+    // Fields
+    pdata: any;
+    len: number;
+}
+
+export class Queue {
+    static $gtype: GObject.GType<Queue>;
+
+    constructor(copy: Queue);
+
+    // Fields
+    head: any[];
+    tail: any[];
+    length: number;
+
+    // Members
+    clear(): void;
+    clear_full(free_func?: DestroyNotify | null): void;
+    free(): void;
+    free_full(): void;
+    get_length(): number;
+    index(data?: any | null): number;
+    init(): void;
+    is_empty(): boolean;
+    peek_head(): any | null;
+    peek_nth(n: number): any | null;
+    peek_tail(): any | null;
+    pop_head(): any | null;
+    pop_nth(n: number): any | null;
+    pop_tail(): any | null;
+    push_head(data?: any | null): void;
+    push_nth(data: any | null, n: number): void;
+    push_tail(data?: any | null): void;
+    remove(data?: any | null): boolean;
+    remove_all(data?: any | null): number;
+    reverse(): void;
+}
+
+export class RWLock {
+    static $gtype: GObject.GType<RWLock>;
+
+    constructor(copy: RWLock);
+
+    // Members
+    clear(): void;
+    init(): void;
+    reader_lock(): void;
+    reader_trylock(): boolean;
+    reader_unlock(): void;
+    writer_lock(): void;
+    writer_trylock(): boolean;
+    writer_unlock(): void;
+}
+
+export class Rand {
+    static $gtype: GObject.GType<Rand>;
+
+    constructor(copy: Rand);
+
+    // Members
+    double(): number;
+    double_range(begin: number, end: number): number;
+    free(): void;
+    int(): number;
+    int_range(begin: number, end: number): number;
+    set_seed(seed: number): void;
+    set_seed_array(seed: number, seed_length: number): void;
+}
+
+export class RecMutex {
+    static $gtype: GObject.GType<RecMutex>;
+
+    constructor(copy: RecMutex);
+
+    // Members
+    clear(): void;
+    init(): void;
+    lock(): void;
+    trylock(): boolean;
+    unlock(): void;
+}
+
+export class Regex {
+    static $gtype: GObject.GType<Regex>;
+
+    constructor(pattern: string, compile_options: RegexCompileFlags, match_options: RegexMatchFlags);
+    constructor(copy: Regex);
+
+    // Constructors
+    static ["new"](pattern: string, compile_options: RegexCompileFlags, match_options: RegexMatchFlags): 
Regex;
+
+    // Members
+    get_capture_count(): number;
+    get_compile_flags(): RegexCompileFlags;
+    get_has_cr_or_lf(): boolean;
+    get_match_flags(): RegexMatchFlags;
+    get_max_backref(): number;
+    get_max_lookbehind(): number;
+    get_pattern(): string;
+    get_string_number(name: string): number;
+    match(string: string, match_options: RegexMatchFlags): [boolean, MatchInfo | null];
+    match_all(string: string, match_options: RegexMatchFlags): [boolean, MatchInfo | null];
+    match_all_full(
+        string: string[],
+        start_position: number,
+        match_options: RegexMatchFlags
+    ): [boolean, MatchInfo | null];
+    match_full(string: string[], start_position: number, match_options: RegexMatchFlags): [boolean, 
MatchInfo | null];
+    ref(): Regex;
+    replace(string: string[], start_position: number, replacement: string, match_options: RegexMatchFlags): 
string;
+    replace_literal(
+        string: string[],
+        start_position: number,
+        replacement: string,
+        match_options: RegexMatchFlags
+    ): string;
+    split(string: string, match_options: RegexMatchFlags): string[];
+    split_full(string: string[], start_position: number, match_options: RegexMatchFlags, max_tokens: 
number): string[];
+    unref(): void;
+    static check_replacement(replacement: string): [boolean, boolean];
+    static error_quark(): Quark;
+    static escape_nul(string: string, length: number): string;
+    static escape_string(string: string[]): string;
+    static match_simple(
+        pattern: string,
+        string: string,
+        compile_options: RegexCompileFlags,
+        match_options: RegexMatchFlags
+    ): boolean;
+    static split_simple(
+        pattern: string,
+        string: string,
+        compile_options: RegexCompileFlags,
+        match_options: RegexMatchFlags
+    ): string[];
+}
+
+export class SList {
+    static $gtype: GObject.GType<SList>;
+
+    constructor(copy: SList);
+
+    // Fields
+    data: any;
+    next: any[];
+}
+
+export class Scanner {
+    static $gtype: GObject.GType<Scanner>;
+
+    constructor(copy: Scanner);
+
+    // Fields
+    user_data: any;
+    max_parse_errors: number;
+    parse_errors: number;
+    input_name: string;
+    qdata: Data;
+    config: ScannerConfig;
+    token: TokenType;
+    value: TokenValue;
+    line: number;
+    position: number;
+    next_token: TokenType;
+    next_value: TokenValue;
+    next_line: number;
+    next_position: number;
+    msg_handler: ScannerMsgFunc;
+
+    // Members
+    cur_line(): number;
+    cur_position(): number;
+    cur_token(): TokenType;
+    destroy(): void;
+    eof(): boolean;
+    get_next_token(): TokenType;
+    input_file(input_fd: number): void;
+    input_text(text: string, text_len: number): void;
+    lookup_symbol(symbol: string): any | null;
+    peek_next_token(): TokenType;
+    scope_add_symbol(scope_id: number, symbol: string, value?: any | null): void;
+    scope_lookup_symbol(scope_id: number, symbol: string): any | null;
+    scope_remove_symbol(scope_id: number, symbol: string): void;
+    set_scope(scope_id: number): number;
+    sync_file_offset(): void;
+    unexp_token(
+        expected_token: TokenType,
+        identifier_spec: string,
+        symbol_spec: string,
+        symbol_name: string,
+        message: string,
+        is_error: number
+    ): void;
+}
+
+export class ScannerConfig {
+    static $gtype: GObject.GType<ScannerConfig>;
+
+    constructor(
+        properties?: Partial<{
+            cset_skip_characters?: string;
+            cset_identifier_first?: string;
+            cset_identifier_nth?: string;
+            cpair_comment_single?: string;
+            case_sensitive?: number;
+            skip_comment_multi?: number;
+            skip_comment_single?: number;
+            scan_comment_multi?: number;
+            scan_identifier?: number;
+            scan_identifier_1char?: number;
+            scan_identifier_NULL?: number;
+            scan_symbols?: number;
+            scan_binary?: number;
+            scan_octal?: number;
+            scan_float?: number;
+            scan_hex?: number;
+            scan_hex_dollar?: number;
+            scan_string_sq?: number;
+            scan_string_dq?: number;
+            numbers_2_int?: number;
+            int_2_float?: number;
+            identifier_2_string?: number;
+            char_2_token?: number;
+            symbol_2_token?: number;
+            scope_0_fallback?: number;
+            store_int64?: number;
+        }>
+    );
+    constructor(copy: ScannerConfig);
+
+    // Fields
+    cset_skip_characters: string;
+    cset_identifier_first: string;
+    cset_identifier_nth: string;
+    cpair_comment_single: string;
+    case_sensitive: number;
+    skip_comment_multi: number;
+    skip_comment_single: number;
+    scan_comment_multi: number;
+    scan_identifier: number;
+    scan_identifier_1char: number;
+    scan_identifier_NULL: number;
+    scan_symbols: number;
+    scan_binary: number;
+    scan_octal: number;
+    scan_float: number;
+    scan_hex: number;
+    scan_hex_dollar: number;
+    scan_string_sq: number;
+    scan_string_dq: number;
+    numbers_2_int: number;
+    int_2_float: number;
+    identifier_2_string: number;
+    char_2_token: number;
+    symbol_2_token: number;
+    scope_0_fallback: number;
+    store_int64: number;
+}
+
+export class Sequence {
+    static $gtype: GObject.GType<Sequence>;
+
+    constructor(copy: Sequence);
+
+    // Members
+    append(data?: any | null): SequenceIter;
+    free(): void;
+    get_begin_iter(): SequenceIter;
+    get_end_iter(): SequenceIter;
+    get_iter_at_pos(pos: number): SequenceIter;
+    get_length(): number;
+    is_empty(): boolean;
+    prepend(data?: any | null): SequenceIter;
+    static get(iter: SequenceIter): any | null;
+    static insert_before(iter: SequenceIter, data?: any | null): SequenceIter;
+    static move(src: SequenceIter, dest: SequenceIter): void;
+    static move_range(dest: SequenceIter, begin: SequenceIter, end: SequenceIter): void;
+    static range_get_midpoint(begin: SequenceIter, end: SequenceIter): SequenceIter;
+    static remove(iter: SequenceIter): void;
+    static remove_range(begin: SequenceIter, end: SequenceIter): void;
+    static set(iter: SequenceIter, data?: any | null): void;
+    static swap(a: SequenceIter, b: SequenceIter): void;
+}
+
+export class SequenceIter {
+    static $gtype: GObject.GType<SequenceIter>;
+
+    constructor(copy: SequenceIter);
+
+    // Members
+    compare(b: SequenceIter): number;
+    get_position(): number;
+    get_sequence(): Sequence;
+    is_begin(): boolean;
+    is_end(): boolean;
+    move(delta: number): SequenceIter;
+    next(): SequenceIter;
+    prev(): SequenceIter;
+}
+
+export class Source {
+    static $gtype: GObject.GType<Source>;
+
+    constructor(source_funcs: SourceFuncs, struct_size: number);
+    constructor(copy: Source);
+
+    // Constructors
+    static ["new"](source_funcs: SourceFuncs, struct_size: number): Source;
+
+    // Members
+    add_child_source(child_source: Source): void;
+    add_poll(fd: PollFD): void;
+    add_unix_fd(fd: number, events: IOCondition): any;
+    attach(context?: MainContext | null): number;
+    destroy(): void;
+    get_can_recurse(): boolean;
+    get_context(): MainContext | null;
+    get_current_time(timeval: TimeVal): void;
+    get_id(): number;
+    get_name(): string | null;
+    get_priority(): number;
+    get_ready_time(): number;
+    get_time(): number;
+    is_destroyed(): boolean;
+    modify_unix_fd(tag: any, new_events: IOCondition): void;
+    query_unix_fd(tag: any): IOCondition;
+    ref(): Source;
+    remove_child_source(child_source: Source): void;
+    remove_poll(fd: PollFD): void;
+    remove_unix_fd(tag: any): void;
+    set_callback(func: SourceFunc, notify?: DestroyNotify | null): void;
+    set_callback_indirect(callback_data: any | null, callback_funcs: SourceCallbackFuncs): void;
+    set_can_recurse(can_recurse: boolean): void;
+    set_funcs(funcs: SourceFuncs): void;
+    set_name(name: string): void;
+    set_priority(priority: number): void;
+    set_ready_time(ready_time: number): void;
+    set_static_name(name: string): void;
+    unref(): void;
+    static remove(tag: number): boolean;
+    static remove_by_funcs_user_data(funcs: SourceFuncs, user_data?: any | null): boolean;
+    static remove_by_user_data(user_data?: any | null): boolean;
+    static set_name_by_id(tag: number, name: string): void;
+}
+
+export class SourceCallbackFuncs {
+    static $gtype: GObject.GType<SourceCallbackFuncs>;
+
+    constructor(copy: SourceCallbackFuncs);
+}
+
+export class SourceFuncs {
+    static $gtype: GObject.GType<SourceFuncs>;
+
+    constructor(copy: SourceFuncs);
+}
+
+export class SourcePrivate {
+    static $gtype: GObject.GType<SourcePrivate>;
+
+    constructor(copy: SourcePrivate);
+}
+
+export class StatBuf {
+    static $gtype: GObject.GType<StatBuf>;
+
+    constructor(copy: StatBuf);
+}
+
+export class String {
+    static $gtype: GObject.GType<String>;
+
+    constructor(
+        properties?: Partial<{
+            str?: string;
+            len?: number;
+            allocated_len?: number;
+        }>
+    );
+    constructor(copy: String);
+
+    // Fields
+    str: string;
+    len: number;
+    allocated_len: number;
+
+    // Constructors
+    static ["new"](init?: string | null): String;
+    static new_len(init: string, len: number): String;
+    static sized_new(dfl_size: number): String;
+
+    // Members
+    append(val: string): String;
+    append_c(c: number): String;
+    append_len(val: string, len: number): String;
+    append_unichar(wc: number): String;
+    append_uri_escaped(unescaped: string, reserved_chars_allowed: string, allow_utf8: boolean): String;
+    ascii_down(): String;
+    ascii_up(): String;
+    assign(rval: string): String;
+    down(): String;
+    equal(v2: String): boolean;
+    erase(pos: number, len: number): String;
+    free(free_segment: boolean): string | null;
+    free_to_bytes(): Bytes;
+    hash(): number;
+    insert(pos: number, val: string): String;
+    insert_c(pos: number, c: number): String;
+    insert_len(pos: number, val: string, len: number): String;
+    insert_unichar(pos: number, wc: number): String;
+    overwrite(pos: number, val: string): String;
+    overwrite_len(pos: number, val: string, len: number): String;
+    prepend(val: string): String;
+    prepend_c(c: number): String;
+    prepend_len(val: string, len: number): String;
+    prepend_unichar(wc: number): String;
+    replace(find: string, replace: string, limit: number): number;
+    set_size(len: number): String;
+    truncate(len: number): String;
+    up(): String;
+}
+
+export class StringChunk {
+    static $gtype: GObject.GType<StringChunk>;
+
+    constructor(copy: StringChunk);
+
+    // Members
+    clear(): void;
+    free(): void;
+    insert(string: string): string;
+    insert_const(string: string): string;
+    insert_len(string: string, len: number): string;
+}
+
+export class StrvBuilder {
+    static $gtype: GObject.GType<StrvBuilder>;
+
+    constructor(copy: StrvBuilder);
+
+    // Members
+    add(value: string): void;
+    addv(value: string[]): void;
+    end(): string[];
+    unref(): void;
+}
+
+export class TestCase {
+    static $gtype: GObject.GType<TestCase>;
+
+    constructor(copy: TestCase);
+
+    // Members
+    free(): void;
+}
+
+export class TestConfig {
+    static $gtype: GObject.GType<TestConfig>;
+
+    constructor(
+        properties?: Partial<{
+            test_initialized?: boolean;
+            test_quick?: boolean;
+            test_perf?: boolean;
+            test_verbose?: boolean;
+            test_quiet?: boolean;
+            test_undefined?: boolean;
+        }>
+    );
+    constructor(copy: TestConfig);
+
+    // Fields
+    test_initialized: boolean;
+    test_quick: boolean;
+    test_perf: boolean;
+    test_verbose: boolean;
+    test_quiet: boolean;
+    test_undefined: boolean;
+}
+
+export class TestLogBuffer {
+    static $gtype: GObject.GType<TestLogBuffer>;
+
+    constructor(copy: TestLogBuffer);
+
+    // Members
+    free(): void;
+    push(n_bytes: number, bytes: number): void;
+}
+
+export class TestLogMsg {
+    static $gtype: GObject.GType<TestLogMsg>;
+
+    constructor(copy: TestLogMsg);
+
+    // Fields
+    log_type: TestLogType;
+    n_strings: number;
+    strings: string;
+    n_nums: number;
+
+    // Members
+    free(): void;
+}
+
+export class TestSuite {
+    static $gtype: GObject.GType<TestSuite>;
+
+    constructor(copy: TestSuite);
+
+    // Members
+    add(test_case: TestCase): void;
+    add_suite(nestedsuite: TestSuite): void;
+    free(): void;
+}
+
+export class Thread {
+    static $gtype: GObject.GType<Thread>;
+
+    constructor(name: string | null, func: ThreadFunc);
+    constructor(copy: Thread);
+
+    // Constructors
+    static ["new"](name: string | null, func: ThreadFunc): Thread;
+    static try_new(name: string | null, func: ThreadFunc): Thread;
+
+    // Members
+    join(): any | null;
+    ref(): Thread;
+    unref(): void;
+    static error_quark(): Quark;
+    static exit(retval?: any | null): void;
+    static self(): Thread;
+    static yield(): void;
+}
+
+export class ThreadPool {
+    static $gtype: GObject.GType<ThreadPool>;
+
+    constructor(copy: ThreadPool);
+
+    // Fields
+    func: Func;
+    user_data: any;
+    exclusive: boolean;
+
+    // Members
+    free(immediate: boolean, wait_: boolean): void;
+    get_max_threads(): number;
+    get_num_threads(): number;
+    move_to_front(data?: any | null): boolean;
+    push(data?: any | null): boolean;
+    set_max_threads(max_threads: number): boolean;
+    unprocessed(): number;
+    static get_max_idle_time(): number;
+    static get_max_unused_threads(): number;
+    static get_num_unused_threads(): number;
+    static set_max_idle_time(interval: number): void;
+    static set_max_unused_threads(max_threads: number): void;
+    static stop_unused_threads(): void;
+}
+
+export class TimeVal {
+    static $gtype: GObject.GType<TimeVal>;
+
+    constructor(
+        properties?: Partial<{
+            tv_sec?: number;
+            tv_usec?: number;
+        }>
+    );
+    constructor(copy: TimeVal);
+
+    // Fields
+    tv_sec: number;
+    tv_usec: number;
+
+    // Members
+    add(microseconds: number): void;
+    to_iso8601(): string | null;
+    static from_iso8601(iso_date: string): [boolean, TimeVal];
+}
+
+export class TimeZone {
+    static $gtype: GObject.GType<TimeZone>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: TimeZone);
+
+    // Constructors
+    static ["new"](identifier?: string | null): TimeZone;
+    static new_identifier(identifier?: string | null): TimeZone;
+    static new_local(): TimeZone;
+    static new_offset(seconds: number): TimeZone;
+    static new_utc(): TimeZone;
+
+    // Members
+    adjust_time(type: TimeType, time_: number): number;
+    find_interval(type: TimeType, time_: number): number;
+    get_abbreviation(interval: number): string;
+    get_identifier(): string;
+    get_offset(interval: number): number;
+    is_dst(interval: number): boolean;
+    ref(): TimeZone;
+    unref(): void;
+}
+
+export class Timer {
+    static $gtype: GObject.GType<Timer>;
+
+    constructor(copy: Timer);
+
+    // Members
+    ["continue"](): void;
+    destroy(): void;
+    elapsed(microseconds: number): number;
+    is_active(): boolean;
+    reset(): void;
+    start(): void;
+    stop(): void;
+}
+
+export class TrashStack {
+    static $gtype: GObject.GType<TrashStack>;
+
+    constructor(copy: TrashStack);
+
+    // Fields
+    next: TrashStack;
+
+    // Members
+    static height(stack_p: TrashStack): number;
+    static peek(stack_p: TrashStack): any | null;
+    static pop(stack_p: TrashStack): any | null;
+    static push(stack_p: TrashStack, data_p: any): void;
+}
+
+export class Tree {
+    static $gtype: GObject.GType<Tree>;
+
+    constructor(key_compare_func: CompareDataFunc);
+    constructor(copy: Tree);
+
+    // Constructors
+    static new_full(key_compare_func: CompareDataFunc): Tree;
+
+    // Members
+    destroy(): void;
+    height(): number;
+    insert(key?: any | null, value?: any | null): void;
+    insert_node(key?: any | null, value?: any | null): TreeNode;
+    lookup(key?: any | null): any | null;
+    lookup_extended(lookup_key: any | null): [boolean, any, any];
+    lookup_node(key?: any | null): TreeNode | null;
+    lower_bound(key?: any | null): TreeNode | null;
+    nnodes(): number;
+    node_first(): TreeNode | null;
+    node_last(): TreeNode | null;
+    ref(): Tree;
+    remove(key?: any | null): boolean;
+    remove_all(): void;
+    replace(key?: any | null, value?: any | null): void;
+    replace_node(key?: any | null, value?: any | null): TreeNode;
+    steal(key?: any | null): boolean;
+    unref(): void;
+    upper_bound(key?: any | null): TreeNode | null;
+}
+
+export class TreeNode {
+    static $gtype: GObject.GType<TreeNode>;
+
+    constructor(copy: TreeNode);
+
+    // Members
+    key(): any | null;
+    next(): TreeNode | null;
+    previous(): TreeNode | null;
+    value(): any | null;
+}
+
+export class Uri {
+    static $gtype: GObject.GType<Uri>;
+
+    constructor(copy: Uri);
+
+    // Members
+    get_auth_params(): string | null;
+    get_flags(): UriFlags;
+    get_fragment(): string | null;
+    get_host(): string | null;
+    get_password(): string | null;
+    get_path(): string;
+    get_port(): number;
+    get_query(): string | null;
+    get_scheme(): string;
+    get_user(): string | null;
+    get_userinfo(): string | null;
+    parse_relative(uri_ref: string, flags: UriFlags): Uri;
+    to_string(): string;
+    to_string_partial(flags: UriHideFlags): string;
+    static build(
+        flags: UriFlags,
+        scheme: string,
+        userinfo: string | null,
+        host: string | null,
+        port: number,
+        path: string,
+        query?: string | null,
+        fragment?: string | null
+    ): Uri;
+    static build_with_user(
+        flags: UriFlags,
+        scheme: string,
+        user: string | null,
+        password: string | null,
+        auth_params: string | null,
+        host: string | null,
+        port: number,
+        path: string,
+        query?: string | null,
+        fragment?: string | null
+    ): Uri;
+    static error_quark(): Quark;
+    static escape_bytes(unescaped: Uint8Array | string, reserved_chars_allowed?: string | null): string;
+    static escape_string(unescaped: string, reserved_chars_allowed: string | null, allow_utf8: boolean): 
string;
+    static is_valid(uri_string: string, flags: UriFlags): boolean;
+    static join(
+        flags: UriFlags,
+        scheme: string | null,
+        userinfo: string | null,
+        host: string | null,
+        port: number,
+        path: string,
+        query?: string | null,
+        fragment?: string | null
+    ): string;
+    static join_with_user(
+        flags: UriFlags,
+        scheme: string | null,
+        user: string | null,
+        password: string | null,
+        auth_params: string | null,
+        host: string | null,
+        port: number,
+        path: string,
+        query?: string | null,
+        fragment?: string | null
+    ): string;
+    static list_extract_uris(uri_list: string): string[];
+    static parse(uri_string: string, flags: UriFlags): Uri;
+    static parse_params(
+        params: string,
+        length: number,
+        separators: string,
+        flags: UriParamsFlags
+    ): HashTable<string, string>;
+    static parse_scheme(uri: string): string | null;
+    static peek_scheme(uri: string): string | null;
+    static resolve_relative(base_uri_string: string | null, uri_ref: string, flags: UriFlags): string;
+    static split(uri_ref: string, flags: UriFlags): [boolean, string, string, string, number, string, 
string, string];
+    static split_network(uri_string: string, flags: UriFlags): [boolean, string, string, number];
+    static split_with_user(
+        uri_ref: string,
+        flags: UriFlags
+    ): [boolean, string, string, string, string, string, number, string, string, string];
+    static unescape_bytes(escaped_string: string, length: number, illegal_characters?: string | null): Bytes;
+    static unescape_segment(
+        escaped_string?: string | null,
+        escaped_string_end?: string | null,
+        illegal_characters?: string | null
+    ): string | null;
+    static unescape_string(escaped_string: string, illegal_characters?: string | null): string | null;
+}
+
+export class UriParamsIter {
+    static $gtype: GObject.GType<UriParamsIter>;
+
+    constructor(copy: UriParamsIter);
+
+    // Members
+    init(params: string, length: number, separators: string, flags: UriParamsFlags): void;
+    next(): [boolean, string, string];
+}
+
+export class DoubleIEEE754 {
+    static $gtype: GObject.GType<DoubleIEEE754>;
+
+    constructor(
+        properties?: Partial<{
+            v_double?: number;
+        }>
+    );
+    constructor(copy: DoubleIEEE754);
+
+    // Fields
+    v_double: number;
+}
+
+export class FloatIEEE754 {
+    static $gtype: GObject.GType<FloatIEEE754>;
+
+    constructor(
+        properties?: Partial<{
+            v_float?: number;
+        }>
+    );
+    constructor(copy: FloatIEEE754);
+
+    // Fields
+    v_float: number;
+}
+
+export class Mutex {
+    static $gtype: GObject.GType<Mutex>;
+
+    constructor(copy: Mutex);
+
+    // Members
+    clear(): void;
+    init(): void;
+    lock(): void;
+    trylock(): boolean;
+    unlock(): void;
+}
+
+export class TokenValue {
+    static $gtype: GObject.GType<TokenValue>;
+
+    constructor(
+        properties?: Partial<{
+            v_symbol?: any;
+            v_identifier?: string;
+            v_binary?: number;
+            v_octal?: number;
+            v_int?: number;
+            v_int64?: number;
+            v_float?: number;
+            v_hex?: number;
+            v_string?: string;
+            v_comment?: string;
+            v_char?: number;
+            v_error?: number;
+        }>
+    );
+    constructor(copy: TokenValue);
+
+    // Fields
+    v_symbol: any;
+    v_identifier: string;
+    v_binary: number;
+    v_octal: number;
+    v_int: number;
+    v_int64: number;
+    v_float: number;
+    v_hex: number;
+    v_string: string;
+    v_comment: string;
+    v_char: number;
+    v_error: number;
+}
+export type DateDay = number;
+export type DateYear = number;
+export type MainContextPusher = void;
+export type MutexLocker = void;
+export type Pid = number;
+export type Quark = number;
+export type RWLockReaderLocker = void;
+export type RWLockWriterLocker = void;
+export type RecMutexLocker = void;
+export type RefString = number;
+export type Strv = string;
+export type Time = number;
+export type TimeSpan = number;
+export type Type = number;
+export function log_structured(logDomain: any, logLevel: any, stringFields: any): any;
+export function strstrip(str: string): string;
+
+// Variant parsing inspired by https://jamie.build/ slightly infamous JSON-in-TypeScript parsing.
+
+type CreateIndexType<Key extends string, Value extends any> = Key extends `s` | `o` | `g`
+    ? { [key: string]: Value }
+    : Key extends `n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`
+    ? { [key: number]: Value }
+    : never;
+
+type VariantTypeError<T extends string> = { error: true } & T;
+
+/**
+ * Handles the {kv} of a{kv} where k is a basic type and v is any possible variant type string.
+ */
+type $ParseDeepVariantDict<State extends string, Memo extends Record<string, any> = {}> = string extends 
State
+    ? VariantTypeError<"$ParseDeepVariantDict: 'string' is not a supported type.">
+    : // Hitting the first '}' indicates the dictionary type is complete
+    State extends `}${infer State}`
+    ? [Memo, State]
+    : // This separates the key (basic type) from the rest of the remaining expression.
+    State extends `${infer Key}${""}${infer State}`
+    ? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
+        ? State extends `}${infer State}`
+            ? [CreateIndexType<Key, Value>, State]
+            : VariantTypeError<`$ParseDeepVariantDict encountered an invalid variant string: ${State} (1)`>
+        : VariantTypeError<`$ParseDeepVariantValue returned unexpected value for: ${State}`>
+    : VariantTypeError<`$ParseDeepVariantDict encountered an invalid variant string: ${State} (2)`>;
+
+/**
+ * Handles parsing values within a tuple (e.g. (vvv)) where v is any possible variant type string.
+ */
+type $ParseDeepVariantArray<State extends string, Memo extends any[] = []> = string extends State
+    ? VariantTypeError<"$ParseDeepVariantArray: 'string' is not a supported type.">
+    : State extends `)${infer State}`
+    ? [Memo, State]
+    : $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
+    ? State extends `${infer NextValue})${infer NextState}`
+        ? $ParseDeepVariantArray<State, [...Memo, Value]>
+        : State extends `)${infer State}`
+        ? [[...Memo, Value], State]
+        : VariantTypeError<`1: $ParseDeepVariantArray encountered an invalid variant string: ${State}`>
+    : VariantTypeError<`2: $ParseDeepVariantValue returned unexpected value for: ${State}`>;
+
+/**
+ * Handles parsing {kv} without an 'a' prefix (key-value pair) where k is a basic type
+ * and v is any possible variant type string.
+ */
+type $ParseDeepVariantKeyValue<State extends string, Memo extends any[] = []> = string extends State
+    ? VariantTypeError<"$ParseDeepVariantKeyValue: 'string' is not a supported type.">
+    : State extends `}${infer State}`
+    ? [Memo, State]
+    : State extends `${infer Key}${""}${infer State}`
+    ? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
+        ? State extends `}${infer State}`
+            ? [[...Memo, $ParseVariant<Key>, Value], State]
+            : VariantTypeError<`$ParseDeepVariantKeyValue encountered an invalid variant string: ${State} 
(1)`>
+        : VariantTypeError<`$ParseDeepVariantKeyValue returned unexpected value for: ${State}`>
+    : VariantTypeError<`$ParseDeepVariantKeyValue encountered an invalid variant string: ${State} (2)`>;
+
+/**
+ * Handles parsing any variant 'value' or base unit.
+ *
+ * - ay - Array of bytes (Uint8Array)
+ * - a* - Array of type *
+ * - a{k*} - Dictionary
+ * - {k*} - KeyValue
+ * - (**) - tuple
+ * - s | o | g - string types
+ * - n | q | t | d | u | i | x | y - number types
+ * - b - boolean type
+ * - v - unknown Variant type
+ * - h | ? - unknown types
+ */
+type $ParseDeepVariantValue<State extends string> = string extends State
+    ? unknown
+    : State extends `${`s` | `o` | `g`}${infer State}`
+    ? [string, State]
+    : State extends `${`n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`}${infer State}`
+    ? [number, State]
+    : State extends `b${infer State}`
+    ? [boolean, State]
+    : State extends `v${infer State}`
+    ? [Variant, State]
+    : State extends `${"h" | "?"}${infer State}`
+    ? [unknown, State]
+    : State extends `(${infer State}`
+    ? $ParseDeepVariantArray<State>
+    : State extends `a{${infer State}`
+    ? $ParseDeepVariantDict<State>
+    : State extends `{${infer State}`
+    ? $ParseDeepVariantKeyValue<State>
+    : State extends `ay${infer State}`
+    ? [Uint8Array, State]
+    : State extends `m${infer State}`
+    ? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value | null, State]
+        : VariantTypeError<`$ParseDeepVariantValue encountered an invalid variant string: ${State} (3)`>
+    : State extends `a${infer State}`
+    ? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value[], State]
+        : VariantTypeError<`$ParseDeepVariantValue encountered an invalid variant string: ${State} (1)`>
+    : VariantTypeError<`$ParseDeepVariantValue encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseDeepVariant<T extends string> = $ParseDeepVariantValue<T> extends infer Result
+    ? Result extends [infer Value, string]
+        ? Value
+        : Result extends VariantTypeError<any>
+        ? Result
+        : VariantTypeError<"$ParseDeepVariantValue returned unexpected Result">
+    : VariantTypeError<"$ParseDeepVariantValue returned uninferrable Result">;
+
+type $ParseRecursiveVariantDict<State extends string, Memo extends Record<string, any> = {}> = string 
extends State
+    ? VariantTypeError<"$ParseRecursiveVariantDict: 'string' is not a supported type.">
+    : State extends `}${infer State}`
+    ? [Memo, State]
+    : State extends `${infer Key}${""}${infer State}`
+    ? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
+        ? State extends `}${infer State}`
+            ? [CreateIndexType<Key, Value>, State]
+            : VariantTypeError<`$ParseRecursiveVariantDict encountered an invalid variant string: ${State} 
(1)`>
+        : VariantTypeError<`$ParseRecursiveVariantValue returned unexpected value for: ${State}`>
+    : VariantTypeError<`$ParseRecursiveVariantDict encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseRecursiveVariantArray<State extends string, Memo extends any[] = []> = string extends State
+    ? VariantTypeError<"$ParseRecursiveVariantArray: 'string' is not a supported type.">
+    : State extends `)${infer State}`
+    ? [Memo, State]
+    : $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
+    ? State extends `${infer NextValue})${infer NextState}`
+        ? $ParseRecursiveVariantArray<State, [...Memo, Value]>
+        : State extends `)${infer State}`
+        ? [[...Memo, Value], State]
+        : VariantTypeError<`$ParseRecursiveVariantArray encountered an invalid variant string: ${State} (1)`>
+    : VariantTypeError<`$ParseRecursiveVariantValue returned unexpected value for: ${State} (2)`>;
+
+type $ParseRecursiveVariantKeyValue<State extends string, Memo extends any[] = []> = string extends State
+    ? VariantTypeError<"$ParseRecursiveVariantKeyValue: 'string' is not a supported type.">
+    : State extends `}${infer State}`
+    ? [Memo, State]
+    : State extends `${infer Key}${""}${infer State}`
+    ? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
+        ? State extends `}${infer State}`
+            ? [[...Memo, Key, Value], State]
+            : VariantTypeError<`$ParseRecursiveVariantKeyValue encountered an invalid variant string: 
${State} (1)`>
+        : VariantTypeError<`$ParseRecursiveVariantKeyValue returned unexpected value for: ${State}`>
+    : VariantTypeError<`$ParseRecursiveVariantKeyValue encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseRecursiveVariantValue<State extends string> = string extends State
+    ? unknown
+    : State extends `${`s` | `o` | `g`}${infer State}`
+    ? [string, State]
+    : State extends `${`n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`}${infer State}`
+    ? [number, State]
+    : State extends `b${infer State}`
+    ? [boolean, State]
+    : State extends `v${infer State}`
+    ? [unknown, State]
+    : State extends `${"h" | "?"}${infer State}`
+    ? [unknown, State]
+    : State extends `(${infer State}`
+    ? $ParseRecursiveVariantArray<State>
+    : State extends `a{${infer State}`
+    ? $ParseRecursiveVariantDict<State>
+    : State extends `{${infer State}`
+    ? $ParseRecursiveVariantKeyValue<State>
+    : State extends `ay${infer State}`
+    ? [Uint8Array, State]
+    : State extends `m${infer State}`
+    ? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value | null, State]
+        : VariantTypeError<`$ParseRecursiveVariantValue encountered an invalid variant string: ${State} (3)`>
+    : State extends `a${infer State}`
+    ? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value[], State]
+        : VariantTypeError<`$ParseRecursiveVariantValue encountered an invalid variant string: ${State} (1)`>
+    : VariantTypeError<`$ParseRecursiveVariantValue encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseRecursiveVariant<T extends string> = $ParseRecursiveVariantValue<T> extends infer Result
+    ? Result extends [infer Value, string]
+        ? Value
+        : Result extends VariantTypeError<any>
+        ? Result
+        : never
+    : never;
+
+type $ParseVariantDict<State extends string, Memo extends Record<string, any> = {}> = string extends State
+    ? VariantTypeError<"$ParseVariantDict: 'string' is not a supported type.">
+    : State extends `}${infer State}`
+    ? [Memo, State]
+    : State extends `${infer Key}${""}${infer State}`
+    ? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
+        ? State extends `}${infer State}`
+            ? [CreateIndexType<Key, Variant<Value extends string ? Value : any>>, State]
+            : VariantTypeError<`$ParseVariantDict encountered an invalid variant string: ${State} (1)`>
+        : VariantTypeError<`$ParseVariantValue returned unexpected value for: ${State}`>
+    : VariantTypeError<`$ParseVariantDict encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseVariantArray<State extends string, Memo extends any[] = []> = string extends State
+    ? VariantTypeError<"$ParseVariantArray: 'string' is not a supported type.">
+    : State extends `)${infer State}`
+    ? [Memo, State]
+    : $ParseVariantValue<State> extends [infer Value, `${infer State}`]
+    ? State extends `${infer NextValue})${infer NextState}`
+        ? $ParseVariantArray<State, [...Memo, Variant<Value extends string ? Value : any>]>
+        : State extends `)${infer State}`
+        ? [[...Memo, Variant<Value extends string ? Value : any>], State]
+        : VariantTypeError<`$ParseVariantArray encountered an invalid variant string: ${State} (1)`>
+    : VariantTypeError<`$ParseVariantValue returned unexpected value for: ${State} (2)`>;
+
+type $ParseVariantKeyValue<State extends string, Memo extends any[] = []> = string extends State
+    ? VariantTypeError<"$ParseVariantKeyValue: 'string' is not a supported type.">
+    : State extends `}${infer State}`
+    ? [Memo, State]
+    : State extends `${infer Key}${""}${infer State}`
+    ? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
+        ? State extends `}${infer State}`
+            ? [[...Memo, Variant<Key>, Variant<Value extends string ? Value : any>], State]
+            : VariantTypeError<`$ParseVariantKeyValue encountered an invalid variant string: ${State} (1)`>
+        : VariantTypeError<`$ParseVariantKeyValue returned unexpected value for: ${State}`>
+    : VariantTypeError<`$ParseVariantKeyValue encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseShallowRootVariantValue<State extends string> = string extends State
+    ? unknown
+    : State extends `${`s` | `o` | `g`}${infer State}`
+    ? [string, State]
+    : State extends `${`n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`}${infer State}`
+    ? [number, State]
+    : State extends `b${infer State}`
+    ? [boolean, State]
+    : State extends `v${infer State}`
+    ? [Variant, State]
+    : State extends `h${infer State}`
+    ? [unknown, State]
+    : State extends `?${infer State}`
+    ? [unknown, State]
+    : State extends `(${infer State}`
+    ? $ParseVariantArray<State>
+    : State extends `a{${infer State}`
+    ? $ParseVariantDict<State>
+    : State extends `{${infer State}`
+    ? $ParseVariantKeyValue<State>
+    : State extends `ay${infer State}`
+    ? [Uint8Array, State]
+    : State extends `m${infer State}`
+    ? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value | null, State]
+        : VariantTypeError<`$ParseShallowRootVariantValue encountered an invalid variant string: ${State} 
(2)`>
+    : State extends `a${infer State}`
+    ? [Variant<State>[], State]
+    : VariantTypeError<`$ParseShallowRootVariantValue encountered an invalid variant string: ${State} (1)`>;
+
+type $ParseVariantValue<State extends string> = string extends State
+    ? unknown
+    : State extends `s${infer State}`
+    ? ["s", State]
+    : State extends `o${infer State}`
+    ? ["o", State]
+    : State extends `g${infer State}`
+    ? ["g", State]
+    : State extends `n${infer State}`
+    ? ["n", State]
+    : State extends `q${infer State}`
+    ? ["q", State]
+    : State extends `t${infer State}`
+    ? ["t", State]
+    : State extends `d${infer State}`
+    ? ["d", State]
+    : State extends `u${infer State}`
+    ? ["u", State]
+    : State extends `i${infer State}`
+    ? ["i", State]
+    : State extends `x${infer State}`
+    ? ["x", State]
+    : State extends `y${infer State}`
+    ? ["y", State]
+    : State extends `b${infer State}`
+    ? ["b", State]
+    : State extends `v${infer State}`
+    ? ["v", State]
+    : State extends `h${infer State}`
+    ? ["h", State]
+    : State extends `?${infer State}`
+    ? ["?", State]
+    : State extends `(${infer State}`
+    ? $ParseVariantArray<State>
+    : State extends `a{${infer State}`
+    ? $ParseVariantDict<State>
+    : State extends `{${infer State}`
+    ? $ParseVariantKeyValue<State>
+    : State extends `ay${infer State}`
+    ? [Uint8Array, State]
+    : State extends `m${infer State}`
+    ? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value | null, State]
+        : VariantTypeError<`$ParseVariantValue encountered an invalid variant string: ${State} (3)`>
+    : State extends `a${infer State}`
+    ? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
+        ? [Value[], State]
+        : VariantTypeError<`$ParseVariantValue encountered an invalid variant string: ${State} (1)`>
+    : VariantTypeError<`$ParseVariantValue encountered an invalid variant string: ${State} (2)`>;
+
+type $ParseVariant<T extends string> = $ParseShallowRootVariantValue<T> extends infer Result
+    ? Result extends [infer Value, string]
+        ? Value
+        : Result extends VariantTypeError<any>
+        ? Result
+        : never
+    : never;
+
+type $VariantTypeToString<T extends VariantType> = T extends VariantType<infer S> ? S : never;
+
+export class Variant<S extends string = any> {
+    static $gtype: GObject.GType<Variant>;
+    constructor(sig: S, value: $ParseDeepVariant<typeof sig>);
+    constructor(copy: Variant<S>);
+    _init(sig: S, value: any): Variant<S>;
+    // Constructors
+    static ["new"]<S extends string>(sig: S, value: $ParseDeepVariant<typeof sig>): Variant<S>;
+    static _new_internal<S extends string>(sig: S, value: $ParseDeepVariant<typeof sig>): Variant<S>;
+    static new_array<C extends string = "a?">(
+        child_type: VariantType<C> | null,
+        children: typeof child_type extends VariantType<any>
+            ? Variant<$VariantTypeToString<typeof child_type>>[]
+            : Variant<C>[]
+    ): Variant<`a${C}`>;
+    static new_boolean(value: boolean): Variant<"b">;
+    static new_byte(value: number): Variant<"y">;
+    static new_bytestring(string: Uint8Array | string): Variant<"ay">;
+    static new_bytestring_array(strv: string[]): Variant<"aay">;
+    static new_dict_entry(key: Variant, value: Variant): Variant<"{vv}">;
+    static new_double(value: number): Variant<"d">;
+    static new_fixed_array<C extends string = "a?">(
+        element_type: VariantType<C>,
+        elements: Variant<$VariantTypeToString<typeof element_type>>[] | null,
+        n_elements: number,
+        element_size: number
+    ): Variant<`a${C}`>;
+    static new_from_bytes<C extends string>(
+        type: VariantType<C>,
+        bytes: Bytes | Uint8Array,
+        trusted: boolean
+    ): Variant<C>;
+    static new_from_data<C extends string>(
+        type: VariantType<C>,
+        data: Uint8Array | string,
+        trusted: boolean,
+        user_data?: any | null
+    ): Variant<C>;
+    static new_handle(value: number): Variant<"h">;
+    static new_int16(value: number): Variant<"n">;
+    static new_int32(value: number): Variant<"i">;
+    static new_int64(value: number): Variant<"x">;
+    static new_maybe(child_type?: VariantType | null, child?: Variant | null): Variant<"mv">;
+    static new_object_path(object_path: string): Variant<"o">;
+    static new_objv(strv: string[]): Variant<"ao">;
+    static new_signature(signature: string): Variant<"g">;
+    static new_string(string: string): Variant<"s">;
+    static new_strv(strv: string[]): Variant<"as">;
+    static new_tuple<Items extends ReadonlyArray<VariantType> | readonly [VariantType]>(
+        children: Items
+    ): Variant<`(${$ToTuple<Items>})`>;
+    static new_uint16(value: number): Variant<"q">;
+    static new_uint32(value: number): Variant<"u">;
+    static new_uint64(value: number): Variant<"t">;
+    static new_variant(value: Variant): Variant<"v">;
+    // Members
+    byteswap(): Variant;
+    check_format_string(format_string: string, copy_only: boolean): boolean;
+    classify(): VariantClass;
+    compare(two: Variant): number;
+    dup_bytestring(): Uint8Array;
+    dup_bytestring_array(): string[];
+    dup_objv(): string[];
+    dup_string(): [string, number];
+    dup_strv(): string[];
+    equal(two: Variant): boolean;
+    get_boolean(): boolean;
+    get_byte(): number;
+    get_bytestring(): Uint8Array;
+    get_bytestring_array(): string[];
+    get_child_value(index_: number): Variant;
+    get_data(): any | null;
+    get_data_as_bytes(): Bytes;
+    get_double(): number;
+    get_handle(): number;
+    get_int16(): number;
+    get_int32(): number;
+    get_int64(): number;
+    get_maybe(): Variant | null;
+    get_normal_form(): Variant;
+    get_objv(): string[];
+    get_size(): number;
+    get_string(): [string, number | null];
+    get_strv(): string[];
+    get_type(): VariantType<S>;
+    get_type_string(): string;
+    get_uint16(): number;
+    get_uint32(): number;
+    get_uint64(): number;
+    get_variant(): Variant;
+    hash(): number;
+    is_container(): boolean;
+    is_floating(): boolean;
+    is_normal_form(): boolean;
+    is_of_type(type: VariantType): boolean;
+    lookup_value(key: string, expected_type?: VariantType | null): Variant;
+    n_children(): number;
+    print(type_annotate: boolean): string;
+    ref(): Variant;
+    ref_sink(): Variant;
+    store(data: any): void;
+    take_ref(): Variant;
+    unref(): void;
+    static is_object_path(string: string): boolean;
+    static is_signature(string: string): boolean;
+    static parse(type: VariantType | null, text: string, limit?: string | null, endptr?: string | null): 
Variant;
+    static parse_error_print_context(error: Error, source_str: string): string;
+    static parse_error_quark(): Quark;
+    static parser_get_error_quark(): Quark;
+    unpack(): $ParseVariant<S>;
+    deepUnpack(): $ParseDeepVariant<S>;
+    deep_unpack(): $ParseDeepVariant<S>;
+    recursiveUnpack(): $ParseRecursiveVariant<S>;
+}
+
+type $ElementSig<E extends any> = E extends [infer Element]
+    ? Element
+    : E extends [infer Element, ...infer Elements]
+    ? Element | $ElementSig<Elements>
+    : E extends globalThis.Array<infer Element>
+    ? Element
+    : never;
+
+export class VariantBuilder<S extends string = "a*"> {
+    static $gtype: GObject.GType<VariantBuilder>;
+    constructor(type: VariantType<S>);
+    constructor(copy: VariantBuilder<S>);
+    // Constructors
+    static ["new"]<S extends string = "a*">(type: VariantType<S>): VariantBuilder<S>;
+    // Members
+    add_value(value: $ElementSig<$ParseDeepVariant<S>>): void;
+    close(): void;
+    end(): Variant<S>;
+    open(type: VariantType): void;
+    ref(): VariantBuilder;
+    unref(): void;
+}
+
+export class VariantDict {
+    static $gtype: GObject.GType<VariantDict>;
+    constructor(from_asv?: Variant | null);
+    constructor(copy: VariantDict);
+    // Constructors
+    static ["new"](from_asv?: Variant | null): VariantDict;
+    // Members
+    clear(): void;
+    contains(key: string): boolean;
+    end(): Variant;
+    insert_value(key: string, value: Variant): void;
+    lookup_value(key: string, expected_type?: VariantType | null): Variant;
+    ref(): VariantDict;
+    remove(key: string): boolean;
+    unref(): void;
+    lookup(key: any, variantType?: any, deep?: boolean): any;
+}
+
+type $ToTuple<T extends readonly VariantType[]> = T extends []
+    ? ""
+    : T extends [VariantType<infer S>]
+    ? `${S}`
+    : T extends [VariantType<infer S>, ...infer U]
+    ? U extends [...VariantType[]]
+        ? `${S}${$ToTuple<U>}`
+        : never
+    : "?";
+
+export class VariantType<S extends string = any> {
+    static $gtype: GObject.GType<VariantType>;
+    constructor(type_string: S);
+    constructor(copy: VariantType<S>);
+    // Constructors
+    static ["new"]<S extends string>(type_string: S): VariantType<S>;
+    static new_array<S extends string>(element: VariantType<S>): VariantType<`a${S}`>;
+    static new_dict_entry<K extends string, V extends string>(
+        key: VariantType<K>,
+        value: VariantType<V>
+    ): VariantType<`{${K}${V}}`>;
+    static new_maybe<S extends string>(element: VariantType<S>): VariantType<`m${S}`>;
+    static new_tuple<Items extends ReadonlyArray<VariantType> | readonly [VariantType]>(
+        items: Items
+    ): VariantType<`(${$ToTuple<Items>})`>;
+    // Members
+    copy(): VariantType<S>;
+    dup_string(): string;
+    element(): VariantType;
+    equal(type2: VariantType): boolean;
+    first(): VariantType;
+    free(): void;
+    get_string_length(): number;
+    hash(): number;
+    is_array(): boolean;
+    is_basic(): boolean;
+    is_container(): boolean;
+    is_definite(): boolean;
+    is_dict_entry(): boolean;
+    is_maybe(): boolean;
+    is_subtype_of(supertype: VariantType): boolean;
+    is_tuple(): boolean;
+    is_variant(): boolean;
+    key(): VariantType;
+    n_items(): number;
+    next(): VariantType;
+    value(): VariantType;
+    static checked_(arg0: string): VariantType;
+    static string_get_depth_(type_string: string): number;
+    static string_is_valid(type_string: string): boolean;
+    static string_scan(string: string, limit?: string | null): [boolean, string | null];
+}
diff --git a/types/gobject.d.ts b/types/gobject.d.ts
new file mode 100644
index 0000000..70935a4
--- /dev/null
+++ b/types/gobject.d.ts
@@ -0,0 +1,2062 @@
+/**
+ * GObject 2.0
+ *
+ * Generated from 2.72.2
+ */
+
+import * as GLib from "glib";
+
+export const PARAM_MASK: number;
+export const PARAM_STATIC_STRINGS: number;
+export const PARAM_USER_SHIFT: number;
+export const SIGNAL_FLAGS_MASK: number;
+export const SIGNAL_MATCH_MASK: number;
+export const TYPE_FLAG_RESERVED_ID_BIT: GLib.Type;
+export const TYPE_FUNDAMENTAL_MAX: number;
+export const TYPE_FUNDAMENTAL_SHIFT: number;
+export const TYPE_RESERVED_BSE_FIRST: number;
+export const TYPE_RESERVED_BSE_LAST: number;
+export const TYPE_RESERVED_GLIB_FIRST: number;
+export const TYPE_RESERVED_GLIB_LAST: number;
+export const TYPE_RESERVED_USER_FIRST: number;
+export const VALUE_INTERNED_STRING: number;
+export const VALUE_NOCOPY_CONTENTS: number;
+export function boxed_copy(boxed_type: GType, src_boxed: any): any;
+export function boxed_free(boxed_type: GType, boxed: any): void;
+export function cclosure_marshal_BOOLEAN__BOXED_BOXED(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_BOOLEAN__FLAGS(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_STRING__OBJECT_POINTER(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__BOOLEAN(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__BOXED(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__CHAR(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__DOUBLE(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__ENUM(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__FLAGS(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__FLOAT(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__INT(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__LONG(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__OBJECT(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__PARAM(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__POINTER(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__STRING(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__UCHAR(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__UINT(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__UINT_POINTER(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__ULONG(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__VARIANT(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_VOID__VOID(
+    closure: Closure,
+    return_value: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function cclosure_marshal_generic(
+    closure: Closure,
+    return_gvalue: Value | any,
+    n_param_values: number,
+    param_values: Value | any,
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+): void;
+export function clear_signal_handler(handler_id_ptr: number, instance: Object): void;
+export function enum_complete_type_info(g_enum_type: GType, const_values: EnumValue): TypeInfo;
+export function enum_get_value(enum_class: EnumClass, value: number): EnumValue | null;
+export function enum_get_value_by_name(enum_class: EnumClass, name: string): EnumValue | null;
+export function enum_get_value_by_nick(enum_class: EnumClass, nick: string): EnumValue | null;
+export function enum_register_static(name: string, const_static_values: EnumValue): GType;
+export function enum_to_string(g_enum_type: GType, value: number): string;
+export function flags_complete_type_info(g_flags_type: GType, const_values: FlagsValue): TypeInfo;
+export function flags_get_first_value(flags_class: FlagsClass, value: number): FlagsValue | null;
+export function flags_get_value_by_name(flags_class: FlagsClass, name: string): FlagsValue | null;
+export function flags_get_value_by_nick(flags_class: FlagsClass, nick: string): FlagsValue | null;
+export function flags_register_static(name: string, const_static_values: FlagsValue): GType;
+export function flags_to_string(flags_type: GType, value: number): string;
+export function gtype_get_type(): GType;
+export function param_spec_boolean(
+    name: string,
+    nick: string,
+    blurb: string,
+    default_value: boolean,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_boxed(
+    name: string,
+    nick: string,
+    blurb: string,
+    boxed_type: GType,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_char(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_double(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_enum(
+    name: string,
+    nick: string,
+    blurb: string,
+    enum_type: GType,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_flags(
+    name: string,
+    nick: string,
+    blurb: string,
+    flags_type: GType,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_float(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_gtype(
+    name: string,
+    nick: string,
+    blurb: string,
+    is_a_type: GType,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_int(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_int64(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_long(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_object(
+    name: string,
+    nick: string,
+    blurb: string,
+    object_type: GType,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_param(
+    name: string,
+    nick: string,
+    blurb: string,
+    param_type: GType,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_pointer(name: string, nick: string, blurb: string, flags: ParamFlags): ParamSpec;
+export function param_spec_string(
+    name: string,
+    nick: string,
+    blurb: string,
+    default_value: string | null,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_uchar(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_uint(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_uint64(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_ulong(
+    name: string,
+    nick: string,
+    blurb: string,
+    minimum: number,
+    maximum: number,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_unichar(
+    name: string,
+    nick: string,
+    blurb: string,
+    default_value: number,
+    flags: ParamFlags
+): ParamSpec;
+export function param_spec_variant(
+    name: string,
+    nick: string,
+    blurb: string,
+    type: GLib.VariantType,
+    default_value: GLib.Variant | null,
+    flags: ParamFlags
+): ParamSpec;
+export function param_type_register_static(name: string, pspec_info: ParamSpecTypeInfo): GType;
+export function param_value_convert(
+    pspec: ParamSpec,
+    src_value: Value | any,
+    dest_value: Value | any,
+    strict_validation: boolean
+): boolean;
+export function param_value_defaults(pspec: ParamSpec, value: Value | any): boolean;
+export function param_value_set_default(pspec: ParamSpec, value: Value | any): void;
+export function param_value_validate(pspec: ParamSpec, value: Value | any): boolean;
+export function param_values_cmp(pspec: ParamSpec, value1: Value | any, value2: Value | any): number;
+export function pointer_type_register_static(name: string): GType;
+export function signal_accumulator_first_wins(
+    ihint: SignalInvocationHint,
+    return_accu: Value | any,
+    handler_return: Value | any,
+    dummy?: any | null
+): boolean;
+export function signal_accumulator_true_handled(
+    ihint: SignalInvocationHint,
+    return_accu: Value | any,
+    handler_return: Value | any,
+    dummy?: any | null
+): boolean;
+export function signal_add_emission_hook(
+    signal_id: number,
+    detail: GLib.Quark,
+    data_destroy?: GLib.DestroyNotify | null
+): number;
+export function signal_chain_from_overridden(instance_and_params: Value[], return_value: Value | any): void;
+export function signal_connect_closure(
+    instance: Object,
+    detailed_signal: string,
+    closure: Closure,
+    after: boolean
+): number;
+export function signal_connect_closure_by_id(
+    instance: Object,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure,
+    after: boolean
+): number;
+export function signal_emitv(
+    instance_and_params: Value[],
+    signal_id: number,
+    detail: GLib.Quark,
+    return_value?: Value | any
+): unknown;
+export function signal_get_invocation_hint(instance: Object): SignalInvocationHint | null;
+export function signal_handler_block(instance: Object, handler_id: number): void;
+export function signal_handler_disconnect(instance: Object, handler_id: number): void;
+export function signal_handler_is_connected(instance: Object, handler_id: number): boolean;
+export function signal_handler_unblock(instance: Object, handler_id: number): void;
+export function signal_handlers_block_matched(
+    instance: Object,
+    mask: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    func?: any | null,
+    data?: any | null
+): number;
+export function signal_handlers_destroy(instance: Object): void;
+export function signal_handlers_disconnect_matched(
+    instance: Object,
+    mask: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    func?: any | null,
+    data?: any | null
+): number;
+export function signal_handlers_unblock_matched(
+    instance: Object,
+    mask: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    func?: any | null,
+    data?: any | null
+): number;
+export function signal_has_handler_pending(
+    instance: Object,
+    signal_id: number,
+    detail: GLib.Quark,
+    may_be_blocked: boolean
+): boolean;
+export function signal_is_valid_name(name: string): boolean;
+export function signal_list_ids(itype: GType): number[];
+export function signal_lookup(name: string, itype: GType): number;
+export function signal_name(signal_id: number): string | null;
+export function signal_override_class_closure(signal_id: number, instance_type: GType, class_closure: 
Closure): void;
+export function signal_parse_name(
+    detailed_signal: string,
+    itype: GType,
+    force_detail_quark: boolean
+): [boolean, number, GLib.Quark];
+export function signal_query(signal_id: number): SignalQuery;
+export function signal_remove_emission_hook(signal_id: number, hook_id: number): void;
+export function signal_set_va_marshaller(
+    signal_id: number,
+    instance_type: GType,
+    va_marshaller: SignalCVaMarshaller
+): void;
+export function signal_stop_emission(instance: Object, signal_id: number, detail: GLib.Quark): void;
+export function signal_stop_emission_by_name(instance: Object, detailed_signal: string): void;
+export function signal_type_cclosure_new(itype: GType, struct_offset: number): Closure;
+export function source_set_closure(source: GLib.Source, closure: Closure): void;
+export function source_set_dummy_callback(source: GLib.Source): void;
+export function strdup_value_contents(value: Value | any): string;
+export function type_add_class_private(class_type: GType, private_size: number): void;
+export function type_add_instance_private(class_type: GType, private_size: number): number;
+export function type_add_interface_dynamic(instance_type: GType, interface_type: GType, plugin: TypePlugin): 
void;
+export function type_add_interface_static(instance_type: GType, interface_type: GType, info: InterfaceInfo): 
void;
+export function type_check_class_is_a(g_class: TypeClass, is_a_type: GType): boolean;
+export function type_check_instance(instance: TypeInstance): boolean;
+export function type_check_instance_is_a(instance: TypeInstance, iface_type: GType): boolean;
+export function type_check_instance_is_fundamentally_a(instance: TypeInstance, fundamental_type: GType): 
boolean;
+export function type_check_is_value_type(type: GType): boolean;
+export function type_check_value(value: Value | any): boolean;
+export function type_check_value_holds(value: Value | any, type: GType): boolean;
+export function type_children(type: GType): GType[];
+export function type_class_adjust_private_offset(g_class: any | null, private_size_or_offset: number): void;
+export function type_class_peek(type: GType): TypeClass;
+export function type_class_peek_static(type: GType): TypeClass;
+export function type_class_ref(type: GType): TypeClass;
+export function type_default_interface_peek(g_type: GType): TypeInterface;
+export function type_default_interface_ref(g_type: GType): TypeInterface;
+export function type_default_interface_unref(g_iface: TypeInterface): void;
+export function type_depth(type: GType): number;
+export function type_ensure(type: GType): void;
+export function type_free_instance(instance: TypeInstance): void;
+export function type_from_name(name: string): GType;
+export function type_fundamental(type_id: GType): GType;
+export function type_fundamental_next(): GType;
+export function type_get_instance_count(type: GType): number;
+export function type_get_plugin(type: GType): TypePlugin;
+export function type_get_qdata(type: GType, quark: GLib.Quark): any | null;
+export function type_get_type_registration_serial(): number;
+export function type_init(): void;
+export function type_init_with_debug_flags(debug_flags: TypeDebugFlags): void;
+export function type_interface_add_prerequisite(interface_type: GType, prerequisite_type: GType): void;
+export function type_interface_get_plugin(instance_type: GType, interface_type: GType): TypePlugin;
+export function type_interface_instantiatable_prerequisite(interface_type: GType): GType;
+export function type_interface_peek(instance_class: TypeClass, iface_type: GType): TypeInterface;
+export function type_interface_prerequisites(interface_type: GType): GType[];
+export function type_interfaces(type: GType): GType[];
+export function type_is_a(type: GType, is_a_type: GType): boolean;
+export function type_name(type: GType): string;
+export function type_name_from_class(g_class: TypeClass): string;
+export function type_name_from_instance(instance: TypeInstance): string;
+export function type_next_base(leaf_type: GType, root_type: GType): GType;
+export function type_parent(type: GType): GType;
+export function type_qname(type: GType): GLib.Quark;
+export function type_query(type: GType): TypeQuery;
+export function type_register_dynamic(
+    parent_type: GType,
+    type_name: string,
+    plugin: TypePlugin,
+    flags: TypeFlags
+): GType;
+export function type_register_fundamental(
+    type_id: GType,
+    type_name: string,
+    info: TypeInfo,
+    finfo: TypeFundamentalInfo,
+    flags: TypeFlags
+): GType;
+export function type_register_static(parent_type: GType, type_name: string, info: TypeInfo, flags: 
TypeFlags): GType;
+export function type_set_qdata(type: GType, quark: GLib.Quark, data?: any | null): void;
+export function type_test_flags(type: GType, flags: number): boolean;
+export function value_type_compatible(src_type: GType, dest_type: GType): boolean;
+export function value_type_transformable(src_type: GType, dest_type: GType): boolean;
+export type BaseFinalizeFunc = (g_class: TypeClass) => void;
+export type BaseInitFunc = (g_class: TypeClass) => void;
+export type BindingTransformFunc = (binding: Binding, from_value: Value | any, to_value: Value | any) => 
boolean;
+export type BoxedCopyFunc = (boxed: any) => any;
+export type BoxedFreeFunc = (boxed: any) => void;
+export type Callback = () => void;
+export type ClassFinalizeFunc = (g_class: TypeClass, class_data?: any | null) => void;
+export type ClassInitFunc = (g_class: TypeClass, class_data?: any | null) => void;
+export type ClosureMarshal = (
+    closure: Closure,
+    return_value: Value | null,
+    param_values: Value[],
+    invocation_hint?: any | null,
+    marshal_data?: any | null
+) => void;
+export type ClosureNotify = (data: any | null, closure: Closure) => void;
+export type InstanceInitFunc = (instance: TypeInstance, g_class: TypeClass) => void;
+export type InterfaceFinalizeFunc = (g_iface: TypeInterface, iface_data?: any | null) => void;
+export type InterfaceInitFunc = (g_iface: TypeInterface, iface_data?: any | null) => void;
+export type ObjectFinalizeFunc<A = Object> = (object: A) => void;
+export type ObjectGetPropertyFunc<A = Object> = (
+    object: A,
+    property_id: number,
+    value: Value | any,
+    pspec: ParamSpec
+) => void;
+export type ObjectSetPropertyFunc<A = Object> = (
+    object: A,
+    property_id: number,
+    value: Value | any,
+    pspec: ParamSpec
+) => void;
+export type SignalAccumulator = (
+    ihint: SignalInvocationHint,
+    return_accu: Value | any,
+    handler_return: Value | any,
+    data?: any | null
+) => boolean;
+export type SignalEmissionHook = (ihint: SignalInvocationHint, param_values: Value[], data?: any | null) => 
boolean;
+export type ToggleNotify<A = Object> = (data: any | null, object: A, is_last_ref: boolean) => void;
+export type TypeClassCacheFunc = (cache_data: any | null, g_class: TypeClass) => boolean;
+export type TypeInterfaceCheckFunc = (check_data: any | null, g_iface: TypeInterface) => void;
+export type TypePluginCompleteInterfaceInfo = (
+    plugin: TypePlugin,
+    instance_type: GType,
+    interface_type: GType,
+    info: InterfaceInfo
+) => void;
+export type TypePluginCompleteTypeInfo = (
+    plugin: TypePlugin,
+    g_type: GType,
+    info: TypeInfo,
+    value_table: TypeValueTable
+) => void;
+export type TypePluginUnuse = (plugin: TypePlugin) => void;
+export type TypePluginUse = (plugin: TypePlugin) => void;
+export type ValueTransform = (src_value: Value | any, dest_value: Value | any) => void;
+export type WeakNotify<A = Object> = (data: any | null, where_the_object_was: A) => void;
+
+export namespace BindingFlags {
+    export const $gtype: GType<BindingFlags>;
+}
+
+export enum BindingFlags {
+    DEFAULT = 0,
+    BIDIRECTIONAL = 1,
+    SYNC_CREATE = 2,
+    INVERT_BOOLEAN = 4,
+}
+
+export namespace ConnectFlags {
+    export const $gtype: GType<ConnectFlags>;
+}
+
+export enum ConnectFlags {
+    AFTER = 1,
+    SWAPPED = 2,
+}
+
+export namespace ParamFlags {
+    export const $gtype: GType<ParamFlags>;
+}
+
+export enum ParamFlags {
+    READABLE = 1,
+    WRITABLE = 2,
+    READWRITE = 3,
+    CONSTRUCT = 4,
+    CONSTRUCT_ONLY = 8,
+    LAX_VALIDATION = 16,
+    STATIC_NAME = 32,
+    PRIVATE = 32,
+    STATIC_NICK = 64,
+    STATIC_BLURB = 128,
+    EXPLICIT_NOTIFY = 1073741824,
+    DEPRECATED = 2147483648,
+}
+
+export namespace SignalFlags {
+    export const $gtype: GType<SignalFlags>;
+}
+
+export enum SignalFlags {
+    RUN_FIRST = 1,
+    RUN_LAST = 2,
+    RUN_CLEANUP = 4,
+    NO_RECURSE = 8,
+    DETAILED = 16,
+    ACTION = 32,
+    NO_HOOKS = 64,
+    MUST_COLLECT = 128,
+    DEPRECATED = 256,
+    ACCUMULATOR_FIRST_RUN = 131072,
+}
+
+export namespace SignalMatchType {
+    export const $gtype: GType<SignalMatchType>;
+}
+
+export enum SignalMatchType {
+    ID = 1,
+    DETAIL = 2,
+    CLOSURE = 4,
+    FUNC = 8,
+    DATA = 16,
+    UNBLOCKED = 32,
+}
+
+export namespace TypeDebugFlags {
+    export const $gtype: GType<TypeDebugFlags>;
+}
+
+export enum TypeDebugFlags {
+    NONE = 0,
+    OBJECTS = 1,
+    SIGNALS = 2,
+    INSTANCE_COUNT = 4,
+    MASK = 7,
+}
+
+export namespace TypeFlags {
+    export const $gtype: GType<TypeFlags>;
+}
+
+export enum TypeFlags {
+    ABSTRACT = 16,
+    VALUE_ABSTRACT = 32,
+    FINAL = 64,
+}
+
+export namespace TypeFundamentalFlags {
+    export const $gtype: GType<TypeFundamentalFlags>;
+}
+
+export enum TypeFundamentalFlags {
+    CLASSED = 1,
+    INSTANTIATABLE = 2,
+    DERIVABLE = 4,
+    DEEP_DERIVABLE = 8,
+}
+export module Binding {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        flags: BindingFlags;
+        source: Object;
+        source_property: string;
+        sourceProperty: string;
+        target: Object;
+        target_property: string;
+        targetProperty: string;
+    }
+}
+export class Binding extends Object {
+    static $gtype: GType<Binding>;
+
+    constructor(properties?: Partial<Binding.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Binding.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get flags(): BindingFlags;
+    get source(): Object;
+    get source_property(): string;
+    get sourceProperty(): string;
+    get target(): Object;
+    get target_property(): string;
+    get targetProperty(): string;
+
+    // Members
+
+    dup_source<T = Object>(): T;
+    dup_target<T = Object>(): T;
+    get_flags(): BindingFlags;
+    get_source<T = Object>(): T;
+    get_source_property(): string;
+    get_target<T = Object>(): T;
+    get_target_property(): string;
+    unbind(): void;
+}
+export module BindingGroup {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        source: Object;
+    }
+}
+export class BindingGroup extends Object {
+    static $gtype: GType<BindingGroup>;
+
+    constructor(properties?: Partial<BindingGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BindingGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get source(): Object;
+    set source(val: Object);
+
+    // Constructors
+
+    static ["new"](): BindingGroup;
+
+    // Members
+
+    bind(source_property: string, target: Object, target_property: string, flags: BindingFlags): void;
+    bind_full(
+        source_property: string,
+        target: Object,
+        target_property: string,
+        flags: BindingFlags,
+        transform_to?: BindingTransformFunc | null,
+        transform_from?: BindingTransformFunc | null
+    ): void;
+    bind_full(
+        source_property: string,
+        target: Object,
+        target_property: string,
+        flags: BindingFlags,
+        transform_to?: Closure | null,
+        transform_from?: Closure | null
+    ): void;
+    dup_source<T = Object>(): T;
+    set_source(source?: Object | null): void;
+}
+export module InitiallyUnowned {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class InitiallyUnowned extends Object {
+    static $gtype: GType<InitiallyUnowned>;
+
+    constructor(properties?: Partial<InitiallyUnowned.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<InitiallyUnowned.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    g_type_instance: TypeInstance;
+}
+export module Object {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Object {
+    static $gtype: GType<Object>;
+
+    constructor(properties?: Partial<Object.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Object.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    g_type_instance: TypeInstance;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "notify", callback: (_source: this, pspec: ParamSpec) => void): number;
+    connect_after(signal: "notify", callback: (_source: this, pspec: ParamSpec) => void): number;
+    emit(signal: "notify", pspec: ParamSpec): void;
+
+    // Constructors
+
+    static newv(object_type: GType, parameters: Parameter[]): Object;
+
+    // Members
+
+    bind_property(source_property: string, target: Object, target_property: string, flags: BindingFlags): 
Binding;
+    bind_property_full(
+        source_property: string,
+        target: Object,
+        target_property: string,
+        flags: BindingFlags,
+        transform_to?: BindingTransformFunc | null,
+        transform_from?: BindingTransformFunc | null,
+        notify?: GLib.DestroyNotify | null
+    ): Binding;
+    bind_property_full(
+        source_property: string,
+        target: Object,
+        target_property: string,
+        flags: BindingFlags,
+        transform_to: Closure,
+        transform_from: Closure
+    ): Binding;
+    force_floating(): void;
+    freeze_notify(): void;
+    get_data(key: string): any | null;
+    get_property(property_name: string): any;
+    get_qdata(quark: GLib.Quark): any | null;
+    getv(names: string[], values: Value[]): void;
+    is_floating(): boolean;
+    notify(property_name: string): void;
+    notify_by_pspec(pspec: ParamSpec): void;
+    ref(): Object;
+    ref_sink(): Object;
+    run_dispose(): void;
+    set_data(key: string, data?: any | null): void;
+    set_property(property_name: string, value: any): void;
+    steal_data(key: string): any | null;
+    steal_qdata(quark: GLib.Quark): any | null;
+    thaw_notify(): void;
+    unref(): void;
+    watch_closure(closure: Closure): void;
+    vfunc_constructed(): void;
+    vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: ParamSpec): void;
+    vfunc_dispose(): void;
+    vfunc_finalize(): void;
+    vfunc_get_property(property_id: number, value: Value | any, pspec: ParamSpec): void;
+    vfunc_notify(pspec: ParamSpec): void;
+    vfunc_set_property(property_id: number, value: Value | any, pspec: ParamSpec): void;
+    static compat_control(what: number, data?: any | null): number;
+    static interface_find_property(g_iface: TypeInterface, property_name: string): ParamSpec;
+    static interface_install_property(g_iface: TypeInterface, pspec: ParamSpec): void;
+    static interface_list_properties(g_iface: TypeInterface): ParamSpec[];
+    static find_property(property_name: string): ParamSpec;
+    static install_properties(pspecs: ParamSpec[]): void;
+    static install_property(property_id: number, pspec: ParamSpec): void;
+    static list_properties(): ParamSpec[];
+    static override_property(property_id: number, name: string): void;
+    static _classInit(klass: any): any;
+    disconnect(id: number): void;
+    set(properties: { [key: string]: any }): void;
+    block_signal_handler(id: number): any;
+    unblock_signal_handler(id: number): any;
+    stop_emission_by_name(detailedName: string): any;
+}
+export module ParamSpec {
+    export interface ConstructorProperties<A = unknown> {
+        [key: string]: any;
+    }
+}
+export abstract class ParamSpec<A = unknown> {
+    static $gtype: GType<ParamSpec>;
+
+    constructor(properties?: Partial<ParamSpec.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<ParamSpec.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Fields
+    g_type_instance: TypeInstance;
+    name: string;
+    flags: ParamFlags;
+    value_type: GType;
+    owner_type: GType;
+    static override: any;
+
+    // Members
+
+    get_blurb(): string | null;
+    get_default_value(): unknown;
+    get_name(): string;
+    get_name_quark(): GLib.Quark;
+    get_nick(): string;
+    get_qdata(quark: GLib.Quark): any | null;
+    get_redirect_target(): ParamSpec | null;
+    set_qdata(quark: GLib.Quark, data?: any | null): void;
+    sink(): void;
+    steal_qdata(quark: GLib.Quark): any | null;
+    vfunc_finalize(): void;
+    vfunc_value_set_default(value: Value | any): void;
+    vfunc_value_validate(value: Value | any): boolean;
+    vfunc_values_cmp(value1: Value | any, value2: Value | any): number;
+    static is_valid_name(name: string): boolean;
+    static char(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static uchar(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static int(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static uint(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static long(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static ulong(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static int64(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static uint64(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static float(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static boolean(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        defaultValue: boolean
+    ): ParamSpec<boolean>;
+    static flags(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        flagsType: any,
+        defaultValue: any
+    ): ParamSpec<number>;
+    static enum<T>(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        enumType: GType<T> | { $gtype: GType<T> },
+        defaultValue: any
+    ): ParamSpec<T>;
+    static double(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        minimum: number,
+        maximum: number,
+        defaultValue: number
+    ): ParamSpec<number>;
+    static string(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        defaultValue: string
+    ): ParamSpec<string>;
+    static boxed<T>(
+        name: string,
+        nick: string,
+        blurb: string,
+        flags: ParamFlags | number,
+        boxedType: GType<T> | { $gtype: GType<T> }
+    ): ParamSpec<T>;
+    static object<T>(
+        name: any,
+        nick: any,
+        blurb: any,
+        flags: any,
+        objectType: GType<T> | { $gtype: GType<T> }
+    ): ParamSpec<T>;
+    static param(name: string, nick: string, blurb: string, flags: ParamFlags | number, paramType: any): 
ParamSpec;
+    __type__(arg: never): A;
+}
+
+export module SignalGroup {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        target: Object;
+        target_type: GType;
+        targetType: GType;
+    }
+}
+export class SignalGroup extends Object {
+    static $gtype: GType<SignalGroup>;
+
+    constructor(properties?: Partial<SignalGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SignalGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get target(): Object;
+    set target(val: Object);
+    get target_type(): GType;
+    get targetType(): GType;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "bind", callback: (_source: this, instance: Object) => void): number;
+    connect_after(signal: "bind", callback: (_source: this, instance: Object) => void): number;
+    emit(signal: "bind", instance: Object): void;
+    connect(signal: "unbind", callback: (_source: this) => void): number;
+    connect_after(signal: "unbind", callback: (_source: this) => void): number;
+    emit(signal: "unbind"): void;
+
+    // Constructors
+
+    static ["new"](target_type: GType): SignalGroup;
+
+    // Members
+
+    block(): void;
+    connect_data(detailed_signal: string, c_handler: Callback, notify: ClosureNotify, flags: ConnectFlags): 
void;
+    connect_swapped(detailed_signal: string, c_handler: Callback): void;
+    dup_target<T = Object>(): T;
+    set_target(target?: Object | null): void;
+    unblock(): void;
+}
+export module TypeModule {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class TypeModule extends Object implements TypePlugin {
+    static $gtype: GType<TypeModule>;
+
+    constructor(properties?: Partial<TypeModule.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TypeModule.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    use_count: number;
+    type_infos: any[];
+    interface_infos: any[];
+    name: string;
+
+    // Members
+
+    add_interface(instance_type: GType, interface_type: GType, interface_info: InterfaceInfo): void;
+    register_enum(name: string, const_static_values: EnumValue): GType;
+    register_flags(name: string, const_static_values: FlagsValue): GType;
+    register_type(parent_type: GType, type_name: string, type_info: TypeInfo, flags: TypeFlags): GType;
+    set_name(name: string): void;
+    unuse(): void;
+    use(): boolean;
+    // Conflicted with GObject.TypePlugin.use
+    use(...args: never[]): any;
+    vfunc_load(): boolean;
+    vfunc_unload(): void;
+
+    // Implemented Members
+
+    complete_interface_info(instance_type: GType, interface_type: GType, info: InterfaceInfo): void;
+    complete_type_info(g_type: GType, info: TypeInfo, value_table: TypeValueTable): void;
+}
+
+export class CClosure {
+    static $gtype: GType<CClosure>;
+
+    constructor(copy: CClosure);
+
+    // Fields
+    closure: Closure;
+    callback: any;
+
+    // Members
+    static marshal_BOOLEAN__BOXED_BOXED(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_BOOLEAN__FLAGS(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_STRING__OBJECT_POINTER(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__BOOLEAN(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__BOXED(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__CHAR(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__DOUBLE(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__ENUM(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__FLAGS(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__FLOAT(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__INT(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__LONG(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__OBJECT(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__PARAM(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__POINTER(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__STRING(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__UCHAR(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__UINT(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__UINT_POINTER(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__ULONG(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__VARIANT(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_VOID__VOID(
+        closure: Closure,
+        return_value: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+    static marshal_generic(
+        closure: Closure,
+        return_gvalue: Value | any,
+        n_param_values: number,
+        param_values: Value | any,
+        invocation_hint?: any | null,
+        marshal_data?: any | null
+    ): void;
+}
+
+export class ClosureNotifyData {
+    static $gtype: GType<ClosureNotifyData>;
+
+    constructor(copy: ClosureNotifyData);
+
+    // Fields
+    data: any;
+    notify: ClosureNotify;
+}
+
+export class EnumClass {
+    static $gtype: GType<EnumClass>;
+
+    constructor(copy: EnumClass);
+
+    // Fields
+    g_type_class: TypeClass;
+    minimum: number;
+    maximum: number;
+    n_values: number;
+    values: EnumValue;
+}
+
+export class EnumValue {
+    static $gtype: GType<EnumValue>;
+
+    constructor(
+        properties?: Partial<{
+            value?: number;
+            value_name?: string;
+            value_nick?: string;
+        }>
+    );
+    constructor(copy: EnumValue);
+
+    // Fields
+    value: number;
+    value_name: string;
+    value_nick: string;
+}
+
+export class FlagsClass {
+    static $gtype: GType<FlagsClass>;
+
+    constructor(copy: FlagsClass);
+
+    // Fields
+    g_type_class: TypeClass;
+    mask: number;
+    n_values: number;
+    values: FlagsValue;
+}
+
+export class FlagsValue {
+    static $gtype: GType<FlagsValue>;
+
+    constructor(
+        properties?: Partial<{
+            value?: number;
+            value_name?: string;
+            value_nick?: string;
+        }>
+    );
+    constructor(copy: FlagsValue);
+
+    // Fields
+    value: number;
+    value_name: string;
+    value_nick: string;
+}
+
+export class InterfaceInfo {
+    static $gtype: GType<InterfaceInfo>;
+
+    constructor(copy: InterfaceInfo);
+
+    // Fields
+    interface_init: InterfaceInitFunc;
+    interface_finalize: InterfaceFinalizeFunc;
+    interface_data: any;
+}
+
+export class ObjectConstructParam {
+    static $gtype: GType<ObjectConstructParam>;
+
+    constructor(copy: ObjectConstructParam);
+
+    // Fields
+    pspec: ParamSpec;
+    value: Value;
+}
+
+export class ParamSpecPool {
+    static $gtype: GType<ParamSpecPool>;
+
+    constructor(copy: ParamSpecPool);
+
+    // Members
+    insert(pspec: ParamSpec, owner_type: GType): void;
+    list(owner_type: GType): ParamSpec[];
+    list_owned(owner_type: GType): ParamSpec[];
+    lookup(param_name: string, owner_type: GType, walk_ancestors: boolean): ParamSpec | null;
+    remove(pspec: ParamSpec): void;
+}
+
+export class ParamSpecTypeInfo {
+    static $gtype: GType<ParamSpecTypeInfo>;
+
+    constructor(copy: ParamSpecTypeInfo);
+
+    // Fields
+    instance_size: number;
+    n_preallocs: number;
+    value_type: GType;
+}
+
+export class Parameter {
+    static $gtype: GType<Parameter>;
+
+    constructor(copy: Parameter);
+
+    // Fields
+    name: string;
+    value: Value;
+}
+
+export class SignalInvocationHint {
+    static $gtype: GType<SignalInvocationHint>;
+
+    constructor(copy: SignalInvocationHint);
+
+    // Fields
+    signal_id: number;
+    detail: GLib.Quark;
+    run_type: SignalFlags;
+}
+
+export class SignalQuery {
+    static $gtype: GType<SignalQuery>;
+
+    constructor(copy: SignalQuery);
+
+    // Fields
+    signal_id: number;
+    signal_name: string;
+    itype: GType;
+    signal_flags: SignalFlags;
+    return_type: GType;
+    n_params: number;
+    param_types: GType[];
+}
+
+export class TypeClass {
+    static $gtype: GType<TypeClass>;
+
+    constructor(copy: TypeClass);
+
+    // Members
+    add_private(private_size: number): void;
+    get_private(private_type: GType): any | null;
+    peek_parent(): TypeClass;
+    unref(): void;
+    static adjust_private_offset(g_class: any | null, private_size_or_offset: number): void;
+    static peek(type: GType): TypeClass;
+    static peek_static(type: GType): TypeClass;
+    static ref(type: GType): TypeClass;
+}
+
+export class TypeFundamentalInfo {
+    static $gtype: GType<TypeFundamentalInfo>;
+
+    constructor(copy: TypeFundamentalInfo);
+
+    // Fields
+    type_flags: TypeFundamentalFlags;
+}
+
+export class TypeInfo {
+    static $gtype: GType<TypeInfo>;
+
+    constructor(copy: TypeInfo);
+
+    // Fields
+    class_size: number;
+    base_init: BaseInitFunc;
+    base_finalize: BaseFinalizeFunc;
+    class_init: ClassInitFunc;
+    class_finalize: ClassFinalizeFunc;
+    class_data: any;
+    instance_size: number;
+    n_preallocs: number;
+    instance_init: InstanceInitFunc;
+    value_table: TypeValueTable;
+}
+
+export class TypeInstance {
+    static $gtype: GType<TypeInstance>;
+
+    constructor(copy: TypeInstance);
+
+    // Members
+    get_private(private_type: GType): any | null;
+}
+
+export class TypeInterface {
+    static $gtype: GType<TypeInterface>;
+
+    constructor(copy: TypeInterface);
+
+    // Members
+    peek_parent(): TypeInterface;
+    static add_prerequisite(interface_type: GType, prerequisite_type: GType): void;
+    static get_plugin(instance_type: GType, interface_type: GType): TypePlugin;
+    static instantiatable_prerequisite(interface_type: GType): GType;
+    static peek(instance_class: TypeClass, iface_type: GType): TypeInterface;
+    static prerequisites(interface_type: GType): GType[];
+}
+
+export class TypePluginClass {
+    static $gtype: GType<TypePluginClass>;
+
+    constructor(copy: TypePluginClass);
+
+    // Fields
+    use_plugin: TypePluginUse;
+    unuse_plugin: TypePluginUnuse;
+    complete_type_info: TypePluginCompleteTypeInfo;
+    complete_interface_info: TypePluginCompleteInterfaceInfo;
+}
+
+export class TypeQuery {
+    static $gtype: GType<TypeQuery>;
+
+    constructor(copy: TypeQuery);
+
+    // Fields
+    type: GType;
+    type_name: string;
+    class_size: number;
+    instance_size: number;
+}
+
+export class TypeValueTable {
+    static $gtype: GType<TypeValueTable>;
+
+    constructor(
+        properties?: Partial<{
+            collect_format?: string;
+            lcopy_format?: string;
+        }>
+    );
+    constructor(copy: TypeValueTable);
+
+    // Fields
+    collect_format: string;
+    lcopy_format: string;
+}
+
+export class Value {
+    static $gtype: GType<Value>;
+
+    constructor(copy: Value);
+
+    // Fields
+    data: _Value__data__union[];
+
+    // Members
+    copy(dest_value: Value | any): void;
+    dup_object<T = Object>(): T;
+    dup_string(): string;
+    dup_variant(): GLib.Variant | null;
+    fits_pointer(): boolean;
+    get_boolean(): boolean;
+    get_boxed(): any | null;
+    get_char(): number;
+    get_double(): number;
+    get_enum(): number;
+    get_flags(): number;
+    get_float(): number;
+    get_gtype(): GType;
+    get_int(): number;
+    get_int64(): number;
+    get_long(): number;
+    get_object<T = Object>(): T;
+    get_param(): ParamSpec;
+    get_pointer(): any | null;
+    get_schar(): number;
+    get_string(): string;
+    get_uchar(): number;
+    get_uint(): number;
+    get_uint64(): number;
+    get_ulong(): number;
+    get_variant(): GLib.Variant | null;
+    init(g_type: GType): unknown;
+    init_from_instance(instance: TypeInstance): void;
+    peek_pointer(): any | null;
+    reset(): unknown;
+    set_boolean(v_boolean: boolean): void;
+    set_boxed(v_boxed?: any | null): void;
+    set_boxed_take_ownership(v_boxed?: any | null): void;
+    set_char(v_char: number): void;
+    set_double(v_double: number): void;
+    set_enum(v_enum: number): void;
+    set_flags(v_flags: number): void;
+    set_float(v_float: number): void;
+    set_gtype(v_gtype: GType): void;
+    set_instance(instance?: any | null): void;
+    set_int(v_int: number): void;
+    set_int64(v_int64: number): void;
+    set_interned_string(v_string?: string | null): void;
+    set_long(v_long: number): void;
+    set_object(v_object?: Object | null): void;
+    set_param(param?: ParamSpec | null): void;
+    set_pointer(v_pointer?: any | null): void;
+    set_schar(v_char: number): void;
+    set_static_boxed(v_boxed?: any | null): void;
+    set_static_string(v_string?: string | null): void;
+    set_string(v_string?: string | null): void;
+    set_string_take_ownership(v_string?: string | null): void;
+    set_uchar(v_uchar: number): void;
+    set_uint(v_uint: number): void;
+    set_uint64(v_uint64: number): void;
+    set_ulong(v_ulong: number): void;
+    set_variant(variant?: GLib.Variant | null): void;
+    take_boxed(v_boxed?: any | null): void;
+    take_string(v_string?: string | null): void;
+    take_variant(variant?: GLib.Variant | null): void;
+    transform(dest_value: Value | any): boolean;
+    unset(): void;
+    static type_compatible(src_type: GType, dest_type: GType): boolean;
+    static type_transformable(src_type: GType, dest_type: GType): boolean;
+}
+
+export class ValueArray {
+    static $gtype: GType<ValueArray>;
+
+    constructor(n_prealloced: number);
+    constructor(copy: ValueArray);
+
+    // Fields
+    n_values: number;
+    values: Value;
+
+    // Constructors
+    static ["new"](n_prealloced: number): ValueArray;
+
+    // Members
+    append(value?: Value | null): ValueArray;
+    copy(): ValueArray;
+    get_nth(index_: number): unknown;
+    insert(index_: number, value?: Value | null): ValueArray;
+    prepend(value?: Value | null): ValueArray;
+    remove(index_: number): ValueArray;
+    sort(compare_func: GLib.CompareFunc): ValueArray;
+    sort(compare_func: GLib.CompareDataFunc): ValueArray;
+}
+
+export class WeakRef {
+    static $gtype: GType<WeakRef>;
+
+    constructor(copy: WeakRef);
+}
+
+export class TypeCValue {
+    static $gtype: GType<TypeCValue>;
+
+    constructor(copy: TypeCValue);
+}
+
+export class _Value__data__union {
+    static $gtype: GType<_Value__data__union>;
+
+    constructor(
+        properties?: Partial<{
+            v_int?: number;
+            v_uint?: number;
+            v_long?: number;
+            v_ulong?: number;
+            v_int64?: number;
+            v_uint64?: number;
+            v_float?: number;
+            v_double?: number;
+            v_pointer?: any;
+        }>
+    );
+    constructor(copy: _Value__data__union);
+
+    // Fields
+    v_int: number;
+    v_uint: number;
+    v_long: number;
+    v_ulong: number;
+    v_int64: number;
+    v_uint64: number;
+    v_float: number;
+    v_double: number;
+    v_pointer: any;
+}
+
+export interface TypePluginNamespace {
+    $gtype: GType<TypePlugin>;
+    prototype: TypePluginPrototype;
+}
+export type TypePlugin = TypePluginPrototype;
+export interface TypePluginPrototype extends Object {
+    // Members
+
+    complete_interface_info(instance_type: GType, interface_type: GType, info: InterfaceInfo): void;
+    complete_type_info(g_type: GType, info: TypeInfo, value_table: TypeValueTable): void;
+    unuse(): void;
+    use(): void;
+}
+
+export const TypePlugin: TypePluginNamespace;
+
+export type SignalCMarshaller = ClosureMarshal;
+export type SignalCVaMarshaller = unknown;
+export type Type = number;
+
+export type SignalMatch = SignalMatchPrototype;
+export interface SignalMatchPrototype {
+    // Fields
+    signalId: string;
+    detail: string;
+    func: (...args: any[]) => any;
+}
+
+export type Closure<R = any, P = any> = (...args: P[]) => R;
+export function signal_handlers_block_by_func(instance: Object, func: (...args: any[]) => any): void;
+export function signal_handlers_unblock_by_func(instance: Object, func: (...args: any[]) => any): void;
+export function signal_handlers_disconnect_by_func(instance: Object, func: (...args: any[]) => any): void;
+export function signal_handler_find(
+    ...args:
+        | [Object, SignalMatch]
+        | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null]
+): number;
+export function signal_handler_find(instance: Object, match: SignalMatch): number;
+export function signal_handler_find(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function _real_signal_handler_find(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function signal_handler_block_matched(
+    ...args:
+        | [Object, SignalMatch]
+        | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null]
+): number;
+export function signal_handler_block_matched(instance: Object, match: SignalMatch): number;
+export function signal_handler_block_matched(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function _real_signal_handler_block_matched(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function signal_handler_block_disconnect_matched(
+    ...args:
+        | [Object, SignalMatch]
+        | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null]
+): number;
+export function signal_handler_block_disconnect_matched(instance: Object, match: SignalMatch): number;
+export function signal_handler_block_disconnect_matched(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function _real_signal_handler_block_disconnect_matched(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function signal_handler_block_unblock_matched(
+    ...args:
+        | [Object, SignalMatch]
+        | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null]
+): number;
+export function signal_handler_block_unblock_matched(instance: Object, match: SignalMatch): number;
+export function signal_handler_block_unblock_matched(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+export function _real_signal_handler_block_unblock_matched(
+    instance: Object,
+    match: SignalMatchType,
+    signal_id: number,
+    detail: GLib.Quark,
+    closure: Closure | null,
+    func: object | null,
+    object: object | null
+): number;
+
+// GJS OVERRIDES
+
+// __type__ forces all GTypes to not match structurally.
+
+export type GType<T = unknown> = { __type__(arg: never): T };
+
+// Correctly types interface checks.
+export function type_is_a<T extends Object>(obj: Object, is_a_type: { $gtype: GType<T> }): obj is T;
+
+export class Interface {
+    static _classInit: (klass: any) => any;
+    __name__: string;
+    _construct: (params: any, ...otherArgs: any[]) => any;
+    _init: (params: any) => void;
+    $gtype?: GType;
+}
+
+export function signal_connect(object: Object, name: string, handler: Function): number;
+export function signal_connect_after(object: Object, name: string, handler: Function): number;
+export function signal_emit_by_name(object: Object, name: string, ...args: any[]): void;
+
+export const __gtkCssName__: unique symbol;
+export const __gtkTemplate__: unique symbol;
+export const __gtkChildren__: unique symbol;
+export const __gtkInternalChildren__: unique symbol;
+
+// Expose GObject static properties for ES6 classes
+
+export const GTypeName: unique symbol;
+export const requires: unique symbol;
+export const interfaces: unique symbol;
+export const properties: unique symbol;
+export const signals: unique symbol;
+
+export enum AccumulatorType {
+    NONE,
+    FIRST_WINS,
+    TRUE_HANDLED,
+}
+
+export class NotImplementedError extends Error {}
+
+export let gtypeNameBasedOnJSPath: boolean;
+
+export let TYPE_BOOLEAN: GType<boolean>;
+export let Boolean: BooleanConstructor;
+
+export let TYPE_ENUM: GType<number>;
+export let TYPE_FLAGS: GType<number>;
+
+export let TYPE_DOUBLE: GType<number>;
+export let Double: NumberConstructor;
+
+export let TYPE_STRING: GType<string>;
+export let String: StringConstructor;
+
+declare global {
+    interface BooleanConstructor {
+        $gtype: GType<boolean>;
+    }
+
+    interface NumberConstructor {
+        $gtype: GType<number>;
+    }
+
+    interface StringConstructor {
+        $gtype: GType<string>;
+    }
+}
+
+export let TYPE_NONE: GType<undefined>;
+export let TYPE_POINTER: GType<undefined>;
+export let TYPE_BOXED: GType<unknown>;
+export let TYPE_PARAM: GType<unknown>;
+export let TYPE_INTERFACE: GType<unknown>;
+export let TYPE_OBJECT: GType<object>;
+export let TYPE_VARIANT: GType<GLib.Variant>;
+export let TYPE_INT: GType<number>;
+export let TYPE_UINT: GType<number>;
+export let TYPE_INT64: GType<number>;
+export let TYPE_UINT64: GType<number>;
+
+export function registerClass<P extends {}, T extends new (...args: any[]) => P>(klass: T): 
RegisteredClass<T, {}, []>;
+
+export type Property<K extends ParamSpec> = K extends ParamSpec<infer T> ? T : any;
+
+export type Properties<Prototype extends {}, Properties extends { [key: string]: ParamSpec }> = Omit<
+    {
+        [key in keyof Properties | keyof Prototype]: key extends keyof Prototype
+            ? never
+            : key extends keyof Properties
+            ? Property<Properties[key]>
+            : never;
+    },
+    keyof Prototype
+>;
+
+export type SignalDefinition = {
+    param_types?: readonly GType[];
+    [key: string]: any;
+};
+
+type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : 
never;
+
+type IFaces<Interfaces extends { $gtype: GType<any> }[]> = {
+    [key in keyof Interfaces]: Interfaces[key] extends { $gtype: GType<infer I> } ? I : never;
+};
+
+export type RegisteredPrototype<
+    P extends {},
+    Props extends { [key: string]: ParamSpec },
+    Interfaces extends any[]
+> = Properties<P, SnakeToCamel<Props> & SnakeToUnderscore<Props>> & UnionToIntersection<Interfaces[number]> 
& P;
+
+type SnakeToUnderscoreCase<S extends string> = S extends `${infer T}-${infer U}`
+    ? `${T}_${SnakeToUnderscoreCase<U>}`
+    : S extends `${infer T}`
+    ? `${T}`
+    : never;
+
+type SnakeToCamelCase<S extends string> = S extends `${infer T}-${infer U}`
+    ? `${Lowercase<T>}${SnakeToPascalCase<U>}`
+    : S extends `${infer T}`
+    ? `${Lowercase<T>}`
+    : SnakeToPascalCase<S>;
+
+type SnakeToPascalCase<S extends string> = string extends S
+    ? string
+    : S extends `${infer T}-${infer U}`
+    ? `${Capitalize<Lowercase<T>>}${SnakeToPascalCase<U>}`
+    : S extends `${infer T}`
+    ? `${Capitalize<Lowercase<T>>}`
+    : never;
+
+type SnakeToCamel<T> = { [P in keyof T as P extends string ? SnakeToCamelCase<P> : P]: T[P] };
+type SnakeToUnderscore<T> = { [P in keyof T as P extends string ? SnakeToUnderscoreCase<P> : P]: T[P] };
+
+type Ctor = new (...a: any[]) => object;
+
+type Init = { _init(...args: any[]): void };
+
+export type RegisteredClass<
+    T extends Ctor,
+    Props extends { [key: string]: ParamSpec },
+    Interfaces extends { $gtype: GType<any> }[]
+> = T extends { prototype: infer P }
+    ? {
+          $gtype: GType<RegisteredClass<T, Props, IFaces<Interfaces>>>;
+          new (...args: P extends Init ? Parameters<P["_init"]> : [void]): RegisteredPrototype<
+              P,
+              Props,
+              IFaces<Interfaces>
+          >;
+          prototype: RegisteredPrototype<P, Props, IFaces<Interfaces>>;
+      }
+    : never;
+
+export function registerClass<
+    T extends Ctor,
+    Props extends { [key: string]: ParamSpec },
+    Interfaces extends { $gtype: GType }[],
+    Sigs extends {
+        [key: string]: {
+            param_types?: readonly GType[];
+            [key: string]: any;
+        };
+    }
+>(
+    options: {
+        GTypeName?: string;
+        GTypeFlags?: TypeFlags;
+        Properties?: Props;
+        Signals?: Sigs;
+        Implements?: Interfaces;
+        CssName?: string;
+        Template?: string;
+        Children?: string[];
+        InternalChildren?: string[];
+    },
+    klass: T
+): RegisteredClass<T, Props, Interfaces>;
diff --git a/types/gst.d.ts b/types/gst.d.ts
new file mode 100644
index 0000000..4f24189
--- /dev/null
+++ b/types/gst.d.ts
@@ -0,0 +1,5358 @@
+/**
+ * Gst 1.0
+ *
+ * Generated from 1.20.3
+ */
+
+import * as GObject from "gobject";
+import * as GLib from "glib";
+
+export const ALLOCATOR_SYSMEM: string;
+export const BUFFER_COPY_ALL: BufferCopyFlags;
+export const BUFFER_COPY_METADATA: BufferCopyFlags;
+export const BUFFER_OFFSET_NONE: number;
+export const CAN_INLINE: number;
+export const CAPS_FEATURE_MEMORY_SYSTEM_MEMORY: string;
+export const CLOCK_TIME_NONE: ClockTime;
+export const DEBUG_BG_MASK: number;
+export const DEBUG_FG_MASK: number;
+export const DEBUG_FORMAT_MASK: number;
+export const ELEMENT_FACTORY_KLASS_DECODER: string;
+export const ELEMENT_FACTORY_KLASS_DECRYPTOR: string;
+export const ELEMENT_FACTORY_KLASS_DEMUXER: string;
+export const ELEMENT_FACTORY_KLASS_DEPAYLOADER: string;
+export const ELEMENT_FACTORY_KLASS_ENCODER: string;
+export const ELEMENT_FACTORY_KLASS_ENCRYPTOR: string;
+export const ELEMENT_FACTORY_KLASS_FORMATTER: string;
+export const ELEMENT_FACTORY_KLASS_HARDWARE: string;
+export const ELEMENT_FACTORY_KLASS_MEDIA_AUDIO: string;
+export const ELEMENT_FACTORY_KLASS_MEDIA_IMAGE: string;
+export const ELEMENT_FACTORY_KLASS_MEDIA_METADATA: string;
+export const ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE: string;
+export const ELEMENT_FACTORY_KLASS_MEDIA_VIDEO: string;
+export const ELEMENT_FACTORY_KLASS_MUXER: string;
+export const ELEMENT_FACTORY_KLASS_PARSER: string;
+export const ELEMENT_FACTORY_KLASS_PAYLOADER: string;
+export const ELEMENT_FACTORY_KLASS_SINK: string;
+export const ELEMENT_FACTORY_KLASS_SRC: string;
+export const ELEMENT_FACTORY_TYPE_ANY: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_AUDIO_ENCODER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_DECODABLE: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_DECODER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_DECRYPTOR: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_DEMUXER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_DEPAYLOADER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_ENCODER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_ENCRYPTOR: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_FORMATTER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_HARDWARE: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MAX_ELEMENTS: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MEDIA_ANY: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MEDIA_AUDIO: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MEDIA_IMAGE: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MEDIA_METADATA: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MEDIA_VIDEO: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_MUXER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_PARSER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_PAYLOADER: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_SINK: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_SRC: ElementFactoryListType;
+export const ELEMENT_FACTORY_TYPE_VIDEO_ENCODER: ElementFactoryListType;
+export const ELEMENT_METADATA_AUTHOR: string;
+export const ELEMENT_METADATA_DESCRIPTION: string;
+export const ELEMENT_METADATA_DOC_URI: string;
+export const ELEMENT_METADATA_ICON_NAME: string;
+export const ELEMENT_METADATA_KLASS: string;
+export const ELEMENT_METADATA_LONGNAME: string;
+export const EVENT_NUM_SHIFT: number;
+export const EVENT_TYPE_BOTH: EventTypeFlags;
+export const FLAG_SET_MASK_EXACT: number;
+export const FORMAT_PERCENT_MAX: number;
+export const FORMAT_PERCENT_SCALE: number;
+export const GROUP_ID_INVALID: number;
+export const LICENSE_UNKNOWN: string;
+export const LOCK_FLAG_READWRITE: LockFlags;
+export const MAP_READWRITE: MapFlags;
+export const META_TAG_MEMORY_STR: string;
+export const MSECOND: ClockTimeDiff;
+export const NSECOND: ClockTimeDiff;
+export const PARAM_CONDITIONALLY_AVAILABLE: number;
+export const PARAM_CONTROLLABLE: number;
+export const PARAM_DOC_SHOW_DEFAULT: number;
+export const PARAM_MUTABLE_PAUSED: number;
+export const PARAM_MUTABLE_PLAYING: number;
+export const PARAM_MUTABLE_READY: number;
+export const PARAM_USER_SHIFT: number;
+export const PROTECTION_SYSTEM_ID_CAPS_FIELD: string;
+export const PROTECTION_UNSPECIFIED_SYSTEM_ID: string;
+export const QUERY_NUM_SHIFT: number;
+export const QUERY_TYPE_BOTH: QueryTypeFlags;
+export const SECOND: ClockTimeDiff;
+export const SEGMENT_INSTANT_FLAGS: number;
+export const SEQNUM_INVALID: number;
+export const TAG_ALBUM: string;
+export const TAG_ALBUM_ARTIST: string;
+export const TAG_ALBUM_ARTIST_SORTNAME: string;
+export const TAG_ALBUM_GAIN: string;
+export const TAG_ALBUM_PEAK: string;
+export const TAG_ALBUM_SORTNAME: string;
+export const TAG_ALBUM_VOLUME_COUNT: string;
+export const TAG_ALBUM_VOLUME_NUMBER: string;
+export const TAG_APPLICATION_DATA: string;
+export const TAG_APPLICATION_NAME: string;
+export const TAG_ARTIST: string;
+export const TAG_ARTIST_SORTNAME: string;
+export const TAG_ATTACHMENT: string;
+export const TAG_AUDIO_CODEC: string;
+export const TAG_BEATS_PER_MINUTE: string;
+export const TAG_BITRATE: string;
+export const TAG_CODEC: string;
+export const TAG_COMMENT: string;
+export const TAG_COMPOSER: string;
+export const TAG_COMPOSER_SORTNAME: string;
+export const TAG_CONDUCTOR: string;
+export const TAG_CONTACT: string;
+export const TAG_CONTAINER_FORMAT: string;
+export const TAG_COPYRIGHT: string;
+export const TAG_COPYRIGHT_URI: string;
+export const TAG_DATE: string;
+export const TAG_DATE_TIME: string;
+export const TAG_DESCRIPTION: string;
+export const TAG_DEVICE_MANUFACTURER: string;
+export const TAG_DEVICE_MODEL: string;
+export const TAG_DURATION: string;
+export const TAG_ENCODED_BY: string;
+export const TAG_ENCODER: string;
+export const TAG_ENCODER_VERSION: string;
+export const TAG_EXTENDED_COMMENT: string;
+export const TAG_GENRE: string;
+export const TAG_GEO_LOCATION_CAPTURE_DIRECTION: string;
+export const TAG_GEO_LOCATION_CITY: string;
+export const TAG_GEO_LOCATION_COUNTRY: string;
+export const TAG_GEO_LOCATION_ELEVATION: string;
+export const TAG_GEO_LOCATION_HORIZONTAL_ERROR: string;
+export const TAG_GEO_LOCATION_LATITUDE: string;
+export const TAG_GEO_LOCATION_LONGITUDE: string;
+export const TAG_GEO_LOCATION_MOVEMENT_DIRECTION: string;
+export const TAG_GEO_LOCATION_MOVEMENT_SPEED: string;
+export const TAG_GEO_LOCATION_NAME: string;
+export const TAG_GEO_LOCATION_SUBLOCATION: string;
+export const TAG_GROUPING: string;
+export const TAG_HOMEPAGE: string;
+export const TAG_IMAGE: string;
+export const TAG_IMAGE_ORIENTATION: string;
+export const TAG_INTERPRETED_BY: string;
+export const TAG_ISRC: string;
+export const TAG_KEYWORDS: string;
+export const TAG_LANGUAGE_CODE: string;
+export const TAG_LANGUAGE_NAME: string;
+export const TAG_LICENSE: string;
+export const TAG_LICENSE_URI: string;
+export const TAG_LOCATION: string;
+export const TAG_LYRICS: string;
+export const TAG_MAXIMUM_BITRATE: string;
+export const TAG_MIDI_BASE_NOTE: string;
+export const TAG_MINIMUM_BITRATE: string;
+export const TAG_NOMINAL_BITRATE: string;
+export const TAG_ORGANIZATION: string;
+export const TAG_PERFORMER: string;
+export const TAG_PREVIEW_IMAGE: string;
+export const TAG_PRIVATE_DATA: string;
+export const TAG_PUBLISHER: string;
+export const TAG_REFERENCE_LEVEL: string;
+export const TAG_SERIAL: string;
+export const TAG_SHOW_EPISODE_NUMBER: string;
+export const TAG_SHOW_NAME: string;
+export const TAG_SHOW_SEASON_NUMBER: string;
+export const TAG_SHOW_SORTNAME: string;
+export const TAG_SUBTITLE_CODEC: string;
+export const TAG_TITLE: string;
+export const TAG_TITLE_SORTNAME: string;
+export const TAG_TRACK_COUNT: string;
+export const TAG_TRACK_GAIN: string;
+export const TAG_TRACK_NUMBER: string;
+export const TAG_TRACK_PEAK: string;
+export const TAG_USER_RATING: string;
+export const TAG_VERSION: string;
+export const TAG_VIDEO_CODEC: string;
+export const TOC_REPEAT_COUNT_INFINITE: number;
+export const URI_NO_PORT: number;
+export const USECOND: ClockTimeDiff;
+export const VALUE_EQUAL: number;
+export const VALUE_GREATER_THAN: number;
+export const VALUE_LESS_THAN: number;
+export const VALUE_UNORDERED: number;
+export const VERSION_MAJOR: number;
+export const VERSION_MICRO: number;
+export const VERSION_MINOR: number;
+export const VERSION_NANO: number;
+export function buffer_get_max_memory(): number;
+export function caps_features_from_string(features: string): CapsFeatures | null;
+export function caps_from_string(string: string): Caps | null;
+export function core_error_quark(): GLib.Quark;
+export function debug_add_log_function(func: LogFunction): void;
+export function debug_add_ring_buffer_logger(max_size_per_thread: number, thread_timeout: number): void;
+export function debug_bin_to_dot_data(bin: Bin, details: DebugGraphDetails): string;
+export function debug_bin_to_dot_file(bin: Bin, details: DebugGraphDetails, file_name: string): void;
+export function debug_bin_to_dot_file_with_ts(bin: Bin, details: DebugGraphDetails, file_name: string): void;
+export function debug_construct_term_color(colorinfo: number): string;
+export function debug_construct_win_color(colorinfo: number): number;
+export function debug_get_all_categories(): DebugCategory[];
+export function debug_get_color_mode(): DebugColorMode;
+export function debug_get_default_threshold(): DebugLevel;
+export function debug_get_stack_trace(flags: StackTraceFlags): string | null;
+export function debug_is_active(): boolean;
+export function debug_is_colored(): boolean;
+export function debug_level_get_name(level: DebugLevel): string;
+export function debug_log_default(
+    category: DebugCategory,
+    level: DebugLevel,
+    file: string,
+    _function: string,
+    line: number,
+    object: GObject.Object | null,
+    message: DebugMessage,
+    user_data?: any | null
+): void;
+export function debug_log_get_line(
+    category: DebugCategory,
+    level: DebugLevel,
+    file: string,
+    _function: string,
+    line: number,
+    object: GObject.Object | null,
+    message: DebugMessage
+): string;
+export function debug_log_literal(
+    category: DebugCategory,
+    level: DebugLevel,
+    file: string,
+    _function: string,
+    line: number,
+    object: GObject.Object | null,
+    message_string: string
+): void;
+export function debug_print_stack_trace(): void;
+export function debug_remove_log_function(func?: LogFunction | null): number;
+export function debug_remove_log_function_by_data(data?: any | null): number;
+export function debug_remove_ring_buffer_logger(): void;
+export function debug_ring_buffer_logger_get_logs(): string[];
+export function debug_set_active(active: boolean): void;
+export function debug_set_color_mode(mode: DebugColorMode): void;
+export function debug_set_color_mode_from_string(mode: string): void;
+export function debug_set_colored(colored: boolean): void;
+export function debug_set_default_threshold(level: DebugLevel): void;
+export function debug_set_threshold_for_name(name: string, level: DebugLevel): void;
+export function debug_set_threshold_from_string(list: string, reset: boolean): void;
+export function debug_unset_threshold_for_name(name: string): void;
+export function deinit(): void;
+export function dynamic_type_register(plugin: Plugin, type: GObject.GType): boolean;
+export function error_get_message(domain: GLib.Quark, code: number): string;
+export function event_type_get_flags(type: EventType): EventTypeFlags;
+export function event_type_get_name(type: EventType): string;
+export function event_type_to_quark(type: EventType): GLib.Quark;
+export function filename_to_uri(filename: string): string;
+export function flow_get_name(ret: FlowReturn): string;
+export function flow_to_quark(ret: FlowReturn): GLib.Quark;
+export function format_get_by_nick(nick: string): Format;
+export function format_get_details(format: Format): FormatDefinition | null;
+export function format_get_name(format: Format): string | null;
+export function format_iterate_definitions(): Iterator;
+export function format_register(nick: string, description: string): Format;
+export function format_to_quark(format: Format): GLib.Quark;
+export function formats_contains(formats: Format[], format: Format): boolean;
+export function get_main_executable_path(): string | null;
+export function init(argv?: string[] | null): string[] | null;
+export function init_check(argv?: string[] | null): [boolean, string[] | null];
+export function is_caps_features(obj?: any | null): boolean;
+export function is_initialized(): boolean;
+export function library_error_quark(): GLib.Quark;
+export function message_type_get_name(type: MessageType): string;
+export function message_type_to_quark(type: MessageType): GLib.Quark;
+export function meta_api_type_get_tags(api: GObject.GType): string[];
+export function meta_api_type_has_tag(api: GObject.GType, tag: GLib.Quark): boolean;
+export function meta_api_type_register(api: string, tags: string[]): GObject.GType;
+export function meta_get_info(impl: string): MetaInfo | null;
+export function meta_register(
+    api: GObject.GType,
+    impl: string,
+    size: number,
+    init_func: MetaInitFunction,
+    free_func: MetaFreeFunction,
+    transform_func: MetaTransformFunction
+): MetaInfo;
+export function meta_register_custom(
+    name: string,
+    tags: string[],
+    transform_func?: CustomMetaTransformFunction | null
+): MetaInfo;
+export function mini_object_replace(
+    olddata?: MiniObject | null,
+    newdata?: MiniObject | null
+): [boolean, MiniObject | null];
+export function mini_object_take(olddata: MiniObject, newdata: MiniObject): [boolean, MiniObject];
+export function pad_mode_get_name(mode: PadMode): string;
+export function param_spec_array(
+    name: string,
+    nick: string,
+    blurb: string,
+    element_spec: GObject.ParamSpec,
+    flags: GObject.ParamFlags
+): GObject.ParamSpec;
+export function param_spec_fraction(
+    name: string,
+    nick: string,
+    blurb: string,
+    min_num: number,
+    min_denom: number,
+    max_num: number,
+    max_denom: number,
+    default_num: number,
+    default_denom: number,
+    flags: GObject.ParamFlags
+): GObject.ParamSpec | null;
+export function parent_buffer_meta_api_get_type(): GObject.GType;
+export function parent_buffer_meta_get_info(): MetaInfo;
+export function parse_bin_from_description(bin_description: string, ghost_unlinked_pads: boolean): Bin;
+export function parse_bin_from_description_full(
+    bin_description: string,
+    ghost_unlinked_pads: boolean,
+    context: ParseContext | null,
+    flags: ParseFlags
+): Element;
+export function parse_error_quark(): GLib.Quark;
+export function parse_launch(pipeline_description: string): Element;
+export function parse_launch_full(
+    pipeline_description: string,
+    context: ParseContext | null,
+    flags: ParseFlags
+): Element;
+export function parse_launchv(argv: string[]): Element;
+export function parse_launchv_full(argv: string[], context: ParseContext | null, flags: ParseFlags): Element;
+export function plugin_error_quark(): GLib.Quark;
+export function preset_get_app_dir(): string | null;
+export function preset_set_app_dir(app_dir: string): boolean;
+export function protection_filter_systems_by_available_decryptors(system_identifiers: string[]): string[] | 
null;
+export function protection_meta_api_get_type(): GObject.GType;
+export function protection_meta_get_info(): MetaInfo;
+export function protection_select_system(system_identifiers: string[]): string | null;
+export function query_type_get_flags(type: QueryType): QueryTypeFlags;
+export function query_type_get_name(type: QueryType): string;
+export function query_type_to_quark(type: QueryType): GLib.Quark;
+export function reference_timestamp_meta_api_get_type(): GObject.GType;
+export function reference_timestamp_meta_get_info(): MetaInfo;
+export function resource_error_quark(): GLib.Quark;
+export function segtrap_is_enabled(): boolean;
+export function segtrap_set_enabled(enabled: boolean): void;
+export function state_change_get_name(transition: StateChange): string;
+export function static_caps_get_type(): GObject.GType;
+export function static_pad_template_get_type(): GObject.GType;
+export function stream_error_quark(): GLib.Quark;
+export function stream_type_get_name(stype: StreamType): string;
+export function structure_take(oldstr_ptr?: Structure | null, newstr?: Structure | null): [boolean, 
Structure | null];
+export function tag_exists(tag: string): boolean;
+export function tag_get_description(tag: string): string | null;
+export function tag_get_flag(tag: string): TagFlag;
+export function tag_get_nick(tag: string): string | null;
+export function tag_get_type(tag: string): GObject.GType;
+export function tag_is_fixed(tag: string): boolean;
+export function tag_list_copy_value(list: TagList, tag: string): [boolean, unknown];
+export function tag_merge_strings_with_comma(src: GObject.Value | any): unknown;
+export function tag_merge_use_first(src: GObject.Value | any): unknown;
+export function toc_entry_type_get_nick(type: TocEntryType): string;
+export function tracing_get_active_tracers(): Tracer[];
+export function tracing_register_hook(tracer: Tracer, detail: string, func: GObject.Callback): void;
+export function type_find_get_type(): GObject.GType;
+export function type_find_register(
+    plugin: Plugin | null,
+    name: string,
+    rank: number,
+    func: TypeFindFunction,
+    extensions?: string | null,
+    possible_caps?: Caps | null
+): boolean;
+export function type_is_plugin_api(type: GObject.GType): [boolean, PluginAPIFlags | null];
+export function type_mark_as_plugin_api(type: GObject.GType, flags: PluginAPIFlags): void;
+export function update_registry(): boolean;
+export function uri_construct(protocol: string, location: string): string;
+export function uri_error_quark(): GLib.Quark;
+export function uri_from_string(uri: string): Uri | null;
+export function uri_from_string_escaped(uri: string): Uri | null;
+export function uri_get_location(uri: string): string | null;
+export function uri_get_protocol(uri: string): string | null;
+export function uri_has_protocol(uri: string, protocol: string): boolean;
+export function uri_is_valid(uri: string): boolean;
+export function uri_join_strings(base_uri: string, ref_uri: string): string;
+export function uri_protocol_is_supported(type: URIType, protocol: string): boolean;
+export function uri_protocol_is_valid(protocol: string): boolean;
+export function util_array_binary_search(
+    array: any | null,
+    num_elements: number,
+    element_size: number,
+    search_func: GLib.CompareDataFunc,
+    mode: SearchMode,
+    search_data?: any | null
+): any | null;
+export function util_double_to_fraction(src: number): [number, number];
+export function util_dump_buffer(buf: Buffer): void;
+export function util_dump_mem(mem: Uint8Array | string): void;
+export function util_fraction_add(a_n: number, a_d: number, b_n: number, b_d: number): [boolean, number, 
number];
+export function util_fraction_compare(a_n: number, a_d: number, b_n: number, b_d: number): number;
+export function util_fraction_multiply(a_n: number, a_d: number, b_n: number, b_d: number): [boolean, 
number, number];
+export function util_fraction_to_double(src_n: number, src_d: number): number;
+export function util_gdouble_to_guint64(value: number): number;
+export function util_get_object_array(object: GObject.Object, name: string): [boolean, GObject.ValueArray];
+export function util_get_timestamp(): ClockTime;
+export function util_greatest_common_divisor(a: number, b: number): number;
+export function util_greatest_common_divisor_int64(a: number, b: number): number;
+export function util_group_id_next(): number;
+export function util_guint64_to_gdouble(value: number): number;
+export function util_seqnum_compare(s1: number, s2: number): number;
+export function util_seqnum_next(): number;
+export function util_set_object_arg(object: GObject.Object, name: string, value: string): void;
+export function util_set_object_array(object: GObject.Object, name: string, array: GObject.ValueArray): 
boolean;
+export function util_set_value_from_string(value_str: string): unknown;
+export function util_uint64_scale(val: number, num: number, denom: number): number;
+export function util_uint64_scale_ceil(val: number, num: number, denom: number): number;
+export function util_uint64_scale_int(val: number, num: number, denom: number): number;
+export function util_uint64_scale_int_ceil(val: number, num: number, denom: number): number;
+export function util_uint64_scale_int_round(val: number, num: number, denom: number): number;
+export function util_uint64_scale_round(val: number, num: number, denom: number): number;
+export function value_can_compare(value1: GObject.Value | any, value2: GObject.Value | any): boolean;
+export function value_can_intersect(value1: GObject.Value | any, value2: GObject.Value | any): boolean;
+export function value_can_subtract(minuend: GObject.Value | any, subtrahend: GObject.Value | any): boolean;
+export function value_can_union(value1: GObject.Value | any, value2: GObject.Value | any): boolean;
+export function value_compare(value1: GObject.Value | any, value2: GObject.Value | any): number;
+export function value_deserialize(src: string): [boolean, unknown];
+export function value_deserialize_with_pspec(src: string, pspec?: GObject.ParamSpec | null): [boolean, 
unknown];
+export function value_fixate(dest: GObject.Value | any, src: GObject.Value | any): boolean;
+export function value_fraction_multiply(
+    product: GObject.Value | any,
+    factor1: GObject.Value | any,
+    factor2: GObject.Value | any
+): boolean;
+export function value_fraction_subtract(
+    dest: GObject.Value | any,
+    minuend: GObject.Value | any,
+    subtrahend: GObject.Value | any
+): boolean;
+export function value_get_bitmask(value: GObject.Value | any): number;
+export function value_get_caps(value: GObject.Value | any): Caps;
+export function value_get_caps_features(value: GObject.Value | any): CapsFeatures;
+export function value_get_double_range_max(value: GObject.Value | any): number;
+export function value_get_double_range_min(value: GObject.Value | any): number;
+export function value_get_flagset_flags(value: GObject.Value | any): number;
+export function value_get_flagset_mask(value: GObject.Value | any): number;
+export function value_get_fraction_denominator(value: GObject.Value | any): number;
+export function value_get_fraction_numerator(value: GObject.Value | any): number;
+export function value_get_fraction_range_max(value: GObject.Value | any): GObject.Value | null;
+export function value_get_fraction_range_min(value: GObject.Value | any): GObject.Value | null;
+export function value_get_int64_range_max(value: GObject.Value | any): number;
+export function value_get_int64_range_min(value: GObject.Value | any): number;
+export function value_get_int64_range_step(value: GObject.Value | any): number;
+export function value_get_int_range_max(value: GObject.Value | any): number;
+export function value_get_int_range_min(value: GObject.Value | any): number;
+export function value_get_int_range_step(value: GObject.Value | any): number;
+export function value_get_structure(value: GObject.Value | any): Structure;
+export function value_init_and_copy(src: GObject.Value | any): unknown;
+export function value_intersect(
+    value1: GObject.Value | any,
+    value2: GObject.Value | any
+): [boolean, GObject.Value | null];
+export function value_is_fixed(value: GObject.Value | any): boolean;
+export function value_is_subset(value1: GObject.Value | any, value2: GObject.Value | any): boolean;
+export function value_register(table: ValueTable): void;
+export function value_serialize(value: GObject.Value | any): string | null;
+export function value_set_bitmask(value: GObject.Value | any, bitmask: number): void;
+export function value_set_caps(value: GObject.Value | any, caps: Caps): void;
+export function value_set_caps_features(value: GObject.Value | any, features: CapsFeatures): void;
+export function value_set_double_range(value: GObject.Value | any, start: number, end: number): void;
+export function value_set_flagset(value: GObject.Value | any, flags: number, mask: number): void;
+export function value_set_fraction(value: GObject.Value | any, numerator: number, denominator: number): void;
+export function value_set_fraction_range(
+    value: GObject.Value | any,
+    start: GObject.Value | any,
+    end: GObject.Value | any
+): void;
+export function value_set_fraction_range_full(
+    value: GObject.Value | any,
+    numerator_start: number,
+    denominator_start: number,
+    numerator_end: number,
+    denominator_end: number
+): void;
+export function value_set_int64_range(value: GObject.Value | any, start: number, end: number): void;
+export function value_set_int64_range_step(value: GObject.Value | any, start: number, end: number, step: 
number): void;
+export function value_set_int_range(value: GObject.Value | any, start: number, end: number): void;
+export function value_set_int_range_step(value: GObject.Value | any, start: number, end: number, step: 
number): void;
+export function value_set_structure(value: GObject.Value | any, structure: Structure): void;
+export function value_subtract(
+    minuend: GObject.Value | any,
+    subtrahend: GObject.Value | any
+): [boolean, GObject.Value | null];
+export function value_union(value1: GObject.Value | any, value2: GObject.Value | any): [boolean, unknown];
+export function version(): [number, number, number, number];
+export function version_string(): string;
+export type BufferForeachMetaFunc = (buffer: Buffer) => boolean;
+export type BufferListFunc = (idx: number) => boolean;
+export type BusFunc = (bus: Bus, message: Message) => boolean;
+export type BusSyncHandler = (bus: Bus, message: Message) => BusSyncReply;
+export type CapsFilterMapFunc = (features: CapsFeatures, structure: Structure) => boolean;
+export type CapsForeachFunc = (features: CapsFeatures, structure: Structure) => boolean;
+export type CapsMapFunc = (features: CapsFeatures, structure: Structure) => boolean;
+export type ClockCallback = (clock: Clock, time: ClockTime, id: ClockID) => boolean;
+export type ControlBindingConvert = (
+    binding: ControlBinding,
+    src_value: number,
+    dest_value: GObject.Value | any
+) => void;
+export type ControlSourceGetValue = (self: ControlSource, timestamp: ClockTime, value: number) => boolean;
+export type ControlSourceGetValueArray = (
+    self: ControlSource,
+    timestamp: ClockTime,
+    interval: ClockTime,
+    n_values: number,
+    values: number
+) => boolean;
+export type CustomMetaTransformFunction = (
+    transbuf: Buffer,
+    meta: CustomMeta,
+    buffer: Buffer,
+    type: GLib.Quark,
+    data?: any | null
+) => boolean;
+export type DebugFuncPtr = () => void;
+export type ElementCallAsyncFunc = (element: Element) => void;
+export type ElementForeachPadFunc = (element: Element, pad: Pad) => boolean;
+export type IteratorCopyFunction = (it: Iterator, copy: Iterator) => void;
+export type IteratorFoldFunction = (item: GObject.Value | any, ret: GObject.Value | any) => boolean;
+export type IteratorForeachFunction = (item: GObject.Value | any) => void;
+export type IteratorFreeFunction = (it: Iterator) => void;
+export type IteratorItemFunction = (it: Iterator, item: GObject.Value | any) => IteratorItem;
+export type IteratorNextFunction = (it: Iterator, result: GObject.Value | any) => IteratorResult;
+export type IteratorResyncFunction = (it: Iterator) => void;
+export type LogFunction<A = GObject.Object> = (
+    category: DebugCategory,
+    level: DebugLevel,
+    file: string,
+    _function: string,
+    line: number,
+    object: A,
+    message: DebugMessage
+) => void;
+export type MemoryCopyFunction = (mem: Memory, offset: number, size: number) => Memory;
+export type MemoryIsSpanFunction = (mem1: Memory, mem2: Memory, offset: number) => boolean;
+export type MemoryMapFullFunction = (mem: Memory, info: MapInfo, maxsize: number) => any | null;
+export type MemoryMapFunction = (mem: Memory, maxsize: number, flags: MapFlags) => any | null;
+export type MemoryShareFunction = (mem: Memory, offset: number, size: number) => Memory;
+export type MemoryUnmapFullFunction = (mem: Memory, info: MapInfo) => void;
+export type MemoryUnmapFunction = (mem: Memory) => void;
+export type MetaFreeFunction = (meta: Meta, buffer: Buffer) => void;
+export type MetaInitFunction = (meta: Meta, params: any | null, buffer: Buffer) => boolean;
+export type MetaTransformFunction = (
+    transbuf: Buffer,
+    meta: Meta,
+    buffer: Buffer,
+    type: GLib.Quark,
+    data?: any | null
+) => boolean;
+export type MiniObjectCopyFunction = (obj: MiniObject) => MiniObject;
+export type MiniObjectDisposeFunction = (obj: MiniObject) => boolean;
+export type MiniObjectFreeFunction = (obj: MiniObject) => void;
+export type MiniObjectNotify = (obj: MiniObject) => void;
+export type PadActivateFunction = (pad: Pad, parent: Object) => boolean;
+export type PadActivateModeFunction = (pad: Pad, parent: Object, mode: PadMode, active: boolean) => boolean;
+export type PadChainFunction = (pad: Pad, parent: Object | null, buffer: Buffer) => FlowReturn;
+export type PadChainListFunction = (pad: Pad, parent: Object | null, list: BufferList) => FlowReturn;
+export type PadEventFullFunction = (pad: Pad, parent: Object | null, event: Event) => FlowReturn;
+export type PadEventFunction = (pad: Pad, parent: Object | null, event: Event) => boolean;
+export type PadForwardFunction = (pad: Pad) => boolean;
+export type PadGetRangeFunction = (
+    pad: Pad,
+    parent: Object | null,
+    offset: number,
+    length: number,
+    buffer: Buffer
+) => FlowReturn;
+export type PadIterIntLinkFunction = (pad: Pad, parent?: Object | null) => Iterator;
+export type PadLinkFunction = (pad: Pad, parent: Object | null, peer: Pad) => PadLinkReturn;
+export type PadProbeCallback = (pad: Pad, info: PadProbeInfo) => PadProbeReturn;
+export type PadQueryFunction = (pad: Pad, parent: Object | null, query: Query) => boolean;
+export type PadStickyEventsForeachFunction = (pad: Pad, event?: Event | null) => boolean;
+export type PadUnlinkFunction = (pad: Pad, parent?: Object | null) => void;
+export type PluginFeatureFilter = (feature: PluginFeature) => boolean;
+export type PluginFilter = (plugin: Plugin) => boolean;
+export type PluginInitFullFunc = (plugin: Plugin) => boolean;
+export type PluginInitFunc = (plugin: Plugin) => boolean;
+export type PromiseChangeFunc = (promise: Promise) => void;
+export type StructureFilterMapFunc = (field_id: GLib.Quark, value: GObject.Value | any) => boolean;
+export type StructureForeachFunc = (field_id: GLib.Quark, value: GObject.Value | any) => boolean;
+export type StructureMapFunc = (field_id: GLib.Quark, value: GObject.Value | any) => boolean;
+export type TagForeachFunc = (list: TagList, tag: string) => void;
+export type TagMergeFunc = (dest: GObject.Value | any, src: GObject.Value | any) => void;
+export type TaskFunction = () => void;
+export type TaskPoolFunction = () => void;
+export type TaskThreadFunc = (task: Task, thread: GLib.Thread) => void;
+export type TypeFindFunction = (find: TypeFind) => void;
+export type ValueCompareFunc = (value1: GObject.Value | any, value2: GObject.Value | any) => number;
+export type ValueDeserializeFunc = (dest: GObject.Value | any, s: string) => boolean;
+export type ValueDeserializeWithPSpecFunc = (dest: GObject.Value | any, s: string, pspec: GObject.ParamSpec) 
=> boolean;
+export type ValueSerializeFunc = (value1: GObject.Value | any) => string;
+
+export namespace BufferingMode {
+    export const $gtype: GObject.GType<BufferingMode>;
+}
+
+export enum BufferingMode {
+    STREAM = 0,
+    DOWNLOAD = 1,
+    TIMESHIFT = 2,
+    LIVE = 3,
+}
+
+export namespace BusSyncReply {
+    export const $gtype: GObject.GType<BusSyncReply>;
+}
+
+export enum BusSyncReply {
+    DROP = 0,
+    PASS = 1,
+    ASYNC = 2,
+}
+
+export namespace CapsIntersectMode {
+    export const $gtype: GObject.GType<CapsIntersectMode>;
+}
+
+export enum CapsIntersectMode {
+    ZIG_ZAG = 0,
+    FIRST = 1,
+}
+
+export namespace ClockEntryType {
+    export const $gtype: GObject.GType<ClockEntryType>;
+}
+
+export enum ClockEntryType {
+    SINGLE = 0,
+    PERIODIC = 1,
+}
+
+export namespace ClockReturn {
+    export const $gtype: GObject.GType<ClockReturn>;
+}
+
+export enum ClockReturn {
+    OK = 0,
+    EARLY = 1,
+    UNSCHEDULED = 2,
+    BUSY = 3,
+    BADTIME = 4,
+    ERROR = 5,
+    UNSUPPORTED = 6,
+    DONE = 7,
+}
+
+export namespace ClockType {
+    export const $gtype: GObject.GType<ClockType>;
+}
+
+export enum ClockType {
+    REALTIME = 0,
+    MONOTONIC = 1,
+    OTHER = 2,
+    TAI = 3,
+}
+
+export class CoreError extends GLib.Error {
+    static $gtype: GObject.GType<CoreError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: CoreError);
+
+    // Fields
+    static FAILED: number;
+    static TOO_LAZY: number;
+    static NOT_IMPLEMENTED: number;
+    static STATE_CHANGE: number;
+    static PAD: number;
+    static THREAD: number;
+    static NEGOTIATION: number;
+    static EVENT: number;
+    static SEEK: number;
+    static CAPS: number;
+    static TAG: number;
+    static MISSING_PLUGIN: number;
+    static CLOCK: number;
+    static DISABLED: number;
+    static NUM_ERRORS: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace DebugColorMode {
+    export const $gtype: GObject.GType<DebugColorMode>;
+}
+
+export enum DebugColorMode {
+    OFF = 0,
+    ON = 1,
+    UNIX = 2,
+}
+
+export namespace DebugLevel {
+    export const $gtype: GObject.GType<DebugLevel>;
+}
+
+export enum DebugLevel {
+    NONE = 0,
+    ERROR = 1,
+    WARNING = 2,
+    FIXME = 3,
+    INFO = 4,
+    DEBUG = 5,
+    LOG = 6,
+    TRACE = 7,
+    MEMDUMP = 9,
+    COUNT = 10,
+}
+
+export namespace EventType {
+    export const $gtype: GObject.GType<EventType>;
+}
+
+export enum EventType {
+    UNKNOWN = 0,
+    FLUSH_START = 2563,
+    FLUSH_STOP = 5127,
+    STREAM_START = 10254,
+    CAPS = 12814,
+    SEGMENT = 17934,
+    STREAM_COLLECTION = 19230,
+    TAG = 20510,
+    BUFFERSIZE = 23054,
+    SINK_MESSAGE = 25630,
+    STREAM_GROUP_DONE = 26894,
+    EOS = 28174,
+    TOC = 30750,
+    PROTECTION = 33310,
+    SEGMENT_DONE = 38406,
+    GAP = 40966,
+    INSTANT_RATE_CHANGE = 46090,
+    QOS = 48641,
+    SEEK = 51201,
+    NAVIGATION = 53761,
+    LATENCY = 56321,
+    STEP = 58881,
+    RECONFIGURE = 61441,
+    TOC_SELECT = 64001,
+    SELECT_STREAMS = 66561,
+    INSTANT_RATE_SYNC_TIME = 66817,
+    CUSTOM_UPSTREAM = 69121,
+    CUSTOM_DOWNSTREAM = 71686,
+    CUSTOM_DOWNSTREAM_OOB = 74242,
+    CUSTOM_DOWNSTREAM_STICKY = 76830,
+    CUSTOM_BOTH = 79367,
+    CUSTOM_BOTH_OOB = 81923,
+}
+
+export namespace FlowReturn {
+    export const $gtype: GObject.GType<FlowReturn>;
+}
+
+export enum FlowReturn {
+    CUSTOM_SUCCESS_2 = 102,
+    CUSTOM_SUCCESS_1 = 101,
+    CUSTOM_SUCCESS = 100,
+    OK = 0,
+    NOT_LINKED = -1,
+    FLUSHING = -2,
+    EOS = -3,
+    NOT_NEGOTIATED = -4,
+    ERROR = -5,
+    NOT_SUPPORTED = -6,
+    CUSTOM_ERROR = -100,
+    CUSTOM_ERROR_1 = -101,
+    CUSTOM_ERROR_2 = -102,
+}
+
+export namespace Format {
+    export const $gtype: GObject.GType<Format>;
+}
+
+export enum Format {
+    UNDEFINED = 0,
+    DEFAULT = 1,
+    BYTES = 2,
+    TIME = 3,
+    BUFFERS = 4,
+    PERCENT = 5,
+}
+
+export namespace IteratorItem {
+    export const $gtype: GObject.GType<IteratorItem>;
+}
+
+export enum IteratorItem {
+    SKIP = 0,
+    PASS = 1,
+    END = 2,
+}
+
+export namespace IteratorResult {
+    export const $gtype: GObject.GType<IteratorResult>;
+}
+
+export enum IteratorResult {
+    DONE = 0,
+    OK = 1,
+    RESYNC = 2,
+    ERROR = 3,
+}
+
+export class LibraryError extends GLib.Error {
+    static $gtype: GObject.GType<LibraryError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: LibraryError);
+
+    // Fields
+    static FAILED: number;
+    static TOO_LAZY: number;
+    static INIT: number;
+    static SHUTDOWN: number;
+    static SETTINGS: number;
+    static ENCODE: number;
+    static NUM_ERRORS: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace PadDirection {
+    export const $gtype: GObject.GType<PadDirection>;
+}
+
+export enum PadDirection {
+    UNKNOWN = 0,
+    SRC = 1,
+    SINK = 2,
+}
+
+export namespace PadLinkReturn {
+    export const $gtype: GObject.GType<PadLinkReturn>;
+}
+
+export enum PadLinkReturn {
+    OK = 0,
+    WRONG_HIERARCHY = -1,
+    WAS_LINKED = -2,
+    WRONG_DIRECTION = -3,
+    NOFORMAT = -4,
+    NOSCHED = -5,
+    REFUSED = -6,
+}
+
+export namespace PadMode {
+    export const $gtype: GObject.GType<PadMode>;
+}
+
+export enum PadMode {
+    NONE = 0,
+    PUSH = 1,
+    PULL = 2,
+}
+
+export namespace PadPresence {
+    export const $gtype: GObject.GType<PadPresence>;
+}
+
+export enum PadPresence {
+    ALWAYS = 0,
+    SOMETIMES = 1,
+    REQUEST = 2,
+}
+
+export namespace PadProbeReturn {
+    export const $gtype: GObject.GType<PadProbeReturn>;
+}
+
+export enum PadProbeReturn {
+    DROP = 0,
+    OK = 1,
+    REMOVE = 2,
+    PASS = 3,
+    HANDLED = 4,
+}
+
+export class ParseError extends GLib.Error {
+    static $gtype: GObject.GType<ParseError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ParseError);
+
+    // Fields
+    static SYNTAX: number;
+    static NO_SUCH_ELEMENT: number;
+    static NO_SUCH_PROPERTY: number;
+    static LINK: number;
+    static COULD_NOT_SET_PROPERTY: number;
+    static EMPTY_BIN: number;
+    static EMPTY: number;
+    static DELAYED_LINK: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export class PluginError extends GLib.Error {
+    static $gtype: GObject.GType<PluginError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: PluginError);
+
+    // Fields
+    static MODULE: number;
+    static DEPENDENCIES: number;
+    static NAME_MISMATCH: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace ProgressType {
+    export const $gtype: GObject.GType<ProgressType>;
+}
+
+export enum ProgressType {
+    START = 0,
+    CONTINUE = 1,
+    COMPLETE = 2,
+    CANCELED = 3,
+    ERROR = 4,
+}
+
+export namespace PromiseResult {
+    export const $gtype: GObject.GType<PromiseResult>;
+}
+
+export enum PromiseResult {
+    PENDING = 0,
+    INTERRUPTED = 1,
+    REPLIED = 2,
+    EXPIRED = 3,
+}
+
+export namespace QOSType {
+    export const $gtype: GObject.GType<QOSType>;
+}
+
+export enum QOSType {
+    OVERFLOW = 0,
+    UNDERFLOW = 1,
+    THROTTLE = 2,
+}
+
+export namespace QueryType {
+    export const $gtype: GObject.GType<QueryType>;
+}
+
+export enum QueryType {
+    UNKNOWN = 0,
+    POSITION = 2563,
+    DURATION = 5123,
+    LATENCY = 7683,
+    JITTER = 10243,
+    RATE = 12803,
+    SEEKING = 15363,
+    SEGMENT = 17923,
+    CONVERT = 20483,
+    FORMATS = 23043,
+    BUFFERING = 28163,
+    CUSTOM = 30723,
+    URI = 33283,
+    ALLOCATION = 35846,
+    SCHEDULING = 38401,
+    ACCEPT_CAPS = 40963,
+    CAPS = 43523,
+    DRAIN = 46086,
+    CONTEXT = 48643,
+    BITRATE = 51202,
+}
+
+export namespace Rank {
+    export const $gtype: GObject.GType<Rank>;
+}
+
+export enum Rank {
+    NONE = 0,
+    MARGINAL = 64,
+    SECONDARY = 128,
+    PRIMARY = 256,
+}
+
+export class ResourceError extends GLib.Error {
+    static $gtype: GObject.GType<ResourceError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ResourceError);
+
+    // Fields
+    static FAILED: number;
+    static TOO_LAZY: number;
+    static NOT_FOUND: number;
+    static BUSY: number;
+    static OPEN_READ: number;
+    static OPEN_WRITE: number;
+    static OPEN_READ_WRITE: number;
+    static CLOSE: number;
+    static READ: number;
+    static WRITE: number;
+    static SEEK: number;
+    static SYNC: number;
+    static SETTINGS: number;
+    static NO_SPACE_LEFT: number;
+    static NOT_AUTHORIZED: number;
+    static NUM_ERRORS: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace SearchMode {
+    export const $gtype: GObject.GType<SearchMode>;
+}
+
+export enum SearchMode {
+    EXACT = 0,
+    BEFORE = 1,
+    AFTER = 2,
+}
+
+export namespace SeekType {
+    export const $gtype: GObject.GType<SeekType>;
+}
+
+export enum SeekType {
+    NONE = 0,
+    SET = 1,
+    END = 2,
+}
+
+export namespace State {
+    export const $gtype: GObject.GType<State>;
+}
+
+export enum State {
+    VOID_PENDING = 0,
+    NULL = 1,
+    READY = 2,
+    PAUSED = 3,
+    PLAYING = 4,
+}
+
+export namespace StateChange {
+    export const $gtype: GObject.GType<StateChange>;
+}
+
+export enum StateChange {
+    NULL_TO_READY = 10,
+    READY_TO_PAUSED = 19,
+    PAUSED_TO_PLAYING = 28,
+    PLAYING_TO_PAUSED = 35,
+    PAUSED_TO_READY = 26,
+    READY_TO_NULL = 17,
+    NULL_TO_NULL = 9,
+    READY_TO_READY = 18,
+    PAUSED_TO_PAUSED = 27,
+    PLAYING_TO_PLAYING = 36,
+}
+
+export namespace StateChangeReturn {
+    export const $gtype: GObject.GType<StateChangeReturn>;
+}
+
+export enum StateChangeReturn {
+    FAILURE = 0,
+    SUCCESS = 1,
+    ASYNC = 2,
+    NO_PREROLL = 3,
+}
+
+export class StreamError extends GLib.Error {
+    static $gtype: GObject.GType<StreamError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: StreamError);
+
+    // Fields
+    static FAILED: number;
+    static TOO_LAZY: number;
+    static NOT_IMPLEMENTED: number;
+    static TYPE_NOT_FOUND: number;
+    static WRONG_TYPE: number;
+    static CODEC_NOT_FOUND: number;
+    static DECODE: number;
+    static ENCODE: number;
+    static DEMUX: number;
+    static MUX: number;
+    static FORMAT: number;
+    static DECRYPT: number;
+    static DECRYPT_NOKEY: number;
+    static NUM_ERRORS: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace StreamStatusType {
+    export const $gtype: GObject.GType<StreamStatusType>;
+}
+
+export enum StreamStatusType {
+    CREATE = 0,
+    ENTER = 1,
+    LEAVE = 2,
+    DESTROY = 3,
+    START = 8,
+    PAUSE = 9,
+    STOP = 10,
+}
+
+export namespace StructureChangeType {
+    export const $gtype: GObject.GType<StructureChangeType>;
+}
+
+export enum StructureChangeType {
+    LINK = 0,
+    UNLINK = 1,
+}
+
+export namespace TagFlag {
+    export const $gtype: GObject.GType<TagFlag>;
+}
+
+export enum TagFlag {
+    UNDEFINED = 0,
+    META = 1,
+    ENCODED = 2,
+    DECODED = 3,
+    COUNT = 4,
+}
+
+export namespace TagMergeMode {
+    export const $gtype: GObject.GType<TagMergeMode>;
+}
+
+export enum TagMergeMode {
+    UNDEFINED = 0,
+    REPLACE_ALL = 1,
+    REPLACE = 2,
+    APPEND = 3,
+    PREPEND = 4,
+    KEEP = 5,
+    KEEP_ALL = 6,
+    COUNT = 7,
+}
+
+export namespace TagScope {
+    export const $gtype: GObject.GType<TagScope>;
+}
+
+export enum TagScope {
+    STREAM = 0,
+    GLOBAL = 1,
+}
+
+export namespace TaskState {
+    export const $gtype: GObject.GType<TaskState>;
+}
+
+export enum TaskState {
+    STARTED = 0,
+    STOPPED = 1,
+    PAUSED = 2,
+}
+
+export namespace TocEntryType {
+    export const $gtype: GObject.GType<TocEntryType>;
+}
+
+export enum TocEntryType {
+    ANGLE = -3,
+    VERSION = -2,
+    EDITION = -1,
+    INVALID = 0,
+    TITLE = 1,
+    TRACK = 2,
+    CHAPTER = 3,
+}
+
+export namespace TocLoopType {
+    export const $gtype: GObject.GType<TocLoopType>;
+}
+
+export enum TocLoopType {
+    NONE = 0,
+    FORWARD = 1,
+    REVERSE = 2,
+    PING_PONG = 3,
+}
+
+export namespace TocScope {
+    export const $gtype: GObject.GType<TocScope>;
+}
+
+export enum TocScope {
+    GLOBAL = 1,
+    CURRENT = 2,
+}
+
+export namespace TracerValueScope {
+    export const $gtype: GObject.GType<TracerValueScope>;
+}
+
+export enum TracerValueScope {
+    PROCESS = 0,
+    THREAD = 1,
+    ELEMENT = 2,
+    PAD = 3,
+}
+
+export namespace TypeFindProbability {
+    export const $gtype: GObject.GType<TypeFindProbability>;
+}
+
+export enum TypeFindProbability {
+    NONE = 0,
+    MINIMUM = 1,
+    POSSIBLE = 50,
+    LIKELY = 80,
+    NEARLY_CERTAIN = 99,
+    MAXIMUM = 100,
+}
+
+export class URIError extends GLib.Error {
+    static $gtype: GObject.GType<URIError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: URIError);
+
+    // Fields
+    static UNSUPPORTED_PROTOCOL: number;
+    static BAD_URI: number;
+    static BAD_STATE: number;
+    static BAD_REFERENCE: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace URIType {
+    export const $gtype: GObject.GType<URIType>;
+}
+
+export enum URIType {
+    UNKNOWN = 0,
+    SINK = 1,
+    SRC = 2,
+}
+
+export namespace AllocatorFlags {
+    export const $gtype: GObject.GType<AllocatorFlags>;
+}
+
+export enum AllocatorFlags {
+    CUSTOM_ALLOC = 16,
+    LAST = 1048576,
+}
+
+export namespace BinFlags {
+    export const $gtype: GObject.GType<BinFlags>;
+}
+
+export enum BinFlags {
+    NO_RESYNC = 16384,
+    STREAMS_AWARE = 32768,
+    LAST = 524288,
+}
+
+export namespace BufferCopyFlags {
+    export const $gtype: GObject.GType<BufferCopyFlags>;
+}
+
+export enum BufferCopyFlags {
+    NONE = 0,
+    FLAGS = 1,
+    TIMESTAMPS = 2,
+    META = 4,
+    MEMORY = 8,
+    MERGE = 16,
+    DEEP = 32,
+}
+
+export namespace BufferFlags {
+    export const $gtype: GObject.GType<BufferFlags>;
+}
+
+export enum BufferFlags {
+    LIVE = 16,
+    DECODE_ONLY = 32,
+    DISCONT = 64,
+    RESYNC = 128,
+    CORRUPTED = 256,
+    MARKER = 512,
+    HEADER = 1024,
+    GAP = 2048,
+    DROPPABLE = 4096,
+    DELTA_UNIT = 8192,
+    TAG_MEMORY = 16384,
+    SYNC_AFTER = 32768,
+    NON_DROPPABLE = 65536,
+    LAST = 1048576,
+}
+
+export namespace BufferPoolAcquireFlags {
+    export const $gtype: GObject.GType<BufferPoolAcquireFlags>;
+}
+
+export enum BufferPoolAcquireFlags {
+    NONE = 0,
+    KEY_UNIT = 1,
+    DONTWAIT = 2,
+    DISCONT = 4,
+    LAST = 65536,
+}
+
+export namespace BusFlags {
+    export const $gtype: GObject.GType<BusFlags>;
+}
+
+export enum BusFlags {
+    FLUSHING = 16,
+    FLAG_LAST = 32,
+}
+
+export namespace CapsFlags {
+    export const $gtype: GObject.GType<CapsFlags>;
+}
+
+export enum CapsFlags {
+    ANY = 16,
+}
+
+export namespace ClockFlags {
+    export const $gtype: GObject.GType<ClockFlags>;
+}
+
+export enum ClockFlags {
+    CAN_DO_SINGLE_SYNC = 16,
+    CAN_DO_SINGLE_ASYNC = 32,
+    CAN_DO_PERIODIC_SYNC = 64,
+    CAN_DO_PERIODIC_ASYNC = 128,
+    CAN_SET_RESOLUTION = 256,
+    CAN_SET_MASTER = 512,
+    NEEDS_STARTUP_SYNC = 1024,
+    LAST = 4096,
+}
+
+export namespace DebugColorFlags {
+    export const $gtype: GObject.GType<DebugColorFlags>;
+}
+
+export enum DebugColorFlags {
+    FG_BLACK = 0,
+    FG_RED = 1,
+    FG_GREEN = 2,
+    FG_YELLOW = 3,
+    FG_BLUE = 4,
+    FG_MAGENTA = 5,
+    FG_CYAN = 6,
+    FG_WHITE = 7,
+    BG_BLACK = 0,
+    BG_RED = 16,
+    BG_GREEN = 32,
+    BG_YELLOW = 48,
+    BG_BLUE = 64,
+    BG_MAGENTA = 80,
+    BG_CYAN = 96,
+    BG_WHITE = 112,
+    BOLD = 256,
+    UNDERLINE = 512,
+}
+
+export namespace DebugGraphDetails {
+    export const $gtype: GObject.GType<DebugGraphDetails>;
+}
+
+export enum DebugGraphDetails {
+    MEDIA_TYPE = 1,
+    CAPS_DETAILS = 2,
+    NON_DEFAULT_PARAMS = 4,
+    STATES = 8,
+    FULL_PARAMS = 16,
+    ALL = 15,
+    VERBOSE = 4294967295,
+}
+
+export namespace ElementFlags {
+    export const $gtype: GObject.GType<ElementFlags>;
+}
+
+export enum ElementFlags {
+    LOCKED_STATE = 16,
+    SINK = 32,
+    SOURCE = 64,
+    PROVIDE_CLOCK = 128,
+    REQUIRE_CLOCK = 256,
+    INDEXABLE = 512,
+    LAST = 16384,
+}
+
+export namespace EventTypeFlags {
+    export const $gtype: GObject.GType<EventTypeFlags>;
+}
+
+export enum EventTypeFlags {
+    UPSTREAM = 1,
+    DOWNSTREAM = 2,
+    SERIALIZED = 4,
+    STICKY = 8,
+    STICKY_MULTI = 16,
+}
+
+export namespace GapFlags {
+    export const $gtype: GObject.GType<GapFlags>;
+}
+
+export enum GapFlags {
+    DATA = 1,
+}
+
+export namespace LockFlags {
+    export const $gtype: GObject.GType<LockFlags>;
+}
+
+export enum LockFlags {
+    READ = 1,
+    WRITE = 2,
+    EXCLUSIVE = 4,
+    LAST = 256,
+}
+
+export namespace MapFlags {
+    export const $gtype: GObject.GType<MapFlags>;
+}
+
+export enum MapFlags {
+    READ = 1,
+    WRITE = 2,
+    FLAG_LAST = 65536,
+}
+
+export namespace MemoryFlags {
+    export const $gtype: GObject.GType<MemoryFlags>;
+}
+
+export enum MemoryFlags {
+    READONLY = 2,
+    NO_SHARE = 16,
+    ZERO_PREFIXED = 32,
+    ZERO_PADDED = 64,
+    PHYSICALLY_CONTIGUOUS = 128,
+    NOT_MAPPABLE = 256,
+    LAST = 1048576,
+}
+
+export namespace MessageType {
+    export const $gtype: GObject.GType<MessageType>;
+}
+
+export enum MessageType {
+    UNKNOWN = 0,
+    EOS = 1,
+    ERROR = 2,
+    WARNING = 4,
+    INFO = 8,
+    TAG = 16,
+    BUFFERING = 32,
+    STATE_CHANGED = 64,
+    STATE_DIRTY = 128,
+    STEP_DONE = 256,
+    CLOCK_PROVIDE = 512,
+    CLOCK_LOST = 1024,
+    NEW_CLOCK = 2048,
+    STRUCTURE_CHANGE = 4096,
+    STREAM_STATUS = 8192,
+    APPLICATION = 16384,
+    ELEMENT = 32768,
+    SEGMENT_START = 65536,
+    SEGMENT_DONE = 131072,
+    DURATION_CHANGED = 262144,
+    LATENCY = 524288,
+    ASYNC_START = 1048576,
+    ASYNC_DONE = 2097152,
+    REQUEST_STATE = 4194304,
+    STEP_START = 8388608,
+    QOS = 16777216,
+    PROGRESS = 33554432,
+    TOC = 67108864,
+    RESET_TIME = 134217728,
+    STREAM_START = 268435456,
+    NEED_CONTEXT = 536870912,
+    HAVE_CONTEXT = 1073741824,
+    EXTENDED = 2147483648,
+    DEVICE_ADDED = 2147483649,
+    DEVICE_REMOVED = 2147483650,
+    PROPERTY_NOTIFY = 2147483651,
+    STREAM_COLLECTION = 2147483652,
+    STREAMS_SELECTED = 2147483653,
+    REDIRECT = 2147483654,
+    DEVICE_CHANGED = 2147483655,
+    INSTANT_RATE_REQUEST = 2147483656,
+    ANY = 4294967295,
+}
+
+export namespace MetaFlags {
+    export const $gtype: GObject.GType<MetaFlags>;
+}
+
+export enum MetaFlags {
+    NONE = 0,
+    READONLY = 1,
+    POOLED = 2,
+    LOCKED = 4,
+    LAST = 65536,
+}
+
+export namespace MiniObjectFlags {
+    export const $gtype: GObject.GType<MiniObjectFlags>;
+}
+
+export enum MiniObjectFlags {
+    LOCKABLE = 1,
+    LOCK_READONLY = 2,
+    MAY_BE_LEAKED = 4,
+    LAST = 16,
+}
+
+export namespace ObjectFlags {
+    export const $gtype: GObject.GType<ObjectFlags>;
+}
+
+export enum ObjectFlags {
+    MAY_BE_LEAKED = 1,
+    LAST = 16,
+}
+
+export namespace PadFlags {
+    export const $gtype: GObject.GType<PadFlags>;
+}
+
+export enum PadFlags {
+    BLOCKED = 16,
+    FLUSHING = 32,
+    EOS = 64,
+    BLOCKING = 128,
+    NEED_PARENT = 256,
+    NEED_RECONFIGURE = 512,
+    PENDING_EVENTS = 1024,
+    FIXED_CAPS = 2048,
+    PROXY_CAPS = 4096,
+    PROXY_ALLOCATION = 8192,
+    PROXY_SCHEDULING = 16384,
+    ACCEPT_INTERSECT = 32768,
+    ACCEPT_TEMPLATE = 65536,
+    LAST = 1048576,
+}
+
+export namespace PadLinkCheck {
+    export const $gtype: GObject.GType<PadLinkCheck>;
+}
+
+export enum PadLinkCheck {
+    NOTHING = 0,
+    HIERARCHY = 1,
+    TEMPLATE_CAPS = 2,
+    CAPS = 4,
+    NO_RECONFIGURE = 8,
+    DEFAULT = 5,
+}
+
+export namespace PadProbeType {
+    export const $gtype: GObject.GType<PadProbeType>;
+}
+
+export enum PadProbeType {
+    INVALID = 0,
+    IDLE = 1,
+    BLOCK = 2,
+    BUFFER = 16,
+    BUFFER_LIST = 32,
+    EVENT_DOWNSTREAM = 64,
+    EVENT_UPSTREAM = 128,
+    EVENT_FLUSH = 256,
+    QUERY_DOWNSTREAM = 512,
+    QUERY_UPSTREAM = 1024,
+    PUSH = 4096,
+    PULL = 8192,
+    BLOCKING = 3,
+    DATA_DOWNSTREAM = 112,
+    DATA_UPSTREAM = 128,
+    DATA_BOTH = 240,
+    BLOCK_DOWNSTREAM = 114,
+    BLOCK_UPSTREAM = 130,
+    EVENT_BOTH = 192,
+    QUERY_BOTH = 1536,
+    ALL_BOTH = 1776,
+    SCHEDULING = 12288,
+}
+
+export namespace PadTemplateFlags {
+    export const $gtype: GObject.GType<PadTemplateFlags>;
+}
+
+export enum PadTemplateFlags {
+    LAST = 256,
+}
+
+export namespace ParseFlags {
+    export const $gtype: GObject.GType<ParseFlags>;
+}
+
+export enum ParseFlags {
+    NONE = 0,
+    FATAL_ERRORS = 1,
+    NO_SINGLE_ELEMENT_BINS = 2,
+    PLACE_IN_BIN = 4,
+}
+
+export namespace PipelineFlags {
+    export const $gtype: GObject.GType<PipelineFlags>;
+}
+
+export enum PipelineFlags {
+    FIXED_CLOCK = 524288,
+    LAST = 8388608,
+}
+
+export namespace PluginAPIFlags {
+    export const $gtype: GObject.GType<PluginAPIFlags>;
+}
+
+export enum PluginAPIFlags {
+    MEMBERS = 1,
+}
+
+export namespace PluginDependencyFlags {
+    export const $gtype: GObject.GType<PluginDependencyFlags>;
+}
+
+export enum PluginDependencyFlags {
+    NONE = 0,
+    RECURSE = 1,
+    PATHS_ARE_DEFAULT_ONLY = 2,
+    FILE_NAME_IS_SUFFIX = 4,
+    FILE_NAME_IS_PREFIX = 8,
+    PATHS_ARE_RELATIVE_TO_EXE = 16,
+}
+
+export namespace PluginFlags {
+    export const $gtype: GObject.GType<PluginFlags>;
+}
+
+export enum PluginFlags {
+    CACHED = 16,
+    BLACKLISTED = 32,
+}
+
+export namespace QueryTypeFlags {
+    export const $gtype: GObject.GType<QueryTypeFlags>;
+}
+
+export enum QueryTypeFlags {
+    UPSTREAM = 1,
+    DOWNSTREAM = 2,
+    SERIALIZED = 4,
+}
+
+export namespace SchedulingFlags {
+    export const $gtype: GObject.GType<SchedulingFlags>;
+}
+
+export enum SchedulingFlags {
+    SEEKABLE = 1,
+    SEQUENTIAL = 2,
+    BANDWIDTH_LIMITED = 4,
+}
+
+export namespace SeekFlags {
+    export const $gtype: GObject.GType<SeekFlags>;
+}
+
+export enum SeekFlags {
+    NONE = 0,
+    FLUSH = 1,
+    ACCURATE = 2,
+    KEY_UNIT = 4,
+    SEGMENT = 8,
+    TRICKMODE = 16,
+    SKIP = 16,
+    SNAP_BEFORE = 32,
+    SNAP_AFTER = 64,
+    SNAP_NEAREST = 96,
+    TRICKMODE_KEY_UNITS = 128,
+    TRICKMODE_NO_AUDIO = 256,
+    TRICKMODE_FORWARD_PREDICTED = 512,
+    INSTANT_RATE_CHANGE = 1024,
+}
+
+export namespace SegmentFlags {
+    export const $gtype: GObject.GType<SegmentFlags>;
+}
+
+export enum SegmentFlags {
+    NONE = 0,
+    RESET = 1,
+    TRICKMODE = 16,
+    SKIP = 16,
+    SEGMENT = 8,
+    TRICKMODE_KEY_UNITS = 128,
+    TRICKMODE_FORWARD_PREDICTED = 512,
+    TRICKMODE_NO_AUDIO = 256,
+}
+
+export namespace SerializeFlags {
+    export const $gtype: GObject.GType<SerializeFlags>;
+}
+
+export enum SerializeFlags {
+    NONE = 0,
+    BACKWARD_COMPAT = 1,
+}
+
+export namespace StackTraceFlags {
+    export const $gtype: GObject.GType<StackTraceFlags>;
+}
+
+export enum StackTraceFlags {
+    NONE = 0,
+    FULL = 1,
+}
+
+export namespace StreamFlags {
+    export const $gtype: GObject.GType<StreamFlags>;
+}
+
+export enum StreamFlags {
+    NONE = 0,
+    SPARSE = 1,
+    SELECT = 2,
+    UNSELECT = 4,
+}
+
+export namespace StreamType {
+    export const $gtype: GObject.GType<StreamType>;
+}
+
+export enum StreamType {
+    UNKNOWN = 1,
+    AUDIO = 2,
+    VIDEO = 4,
+    CONTAINER = 8,
+    TEXT = 16,
+}
+
+export namespace TracerValueFlags {
+    export const $gtype: GObject.GType<TracerValueFlags>;
+}
+
+export enum TracerValueFlags {
+    NONE = 0,
+    OPTIONAL = 1,
+    AGGREGATED = 2,
+}
+export module Allocator {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Allocator extends Object {
+    static $gtype: GObject.GType<Allocator>;
+
+    constructor(properties?: Partial<Allocator.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Allocator.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Object;
+    mem_type: string;
+    mem_map: MemoryMapFunction;
+    mem_unmap: MemoryUnmapFunction;
+    mem_copy: MemoryCopyFunction;
+    mem_share: MemoryShareFunction;
+    mem_is_span: MemoryIsSpanFunction;
+    mem_map_full: MemoryMapFullFunction;
+    mem_unmap_full: MemoryUnmapFullFunction;
+
+    // Members
+
+    alloc(size: number, params?: AllocationParams | null): Memory | null;
+    free(memory: Memory): void;
+    set_default(): void;
+    vfunc_alloc(size: number, params?: AllocationParams | null): Memory | null;
+    vfunc_free(memory: Memory): void;
+    static find(name?: string | null): Allocator | null;
+    static register(name: string, allocator: Allocator): void;
+}
+export module Bin {
+    export interface ConstructorProperties extends Element.ConstructorProperties {
+        [key: string]: any;
+        async_handling: boolean;
+        asyncHandling: boolean;
+        message_forward: boolean;
+        messageForward: boolean;
+    }
+}
+export class Bin extends Element implements ChildProxy {
+    static $gtype: GObject.GType<Bin>;
+
+    constructor(properties?: Partial<Bin.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Bin.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get async_handling(): boolean;
+    set async_handling(val: boolean);
+    get asyncHandling(): boolean;
+    set asyncHandling(val: boolean);
+    get message_forward(): boolean;
+    set message_forward(val: boolean);
+    get messageForward(): boolean;
+    set messageForward(val: boolean);
+
+    // Fields
+    element: Element;
+    numchildren: number;
+    children: Element[];
+    children_cookie: number;
+    child_bus: Bus;
+    messages: Message[];
+    polling: boolean;
+    state_dirty: boolean;
+    clock_dirty: boolean;
+    provided_clock: Clock;
+    clock_provider: Element;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "deep-element-added", callback: (_source: this, sub_bin: Bin, element: Element) => 
void): number;
+    connect_after(
+        signal: "deep-element-added",
+        callback: (_source: this, sub_bin: Bin, element: Element) => void
+    ): number;
+    emit(signal: "deep-element-added", sub_bin: Bin, element: Element): void;
+    connect(signal: "deep-element-removed", callback: (_source: this, sub_bin: Bin, element: Element) => 
void): number;
+    connect_after(
+        signal: "deep-element-removed",
+        callback: (_source: this, sub_bin: Bin, element: Element) => void
+    ): number;
+    emit(signal: "deep-element-removed", sub_bin: Bin, element: Element): void;
+    connect(signal: "do-latency", callback: (_source: this) => boolean): number;
+    connect_after(signal: "do-latency", callback: (_source: this) => boolean): number;
+    emit(signal: "do-latency"): void;
+    connect(signal: "element-added", callback: (_source: this, element: Element) => void): number;
+    connect_after(signal: "element-added", callback: (_source: this, element: Element) => void): number;
+    emit(signal: "element-added", element: Element): void;
+    connect(signal: "element-removed", callback: (_source: this, element: Element) => void): number;
+    connect_after(signal: "element-removed", callback: (_source: this, element: Element) => void): number;
+    emit(signal: "element-removed", element: Element): void;
+
+    // Constructors
+
+    static ["new"](name?: string | null): Bin;
+
+    // Members
+
+    add(element: Element): boolean;
+    find_unlinked_pad(direction: PadDirection): Pad | null;
+    get_by_interface(iface: GObject.GType): Element | null;
+    get_by_name(name: string): Element | null;
+    get_by_name_recurse_up(name: string): Element | null;
+    get_suppressed_flags(): ElementFlags;
+    iterate_all_by_element_factory_name(factory_name: string): Iterator | null;
+    iterate_all_by_interface(iface: GObject.GType): Iterator | null;
+    iterate_elements(): Iterator | null;
+    iterate_recurse(): Iterator | null;
+    iterate_sinks(): Iterator | null;
+    iterate_sorted(): Iterator | null;
+    iterate_sources(): Iterator | null;
+    recalculate_latency(): boolean;
+    remove(element: Element): boolean;
+    set_suppressed_flags(flags: ElementFlags): void;
+    sync_children_states(): boolean;
+    vfunc_add_element(element: Element): boolean;
+    vfunc_deep_element_added(sub_bin: Bin, child: Element): void;
+    vfunc_deep_element_removed(sub_bin: Bin, child: Element): void;
+    vfunc_do_latency(): boolean;
+    vfunc_element_added(child: Element): void;
+    vfunc_element_removed(child: Element): void;
+    vfunc_handle_message(message: Message): void;
+    vfunc_remove_element(element: Element): boolean;
+
+    // Implemented Members
+
+    child_added(child: GObject.Object, name: string): void;
+    child_removed(child: GObject.Object, name: string): void;
+    get_child_by_index<T = GObject.Object>(index: number): T;
+    get_child_by_name<T = GObject.Object>(name: string): T;
+    get_children_count(): number;
+    get_property(name: string): unknown;
+    // Conflicted with GObject.Object.get_property
+    get_property(...args: never[]): any;
+    lookup(name: string): [boolean, GObject.Object | null, GObject.ParamSpec | null];
+    set_property(name: string, value: GObject.Value | any): void;
+    // Conflicted with GObject.Object.set_property
+    set_property(...args: never[]): any;
+    vfunc_child_added(child: GObject.Object, name: string): void;
+    vfunc_child_removed(child: GObject.Object, name: string): void;
+    vfunc_get_child_by_index<T = GObject.Object>(index: number): T;
+    vfunc_get_child_by_name<T = GObject.Object>(name: string): T;
+    vfunc_get_children_count(): number;
+}
+export module Bitmask {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Bitmask {
+    static $gtype: GObject.GType<Bitmask>;
+
+    constructor(properties?: Partial<Bitmask.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Bitmask.ConstructorProperties>, ...args: any[]): void;
+}
+export module BufferPool {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class BufferPool extends Object {
+    static $gtype: GObject.GType<BufferPool>;
+
+    constructor(properties?: Partial<BufferPool.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BufferPool.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Object;
+    flushing: number;
+
+    // Constructors
+
+    static ["new"](): BufferPool;
+
+    // Members
+
+    acquire_buffer(params?: BufferPoolAcquireParams | null): [FlowReturn, Buffer];
+    get_config(): Structure;
+    get_options(): string[];
+    has_option(option: string): boolean;
+    is_active(): boolean;
+    release_buffer(buffer: Buffer): void;
+    set_active(active: boolean): boolean;
+    set_config(config: Structure): boolean;
+    set_flushing(flushing: boolean): void;
+    vfunc_acquire_buffer(params?: BufferPoolAcquireParams | null): [FlowReturn, Buffer];
+    vfunc_alloc_buffer(params?: BufferPoolAcquireParams | null): [FlowReturn, Buffer];
+    vfunc_flush_start(): void;
+    vfunc_flush_stop(): void;
+    vfunc_free_buffer(buffer: Buffer): void;
+    vfunc_get_options(): string[];
+    vfunc_release_buffer(buffer: Buffer): void;
+    vfunc_reset_buffer(buffer: Buffer): void;
+    vfunc_set_config(config: Structure): boolean;
+    vfunc_start(): boolean;
+    vfunc_stop(): boolean;
+    static config_add_option(config: Structure, option: string): void;
+    static config_get_allocator(config: Structure): [boolean, Allocator | null, AllocationParams | null];
+    static config_get_option(config: Structure, index: number): string | null;
+    static config_get_params(config: Structure): [boolean, Caps | null, number, number, number];
+    static config_has_option(config: Structure, option: string): boolean;
+    static config_n_options(config: Structure): number;
+    static config_set_allocator(
+        config: Structure,
+        allocator?: Allocator | null,
+        params?: AllocationParams | null
+    ): void;
+    static config_set_params(
+        config: Structure,
+        caps: Caps | null,
+        size: number,
+        min_buffers: number,
+        max_buffers: number
+    ): void;
+    static config_validate_params(
+        config: Structure,
+        caps: Caps | null,
+        size: number,
+        min_buffers: number,
+        max_buffers: number
+    ): boolean;
+}
+export module Bus {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        enable_async: boolean;
+        enableAsync: boolean;
+    }
+}
+export class Bus extends Object {
+    static $gtype: GObject.GType<Bus>;
+
+    constructor(properties?: Partial<Bus.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Bus.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set enable_async(val: boolean);
+    set enableAsync(val: boolean);
+
+    // Fields
+    object: Object;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "message", callback: (_source: this, message: Message) => void): number;
+    connect_after(signal: "message", callback: (_source: this, message: Message) => void): number;
+    emit(signal: "message", message: Message): void;
+    connect(signal: "sync-message", callback: (_source: this, message: Message) => void): number;
+    connect_after(signal: "sync-message", callback: (_source: this, message: Message) => void): number;
+    emit(signal: "sync-message", message: Message): void;
+
+    // Constructors
+
+    static ["new"](): Bus;
+
+    // Members
+
+    add_signal_watch(): void;
+    add_signal_watch_full(priority: number): void;
+    add_watch(priority: number, func: BusFunc): number;
+    async_signal_func(message: Message, data?: any | null): boolean;
+    create_watch(): GLib.Source | null;
+    disable_sync_message_emission(): void;
+    enable_sync_message_emission(): void;
+    get_pollfd(): GLib.PollFD;
+    have_pending(): boolean;
+    peek(): Message | null;
+    poll(events: MessageType, timeout: ClockTime): Message | null;
+    pop(): Message | null;
+    pop_filtered(types: MessageType): Message | null;
+    post(message: Message): boolean;
+    remove_signal_watch(): void;
+    remove_watch(): boolean;
+    set_flushing(flushing: boolean): void;
+    set_sync_handler(func?: BusSyncHandler | null): void;
+    sync_signal_handler(message: Message, data?: any | null): BusSyncReply;
+    timed_pop(timeout: ClockTime): Message | null;
+    timed_pop_filtered(timeout: ClockTime, types: MessageType): Message | null;
+    vfunc_message(message: Message): void;
+    vfunc_sync_message(message: Message): void;
+}
+export module Clock {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        timeout: number;
+        window_size: number;
+        windowSize: number;
+        window_threshold: number;
+        windowThreshold: number;
+    }
+}
+export abstract class Clock extends Object {
+    static $gtype: GObject.GType<Clock>;
+
+    constructor(properties?: Partial<Clock.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Clock.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get timeout(): number;
+    set timeout(val: number);
+    get window_size(): number;
+    set window_size(val: number);
+    get windowSize(): number;
+    set windowSize(val: number);
+    get window_threshold(): number;
+    set window_threshold(val: number);
+    get windowThreshold(): number;
+    set windowThreshold(val: number);
+
+    // Fields
+    object: Object;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "synced", callback: (_source: this, synced: boolean) => void): number;
+    connect_after(signal: "synced", callback: (_source: this, synced: boolean) => void): number;
+    emit(signal: "synced", synced: boolean): void;
+
+    // Members
+
+    add_observation(slave: ClockTime, master: ClockTime): [boolean, number];
+    add_observation_unapplied(
+        slave: ClockTime,
+        master: ClockTime
+    ): [boolean, number, ClockTime | null, ClockTime | null, ClockTime | null, ClockTime | null];
+    adjust_unlocked(internal: ClockTime): ClockTime;
+    adjust_with_calibration(
+        internal_target: ClockTime,
+        cinternal: ClockTime,
+        cexternal: ClockTime,
+        cnum: ClockTime,
+        cdenom: ClockTime
+    ): ClockTime;
+    get_calibration(): [ClockTime | null, ClockTime | null, ClockTime | null, ClockTime | null];
+    get_internal_time(): ClockTime;
+    get_master(): Clock | null;
+    get_resolution(): ClockTime;
+    get_time(): ClockTime;
+    get_timeout(): ClockTime;
+    is_synced(): boolean;
+    new_periodic_id(start_time: ClockTime, interval: ClockTime): ClockID;
+    new_single_shot_id(time: ClockTime): ClockID;
+    periodic_id_reinit(id: ClockID, start_time: ClockTime, interval: ClockTime): boolean;
+    set_calibration(internal: ClockTime, external: ClockTime, rate_num: ClockTime, rate_denom: ClockTime): 
void;
+    set_master(master?: Clock | null): boolean;
+    set_resolution(resolution: ClockTime): ClockTime;
+    set_synced(synced: boolean): void;
+    set_timeout(timeout: ClockTime): void;
+    single_shot_id_reinit(id: ClockID, time: ClockTime): boolean;
+    unadjust_unlocked(external: ClockTime): ClockTime;
+    unadjust_with_calibration(
+        external_target: ClockTime,
+        cinternal: ClockTime,
+        cexternal: ClockTime,
+        cnum: ClockTime,
+        cdenom: ClockTime
+    ): ClockTime;
+    wait_for_sync(timeout: ClockTime): boolean;
+    vfunc_change_resolution(old_resolution: ClockTime, new_resolution: ClockTime): ClockTime;
+    vfunc_get_internal_time(): ClockTime;
+    vfunc_get_resolution(): ClockTime;
+    vfunc_unschedule(entry: ClockEntry): void;
+    vfunc_wait(entry: ClockEntry): [ClockReturn, ClockTimeDiff | null];
+    vfunc_wait_async(entry: ClockEntry): ClockReturn;
+    static id_compare_func(id1?: any | null, id2?: any | null): number;
+    static id_get_clock(id: ClockID): Clock | null;
+    static id_get_time(id: ClockID): ClockTime;
+    static id_ref(id: ClockID): ClockID;
+    static id_unref(id: ClockID): void;
+    static id_unschedule(id: ClockID): void;
+    static id_uses_clock(id: ClockID, clock: Clock): boolean;
+    static id_wait(id: ClockID): [ClockReturn, ClockTimeDiff | null];
+    static id_wait_async(id: ClockID, func: ClockCallback): ClockReturn;
+}
+export module ControlBinding {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        name: string;
+        object: Object | any;
+    }
+}
+export abstract class ControlBinding extends Object {
+    static $gtype: GObject.GType<ControlBinding>;
+
+    constructor(properties?: Partial<ControlBinding.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ControlBinding.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get name(): string;
+    // This accessor conflicts with a property, field, or function name in a parent class or interface.
+    // @ts-expect-error
+    get object(): Object;
+
+    // Fields
+    pspec: GObject.ParamSpec;
+
+    // Members
+
+    get_g_value_array(timestamp: ClockTime, interval: ClockTime, values: GObject.Value[]): boolean;
+    // Conflicted with Gst.Object.get_g_value_array
+    get_g_value_array(...args: never[]): any;
+    get_value(timestamp: ClockTime): GObject.Value | null;
+    // Conflicted with Gst.Object.get_value
+    get_value(...args: never[]): any;
+    is_disabled(): boolean;
+    set_disabled(disabled: boolean): void;
+    sync_values(object: Object, timestamp: ClockTime, last_sync: ClockTime): boolean;
+    // Conflicted with Gst.Object.sync_values
+    sync_values(...args: never[]): any;
+    vfunc_get_g_value_array(timestamp: ClockTime, interval: ClockTime, values: GObject.Value[]): boolean;
+    vfunc_get_value(timestamp: ClockTime): GObject.Value | null;
+    vfunc_sync_values(object: Object, timestamp: ClockTime, last_sync: ClockTime): boolean;
+}
+export module ControlSource {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class ControlSource extends Object {
+    static $gtype: GObject.GType<ControlSource>;
+
+    constructor(properties?: Partial<ControlSource.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ControlSource.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    get_value: ControlSourceGetValue | any;
+    get_value_array: ControlSourceGetValueArray;
+
+    // Members
+
+    control_source_get_value(timestamp: ClockTime): [boolean, number];
+    control_source_get_value_array(timestamp: ClockTime, interval: ClockTime, values: number[]): boolean;
+}
+export module Device {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        caps: Caps;
+        device_class: string;
+        deviceClass: string;
+        display_name: string;
+        displayName: string;
+        properties: Structure;
+    }
+}
+export abstract class Device extends Object {
+    static $gtype: GObject.GType<Device>;
+
+    constructor(properties?: Partial<Device.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Device.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get caps(): Caps;
+    get device_class(): string;
+    get deviceClass(): string;
+    get display_name(): string;
+    get displayName(): string;
+    get properties(): Structure;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "removed", callback: (_source: this) => void): number;
+    connect_after(signal: "removed", callback: (_source: this) => void): number;
+    emit(signal: "removed"): void;
+
+    // Members
+
+    create_element(name?: string | null): Element | null;
+    get_caps(): Caps | null;
+    get_device_class(): string;
+    get_display_name(): string;
+    get_properties(): Structure | null;
+    has_classes(classes: string): boolean;
+    has_classesv(classes: string[]): boolean;
+    reconfigure_element(element: Element): boolean;
+    vfunc_create_element(name?: string | null): Element | null;
+    vfunc_reconfigure_element(element: Element): boolean;
+}
+export module DeviceMonitor {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DeviceMonitor extends Object {
+    static $gtype: GObject.GType<DeviceMonitor>;
+
+    constructor(properties?: Partial<DeviceMonitor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DeviceMonitor.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): DeviceMonitor;
+
+    // Members
+
+    add_filter(classes?: string | null, caps?: Caps | null): number;
+    get_bus(): Bus;
+    get_devices(): Device[] | null;
+    get_providers(): string[];
+    get_show_all_devices(): boolean;
+    remove_filter(filter_id: number): boolean;
+    set_show_all_devices(show_all: boolean): void;
+    start(): boolean;
+    stop(): void;
+}
+export module DeviceProvider {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class DeviceProvider extends Object {
+    static $gtype: GObject.GType<DeviceProvider>;
+
+    constructor(properties?: Partial<DeviceProvider.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DeviceProvider.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    devices: any[];
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "provider-hidden", callback: (_source: this, object: string) => void): number;
+    connect_after(signal: "provider-hidden", callback: (_source: this, object: string) => void): number;
+    emit(signal: "provider-hidden", object: string): void;
+    connect(signal: "provider-unhidden", callback: (_source: this, object: string) => void): number;
+    connect_after(signal: "provider-unhidden", callback: (_source: this, object: string) => void): number;
+    emit(signal: "provider-unhidden", object: string): void;
+
+    // Members
+
+    can_monitor(): boolean;
+    device_add(device: Device): void;
+    device_changed(device: Device, changed_device: Device): void;
+    device_remove(device: Device): void;
+    get_bus(): Bus;
+    get_devices(): Device[];
+    get_factory(): DeviceProviderFactory | null;
+    get_hidden_providers(): string[];
+    get_metadata(key: string): string;
+    hide_provider(name: string): void;
+    is_started(): boolean;
+    start(): boolean;
+    stop(): void;
+    unhide_provider(name: string): void;
+    vfunc_start(): boolean;
+    vfunc_stop(): void;
+    static register(plugin: Plugin | null, name: string, rank: number, type: GObject.GType): boolean;
+    static add_metadata(key: string, value: string): void;
+    static add_static_metadata(key: string, value: string): void;
+    static get_metadata(key: string): string | null;
+    static set_metadata(longname: string, classification: string, description: string, author: string): void;
+    static set_static_metadata(longname: string, classification: string, description: string, author: 
string): void;
+}
+export module DeviceProviderFactory {
+    export interface ConstructorProperties extends PluginFeature.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DeviceProviderFactory extends PluginFeature {
+    static $gtype: GObject.GType<DeviceProviderFactory>;
+
+    constructor(properties?: Partial<DeviceProviderFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DeviceProviderFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get(): DeviceProvider | null;
+    get_device_provider_type(): GObject.GType;
+    get_metadata(key: string): string | null;
+    get_metadata_keys(): string[] | null;
+    has_classes(classes?: string | null): boolean;
+    has_classesv(classes?: string[] | null): boolean;
+    static find(name: string): DeviceProviderFactory | null;
+    static get_by_name(factoryname: string): DeviceProvider | null;
+    static list_get_device_providers(minrank: Rank): DeviceProviderFactory[];
+}
+export module DoubleRange {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DoubleRange {
+    static $gtype: GObject.GType<DoubleRange>;
+
+    constructor(properties?: Partial<DoubleRange.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DoubleRange.ConstructorProperties>, ...args: any[]): void;
+}
+export module DynamicTypeFactory {
+    export interface ConstructorProperties extends PluginFeature.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DynamicTypeFactory extends PluginFeature {
+    static $gtype: GObject.GType<DynamicTypeFactory>;
+
+    constructor(properties?: Partial<DynamicTypeFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DynamicTypeFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static load(factoryname: string): GObject.GType;
+}
+export module Element {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Element extends Object {
+    static $gtype: GObject.GType<Element>;
+
+    constructor(properties?: Partial<Element.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Element.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Object;
+    state_lock: GLib.RecMutex;
+    state_cond: GLib.Cond;
+    state_cookie: number;
+    target_state: State;
+    current_state: State;
+    next_state: State;
+    pending_state: State;
+    last_return: StateChangeReturn;
+    bus: Bus;
+    clock: Clock;
+    base_time: ClockTimeDiff;
+    start_time: ClockTime;
+    numpads: number;
+    pads: Pad[];
+    numsrcpads: number;
+    srcpads: Pad[];
+    numsinkpads: number;
+    sinkpads: Pad[];
+    pads_cookie: number;
+    contexts: Context[];
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "no-more-pads", callback: (_source: this) => void): number;
+    connect_after(signal: "no-more-pads", callback: (_source: this) => void): number;
+    emit(signal: "no-more-pads"): void;
+    connect(signal: "pad-added", callback: (_source: this, new_pad: Pad) => void): number;
+    connect_after(signal: "pad-added", callback: (_source: this, new_pad: Pad) => void): number;
+    emit(signal: "pad-added", new_pad: Pad): void;
+    connect(signal: "pad-removed", callback: (_source: this, old_pad: Pad) => void): number;
+    connect_after(signal: "pad-removed", callback: (_source: this, old_pad: Pad) => void): number;
+    emit(signal: "pad-removed", old_pad: Pad): void;
+
+    // Members
+
+    abort_state(): void;
+    add_pad(pad: Pad): boolean;
+    add_property_deep_notify_watch(property_name: string | null, include_value: boolean): number;
+    add_property_notify_watch(property_name: string | null, include_value: boolean): number;
+    call_async(func: ElementCallAsyncFunc): void;
+    change_state(transition: StateChange): StateChangeReturn;
+    continue_state(ret: StateChangeReturn): StateChangeReturn;
+    create_all_pads(): void;
+    foreach_pad(func: ElementForeachPadFunc): boolean;
+    foreach_sink_pad(func: ElementForeachPadFunc): boolean;
+    foreach_src_pad(func: ElementForeachPadFunc): boolean;
+    get_base_time(): ClockTime;
+    get_bus(): Bus | null;
+    get_clock(): Clock | null;
+    get_compatible_pad(pad: Pad, caps?: Caps | null): Pad | null;
+    get_compatible_pad_template(compattempl: PadTemplate): PadTemplate | null;
+    get_context(context_type: string): Context | null;
+    get_context_unlocked(context_type: string): Context | null;
+    get_contexts(): Context[];
+    get_current_clock_time(): ClockTime;
+    get_current_running_time(): ClockTime;
+    get_factory(): ElementFactory | null;
+    get_metadata(key: string): string;
+    get_pad_template(name: string): PadTemplate | null;
+    get_pad_template_list(): PadTemplate[];
+    get_request_pad(name: string): Pad | null;
+    get_start_time(): ClockTime;
+    get_state(timeout: ClockTime): [StateChangeReturn, State | null, State | null];
+    get_static_pad(name: string): Pad | null;
+    is_locked_state(): boolean;
+    iterate_pads(): Iterator;
+    iterate_sink_pads(): Iterator;
+    iterate_src_pads(): Iterator;
+    link(dest: Element): boolean;
+    link_filtered(dest: Element, filter?: Caps | null): boolean;
+    link_pads(srcpadname: string | null, dest: Element, destpadname?: string | null): boolean;
+    link_pads_filtered(
+        srcpadname: string | null,
+        dest: Element,
+        destpadname?: string | null,
+        filter?: Caps | null
+    ): boolean;
+    link_pads_full(srcpadname: string | null, dest: Element, destpadname: string | null, flags: 
PadLinkCheck): boolean;
+    lost_state(): void;
+    message_full(
+        type: MessageType,
+        domain: GLib.Quark,
+        code: number,
+        text: string | null,
+        debug: string | null,
+        file: string,
+        _function: string,
+        line: number
+    ): void;
+    message_full_with_details(
+        type: MessageType,
+        domain: GLib.Quark,
+        code: number,
+        text: string | null,
+        debug: string | null,
+        file: string,
+        _function: string,
+        line: number,
+        structure: Structure
+    ): void;
+    no_more_pads(): void;
+    post_message(message: Message): boolean;
+    provide_clock(): Clock | null;
+    query(query: Query): boolean;
+    query_convert(src_format: Format, src_val: number, dest_format: Format): [boolean, number];
+    query_duration(format: Format): [boolean, number];
+    query_position(format: Format): [boolean, number];
+    release_request_pad(pad: Pad): void;
+    remove_pad(pad: Pad): boolean;
+    remove_property_notify_watch(watch_id: number): void;
+    request_pad(templ: PadTemplate, name?: string | null, caps?: Caps | null): Pad | null;
+    request_pad_simple(name: string): Pad | null;
+    seek(
+        rate: number,
+        format: Format,
+        flags: SeekFlags,
+        start_type: SeekType,
+        start: number,
+        stop_type: SeekType,
+        stop: number
+    ): boolean;
+    seek_simple(format: Format, seek_flags: SeekFlags, seek_pos: number): boolean;
+    send_event(event: Event): boolean;
+    set_base_time(time: ClockTime): void;
+    set_bus(bus?: Bus | null): void;
+    set_clock(clock?: Clock | null): boolean;
+    set_context(context: Context): void;
+    set_locked_state(locked_state: boolean): boolean;
+    set_start_time(time: ClockTime): void;
+    set_state(state: State): StateChangeReturn;
+    sync_state_with_parent(): boolean;
+    unlink(dest: Element): void;
+    unlink_pads(srcpadname: string, dest: Element, destpadname: string): void;
+    vfunc_change_state(transition: StateChange): StateChangeReturn;
+    vfunc_get_state(timeout: ClockTime): [StateChangeReturn, State | null, State | null];
+    vfunc_no_more_pads(): void;
+    vfunc_pad_added(pad: Pad): void;
+    vfunc_pad_removed(pad: Pad): void;
+    vfunc_post_message(message: Message): boolean;
+    vfunc_provide_clock(): Clock | null;
+    vfunc_query(query: Query): boolean;
+    vfunc_release_pad(pad: Pad): void;
+    vfunc_request_new_pad(templ: PadTemplate, name?: string | null, caps?: Caps | null): Pad | null;
+    vfunc_send_event(event: Event): boolean;
+    vfunc_set_bus(bus?: Bus | null): void;
+    vfunc_set_clock(clock?: Clock | null): boolean;
+    vfunc_set_context(context: Context): void;
+    vfunc_set_state(state: State): StateChangeReturn;
+    vfunc_state_changed(oldstate: State, newstate: State, pending: State): void;
+    static make_from_uri(type: URIType, uri: string, elementname?: string | null): Element;
+    static register(plugin: Plugin | null, name: string, rank: number, type: GObject.GType): boolean;
+    static state_change_return_get_name(state_ret: StateChangeReturn): string;
+    static state_get_name(state: State): string;
+    static type_set_skip_documentation(type: GObject.GType): void;
+    static add_metadata(key: string, value: string): void;
+    static add_pad_template(templ: PadTemplate): void;
+    static add_static_metadata(key: string, value: string): void;
+    static add_static_pad_template(static_templ: StaticPadTemplate): void;
+    static add_static_pad_template_with_gtype(static_templ: StaticPadTemplate, pad_type: GObject.GType): 
void;
+    static get_metadata(key: string): string;
+    static get_pad_template(name: string): PadTemplate | null;
+    static get_pad_template_list(): PadTemplate[];
+    static set_metadata(longname: string, classification: string, description: string, author: string): void;
+    static set_static_metadata(longname: string, classification: string, description: string, author: 
string): void;
+}
+export module ElementFactory {
+    export interface ConstructorProperties extends PluginFeature.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ElementFactory extends PluginFeature {
+    static $gtype: GObject.GType<ElementFactory>;
+
+    constructor(properties?: Partial<ElementFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ElementFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    can_sink_all_caps(caps: Caps): boolean;
+    can_sink_any_caps(caps: Caps): boolean;
+    can_src_all_caps(caps: Caps): boolean;
+    can_src_any_caps(caps: Caps): boolean;
+    create(name?: string | null): Element | null;
+    create_with_properties(names?: string[] | null, values?: GObject.Value[] | null): Element | null;
+    get_element_type(): GObject.GType;
+    get_metadata(key: string): string | null;
+    get_metadata_keys(): string[] | null;
+    get_num_pad_templates(): number;
+    get_skip_documentation(): boolean;
+    get_static_pad_templates(): StaticPadTemplate[];
+    get_uri_protocols(): string[];
+    get_uri_type(): URIType;
+    has_interface(interfacename: string): boolean;
+    list_is_type(type: ElementFactoryListType): boolean;
+    static find(name: string): ElementFactory | null;
+    static list_filter(
+        list: ElementFactory[],
+        caps: Caps,
+        direction: PadDirection,
+        subsetonly: boolean
+    ): ElementFactory[];
+    static list_get_elements(type: ElementFactoryListType, minrank: Rank): ElementFactory[];
+    static make(factoryname: string, name?: string | null): Element | null;
+    static make_with_properties(
+        factoryname: string,
+        names?: string[] | null,
+        values?: GObject.Value[] | null
+    ): Element | null;
+}
+export module FlagSet {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FlagSet {
+    static $gtype: GObject.GType<FlagSet>;
+
+    constructor(properties?: Partial<FlagSet.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FlagSet.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static register(flags_type: GObject.GType): GObject.GType;
+}
+export module Fraction {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Fraction {
+    static $gtype: GObject.GType<Fraction>;
+
+    constructor(properties?: Partial<Fraction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Fraction.ConstructorProperties>, ...args: any[]): void;
+}
+export module FractionRange {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FractionRange {
+    static $gtype: GObject.GType<FractionRange>;
+
+    constructor(properties?: Partial<FractionRange.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FractionRange.ConstructorProperties>, ...args: any[]): void;
+}
+export module GhostPad {
+    export interface ConstructorProperties extends ProxyPad.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GhostPad extends ProxyPad {
+    static $gtype: GObject.GType<GhostPad>;
+
+    constructor(properties?: Partial<GhostPad.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GhostPad.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    pad: ProxyPad;
+
+    // Constructors
+
+    static ["new"](name: string | null, target: Pad): GhostPad;
+    // Conflicted with Gst.Pad.new
+    static ["new"](...args: never[]): any;
+    static new_from_template(name: string | null, target: Pad, templ: PadTemplate): GhostPad;
+    // Conflicted with Gst.Pad.new_from_template
+    static new_from_template(...args: never[]): any;
+    static new_no_target(name: string | null, dir: PadDirection): GhostPad;
+    static new_no_target_from_template(name: string | null, templ: PadTemplate): GhostPad;
+
+    // Members
+
+    construct(): boolean;
+    get_target(): Pad | null;
+    set_target(newtarget?: Pad | null): boolean;
+    static activate_mode_default(pad: Pad, parent: Object | null, mode: PadMode, active: boolean): boolean;
+    static internal_activate_mode_default(pad: Pad, parent: Object | null, mode: PadMode, active: boolean): 
boolean;
+}
+export module Int64Range {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Int64Range {
+    static $gtype: GObject.GType<Int64Range>;
+
+    constructor(properties?: Partial<Int64Range.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Int64Range.ConstructorProperties>, ...args: any[]): void;
+}
+export module IntRange {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class IntRange {
+    static $gtype: GObject.GType<IntRange>;
+
+    constructor(properties?: Partial<IntRange.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IntRange.ConstructorProperties>, ...args: any[]): void;
+}
+export module Object {
+    export interface ConstructorProperties extends GObject.InitiallyUnowned.ConstructorProperties {
+        [key: string]: any;
+        name: string;
+    }
+}
+export abstract class Object extends GObject.InitiallyUnowned {
+    static $gtype: GObject.GType<Object>;
+
+    constructor(properties?: Partial<Object.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Object.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get name(): string;
+    set name(val: string);
+
+    // Fields
+    object: GObject.InitiallyUnowned;
+    lock: GLib.Mutex;
+    flags: number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "deep-notify",
+        callback: (_source: this, prop_object: Object, prop: GObject.ParamSpec) => void
+    ): number;
+    connect_after(
+        signal: "deep-notify",
+        callback: (_source: this, prop_object: Object, prop: GObject.ParamSpec) => void
+    ): number;
+    emit(signal: "deep-notify", prop_object: Object, prop: GObject.ParamSpec): void;
+
+    // Members
+
+    add_control_binding(binding: ControlBinding): boolean;
+    default_error(error: GLib.Error, debug?: string | null): void;
+    get_control_binding(property_name: string): ControlBinding | null;
+    get_control_rate(): ClockTime;
+    get_g_value_array(
+        property_name: string,
+        timestamp: ClockTime,
+        interval: ClockTime,
+        values: GObject.Value[]
+    ): boolean;
+    get_name(): string | null;
+    get_parent(): Object | null;
+    get_path_string(): string;
+    get_value(property_name: string, timestamp: ClockTime): GObject.Value | null;
+    has_active_control_bindings(): boolean;
+    has_ancestor(ancestor: Object): boolean;
+    has_as_ancestor(ancestor: Object): boolean;
+    has_as_parent(parent: Object): boolean;
+    ref(): Object;
+    remove_control_binding(binding: ControlBinding): boolean;
+    set_control_binding_disabled(property_name: string, disabled: boolean): void;
+    set_control_bindings_disabled(disabled: boolean): void;
+    set_control_rate(control_rate: ClockTime): void;
+    set_name(name?: string | null): boolean;
+    set_parent(parent: Object): boolean;
+    suggest_next_sync(): ClockTime;
+    sync_values(timestamp: ClockTime): boolean;
+    unparent(): void;
+    unref(): void;
+    vfunc_deep_notify(orig: Object, pspec: GObject.ParamSpec): void;
+    static check_uniqueness(list: Object[], name: string): boolean;
+    static default_deep_notify(
+        object: GObject.Object,
+        orig: Object,
+        pspec: GObject.ParamSpec,
+        excluded_props?: string[] | null
+    ): void;
+    static replace(oldobj?: Object | null, newobj?: Object | null): [boolean, Object | null];
+}
+export module Pad {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        caps: Caps;
+        direction: PadDirection;
+        offset: number;
+        template: PadTemplate;
+    }
+}
+export class Pad extends Object {
+    static $gtype: GObject.GType<Pad>;
+
+    constructor(properties?: Partial<Pad.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Pad.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get caps(): Caps;
+    get direction(): PadDirection;
+    get offset(): number;
+    set offset(val: number);
+    get template(): PadTemplate;
+    set template(val: PadTemplate);
+
+    // Fields
+    object: Object;
+    element_private: any;
+    padtemplate: PadTemplate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "linked", callback: (_source: this, peer: Pad) => void): number;
+    connect_after(signal: "linked", callback: (_source: this, peer: Pad) => void): number;
+    emit(signal: "linked", peer: Pad): void;
+    connect(signal: "unlinked", callback: (_source: this, peer: Pad) => void): number;
+    connect_after(signal: "unlinked", callback: (_source: this, peer: Pad) => void): number;
+    emit(signal: "unlinked", peer: Pad): void;
+
+    // Constructors
+
+    static ["new"](name: string | null, direction: PadDirection): Pad;
+    static new_from_static_template(templ: StaticPadTemplate, name: string): Pad;
+    static new_from_template(templ: PadTemplate, name?: string | null): Pad;
+
+    // Members
+
+    activate_mode(mode: PadMode, active: boolean): boolean;
+    add_probe(mask: PadProbeType, callback: PadProbeCallback): number;
+    can_link(sinkpad: Pad): boolean;
+    chain(buffer: Buffer): FlowReturn;
+    chain_list(list: BufferList): FlowReturn;
+    check_reconfigure(): boolean;
+    create_stream_id(parent: Element, stream_id?: string | null): string;
+    event_default(parent: Object | null, event: Event): boolean;
+    forward(forward: PadForwardFunction): boolean;
+    get_allowed_caps(): Caps | null;
+    get_current_caps(): Caps | null;
+    get_direction(): PadDirection;
+    get_element_private(): any | null;
+    get_last_flow_return(): FlowReturn;
+    get_offset(): number;
+    get_pad_template(): PadTemplate | null;
+    get_pad_template_caps(): Caps;
+    get_parent_element(): Element | null;
+    get_peer(): Pad | null;
+    get_range(offset: number, size: number): [FlowReturn, Buffer];
+    get_single_internal_link(): Pad | null;
+    get_sticky_event(event_type: EventType, idx: number): Event | null;
+    get_stream(): Stream | null;
+    get_stream_id(): string | null;
+    get_task_state(): TaskState;
+    has_current_caps(): boolean;
+    is_active(): boolean;
+    is_blocked(): boolean;
+    is_blocking(): boolean;
+    is_linked(): boolean;
+    iterate_internal_links(): Iterator | null;
+    iterate_internal_links_default(parent?: Object | null): Iterator | null;
+    link(sinkpad: Pad): PadLinkReturn;
+    link_full(sinkpad: Pad, flags: PadLinkCheck): PadLinkReturn;
+    link_maybe_ghosting(sink: Pad): boolean;
+    link_maybe_ghosting_full(sink: Pad, flags: PadLinkCheck): boolean;
+    mark_reconfigure(): void;
+    needs_reconfigure(): boolean;
+    pause_task(): boolean;
+    peer_query(query: Query): boolean;
+    peer_query_accept_caps(caps: Caps): boolean;
+    peer_query_caps(filter?: Caps | null): Caps;
+    peer_query_convert(src_format: Format, src_val: number, dest_format: Format): [boolean, number];
+    peer_query_duration(format: Format): [boolean, number];
+    peer_query_position(format: Format): [boolean, number];
+    proxy_query_accept_caps(query: Query): boolean;
+    proxy_query_caps(query: Query): boolean;
+    pull_range(offset: number, size: number): [FlowReturn, Buffer];
+    push(buffer: Buffer): FlowReturn;
+    push_event(event: Event): boolean;
+    push_list(list: BufferList): FlowReturn;
+    query(query: Query): boolean;
+    query_accept_caps(caps: Caps): boolean;
+    query_caps(filter?: Caps | null): Caps;
+    query_convert(src_format: Format, src_val: number, dest_format: Format): [boolean, number];
+    query_default(parent: Object | null, query: Query): boolean;
+    query_duration(format: Format): [boolean, number];
+    query_position(format: Format): [boolean, number];
+    remove_probe(id: number): void;
+    send_event(event: Event): boolean;
+    set_activate_function_full(activate: PadActivateFunction): void;
+    set_activatemode_function_full(activatemode: PadActivateModeFunction): void;
+    set_active(active: boolean): boolean;
+    set_chain_function_full(chain: PadChainFunction): void;
+    set_chain_list_function_full(chainlist: PadChainListFunction): void;
+    set_element_private(priv?: any | null): void;
+    set_event_full_function_full(event: PadEventFullFunction): void;
+    set_event_function_full(event: PadEventFunction): void;
+    set_getrange_function_full(get: PadGetRangeFunction): void;
+    set_iterate_internal_links_function_full(iterintlink: PadIterIntLinkFunction): void;
+    set_link_function_full(link: PadLinkFunction): void;
+    set_offset(offset: number): void;
+    set_query_function_full(query: PadQueryFunction): void;
+    set_unlink_function_full(unlink: PadUnlinkFunction): void;
+    start_task(func: TaskFunction): boolean;
+    sticky_events_foreach(foreach_func: PadStickyEventsForeachFunction): void;
+    stop_task(): boolean;
+    store_sticky_event(event: Event): FlowReturn;
+    unlink(sinkpad: Pad): boolean;
+    use_fixed_caps(): void;
+    vfunc_linked(peer: Pad): void;
+    vfunc_unlinked(peer: Pad): void;
+    static link_get_name(ret: PadLinkReturn): string;
+}
+export module PadTemplate {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        caps: Caps;
+        direction: PadDirection;
+        gtype: GObject.GType;
+        name_template: string;
+        nameTemplate: string;
+        presence: PadPresence;
+    }
+}
+export class PadTemplate extends Object {
+    static $gtype: GObject.GType<PadTemplate>;
+
+    constructor(properties?: Partial<PadTemplate.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PadTemplate.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get caps(): Caps;
+    get direction(): PadDirection;
+    get gtype(): GObject.GType;
+    get name_template(): string;
+    get nameTemplate(): string;
+    get presence(): PadPresence;
+
+    // Fields
+    object: Object;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "pad-created", callback: (_source: this, pad: Pad) => void): number;
+    connect_after(signal: "pad-created", callback: (_source: this, pad: Pad) => void): number;
+    emit(signal: "pad-created", pad: Pad): void;
+
+    // Constructors
+
+    static ["new"](name_template: string, direction: PadDirection, presence: PadPresence, caps: Caps): 
PadTemplate;
+    static new_from_static_pad_template_with_gtype(
+        pad_template: StaticPadTemplate,
+        pad_type: GObject.GType
+    ): PadTemplate;
+    static new_with_gtype(
+        name_template: string,
+        direction: PadDirection,
+        presence: PadPresence,
+        caps: Caps,
+        pad_type: GObject.GType
+    ): PadTemplate;
+
+    // Members
+
+    get_caps(): Caps;
+    get_documentation_caps(): Caps;
+    pad_created(pad: Pad): void;
+    set_documentation_caps(caps: Caps): void;
+    vfunc_pad_created(pad: Pad): void;
+}
+
+export module Pipeline {
+    export interface ConstructorProperties extends Bin.ConstructorProperties {
+        [key: string]: any;
+        auto_flush_bus: boolean;
+        autoFlushBus: boolean;
+        delay: number;
+        latency: number;
+    }
+}
+export class Pipeline extends Bin implements ChildProxy {
+    static $gtype: GObject.GType<Pipeline>;
+
+    constructor(properties?: Partial<Pipeline.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Pipeline.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get auto_flush_bus(): boolean;
+    set auto_flush_bus(val: boolean);
+    get autoFlushBus(): boolean;
+    set autoFlushBus(val: boolean);
+    get delay(): number;
+    set delay(val: number);
+    get latency(): number;
+    set latency(val: number);
+
+    // Fields
+    bin: Bin;
+    fixed_clock: Clock;
+    stream_time: ClockTime;
+
+    // Constructors
+
+    static ["new"](name?: string | null): Pipeline;
+
+    // Members
+
+    auto_clock(): void;
+    get_auto_flush_bus(): boolean;
+    get_bus(): Bus;
+    // Conflicted with Gst.Element.get_bus
+    get_bus(...args: never[]): any;
+    get_delay(): ClockTime;
+    get_latency(): ClockTime;
+    get_pipeline_clock(): Clock;
+    set_auto_flush_bus(auto_flush: boolean): void;
+    set_delay(delay: ClockTime): void;
+    set_latency(latency: ClockTime): void;
+    use_clock(clock?: Clock | null): void;
+
+    // Implemented Members
+
+    child_added(child: GObject.Object, name: string): void;
+    child_removed(child: GObject.Object, name: string): void;
+    get_child_by_index<T = GObject.Object>(index: number): T;
+    get_child_by_name<T = GObject.Object>(name: string): T;
+    get_children_count(): number;
+    get_property(name: string): unknown;
+    // Conflicted with GObject.Object.get_property
+    get_property(...args: never[]): any;
+    lookup(name: string): [boolean, GObject.Object | null, GObject.ParamSpec | null];
+    set_property(name: string, value: GObject.Value | any): void;
+    // Conflicted with GObject.Object.set_property
+    set_property(...args: never[]): any;
+    vfunc_child_added(child: GObject.Object, name: string): void;
+    vfunc_child_removed(child: GObject.Object, name: string): void;
+    vfunc_get_child_by_index<T = GObject.Object>(index: number): T;
+    vfunc_get_child_by_name<T = GObject.Object>(name: string): T;
+    vfunc_get_children_count(): number;
+}
+export module Plugin {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Plugin extends Object {
+    static $gtype: GObject.GType<Plugin>;
+
+    constructor(properties?: Partial<Plugin.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Plugin.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    add_dependency(
+        env_vars: string[] | null,
+        paths: string[] | null,
+        names: string[] | null,
+        flags: PluginDependencyFlags
+    ): void;
+    add_dependency_simple(
+        env_vars: string | null,
+        paths: string | null,
+        names: string | null,
+        flags: PluginDependencyFlags
+    ): void;
+    get_cache_data(): Structure | null;
+    get_description(): string;
+    get_filename(): string | null;
+    get_license(): string;
+    get_name(): string;
+    // Conflicted with Gst.Object.get_name
+    get_name(...args: never[]): any;
+    get_origin(): string;
+    get_package(): string;
+    get_release_date_string(): string | null;
+    get_source(): string;
+    get_version(): string;
+    is_loaded(): boolean;
+    load(): Plugin | null;
+    set_cache_data(cache_data: Structure): void;
+    static list_free(list: Plugin[]): void;
+    static load_by_name(name: string): Plugin | null;
+    static load_file(filename: string): Plugin;
+    static register_static(
+        major_version: number,
+        minor_version: number,
+        name: string,
+        description: string,
+        init_func: PluginInitFunc,
+        version: string,
+        license: string,
+        source: string,
+        _package: string,
+        origin: string
+    ): boolean;
+    static register_static_full(
+        major_version: number,
+        minor_version: number,
+        name: string,
+        description: string,
+        init_full_func: PluginInitFullFunc,
+        version: string,
+        license: string,
+        source: string,
+        _package: string,
+        origin: string
+    ): boolean;
+}
+export module PluginFeature {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class PluginFeature extends Object {
+    static $gtype: GObject.GType<PluginFeature>;
+
+    constructor(properties?: Partial<PluginFeature.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PluginFeature.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    check_version(min_major: number, min_minor: number, min_micro: number): boolean;
+    get_plugin(): Plugin | null;
+    get_plugin_name(): string | null;
+    get_rank(): number;
+    load(): PluginFeature | null;
+    set_rank(rank: number): void;
+    static list_copy(list: PluginFeature[]): PluginFeature[];
+    static list_debug(list: PluginFeature[]): void;
+    static list_free(list: PluginFeature[]): void;
+    static rank_compare_func(p1?: any | null, p2?: any | null): number;
+}
+export module ProxyPad {
+    export interface ConstructorProperties extends Pad.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ProxyPad extends Pad {
+    static $gtype: GObject.GType<ProxyPad>;
+
+    constructor(properties?: Partial<ProxyPad.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ProxyPad.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    pad: Pad;
+
+    // Members
+
+    get_internal(): ProxyPad | null;
+    static chain_default(pad: Pad, parent: Object | null, buffer: Buffer): FlowReturn;
+    static chain_list_default(pad: Pad, parent: Object | null, list: BufferList): FlowReturn;
+    static getrange_default(pad: Pad, parent: Object, offset: number, size: number): [FlowReturn, Buffer];
+    static iterate_internal_links_default(pad: Pad, parent?: Object | null): Iterator | null;
+}
+export module Registry {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Registry extends Object {
+    static $gtype: GObject.GType<Registry>;
+
+    constructor(properties?: Partial<Registry.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Registry.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Object;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "feature-added", callback: (_source: this, feature: PluginFeature) => void): number;
+    connect_after(signal: "feature-added", callback: (_source: this, feature: PluginFeature) => void): 
number;
+    emit(signal: "feature-added", feature: PluginFeature): void;
+    connect(signal: "plugin-added", callback: (_source: this, plugin: Plugin) => void): number;
+    connect_after(signal: "plugin-added", callback: (_source: this, plugin: Plugin) => void): number;
+    emit(signal: "plugin-added", plugin: Plugin): void;
+
+    // Members
+
+    add_feature(feature: PluginFeature): boolean;
+    add_plugin(plugin: Plugin): boolean;
+    check_feature_version(feature_name: string, min_major: number, min_minor: number, min_micro: number): 
boolean;
+    feature_filter(filter: PluginFeatureFilter, first: boolean): PluginFeature[];
+    find_feature(name: string, type: GObject.GType): PluginFeature | null;
+    find_plugin(name: string): Plugin | null;
+    get_feature_list(type: GObject.GType): PluginFeature[];
+    get_feature_list_by_plugin(name: string): PluginFeature[];
+    get_feature_list_cookie(): number;
+    get_plugin_list(): Plugin[];
+    lookup(filename: string): Plugin | null;
+    lookup_feature(name: string): PluginFeature | null;
+    plugin_filter(filter: PluginFilter, first: boolean): Plugin[];
+    remove_feature(feature: PluginFeature): void;
+    remove_plugin(plugin: Plugin): void;
+    scan_path(path: string): boolean;
+    static fork_is_enabled(): boolean;
+    static fork_set_enabled(enabled: boolean): void;
+    static get(): Registry;
+}
+export module SharedTaskPool {
+    export interface ConstructorProperties extends TaskPool.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class SharedTaskPool extends TaskPool {
+    static $gtype: GObject.GType<SharedTaskPool>;
+
+    constructor(properties?: Partial<SharedTaskPool.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SharedTaskPool.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): SharedTaskPool;
+
+    // Members
+
+    get_max_threads(): number;
+    set_max_threads(max_threads: number): void;
+}
+export module Stream {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        caps: Caps;
+        stream_flags: StreamFlags;
+        streamFlags: StreamFlags;
+        stream_id: string;
+        streamId: string;
+        stream_type: StreamType;
+        streamType: StreamType;
+        tags: TagList;
+    }
+}
+export class Stream extends Object {
+    static $gtype: GObject.GType<Stream>;
+
+    constructor(properties?: Partial<Stream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Stream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get caps(): Caps;
+    set caps(val: Caps);
+    get stream_flags(): StreamFlags;
+    set stream_flags(val: StreamFlags);
+    get streamFlags(): StreamFlags;
+    set streamFlags(val: StreamFlags);
+    get stream_id(): string;
+    get streamId(): string;
+    get stream_type(): StreamType;
+    set stream_type(val: StreamType);
+    get streamType(): StreamType;
+    set streamType(val: StreamType);
+    get tags(): TagList;
+    set tags(val: TagList);
+
+    // Constructors
+
+    static ["new"](stream_id: string | null, caps: Caps | null, type: StreamType, flags: StreamFlags): 
Stream;
+
+    // Members
+
+    get_caps(): Caps | null;
+    get_stream_flags(): StreamFlags;
+    get_stream_id(): string | null;
+    get_stream_type(): StreamType;
+    get_tags(): TagList | null;
+    set_caps(caps?: Caps | null): void;
+    set_stream_flags(flags: StreamFlags): void;
+    set_stream_type(stream_type: StreamType): void;
+    set_tags(tags?: TagList | null): void;
+}
+export module StreamCollection {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        upstream_id: string;
+        upstreamId: string;
+    }
+}
+export class StreamCollection extends Object {
+    static $gtype: GObject.GType<StreamCollection>;
+
+    constructor(properties?: Partial<StreamCollection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StreamCollection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get upstream_id(): string;
+    set upstream_id(val: string);
+    get upstreamId(): string;
+    set upstreamId(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "stream-notify", callback: (_source: this, object: Stream, p0: GObject.ParamSpec) => 
void): number;
+    connect_after(
+        signal: "stream-notify",
+        callback: (_source: this, object: Stream, p0: GObject.ParamSpec) => void
+    ): number;
+    emit(signal: "stream-notify", object: Stream, p0: GObject.ParamSpec): void;
+
+    // Constructors
+
+    static ["new"](upstream_id?: string | null): StreamCollection;
+
+    // Members
+
+    add_stream(stream: Stream): boolean;
+    get_size(): number;
+    get_stream(index: number): Stream | null;
+    get_upstream_id(): string | null;
+    vfunc_stream_notify(stream: Stream, pspec: GObject.ParamSpec): void;
+}
+export module SystemClock {
+    export interface ConstructorProperties extends Clock.ConstructorProperties {
+        [key: string]: any;
+        clock_type: ClockType;
+        clockType: ClockType;
+    }
+}
+export class SystemClock extends Clock {
+    static $gtype: GObject.GType<SystemClock>;
+
+    constructor(properties?: Partial<SystemClock.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SystemClock.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get clock_type(): ClockType;
+    set clock_type(val: ClockType);
+    get clockType(): ClockType;
+    set clockType(val: ClockType);
+
+    // Fields
+    clock: Clock;
+
+    // Members
+
+    static obtain(): Clock;
+    static set_default(new_clock?: Clock | null): void;
+}
+export module Task {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Task extends Object {
+    static $gtype: GObject.GType<Task>;
+
+    constructor(properties?: Partial<Task.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Task.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Object;
+    state: TaskState;
+    cond: GLib.Cond;
+    lock: GLib.RecMutex | any;
+    func: TaskFunction;
+    user_data: any;
+    notify: GLib.DestroyNotify | any;
+    running: boolean;
+
+    // Constructors
+
+    static ["new"](func: TaskFunction): Task;
+
+    // Members
+
+    get_pool(): TaskPool;
+    get_state(): TaskState;
+    join(): boolean;
+    pause(): boolean;
+    resume(): boolean;
+    set_enter_callback(enter_func: TaskThreadFunc): void;
+    set_leave_callback(leave_func: TaskThreadFunc): void;
+    set_lock(mutex: GLib.RecMutex): void;
+    set_pool(pool: TaskPool): void;
+    set_state(state: TaskState): boolean;
+    start(): boolean;
+    stop(): boolean;
+    static cleanup_all(): void;
+}
+export module TaskPool {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TaskPool extends Object {
+    static $gtype: GObject.GType<TaskPool>;
+
+    constructor(properties?: Partial<TaskPool.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TaskPool.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Object;
+
+    // Constructors
+
+    static ["new"](): TaskPool;
+
+    // Members
+
+    cleanup(): void;
+    dispose_handle(id?: any | null): void;
+    join(id?: any | null): void;
+    prepare(): void;
+    push(func: TaskPoolFunction): any | null;
+    vfunc_cleanup(): void;
+    vfunc_dispose_handle(id?: any | null): void;
+    vfunc_join(id?: any | null): void;
+    vfunc_prepare(): void;
+    vfunc_push(func: TaskPoolFunction): any | null;
+}
+export module Tracer {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+        params: string;
+    }
+}
+export abstract class Tracer extends Object {
+    static $gtype: GObject.GType<Tracer>;
+
+    constructor(properties?: Partial<Tracer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Tracer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get params(): string;
+    set params(val: string);
+
+    // Members
+
+    static register(plugin: Plugin | null, name: string, type: GObject.GType): boolean;
+}
+export module TracerFactory {
+    export interface ConstructorProperties extends PluginFeature.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TracerFactory extends PluginFeature {
+    static $gtype: GObject.GType<TracerFactory>;
+
+    constructor(properties?: Partial<TracerFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TracerFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_tracer_type(): GObject.GType;
+    static get_list(): TracerFactory[];
+}
+export module TracerRecord {
+    export interface ConstructorProperties extends Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TracerRecord extends Object {
+    static $gtype: GObject.GType<TracerRecord>;
+
+    constructor(properties?: Partial<TracerRecord.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TracerRecord.ConstructorProperties>, ...args: any[]): void;
+}
+export module TypeFindFactory {
+    export interface ConstructorProperties extends PluginFeature.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TypeFindFactory extends PluginFeature {
+    static $gtype: GObject.GType<TypeFindFactory>;
+
+    constructor(properties?: Partial<TypeFindFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TypeFindFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    call_function(find: TypeFind): void;
+    get_caps(): Caps | null;
+    get_extensions(): string[] | null;
+    has_function(): boolean;
+    static get_list(): TypeFindFactory[];
+}
+export module ValueArray {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ValueArray {
+    static $gtype: GObject.GType<ValueArray>;
+
+    constructor(properties?: Partial<ValueArray.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ValueArray.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static append_and_take_value(value: GObject.Value | any, append_value: GObject.Value | any): void;
+    static append_value(value: GObject.Value | any, append_value: GObject.Value | any): void;
+    static get_size(value: GObject.Value | any): number;
+    static get_value(value: GObject.Value | any, index: number): unknown;
+    static init(value: GObject.Value | any, prealloc: number): unknown;
+    static prepend_value(value: GObject.Value | any, prepend_value: GObject.Value | any): void;
+}
+export module ValueList {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ValueList {
+    static $gtype: GObject.GType<ValueList>;
+
+    constructor(properties?: Partial<ValueList.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ValueList.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static append_and_take_value(value: GObject.Value | any, append_value: GObject.Value | any): void;
+    static append_value(value: GObject.Value | any, append_value: GObject.Value | any): void;
+    static concat(value1: GObject.Value | any, value2: GObject.Value | any): unknown;
+    static get_size(value: GObject.Value | any): number;
+    static get_value(value: GObject.Value | any, index: number): unknown;
+    static init(value: GObject.Value | any, prealloc: number): unknown;
+    static merge(value1: GObject.Value | any, value2: GObject.Value | any): unknown;
+    static prepend_value(value: GObject.Value | any, prepend_value: GObject.Value | any): void;
+}
+
+export class AllocationParams {
+    static $gtype: GObject.GType<AllocationParams>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            flags?: MemoryFlags;
+            align?: number;
+            prefix?: number;
+            padding?: number;
+        }>
+    );
+    constructor(copy: AllocationParams);
+
+    // Fields
+    flags: MemoryFlags;
+    align: number;
+    prefix: number;
+    padding: number;
+
+    // Constructors
+    static ["new"](): AllocationParams;
+
+    // Members
+    copy(): AllocationParams | null;
+    free(): void;
+    init(): void;
+}
+
+export class AllocatorPrivate {
+    static $gtype: GObject.GType<AllocatorPrivate>;
+
+    constructor(copy: AllocatorPrivate);
+}
+
+export class AtomicQueue {
+    static $gtype: GObject.GType<AtomicQueue>;
+
+    constructor(initial_size: number);
+    constructor(copy: AtomicQueue);
+
+    // Constructors
+    static ["new"](initial_size: number): AtomicQueue;
+
+    // Members
+    length(): number;
+    peek(): any | null;
+    pop(): any | null;
+    push(data?: any | null): void;
+    ref(): void;
+    unref(): void;
+}
+
+export class BinPrivate {
+    static $gtype: GObject.GType<BinPrivate>;
+
+    constructor(copy: BinPrivate);
+}
+
+export class Buffer {
+    static $gtype: GObject.GType<Buffer>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            mini_object?: MiniObject;
+            pool?: BufferPool;
+            pts?: ClockTime;
+            dts?: ClockTime;
+            duration?: ClockTime;
+            offset?: number;
+            offset_end?: number;
+        }>
+    );
+    constructor(copy: Buffer);
+
+    // Fields
+    mini_object: MiniObject;
+    pool: BufferPool;
+    pts: ClockTime;
+    dts: ClockTime;
+    duration: ClockTime;
+    offset: number;
+    offset_end: number;
+
+    // Constructors
+    static ["new"](): Buffer;
+    static new_allocate(allocator: Allocator | null, size: number, params?: AllocationParams | null): Buffer;
+    static new_memdup(data: Uint8Array | string): Buffer;
+    static new_wrapped(data: Uint8Array | string): Buffer;
+    static new_wrapped_bytes(bytes: GLib.Bytes | Uint8Array): Buffer;
+    static new_wrapped_full(
+        flags: MemoryFlags,
+        data: Uint8Array | string,
+        maxsize: number,
+        offset: number,
+        notify?: GLib.DestroyNotify | null
+    ): Buffer;
+
+    // Members
+    add_custom_meta(name: string): CustomMeta | null;
+    add_meta(info: MetaInfo, params?: any | null): Meta | null;
+    add_parent_buffer_meta(ref: Buffer): ParentBufferMeta | null;
+    add_protection_meta(info: Structure): ProtectionMeta;
+    add_reference_timestamp_meta(
+        reference: Caps,
+        timestamp: ClockTime,
+        duration: ClockTime
+    ): ReferenceTimestampMeta | null;
+    append(buf2: Buffer): Buffer;
+    append_memory(mem: Memory): void;
+    append_region(buf2: Buffer, offset: number, size: number): Buffer;
+    copy_deep(): Buffer;
+    copy_into(src: Buffer, flags: BufferCopyFlags, offset: number, size: number): boolean;
+    copy_region(flags: BufferCopyFlags, offset: number, size: number): Buffer;
+    extract(offset: number): [number, Uint8Array];
+    extract_dup(offset: number, size: number): Uint8Array;
+    fill(offset: number, src: Uint8Array | string): number;
+    find_memory(offset: number, size: number): [boolean, number, number, number];
+    foreach_meta(func: BufferForeachMetaFunc): boolean;
+    get_all_memory(): Memory | null;
+    get_custom_meta(name: string): CustomMeta | null;
+    get_flags(): BufferFlags;
+    get_memory(idx: number): Memory | null;
+    get_memory_range(idx: number, length: number): Memory | null;
+    get_meta(api: GObject.GType): Meta | null;
+    get_n_meta(api_type: GObject.GType): number;
+    get_reference_timestamp_meta(reference?: Caps | null): ReferenceTimestampMeta | null;
+    get_size(): number;
+    get_sizes(): [number, number, number];
+    get_sizes_range(idx: number, length: number): [number, number, number];
+    has_flags(flags: BufferFlags): boolean;
+    insert_memory(idx: number, mem: Memory): void;
+    is_all_memory_writable(): boolean;
+    is_memory_range_writable(idx: number, length: number): boolean;
+    map(flags: MapFlags): [boolean, MapInfo];
+    map_range(idx: number, length: number, flags: MapFlags): [boolean, MapInfo];
+    memcmp(offset: number, mem: Uint8Array | string): number;
+    memset(offset: number, val: number, size: number): number;
+    n_memory(): number;
+    peek_memory(idx: number): Memory | null;
+    prepend_memory(mem: Memory): void;
+    remove_all_memory(): void;
+    remove_memory(idx: number): void;
+    remove_memory_range(idx: number, length: number): void;
+    remove_meta(meta: Meta): boolean;
+    replace_all_memory(mem: Memory): void;
+    replace_memory(idx: number, mem: Memory): void;
+    replace_memory_range(idx: number, length: number, mem: Memory): void;
+    resize(offset: number, size: number): void;
+    resize_range(idx: number, length: number, offset: number, size: number): boolean;
+    set_flags(flags: BufferFlags): boolean;
+    set_size(size: number): void;
+    unmap(info: MapInfo): void;
+    unset_flags(flags: BufferFlags): boolean;
+    static get_max_memory(): number;
+}
+
+export class BufferList {
+    static $gtype: GObject.GType<BufferList>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: BufferList);
+
+    // Constructors
+    static ["new"](): BufferList;
+    static new_sized(size: number): BufferList;
+
+    // Members
+    calculate_size(): number;
+    copy_deep(): BufferList;
+    foreach(func: BufferListFunc): boolean;
+    get(idx: number): Buffer | null;
+    get_writable(idx: number): Buffer | null;
+    insert(idx: number, buffer: Buffer): void;
+    length(): number;
+    remove(idx: number, length: number): void;
+}
+
+export class BufferPoolAcquireParams {
+    static $gtype: GObject.GType<BufferPoolAcquireParams>;
+
+    constructor(copy: BufferPoolAcquireParams);
+
+    // Fields
+    format: Format;
+    start: number;
+    stop: number;
+    flags: BufferPoolAcquireFlags;
+}
+
+export class BufferPoolPrivate {
+    static $gtype: GObject.GType<BufferPoolPrivate>;
+
+    constructor(copy: BufferPoolPrivate);
+}
+
+export class BusPrivate {
+    static $gtype: GObject.GType<BusPrivate>;
+
+    constructor(copy: BusPrivate);
+}
+
+export class Caps {
+    static $gtype: GObject.GType<Caps>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            mini_object?: MiniObject;
+        }>
+    );
+    constructor(copy: Caps);
+
+    // Fields
+    mini_object: MiniObject;
+
+    // Constructors
+    static new_any(): Caps;
+    static new_empty(): Caps;
+    static new_empty_simple(media_type: string): Caps;
+
+    // Members
+    append(caps2: Caps): void;
+    append_structure(structure: Structure): void;
+    append_structure_full(structure: Structure, features?: CapsFeatures | null): void;
+    can_intersect(caps2: Caps): boolean;
+    copy(): Caps;
+    copy_nth(nth: number): Caps;
+    filter_and_map_in_place(func: CapsFilterMapFunc): void;
+    fixate(): Caps;
+    foreach(func: CapsForeachFunc): boolean;
+    get_features(index: number): CapsFeatures | null;
+    get_size(): number;
+    get_structure(index: number): Structure;
+    intersect(caps2: Caps): Caps;
+    intersect_full(caps2: Caps, mode: CapsIntersectMode): Caps;
+    is_always_compatible(caps2: Caps): boolean;
+    is_any(): boolean;
+    is_empty(): boolean;
+    is_equal(caps2: Caps): boolean;
+    is_equal_fixed(caps2: Caps): boolean;
+    is_fixed(): boolean;
+    is_strictly_equal(caps2: Caps): boolean;
+    is_subset(superset: Caps): boolean;
+    is_subset_structure(structure: Structure): boolean;
+    is_subset_structure_full(structure: Structure, features?: CapsFeatures | null): boolean;
+    map_in_place(func: CapsMapFunc): boolean;
+    merge(caps2: Caps): Caps;
+    merge_structure(structure: Structure): Caps;
+    merge_structure_full(structure: Structure, features?: CapsFeatures | null): Caps;
+    normalize(): Caps;
+    remove_structure(idx: number): void;
+    serialize(flags: SerializeFlags): string;
+    set_features(index: number, features?: CapsFeatures | null): void;
+    set_features_simple(features?: CapsFeatures | null): void;
+    set_value(field: string, value: GObject.Value | any): void;
+    simplify(): Caps;
+    steal_structure(index: number): Structure | null;
+    subtract(subtrahend: Caps): Caps;
+    to_string(): string;
+    truncate(): Caps;
+    static from_string(string: string): Caps | null;
+}
+
+export class CapsFeatures {
+    static $gtype: GObject.GType<CapsFeatures>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: CapsFeatures);
+
+    // Constructors
+    static new_any(): CapsFeatures;
+    static new_empty(): CapsFeatures;
+    static new_single(feature: string): CapsFeatures;
+
+    // Members
+    add(feature: string): void;
+    add_id(feature: GLib.Quark): void;
+    contains(feature: string): boolean;
+    contains_id(feature: GLib.Quark): boolean;
+    copy(): CapsFeatures;
+    free(): void;
+    get_nth(i: number): string | null;
+    get_nth_id(i: number): GLib.Quark;
+    get_size(): number;
+    is_any(): boolean;
+    is_equal(features2: CapsFeatures): boolean;
+    remove(feature: string): void;
+    remove_id(feature: GLib.Quark): void;
+    set_parent_refcount(refcount: number): boolean;
+    to_string(): string;
+    static from_string(features: string): CapsFeatures | null;
+}
+
+export class ClockEntry {
+    static $gtype: GObject.GType<ClockEntry>;
+
+    constructor(
+        properties?: Partial<{
+            refcount?: number;
+        }>
+    );
+    constructor(copy: ClockEntry);
+
+    // Fields
+    refcount: number;
+}
+
+export class ClockPrivate {
+    static $gtype: GObject.GType<ClockPrivate>;
+
+    constructor(copy: ClockPrivate);
+}
+
+export class Context {
+    static $gtype: GObject.GType<Context>;
+
+    constructor(context_type: string, persistent: boolean);
+    constructor(copy: Context);
+
+    // Constructors
+    static ["new"](context_type: string, persistent: boolean): Context;
+
+    // Members
+    get_context_type(): string;
+    get_structure(): Structure;
+    has_context_type(context_type: string): boolean;
+    is_persistent(): boolean;
+    writable_structure(): Structure;
+}
+
+export class ControlBindingPrivate {
+    static $gtype: GObject.GType<ControlBindingPrivate>;
+
+    constructor(copy: ControlBindingPrivate);
+}
+
+export class CustomMeta {
+    static $gtype: GObject.GType<CustomMeta>;
+
+    constructor(copy: CustomMeta);
+
+    // Fields
+    meta: Meta;
+
+    // Members
+    get_structure(): Structure;
+    has_name(name: string): boolean;
+}
+
+export class DateTime {
+    static $gtype: GObject.GType<DateTime>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: DateTime);
+
+    // Constructors
+    static ["new"](
+        tzoffset: number,
+        year: number,
+        month: number,
+        day: number,
+        hour: number,
+        minute: number,
+        seconds: number
+    ): DateTime;
+    static new_from_g_date_time(dt?: GLib.DateTime | null): DateTime;
+    static new_from_iso8601_string(string: string): DateTime;
+    static new_from_unix_epoch_local_time(secs: number): DateTime;
+    static new_from_unix_epoch_local_time_usecs(usecs: number): DateTime;
+    static new_from_unix_epoch_utc(secs: number): DateTime;
+    static new_from_unix_epoch_utc_usecs(usecs: number): DateTime;
+    static new_local_time(
+        year: number,
+        month: number,
+        day: number,
+        hour: number,
+        minute: number,
+        seconds: number
+    ): DateTime;
+    static new_now_local_time(): DateTime;
+    static new_now_utc(): DateTime;
+    static new_y(year: number): DateTime;
+    static new_ym(year: number, month: number): DateTime;
+    static new_ymd(year: number, month: number, day: number): DateTime;
+
+    // Members
+    get_day(): number;
+    get_hour(): number;
+    get_microsecond(): number;
+    get_minute(): number;
+    get_month(): number;
+    get_second(): number;
+    get_time_zone_offset(): number;
+    get_year(): number;
+    has_day(): boolean;
+    has_month(): boolean;
+    has_second(): boolean;
+    has_time(): boolean;
+    has_year(): boolean;
+    ref(): DateTime;
+    to_g_date_time(): GLib.DateTime | null;
+    to_iso8601_string(): string | null;
+    unref(): void;
+}
+
+export class DebugCategory {
+    static $gtype: GObject.GType<DebugCategory>;
+
+    constructor(copy: DebugCategory);
+
+    // Members
+    free(): void;
+    get_color(): number;
+    get_description(): string;
+    get_name(): string;
+    get_threshold(): DebugLevel;
+    reset_threshold(): void;
+    set_threshold(level: DebugLevel): void;
+}
+
+export class DebugMessage {
+    static $gtype: GObject.GType<DebugMessage>;
+
+    constructor(copy: DebugMessage);
+
+    // Members
+    get(): string | null;
+}
+
+export class DeviceMonitorPrivate {
+    static $gtype: GObject.GType<DeviceMonitorPrivate>;
+
+    constructor(copy: DeviceMonitorPrivate);
+}
+
+export class DevicePrivate {
+    static $gtype: GObject.GType<DevicePrivate>;
+
+    constructor(copy: DevicePrivate);
+}
+
+export class DeviceProviderPrivate {
+    static $gtype: GObject.GType<DeviceProviderPrivate>;
+
+    constructor(copy: DeviceProviderPrivate);
+}
+
+export class Event {
+    static $gtype: GObject.GType<Event>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            mini_object?: MiniObject;
+            type?: EventType;
+            timestamp?: number;
+            seqnum?: number;
+        }>
+    );
+    constructor(copy: Event);
+
+    // Fields
+    mini_object: MiniObject;
+    type: EventType;
+    timestamp: number;
+    seqnum: number;
+
+    // Constructors
+    static new_buffer_size(format: Format, minsize: number, maxsize: number, async: boolean): Event;
+    static new_caps(caps: Caps): Event;
+    static new_custom(type: EventType, structure: Structure): Event;
+    static new_eos(): Event;
+    static new_flush_start(): Event;
+    static new_flush_stop(reset_time: boolean): Event;
+    static new_gap(timestamp: ClockTime, duration: ClockTime): Event;
+    static new_instant_rate_change(rate_multiplier: number, new_flags: SegmentFlags): Event;
+    static new_instant_rate_sync_time(
+        rate_multiplier: number,
+        running_time: ClockTime,
+        upstream_running_time: ClockTime
+    ): Event;
+    static new_latency(latency: ClockTime): Event;
+    static new_navigation(structure: Structure): Event;
+    static new_protection(system_id: string, data: Buffer, origin: string): Event;
+    static new_qos(type: QOSType, proportion: number, diff: ClockTimeDiff, timestamp: ClockTime): Event;
+    static new_reconfigure(): Event;
+    static new_seek(
+        rate: number,
+        format: Format,
+        flags: SeekFlags,
+        start_type: SeekType,
+        start: number,
+        stop_type: SeekType,
+        stop: number
+    ): Event;
+    static new_segment(segment: Segment): Event;
+    static new_segment_done(format: Format, position: number): Event;
+    static new_select_streams(streams: string[]): Event;
+    static new_sink_message(name: string, msg: Message): Event;
+    static new_step(format: Format, amount: number, rate: number, flush: boolean, intermediate: boolean): 
Event;
+    static new_stream_collection(collection: StreamCollection): Event;
+    static new_stream_group_done(group_id: number): Event;
+    static new_stream_start(stream_id: string): Event;
+    static new_tag(taglist: TagList): Event;
+    static new_toc(toc: Toc, updated: boolean): Event;
+    static new_toc_select(uid: string): Event;
+
+    // Members
+    copy_segment(segment: Segment): void;
+    get_running_time_offset(): number;
+    get_seqnum(): number;
+    get_structure(): Structure | null;
+    has_name(name: string): boolean;
+    has_name_id(name: GLib.Quark): boolean;
+    parse_buffer_size(): [Format, number, number, boolean];
+    parse_caps(): Caps;
+    parse_flush_stop(): boolean;
+    parse_gap(): [ClockTime | null, ClockTime | null];
+    parse_gap_flags(): GapFlags;
+    parse_group_id(): [boolean, number];
+    parse_instant_rate_change(): [number, SegmentFlags | null];
+    parse_instant_rate_sync_time(): [number, ClockTime | null, ClockTime | null];
+    parse_latency(): ClockTime;
+    parse_protection(): [string, Buffer | null, string];
+    parse_qos(): [QOSType, number, ClockTimeDiff, ClockTime];
+    parse_seek(): [number, Format, SeekFlags, SeekType, number, SeekType, number];
+    parse_seek_trickmode_interval(): ClockTime;
+    parse_segment(): Segment;
+    parse_segment_done(): [Format | null, number];
+    parse_select_streams(): string[];
+    parse_sink_message(): Message;
+    parse_step(): [Format | null, number, number, boolean, boolean];
+    parse_stream(): Stream;
+    parse_stream_collection(): StreamCollection;
+    parse_stream_flags(): StreamFlags;
+    parse_stream_group_done(): number;
+    parse_stream_start(): string;
+    parse_tag(): TagList;
+    parse_toc(): [Toc, boolean];
+    parse_toc_select(): string;
+    set_gap_flags(flags: GapFlags): void;
+    set_group_id(group_id: number): void;
+    set_running_time_offset(offset: number): void;
+    set_seek_trickmode_interval(interval: ClockTime): void;
+    set_seqnum(seqnum: number): void;
+    set_stream(stream: Stream): void;
+    set_stream_flags(flags: StreamFlags): void;
+    writable_structure(): Structure;
+}
+
+export class FormatDefinition {
+    static $gtype: GObject.GType<FormatDefinition>;
+
+    constructor(copy: FormatDefinition);
+
+    // Fields
+    value: Format;
+    nick: string;
+    description: string;
+    quark: GLib.Quark;
+}
+
+export class GhostPadPrivate {
+    static $gtype: GObject.GType<GhostPadPrivate>;
+
+    constructor(copy: GhostPadPrivate);
+}
+
+export class Iterator {
+    static $gtype: GObject.GType<Iterator>;
+
+    constructor(type: GObject.GType, object: GObject.Value | any);
+    constructor(copy: Iterator);
+
+    // Fields
+    item: IteratorItemFunction;
+    pushed: Iterator;
+    type: GObject.GType;
+    lock: GLib.Mutex;
+    cookie: number;
+    master_cookie: number;
+    size: number;
+
+    // Constructors
+    static new_single(type: GObject.GType, object: GObject.Value | any): Iterator;
+
+    // Members
+    copy(): Iterator;
+    filter(func: GLib.CompareFunc, user_data: GObject.Value | any): Iterator;
+    find_custom(func: GLib.CompareFunc): [boolean, unknown];
+    fold(func: IteratorFoldFunction, ret: GObject.Value | any): IteratorResult;
+    foreach(func: IteratorForeachFunction): IteratorResult;
+    free(): void;
+    next(): [IteratorResult, unknown];
+    push(other: Iterator): void;
+    resync(): void;
+}
+
+export class MapInfo {
+    static $gtype: GObject.GType<MapInfo>;
+
+    constructor(copy: MapInfo);
+
+    // Fields
+    memory: Memory;
+    flags: MapFlags;
+    data: Uint8Array;
+    size: number;
+    maxsize: number;
+    user_data: any[];
+}
+
+export class Memory {
+    static $gtype: GObject.GType<Memory>;
+
+    constructor(
+        flags: MemoryFlags,
+        data: Uint8Array | string,
+        maxsize: number,
+        offset: number,
+        notify?: GLib.DestroyNotify | null
+    );
+    constructor(copy: Memory);
+
+    // Fields
+    mini_object: MiniObject;
+    allocator: Allocator;
+    parent: Memory;
+    maxsize: number;
+    align: number;
+    offset: number;
+    size: number;
+
+    // Constructors
+    static new_wrapped(
+        flags: MemoryFlags,
+        data: Uint8Array | string,
+        maxsize: number,
+        offset: number,
+        notify?: GLib.DestroyNotify | null
+    ): Memory;
+
+    // Members
+    copy(offset: number, size: number): Memory;
+    get_sizes(): [number, number, number];
+    is_span(mem2: Memory): [boolean, number];
+    is_type(mem_type: string): boolean;
+    make_mapped(flags: MapFlags): [Memory | null, MapInfo];
+    map(flags: MapFlags): [boolean, MapInfo];
+    resize(offset: number, size: number): void;
+    share(offset: number, size: number): Memory;
+    unmap(info: MapInfo): void;
+}
+
+export class Message {
+    static $gtype: GObject.GType<Message>;
+
+    constructor(src: Object | null, structure: Structure);
+    constructor(copy: Message);
+
+    // Fields
+    mini_object: MiniObject;
+    type: MessageType;
+    timestamp: number;
+    src: Object;
+    seqnum: number;
+
+    // Constructors
+    static new_application(src: Object | null, structure: Structure): Message;
+    static new_async_done(src: Object | null, running_time: ClockTime): Message;
+    static new_async_start(src?: Object | null): Message;
+    static new_buffering(src: Object | null, percent: number): Message;
+    static new_clock_lost(src: Object | null, clock: Clock): Message;
+    static new_clock_provide(src: Object | null, clock: Clock, ready: boolean): Message;
+    static new_custom(type: MessageType, src?: Object | null, structure?: Structure | null): Message;
+    static new_device_added(src: Object, device: Device): Message;
+    static new_device_changed(src: Object, device: Device, changed_device: Device): Message;
+    static new_device_removed(src: Object, device: Device): Message;
+    static new_duration_changed(src?: Object | null): Message;
+    static new_element(src: Object | null, structure: Structure): Message;
+    static new_eos(src?: Object | null): Message;
+    static new_error(src: Object | null, error: GLib.Error, debug: string): Message;
+    static new_error_with_details(
+        src: Object | null,
+        error: GLib.Error,
+        debug: string,
+        details?: Structure | null
+    ): Message;
+    static new_have_context(src: Object | null, context: Context): Message;
+    static new_info(src: Object | null, error: GLib.Error, debug: string): Message;
+    static new_info_with_details(
+        src: Object | null,
+        error: GLib.Error,
+        debug: string,
+        details?: Structure | null
+    ): Message;
+    static new_instant_rate_request(src: Object, rate_multiplier: number): Message;
+    static new_latency(src?: Object | null): Message;
+    static new_need_context(src: Object | null, context_type: string): Message;
+    static new_new_clock(src: Object | null, clock: Clock): Message;
+    static new_progress(src: Object, type: ProgressType, code: string, text: string): Message;
+    static new_property_notify(src: Object, property_name: string, val?: GObject.Value | null): Message;
+    static new_qos(
+        src: Object,
+        live: boolean,
+        running_time: number,
+        stream_time: number,
+        timestamp: number,
+        duration: number
+    ): Message;
+    static new_redirect(
+        src: Object,
+        location: string,
+        tag_list?: TagList | null,
+        entry_struct?: Structure | null
+    ): Message;
+    static new_request_state(src: Object | null, state: State): Message;
+    static new_reset_time(src: Object | null, running_time: ClockTime): Message;
+    static new_segment_done(src: Object | null, format: Format, position: number): Message;
+    static new_segment_start(src: Object | null, format: Format, position: number): Message;
+    static new_state_changed(src: Object | null, oldstate: State, newstate: State, pending: State): Message;
+    static new_state_dirty(src?: Object | null): Message;
+    static new_step_done(
+        src: Object,
+        format: Format,
+        amount: number,
+        rate: number,
+        flush: boolean,
+        intermediate: boolean,
+        duration: number,
+        eos: boolean
+    ): Message;
+    static new_step_start(
+        src: Object,
+        active: boolean,
+        format: Format,
+        amount: number,
+        rate: number,
+        flush: boolean,
+        intermediate: boolean
+    ): Message;
+    static new_stream_collection(src: Object, collection: StreamCollection): Message;
+    static new_stream_start(src?: Object | null): Message;
+    static new_stream_status(src: Object, type: StreamStatusType, owner: Element): Message;
+    static new_streams_selected(src: Object, collection: StreamCollection): Message;
+    static new_structure_change(src: Object | null, type: StructureChangeType, owner: Element, busy: 
boolean): Message;
+    static new_tag(src: Object | null, tag_list: TagList): Message;
+    static new_toc(src: Object, toc: Toc, updated: boolean): Message;
+    static new_warning(src: Object | null, error: GLib.Error, debug: string): Message;
+    static new_warning_with_details(
+        src: Object | null,
+        error: GLib.Error,
+        debug: string,
+        details?: Structure | null
+    ): Message;
+
+    // Members
+    add_redirect_entry(location: string, tag_list?: TagList | null, entry_struct?: Structure | null): void;
+    get_num_redirect_entries(): number;
+    get_seqnum(): number;
+    get_stream_status_object(): GObject.Value | null;
+    get_structure(): Structure | null;
+    has_name(name: string): boolean;
+    parse_async_done(): ClockTime | null;
+    parse_buffering(): number;
+    parse_buffering_stats(): [BufferingMode | null, number, number, number];
+    parse_clock_lost(): Clock | null;
+    parse_clock_provide(): [Clock | null, boolean];
+    parse_context_type(): [boolean, string];
+    parse_device_added(): Device | null;
+    parse_device_changed(): [Device | null, Device | null];
+    parse_device_removed(): Device | null;
+    parse_error(): [GLib.Error | null, string];
+    parse_error_details(): Structure;
+    parse_group_id(): [boolean, number];
+    parse_have_context(): Context | null;
+    parse_info(): [GLib.Error | null, string];
+    parse_info_details(): Structure;
+    parse_instant_rate_request(): number;
+    parse_new_clock(): Clock | null;
+    parse_progress(): [ProgressType | null, string, string];
+    parse_property_notify(): [Object | null, string, GObject.Value | null];
+    parse_qos(): [boolean, number, number, number, number];
+    parse_qos_stats(): [Format | null, number, number];
+    parse_qos_values(): [number, number, number];
+    parse_redirect_entry(entry_index: number): [string, TagList | null, Structure | null];
+    parse_request_state(): State | null;
+    parse_reset_time(): ClockTime | null;
+    parse_segment_done(): [Format | null, number];
+    parse_segment_start(): [Format | null, number];
+    parse_state_changed(): [State | null, State | null, State | null];
+    parse_step_done(): [Format | null, number, number, boolean, boolean, number, boolean];
+    parse_step_start(): [boolean, Format | null, number, number, boolean, boolean];
+    parse_stream_collection(): StreamCollection | null;
+    parse_stream_status(): [StreamStatusType, Element];
+    parse_streams_selected(): StreamCollection | null;
+    parse_structure_change(): [StructureChangeType, Element | null, boolean];
+    parse_tag(): TagList;
+    parse_toc(): [Toc, boolean];
+    parse_warning(): [GLib.Error | null, string];
+    parse_warning_details(): Structure;
+    set_buffering_stats(mode: BufferingMode, avg_in: number, avg_out: number, buffering_left: number): void;
+    set_group_id(group_id: number): void;
+    set_qos_stats(format: Format, processed: number, dropped: number): void;
+    set_qos_values(jitter: number, proportion: number, quality: number): void;
+    set_seqnum(seqnum: number): void;
+    set_stream_status_object(object: GObject.Value | any): void;
+    streams_selected_add(stream: Stream): void;
+    streams_selected_get_size(): number;
+    streams_selected_get_stream(idx: number): Stream | null;
+    writable_structure(): Structure;
+}
+
+export class Meta {
+    static $gtype: GObject.GType<Meta>;
+
+    constructor(copy: Meta);
+
+    // Fields
+    flags: MetaFlags;
+    info: MetaInfo;
+
+    // Members
+    compare_seqnum(meta2: Meta): number;
+    get_seqnum(): number;
+    static api_type_get_tags(api: GObject.GType): string[];
+    static api_type_has_tag(api: GObject.GType, tag: GLib.Quark): boolean;
+    static api_type_register(api: string, tags: string[]): GObject.GType;
+    static get_info(impl: string): MetaInfo | null;
+    static register(
+        api: GObject.GType,
+        impl: string,
+        size: number,
+        init_func: MetaInitFunction,
+        free_func: MetaFreeFunction,
+        transform_func: MetaTransformFunction
+    ): MetaInfo;
+    static register_custom(name: string, tags: string[], transform_func?: CustomMetaTransformFunction | 
null): MetaInfo;
+}
+
+export class MetaInfo {
+    static $gtype: GObject.GType<MetaInfo>;
+
+    constructor(copy: MetaInfo);
+
+    // Fields
+    api: GObject.GType;
+    type: GObject.GType;
+    size: number;
+    init_func: MetaInitFunction;
+    free_func: MetaFreeFunction;
+    transform_func: MetaTransformFunction;
+
+    // Members
+    is_custom(): boolean;
+}
+
+export class MetaTransformCopy {
+    static $gtype: GObject.GType<MetaTransformCopy>;
+
+    constructor(
+        properties?: Partial<{
+            region?: boolean;
+            offset?: number;
+            size?: number;
+        }>
+    );
+    constructor(copy: MetaTransformCopy);
+
+    // Fields
+    region: boolean;
+    offset: number;
+    size: number;
+}
+
+export class MiniObject {
+    static $gtype: GObject.GType<MiniObject>;
+
+    constructor(copy: MiniObject);
+
+    // Fields
+    type: GObject.GType;
+    refcount: number;
+    lockstate: number;
+    flags: number;
+    copy: MiniObjectCopyFunction;
+    dispose: MiniObjectDisposeFunction;
+    free: MiniObjectFreeFunction;
+
+    // Members
+    add_parent(parent: MiniObject): void;
+    get_qdata(quark: GLib.Quark): any | null;
+    is_writable(): boolean;
+    lock(flags: LockFlags): boolean;
+    remove_parent(parent: MiniObject): void;
+    set_qdata(quark: GLib.Quark, data?: any | null): void;
+    steal_qdata(quark: GLib.Quark): any | null;
+    unlock(flags: LockFlags): void;
+    static replace(olddata?: MiniObject | null, newdata?: MiniObject | null): [boolean, MiniObject | null];
+    static take(olddata: MiniObject, newdata: MiniObject): [boolean, MiniObject];
+}
+
+export class PadPrivate {
+    static $gtype: GObject.GType<PadPrivate>;
+
+    constructor(copy: PadPrivate);
+}
+
+export class PadProbeInfo {
+    static $gtype: GObject.GType<PadProbeInfo>;
+
+    constructor(copy: PadProbeInfo);
+
+    // Fields
+    type: PadProbeType;
+    id: number;
+    data: any;
+    offset: number;
+    size: number;
+
+    // Members
+    get_buffer(): Buffer | null;
+    get_buffer_list(): BufferList | null;
+    get_event(): Event | null;
+    get_query(): Query | null;
+}
+
+export class ParamSpecArray {
+    static $gtype: GObject.GType<ParamSpecArray>;
+
+    constructor(copy: ParamSpecArray);
+
+    // Fields
+    parent_instance: GObject.ParamSpec;
+    element_spec: GObject.ParamSpec;
+}
+
+export class ParamSpecFraction {
+    static $gtype: GObject.GType<ParamSpecFraction>;
+
+    constructor(copy: ParamSpecFraction);
+
+    // Fields
+    parent_instance: GObject.ParamSpec;
+    min_num: number;
+    min_den: number;
+    max_num: number;
+    max_den: number;
+    def_num: number;
+    def_den: number;
+}
+
+export class ParentBufferMeta {
+    static $gtype: GObject.GType<ParentBufferMeta>;
+
+    constructor(copy: ParentBufferMeta);
+
+    // Fields
+    parent: Meta;
+    buffer: Buffer;
+
+    // Members
+    static get_info(): MetaInfo;
+}
+
+export class ParseContext {
+    static $gtype: GObject.GType<ParseContext>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: ParseContext);
+
+    // Constructors
+    static ["new"](): ParseContext;
+
+    // Members
+    copy(): ParseContext | null;
+    free(): void;
+    get_missing_elements(): string[] | null;
+}
+
+export class PipelinePrivate {
+    static $gtype: GObject.GType<PipelinePrivate>;
+
+    constructor(copy: PipelinePrivate);
+}
+
+export class PluginDesc {
+    static $gtype: GObject.GType<PluginDesc>;
+
+    constructor(copy: PluginDesc);
+
+    // Fields
+    major_version: number;
+    minor_version: number;
+    name: string;
+    description: string;
+    plugin_init: PluginInitFunc;
+    version: string;
+    license: string;
+    source: string;
+    "package": string;
+    origin: string;
+    release_datetime: string;
+}
+
+export class Poll {
+    static $gtype: GObject.GType<Poll>;
+
+    constructor(copy: Poll);
+
+    // Members
+    add_fd(fd: PollFD): boolean;
+    fd_can_read(fd: PollFD): boolean;
+    fd_can_write(fd: PollFD): boolean;
+    fd_ctl_pri(fd: PollFD, active: boolean): boolean;
+    fd_ctl_read(fd: PollFD, active: boolean): boolean;
+    fd_ctl_write(fd: PollFD, active: boolean): boolean;
+    fd_has_closed(fd: PollFD): boolean;
+    fd_has_error(fd: PollFD): boolean;
+    fd_has_pri(fd: PollFD): boolean;
+    fd_ignored(fd: PollFD): void;
+    free(): void;
+    get_read_gpollfd(fd: GLib.PollFD): void;
+    read_control(): boolean;
+    remove_fd(fd: PollFD): boolean;
+    restart(): void;
+    set_controllable(controllable: boolean): boolean;
+    set_flushing(flushing: boolean): void;
+    wait(timeout: ClockTime): number;
+    write_control(): boolean;
+}
+
+export class PollFD {
+    static $gtype: GObject.GType<PollFD>;
+
+    constructor(
+        properties?: Partial<{
+            fd?: number;
+        }>
+    );
+    constructor(copy: PollFD);
+
+    // Fields
+    fd: number;
+
+    // Members
+    init(): void;
+}
+
+export class Promise {
+    static $gtype: GObject.GType<Promise>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            parent?: MiniObject;
+        }>
+    );
+    constructor(copy: Promise);
+
+    // Fields
+    parent: MiniObject;
+
+    // Constructors
+    static ["new"](): Promise;
+    static new_with_change_func(func: PromiseChangeFunc): Promise;
+
+    // Members
+    expire(): void;
+    get_reply(): Structure | null;
+    interrupt(): void;
+    reply(s?: Structure | null): void;
+    wait(): PromiseResult;
+}
+
+export class ProtectionMeta {
+    static $gtype: GObject.GType<ProtectionMeta>;
+
+    constructor(copy: ProtectionMeta);
+
+    // Fields
+    meta: Meta;
+    info: Structure;
+
+    // Members
+    static get_info(): MetaInfo;
+}
+
+export class ProxyPadPrivate {
+    static $gtype: GObject.GType<ProxyPadPrivate>;
+
+    constructor(copy: ProxyPadPrivate);
+}
+
+export class Query {
+    static $gtype: GObject.GType<Query>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            mini_object?: MiniObject;
+            type?: QueryType;
+        }>
+    );
+    constructor(copy: Query);
+
+    // Fields
+    mini_object: MiniObject;
+    type: QueryType;
+
+    // Constructors
+    static new_accept_caps(caps: Caps): Query;
+    static new_allocation(caps: Caps, need_pool: boolean): Query;
+    static new_bitrate(): Query;
+    static new_buffering(format: Format): Query;
+    static new_caps(filter: Caps): Query;
+    static new_context(context_type: string): Query;
+    static new_convert(src_format: Format, value: number, dest_format: Format): Query;
+    static new_custom(type: QueryType, structure?: Structure | null): Query;
+    static new_drain(): Query;
+    static new_duration(format: Format): Query;
+    static new_formats(): Query;
+    static new_latency(): Query;
+    static new_position(format: Format): Query;
+    static new_scheduling(): Query;
+    static new_seeking(format: Format): Query;
+    static new_segment(format: Format): Query;
+    static new_uri(): Query;
+
+    // Members
+    add_allocation_meta(api: GObject.GType, params?: Structure | null): void;
+    add_allocation_param(allocator?: Allocator | null, params?: AllocationParams | null): void;
+    add_allocation_pool(pool: BufferPool | null, size: number, min_buffers: number, max_buffers: number): 
void;
+    add_buffering_range(start: number, stop: number): boolean;
+    add_scheduling_mode(mode: PadMode): void;
+    find_allocation_meta(api: GObject.GType): [boolean, number];
+    get_n_allocation_metas(): number;
+    get_n_allocation_params(): number;
+    get_n_allocation_pools(): number;
+    get_n_buffering_ranges(): number;
+    get_n_scheduling_modes(): number;
+    get_structure(): Structure | null;
+    has_scheduling_mode(mode: PadMode): boolean;
+    has_scheduling_mode_with_flags(mode: PadMode, flags: SchedulingFlags): boolean;
+    parse_accept_caps(): Caps;
+    parse_accept_caps_result(): boolean;
+    parse_allocation(): [Caps | null, boolean];
+    parse_bitrate(): number;
+    parse_buffering_percent(): [boolean, number];
+    parse_buffering_range(): [Format | null, number, number, number];
+    parse_buffering_stats(): [BufferingMode | null, number, number, number];
+    parse_caps(): Caps;
+    parse_caps_result(): Caps;
+    parse_context(): Context;
+    parse_context_type(): [boolean, string];
+    parse_convert(): [Format | null, number, Format | null, number];
+    parse_duration(): [Format | null, number];
+    parse_latency(): [boolean, ClockTime | null, ClockTime | null];
+    parse_n_formats(): number;
+    parse_nth_allocation_meta(index: number): [GObject.GType, Structure | null];
+    parse_nth_allocation_param(index: number): [Allocator | null, AllocationParams | null];
+    parse_nth_allocation_pool(index: number): [BufferPool | null, number, number, number];
+    parse_nth_buffering_range(index: number): [boolean, number, number];
+    parse_nth_format(nth: number): Format | null;
+    parse_nth_scheduling_mode(index: number): PadMode;
+    parse_position(): [Format | null, number];
+    parse_scheduling(): [SchedulingFlags | null, number, number, number];
+    parse_seeking(): [Format | null, boolean, number, number];
+    parse_segment(): [number, Format | null, number, number];
+    parse_uri(): string;
+    parse_uri_redirection(): string;
+    parse_uri_redirection_permanent(): boolean;
+    remove_nth_allocation_meta(index: number): void;
+    remove_nth_allocation_param(index: number): void;
+    remove_nth_allocation_pool(index: number): void;
+    set_accept_caps_result(result: boolean): void;
+    set_bitrate(nominal_bitrate: number): void;
+    set_buffering_percent(busy: boolean, percent: number): void;
+    set_buffering_range(format: Format, start: number, stop: number, estimated_total: number): void;
+    set_buffering_stats(mode: BufferingMode, avg_in: number, avg_out: number, buffering_left: number): void;
+    set_caps_result(caps: Caps): void;
+    set_context(context: Context): void;
+    set_convert(src_format: Format, src_value: number, dest_format: Format, dest_value: number): void;
+    set_duration(format: Format, duration: number): void;
+    set_formatsv(formats: Format[]): void;
+    set_latency(live: boolean, min_latency: ClockTime, max_latency: ClockTime): void;
+    set_nth_allocation_param(index: number, allocator?: Allocator | null, params?: AllocationParams | null): 
void;
+    set_nth_allocation_pool(
+        index: number,
+        pool: BufferPool | null,
+        size: number,
+        min_buffers: number,
+        max_buffers: number
+    ): void;
+    set_position(format: Format, cur: number): void;
+    set_scheduling(flags: SchedulingFlags, minsize: number, maxsize: number, align: number): void;
+    set_seeking(format: Format, seekable: boolean, segment_start: number, segment_end: number): void;
+    set_segment(rate: number, format: Format, start_value: number, stop_value: number): void;
+    set_uri(uri: string): void;
+    set_uri_redirection(uri: string): void;
+    set_uri_redirection_permanent(permanent: boolean): void;
+    writable_structure(): Structure;
+}
+
+export class ReferenceTimestampMeta {
+    static $gtype: GObject.GType<ReferenceTimestampMeta>;
+
+    constructor(copy: ReferenceTimestampMeta);
+
+    // Fields
+    parent: Meta;
+    reference: Caps;
+    timestamp: ClockTime;
+    duration: ClockTime;
+
+    // Members
+    static get_info(): MetaInfo;
+}
+
+export class RegistryPrivate {
+    static $gtype: GObject.GType<RegistryPrivate>;
+
+    constructor(copy: RegistryPrivate);
+}
+
+export class Sample {
+    static $gtype: GObject.GType<Sample>;
+
+    constructor(buffer?: Buffer | null, caps?: Caps | null, segment?: Segment | null, info?: Structure | 
null);
+    constructor(copy: Sample);
+
+    // Constructors
+    static ["new"](
+        buffer?: Buffer | null,
+        caps?: Caps | null,
+        segment?: Segment | null,
+        info?: Structure | null
+    ): Sample;
+
+    // Members
+    get_buffer(): Buffer | null;
+    get_buffer_list(): BufferList | null;
+    get_caps(): Caps | null;
+    get_info(): Structure | null;
+    get_segment(): Segment;
+    set_buffer(buffer: Buffer): void;
+    set_buffer_list(buffer_list: BufferList): void;
+    set_caps(caps: Caps): void;
+    set_info(info: Structure): boolean;
+    set_segment(segment: Segment): void;
+}
+
+export class Segment {
+    static $gtype: GObject.GType<Segment>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            flags?: SegmentFlags;
+            rate?: number;
+            applied_rate?: number;
+            format?: Format;
+            base?: number;
+            offset?: number;
+            start?: number;
+            stop?: number;
+            time?: number;
+            position?: number;
+            duration?: number;
+        }>
+    );
+    constructor(copy: Segment);
+
+    // Fields
+    flags: SegmentFlags;
+    rate: number;
+    applied_rate: number;
+    format: Format;
+    base: number;
+    offset: number;
+    start: number;
+    stop: number;
+    time: number;
+    position: number;
+    duration: number;
+
+    // Constructors
+    static ["new"](): Segment;
+
+    // Members
+    clip(format: Format, start: number, stop: number): [boolean, number, number];
+    copy(): Segment;
+    copy_into(dest: Segment): void;
+    do_seek(
+        rate: number,
+        format: Format,
+        flags: SeekFlags,
+        start_type: SeekType,
+        start: number,
+        stop_type: SeekType,
+        stop: number
+    ): [boolean, boolean];
+    free(): void;
+    init(format: Format): void;
+    is_equal(s1: Segment): boolean;
+    offset_running_time(format: Format, offset: number): boolean;
+    position_from_running_time(format: Format, running_time: number): number;
+    position_from_running_time_full(format: Format, running_time: number): [number, number];
+    position_from_stream_time(format: Format, stream_time: number): number;
+    position_from_stream_time_full(format: Format, stream_time: number): [number, number];
+    set_running_time(format: Format, running_time: number): boolean;
+    to_position(format: Format, running_time: number): number;
+    to_running_time(format: Format, position: number): number;
+    to_running_time_full(format: Format, position: number): [number, number];
+    to_stream_time(format: Format, position: number): number;
+    to_stream_time_full(format: Format, position: number): [number, number];
+}
+
+export class SharedTaskPoolPrivate {
+    static $gtype: GObject.GType<SharedTaskPoolPrivate>;
+
+    constructor(copy: SharedTaskPoolPrivate);
+}
+
+export class StaticCaps {
+    static $gtype: GObject.GType<StaticCaps>;
+
+    constructor(copy: StaticCaps);
+
+    // Fields
+    caps: Caps;
+    string: string;
+
+    // Members
+    cleanup(): void;
+    get(): Caps | null;
+}
+
+export class StaticPadTemplate {
+    static $gtype: GObject.GType<StaticPadTemplate>;
+
+    constructor(copy: StaticPadTemplate);
+
+    // Fields
+    name_template: string;
+    direction: PadDirection;
+    presence: PadPresence;
+    static_caps: StaticCaps;
+
+    // Members
+    get(): PadTemplate | null;
+    get_caps(): Caps;
+}
+
+export class StreamCollectionPrivate {
+    static $gtype: GObject.GType<StreamCollectionPrivate>;
+
+    constructor(copy: StreamCollectionPrivate);
+}
+
+export class StreamPrivate {
+    static $gtype: GObject.GType<StreamPrivate>;
+
+    constructor(copy: StreamPrivate);
+}
+
+export class Structure {
+    static $gtype: GObject.GType<Structure>;
+
+    constructor(string: string);
+    constructor(copy: Structure);
+
+    // Fields
+    type: GObject.GType;
+
+    // Constructors
+    static from_string(string: string): Structure;
+    static new_empty(name: string): Structure;
+    static new_from_string(string: string): Structure;
+    static new_id_empty(quark: GLib.Quark): Structure;
+
+    // Members
+    can_intersect(struct2: Structure): boolean;
+    copy(): Structure;
+    filter_and_map_in_place(func: StructureFilterMapFunc): void;
+    fixate(): void;
+    fixate_field(field_name: string): boolean;
+    fixate_field_boolean(field_name: string, target: boolean): boolean;
+    fixate_field_nearest_double(field_name: string, target: number): boolean;
+    fixate_field_nearest_fraction(field_name: string, target_numerator: number, target_denominator: number): 
boolean;
+    fixate_field_nearest_int(field_name: string, target: number): boolean;
+    fixate_field_string(field_name: string, target: string): boolean;
+    foreach(func: StructureForeachFunc): boolean;
+    free(): void;
+    get_array(fieldname: string): [boolean, GObject.ValueArray];
+    get_boolean(fieldname: string): [boolean, boolean];
+    get_clock_time(fieldname: string): [boolean, ClockTime];
+    get_date(fieldname: string): [boolean, GLib.Date];
+    get_date_time(fieldname: string): [boolean, DateTime];
+    get_double(fieldname: string): [boolean, number];
+    get_enum(fieldname: string, enumtype: GObject.GType): [boolean, number];
+    get_field_type(fieldname: string): GObject.GType;
+    get_flagset(fieldname: string): [boolean, number, number];
+    get_fraction(fieldname: string): [boolean, number, number];
+    get_int(fieldname: string): [boolean, number];
+    get_int64(fieldname: string): [boolean, number];
+    get_list(fieldname: string): [boolean, GObject.ValueArray];
+    get_name(): string;
+    get_name_id(): GLib.Quark;
+    get_string(fieldname: string): string | null;
+    get_uint(fieldname: string): [boolean, number];
+    get_uint64(fieldname: string): [boolean, number];
+    get_value(fieldname: string): GObject.Value | null;
+    has_field(fieldname: string): boolean;
+    has_field_typed(fieldname: string, type: GObject.GType): boolean;
+    has_name(name: string): boolean;
+    id_get_value(field: GLib.Quark): GObject.Value | null;
+    id_has_field(field: GLib.Quark): boolean;
+    id_has_field_typed(field: GLib.Quark, type: GObject.GType): boolean;
+    id_set_value(field: GLib.Quark, value: GObject.Value | any): void;
+    id_take_value(field: GLib.Quark, value: GObject.Value | any): void;
+    intersect(struct2: Structure): Structure | null;
+    is_equal(structure2: Structure): boolean;
+    is_subset(superset: Structure): boolean;
+    map_in_place(func: StructureMapFunc): boolean;
+    n_fields(): number;
+    nth_field_name(index: number): string;
+    remove_all_fields(): void;
+    remove_field(fieldname: string): void;
+    serialize(flags: SerializeFlags): string;
+    set_array(fieldname: string, array: GObject.ValueArray): void;
+    set_list(fieldname: string, array: GObject.ValueArray): void;
+    set_name(name: string): void;
+    set_parent_refcount(refcount: number): boolean;
+    set_value(fieldname: string, value: GObject.Value | any): void;
+    take_value(fieldname: string, value: GObject.Value | any): void;
+    to_string(): string;
+    static take(oldstr_ptr?: Structure | null, newstr?: Structure | null): [boolean, Structure | null];
+}
+
+export class SystemClockPrivate {
+    static $gtype: GObject.GType<SystemClockPrivate>;
+
+    constructor(copy: SystemClockPrivate);
+}
+
+export class TagList {
+    static $gtype: GObject.GType<TagList>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            mini_object?: MiniObject;
+        }>
+    );
+    constructor(copy: TagList);
+
+    // Fields
+    mini_object: MiniObject;
+
+    // Constructors
+    static new_empty(): TagList;
+    static new_from_string(str: string): TagList;
+
+    // Members
+    add_value(mode: TagMergeMode, tag: string, value: GObject.Value | any): void;
+    copy(): TagList;
+    foreach(func: TagForeachFunc): void;
+    get_boolean(tag: string): [boolean, boolean];
+    get_boolean_index(tag: string, index: number): [boolean, boolean];
+    get_date(tag: string): [boolean, GLib.Date];
+    get_date_index(tag: string, index: number): [boolean, GLib.Date];
+    get_date_time(tag: string): [boolean, DateTime];
+    get_date_time_index(tag: string, index: number): [boolean, DateTime];
+    get_double(tag: string): [boolean, number];
+    get_double_index(tag: string, index: number): [boolean, number];
+    get_float(tag: string): [boolean, number];
+    get_float_index(tag: string, index: number): [boolean, number];
+    get_int(tag: string): [boolean, number];
+    get_int64(tag: string): [boolean, number];
+    get_int64_index(tag: string, index: number): [boolean, number];
+    get_int_index(tag: string, index: number): [boolean, number];
+    get_pointer(tag: string): [boolean, any];
+    get_pointer_index(tag: string, index: number): [boolean, any];
+    get_sample(tag: string): [boolean, Sample];
+    get_sample_index(tag: string, index: number): [boolean, Sample];
+    get_scope(): TagScope;
+    get_string(tag: string): [boolean, string];
+    get_string_index(tag: string, index: number): [boolean, string];
+    get_tag_size(tag: string): number;
+    get_uint(tag: string): [boolean, number];
+    get_uint64(tag: string): [boolean, number];
+    get_uint64_index(tag: string, index: number): [boolean, number];
+    get_uint_index(tag: string, index: number): [boolean, number];
+    get_value_index(tag: string, index: number): GObject.Value | null;
+    insert(from: TagList, mode: TagMergeMode): void;
+    is_empty(): boolean;
+    is_equal(list2: TagList): boolean;
+    merge(list2: TagList | null, mode: TagMergeMode): TagList | null;
+    n_tags(): number;
+    nth_tag_name(index: number): string;
+    peek_string_index(tag: string, index: number): [boolean, string];
+    remove_tag(tag: string): void;
+    set_scope(scope: TagScope): void;
+    to_string(): string | null;
+    static copy_value(list: TagList, tag: string): [boolean, unknown];
+}
+
+export class TaskPrivate {
+    static $gtype: GObject.GType<TaskPrivate>;
+
+    constructor(copy: TaskPrivate);
+}
+
+export class TimedValue {
+    static $gtype: GObject.GType<TimedValue>;
+
+    constructor(copy: TimedValue);
+
+    // Fields
+    timestamp: ClockTime;
+    value: number;
+}
+
+export class Toc {
+    static $gtype: GObject.GType<Toc>;
+
+    constructor(scope: TocScope);
+    constructor(copy: Toc);
+
+    // Constructors
+    static ["new"](scope: TocScope): Toc;
+
+    // Members
+    append_entry(entry: TocEntry): void;
+    dump(): void;
+    find_entry(uid: string): TocEntry | null;
+    get_entries(): TocEntry[];
+    get_scope(): TocScope;
+    get_tags(): TagList;
+    merge_tags(tags: TagList | null, mode: TagMergeMode): void;
+    set_tags(tags?: TagList | null): void;
+}
+
+export class TocEntry {
+    static $gtype: GObject.GType<TocEntry>;
+
+    constructor(type: TocEntryType, uid: string);
+    constructor(copy: TocEntry);
+
+    // Constructors
+    static ["new"](type: TocEntryType, uid: string): TocEntry;
+
+    // Members
+    append_sub_entry(subentry: TocEntry): void;
+    get_entry_type(): TocEntryType;
+    get_loop(): [boolean, TocLoopType | null, number];
+    get_parent(): TocEntry | null;
+    get_start_stop_times(): [boolean, number, number];
+    get_sub_entries(): TocEntry[];
+    get_tags(): TagList;
+    get_toc(): Toc;
+    get_uid(): string;
+    is_alternative(): boolean;
+    is_sequence(): boolean;
+    merge_tags(tags: TagList | null, mode: TagMergeMode): void;
+    set_loop(loop_type: TocLoopType, repeat_count: number): void;
+    set_start_stop_times(start: number, stop: number): void;
+    set_tags(tags?: TagList | null): void;
+}
+
+export class TracerPrivate {
+    static $gtype: GObject.GType<TracerPrivate>;
+
+    constructor(copy: TracerPrivate);
+}
+
+export class TypeFind {
+    static $gtype: GObject.GType<TypeFind>;
+
+    constructor(
+        properties?: Partial<{
+            data?: any;
+        }>
+    );
+    constructor(copy: TypeFind);
+
+    // Fields
+    data: any;
+
+    // Members
+    get_length(): number;
+    peek(offset: number): Uint8Array | null;
+    suggest(probability: number, caps: Caps): void;
+    suggest_empty_simple(probability: number, media_type: string): void;
+    static register(
+        plugin: Plugin | null,
+        name: string,
+        rank: number,
+        func: TypeFindFunction,
+        extensions?: string | null,
+        possible_caps?: Caps | null
+    ): boolean;
+}
+
+export class Uri {
+    static $gtype: GObject.GType<Uri>;
+
+    constructor(
+        scheme: string | null,
+        userinfo: string | null,
+        host: string | null,
+        port: number,
+        path?: string | null,
+        query?: string | null,
+        fragment?: string | null
+    );
+    constructor(copy: Uri);
+
+    // Constructors
+    static ["new"](
+        scheme: string | null,
+        userinfo: string | null,
+        host: string | null,
+        port: number,
+        path?: string | null,
+        query?: string | null,
+        fragment?: string | null
+    ): Uri;
+
+    // Members
+    append_path(relative_path: string): boolean;
+    append_path_segment(path_segment: string): boolean;
+    equal(second: Uri): boolean;
+    from_string_with_base(uri: string): Uri;
+    get_fragment(): string | null;
+    get_host(): string | null;
+    get_media_fragment_table(): GLib.HashTable<string, string> | null;
+    get_path(): string | null;
+    get_path_segments(): string[];
+    get_path_string(): string | null;
+    get_port(): number;
+    get_query_keys(): string[];
+    get_query_string(): string | null;
+    get_query_table(): GLib.HashTable<string, string> | null;
+    get_query_value(query_key: string): string | null;
+    get_scheme(): string | null;
+    get_userinfo(): string | null;
+    is_normalized(): boolean;
+    is_writable(): boolean;
+    join(ref_uri?: Uri | null): Uri | null;
+    make_writable(): Uri;
+    new_with_base(
+        scheme: string | null,
+        userinfo: string | null,
+        host: string | null,
+        port: number,
+        path?: string | null,
+        query?: string | null,
+        fragment?: string | null
+    ): Uri;
+    normalize(): boolean;
+    query_has_key(query_key: string): boolean;
+    remove_query_key(query_key: string): boolean;
+    set_fragment(fragment?: string | null): boolean;
+    set_host(host: string): boolean;
+    set_path(path: string): boolean;
+    set_path_segments(path_segments?: string[] | null): boolean;
+    set_path_string(path: string): boolean;
+    set_port(port: number): boolean;
+    set_query_string(query: string): boolean;
+    set_query_table(query_table?: GLib.HashTable<string, string> | null): boolean;
+    set_query_value(query_key: string, query_value?: string | null): boolean;
+    set_scheme(scheme: string): boolean;
+    set_userinfo(userinfo: string): boolean;
+    to_string(): string;
+    static construct(protocol: string, location: string): string;
+    static from_string(uri: string): Uri | null;
+    static from_string_escaped(uri: string): Uri | null;
+    static get_location(uri: string): string | null;
+    static get_protocol(uri: string): string | null;
+    static has_protocol(uri: string, protocol: string): boolean;
+    static is_valid(uri: string): boolean;
+    static join_strings(base_uri: string, ref_uri: string): string;
+    static protocol_is_supported(type: URIType, protocol: string): boolean;
+    static protocol_is_valid(protocol: string): boolean;
+}
+
+export class ValueTable {
+    static $gtype: GObject.GType<ValueTable>;
+
+    constructor(copy: ValueTable);
+
+    // Fields
+    type: GObject.GType;
+    compare: ValueCompareFunc;
+    serialize: ValueSerializeFunc;
+    deserialize: ValueDeserializeFunc;
+    deserialize_with_pspec: ValueDeserializeWithPSpecFunc;
+}
+
+export interface ChildProxyNamespace {
+    $gtype: GObject.GType<ChildProxy>;
+    prototype: ChildProxyPrototype;
+}
+export type ChildProxy = ChildProxyPrototype;
+export interface ChildProxyPrototype extends GObject.Object {
+    // Members
+
+    child_added(child: GObject.Object, name: string): void;
+    child_removed(child: GObject.Object, name: string): void;
+    get_child_by_index<T = GObject.Object>(index: number): T;
+    get_child_by_name<T = GObject.Object>(name: string): T;
+    get_children_count(): number;
+    get_property(name: string): unknown;
+    // Conflicted with GObject.Object.get_property
+    get_property(...args: never[]): any;
+    lookup(name: string): [boolean, GObject.Object | null, GObject.ParamSpec | null];
+    set_property(name: string, value: GObject.Value | any): void;
+    // Conflicted with GObject.Object.set_property
+    set_property(...args: never[]): any;
+    vfunc_child_added(child: GObject.Object, name: string): void;
+    vfunc_child_removed(child: GObject.Object, name: string): void;
+    vfunc_get_child_by_index<T = GObject.Object>(index: number): T;
+    vfunc_get_child_by_name<T = GObject.Object>(name: string): T;
+    vfunc_get_children_count(): number;
+}
+
+export const ChildProxy: ChildProxyNamespace;
+
+export interface PresetNamespace {
+    $gtype: GObject.GType<Preset>;
+    prototype: PresetPrototype;
+
+    get_app_dir(): string | null;
+    set_app_dir(app_dir: string): boolean;
+}
+export type Preset = PresetPrototype;
+export interface PresetPrototype extends GObject.Object {
+    // Members
+
+    delete_preset(name: string): boolean;
+    get_meta(name: string, tag: string): [boolean, string];
+    get_preset_names(): string[];
+    get_property_names(): string[];
+    is_editable(): boolean;
+    load_preset(name: string): boolean;
+    rename_preset(old_name: string, new_name: string): boolean;
+    save_preset(name: string): boolean;
+    set_meta(name: string, tag: string, value?: string | null): boolean;
+    vfunc_delete_preset(name: string): boolean;
+    vfunc_get_meta(name: string, tag: string): [boolean, string];
+    vfunc_get_preset_names(): string[];
+    vfunc_get_property_names(): string[];
+    vfunc_load_preset(name: string): boolean;
+    vfunc_rename_preset(old_name: string, new_name: string): boolean;
+    vfunc_save_preset(name: string): boolean;
+    vfunc_set_meta(name: string, tag: string, value?: string | null): boolean;
+}
+
+export const Preset: PresetNamespace;
+
+export interface TagSetterNamespace {
+    $gtype: GObject.GType<TagSetter>;
+    prototype: TagSetterPrototype;
+}
+export type TagSetter = TagSetterPrototype;
+export interface TagSetterPrototype extends Element {
+    // Members
+
+    add_tag_value(mode: TagMergeMode, tag: string, value: GObject.Value | any): void;
+    get_tag_list(): TagList | null;
+    get_tag_merge_mode(): TagMergeMode;
+    merge_tags(list: TagList, mode: TagMergeMode): void;
+    reset_tags(): void;
+    set_tag_merge_mode(mode: TagMergeMode): void;
+}
+
+export const TagSetter: TagSetterNamespace;
+
+export interface TocSetterNamespace {
+    $gtype: GObject.GType<TocSetter>;
+    prototype: TocSetterPrototype;
+}
+export type TocSetter = TocSetterPrototype;
+export interface TocSetterPrototype extends Element {
+    // Members
+
+    get_toc(): Toc | null;
+    reset(): void;
+    set_toc(toc?: Toc | null): void;
+}
+
+export const TocSetter: TocSetterNamespace;
+
+export interface URIHandlerNamespace {
+    $gtype: GObject.GType<URIHandler>;
+    prototype: URIHandlerPrototype;
+}
+export type URIHandler = URIHandlerPrototype;
+export interface URIHandlerPrototype extends GObject.Object {
+    // Members
+
+    get_protocols(): string[] | null;
+    get_uri(): string | null;
+    get_uri_type(): URIType;
+    set_uri(uri: string): boolean;
+    vfunc_get_uri(): string | null;
+    vfunc_set_uri(uri: string): boolean;
+}
+
+export const URIHandler: URIHandlerNamespace;
+
+export type ClockID = any;
+export type ClockTime = number;
+export type ClockTimeDiff = number;
+export type ElementFactoryListType = number;
diff --git a/types/gstaudio.d.ts b/types/gstaudio.d.ts
new file mode 100644
index 0000000..c9e92ac
--- /dev/null
+++ b/types/gstaudio.d.ts
@@ -0,0 +1,1535 @@
+/**
+ * GstAudio 1.0
+ *
+ * Generated from 1.0
+ */
+
+import * as GObject from "gobject";
+import * as Gst from "gst";
+import * as GstBase from "gstbase";
+import * as GLib from "glib";
+
+export const AUDIO_CHANNELS_RANGE: string;
+export const AUDIO_CONVERTER_OPT_DITHER_METHOD: string;
+export const AUDIO_CONVERTER_OPT_MIX_MATRIX: string;
+export const AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD: string;
+export const AUDIO_CONVERTER_OPT_QUANTIZATION: string;
+export const AUDIO_CONVERTER_OPT_RESAMPLER_METHOD: string;
+export const AUDIO_DECODER_MAX_ERRORS: number;
+export const AUDIO_DECODER_SINK_NAME: string;
+export const AUDIO_DECODER_SRC_NAME: string;
+export const AUDIO_DEF_CHANNELS: number;
+export const AUDIO_DEF_FORMAT: string;
+export const AUDIO_DEF_RATE: number;
+export const AUDIO_ENCODER_SINK_NAME: string;
+export const AUDIO_ENCODER_SRC_NAME: string;
+export const AUDIO_FORMATS_ALL: string;
+export const AUDIO_RATE_RANGE: string;
+export const AUDIO_RESAMPLER_OPT_CUBIC_B: string;
+export const AUDIO_RESAMPLER_OPT_CUBIC_C: string;
+export const AUDIO_RESAMPLER_OPT_CUTOFF: string;
+export const AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION: string;
+export const AUDIO_RESAMPLER_OPT_FILTER_MODE: string;
+export const AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD: string;
+export const AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE: string;
+export const AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR: string;
+export const AUDIO_RESAMPLER_OPT_N_TAPS: string;
+export const AUDIO_RESAMPLER_OPT_STOP_ATTENUATION: string;
+export const AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH: string;
+export const AUDIO_RESAMPLER_QUALITY_DEFAULT: number;
+export const AUDIO_RESAMPLER_QUALITY_MAX: number;
+export const AUDIO_RESAMPLER_QUALITY_MIN: number;
+export const META_TAG_AUDIO_CHANNELS_STR: string;
+export const META_TAG_AUDIO_RATE_STR: string;
+export const META_TAG_AUDIO_STR: string;
+export function audio_buffer_clip(buffer: Gst.Buffer, segment: Gst.Segment, rate: number, bpf: number): 
Gst.Buffer;
+export function audio_buffer_map(info: AudioInfo, gstbuffer: Gst.Buffer, flags: Gst.MapFlags): [boolean, 
AudioBuffer];
+export function audio_buffer_reorder_channels(
+    buffer: Gst.Buffer,
+    format: AudioFormat,
+    from: AudioChannelPosition[],
+    to: AudioChannelPosition[]
+): boolean;
+export function audio_buffer_truncate(buffer: Gst.Buffer, bpf: number, trim: number, samples: number): 
Gst.Buffer;
+export function audio_channel_get_fallback_mask(channels: number): number;
+export function audio_channel_positions_from_mask(channel_mask: number, position: AudioChannelPosition[]): 
boolean;
+export function audio_channel_positions_to_mask(
+    position: AudioChannelPosition[],
+    force_order: boolean
+): [boolean, number];
+export function audio_channel_positions_to_string(position: AudioChannelPosition[]): string;
+export function audio_channel_positions_to_valid_order(position: AudioChannelPosition[]): boolean;
+export function audio_check_valid_channel_positions(position: AudioChannelPosition[], force_order: boolean): 
boolean;
+export function audio_clipping_meta_api_get_type(): GObject.GType;
+export function audio_clipping_meta_get_info(): Gst.MetaInfo;
+export function audio_downmix_meta_api_get_type(): GObject.GType;
+export function audio_downmix_meta_get_info(): Gst.MetaInfo;
+export function audio_format_build_integer(
+    sign: boolean,
+    endianness: number,
+    width: number,
+    depth: number
+): AudioFormat;
+export function audio_format_fill_silence(info: AudioFormatInfo, dest: Uint8Array | string): void;
+export function audio_format_from_string(format: string): AudioFormat;
+export function audio_format_get_info(format: AudioFormat): AudioFormatInfo;
+export function audio_format_info_get_type(): GObject.GType;
+export function audio_format_to_string(format: AudioFormat): string;
+export function audio_formats_raw(): AudioFormat[];
+export function audio_get_channel_reorder_map(
+    from: AudioChannelPosition[],
+    to: AudioChannelPosition[],
+    reorder_map: number[]
+): boolean;
+export function audio_iec61937_frame_size(spec: AudioRingBufferSpec): number;
+export function audio_iec61937_payload(
+    src: Uint8Array | string,
+    dst: Uint8Array | string,
+    spec: AudioRingBufferSpec,
+    endianness: number
+): boolean;
+export function audio_info_from_caps(caps: Gst.Caps): [boolean, AudioInfo];
+export function audio_info_init(): AudioInfo;
+export function audio_level_meta_api_get_type(): GObject.GType;
+export function audio_level_meta_get_info(): Gst.MetaInfo;
+export function audio_make_raw_caps(formats: AudioFormat[] | null, layout: AudioLayout): Gst.Caps;
+export function audio_meta_api_get_type(): GObject.GType;
+export function audio_meta_get_info(): Gst.MetaInfo;
+export function audio_reorder_channels(
+    data: Uint8Array | string,
+    format: AudioFormat,
+    from: AudioChannelPosition[],
+    to: AudioChannelPosition[]
+): boolean;
+export function audio_resampler_new(
+    method: AudioResamplerMethod,
+    flags: AudioResamplerFlags,
+    format: AudioFormat,
+    channels: number,
+    in_rate: number,
+    out_rate: number,
+    options: Gst.Structure
+): AudioResampler;
+export function audio_resampler_options_set_quality(
+    method: AudioResamplerMethod,
+    quality: number,
+    in_rate: number,
+    out_rate: number,
+    options: Gst.Structure
+): void;
+export function buffer_add_audio_clipping_meta(
+    buffer: Gst.Buffer,
+    format: Gst.Format,
+    start: number,
+    end: number
+): AudioClippingMeta;
+export function buffer_add_audio_downmix_meta(
+    buffer: Gst.Buffer,
+    from_position: AudioChannelPosition[],
+    to_position: AudioChannelPosition[],
+    matrix: number
+): AudioDownmixMeta;
+export function buffer_add_audio_level_meta(
+    buffer: Gst.Buffer,
+    level: number,
+    voice_activity: boolean
+): AudioLevelMeta | null;
+export function buffer_add_audio_meta(
+    buffer: Gst.Buffer,
+    info: AudioInfo,
+    samples: number,
+    offsets?: number | null
+): AudioMeta;
+export function buffer_get_audio_downmix_meta_for_channels(
+    buffer: Gst.Buffer,
+    to_position: AudioChannelPosition[]
+): AudioDownmixMeta;
+export function buffer_get_audio_level_meta(buffer: Gst.Buffer): AudioLevelMeta | null;
+export function stream_volume_convert_volume(from: StreamVolumeFormat, to: StreamVolumeFormat, val: number): 
number;
+export type AudioBaseSinkCustomSlavingCallback = (
+    sink: AudioBaseSink,
+    etime: Gst.ClockTime,
+    itime: Gst.ClockTime,
+    requested_skew: Gst.ClockTimeDiff,
+    discont_reason: AudioBaseSinkDiscontReason
+) => void;
+export type AudioClockGetTimeFunc = (clock: Gst.Clock) => Gst.ClockTime;
+export type AudioFormatPack = (
+    info: AudioFormatInfo,
+    flags: AudioPackFlags,
+    src: Uint8Array | string,
+    data: Uint8Array | string,
+    length: number
+) => void;
+export type AudioFormatUnpack = (
+    info: AudioFormatInfo,
+    flags: AudioPackFlags,
+    dest: Uint8Array | string,
+    data: Uint8Array | string,
+    length: number
+) => void;
+export type AudioRingBufferCallback = (rbuf: AudioRingBuffer, data: Uint8Array | string) => void;
+
+export namespace AudioBaseSinkDiscontReason {
+    export const $gtype: GObject.GType<AudioBaseSinkDiscontReason>;
+}
+
+export enum AudioBaseSinkDiscontReason {
+    NO_DISCONT = 0,
+    NEW_CAPS = 1,
+    FLUSH = 2,
+    SYNC_LATENCY = 3,
+    ALIGNMENT = 4,
+    DEVICE_FAILURE = 5,
+}
+
+export namespace AudioBaseSinkSlaveMethod {
+    export const $gtype: GObject.GType<AudioBaseSinkSlaveMethod>;
+}
+
+export enum AudioBaseSinkSlaveMethod {
+    RESAMPLE = 0,
+    SKEW = 1,
+    NONE = 2,
+    CUSTOM = 3,
+}
+
+export namespace AudioBaseSrcSlaveMethod {
+    export const $gtype: GObject.GType<AudioBaseSrcSlaveMethod>;
+}
+
+export enum AudioBaseSrcSlaveMethod {
+    RESAMPLE = 0,
+    RE_TIMESTAMP = 1,
+    SKEW = 2,
+    NONE = 3,
+}
+
+export namespace AudioCdSrcMode {
+    export const $gtype: GObject.GType<AudioCdSrcMode>;
+}
+
+export enum AudioCdSrcMode {
+    NORMAL = 0,
+    CONTINUOUS = 1,
+}
+
+export namespace AudioChannelPosition {
+    export const $gtype: GObject.GType<AudioChannelPosition>;
+}
+
+export enum AudioChannelPosition {
+    NONE = -3,
+    MONO = -2,
+    INVALID = -1,
+    FRONT_LEFT = 0,
+    FRONT_RIGHT = 1,
+    FRONT_CENTER = 2,
+    LFE1 = 3,
+    REAR_LEFT = 4,
+    REAR_RIGHT = 5,
+    FRONT_LEFT_OF_CENTER = 6,
+    FRONT_RIGHT_OF_CENTER = 7,
+    REAR_CENTER = 8,
+    LFE2 = 9,
+    SIDE_LEFT = 10,
+    SIDE_RIGHT = 11,
+    TOP_FRONT_LEFT = 12,
+    TOP_FRONT_RIGHT = 13,
+    TOP_FRONT_CENTER = 14,
+    TOP_CENTER = 15,
+    TOP_REAR_LEFT = 16,
+    TOP_REAR_RIGHT = 17,
+    TOP_SIDE_LEFT = 18,
+    TOP_SIDE_RIGHT = 19,
+    TOP_REAR_CENTER = 20,
+    BOTTOM_FRONT_CENTER = 21,
+    BOTTOM_FRONT_LEFT = 22,
+    BOTTOM_FRONT_RIGHT = 23,
+    WIDE_LEFT = 24,
+    WIDE_RIGHT = 25,
+    SURROUND_LEFT = 26,
+    SURROUND_RIGHT = 27,
+}
+
+export namespace AudioDitherMethod {
+    export const $gtype: GObject.GType<AudioDitherMethod>;
+}
+
+export enum AudioDitherMethod {
+    NONE = 0,
+    RPDF = 1,
+    TPDF = 2,
+    TPDF_HF = 3,
+}
+
+export namespace AudioFormat {
+    export const $gtype: GObject.GType<AudioFormat>;
+}
+
+export enum AudioFormat {
+    UNKNOWN = 0,
+    ENCODED = 1,
+    S8 = 2,
+    U8 = 3,
+    S16LE = 4,
+    S16BE = 5,
+    U16LE = 6,
+    U16BE = 7,
+    S24_32LE = 8,
+    S24_32BE = 9,
+    U24_32LE = 10,
+    U24_32BE = 11,
+    S32LE = 12,
+    S32BE = 13,
+    U32LE = 14,
+    U32BE = 15,
+    S24LE = 16,
+    S24BE = 17,
+    U24LE = 18,
+    U24BE = 19,
+    S20LE = 20,
+    S20BE = 21,
+    U20LE = 22,
+    U20BE = 23,
+    S18LE = 24,
+    S18BE = 25,
+    U18LE = 26,
+    U18BE = 27,
+    F32LE = 28,
+    F32BE = 29,
+    F64LE = 30,
+    F64BE = 31,
+    S16 = 4,
+    U16 = 6,
+    S24_32 = 8,
+    U24_32 = 10,
+    S32 = 12,
+    U32 = 14,
+    S24 = 16,
+    U24 = 18,
+    S20 = 20,
+    U20 = 22,
+    S18 = 24,
+    U18 = 26,
+    F32 = 28,
+    F64 = 30,
+}
+
+export namespace AudioLayout {
+    export const $gtype: GObject.GType<AudioLayout>;
+}
+
+export enum AudioLayout {
+    INTERLEAVED = 0,
+    NON_INTERLEAVED = 1,
+}
+
+export namespace AudioNoiseShapingMethod {
+    export const $gtype: GObject.GType<AudioNoiseShapingMethod>;
+}
+
+export enum AudioNoiseShapingMethod {
+    NONE = 0,
+    ERROR_FEEDBACK = 1,
+    SIMPLE = 2,
+    MEDIUM = 3,
+    HIGH = 4,
+}
+
+export namespace AudioResamplerFilterInterpolation {
+    export const $gtype: GObject.GType<AudioResamplerFilterInterpolation>;
+}
+
+export enum AudioResamplerFilterInterpolation {
+    NONE = 0,
+    LINEAR = 1,
+    CUBIC = 2,
+}
+
+export namespace AudioResamplerFilterMode {
+    export const $gtype: GObject.GType<AudioResamplerFilterMode>;
+}
+
+export enum AudioResamplerFilterMode {
+    INTERPOLATED = 0,
+    FULL = 1,
+    AUTO = 2,
+}
+
+export namespace AudioResamplerMethod {
+    export const $gtype: GObject.GType<AudioResamplerMethod>;
+}
+
+export enum AudioResamplerMethod {
+    NEAREST = 0,
+    LINEAR = 1,
+    CUBIC = 2,
+    BLACKMAN_NUTTALL = 3,
+    KAISER = 4,
+}
+
+export namespace AudioRingBufferFormatType {
+    export const $gtype: GObject.GType<AudioRingBufferFormatType>;
+}
+
+export enum AudioRingBufferFormatType {
+    RAW = 0,
+    MU_LAW = 1,
+    A_LAW = 2,
+    IMA_ADPCM = 3,
+    MPEG = 4,
+    GSM = 5,
+    IEC958 = 6,
+    AC3 = 7,
+    EAC3 = 8,
+    DTS = 9,
+    MPEG2_AAC = 10,
+    MPEG4_AAC = 11,
+    MPEG2_AAC_RAW = 12,
+    MPEG4_AAC_RAW = 13,
+    FLAC = 14,
+}
+
+export namespace AudioRingBufferState {
+    export const $gtype: GObject.GType<AudioRingBufferState>;
+}
+
+export enum AudioRingBufferState {
+    STOPPED = 0,
+    PAUSED = 1,
+    STARTED = 2,
+    ERROR = 3,
+}
+
+export namespace StreamVolumeFormat {
+    export const $gtype: GObject.GType<StreamVolumeFormat>;
+}
+
+export enum StreamVolumeFormat {
+    LINEAR = 0,
+    CUBIC = 1,
+    DB = 2,
+}
+
+export namespace AudioChannelMixerFlags {
+    export const $gtype: GObject.GType<AudioChannelMixerFlags>;
+}
+
+export enum AudioChannelMixerFlags {
+    NONE = 0,
+    NON_INTERLEAVED_IN = 1,
+    NON_INTERLEAVED_OUT = 2,
+    UNPOSITIONED_IN = 4,
+    UNPOSITIONED_OUT = 8,
+}
+
+export namespace AudioConverterFlags {
+    export const $gtype: GObject.GType<AudioConverterFlags>;
+}
+
+export enum AudioConverterFlags {
+    NONE = 0,
+    IN_WRITABLE = 1,
+    VARIABLE_RATE = 2,
+}
+
+export namespace AudioFlags {
+    export const $gtype: GObject.GType<AudioFlags>;
+}
+
+export enum AudioFlags {
+    NONE = 0,
+    UNPOSITIONED = 1,
+}
+
+export namespace AudioFormatFlags {
+    export const $gtype: GObject.GType<AudioFormatFlags>;
+}
+
+export enum AudioFormatFlags {
+    INTEGER = 1,
+    FLOAT = 2,
+    SIGNED = 4,
+    COMPLEX = 16,
+    UNPACK = 32,
+}
+
+export namespace AudioPackFlags {
+    export const $gtype: GObject.GType<AudioPackFlags>;
+}
+
+export enum AudioPackFlags {
+    NONE = 0,
+    TRUNCATE_RANGE = 1,
+}
+
+export namespace AudioQuantizeFlags {
+    export const $gtype: GObject.GType<AudioQuantizeFlags>;
+}
+
+export enum AudioQuantizeFlags {
+    NONE = 0,
+    NON_INTERLEAVED = 1,
+}
+
+export namespace AudioResamplerFlags {
+    export const $gtype: GObject.GType<AudioResamplerFlags>;
+}
+
+export enum AudioResamplerFlags {
+    NONE = 0,
+    NON_INTERLEAVED_IN = 1,
+    NON_INTERLEAVED_OUT = 2,
+    VARIABLE_RATE = 4,
+}
+export module AudioAggregator {
+    export interface ConstructorProperties extends GstBase.Aggregator.ConstructorProperties {
+        [key: string]: any;
+        alignment_threshold: number;
+        alignmentThreshold: number;
+        discont_wait: number;
+        discontWait: number;
+        ignore_inactive_pads: boolean;
+        ignoreInactivePads: boolean;
+        output_buffer_duration: number;
+        outputBufferDuration: number;
+        output_buffer_duration_fraction: Gst.Fraction;
+        outputBufferDurationFraction: Gst.Fraction;
+    }
+}
+export abstract class AudioAggregator extends GstBase.Aggregator {
+    static $gtype: GObject.GType<AudioAggregator>;
+
+    constructor(properties?: Partial<AudioAggregator.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioAggregator.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get alignment_threshold(): number;
+    set alignment_threshold(val: number);
+    get alignmentThreshold(): number;
+    set alignmentThreshold(val: number);
+    get discont_wait(): number;
+    set discont_wait(val: number);
+    get discontWait(): number;
+    set discontWait(val: number);
+    get ignore_inactive_pads(): boolean;
+    set ignore_inactive_pads(val: boolean);
+    get ignoreInactivePads(): boolean;
+    set ignoreInactivePads(val: boolean);
+    get output_buffer_duration(): number;
+    set output_buffer_duration(val: number);
+    get outputBufferDuration(): number;
+    set outputBufferDuration(val: number);
+    get output_buffer_duration_fraction(): Gst.Fraction;
+    set output_buffer_duration_fraction(val: Gst.Fraction);
+    get outputBufferDurationFraction(): Gst.Fraction;
+    set outputBufferDurationFraction(val: Gst.Fraction);
+
+    // Fields
+    current_caps: Gst.Caps;
+
+    // Members
+
+    set_sink_caps(pad: AudioAggregatorPad, caps: Gst.Caps): void;
+    vfunc_aggregate_one_buffer(
+        pad: AudioAggregatorPad,
+        inbuf: Gst.Buffer,
+        in_offset: number,
+        outbuf: Gst.Buffer,
+        out_offset: number,
+        num_frames: number
+    ): boolean;
+    vfunc_create_output_buffer(num_frames: number): Gst.Buffer;
+}
+export module AudioAggregatorConvertPad {
+    export interface ConstructorProperties extends AudioAggregatorPad.ConstructorProperties {
+        [key: string]: any;
+        converter_config: Gst.Structure;
+        converterConfig: Gst.Structure;
+    }
+}
+export class AudioAggregatorConvertPad extends AudioAggregatorPad {
+    static $gtype: GObject.GType<AudioAggregatorConvertPad>;
+
+    constructor(properties?: Partial<AudioAggregatorConvertPad.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioAggregatorConvertPad.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get converter_config(): Gst.Structure;
+    set converter_config(val: Gst.Structure);
+    get converterConfig(): Gst.Structure;
+    set converterConfig(val: Gst.Structure);
+}
+export module AudioAggregatorPad {
+    export interface ConstructorProperties extends GstBase.AggregatorPad.ConstructorProperties {
+        [key: string]: any;
+        qos_messages: boolean;
+        qosMessages: boolean;
+    }
+}
+export class AudioAggregatorPad extends GstBase.AggregatorPad {
+    static $gtype: GObject.GType<AudioAggregatorPad>;
+
+    constructor(properties?: Partial<AudioAggregatorPad.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioAggregatorPad.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get qos_messages(): boolean;
+    set qos_messages(val: boolean);
+    get qosMessages(): boolean;
+    set qosMessages(val: boolean);
+
+    // Fields
+    info: AudioInfo;
+
+    // Members
+
+    vfunc_convert_buffer(in_info: AudioInfo, out_info: AudioInfo, buffer: Gst.Buffer): Gst.Buffer;
+    vfunc_update_conversion_info(): void;
+}
+export module AudioBaseSink {
+    export interface ConstructorProperties extends GstBase.BaseSink.ConstructorProperties {
+        [key: string]: any;
+        alignment_threshold: number;
+        alignmentThreshold: number;
+        buffer_time: number;
+        bufferTime: number;
+        can_activate_pull: boolean | any;
+        canActivatePull: boolean;
+        discont_wait: number;
+        discontWait: number;
+        drift_tolerance: number;
+        driftTolerance: number;
+        latency_time: number;
+        latencyTime: number;
+        provide_clock: boolean | any;
+        provideClock: boolean;
+        slave_method: AudioBaseSinkSlaveMethod;
+        slaveMethod: AudioBaseSinkSlaveMethod;
+    }
+}
+export class AudioBaseSink extends GstBase.BaseSink {
+    static $gtype: GObject.GType<AudioBaseSink>;
+
+    constructor(properties?: Partial<AudioBaseSink.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioBaseSink.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get alignment_threshold(): number;
+    set alignment_threshold(val: number);
+    get alignmentThreshold(): number;
+    set alignmentThreshold(val: number);
+    get buffer_time(): number;
+    set buffer_time(val: number);
+    get bufferTime(): number;
+    set bufferTime(val: number);
+    // This accessor conflicts with a property, field, or function name in a parent class or interface.
+    // @ts-expect-error
+    get can_activate_pull(): boolean;
+    set can_activate_pull(val: boolean);
+    get canActivatePull(): boolean;
+    set canActivatePull(val: boolean);
+    get discont_wait(): number;
+    set discont_wait(val: number);
+    get discontWait(): number;
+    set discontWait(val: number);
+    get drift_tolerance(): number;
+    set drift_tolerance(val: number);
+    get driftTolerance(): number;
+    set driftTolerance(val: number);
+    get latency_time(): number;
+    set latency_time(val: number);
+    get latencyTime(): number;
+    set latencyTime(val: number);
+    // This accessor conflicts with a property, field, or function name in a parent class or interface.
+    // @ts-expect-error
+    get provide_clock(): boolean;
+    // This accessor conflicts with a property, field, or function name in a parent class or interface.
+    // @ts-expect-error
+    set provide_clock(val: boolean);
+    get provideClock(): boolean;
+    set provideClock(val: boolean);
+    get slave_method(): AudioBaseSinkSlaveMethod;
+    set slave_method(val: AudioBaseSinkSlaveMethod);
+    get slaveMethod(): AudioBaseSinkSlaveMethod;
+    set slaveMethod(val: AudioBaseSinkSlaveMethod);
+
+    // Fields
+    element: GstBase.BaseSink;
+    ringbuffer: AudioRingBuffer;
+    next_sample: number;
+    provided_clock: Gst.Clock;
+    eos_rendering: boolean;
+
+    // Members
+
+    create_ringbuffer(): AudioRingBuffer;
+    get_alignment_threshold(): Gst.ClockTime;
+    get_discont_wait(): Gst.ClockTime;
+    get_drift_tolerance(): number;
+    get_provide_clock(): boolean;
+    get_slave_method(): AudioBaseSinkSlaveMethod;
+    report_device_failure(): void;
+    set_alignment_threshold(alignment_threshold: Gst.ClockTime): void;
+    set_custom_slaving_callback(callback: AudioBaseSinkCustomSlavingCallback): void;
+    set_discont_wait(discont_wait: Gst.ClockTime): void;
+    set_drift_tolerance(drift_tolerance: number): void;
+    set_provide_clock(provide: boolean): void;
+    set_slave_method(method: AudioBaseSinkSlaveMethod): void;
+    vfunc_create_ringbuffer(): AudioRingBuffer;
+    vfunc_payload(buffer: Gst.Buffer): Gst.Buffer;
+}
+export module AudioBaseSrc {
+    export interface ConstructorProperties extends GstBase.PushSrc.ConstructorProperties {
+        [key: string]: any;
+        actual_buffer_time: number;
+        actualBufferTime: number;
+        actual_latency_time: number;
+        actualLatencyTime: number;
+        buffer_time: number;
+        bufferTime: number;
+        latency_time: number;
+        latencyTime: number;
+        provide_clock: boolean | any;
+        provideClock: boolean;
+        slave_method: AudioBaseSrcSlaveMethod;
+        slaveMethod: AudioBaseSrcSlaveMethod;
+    }
+}
+export class AudioBaseSrc extends GstBase.PushSrc {
+    static $gtype: GObject.GType<AudioBaseSrc>;
+
+    constructor(properties?: Partial<AudioBaseSrc.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioBaseSrc.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get actual_buffer_time(): number;
+    get actualBufferTime(): number;
+    get actual_latency_time(): number;
+    get actualLatencyTime(): number;
+    get buffer_time(): number;
+    set buffer_time(val: number);
+    get bufferTime(): number;
+    set bufferTime(val: number);
+    get latency_time(): number;
+    set latency_time(val: number);
+    get latencyTime(): number;
+    set latencyTime(val: number);
+    // This accessor conflicts with a property, field, or function name in a parent class or interface.
+    // @ts-expect-error
+    get provide_clock(): boolean;
+    // This accessor conflicts with a property, field, or function name in a parent class or interface.
+    // @ts-expect-error
+    set provide_clock(val: boolean);
+    get provideClock(): boolean;
+    set provideClock(val: boolean);
+    get slave_method(): AudioBaseSrcSlaveMethod;
+    set slave_method(val: AudioBaseSrcSlaveMethod);
+    get slaveMethod(): AudioBaseSrcSlaveMethod;
+    set slaveMethod(val: AudioBaseSrcSlaveMethod);
+
+    // Fields
+    element: GstBase.PushSrc;
+    ringbuffer: AudioRingBuffer;
+    next_sample: number;
+    clock: Gst.Clock;
+
+    // Members
+
+    create_ringbuffer(): AudioRingBuffer;
+    get_provide_clock(): boolean;
+    get_slave_method(): AudioBaseSrcSlaveMethod;
+    set_provide_clock(provide: boolean): void;
+    set_slave_method(method: AudioBaseSrcSlaveMethod): void;
+    vfunc_create_ringbuffer(): AudioRingBuffer;
+}
+export module AudioCdSrc {
+    export interface ConstructorProperties extends GstBase.PushSrc.ConstructorProperties {
+        [key: string]: any;
+        device: string;
+        mode: AudioCdSrcMode;
+        track: number;
+    }
+}
+export class AudioCdSrc extends GstBase.PushSrc implements Gst.URIHandler {
+    static $gtype: GObject.GType<AudioCdSrc>;
+
+    constructor(properties?: Partial<AudioCdSrc.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioCdSrc.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get device(): string;
+    set device(val: string);
+    get mode(): AudioCdSrcMode;
+    set mode(val: AudioCdSrcMode);
+    get track(): number;
+    set track(val: number);
+
+    // Fields
+    pushsrc: GstBase.PushSrc;
+    tags: Gst.TagList;
+
+    // Members
+
+    add_track(track: AudioCdSrcTrack): boolean;
+    vfunc_close(): void;
+    vfunc_open(device: string): boolean;
+    vfunc_read_sector(sector: number): Gst.Buffer;
+
+    // Implemented Members
+
+    get_protocols(): string[] | null;
+    get_uri(): string | null;
+    get_uri_type(): Gst.URIType;
+    set_uri(uri: string): boolean;
+    vfunc_get_uri(): string | null;
+    vfunc_set_uri(uri: string): boolean;
+}
+export module AudioClock {
+    export interface ConstructorProperties extends Gst.SystemClock.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class AudioClock extends Gst.SystemClock {
+    static $gtype: GObject.GType<AudioClock>;
+
+    constructor(properties?: Partial<AudioClock.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioClock.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    clock: Gst.SystemClock;
+    func: AudioClockGetTimeFunc;
+    user_data: any;
+    destroy_notify: GLib.DestroyNotify;
+
+    // Constructors
+
+    static ["new"](name: string, func: AudioClockGetTimeFunc): AudioClock;
+
+    // Members
+
+    adjust(time: Gst.ClockTime): Gst.ClockTime;
+    get_time(): Gst.ClockTime;
+    invalidate(): void;
+    reset(time: Gst.ClockTime): void;
+}
+export module AudioDecoder {
+    export interface ConstructorProperties extends Gst.Element.ConstructorProperties {
+        [key: string]: any;
+        max_errors: number;
+        maxErrors: number;
+        min_latency: number;
+        minLatency: number;
+        plc: boolean;
+        tolerance: number;
+    }
+}
+export abstract class AudioDecoder extends Gst.Element {
+    static $gtype: GObject.GType<AudioDecoder>;
+
+    constructor(properties?: Partial<AudioDecoder.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioDecoder.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get max_errors(): number;
+    set max_errors(val: number);
+    get maxErrors(): number;
+    set maxErrors(val: number);
+    get min_latency(): number;
+    set min_latency(val: number);
+    get minLatency(): number;
+    set minLatency(val: number);
+    get plc(): boolean;
+    set plc(val: boolean);
+    get tolerance(): number;
+    set tolerance(val: number);
+
+    // Fields
+    element: Gst.Element;
+    sinkpad: Gst.Pad;
+    srcpad: Gst.Pad;
+    stream_lock: GLib.RecMutex;
+    input_segment: Gst.Segment;
+    output_segment: Gst.Segment;
+
+    // Members
+
+    allocate_output_buffer(size: number): Gst.Buffer;
+    finish_frame(buf: Gst.Buffer | null, frames: number): Gst.FlowReturn;
+    finish_subframe(buf?: Gst.Buffer | null): Gst.FlowReturn;
+    get_allocator(): [Gst.Allocator | null, Gst.AllocationParams | null];
+    get_audio_info(): AudioInfo;
+    get_delay(): number;
+    get_drainable(): boolean;
+    get_estimate_rate(): number;
+    get_latency(): [Gst.ClockTime | null, Gst.ClockTime | null];
+    get_max_errors(): number;
+    get_min_latency(): Gst.ClockTime;
+    get_needs_format(): boolean;
+    get_parse_state(): [boolean, boolean];
+    get_plc(): boolean;
+    get_plc_aware(): number;
+    get_tolerance(): Gst.ClockTime;
+    merge_tags(tags: Gst.TagList | null, mode: Gst.TagMergeMode): void;
+    negotiate(): boolean;
+    proxy_getcaps(caps?: Gst.Caps | null, filter?: Gst.Caps | null): Gst.Caps;
+    set_allocation_caps(allocation_caps?: Gst.Caps | null): void;
+    set_drainable(enabled: boolean): void;
+    set_estimate_rate(enabled: boolean): void;
+    set_latency(min: Gst.ClockTime, max: Gst.ClockTime): void;
+    set_max_errors(num: number): void;
+    set_min_latency(num: Gst.ClockTime): void;
+    set_needs_format(enabled: boolean): void;
+    set_output_caps(caps: Gst.Caps): boolean;
+    set_output_format(info: AudioInfo): boolean;
+    set_plc(enabled: boolean): void;
+    set_plc_aware(plc: boolean): void;
+    set_tolerance(tolerance: Gst.ClockTime): void;
+    set_use_default_pad_acceptcaps(use: boolean): void;
+    vfunc_close(): boolean;
+    vfunc_decide_allocation(query: Gst.Query): boolean;
+    vfunc_flush(hard: boolean): void;
+    vfunc_getcaps(filter: Gst.Caps): Gst.Caps;
+    vfunc_handle_frame(buffer: Gst.Buffer): Gst.FlowReturn;
+    vfunc_negotiate(): boolean;
+    vfunc_open(): boolean;
+    vfunc_parse(adapter: GstBase.Adapter, offset: number, length: number): Gst.FlowReturn;
+    vfunc_pre_push(buffer: Gst.Buffer): Gst.FlowReturn;
+    vfunc_propose_allocation(query: Gst.Query): boolean;
+    vfunc_set_format(caps: Gst.Caps): boolean;
+    vfunc_sink_event(event: Gst.Event): boolean;
+    vfunc_sink_query(query: Gst.Query): boolean;
+    vfunc_src_event(event: Gst.Event): boolean;
+    vfunc_src_query(query: Gst.Query): boolean;
+    vfunc_start(): boolean;
+    vfunc_stop(): boolean;
+    vfunc_transform_meta(outbuf: Gst.Buffer, meta: Gst.Meta, inbuf: Gst.Buffer): boolean;
+}
+export module AudioEncoder {
+    export interface ConstructorProperties extends Gst.Element.ConstructorProperties {
+        [key: string]: any;
+        hard_resync: boolean;
+        hardResync: boolean;
+        mark_granule: boolean;
+        markGranule: boolean;
+        perfect_timestamp: boolean;
+        perfectTimestamp: boolean;
+        tolerance: number;
+    }
+}
+export abstract class AudioEncoder extends Gst.Element implements Gst.Preset {
+    static $gtype: GObject.GType<AudioEncoder>;
+
+    constructor(properties?: Partial<AudioEncoder.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioEncoder.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get hard_resync(): boolean;
+    set hard_resync(val: boolean);
+    get hardResync(): boolean;
+    set hardResync(val: boolean);
+    get mark_granule(): boolean;
+    get markGranule(): boolean;
+    get perfect_timestamp(): boolean;
+    set perfect_timestamp(val: boolean);
+    get perfectTimestamp(): boolean;
+    set perfectTimestamp(val: boolean);
+    get tolerance(): number;
+    set tolerance(val: number);
+
+    // Fields
+    element: Gst.Element;
+    sinkpad: Gst.Pad;
+    srcpad: Gst.Pad;
+    stream_lock: GLib.RecMutex;
+    input_segment: Gst.Segment;
+    output_segment: Gst.Segment;
+
+    // Members
+
+    allocate_output_buffer(size: number): Gst.Buffer;
+    finish_frame(buffer: Gst.Buffer | null, samples: number): Gst.FlowReturn;
+    get_allocator(): [Gst.Allocator | null, Gst.AllocationParams | null];
+    get_audio_info(): AudioInfo;
+    get_drainable(): boolean;
+    get_frame_max(): number;
+    get_frame_samples_max(): number;
+    get_frame_samples_min(): number;
+    get_hard_min(): boolean;
+    get_hard_resync(): boolean;
+    get_latency(): [Gst.ClockTime | null, Gst.ClockTime | null];
+    get_lookahead(): number;
+    get_mark_granule(): boolean;
+    get_perfect_timestamp(): boolean;
+    get_tolerance(): Gst.ClockTime;
+    merge_tags(tags: Gst.TagList | null, mode: Gst.TagMergeMode): void;
+    negotiate(): boolean;
+    proxy_getcaps(caps?: Gst.Caps | null, filter?: Gst.Caps | null): Gst.Caps;
+    set_allocation_caps(allocation_caps?: Gst.Caps | null): void;
+    set_drainable(enabled: boolean): void;
+    set_frame_max(num: number): void;
+    set_frame_samples_max(num: number): void;
+    set_frame_samples_min(num: number): void;
+    set_hard_min(enabled: boolean): void;
+    set_hard_resync(enabled: boolean): void;
+    set_headers(headers: Gst.Buffer[]): void;
+    set_latency(min: Gst.ClockTime, max: Gst.ClockTime): void;
+    set_lookahead(num: number): void;
+    set_mark_granule(enabled: boolean): void;
+    set_output_format(caps: Gst.Caps): boolean;
+    set_perfect_timestamp(enabled: boolean): void;
+    set_tolerance(tolerance: Gst.ClockTime): void;
+    vfunc_close(): boolean;
+    vfunc_decide_allocation(query: Gst.Query): boolean;
+    vfunc_flush(): void;
+    vfunc_getcaps(filter: Gst.Caps): Gst.Caps;
+    vfunc_handle_frame(buffer: Gst.Buffer): Gst.FlowReturn;
+    vfunc_negotiate(): boolean;
+    vfunc_open(): boolean;
+    vfunc_pre_push(buffer: Gst.Buffer): Gst.FlowReturn;
+    vfunc_propose_allocation(query: Gst.Query): boolean;
+    vfunc_set_format(info: AudioInfo): boolean;
+    vfunc_sink_event(event: Gst.Event): boolean;
+    vfunc_sink_query(query: Gst.Query): boolean;
+    vfunc_src_event(event: Gst.Event): boolean;
+    vfunc_src_query(query: Gst.Query): boolean;
+    vfunc_start(): boolean;
+    vfunc_stop(): boolean;
+    vfunc_transform_meta(outbuf: Gst.Buffer, meta: Gst.Meta, inbuf: Gst.Buffer): boolean;
+
+    // Implemented Members
+
+    delete_preset(name: string): boolean;
+    get_meta(name: string, tag: string): [boolean, string];
+    get_preset_names(): string[];
+    get_property_names(): string[];
+    is_editable(): boolean;
+    load_preset(name: string): boolean;
+    rename_preset(old_name: string, new_name: string): boolean;
+    save_preset(name: string): boolean;
+    set_meta(name: string, tag: string, value?: string | null): boolean;
+    vfunc_delete_preset(name: string): boolean;
+    vfunc_get_meta(name: string, tag: string): [boolean, string];
+    vfunc_get_preset_names(): string[];
+    vfunc_get_property_names(): string[];
+    vfunc_load_preset(name: string): boolean;
+    vfunc_rename_preset(old_name: string, new_name: string): boolean;
+    vfunc_save_preset(name: string): boolean;
+    vfunc_set_meta(name: string, tag: string, value?: string | null): boolean;
+}
+export module AudioFilter {
+    export interface ConstructorProperties extends GstBase.BaseTransform.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class AudioFilter extends GstBase.BaseTransform {
+    static $gtype: GObject.GType<AudioFilter>;
+
+    constructor(properties?: Partial<AudioFilter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioFilter.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    basetransform: GstBase.BaseTransform;
+    info: AudioInfo;
+
+    // Members
+
+    vfunc_setup(info: AudioInfo): boolean;
+    static add_pad_templates(allowed_caps: Gst.Caps): void;
+}
+export module AudioRingBuffer {
+    export interface ConstructorProperties extends Gst.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class AudioRingBuffer extends Gst.Object {
+    static $gtype: GObject.GType<AudioRingBuffer>;
+
+    constructor(properties?: Partial<AudioRingBuffer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioRingBuffer.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: Gst.Object;
+    cond: GLib.Cond;
+    open: boolean;
+    acquired: boolean;
+    memory: number;
+    size: number;
+    spec: AudioRingBufferSpec;
+    samples_per_seg: number;
+    empty_seg: number;
+    state: number;
+    segdone: number;
+    segbase: number;
+    waiting: number;
+
+    // Members
+
+    acquire(spec: AudioRingBufferSpec): boolean;
+    activate(active: boolean): boolean;
+    advance(advance: number): void;
+    clear(segment: number): void;
+    clear_all(): void;
+    close_device(): boolean;
+    commit(sample: number, data: Uint8Array | string, out_samples: number, accum: number): [number, number];
+    convert(src_fmt: Gst.Format, src_val: number, dest_fmt: Gst.Format): [boolean, number];
+    delay(): number;
+    device_is_open(): boolean;
+    is_acquired(): boolean;
+    is_active(): boolean;
+    is_flushing(): boolean;
+    may_start(allowed: boolean): void;
+    open_device(): boolean;
+    pause(): boolean;
+    prepare_read(): [boolean, number, Uint8Array];
+    read(sample: number, data: Uint8Array | string): [number, Gst.ClockTime];
+    release(): boolean;
+    samples_done(): number;
+    set_callback(cb?: AudioRingBufferCallback | null): void;
+    set_channel_positions(position: AudioChannelPosition[]): void;
+    set_flushing(flushing: boolean): void;
+    set_sample(sample: number): void;
+    set_timestamp(readseg: number, timestamp: Gst.ClockTime): void;
+    start(): boolean;
+    stop(): boolean;
+    vfunc_acquire(spec: AudioRingBufferSpec): boolean;
+    vfunc_activate(active: boolean): boolean;
+    vfunc_clear_all(): void;
+    vfunc_close_device(): boolean;
+    vfunc_commit(sample: number, data: Uint8Array | string, out_samples: number, accum: number): [number, 
number];
+    vfunc_delay(): number;
+    vfunc_open_device(): boolean;
+    vfunc_pause(): boolean;
+    vfunc_release(): boolean;
+    vfunc_resume(): boolean;
+    vfunc_start(): boolean;
+    vfunc_stop(): boolean;
+    static debug_spec_buff(spec: AudioRingBufferSpec): void;
+    static debug_spec_caps(spec: AudioRingBufferSpec): void;
+    static parse_caps(spec: AudioRingBufferSpec, caps: Gst.Caps): boolean;
+}
+export module AudioSink {
+    export interface ConstructorProperties extends AudioBaseSink.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class AudioSink extends AudioBaseSink {
+    static $gtype: GObject.GType<AudioSink>;
+
+    constructor(properties?: Partial<AudioSink.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioSink.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    element: AudioBaseSink;
+
+    // Members
+
+    vfunc_close(): boolean;
+    vfunc_delay(): number;
+    vfunc_open(): boolean;
+    vfunc_pause(): void;
+    vfunc_prepare(spec: AudioRingBufferSpec): boolean;
+    // Conflicted with GstBase.BaseSink.vfunc_prepare
+    vfunc_prepare(...args: never[]): any;
+    vfunc_reset(): void;
+    vfunc_resume(): void;
+    vfunc_stop(): void;
+    // Conflicted with GstBase.BaseSink.vfunc_stop
+    vfunc_stop(...args: never[]): any;
+    vfunc_unprepare(): boolean;
+    vfunc_write(data: any | null, length: number): number;
+}
+export module AudioSrc {
+    export interface ConstructorProperties extends AudioBaseSrc.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class AudioSrc extends AudioBaseSrc {
+    static $gtype: GObject.GType<AudioSrc>;
+
+    constructor(properties?: Partial<AudioSrc.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioSrc.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    element: AudioBaseSrc;
+
+    // Members
+
+    vfunc_close(): boolean;
+    vfunc_delay(): number;
+    vfunc_open(): boolean;
+    vfunc_prepare(spec: AudioRingBufferSpec): boolean;
+    vfunc_read(data: any | null, length: number, timestamp: Gst.ClockTime): number;
+    vfunc_reset(): void;
+    vfunc_unprepare(): boolean;
+}
+
+export class AudioAggregatorConvertPadPrivate {
+    static $gtype: GObject.GType<AudioAggregatorConvertPadPrivate>;
+
+    constructor(copy: AudioAggregatorConvertPadPrivate);
+}
+
+export class AudioAggregatorPadPrivate {
+    static $gtype: GObject.GType<AudioAggregatorPadPrivate>;
+
+    constructor(copy: AudioAggregatorPadPrivate);
+}
+
+export class AudioAggregatorPrivate {
+    static $gtype: GObject.GType<AudioAggregatorPrivate>;
+
+    constructor(copy: AudioAggregatorPrivate);
+}
+
+export class AudioBaseSinkPrivate {
+    static $gtype: GObject.GType<AudioBaseSinkPrivate>;
+
+    constructor(copy: AudioBaseSinkPrivate);
+}
+
+export class AudioBaseSrcPrivate {
+    static $gtype: GObject.GType<AudioBaseSrcPrivate>;
+
+    constructor(copy: AudioBaseSrcPrivate);
+}
+
+export class AudioBuffer {
+    static $gtype: GObject.GType<AudioBuffer>;
+
+    constructor(copy: AudioBuffer);
+
+    // Fields
+    info: AudioInfo;
+    n_samples: number;
+    n_planes: number;
+    planes: any;
+    buffer: Gst.Buffer;
+
+    // Members
+    unmap(): void;
+    static clip(buffer: Gst.Buffer, segment: Gst.Segment, rate: number, bpf: number): Gst.Buffer;
+    static map(info: AudioInfo, gstbuffer: Gst.Buffer, flags: Gst.MapFlags): [boolean, AudioBuffer];
+    static reorder_channels(
+        buffer: Gst.Buffer,
+        format: AudioFormat,
+        from: AudioChannelPosition[],
+        to: AudioChannelPosition[]
+    ): boolean;
+    static truncate(buffer: Gst.Buffer, bpf: number, trim: number, samples: number): Gst.Buffer;
+}
+
+export class AudioCdSrcPrivate {
+    static $gtype: GObject.GType<AudioCdSrcPrivate>;
+
+    constructor(copy: AudioCdSrcPrivate);
+}
+
+export class AudioCdSrcTrack {
+    static $gtype: GObject.GType<AudioCdSrcTrack>;
+
+    constructor(copy: AudioCdSrcTrack);
+
+    // Fields
+    is_audio: boolean;
+    num: number;
+    start: number;
+    end: number;
+    tags: Gst.TagList;
+}
+
+export class AudioChannelMixer {
+    static $gtype: GObject.GType<AudioChannelMixer>;
+
+    constructor(copy: AudioChannelMixer);
+
+    // Members
+    free(): void;
+    is_passthrough(): boolean;
+    samples(_in: any | null, out: any | null, samples: number): void;
+}
+
+export class AudioClippingMeta {
+    static $gtype: GObject.GType<AudioClippingMeta>;
+
+    constructor(copy: AudioClippingMeta);
+
+    // Fields
+    meta: Gst.Meta;
+    format: Gst.Format;
+    start: number;
+    end: number;
+
+    // Members
+    static get_info(): Gst.MetaInfo;
+}
+
+export class AudioConverter {
+    static $gtype: GObject.GType<AudioConverter>;
+
+    constructor(flags: AudioConverterFlags, in_info: AudioInfo, out_info: AudioInfo, config?: Gst.Structure 
| null);
+    constructor(copy: AudioConverter);
+
+    // Constructors
+    static ["new"](
+        flags: AudioConverterFlags,
+        in_info: AudioInfo,
+        out_info: AudioInfo,
+        config?: Gst.Structure | null
+    ): AudioConverter;
+
+    // Members
+    convert(flags: AudioConverterFlags, _in: Uint8Array | string): [boolean, Uint8Array];
+    free(): void;
+    get_config(): [Gst.Structure, number, number];
+    get_in_frames(out_frames: number): number;
+    get_max_latency(): number;
+    get_out_frames(in_frames: number): number;
+    is_passthrough(): boolean;
+    reset(): void;
+    samples(
+        flags: AudioConverterFlags,
+        _in: any | null,
+        in_frames: number,
+        out: any | null,
+        out_frames: number
+    ): boolean;
+    supports_inplace(): boolean;
+    update_config(in_rate: number, out_rate: number, config?: Gst.Structure | null): boolean;
+}
+
+export class AudioDecoderPrivate {
+    static $gtype: GObject.GType<AudioDecoderPrivate>;
+
+    constructor(copy: AudioDecoderPrivate);
+}
+
+export class AudioDownmixMeta {
+    static $gtype: GObject.GType<AudioDownmixMeta>;
+
+    constructor(copy: AudioDownmixMeta);
+
+    // Fields
+    meta: Gst.Meta;
+    from_position: AudioChannelPosition;
+    to_position: AudioChannelPosition;
+    from_channels: number;
+    to_channels: number;
+    matrix: number;
+
+    // Members
+    static get_info(): Gst.MetaInfo;
+}
+
+export class AudioEncoderPrivate {
+    static $gtype: GObject.GType<AudioEncoderPrivate>;
+
+    constructor(copy: AudioEncoderPrivate);
+}
+
+export class AudioFormatInfo {
+    static $gtype: GObject.GType<AudioFormatInfo>;
+
+    constructor(copy: AudioFormatInfo);
+
+    // Fields
+    format: AudioFormat;
+    name: string;
+    description: string;
+    flags: AudioFormatFlags;
+    endianness: number;
+    width: number;
+    depth: number;
+    silence: Uint8Array;
+    unpack_format: AudioFormat;
+    unpack_func: AudioFormatUnpack;
+    pack_func: AudioFormatPack;
+
+    // Members
+    fill_silence(dest: Uint8Array | string): void;
+}
+
+export class AudioInfo {
+    static $gtype: GObject.GType<AudioInfo>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            finfo?: AudioFormatInfo;
+            flags?: AudioFlags;
+            layout?: AudioLayout;
+            rate?: number;
+            channels?: number;
+            bpf?: number;
+            position?: AudioChannelPosition[];
+        }>
+    );
+    constructor(copy: AudioInfo);
+
+    // Fields
+    finfo: AudioFormatInfo;
+    flags: AudioFlags;
+    layout: AudioLayout;
+    rate: number;
+    channels: number;
+    bpf: number;
+    position: AudioChannelPosition[];
+
+    // Constructors
+    static ["new"](): AudioInfo;
+    static new_from_caps(caps: Gst.Caps): AudioInfo;
+
+    // Members
+    convert(src_fmt: Gst.Format, src_val: number, dest_fmt: Gst.Format): [boolean, number];
+    copy(): AudioInfo;
+    free(): void;
+    is_equal(other: AudioInfo): boolean;
+    set_format(format: AudioFormat, rate: number, channels: number, position?: AudioChannelPosition[] | 
null): void;
+    to_caps(): Gst.Caps;
+    static from_caps(caps: Gst.Caps): [boolean, AudioInfo];
+    static init(): AudioInfo;
+}
+
+export class AudioLevelMeta {
+    static $gtype: GObject.GType<AudioLevelMeta>;
+
+    constructor(copy: AudioLevelMeta);
+
+    // Fields
+    meta: Gst.Meta;
+    level: number;
+    voice_activity: boolean;
+
+    // Members
+    static get_info(): Gst.MetaInfo;
+}
+
+export class AudioMeta {
+    static $gtype: GObject.GType<AudioMeta>;
+
+    constructor(copy: AudioMeta);
+
+    // Fields
+    meta: Gst.Meta;
+    info: AudioInfo;
+    samples: number;
+    offsets: number;
+
+    // Members
+    static get_info(): Gst.MetaInfo;
+}
+
+export class AudioQuantize {
+    static $gtype: GObject.GType<AudioQuantize>;
+
+    constructor(copy: AudioQuantize);
+
+    // Members
+    free(): void;
+    reset(): void;
+    samples(_in: any | null, out: any | null, samples: number): void;
+}
+
+export class AudioResampler {
+    static $gtype: GObject.GType<AudioResampler>;
+
+    constructor(copy: AudioResampler);
+
+    // Members
+    free(): void;
+    get_in_frames(out_frames: number): number;
+    get_max_latency(): number;
+    get_out_frames(in_frames: number): number;
+    resample(_in: any | null, in_frames: number, out: any | null, out_frames: number): void;
+    reset(): void;
+    update(in_rate: number, out_rate: number, options: Gst.Structure): boolean;
+    static new(
+        method: AudioResamplerMethod,
+        flags: AudioResamplerFlags,
+        format: AudioFormat,
+        channels: number,
+        in_rate: number,
+        out_rate: number,
+        options: Gst.Structure
+    ): AudioResampler;
+    static options_set_quality(
+        method: AudioResamplerMethod,
+        quality: number,
+        in_rate: number,
+        out_rate: number,
+        options: Gst.Structure
+    ): void;
+}
+
+export class AudioRingBufferSpec {
+    static $gtype: GObject.GType<AudioRingBufferSpec>;
+
+    constructor(copy: AudioRingBufferSpec);
+
+    // Fields
+    caps: Gst.Caps;
+    type: AudioRingBufferFormatType;
+    info: AudioInfo;
+    latency_time: number;
+    buffer_time: number;
+    segsize: number;
+    segtotal: number;
+    seglatency: number;
+}
+
+export class AudioSinkClassExtension {
+    static $gtype: GObject.GType<AudioSinkClassExtension>;
+
+    constructor(copy: AudioSinkClassExtension);
+}
+
+export class AudioStreamAlign {
+    static $gtype: GObject.GType<AudioStreamAlign>;
+
+    constructor(rate: number, alignment_threshold: Gst.ClockTime, discont_wait: Gst.ClockTime);
+    constructor(copy: AudioStreamAlign);
+
+    // Constructors
+    static ["new"](rate: number, alignment_threshold: Gst.ClockTime, discont_wait: Gst.ClockTime): 
AudioStreamAlign;
+
+    // Members
+    copy(): AudioStreamAlign;
+    free(): void;
+    get_alignment_threshold(): Gst.ClockTime;
+    get_discont_wait(): Gst.ClockTime;
+    get_rate(): number;
+    get_samples_since_discont(): number;
+    get_timestamp_at_discont(): Gst.ClockTime;
+    mark_discont(): void;
+    process(
+        discont: boolean,
+        timestamp: Gst.ClockTime,
+        n_samples: number
+    ): [boolean, Gst.ClockTime, Gst.ClockTime, number];
+    set_alignment_threshold(alignment_threshold: Gst.ClockTime): void;
+    set_discont_wait(discont_wait: Gst.ClockTime): void;
+    set_rate(rate: number): void;
+}
+
+export interface StreamVolumeNamespace {
+    $gtype: GObject.GType<StreamVolume>;
+    prototype: StreamVolumePrototype;
+
+    convert_volume(from: StreamVolumeFormat, to: StreamVolumeFormat, val: number): number;
+}
+export type StreamVolume = StreamVolumePrototype;
+export interface StreamVolumePrototype extends GObject.Object {
+    // Properties
+    mute: boolean;
+    volume: number;
+
+    // Members
+
+    get_mute(): boolean;
+    get_volume(format: StreamVolumeFormat): number;
+    set_mute(mute: boolean): void;
+    set_volume(format: StreamVolumeFormat, val: number): void;
+}
+
+export const StreamVolume: StreamVolumeNamespace;
diff --git a/types/gstpbutils.d.ts b/types/gstpbutils.d.ts
new file mode 100644
index 0000000..c6d18b2
--- /dev/null
+++ b/types/gstpbutils.d.ts
@@ -0,0 +1,620 @@
+/**
+ * GstPbutils 1.0
+ *
+ * Generated from 1.0
+ */
+
+import * as GstVideo from "gstvideo";
+import * as GstAudio from "gstaudio";
+import * as GObject from "gobject";
+import * as Gst from "gst";
+import * as GLib from "glib";
+
+export const ENCODING_CATEGORY_CAPTURE: string;
+export const ENCODING_CATEGORY_DEVICE: string;
+export const ENCODING_CATEGORY_FILE_EXTENSION: string;
+export const ENCODING_CATEGORY_ONLINE_SERVICE: string;
+export const ENCODING_CATEGORY_STORAGE_EDITING: string;
+export const PLUGINS_BASE_VERSION_MAJOR: number;
+export const PLUGINS_BASE_VERSION_MICRO: number;
+export const PLUGINS_BASE_VERSION_MINOR: number;
+export const PLUGINS_BASE_VERSION_NANO: number;
+export function codec_utils_aac_caps_set_level_and_profile(caps: Gst.Caps, audio_config: Uint8Array | 
string): boolean;
+export function codec_utils_aac_get_channels(audio_config: Uint8Array | string): number;
+export function codec_utils_aac_get_index_from_sample_rate(rate: number): number;
+export function codec_utils_aac_get_level(audio_config: Uint8Array | string): string | null;
+export function codec_utils_aac_get_profile(audio_config: Uint8Array | string): string | null;
+export function codec_utils_aac_get_sample_rate(audio_config: Uint8Array | string): number;
+export function codec_utils_aac_get_sample_rate_from_index(sr_idx: number): number;
+export function codec_utils_caps_get_mime_codec(caps: Gst.Caps): string | null;
+export function codec_utils_h264_caps_set_level_and_profile(caps: Gst.Caps, sps: Uint8Array | string): 
boolean;
+export function codec_utils_h264_get_level(sps: Uint8Array | string): string | null;
+export function codec_utils_h264_get_level_idc(level: string): number;
+export function codec_utils_h264_get_profile(sps: Uint8Array | string): string | null;
+export function codec_utils_h264_get_profile_flags_level(
+    codec_data: Uint8Array | string
+): [boolean, number, number, number];
+export function codec_utils_h265_caps_set_level_tier_and_profile(
+    caps: Gst.Caps,
+    profile_tier_level: Uint8Array | string
+): boolean;
+export function codec_utils_h265_get_level(profile_tier_level: Uint8Array | string): string | null;
+export function codec_utils_h265_get_level_idc(level: string): number;
+export function codec_utils_h265_get_profile(profile_tier_level: Uint8Array | string): string | null;
+export function codec_utils_h265_get_tier(profile_tier_level: Uint8Array | string): string | null;
+export function codec_utils_mpeg4video_caps_set_level_and_profile(
+    caps: Gst.Caps,
+    vis_obj_seq: Uint8Array | string
+): boolean;
+export function codec_utils_mpeg4video_get_level(vis_obj_seq: Uint8Array | string): string | null;
+export function codec_utils_mpeg4video_get_profile(vis_obj_seq: Uint8Array | string): string | null;
+export function codec_utils_opus_create_caps(
+    rate: number,
+    channels: number,
+    channel_mapping_family: number,
+    stream_count: number,
+    coupled_count: number,
+    channel_mapping?: Uint8Array | null
+): Gst.Caps;
+export function codec_utils_opus_create_caps_from_header(header: Gst.Buffer, comments?: Gst.Buffer | null): 
Gst.Caps;
+export function codec_utils_opus_create_header(
+    rate: number,
+    channels: number,
+    channel_mapping_family: number,
+    stream_count: number,
+    coupled_count: number,
+    channel_mapping: Uint8Array | null,
+    pre_skip: number,
+    output_gain: number
+): Gst.Buffer;
+export function codec_utils_opus_parse_caps(
+    caps: Gst.Caps
+): [boolean, number, number, number, number, number, Uint8Array | null];
+export function codec_utils_opus_parse_header(
+    header: Gst.Buffer
+): [boolean, number, number, number, number, number, Uint8Array | null, number, number];
+export function encoding_list_all_targets(categoryname?: string | null): EncodingTarget[];
+export function encoding_list_available_categories(): string[];
+export function install_plugins_async(
+    details: string[],
+    ctx: InstallPluginsContext | null,
+    func: InstallPluginsResultFunc
+): InstallPluginsReturn;
+export function install_plugins_installation_in_progress(): boolean;
+export function install_plugins_return_get_name(ret: InstallPluginsReturn): string;
+export function install_plugins_supported(): boolean;
+export function install_plugins_sync(details: string[], ctx?: InstallPluginsContext | null): 
InstallPluginsReturn;
+export function is_missing_plugin_message(msg: Gst.Message): boolean;
+export function missing_decoder_installer_detail_new(decode_caps: Gst.Caps): string;
+export function missing_decoder_message_new(element: Gst.Element, decode_caps: Gst.Caps): Gst.Message;
+export function missing_element_installer_detail_new(factory_name: string): string;
+export function missing_element_message_new(element: Gst.Element, factory_name: string): Gst.Message;
+export function missing_encoder_installer_detail_new(encode_caps: Gst.Caps): string;
+export function missing_encoder_message_new(element: Gst.Element, encode_caps: Gst.Caps): Gst.Message;
+export function missing_plugin_message_get_description(msg: Gst.Message): string;
+export function missing_plugin_message_get_installer_detail(msg: Gst.Message): string;
+export function missing_uri_sink_installer_detail_new(protocol: string): string;
+export function missing_uri_sink_message_new(element: Gst.Element, protocol: string): Gst.Message;
+export function missing_uri_source_installer_detail_new(protocol: string): string;
+export function missing_uri_source_message_new(element: Gst.Element, protocol: string): Gst.Message;
+export function pb_utils_add_codec_description_to_tag_list(
+    taglist: Gst.TagList,
+    codec_tag: string | null,
+    caps: Gst.Caps
+): boolean;
+export function pb_utils_get_caps_description_flags(caps: Gst.Caps): PbUtilsCapsDescriptionFlags;
+export function pb_utils_get_codec_description(caps: Gst.Caps): string;
+export function pb_utils_get_decoder_description(caps: Gst.Caps): string;
+export function pb_utils_get_element_description(factory_name: string): string;
+export function pb_utils_get_encoder_description(caps: Gst.Caps): string;
+export function pb_utils_get_file_extension_from_caps(caps: Gst.Caps): string | null;
+export function pb_utils_get_sink_description(protocol: string): string;
+export function pb_utils_get_source_description(protocol: string): string;
+export function pb_utils_init(): void;
+export function plugins_base_version(): [number, number, number, number];
+export function plugins_base_version_string(): string;
+export type AudioVisualizerShaderFunc = (
+    scope: AudioVisualizer,
+    s: GstVideo.VideoFrame,
+    d: GstVideo.VideoFrame
+) => void;
+export type InstallPluginsResultFunc = (result: InstallPluginsReturn) => void;
+
+export namespace AudioVisualizerShader {
+    export const $gtype: GObject.GType<AudioVisualizerShader>;
+}
+
+export enum AudioVisualizerShader {
+    NONE = 0,
+    FADE = 1,
+    FADE_AND_MOVE_UP = 2,
+    FADE_AND_MOVE_DOWN = 3,
+    FADE_AND_MOVE_LEFT = 4,
+    FADE_AND_MOVE_RIGHT = 5,
+    FADE_AND_MOVE_HORIZ_OUT = 6,
+    FADE_AND_MOVE_HORIZ_IN = 7,
+    FADE_AND_MOVE_VERT_OUT = 8,
+    FADE_AND_MOVE_VERT_IN = 9,
+}
+
+export namespace DiscovererResult {
+    export const $gtype: GObject.GType<DiscovererResult>;
+}
+
+export enum DiscovererResult {
+    OK = 0,
+    URI_INVALID = 1,
+    ERROR = 2,
+    TIMEOUT = 3,
+    BUSY = 4,
+    MISSING_PLUGINS = 5,
+}
+
+export namespace InstallPluginsReturn {
+    export const $gtype: GObject.GType<InstallPluginsReturn>;
+}
+
+export enum InstallPluginsReturn {
+    SUCCESS = 0,
+    NOT_FOUND = 1,
+    ERROR = 2,
+    PARTIAL_SUCCESS = 3,
+    USER_ABORT = 4,
+    CRASHED = 100,
+    INVALID = 101,
+    STARTED_OK = 200,
+    INTERNAL_FAILURE = 201,
+    HELPER_MISSING = 202,
+    INSTALL_IN_PROGRESS = 203,
+}
+
+export namespace DiscovererSerializeFlags {
+    export const $gtype: GObject.GType<DiscovererSerializeFlags>;
+}
+
+export enum DiscovererSerializeFlags {
+    BASIC = 0,
+    CAPS = 1,
+    TAGS = 2,
+    MISC = 4,
+    ALL = 7,
+}
+
+export namespace PbUtilsCapsDescriptionFlags {
+    export const $gtype: GObject.GType<PbUtilsCapsDescriptionFlags>;
+}
+
+export enum PbUtilsCapsDescriptionFlags {
+    CONTAINER = 1,
+    AUDIO = 2,
+    VIDEO = 4,
+    IMAGE = 8,
+    SUBTITLE = 16,
+    TAG = 32,
+    GENERIC = 64,
+}
+export module AudioVisualizer {
+    export interface ConstructorProperties extends Gst.Element.ConstructorProperties {
+        [key: string]: any;
+        shade_amount: number;
+        shadeAmount: number;
+        shader: AudioVisualizerShader;
+    }
+}
+export abstract class AudioVisualizer extends Gst.Element {
+    static $gtype: GObject.GType<AudioVisualizer>;
+
+    constructor(properties?: Partial<AudioVisualizer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AudioVisualizer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get shade_amount(): number;
+    set shade_amount(val: number);
+    get shadeAmount(): number;
+    set shadeAmount(val: number);
+    get shader(): AudioVisualizerShader;
+    set shader(val: AudioVisualizerShader);
+
+    // Fields
+    req_spf: number;
+    vinfo: GstVideo.VideoInfo;
+    ainfo: GstAudio.AudioInfo;
+
+    // Members
+
+    vfunc_decide_allocation(query: Gst.Query): boolean;
+    vfunc_render(audio: Gst.Buffer, video: GstVideo.VideoFrame): boolean;
+    vfunc_setup(): boolean;
+}
+export module Discoverer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        timeout: number;
+        use_cache: boolean;
+        useCache: boolean;
+    }
+}
+export class Discoverer extends GObject.Object {
+    static $gtype: GObject.GType<Discoverer>;
+
+    constructor(properties?: Partial<Discoverer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Discoverer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get timeout(): number;
+    set timeout(val: number);
+    get use_cache(): boolean;
+    set use_cache(val: boolean);
+    get useCache(): boolean;
+    set useCache(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "discovered",
+        callback: (_source: this, info: DiscovererInfo, error: GLib.Error | null) => void
+    ): number;
+    connect_after(
+        signal: "discovered",
+        callback: (_source: this, info: DiscovererInfo, error: GLib.Error | null) => void
+    ): number;
+    emit(signal: "discovered", info: DiscovererInfo, error: GLib.Error | null): void;
+    connect(signal: "finished", callback: (_source: this) => void): number;
+    connect_after(signal: "finished", callback: (_source: this) => void): number;
+    emit(signal: "finished"): void;
+    connect(signal: "source-setup", callback: (_source: this, source: Gst.Element) => void): number;
+    connect_after(signal: "source-setup", callback: (_source: this, source: Gst.Element) => void): number;
+    emit(signal: "source-setup", source: Gst.Element): void;
+    connect(signal: "starting", callback: (_source: this) => void): number;
+    connect_after(signal: "starting", callback: (_source: this) => void): number;
+    emit(signal: "starting"): void;
+
+    // Constructors
+
+    static ["new"](timeout: Gst.ClockTime): Discoverer;
+
+    // Members
+
+    discover_uri(uri: string): DiscovererInfo;
+    discover_uri_async(uri: string): boolean;
+    start(): void;
+    stop(): void;
+    vfunc_discovered(info: DiscovererInfo, err: GLib.Error): void;
+    vfunc_finished(): void;
+    vfunc_source_setup(source: Gst.Element): void;
+    vfunc_starting(): void;
+}
+export module DiscovererAudioInfo {
+    export interface ConstructorProperties extends DiscovererStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DiscovererAudioInfo extends DiscovererStreamInfo {
+    static $gtype: GObject.GType<DiscovererAudioInfo>;
+
+    constructor(properties?: Partial<DiscovererAudioInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DiscovererAudioInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_bitrate(): number;
+    get_channel_mask(): number;
+    get_channels(): number;
+    get_depth(): number;
+    get_language(): string;
+    get_max_bitrate(): number;
+    get_sample_rate(): number;
+}
+export module DiscovererContainerInfo {
+    export interface ConstructorProperties extends DiscovererStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DiscovererContainerInfo extends DiscovererStreamInfo {
+    static $gtype: GObject.GType<DiscovererContainerInfo>;
+
+    constructor(properties?: Partial<DiscovererContainerInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DiscovererContainerInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_streams(): DiscovererStreamInfo[];
+    get_tags(): Gst.TagList;
+}
+export module DiscovererInfo {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DiscovererInfo extends GObject.Object {
+    static $gtype: GObject.GType<DiscovererInfo>;
+
+    constructor(properties?: Partial<DiscovererInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DiscovererInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    copy(): DiscovererInfo;
+    get_audio_streams(): DiscovererStreamInfo[];
+    get_container_streams(): DiscovererStreamInfo[];
+    get_duration(): Gst.ClockTime;
+    get_live(): boolean;
+    get_misc(): Gst.Structure;
+    get_missing_elements_installer_details(): string[];
+    get_result(): DiscovererResult;
+    get_seekable(): boolean;
+    get_stream_info(): DiscovererStreamInfo;
+    get_stream_list(): DiscovererStreamInfo[];
+    get_streams(streamtype: GObject.GType): DiscovererStreamInfo[];
+    get_subtitle_streams(): DiscovererStreamInfo[];
+    get_tags(): Gst.TagList;
+    get_toc(): Gst.Toc;
+    get_uri(): string;
+    get_video_streams(): DiscovererStreamInfo[];
+    to_variant(flags: DiscovererSerializeFlags): GLib.Variant;
+    static from_variant(variant: GLib.Variant): DiscovererInfo;
+}
+export module DiscovererStreamInfo {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DiscovererStreamInfo extends GObject.Object {
+    static $gtype: GObject.GType<DiscovererStreamInfo>;
+
+    constructor(properties?: Partial<DiscovererStreamInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DiscovererStreamInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_caps(): Gst.Caps;
+    get_misc(): Gst.Structure;
+    get_next(): DiscovererStreamInfo;
+    get_previous(): DiscovererStreamInfo;
+    get_stream_id(): string;
+    get_stream_number(): number;
+    get_stream_type_nick(): string;
+    get_tags(): Gst.TagList;
+    get_toc(): Gst.Toc;
+    static list_free(infos: DiscovererStreamInfo[]): void;
+}
+export module DiscovererSubtitleInfo {
+    export interface ConstructorProperties extends DiscovererStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DiscovererSubtitleInfo extends DiscovererStreamInfo {
+    static $gtype: GObject.GType<DiscovererSubtitleInfo>;
+
+    constructor(properties?: Partial<DiscovererSubtitleInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DiscovererSubtitleInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_language(): string;
+}
+export module DiscovererVideoInfo {
+    export interface ConstructorProperties extends DiscovererStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class DiscovererVideoInfo extends DiscovererStreamInfo {
+    static $gtype: GObject.GType<DiscovererVideoInfo>;
+
+    constructor(properties?: Partial<DiscovererVideoInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DiscovererVideoInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_bitrate(): number;
+    get_depth(): number;
+    get_framerate_denom(): number;
+    get_framerate_num(): number;
+    get_height(): number;
+    get_max_bitrate(): number;
+    get_par_denom(): number;
+    get_par_num(): number;
+    get_width(): number;
+    is_image(): boolean;
+    is_interlaced(): boolean;
+}
+export module EncodingAudioProfile {
+    export interface ConstructorProperties extends EncodingProfile.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EncodingAudioProfile extends EncodingProfile {
+    static $gtype: GObject.GType<EncodingAudioProfile>;
+
+    constructor(properties?: Partial<EncodingAudioProfile.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EncodingAudioProfile.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        format: Gst.Caps,
+        preset: string | null,
+        restriction: Gst.Caps | null,
+        presence: number
+    ): EncodingAudioProfile;
+}
+export module EncodingContainerProfile {
+    export interface ConstructorProperties extends EncodingProfile.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EncodingContainerProfile extends EncodingProfile {
+    static $gtype: GObject.GType<EncodingContainerProfile>;
+
+    constructor(properties?: Partial<EncodingContainerProfile.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EncodingContainerProfile.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        name: string | null,
+        description: string | null,
+        format: Gst.Caps,
+        preset?: string | null
+    ): EncodingContainerProfile;
+
+    // Members
+
+    add_profile(profile: EncodingProfile): boolean;
+    contains_profile(profile: EncodingProfile): boolean;
+    get_profiles(): EncodingProfile[];
+}
+export module EncodingProfile {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        element_properties: Gst.Structure;
+        elementProperties: Gst.Structure;
+        restriction_caps: Gst.Caps;
+        restrictionCaps: Gst.Caps;
+    }
+}
+export class EncodingProfile extends GObject.Object {
+    static $gtype: GObject.GType<EncodingProfile>;
+
+    constructor(properties?: Partial<EncodingProfile.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EncodingProfile.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get element_properties(): Gst.Structure;
+    set element_properties(val: Gst.Structure);
+    get elementProperties(): Gst.Structure;
+    set elementProperties(val: Gst.Structure);
+    get restriction_caps(): Gst.Caps;
+    set restriction_caps(val: Gst.Caps);
+    get restrictionCaps(): Gst.Caps;
+    set restrictionCaps(val: Gst.Caps);
+
+    // Members
+
+    copy(): EncodingProfile;
+    get_allow_dynamic_output(): boolean;
+    get_description(): string;
+    get_element_properties(): Gst.Structure | null;
+    get_file_extension(): string;
+    get_format(): Gst.Caps;
+    get_input_caps(): Gst.Caps;
+    get_name(): string;
+    get_presence(): number;
+    get_preset(): string;
+    get_preset_name(): string;
+    get_restriction(): Gst.Caps;
+    get_single_segment(): boolean;
+    get_type_nick(): string;
+    is_enabled(): boolean;
+    is_equal(b: EncodingProfile): boolean;
+    set_allow_dynamic_output(allow_dynamic_output: boolean): void;
+    set_description(description?: string | null): void;
+    set_element_properties(element_properties: Gst.Structure): void;
+    set_enabled(enabled: boolean): void;
+    set_format(format: Gst.Caps): void;
+    set_name(name?: string | null): void;
+    set_presence(presence: number): void;
+    set_preset(preset?: string | null): void;
+    set_preset_name(preset_name?: string | null): void;
+    set_restriction(restriction?: Gst.Caps | null): void;
+    set_single_segment(single_segment: boolean): void;
+    static find(targetname: string, profilename?: string | null, category?: string | null): EncodingProfile;
+    static from_discoverer(info: DiscovererInfo): EncodingProfile;
+}
+export module EncodingTarget {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EncodingTarget extends GObject.Object {
+    static $gtype: GObject.GType<EncodingTarget>;
+
+    constructor(properties?: Partial<EncodingTarget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EncodingTarget.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](name: string, category: string, description: string, profiles: EncodingProfile[]): 
EncodingTarget;
+
+    // Members
+
+    add_profile(profile: EncodingProfile): boolean;
+    get_category(): string;
+    get_description(): string;
+    get_name(): string;
+    get_path(): string;
+    get_profile(name: string): EncodingProfile;
+    get_profiles(): EncodingProfile[];
+    save(): boolean;
+    save_to_file(filepath: string): boolean;
+    static load(name: string, category?: string | null): EncodingTarget;
+    static load_from_file(filepath: string): EncodingTarget;
+}
+export module EncodingVideoProfile {
+    export interface ConstructorProperties extends EncodingProfile.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EncodingVideoProfile extends EncodingProfile {
+    static $gtype: GObject.GType<EncodingVideoProfile>;
+
+    constructor(properties?: Partial<EncodingVideoProfile.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EncodingVideoProfile.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        format: Gst.Caps,
+        preset: string | null,
+        restriction: Gst.Caps | null,
+        presence: number
+    ): EncodingVideoProfile;
+
+    // Members
+
+    get_pass(): number;
+    get_variableframerate(): boolean;
+    set_pass(pass: number): void;
+    set_variableframerate(variableframerate: boolean): void;
+}
+
+export class AudioVisualizerPrivate {
+    static $gtype: GObject.GType<AudioVisualizerPrivate>;
+
+    constructor(copy: AudioVisualizerPrivate);
+}
+
+export class DiscovererPrivate {
+    static $gtype: GObject.GType<DiscovererPrivate>;
+
+    constructor(copy: DiscovererPrivate);
+}
+
+export class InstallPluginsContext {
+    static $gtype: GObject.GType<InstallPluginsContext>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: InstallPluginsContext);
+
+    // Constructors
+    static ["new"](): InstallPluginsContext;
+
+    // Members
+    copy(): InstallPluginsContext;
+    free(): void;
+    set_confirm_search(confirm_search: boolean): void;
+    set_desktop_id(desktop_id: string): void;
+    set_startup_notification_id(startup_id: string): void;
+    set_xid(xid: number): void;
+}
+export type DiscovererAudioInfoClass = GObject.Object;
+export type DiscovererContainerInfoClass = GObject.Object;
+export type DiscovererInfoClass = GObject.Object;
+export type DiscovererStreamInfoClass = GObject.Object;
+export type DiscovererSubtitleInfoClass = GObject.Object;
+export type DiscovererVideoInfoClass = GObject.Object;
+export type EncodingTargetClass = GObject.Object;
diff --git a/types/gstplayer.d.ts b/types/gstplayer.d.ts
new file mode 100644
index 0000000..e751da3
--- /dev/null
+++ b/types/gstplayer.d.ts
@@ -0,0 +1,464 @@
+/**
+ * GstPlayer 1.0
+ *
+ * Generated from 1.0
+ */
+
+import * as GObject from "gobject";
+import * as Gst from "gst";
+import * as GLib from "glib";
+import * as GstVideo from "gstvideo";
+
+export function player_color_balance_type_get_name(type: PlayerColorBalanceType): string;
+export function player_error_get_name(error: PlayerError): string;
+export function player_error_quark(): GLib.Quark;
+export function player_state_get_name(state: PlayerState): string;
+export type PlayerSignalDispatcherFunc = (data?: any | null) => void;
+
+export namespace PlayerColorBalanceType {
+    export const $gtype: GObject.GType<PlayerColorBalanceType>;
+}
+
+export enum PlayerColorBalanceType {
+    HUE = 3,
+    BRIGHTNESS = 0,
+    SATURATION = 2,
+    CONTRAST = 1,
+}
+
+export class PlayerError extends GLib.Error {
+    static $gtype: GObject.GType<PlayerError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: PlayerError);
+
+    // Fields
+    static FAILED: number;
+
+    // Members
+    static get_name(error: PlayerError): string;
+    static quark(): GLib.Quark;
+}
+
+export namespace PlayerSnapshotFormat {
+    export const $gtype: GObject.GType<PlayerSnapshotFormat>;
+}
+
+export enum PlayerSnapshotFormat {
+    RAW_NATIVE = 0,
+    RAW_XRGB = 1,
+    RAW_BGRX = 2,
+    JPG = 3,
+    PNG = 4,
+}
+
+export namespace PlayerState {
+    export const $gtype: GObject.GType<PlayerState>;
+}
+
+export enum PlayerState {
+    STOPPED = 0,
+    BUFFERING = 1,
+    PAUSED = 2,
+    PLAYING = 3,
+}
+export module Player {
+    export interface ConstructorProperties extends Gst.Object.ConstructorProperties {
+        [key: string]: any;
+        audio_video_offset: number;
+        audioVideoOffset: number;
+        current_audio_track: PlayerAudioInfo;
+        currentAudioTrack: PlayerAudioInfo;
+        current_subtitle_track: PlayerSubtitleInfo;
+        currentSubtitleTrack: PlayerSubtitleInfo;
+        current_video_track: PlayerVideoInfo;
+        currentVideoTrack: PlayerVideoInfo;
+        duration: number;
+        media_info: PlayerMediaInfo;
+        mediaInfo: PlayerMediaInfo;
+        mute: boolean;
+        pipeline: Gst.Element;
+        position: number;
+        rate: number;
+        signal_dispatcher: PlayerSignalDispatcher;
+        signalDispatcher: PlayerSignalDispatcher;
+        subtitle_video_offset: number;
+        subtitleVideoOffset: number;
+        suburi: string;
+        uri: string;
+        video_multiview_flags: GstVideo.VideoMultiviewFlags;
+        videoMultiviewFlags: GstVideo.VideoMultiviewFlags;
+        video_multiview_mode: GstVideo.VideoMultiviewFramePacking;
+        videoMultiviewMode: GstVideo.VideoMultiviewFramePacking;
+        video_renderer: PlayerVideoRenderer;
+        videoRenderer: PlayerVideoRenderer;
+        volume: number;
+    }
+}
+export class Player extends Gst.Object {
+    static $gtype: GObject.GType<Player>;
+
+    constructor(properties?: Partial<Player.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Player.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get audio_video_offset(): number;
+    set audio_video_offset(val: number);
+    get audioVideoOffset(): number;
+    set audioVideoOffset(val: number);
+    get current_audio_track(): PlayerAudioInfo;
+    get currentAudioTrack(): PlayerAudioInfo;
+    get current_subtitle_track(): PlayerSubtitleInfo;
+    get currentSubtitleTrack(): PlayerSubtitleInfo;
+    get current_video_track(): PlayerVideoInfo;
+    get currentVideoTrack(): PlayerVideoInfo;
+    get duration(): number;
+    get media_info(): PlayerMediaInfo;
+    get mediaInfo(): PlayerMediaInfo;
+    get mute(): boolean;
+    set mute(val: boolean);
+    get pipeline(): Gst.Element;
+    get position(): number;
+    get rate(): number;
+    set rate(val: number);
+    set signal_dispatcher(val: PlayerSignalDispatcher);
+    set signalDispatcher(val: PlayerSignalDispatcher);
+    get subtitle_video_offset(): number;
+    set subtitle_video_offset(val: number);
+    get subtitleVideoOffset(): number;
+    set subtitleVideoOffset(val: number);
+    get suburi(): string;
+    set suburi(val: string);
+    get uri(): string;
+    set uri(val: string);
+    get video_multiview_flags(): GstVideo.VideoMultiviewFlags;
+    set video_multiview_flags(val: GstVideo.VideoMultiviewFlags);
+    get videoMultiviewFlags(): GstVideo.VideoMultiviewFlags;
+    set videoMultiviewFlags(val: GstVideo.VideoMultiviewFlags);
+    get video_multiview_mode(): GstVideo.VideoMultiviewFramePacking;
+    set video_multiview_mode(val: GstVideo.VideoMultiviewFramePacking);
+    get videoMultiviewMode(): GstVideo.VideoMultiviewFramePacking;
+    set videoMultiviewMode(val: GstVideo.VideoMultiviewFramePacking);
+    get video_renderer(): PlayerVideoRenderer;
+    get videoRenderer(): PlayerVideoRenderer;
+    get volume(): number;
+    set volume(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "buffering", callback: (_source: this, object: number) => void): number;
+    connect_after(signal: "buffering", callback: (_source: this, object: number) => void): number;
+    emit(signal: "buffering", object: number): void;
+    connect(signal: "duration-changed", callback: (_source: this, object: number) => void): number;
+    connect_after(signal: "duration-changed", callback: (_source: this, object: number) => void): number;
+    emit(signal: "duration-changed", object: number): void;
+    connect(signal: "end-of-stream", callback: (_source: this) => void): number;
+    connect_after(signal: "end-of-stream", callback: (_source: this) => void): number;
+    emit(signal: "end-of-stream"): void;
+    connect(signal: "error", callback: (_source: this, object: GLib.Error) => void): number;
+    connect_after(signal: "error", callback: (_source: this, object: GLib.Error) => void): number;
+    emit(signal: "error", object: GLib.Error): void;
+    connect(signal: "media-info-updated", callback: (_source: this, object: PlayerMediaInfo) => void): 
number;
+    connect_after(signal: "media-info-updated", callback: (_source: this, object: PlayerMediaInfo) => void): 
number;
+    emit(signal: "media-info-updated", object: PlayerMediaInfo): void;
+    connect(signal: "mute-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "mute-changed", callback: (_source: this) => void): number;
+    emit(signal: "mute-changed"): void;
+    connect(signal: "position-updated", callback: (_source: this, object: number) => void): number;
+    connect_after(signal: "position-updated", callback: (_source: this, object: number) => void): number;
+    emit(signal: "position-updated", object: number): void;
+    connect(signal: "seek-done", callback: (_source: this, object: number) => void): number;
+    connect_after(signal: "seek-done", callback: (_source: this, object: number) => void): number;
+    emit(signal: "seek-done", object: number): void;
+    connect(signal: "state-changed", callback: (_source: this, object: PlayerState) => void): number;
+    connect_after(signal: "state-changed", callback: (_source: this, object: PlayerState) => void): number;
+    emit(signal: "state-changed", object: PlayerState): void;
+    connect(signal: "uri-loaded", callback: (_source: this, object: string) => void): number;
+    connect_after(signal: "uri-loaded", callback: (_source: this, object: string) => void): number;
+    emit(signal: "uri-loaded", object: string): void;
+    connect(signal: "video-dimensions-changed", callback: (_source: this, object: number, p0: number) => 
void): number;
+    connect_after(
+        signal: "video-dimensions-changed",
+        callback: (_source: this, object: number, p0: number) => void
+    ): number;
+    emit(signal: "video-dimensions-changed", object: number, p0: number): void;
+    connect(signal: "volume-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "volume-changed", callback: (_source: this) => void): number;
+    emit(signal: "volume-changed"): void;
+    connect(signal: "warning", callback: (_source: this, object: GLib.Error) => void): number;
+    connect_after(signal: "warning", callback: (_source: this, object: GLib.Error) => void): number;
+    emit(signal: "warning", object: GLib.Error): void;
+
+    // Constructors
+
+    static ["new"](
+        video_renderer?: PlayerVideoRenderer | null,
+        signal_dispatcher?: PlayerSignalDispatcher | null
+    ): Player;
+
+    // Members
+
+    get_audio_video_offset(): number;
+    get_color_balance(type: PlayerColorBalanceType): number;
+    get_config(): Gst.Structure;
+    get_current_audio_track(): PlayerAudioInfo | null;
+    get_current_subtitle_track(): PlayerSubtitleInfo | null;
+    get_current_video_track(): PlayerVideoInfo | null;
+    get_current_visualization(): string | null;
+    get_duration(): Gst.ClockTime;
+    get_media_info(): PlayerMediaInfo | null;
+    get_multiview_flags(): GstVideo.VideoMultiviewFlags;
+    get_multiview_mode(): GstVideo.VideoMultiviewFramePacking;
+    get_mute(): boolean;
+    get_pipeline(): Gst.Element;
+    get_position(): Gst.ClockTime;
+    get_rate(): number;
+    get_subtitle_uri(): string | null;
+    get_subtitle_video_offset(): number;
+    get_uri(): string | null;
+    get_video_snapshot(format: PlayerSnapshotFormat, config?: Gst.Structure | null): Gst.Sample | null;
+    get_volume(): number;
+    has_color_balance(): boolean;
+    pause(): void;
+    play(): void;
+    seek(position: Gst.ClockTime): void;
+    set_audio_track(stream_index: number): boolean;
+    set_audio_track_enabled(enabled: boolean): void;
+    set_audio_video_offset(offset: number): void;
+    set_color_balance(type: PlayerColorBalanceType, value: number): void;
+    set_config(config: Gst.Structure): boolean;
+    set_multiview_flags(flags: GstVideo.VideoMultiviewFlags): void;
+    set_multiview_mode(mode: GstVideo.VideoMultiviewFramePacking): void;
+    set_mute(val: boolean): void;
+    set_rate(rate: number): void;
+    set_subtitle_track(stream_index: number): boolean;
+    set_subtitle_track_enabled(enabled: boolean): void;
+    set_subtitle_uri(uri?: string | null): void;
+    set_subtitle_video_offset(offset: number): void;
+    set_uri(uri?: string | null): void;
+    set_video_track(stream_index: number): boolean;
+    set_video_track_enabled(enabled: boolean): void;
+    set_visualization(name?: string | null): boolean;
+    set_visualization_enabled(enabled: boolean): void;
+    set_volume(val: number): void;
+    stop(): void;
+    static config_get_position_update_interval(config: Gst.Structure): number;
+    static config_get_seek_accurate(config: Gst.Structure): boolean;
+    static config_get_user_agent(config: Gst.Structure): string | null;
+    static config_set_position_update_interval(config: Gst.Structure, interval: number): void;
+    static config_set_seek_accurate(config: Gst.Structure, accurate: boolean): void;
+    static config_set_user_agent(config: Gst.Structure, agent?: string | null): void;
+    static get_audio_streams(info: PlayerMediaInfo): PlayerAudioInfo[];
+    static get_subtitle_streams(info: PlayerMediaInfo): PlayerSubtitleInfo[];
+    static get_video_streams(info: PlayerMediaInfo): PlayerVideoInfo[];
+    static visualizations_free(viss: PlayerVisualization): void;
+    static visualizations_get(): PlayerVisualization[];
+}
+export module PlayerAudioInfo {
+    export interface ConstructorProperties extends PlayerStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PlayerAudioInfo extends PlayerStreamInfo {
+    static $gtype: GObject.GType<PlayerAudioInfo>;
+
+    constructor(properties?: Partial<PlayerAudioInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PlayerAudioInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_bitrate(): number;
+    get_channels(): number;
+    get_language(): string | null;
+    get_max_bitrate(): number;
+    get_sample_rate(): number;
+}
+export module PlayerGMainContextSignalDispatcher {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        application_context: GLib.MainContext;
+        applicationContext: GLib.MainContext;
+    }
+}
+export class PlayerGMainContextSignalDispatcher extends GObject.Object implements PlayerSignalDispatcher {
+    static $gtype: GObject.GType<PlayerGMainContextSignalDispatcher>;
+
+    constructor(properties?: Partial<PlayerGMainContextSignalDispatcher.ConstructorProperties>, ...args: 
any[]);
+    _init(properties?: Partial<PlayerGMainContextSignalDispatcher.ConstructorProperties>, ...args: any[]): 
void;
+
+    // Properties
+    get application_context(): GLib.MainContext;
+    get applicationContext(): GLib.MainContext;
+
+    // Members
+
+    static new(application_context?: GLib.MainContext | null): PlayerSignalDispatcher;
+
+    // Implemented Members
+
+    vfunc_dispatch(player: Player, emitter: PlayerSignalDispatcherFunc): void;
+}
+export module PlayerMediaInfo {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PlayerMediaInfo extends GObject.Object {
+    static $gtype: GObject.GType<PlayerMediaInfo>;
+
+    constructor(properties?: Partial<PlayerMediaInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PlayerMediaInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_audio_streams(): PlayerAudioInfo[];
+    get_container_format(): string | null;
+    get_duration(): Gst.ClockTime;
+    get_image_sample(): Gst.Sample | null;
+    get_number_of_audio_streams(): number;
+    get_number_of_streams(): number;
+    get_number_of_subtitle_streams(): number;
+    get_number_of_video_streams(): number;
+    get_stream_list(): PlayerStreamInfo[];
+    get_subtitle_streams(): PlayerSubtitleInfo[];
+    get_tags(): Gst.TagList | null;
+    get_title(): string | null;
+    get_uri(): string;
+    get_video_streams(): PlayerVideoInfo[];
+    is_live(): boolean;
+    is_seekable(): boolean;
+}
+export module PlayerStreamInfo {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class PlayerStreamInfo extends GObject.Object {
+    static $gtype: GObject.GType<PlayerStreamInfo>;
+
+    constructor(properties?: Partial<PlayerStreamInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PlayerStreamInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_caps(): Gst.Caps | null;
+    get_codec(): string | null;
+    get_index(): number;
+    get_stream_type(): string;
+    get_tags(): Gst.TagList | null;
+}
+export module PlayerSubtitleInfo {
+    export interface ConstructorProperties extends PlayerStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PlayerSubtitleInfo extends PlayerStreamInfo {
+    static $gtype: GObject.GType<PlayerSubtitleInfo>;
+
+    constructor(properties?: Partial<PlayerSubtitleInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PlayerSubtitleInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_language(): string | null;
+}
+export module PlayerVideoInfo {
+    export interface ConstructorProperties extends PlayerStreamInfo.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PlayerVideoInfo extends PlayerStreamInfo {
+    static $gtype: GObject.GType<PlayerVideoInfo>;
+
+    constructor(properties?: Partial<PlayerVideoInfo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PlayerVideoInfo.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_bitrate(): number;
+    get_framerate(): [number, number];
+    get_height(): number;
+    get_max_bitrate(): number;
+    get_pixel_aspect_ratio(): [number, number];
+    get_width(): number;
+}
+export module PlayerVideoOverlayVideoRenderer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        video_sink: Gst.Element;
+        videoSink: Gst.Element;
+        window_handle: any;
+        windowHandle: any;
+    }
+}
+export class PlayerVideoOverlayVideoRenderer extends GObject.Object implements PlayerVideoRenderer {
+    static $gtype: GObject.GType<PlayerVideoOverlayVideoRenderer>;
+
+    constructor(properties?: Partial<PlayerVideoOverlayVideoRenderer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PlayerVideoOverlayVideoRenderer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get video_sink(): Gst.Element;
+    set video_sink(val: Gst.Element);
+    get videoSink(): Gst.Element;
+    set videoSink(val: Gst.Element);
+    get window_handle(): any;
+    set window_handle(val: any);
+    get windowHandle(): any;
+    set windowHandle(val: any);
+
+    // Members
+
+    expose(): void;
+    get_render_rectangle(): [number, number, number, number];
+    get_window_handle(): any | null;
+    set_render_rectangle(x: number, y: number, width: number, height: number): void;
+    set_window_handle(window_handle?: any | null): void;
+    static new(window_handle?: any | null): PlayerVideoRenderer;
+    static new_with_sink(window_handle: any | null, video_sink: Gst.Element): PlayerVideoRenderer;
+}
+
+export class PlayerVisualization {
+    static $gtype: GObject.GType<PlayerVisualization>;
+
+    constructor(
+        properties?: Partial<{
+            name?: string;
+            description?: string;
+        }>
+    );
+    constructor(copy: PlayerVisualization);
+
+    // Fields
+    name: string;
+    description: string;
+
+    // Members
+    copy(): PlayerVisualization;
+    free(): void;
+}
+
+export interface PlayerSignalDispatcherNamespace {
+    $gtype: GObject.GType<PlayerSignalDispatcher>;
+    prototype: PlayerSignalDispatcherPrototype;
+}
+export type PlayerSignalDispatcher = PlayerSignalDispatcherPrototype;
+export interface PlayerSignalDispatcherPrototype extends GObject.Object {
+    // Members
+
+    vfunc_dispatch(player: Player, emitter: PlayerSignalDispatcherFunc): void;
+}
+
+export const PlayerSignalDispatcher: PlayerSignalDispatcherNamespace;
+
+export interface PlayerVideoRendererNamespace {
+    $gtype: GObject.GType<PlayerVideoRenderer>;
+    prototype: PlayerVideoRendererPrototype;
+}
+export type PlayerVideoRenderer = PlayerVideoRendererPrototype;
+export interface PlayerVideoRendererPrototype extends GObject.Object {}
+
+export const PlayerVideoRenderer: PlayerVideoRendererNamespace;
diff --git a/types/gtk.d.ts b/types/gtk.d.ts
new file mode 100644
index 0000000..0bcbe74
--- /dev/null
+++ b/types/gtk.d.ts
@@ -0,0 +1,22542 @@
+/**
+ * Gtk 4.0
+ *
+ * Generated from 4.7.0
+ */
+
+import * as Gio from "gio";
+import * as GObject from "gobject";
+import * as Gdk from "gdk";
+import * as GLib from "glib";
+import * as Pango from "pango";
+import * as cairo from "cairo";
+import * as Gsk from "gsk";
+import * as GdkPixbuf from "gdkpixbuf";
+import * as Graphene from "graphene";
+
+export const ACCESSIBLE_VALUE_UNDEFINED: number;
+export const BINARY_AGE: number;
+export const IM_MODULE_EXTENSION_POINT_NAME: string;
+export const INPUT_ERROR: number;
+export const INTERFACE_AGE: number;
+export const INVALID_LIST_POSITION: number;
+export const LEVEL_BAR_OFFSET_FULL: string;
+export const LEVEL_BAR_OFFSET_HIGH: string;
+export const LEVEL_BAR_OFFSET_LOW: string;
+export const MAJOR_VERSION: number;
+export const MAX_COMPOSE_LEN: number;
+export const MEDIA_FILE_EXTENSION_POINT_NAME: string;
+export const MICRO_VERSION: number;
+export const MINOR_VERSION: number;
+export const PAPER_NAME_A3: string;
+export const PAPER_NAME_A4: string;
+export const PAPER_NAME_A5: string;
+export const PAPER_NAME_B5: string;
+export const PAPER_NAME_EXECUTIVE: string;
+export const PAPER_NAME_LEGAL: string;
+export const PAPER_NAME_LETTER: string;
+export const PRINT_SETTINGS_COLLATE: string;
+export const PRINT_SETTINGS_DEFAULT_SOURCE: string;
+export const PRINT_SETTINGS_DITHER: string;
+export const PRINT_SETTINGS_DUPLEX: string;
+export const PRINT_SETTINGS_FINISHINGS: string;
+export const PRINT_SETTINGS_MEDIA_TYPE: string;
+export const PRINT_SETTINGS_NUMBER_UP: string;
+export const PRINT_SETTINGS_NUMBER_UP_LAYOUT: string;
+export const PRINT_SETTINGS_N_COPIES: string;
+export const PRINT_SETTINGS_ORIENTATION: string;
+export const PRINT_SETTINGS_OUTPUT_BASENAME: string;
+export const PRINT_SETTINGS_OUTPUT_BIN: string;
+export const PRINT_SETTINGS_OUTPUT_DIR: string;
+export const PRINT_SETTINGS_OUTPUT_FILE_FORMAT: string;
+export const PRINT_SETTINGS_OUTPUT_URI: string;
+export const PRINT_SETTINGS_PAGE_RANGES: string;
+export const PRINT_SETTINGS_PAGE_SET: string;
+export const PRINT_SETTINGS_PAPER_FORMAT: string;
+export const PRINT_SETTINGS_PAPER_HEIGHT: string;
+export const PRINT_SETTINGS_PAPER_WIDTH: string;
+export const PRINT_SETTINGS_PRINTER: string;
+export const PRINT_SETTINGS_PRINTER_LPI: string;
+export const PRINT_SETTINGS_PRINT_PAGES: string;
+export const PRINT_SETTINGS_QUALITY: string;
+export const PRINT_SETTINGS_RESOLUTION: string;
+export const PRINT_SETTINGS_RESOLUTION_X: string;
+export const PRINT_SETTINGS_RESOLUTION_Y: string;
+export const PRINT_SETTINGS_REVERSE: string;
+export const PRINT_SETTINGS_SCALE: string;
+export const PRINT_SETTINGS_USE_COLOR: string;
+export const PRINT_SETTINGS_WIN32_DRIVER_EXTRA: string;
+export const PRINT_SETTINGS_WIN32_DRIVER_VERSION: string;
+export const PRIORITY_RESIZE: number;
+export const STYLE_PROVIDER_PRIORITY_APPLICATION: number;
+export const STYLE_PROVIDER_PRIORITY_FALLBACK: number;
+export const STYLE_PROVIDER_PRIORITY_SETTINGS: number;
+export const STYLE_PROVIDER_PRIORITY_THEME: number;
+export const STYLE_PROVIDER_PRIORITY_USER: number;
+export const TEXT_VIEW_PRIORITY_VALIDATE: number;
+export const TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID: number;
+export const TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: number;
+export function accelerator_get_default_mod_mask(): Gdk.ModifierType;
+export function accelerator_get_label(accelerator_key: number, accelerator_mods: Gdk.ModifierType): string;
+export function accelerator_get_label_with_keycode(
+    display: Gdk.Display | null,
+    accelerator_key: number,
+    keycode: number,
+    accelerator_mods: Gdk.ModifierType
+): string;
+export function accelerator_name(accelerator_key: number, accelerator_mods: Gdk.ModifierType): string;
+export function accelerator_name_with_keycode(
+    display: Gdk.Display | null,
+    accelerator_key: number,
+    keycode: number,
+    accelerator_mods: Gdk.ModifierType
+): string;
+export function accelerator_parse(accelerator: string): [boolean, number, Gdk.ModifierType | null];
+export function accelerator_parse_with_keycode(
+    accelerator: string,
+    display: Gdk.Display | null
+): [boolean, number, number[] | null, Gdk.ModifierType | null];
+export function accelerator_valid(keyval: number, modifiers: Gdk.ModifierType): boolean;
+export function accessible_property_init_value(property: AccessibleProperty, value: GObject.Value | any): 
void;
+export function accessible_relation_init_value(relation: AccessibleRelation, value: GObject.Value | any): 
void;
+export function accessible_state_init_value(state: AccessibleState, value: GObject.Value | any): void;
+export function bitset_iter_init_at(set: Bitset, target: number): [boolean, BitsetIter, number];
+export function bitset_iter_init_first(set: Bitset): [boolean, BitsetIter, number];
+export function bitset_iter_init_last(set: Bitset): [boolean, BitsetIter, number];
+export function builder_error_quark(): GLib.Quark;
+export function check_version(required_major: number, required_minor: number, required_micro: number): 
string | null;
+export function constraint_vfl_parser_error_quark(): GLib.Quark;
+export function css_parser_error_quark(): GLib.Quark;
+export function css_parser_warning_quark(): GLib.Quark;
+export function disable_setlocale(): void;
+export function distribute_natural_allocation(extra_space: number, sizes: RequestedSize[]): number;
+export function editable_delegate_get_property(
+    object: GObject.Object,
+    prop_id: number,
+    value: GObject.Value | any,
+    pspec: GObject.ParamSpec
+): boolean;
+export function editable_delegate_set_property(
+    object: GObject.Object,
+    prop_id: number,
+    value: GObject.Value | any,
+    pspec: GObject.ParamSpec
+): boolean;
+export function editable_install_properties(object_class: GObject.Object, first_prop: number): number;
+export function enumerate_printers(func: PrinterFunc, wait: boolean): void;
+export function file_chooser_error_quark(): GLib.Quark;
+export function get_binary_age(): number;
+export function get_debug_flags(): DebugFlags;
+export function get_default_language(): Pango.Language;
+export function get_interface_age(): number;
+export function get_locale_direction(): TextDirection;
+export function get_major_version(): number;
+export function get_micro_version(): number;
+export function get_minor_version(): number;
+export function hsv_to_rgb(h: number, s: number, v: number): [number, number, number];
+export function icon_theme_error_quark(): GLib.Quark;
+export function init(): void;
+export function init_check(): boolean;
+export function is_initialized(): boolean;
+export function native_get_for_surface(surface: Gdk.Surface): Native | null;
+export function ordering_from_cmpfunc(cmpfunc_result: number): Ordering;
+export function paper_size_get_default(): string;
+export function paper_size_get_paper_sizes(include_custom: boolean): PaperSize[];
+export function param_spec_expression(
+    name: string,
+    nick: string,
+    blurb: string,
+    flags: GObject.ParamFlags
+): GObject.ParamSpec;
+export function print_error_quark(): GLib.Quark;
+export function print_run_page_setup_dialog(
+    parent: Window | null,
+    page_setup: PageSetup | null,
+    settings: PrintSettings
+): PageSetup;
+export function print_run_page_setup_dialog_async(
+    parent: Window | null,
+    page_setup: PageSetup | null,
+    settings: PrintSettings,
+    done_cb: PageSetupDoneFunc
+): void;
+export function recent_manager_error_quark(): GLib.Quark;
+export function render_activity(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_arrow(
+    context: StyleContext,
+    cr: cairo.Context,
+    angle: number,
+    x: number,
+    y: number,
+    size: number
+): void;
+export function render_background(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_check(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_expander(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_focus(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_frame(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_handle(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function render_icon(context: StyleContext, cr: cairo.Context, texture: Gdk.Texture, x: number, y: 
number): void;
+export function render_layout(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    layout: Pango.Layout
+): void;
+export function render_line(
+    context: StyleContext,
+    cr: cairo.Context,
+    x0: number,
+    y0: number,
+    x1: number,
+    y1: number
+): void;
+export function render_option(
+    context: StyleContext,
+    cr: cairo.Context,
+    x: number,
+    y: number,
+    width: number,
+    height: number
+): void;
+export function rgb_to_hsv(r: number, g: number, b: number): [number, number, number];
+export function set_debug_flags(flags: DebugFlags): void;
+export function show_uri(parent: Window | null, uri: string, timestamp: number): void;
+export function show_uri_full(
+    parent: Window | null,
+    uri: string,
+    timestamp: number,
+    cancellable?: Gio.Cancellable | null
+): void;
+export function show_uri_full_finish(parent: Window, result: Gio.AsyncResult): boolean;
+export function test_accessible_assertion_message_role(
+    domain: string,
+    file: string,
+    line: number,
+    func: string,
+    expr: string,
+    accessible: Accessible,
+    expected_role: AccessibleRole,
+    actual_role: AccessibleRole
+): void;
+export function test_accessible_has_property(accessible: Accessible, property: AccessibleProperty): boolean;
+export function test_accessible_has_relation(accessible: Accessible, relation: AccessibleRelation): boolean;
+export function test_accessible_has_role(accessible: Accessible, role: AccessibleRole): boolean;
+export function test_accessible_has_state(accessible: Accessible, state: AccessibleState): boolean;
+export function test_list_all_types(): GObject.GType[];
+export function test_register_all_types(): void;
+export function test_widget_wait_for_draw(widget: Widget): void;
+export function tree_create_row_drag_content(tree_model: TreeModel, path: TreePath): Gdk.ContentProvider;
+export function tree_get_row_drag_data(value: GObject.Value | any): [boolean, TreeModel | null, TreePath | 
null];
+export function tree_row_reference_deleted(proxy: GObject.Object, path: TreePath): void;
+export function tree_row_reference_inserted(proxy: GObject.Object, path: TreePath): void;
+export function value_dup_expression(value: GObject.Value | any): Expression | null;
+export function value_get_expression(value: GObject.Value | any): Expression | null;
+export function value_set_expression(value: GObject.Value | any, expression: Expression): void;
+export function value_take_expression(value: GObject.Value | any, expression?: Expression | null): void;
+export type AssistantPageFunc = (current_page: number) => number;
+export type CellAllocCallback = (
+    renderer: CellRenderer,
+    cell_area: Gdk.Rectangle,
+    cell_background: Gdk.Rectangle
+) => boolean;
+export type CellCallback = (renderer: CellRenderer) => boolean;
+export type CellLayoutDataFunc = (
+    cell_layout: CellLayout,
+    cell: CellRenderer,
+    tree_model: TreeModel,
+    iter: TreeIter
+) => void;
+export type CustomAllocateFunc = (widget: Widget, width: number, height: number, baseline: number) => void;
+export type CustomFilterFunc<A = GObject.Object> = (item: A) => boolean;
+export type CustomMeasureFunc = (widget: Widget, orientation: Orientation, for_size: number) => void;
+export type CustomRequestModeFunc = (widget: Widget) => SizeRequestMode;
+export type DrawingAreaDrawFunc = (drawing_area: DrawingArea, cr: cairo.Context, width: number, height: 
number) => void;
+export type EntryCompletionMatchFunc = (completion: EntryCompletion, key: string, iter: TreeIter) => boolean;
+export type ExpressionNotify = () => void;
+export type FlowBoxCreateWidgetFunc<A = GObject.Object> = (item: A) => Widget;
+export type FlowBoxFilterFunc = (child: FlowBoxChild) => boolean;
+export type FlowBoxForeachFunc = (box: FlowBox, child: FlowBoxChild) => void;
+export type FlowBoxSortFunc = (child1: FlowBoxChild, child2: FlowBoxChild) => number;
+export type FontFilterFunc = (family: Pango.FontFamily, face: Pango.FontFace) => boolean;
+export type IconViewForeachFunc = (icon_view: IconView, path: TreePath) => void;
+export type ListBoxCreateWidgetFunc<A = GObject.Object> = (item: A) => Widget;
+export type ListBoxFilterFunc = (row: ListBoxRow) => boolean;
+export type ListBoxForeachFunc = (box: ListBox, row: ListBoxRow) => void;
+export type ListBoxSortFunc = (row1: ListBoxRow, row2: ListBoxRow) => number;
+export type ListBoxUpdateHeaderFunc = (row: ListBoxRow, before?: ListBoxRow | null) => void;
+export type MapListModelMapFunc<A = GObject.Object> = (item: A) => GObject.Object;
+export type MenuButtonCreatePopupFunc = (menu_button: MenuButton) => void;
+export type PageSetupDoneFunc = (page_setup: PageSetup) => void;
+export type PrintJobCompleteFunc = (print_job: PrintJob, error: GLib.Error) => void;
+export type PrintSettingsFunc = (key: string, value: string) => void;
+export type PrinterFunc = (printer: Printer) => boolean;
+export type ScaleFormatValueFunc = (scale: Scale, value: number) => string;
+export type ShortcutFunc = (widget: Widget, args?: GLib.Variant | null) => boolean;
+export type TextCharPredicate = (ch: number) => boolean;
+export type TextTagTableForeach = (tag: TextTag) => void;
+export type TickCallback = (widget: Widget, frame_clock: Gdk.FrameClock) => boolean;
+export type TreeCellDataFunc = (
+    tree_column: TreeViewColumn,
+    cell: CellRenderer,
+    tree_model: TreeModel,
+    iter: TreeIter
+) => void;
+export type TreeIterCompareFunc = (model: TreeModel, a: TreeIter, b: TreeIter) => number;
+export type TreeListModelCreateModelFunc<A = GObject.Object> = (item: A) => Gio.ListModel | null;
+export type TreeModelFilterModifyFunc = (model: TreeModel, iter: TreeIter, column: number) => void;
+export type TreeModelFilterVisibleFunc = (model: TreeModel, iter: TreeIter) => boolean;
+export type TreeModelForeachFunc = (model: TreeModel, path: TreePath, iter: TreeIter) => boolean;
+export type TreeSelectionForeachFunc = (model: TreeModel, path: TreePath, iter: TreeIter) => void;
+export type TreeSelectionFunc = (
+    selection: TreeSelection,
+    model: TreeModel,
+    path: TreePath,
+    path_currently_selected: boolean
+) => boolean;
+export type TreeViewColumnDropFunc = (
+    tree_view: TreeView,
+    column: TreeViewColumn,
+    prev_column: TreeViewColumn,
+    next_column: TreeViewColumn
+) => boolean;
+export type TreeViewMappingFunc = (tree_view: TreeView, path: TreePath) => void;
+export type TreeViewRowSeparatorFunc = (model: TreeModel, iter: TreeIter) => boolean;
+export type TreeViewSearchEqualFunc = (model: TreeModel, column: number, key: string, iter: TreeIter) => 
boolean;
+export type WidgetActionActivateFunc = (widget: Widget, action_name: string, parameter: GLib.Variant) => 
void;
+export type TreeRowData = object | null;
+
+export namespace AccessibleAutocomplete {
+    export const $gtype: GObject.GType<AccessibleAutocomplete>;
+}
+
+export enum AccessibleAutocomplete {
+    NONE = 0,
+    INLINE = 1,
+    LIST = 2,
+    BOTH = 3,
+}
+
+export namespace AccessibleInvalidState {
+    export const $gtype: GObject.GType<AccessibleInvalidState>;
+}
+
+export enum AccessibleInvalidState {
+    FALSE = 0,
+    TRUE = 1,
+    GRAMMAR = 2,
+    SPELLING = 3,
+}
+
+export namespace AccessibleProperty {
+    export const $gtype: GObject.GType<AccessibleProperty>;
+}
+
+export enum AccessibleProperty {
+    AUTOCOMPLETE = 0,
+    DESCRIPTION = 1,
+    HAS_POPUP = 2,
+    KEY_SHORTCUTS = 3,
+    LABEL = 4,
+    LEVEL = 5,
+    MODAL = 6,
+    MULTI_LINE = 7,
+    MULTI_SELECTABLE = 8,
+    ORIENTATION = 9,
+    PLACEHOLDER = 10,
+    READ_ONLY = 11,
+    REQUIRED = 12,
+    ROLE_DESCRIPTION = 13,
+    SORT = 14,
+    VALUE_MAX = 15,
+    VALUE_MIN = 16,
+    VALUE_NOW = 17,
+    VALUE_TEXT = 18,
+}
+
+export namespace AccessibleRelation {
+    export const $gtype: GObject.GType<AccessibleRelation>;
+}
+
+export enum AccessibleRelation {
+    ACTIVE_DESCENDANT = 0,
+    COL_COUNT = 1,
+    COL_INDEX = 2,
+    COL_INDEX_TEXT = 3,
+    COL_SPAN = 4,
+    CONTROLS = 5,
+    DESCRIBED_BY = 6,
+    DETAILS = 7,
+    ERROR_MESSAGE = 8,
+    FLOW_TO = 9,
+    LABELLED_BY = 10,
+    OWNS = 11,
+    POS_IN_SET = 12,
+    ROW_COUNT = 13,
+    ROW_INDEX = 14,
+    ROW_INDEX_TEXT = 15,
+    ROW_SPAN = 16,
+    SET_SIZE = 17,
+}
+
+export namespace AccessibleRole {
+    export const $gtype: GObject.GType<AccessibleRole>;
+}
+
+export enum AccessibleRole {
+    ALERT = 0,
+    ALERT_DIALOG = 1,
+    BANNER = 2,
+    BUTTON = 3,
+    CAPTION = 4,
+    CELL = 5,
+    CHECKBOX = 6,
+    COLUMN_HEADER = 7,
+    COMBO_BOX = 8,
+    COMMAND = 9,
+    COMPOSITE = 10,
+    DIALOG = 11,
+    DOCUMENT = 12,
+    FEED = 13,
+    FORM = 14,
+    GENERIC = 15,
+    GRID = 16,
+    GRID_CELL = 17,
+    GROUP = 18,
+    HEADING = 19,
+    IMG = 20,
+    INPUT = 21,
+    LABEL = 22,
+    LANDMARK = 23,
+    LEGEND = 24,
+    LINK = 25,
+    LIST = 26,
+    LIST_BOX = 27,
+    LIST_ITEM = 28,
+    LOG = 29,
+    MAIN = 30,
+    MARQUEE = 31,
+    MATH = 32,
+    METER = 33,
+    MENU = 34,
+    MENU_BAR = 35,
+    MENU_ITEM = 36,
+    MENU_ITEM_CHECKBOX = 37,
+    MENU_ITEM_RADIO = 38,
+    NAVIGATION = 39,
+    NONE = 40,
+    NOTE = 41,
+    OPTION = 42,
+    PRESENTATION = 43,
+    PROGRESS_BAR = 44,
+    RADIO = 45,
+    RADIO_GROUP = 46,
+    RANGE = 47,
+    REGION = 48,
+    ROW = 49,
+    ROW_GROUP = 50,
+    ROW_HEADER = 51,
+    SCROLLBAR = 52,
+    SEARCH = 53,
+    SEARCH_BOX = 54,
+    SECTION = 55,
+    SECTION_HEAD = 56,
+    SELECT = 57,
+    SEPARATOR = 58,
+    SLIDER = 59,
+    SPIN_BUTTON = 60,
+    STATUS = 61,
+    STRUCTURE = 62,
+    SWITCH = 63,
+    TAB = 64,
+    TABLE = 65,
+    TAB_LIST = 66,
+    TAB_PANEL = 67,
+    TEXT_BOX = 68,
+    TIME = 69,
+    TIMER = 70,
+    TOOLBAR = 71,
+    TOOLTIP = 72,
+    TREE = 73,
+    TREE_GRID = 74,
+    TREE_ITEM = 75,
+    WIDGET = 76,
+    WINDOW = 77,
+}
+
+export namespace AccessibleSort {
+    export const $gtype: GObject.GType<AccessibleSort>;
+}
+
+export enum AccessibleSort {
+    NONE = 0,
+    ASCENDING = 1,
+    DESCENDING = 2,
+    OTHER = 3,
+}
+
+export namespace AccessibleState {
+    export const $gtype: GObject.GType<AccessibleState>;
+}
+
+export enum AccessibleState {
+    BUSY = 0,
+    CHECKED = 1,
+    DISABLED = 2,
+    EXPANDED = 3,
+    HIDDEN = 4,
+    INVALID = 5,
+    PRESSED = 6,
+    SELECTED = 7,
+}
+
+export namespace AccessibleTristate {
+    export const $gtype: GObject.GType<AccessibleTristate>;
+}
+
+export enum AccessibleTristate {
+    FALSE = 0,
+    TRUE = 1,
+    MIXED = 2,
+}
+
+export namespace Align {
+    export const $gtype: GObject.GType<Align>;
+}
+
+export enum Align {
+    FILL = 0,
+    START = 1,
+    END = 2,
+    CENTER = 3,
+    BASELINE = 4,
+}
+
+export namespace ArrowType {
+    export const $gtype: GObject.GType<ArrowType>;
+}
+
+export enum ArrowType {
+    UP = 0,
+    DOWN = 1,
+    LEFT = 2,
+    RIGHT = 3,
+    NONE = 4,
+}
+
+export namespace AssistantPageType {
+    export const $gtype: GObject.GType<AssistantPageType>;
+}
+
+export enum AssistantPageType {
+    CONTENT = 0,
+    INTRO = 1,
+    CONFIRM = 2,
+    SUMMARY = 3,
+    PROGRESS = 4,
+    CUSTOM = 5,
+}
+
+export namespace BaselinePosition {
+    export const $gtype: GObject.GType<BaselinePosition>;
+}
+
+export enum BaselinePosition {
+    TOP = 0,
+    CENTER = 1,
+    BOTTOM = 2,
+}
+
+export namespace BorderStyle {
+    export const $gtype: GObject.GType<BorderStyle>;
+}
+
+export enum BorderStyle {
+    NONE = 0,
+    HIDDEN = 1,
+    SOLID = 2,
+    INSET = 3,
+    OUTSET = 4,
+    DOTTED = 5,
+    DASHED = 6,
+    DOUBLE = 7,
+    GROOVE = 8,
+    RIDGE = 9,
+}
+
+export class BuilderError extends GLib.Error {
+    static $gtype: GObject.GType<BuilderError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: BuilderError);
+
+    // Fields
+    static INVALID_TYPE_FUNCTION: number;
+    static UNHANDLED_TAG: number;
+    static MISSING_ATTRIBUTE: number;
+    static INVALID_ATTRIBUTE: number;
+    static INVALID_TAG: number;
+    static MISSING_PROPERTY_VALUE: number;
+    static INVALID_VALUE: number;
+    static VERSION_MISMATCH: number;
+    static DUPLICATE_ID: number;
+    static OBJECT_TYPE_REFUSED: number;
+    static TEMPLATE_MISMATCH: number;
+    static INVALID_PROPERTY: number;
+    static INVALID_SIGNAL: number;
+    static INVALID_ID: number;
+    static INVALID_FUNCTION: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace ButtonsType {
+    export const $gtype: GObject.GType<ButtonsType>;
+}
+
+export enum ButtonsType {
+    NONE = 0,
+    OK = 1,
+    CLOSE = 2,
+    CANCEL = 3,
+    YES_NO = 4,
+    OK_CANCEL = 5,
+}
+
+export namespace CellRendererAccelMode {
+    export const $gtype: GObject.GType<CellRendererAccelMode>;
+}
+
+export enum CellRendererAccelMode {
+    GTK = 0,
+    OTHER = 1,
+}
+
+export namespace CellRendererMode {
+    export const $gtype: GObject.GType<CellRendererMode>;
+}
+
+export enum CellRendererMode {
+    INERT = 0,
+    ACTIVATABLE = 1,
+    EDITABLE = 2,
+}
+
+export namespace ConstraintAttribute {
+    export const $gtype: GObject.GType<ConstraintAttribute>;
+}
+
+export enum ConstraintAttribute {
+    NONE = 0,
+    LEFT = 1,
+    RIGHT = 2,
+    TOP = 3,
+    BOTTOM = 4,
+    START = 5,
+    END = 6,
+    WIDTH = 7,
+    HEIGHT = 8,
+    CENTER_X = 9,
+    CENTER_Y = 10,
+    BASELINE = 11,
+}
+
+export namespace ConstraintRelation {
+    export const $gtype: GObject.GType<ConstraintRelation>;
+}
+
+export enum ConstraintRelation {
+    LE = -1,
+    EQ = 0,
+    GE = 1,
+}
+
+export namespace ConstraintStrength {
+    export const $gtype: GObject.GType<ConstraintStrength>;
+}
+
+export enum ConstraintStrength {
+    REQUIRED = 1001001000,
+    STRONG = 1000000000,
+    MEDIUM = 1000,
+    WEAK = 1,
+}
+
+export class ConstraintVflParserError extends GLib.Error {
+    static $gtype: GObject.GType<ConstraintVflParserError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: ConstraintVflParserError);
+
+    // Fields
+    static SYMBOL: number;
+    static ATTRIBUTE: number;
+    static VIEW: number;
+    static METRIC: number;
+    static PRIORITY: number;
+    static RELATION: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace CornerType {
+    export const $gtype: GObject.GType<CornerType>;
+}
+
+export enum CornerType {
+    TOP_LEFT = 0,
+    BOTTOM_LEFT = 1,
+    TOP_RIGHT = 2,
+    BOTTOM_RIGHT = 3,
+}
+
+export class CssParserError extends GLib.Error {
+    static $gtype: GObject.GType<CssParserError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: CssParserError);
+
+    // Fields
+    static FAILED: number;
+    static SYNTAX: number;
+    static IMPORT: number;
+    static NAME: number;
+    static UNKNOWN_VALUE: number;
+}
+
+export namespace CssParserWarning {
+    export const $gtype: GObject.GType<CssParserWarning>;
+}
+
+export enum CssParserWarning {
+    DEPRECATED = 0,
+    SYNTAX = 1,
+    UNIMPLEMENTED = 2,
+}
+
+export namespace DeleteType {
+    export const $gtype: GObject.GType<DeleteType>;
+}
+
+export enum DeleteType {
+    CHARS = 0,
+    WORD_ENDS = 1,
+    WORDS = 2,
+    DISPLAY_LINES = 3,
+    DISPLAY_LINE_ENDS = 4,
+    PARAGRAPH_ENDS = 5,
+    PARAGRAPHS = 6,
+    WHITESPACE = 7,
+}
+
+export namespace DirectionType {
+    export const $gtype: GObject.GType<DirectionType>;
+}
+
+export enum DirectionType {
+    TAB_FORWARD = 0,
+    TAB_BACKWARD = 1,
+    UP = 2,
+    DOWN = 3,
+    LEFT = 4,
+    RIGHT = 5,
+}
+
+export namespace EditableProperties {
+    export const $gtype: GObject.GType<EditableProperties>;
+}
+
+export enum EditableProperties {
+    PROP_TEXT = 0,
+    PROP_CURSOR_POSITION = 1,
+    PROP_SELECTION_BOUND = 2,
+    PROP_EDITABLE = 3,
+    PROP_WIDTH_CHARS = 4,
+    PROP_MAX_WIDTH_CHARS = 5,
+    PROP_XALIGN = 6,
+    PROP_ENABLE_UNDO = 7,
+    NUM_PROPERTIES = 8,
+}
+
+export namespace EntryIconPosition {
+    export const $gtype: GObject.GType<EntryIconPosition>;
+}
+
+export enum EntryIconPosition {
+    PRIMARY = 0,
+    SECONDARY = 1,
+}
+
+export namespace EventSequenceState {
+    export const $gtype: GObject.GType<EventSequenceState>;
+}
+
+export enum EventSequenceState {
+    NONE = 0,
+    CLAIMED = 1,
+    DENIED = 2,
+}
+
+export namespace FileChooserAction {
+    export const $gtype: GObject.GType<FileChooserAction>;
+}
+
+export enum FileChooserAction {
+    OPEN = 0,
+    SAVE = 1,
+    SELECT_FOLDER = 2,
+}
+
+export class FileChooserError extends GLib.Error {
+    static $gtype: GObject.GType<FileChooserError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: FileChooserError);
+
+    // Fields
+    static NONEXISTENT: number;
+    static BAD_FILENAME: number;
+    static ALREADY_EXISTS: number;
+    static INCOMPLETE_HOSTNAME: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace FilterChange {
+    export const $gtype: GObject.GType<FilterChange>;
+}
+
+export enum FilterChange {
+    DIFFERENT = 0,
+    LESS_STRICT = 1,
+    MORE_STRICT = 2,
+}
+
+export namespace FilterMatch {
+    export const $gtype: GObject.GType<FilterMatch>;
+}
+
+export enum FilterMatch {
+    SOME = 0,
+    NONE = 1,
+    ALL = 2,
+}
+
+export namespace IconSize {
+    export const $gtype: GObject.GType<IconSize>;
+}
+
+export enum IconSize {
+    INHERIT = 0,
+    NORMAL = 1,
+    LARGE = 2,
+}
+
+export class IconThemeError extends GLib.Error {
+    static $gtype: GObject.GType<IconThemeError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: IconThemeError);
+
+    // Fields
+    static NOT_FOUND: number;
+    static FAILED: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace IconViewDropPosition {
+    export const $gtype: GObject.GType<IconViewDropPosition>;
+}
+
+export enum IconViewDropPosition {
+    NO_DROP = 0,
+    DROP_INTO = 1,
+    DROP_LEFT = 2,
+    DROP_RIGHT = 3,
+    DROP_ABOVE = 4,
+    DROP_BELOW = 5,
+}
+
+export namespace ImageType {
+    export const $gtype: GObject.GType<ImageType>;
+}
+
+export enum ImageType {
+    EMPTY = 0,
+    ICON_NAME = 1,
+    GICON = 2,
+    PAINTABLE = 3,
+}
+
+export namespace InputPurpose {
+    export const $gtype: GObject.GType<InputPurpose>;
+}
+
+export enum InputPurpose {
+    FREE_FORM = 0,
+    ALPHA = 1,
+    DIGITS = 2,
+    NUMBER = 3,
+    PHONE = 4,
+    URL = 5,
+    EMAIL = 6,
+    NAME = 7,
+    PASSWORD = 8,
+    PIN = 9,
+    TERMINAL = 10,
+}
+
+export namespace Justification {
+    export const $gtype: GObject.GType<Justification>;
+}
+
+export enum Justification {
+    LEFT = 0,
+    RIGHT = 1,
+    CENTER = 2,
+    FILL = 3,
+}
+
+export namespace LevelBarMode {
+    export const $gtype: GObject.GType<LevelBarMode>;
+}
+
+export enum LevelBarMode {
+    CONTINUOUS = 0,
+    DISCRETE = 1,
+}
+
+export namespace License {
+    export const $gtype: GObject.GType<License>;
+}
+
+export enum License {
+    UNKNOWN = 0,
+    CUSTOM = 1,
+    GPL_2_0 = 2,
+    GPL_3_0 = 3,
+    LGPL_2_1 = 4,
+    LGPL_3_0 = 5,
+    BSD = 6,
+    MIT_X11 = 7,
+    ARTISTIC = 8,
+    GPL_2_0_ONLY = 9,
+    GPL_3_0_ONLY = 10,
+    LGPL_2_1_ONLY = 11,
+    LGPL_3_0_ONLY = 12,
+    AGPL_3_0 = 13,
+    AGPL_3_0_ONLY = 14,
+    BSD_3 = 15,
+    APACHE_2_0 = 16,
+    MPL_2_0 = 17,
+}
+
+export namespace MessageType {
+    export const $gtype: GObject.GType<MessageType>;
+}
+
+export enum MessageType {
+    INFO = 0,
+    WARNING = 1,
+    QUESTION = 2,
+    ERROR = 3,
+    OTHER = 4,
+}
+
+export namespace MovementStep {
+    export const $gtype: GObject.GType<MovementStep>;
+}
+
+export enum MovementStep {
+    LOGICAL_POSITIONS = 0,
+    VISUAL_POSITIONS = 1,
+    WORDS = 2,
+    DISPLAY_LINES = 3,
+    DISPLAY_LINE_ENDS = 4,
+    PARAGRAPHS = 5,
+    PARAGRAPH_ENDS = 6,
+    PAGES = 7,
+    BUFFER_ENDS = 8,
+    HORIZONTAL_PAGES = 9,
+}
+
+export namespace NaturalWrapMode {
+    export const $gtype: GObject.GType<NaturalWrapMode>;
+}
+
+export enum NaturalWrapMode {
+    INHERIT = 0,
+    NONE = 1,
+    WORD = 2,
+}
+
+export namespace NotebookTab {
+    export const $gtype: GObject.GType<NotebookTab>;
+}
+
+export enum NotebookTab {
+    FIRST = 0,
+    LAST = 1,
+}
+
+export namespace NumberUpLayout {
+    export const $gtype: GObject.GType<NumberUpLayout>;
+}
+
+export enum NumberUpLayout {
+    LRTB = 0,
+    LRBT = 1,
+    RLTB = 2,
+    RLBT = 3,
+    TBLR = 4,
+    TBRL = 5,
+    BTLR = 6,
+    BTRL = 7,
+}
+
+export namespace Ordering {
+    export const $gtype: GObject.GType<Ordering>;
+}
+
+export enum Ordering {
+    SMALLER = -1,
+    EQUAL = 0,
+    LARGER = 1,
+}
+
+export namespace Orientation {
+    export const $gtype: GObject.GType<Orientation>;
+}
+
+export enum Orientation {
+    HORIZONTAL = 0,
+    VERTICAL = 1,
+}
+
+export namespace Overflow {
+    export const $gtype: GObject.GType<Overflow>;
+}
+
+export enum Overflow {
+    VISIBLE = 0,
+    HIDDEN = 1,
+}
+
+export namespace PackType {
+    export const $gtype: GObject.GType<PackType>;
+}
+
+export enum PackType {
+    START = 0,
+    END = 1,
+}
+
+export namespace PadActionType {
+    export const $gtype: GObject.GType<PadActionType>;
+}
+
+export enum PadActionType {
+    BUTTON = 0,
+    RING = 1,
+    STRIP = 2,
+}
+
+export namespace PageOrientation {
+    export const $gtype: GObject.GType<PageOrientation>;
+}
+
+export enum PageOrientation {
+    PORTRAIT = 0,
+    LANDSCAPE = 1,
+    REVERSE_PORTRAIT = 2,
+    REVERSE_LANDSCAPE = 3,
+}
+
+export namespace PageSet {
+    export const $gtype: GObject.GType<PageSet>;
+}
+
+export enum PageSet {
+    ALL = 0,
+    EVEN = 1,
+    ODD = 2,
+}
+
+export namespace PanDirection {
+    export const $gtype: GObject.GType<PanDirection>;
+}
+
+export enum PanDirection {
+    LEFT = 0,
+    RIGHT = 1,
+    UP = 2,
+    DOWN = 3,
+}
+
+export namespace PolicyType {
+    export const $gtype: GObject.GType<PolicyType>;
+}
+
+export enum PolicyType {
+    ALWAYS = 0,
+    AUTOMATIC = 1,
+    NEVER = 2,
+    EXTERNAL = 3,
+}
+
+export namespace PositionType {
+    export const $gtype: GObject.GType<PositionType>;
+}
+
+export enum PositionType {
+    LEFT = 0,
+    RIGHT = 1,
+    TOP = 2,
+    BOTTOM = 3,
+}
+
+export namespace PrintDuplex {
+    export const $gtype: GObject.GType<PrintDuplex>;
+}
+
+export enum PrintDuplex {
+    SIMPLEX = 0,
+    HORIZONTAL = 1,
+    VERTICAL = 2,
+}
+
+export class PrintError extends GLib.Error {
+    static $gtype: GObject.GType<PrintError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: PrintError);
+
+    // Fields
+    static GENERAL: number;
+    static INTERNAL_ERROR: number;
+    static NOMEM: number;
+    static INVALID_FILE: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace PrintOperationAction {
+    export const $gtype: GObject.GType<PrintOperationAction>;
+}
+
+export enum PrintOperationAction {
+    PRINT_DIALOG = 0,
+    PRINT = 1,
+    PREVIEW = 2,
+    EXPORT = 3,
+}
+
+export namespace PrintOperationResult {
+    export const $gtype: GObject.GType<PrintOperationResult>;
+}
+
+export enum PrintOperationResult {
+    ERROR = 0,
+    APPLY = 1,
+    CANCEL = 2,
+    IN_PROGRESS = 3,
+}
+
+export namespace PrintPages {
+    export const $gtype: GObject.GType<PrintPages>;
+}
+
+export enum PrintPages {
+    ALL = 0,
+    CURRENT = 1,
+    RANGES = 2,
+    SELECTION = 3,
+}
+
+export namespace PrintQuality {
+    export const $gtype: GObject.GType<PrintQuality>;
+}
+
+export enum PrintQuality {
+    LOW = 0,
+    NORMAL = 1,
+    HIGH = 2,
+    DRAFT = 3,
+}
+
+export namespace PrintStatus {
+    export const $gtype: GObject.GType<PrintStatus>;
+}
+
+export enum PrintStatus {
+    INITIAL = 0,
+    PREPARING = 1,
+    GENERATING_DATA = 2,
+    SENDING_DATA = 3,
+    PENDING = 4,
+    PENDING_ISSUE = 5,
+    PRINTING = 6,
+    FINISHED = 7,
+    FINISHED_ABORTED = 8,
+}
+
+export namespace PropagationLimit {
+    export const $gtype: GObject.GType<PropagationLimit>;
+}
+
+export enum PropagationLimit {
+    NONE = 0,
+    SAME_NATIVE = 1,
+}
+
+export namespace PropagationPhase {
+    export const $gtype: GObject.GType<PropagationPhase>;
+}
+
+export enum PropagationPhase {
+    NONE = 0,
+    CAPTURE = 1,
+    BUBBLE = 2,
+    TARGET = 3,
+}
+
+export class RecentManagerError extends GLib.Error {
+    static $gtype: GObject.GType<RecentManagerError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: RecentManagerError);
+
+    // Fields
+    static NOT_FOUND: number;
+    static INVALID_URI: number;
+    static INVALID_ENCODING: number;
+    static NOT_REGISTERED: number;
+    static READ: number;
+    static WRITE: number;
+    static UNKNOWN: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace ResponseType {
+    export const $gtype: GObject.GType<ResponseType>;
+}
+
+export enum ResponseType {
+    NONE = -1,
+    REJECT = -2,
+    ACCEPT = -3,
+    DELETE_EVENT = -4,
+    OK = -5,
+    CANCEL = -6,
+    CLOSE = -7,
+    YES = -8,
+    NO = -9,
+    APPLY = -10,
+    HELP = -11,
+}
+
+export namespace RevealerTransitionType {
+    export const $gtype: GObject.GType<RevealerTransitionType>;
+}
+
+export enum RevealerTransitionType {
+    NONE = 0,
+    CROSSFADE = 1,
+    SLIDE_RIGHT = 2,
+    SLIDE_LEFT = 3,
+    SLIDE_UP = 4,
+    SLIDE_DOWN = 5,
+    SWING_RIGHT = 6,
+    SWING_LEFT = 7,
+    SWING_UP = 8,
+    SWING_DOWN = 9,
+}
+
+export namespace ScrollStep {
+    export const $gtype: GObject.GType<ScrollStep>;
+}
+
+export enum ScrollStep {
+    STEPS = 0,
+    PAGES = 1,
+    ENDS = 2,
+    HORIZONTAL_STEPS = 3,
+    HORIZONTAL_PAGES = 4,
+    HORIZONTAL_ENDS = 5,
+}
+
+export namespace ScrollType {
+    export const $gtype: GObject.GType<ScrollType>;
+}
+
+export enum ScrollType {
+    NONE = 0,
+    JUMP = 1,
+    STEP_BACKWARD = 2,
+    STEP_FORWARD = 3,
+    PAGE_BACKWARD = 4,
+    PAGE_FORWARD = 5,
+    STEP_UP = 6,
+    STEP_DOWN = 7,
+    PAGE_UP = 8,
+    PAGE_DOWN = 9,
+    STEP_LEFT = 10,
+    STEP_RIGHT = 11,
+    PAGE_LEFT = 12,
+    PAGE_RIGHT = 13,
+    START = 14,
+    END = 15,
+}
+
+export namespace ScrollablePolicy {
+    export const $gtype: GObject.GType<ScrollablePolicy>;
+}
+
+export enum ScrollablePolicy {
+    MINIMUM = 0,
+    NATURAL = 1,
+}
+
+export namespace SelectionMode {
+    export const $gtype: GObject.GType<SelectionMode>;
+}
+
+export enum SelectionMode {
+    NONE = 0,
+    SINGLE = 1,
+    BROWSE = 2,
+    MULTIPLE = 3,
+}
+
+export namespace SensitivityType {
+    export const $gtype: GObject.GType<SensitivityType>;
+}
+
+export enum SensitivityType {
+    AUTO = 0,
+    ON = 1,
+    OFF = 2,
+}
+
+export namespace ShortcutScope {
+    export const $gtype: GObject.GType<ShortcutScope>;
+}
+
+export enum ShortcutScope {
+    LOCAL = 0,
+    MANAGED = 1,
+    GLOBAL = 2,
+}
+
+export namespace ShortcutType {
+    export const $gtype: GObject.GType<ShortcutType>;
+}
+
+export enum ShortcutType {
+    ACCELERATOR = 0,
+    GESTURE_PINCH = 1,
+    GESTURE_STRETCH = 2,
+    GESTURE_ROTATE_CLOCKWISE = 3,
+    GESTURE_ROTATE_COUNTERCLOCKWISE = 4,
+    GESTURE_TWO_FINGER_SWIPE_LEFT = 5,
+    GESTURE_TWO_FINGER_SWIPE_RIGHT = 6,
+    GESTURE = 7,
+    GESTURE_SWIPE_LEFT = 8,
+    GESTURE_SWIPE_RIGHT = 9,
+}
+
+export namespace SizeGroupMode {
+    export const $gtype: GObject.GType<SizeGroupMode>;
+}
+
+export enum SizeGroupMode {
+    NONE = 0,
+    HORIZONTAL = 1,
+    VERTICAL = 2,
+    BOTH = 3,
+}
+
+export namespace SizeRequestMode {
+    export const $gtype: GObject.GType<SizeRequestMode>;
+}
+
+export enum SizeRequestMode {
+    HEIGHT_FOR_WIDTH = 0,
+    WIDTH_FOR_HEIGHT = 1,
+    CONSTANT_SIZE = 2,
+}
+
+export namespace SortType {
+    export const $gtype: GObject.GType<SortType>;
+}
+
+export enum SortType {
+    ASCENDING = 0,
+    DESCENDING = 1,
+}
+
+export namespace SorterChange {
+    export const $gtype: GObject.GType<SorterChange>;
+}
+
+export enum SorterChange {
+    DIFFERENT = 0,
+    INVERTED = 1,
+    LESS_STRICT = 2,
+    MORE_STRICT = 3,
+}
+
+export namespace SorterOrder {
+    export const $gtype: GObject.GType<SorterOrder>;
+}
+
+export enum SorterOrder {
+    PARTIAL = 0,
+    NONE = 1,
+    TOTAL = 2,
+}
+
+export namespace SpinButtonUpdatePolicy {
+    export const $gtype: GObject.GType<SpinButtonUpdatePolicy>;
+}
+
+export enum SpinButtonUpdatePolicy {
+    ALWAYS = 0,
+    IF_VALID = 1,
+}
+
+export namespace SpinType {
+    export const $gtype: GObject.GType<SpinType>;
+}
+
+export enum SpinType {
+    STEP_FORWARD = 0,
+    STEP_BACKWARD = 1,
+    PAGE_FORWARD = 2,
+    PAGE_BACKWARD = 3,
+    HOME = 4,
+    END = 5,
+    USER_DEFINED = 6,
+}
+
+export namespace StackTransitionType {
+    export const $gtype: GObject.GType<StackTransitionType>;
+}
+
+export enum StackTransitionType {
+    NONE = 0,
+    CROSSFADE = 1,
+    SLIDE_RIGHT = 2,
+    SLIDE_LEFT = 3,
+    SLIDE_UP = 4,
+    SLIDE_DOWN = 5,
+    SLIDE_LEFT_RIGHT = 6,
+    SLIDE_UP_DOWN = 7,
+    OVER_UP = 8,
+    OVER_DOWN = 9,
+    OVER_LEFT = 10,
+    OVER_RIGHT = 11,
+    UNDER_UP = 12,
+    UNDER_DOWN = 13,
+    UNDER_LEFT = 14,
+    UNDER_RIGHT = 15,
+    OVER_UP_DOWN = 16,
+    OVER_DOWN_UP = 17,
+    OVER_LEFT_RIGHT = 18,
+    OVER_RIGHT_LEFT = 19,
+    ROTATE_LEFT = 20,
+    ROTATE_RIGHT = 21,
+    ROTATE_LEFT_RIGHT = 22,
+}
+
+export namespace StringFilterMatchMode {
+    export const $gtype: GObject.GType<StringFilterMatchMode>;
+}
+
+export enum StringFilterMatchMode {
+    EXACT = 0,
+    SUBSTRING = 1,
+    PREFIX = 2,
+}
+
+export namespace SymbolicColor {
+    export const $gtype: GObject.GType<SymbolicColor>;
+}
+
+export enum SymbolicColor {
+    FOREGROUND = 0,
+    ERROR = 1,
+    WARNING = 2,
+    SUCCESS = 3,
+}
+
+export namespace SystemSetting {
+    export const $gtype: GObject.GType<SystemSetting>;
+}
+
+export enum SystemSetting {
+    DPI = 0,
+    FONT_NAME = 1,
+    FONT_CONFIG = 2,
+    DISPLAY = 3,
+    ICON_THEME = 4,
+}
+
+export namespace TextDirection {
+    export const $gtype: GObject.GType<TextDirection>;
+}
+
+export enum TextDirection {
+    NONE = 0,
+    LTR = 1,
+    RTL = 2,
+}
+
+export namespace TextExtendSelection {
+    export const $gtype: GObject.GType<TextExtendSelection>;
+}
+
+export enum TextExtendSelection {
+    WORD = 0,
+    LINE = 1,
+}
+
+export namespace TextViewLayer {
+    export const $gtype: GObject.GType<TextViewLayer>;
+}
+
+export enum TextViewLayer {
+    BELOW_TEXT = 0,
+    ABOVE_TEXT = 1,
+}
+
+export namespace TextWindowType {
+    export const $gtype: GObject.GType<TextWindowType>;
+}
+
+export enum TextWindowType {
+    WIDGET = 1,
+    TEXT = 2,
+    LEFT = 3,
+    RIGHT = 4,
+    TOP = 5,
+    BOTTOM = 6,
+}
+
+export namespace TreeViewColumnSizing {
+    export const $gtype: GObject.GType<TreeViewColumnSizing>;
+}
+
+export enum TreeViewColumnSizing {
+    GROW_ONLY = 0,
+    AUTOSIZE = 1,
+    FIXED = 2,
+}
+
+export namespace TreeViewDropPosition {
+    export const $gtype: GObject.GType<TreeViewDropPosition>;
+}
+
+export enum TreeViewDropPosition {
+    BEFORE = 0,
+    AFTER = 1,
+    INTO_OR_BEFORE = 2,
+    INTO_OR_AFTER = 3,
+}
+
+export namespace TreeViewGridLines {
+    export const $gtype: GObject.GType<TreeViewGridLines>;
+}
+
+export enum TreeViewGridLines {
+    NONE = 0,
+    HORIZONTAL = 1,
+    VERTICAL = 2,
+    BOTH = 3,
+}
+
+export namespace Unit {
+    export const $gtype: GObject.GType<Unit>;
+}
+
+export enum Unit {
+    NONE = 0,
+    POINTS = 1,
+    INCH = 2,
+    MM = 3,
+}
+
+export namespace WrapMode {
+    export const $gtype: GObject.GType<WrapMode>;
+}
+
+export enum WrapMode {
+    NONE = 0,
+    CHAR = 1,
+    WORD = 2,
+    WORD_CHAR = 3,
+}
+
+export namespace ApplicationInhibitFlags {
+    export const $gtype: GObject.GType<ApplicationInhibitFlags>;
+}
+
+export enum ApplicationInhibitFlags {
+    LOGOUT = 1,
+    SWITCH = 2,
+    SUSPEND = 4,
+    IDLE = 8,
+}
+
+export namespace BuilderClosureFlags {
+    export const $gtype: GObject.GType<BuilderClosureFlags>;
+}
+
+export enum BuilderClosureFlags {
+    SWAPPED = 1,
+}
+
+export namespace CellRendererState {
+    export const $gtype: GObject.GType<CellRendererState>;
+}
+
+export enum CellRendererState {
+    SELECTED = 1,
+    PRELIT = 2,
+    INSENSITIVE = 4,
+    SORTED = 8,
+    FOCUSED = 16,
+    EXPANDABLE = 32,
+    EXPANDED = 64,
+}
+
+export namespace DebugFlags {
+    export const $gtype: GObject.GType<DebugFlags>;
+}
+
+export enum DebugFlags {
+    TEXT = 1,
+    TREE = 2,
+    KEYBINDINGS = 4,
+    MODULES = 8,
+    GEOMETRY = 16,
+    ICONTHEME = 32,
+    PRINTING = 64,
+    BUILDER = 128,
+    SIZE_REQUEST = 256,
+    NO_CSS_CACHE = 512,
+    INTERACTIVE = 1024,
+    TOUCHSCREEN = 2048,
+    ACTIONS = 4096,
+    LAYOUT = 8192,
+    SNAPSHOT = 16384,
+    CONSTRAINTS = 32768,
+    BUILDER_OBJECTS = 65536,
+    A11Y = 131072,
+    ICONFALLBACK = 262144,
+}
+
+export namespace DialogFlags {
+    export const $gtype: GObject.GType<DialogFlags>;
+}
+
+export enum DialogFlags {
+    MODAL = 1,
+    DESTROY_WITH_PARENT = 2,
+    USE_HEADER_BAR = 4,
+}
+
+export namespace EventControllerScrollFlags {
+    export const $gtype: GObject.GType<EventControllerScrollFlags>;
+}
+
+export enum EventControllerScrollFlags {
+    NONE = 0,
+    VERTICAL = 1,
+    HORIZONTAL = 2,
+    DISCRETE = 4,
+    KINETIC = 8,
+    BOTH_AXES = 3,
+}
+
+export namespace FontChooserLevel {
+    export const $gtype: GObject.GType<FontChooserLevel>;
+}
+
+export enum FontChooserLevel {
+    FAMILY = 0,
+    STYLE = 1,
+    SIZE = 2,
+    VARIATIONS = 4,
+    FEATURES = 8,
+}
+
+export namespace IconLookupFlags {
+    export const $gtype: GObject.GType<IconLookupFlags>;
+}
+
+export enum IconLookupFlags {
+    FORCE_REGULAR = 1,
+    FORCE_SYMBOLIC = 2,
+    PRELOAD = 4,
+}
+
+export namespace InputHints {
+    export const $gtype: GObject.GType<InputHints>;
+}
+
+export enum InputHints {
+    NONE = 0,
+    SPELLCHECK = 1,
+    NO_SPELLCHECK = 2,
+    WORD_COMPLETION = 4,
+    LOWERCASE = 8,
+    UPPERCASE_CHARS = 16,
+    UPPERCASE_WORDS = 32,
+    UPPERCASE_SENTENCES = 64,
+    INHIBIT_OSK = 128,
+    VERTICAL_WRITING = 256,
+    EMOJI = 512,
+    NO_EMOJI = 1024,
+    PRIVATE = 2048,
+}
+
+export namespace PickFlags {
+    export const $gtype: GObject.GType<PickFlags>;
+}
+
+export enum PickFlags {
+    DEFAULT = 0,
+    INSENSITIVE = 1,
+    NON_TARGETABLE = 2,
+}
+
+export namespace PopoverMenuFlags {
+    export const $gtype: GObject.GType<PopoverMenuFlags>;
+}
+
+export enum PopoverMenuFlags {
+    NESTED = 1,
+}
+
+export namespace PrintCapabilities {
+    export const $gtype: GObject.GType<PrintCapabilities>;
+}
+
+export enum PrintCapabilities {
+    PAGE_SET = 1,
+    COPIES = 2,
+    COLLATE = 4,
+    REVERSE = 8,
+    SCALE = 16,
+    GENERATE_PDF = 32,
+    GENERATE_PS = 64,
+    PREVIEW = 128,
+    NUMBER_UP = 256,
+    NUMBER_UP_LAYOUT = 512,
+}
+
+export namespace ShortcutActionFlags {
+    export const $gtype: GObject.GType<ShortcutActionFlags>;
+}
+
+export enum ShortcutActionFlags {
+    EXCLUSIVE = 1,
+}
+
+export namespace StateFlags {
+    export const $gtype: GObject.GType<StateFlags>;
+}
+
+export enum StateFlags {
+    NORMAL = 0,
+    ACTIVE = 1,
+    PRELIGHT = 2,
+    SELECTED = 4,
+    INSENSITIVE = 8,
+    INCONSISTENT = 16,
+    FOCUSED = 32,
+    BACKDROP = 64,
+    DIR_LTR = 128,
+    DIR_RTL = 256,
+    LINK = 512,
+    VISITED = 1024,
+    CHECKED = 2048,
+    DROP_ACTIVE = 4096,
+    FOCUS_VISIBLE = 8192,
+    FOCUS_WITHIN = 16384,
+}
+
+export namespace StyleContextPrintFlags {
+    export const $gtype: GObject.GType<StyleContextPrintFlags>;
+}
+
+export enum StyleContextPrintFlags {
+    NONE = 0,
+    RECURSE = 1,
+    SHOW_STYLE = 2,
+    SHOW_CHANGE = 4,
+}
+
+export namespace TextSearchFlags {
+    export const $gtype: GObject.GType<TextSearchFlags>;
+}
+
+export enum TextSearchFlags {
+    VISIBLE_ONLY = 1,
+    TEXT_ONLY = 2,
+    CASE_INSENSITIVE = 4,
+}
+
+export namespace TreeModelFlags {
+    export const $gtype: GObject.GType<TreeModelFlags>;
+}
+
+export enum TreeModelFlags {
+    ITERS_PERSIST = 1,
+    LIST_ONLY = 2,
+}
+export module ATContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        accessible: Accessible;
+        accessible_role: AccessibleRole;
+        accessibleRole: AccessibleRole;
+        display: Gdk.Display;
+    }
+}
+export abstract class ATContext extends GObject.Object {
+    static $gtype: GObject.GType<ATContext>;
+
+    constructor(properties?: Partial<ATContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ATContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accessible(): Accessible;
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get display(): Gdk.Display;
+    set display(val: Gdk.Display);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "state-change", callback: (_source: this) => void): number;
+    connect_after(signal: "state-change", callback: (_source: this) => void): number;
+    emit(signal: "state-change"): void;
+
+    // Constructors
+
+    static create(accessible_role: AccessibleRole, accessible: Accessible, display: Gdk.Display): ATContext;
+
+    // Members
+
+    get_accessible(): Accessible;
+    get_accessible_role(): AccessibleRole;
+}
+export module AboutDialog {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        artists: string[];
+        authors: string[];
+        comments: string;
+        copyright: string;
+        documenters: string[];
+        license: string;
+        license_type: License;
+        licenseType: License;
+        logo: Gdk.Paintable;
+        logo_icon_name: string;
+        logoIconName: string;
+        program_name: string;
+        programName: string;
+        system_information: string;
+        systemInformation: string;
+        translator_credits: string;
+        translatorCredits: string;
+        version: string;
+        website: string;
+        website_label: string;
+        websiteLabel: string;
+        wrap_license: boolean;
+        wrapLicense: boolean;
+    }
+}
+export class AboutDialog
+    extends Window
+    implements Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<AboutDialog>;
+
+    constructor(properties?: Partial<AboutDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AboutDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get artists(): string[];
+    set artists(val: string[]);
+    get authors(): string[];
+    set authors(val: string[]);
+    get comments(): string;
+    set comments(val: string);
+    get copyright(): string;
+    set copyright(val: string);
+    get documenters(): string[];
+    set documenters(val: string[]);
+    get license(): string;
+    set license(val: string);
+    get license_type(): License;
+    set license_type(val: License);
+    get licenseType(): License;
+    set licenseType(val: License);
+    get logo(): Gdk.Paintable;
+    set logo(val: Gdk.Paintable);
+    get logo_icon_name(): string;
+    set logo_icon_name(val: string);
+    get logoIconName(): string;
+    set logoIconName(val: string);
+    get program_name(): string;
+    set program_name(val: string);
+    get programName(): string;
+    set programName(val: string);
+    get system_information(): string;
+    set system_information(val: string);
+    get systemInformation(): string;
+    set systemInformation(val: string);
+    get translator_credits(): string;
+    set translator_credits(val: string);
+    get translatorCredits(): string;
+    set translatorCredits(val: string);
+    get version(): string;
+    set version(val: string);
+    get website(): string;
+    set website(val: string);
+    get website_label(): string;
+    set website_label(val: string);
+    get websiteLabel(): string;
+    set websiteLabel(val: string);
+    get wrap_license(): boolean;
+    set wrap_license(val: boolean);
+    get wrapLicense(): boolean;
+    set wrapLicense(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-link", callback: (_source: this, uri: string) => boolean): number;
+    connect_after(signal: "activate-link", callback: (_source: this, uri: string) => boolean): number;
+    emit(signal: "activate-link", uri: string): void;
+
+    // Constructors
+
+    static ["new"](): AboutDialog;
+
+    // Members
+
+    add_credit_section(section_name: string, people: string[]): void;
+    get_artists(): string[];
+    get_authors(): string[];
+    get_comments(): string | null;
+    get_copyright(): string | null;
+    get_documenters(): string[];
+    get_license(): string | null;
+    get_license_type(): License;
+    get_logo(): Gdk.Paintable | null;
+    get_logo_icon_name(): string | null;
+    get_program_name(): string | null;
+    get_system_information(): string | null;
+    get_translator_credits(): string | null;
+    get_version(): string | null;
+    get_website(): string | null;
+    get_website_label(): string | null;
+    get_wrap_license(): boolean;
+    set_artists(artists: string[]): void;
+    set_authors(authors: string[]): void;
+    set_comments(comments?: string | null): void;
+    set_copyright(copyright?: string | null): void;
+    set_documenters(documenters: string[]): void;
+    set_license(license?: string | null): void;
+    set_license_type(license_type: License): void;
+    set_logo(logo?: Gdk.Paintable | null): void;
+    set_logo_icon_name(icon_name?: string | null): void;
+    set_program_name(name?: string | null): void;
+    set_system_information(system_information?: string | null): void;
+    set_translator_credits(translator_credits?: string | null): void;
+    set_version(version?: string | null): void;
+    set_website(website?: string | null): void;
+    set_website_label(website_label: string): void;
+    set_wrap_license(wrap_license: boolean): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module ActionBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        revealed: boolean;
+    }
+}
+export class ActionBar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ActionBar>;
+
+    constructor(properties?: Partial<ActionBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ActionBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get revealed(): boolean;
+    set revealed(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ActionBar;
+
+    // Members
+
+    get_center_widget(): Widget | null;
+    get_revealed(): boolean;
+    pack_end(child: Widget): void;
+    pack_start(child: Widget): void;
+    remove(child: Widget): void;
+    set_center_widget(center_widget?: Widget | null): void;
+    set_revealed(revealed: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ActivateAction {
+    export interface ConstructorProperties extends ShortcutAction.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ActivateAction extends ShortcutAction {
+    static $gtype: GObject.GType<ActivateAction>;
+
+    constructor(properties?: Partial<ActivateAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ActivateAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static get(): ActivateAction;
+}
+export module Adjustment {
+    export interface ConstructorProperties extends GObject.InitiallyUnowned.ConstructorProperties {
+        [key: string]: any;
+        lower: number;
+        page_increment: number;
+        pageIncrement: number;
+        page_size: number;
+        pageSize: number;
+        step_increment: number;
+        stepIncrement: number;
+        upper: number;
+        value: number;
+    }
+}
+export class Adjustment extends GObject.InitiallyUnowned {
+    static $gtype: GObject.GType<Adjustment>;
+
+    constructor(properties?: Partial<Adjustment.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Adjustment.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get lower(): number;
+    set lower(val: number);
+    get page_increment(): number;
+    set page_increment(val: number);
+    get pageIncrement(): number;
+    set pageIncrement(val: number);
+    get page_size(): number;
+    set page_size(val: number);
+    get pageSize(): number;
+    set pageSize(val: number);
+    get step_increment(): number;
+    set step_increment(val: number);
+    get stepIncrement(): number;
+    set stepIncrement(val: number);
+    get upper(): number;
+    set upper(val: number);
+    get value(): number;
+    set value(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+    connect(signal: "value-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "value-changed", callback: (_source: this) => void): number;
+    emit(signal: "value-changed"): void;
+
+    // Constructors
+
+    static ["new"](
+        value: number,
+        lower: number,
+        upper: number,
+        step_increment: number,
+        page_increment: number,
+        page_size: number
+    ): Adjustment;
+
+    // Members
+
+    clamp_page(lower: number, upper: number): void;
+    configure(
+        value: number,
+        lower: number,
+        upper: number,
+        step_increment: number,
+        page_increment: number,
+        page_size: number
+    ): void;
+    get_lower(): number;
+    get_minimum_increment(): number;
+    get_page_increment(): number;
+    get_page_size(): number;
+    get_step_increment(): number;
+    get_upper(): number;
+    get_value(): number;
+    set_lower(lower: number): void;
+    set_page_increment(page_increment: number): void;
+    set_page_size(page_size: number): void;
+    set_step_increment(step_increment: number): void;
+    set_upper(upper: number): void;
+    set_value(value: number): void;
+    vfunc_changed(): void;
+    vfunc_value_changed(): void;
+}
+export module AlternativeTrigger {
+    export interface ConstructorProperties extends ShortcutTrigger.ConstructorProperties {
+        [key: string]: any;
+        first: ShortcutTrigger;
+        second: ShortcutTrigger;
+    }
+}
+export class AlternativeTrigger extends ShortcutTrigger {
+    static $gtype: GObject.GType<AlternativeTrigger>;
+
+    constructor(properties?: Partial<AlternativeTrigger.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AlternativeTrigger.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get first(): ShortcutTrigger;
+    get second(): ShortcutTrigger;
+
+    // Constructors
+
+    static ["new"](first: ShortcutTrigger, second: ShortcutTrigger): AlternativeTrigger;
+
+    // Members
+
+    get_first(): ShortcutTrigger;
+    get_second(): ShortcutTrigger;
+}
+export module AnyFilter {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends MultiFilter.ConstructorProperties<A> {
+        [key: string]: any;
+    }
+}
+export class AnyFilter<A extends GObject.Object = GObject.Object>
+    extends MultiFilter<A>
+    implements Gio.ListModel<A>, Buildable
+{
+    static $gtype: GObject.GType<AnyFilter>;
+
+    constructor(properties?: Partial<AnyFilter.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<AnyFilter.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): AnyFilter;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module AppChooserButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        heading: string;
+        modal: boolean;
+        show_default_item: boolean;
+        showDefaultItem: boolean;
+        show_dialog_item: boolean;
+        showDialogItem: boolean;
+    }
+}
+export class AppChooserButton extends Widget implements Accessible, AppChooser, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<AppChooserButton>;
+
+    constructor(properties?: Partial<AppChooserButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AppChooserButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get heading(): string;
+    set heading(val: string);
+    get modal(): boolean;
+    set modal(val: boolean);
+    get show_default_item(): boolean;
+    set show_default_item(val: boolean);
+    get showDefaultItem(): boolean;
+    set showDefaultItem(val: boolean);
+    get show_dialog_item(): boolean;
+    set show_dialog_item(val: boolean);
+    get showDialogItem(): boolean;
+    set showDialogItem(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+    connect(signal: "custom-item-activated", callback: (_source: this, item_name: string) => void): number;
+    connect_after(signal: "custom-item-activated", callback: (_source: this, item_name: string) => void): 
number;
+    emit(signal: "custom-item-activated", item_name: string): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get content_type(): string;
+    get contentType(): string;
+
+    // Constructors
+
+    static ["new"](content_type: string): AppChooserButton;
+
+    // Members
+
+    append_custom_item(name: string, label: string, icon: Gio.Icon): void;
+    append_separator(): void;
+    get_heading(): string | null;
+    get_modal(): boolean;
+    get_show_default_item(): boolean;
+    get_show_dialog_item(): boolean;
+    set_active_custom_item(name: string): void;
+    set_heading(heading: string): void;
+    set_modal(modal: boolean): void;
+    set_show_default_item(setting: boolean): void;
+    set_show_dialog_item(setting: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_app_info(): Gio.AppInfo | null;
+    get_content_type(): string;
+    refresh(): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module AppChooserDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+        gfile: Gio.File;
+        heading: string;
+    }
+}
+export class AppChooserDialog
+    extends Dialog
+    implements Accessible, AppChooser, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<AppChooserDialog>;
+
+    constructor(properties?: Partial<AppChooserDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AppChooserDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get gfile(): Gio.File;
+    get heading(): string;
+    set heading(val: string);
+
+    // Implemented Properties
+
+    get content_type(): string;
+    get contentType(): string;
+
+    // Constructors
+
+    static ["new"](parent: Window | null, flags: DialogFlags, file: Gio.File): AppChooserDialog;
+    // Conflicted with Gtk.Dialog.new
+    static ["new"](...args: never[]): any;
+    static new_for_content_type(parent: Window | null, flags: DialogFlags, content_type: string): 
AppChooserDialog;
+
+    // Members
+
+    get_heading(): string | null;
+    get_widget(): Widget;
+    set_heading(heading: string): void;
+
+    // Implemented Members
+
+    get_app_info(): Gio.AppInfo | null;
+    get_content_type(): string;
+    refresh(): void;
+}
+export module AppChooserWidget {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        default_text: string;
+        defaultText: string;
+        show_default: boolean;
+        showDefault: boolean;
+        show_fallback: boolean;
+        showFallback: boolean;
+        show_other: boolean;
+        showOther: boolean;
+        show_recommended: boolean;
+        showRecommended: boolean;
+    }
+}
+export class AppChooserWidget extends Widget implements Accessible, AppChooser, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<AppChooserWidget>;
+
+    constructor(properties?: Partial<AppChooserWidget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AppChooserWidget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get default_text(): string;
+    set default_text(val: string);
+    get defaultText(): string;
+    set defaultText(val: string);
+    get show_default(): boolean;
+    set show_default(val: boolean);
+    get showDefault(): boolean;
+    set showDefault(val: boolean);
+    get show_fallback(): boolean;
+    set show_fallback(val: boolean);
+    get showFallback(): boolean;
+    set showFallback(val: boolean);
+    get show_other(): boolean;
+    set show_other(val: boolean);
+    get showOther(): boolean;
+    set showOther(val: boolean);
+    get show_recommended(): boolean;
+    set show_recommended(val: boolean);
+    get showRecommended(): boolean;
+    set showRecommended(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "application-activated", callback: (_source: this, application: Gio.AppInfo) => void): 
number;
+    connect_after(signal: "application-activated", callback: (_source: this, application: Gio.AppInfo) => 
void): number;
+    emit(signal: "application-activated", application: Gio.AppInfo): void;
+    connect(signal: "application-selected", callback: (_source: this, application: Gio.AppInfo) => void): 
number;
+    connect_after(signal: "application-selected", callback: (_source: this, application: Gio.AppInfo) => 
void): number;
+    emit(signal: "application-selected", application: Gio.AppInfo): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get content_type(): string;
+    get contentType(): string;
+
+    // Constructors
+
+    static ["new"](content_type: string): AppChooserWidget;
+
+    // Members
+
+    get_default_text(): string | null;
+    get_show_all(): boolean;
+    get_show_default(): boolean;
+    get_show_fallback(): boolean;
+    get_show_other(): boolean;
+    get_show_recommended(): boolean;
+    set_default_text(text: string): void;
+    set_show_all(setting: boolean): void;
+    set_show_default(setting: boolean): void;
+    set_show_fallback(setting: boolean): void;
+    set_show_other(setting: boolean): void;
+    set_show_recommended(setting: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_app_info(): Gio.AppInfo | null;
+    get_content_type(): string;
+    refresh(): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Application {
+    export interface ConstructorProperties extends Gio.Application.ConstructorProperties {
+        [key: string]: any;
+        active_window: Window;
+        activeWindow: Window;
+        menubar: Gio.MenuModel;
+        register_session: boolean;
+        registerSession: boolean;
+        screensaver_active: boolean;
+        screensaverActive: boolean;
+    }
+}
+export class Application extends Gio.Application implements Gio.ActionGroup, Gio.ActionMap {
+    static $gtype: GObject.GType<Application>;
+
+    constructor(properties?: Partial<Application.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Application.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active_window(): Window;
+    get activeWindow(): Window;
+    get menubar(): Gio.MenuModel;
+    set menubar(val: Gio.MenuModel);
+    get register_session(): boolean;
+    set register_session(val: boolean);
+    get registerSession(): boolean;
+    set registerSession(val: boolean);
+    get screensaver_active(): boolean;
+    get screensaverActive(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "query-end", callback: (_source: this) => void): number;
+    connect_after(signal: "query-end", callback: (_source: this) => void): number;
+    emit(signal: "query-end"): void;
+    connect(signal: "window-added", callback: (_source: this, window: Window) => void): number;
+    connect_after(signal: "window-added", callback: (_source: this, window: Window) => void): number;
+    emit(signal: "window-added", window: Window): void;
+    connect(signal: "window-removed", callback: (_source: this, window: Window) => void): number;
+    connect_after(signal: "window-removed", callback: (_source: this, window: Window) => void): number;
+    emit(signal: "window-removed", window: Window): void;
+
+    // Constructors
+
+    static ["new"](application_id: string | null, flags: Gio.ApplicationFlags): Application;
+
+    // Members
+
+    add_window(window: Window): void;
+    get_accels_for_action(detailed_action_name: string): string[];
+    get_actions_for_accel(accel: string): string[];
+    get_active_window(): Window | null;
+    get_menu_by_id(id: string): Gio.Menu | null;
+    get_menubar(): Gio.MenuModel | null;
+    get_window_by_id(id: number): Window | null;
+    get_windows(): Window[];
+    inhibit(window: Window | null, flags: ApplicationInhibitFlags, reason?: string | null): number;
+    list_action_descriptions(): string[];
+    remove_window(window: Window): void;
+    set_accels_for_action(detailed_action_name: string, accels: string[]): void;
+    set_menubar(menubar?: Gio.MenuModel | null): void;
+    uninhibit(cookie: number): void;
+    vfunc_window_added(window: Window): void;
+    vfunc_window_removed(window: Window): void;
+
+    // Implemented Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    add_action(action: Gio.Action): void;
+    add_action_entries(entries: Gio.ActionEntry[], user_data?: any | null): void;
+    lookup_action(action_name: string): Gio.Action | null;
+    remove_action(action_name: string): void;
+    vfunc_add_action(action: Gio.Action): void;
+    vfunc_lookup_action(action_name: string): Gio.Action | null;
+    vfunc_remove_action(action_name: string): void;
+}
+export module ApplicationWindow {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        show_menubar: boolean;
+        showMenubar: boolean;
+    }
+}
+export class ApplicationWindow
+    extends Window
+    implements Gio.ActionGroup, Gio.ActionMap, Accessible, Buildable, ConstraintTarget, Native, Root, 
ShortcutManager
+{
+    static $gtype: GObject.GType<ApplicationWindow>;
+
+    constructor(properties?: Partial<ApplicationWindow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ApplicationWindow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get show_menubar(): boolean;
+    set show_menubar(val: boolean);
+    get showMenubar(): boolean;
+    set showMenubar(val: boolean);
+
+    // Constructors
+
+    static ["new"](application: Application): ApplicationWindow;
+    // Conflicted with Gtk.Window.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_help_overlay(): ShortcutsWindow | null;
+    get_id(): number;
+    get_show_menubar(): boolean;
+    set_help_overlay(help_overlay?: ShortcutsWindow | null): void;
+    set_show_menubar(show_menubar: boolean): void;
+
+    // Implemented Members
+
+    action_added(action_name: string): void;
+    action_enabled_changed(action_name: string, enabled: boolean): void;
+    action_removed(action_name: string): void;
+    action_state_changed(action_name: string, state: GLib.Variant): void;
+    activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    // Conflicted with Gtk.Widget.activate_action
+    activate_action(...args: never[]): any;
+    change_action_state(action_name: string, value: GLib.Variant): void;
+    get_action_enabled(action_name: string): boolean;
+    get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    get_action_state(action_name: string): GLib.Variant | null;
+    get_action_state_hint(action_name: string): GLib.Variant | null;
+    get_action_state_type(action_name: string): GLib.VariantType | null;
+    has_action(action_name: string): boolean;
+    list_actions(): string[];
+    query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    vfunc_action_added(action_name: string): void;
+    vfunc_action_enabled_changed(action_name: string, enabled: boolean): void;
+    vfunc_action_removed(action_name: string): void;
+    vfunc_action_state_changed(action_name: string, state: GLib.Variant): void;
+    vfunc_activate_action(action_name: string, parameter?: GLib.Variant | null): void;
+    vfunc_change_action_state(action_name: string, value: GLib.Variant): void;
+    vfunc_get_action_enabled(action_name: string): boolean;
+    vfunc_get_action_parameter_type(action_name: string): GLib.VariantType | null;
+    vfunc_get_action_state(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_hint(action_name: string): GLib.Variant | null;
+    vfunc_get_action_state_type(action_name: string): GLib.VariantType | null;
+    vfunc_has_action(action_name: string): boolean;
+    vfunc_list_actions(): string[];
+    vfunc_query_action(
+        action_name: string
+    ): [boolean, boolean, GLib.VariantType | null, GLib.VariantType | null, GLib.Variant | null, 
GLib.Variant | null];
+    add_action(action: Gio.Action): void;
+    add_action_entries(entries: Gio.ActionEntry[], user_data?: any | null): void;
+    lookup_action(action_name: string): Gio.Action | null;
+    remove_action(action_name: string): void;
+    vfunc_add_action(action: Gio.Action): void;
+    vfunc_lookup_action(action_name: string): Gio.Action | null;
+    vfunc_remove_action(action_name: string): void;
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module AspectFrame {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        obey_child: boolean;
+        obeyChild: boolean;
+        ratio: number;
+        xalign: number;
+        yalign: number;
+    }
+}
+export class AspectFrame extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<AspectFrame>;
+
+    constructor(properties?: Partial<AspectFrame.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AspectFrame.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get obey_child(): boolean;
+    set obey_child(val: boolean);
+    get obeyChild(): boolean;
+    set obeyChild(val: boolean);
+    get ratio(): number;
+    set ratio(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+    get yalign(): number;
+    set yalign(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](xalign: number, yalign: number, ratio: number, obey_child: boolean): AspectFrame;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_obey_child(): boolean;
+    get_ratio(): number;
+    get_xalign(): number;
+    get_yalign(): number;
+    set_child(child?: Widget | null): void;
+    set_obey_child(obey_child: boolean): void;
+    set_ratio(ratio: number): void;
+    set_xalign(xalign: number): void;
+    set_yalign(yalign: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Assistant {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        pages: Gio.ListModel;
+        use_header_bar: number;
+        useHeaderBar: number;
+    }
+}
+export class Assistant
+    extends Window
+    implements Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<Assistant>;
+
+    constructor(properties?: Partial<Assistant.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Assistant.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get pages(): Gio.ListModel;
+    get use_header_bar(): number;
+    get useHeaderBar(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "apply", callback: (_source: this) => void): number;
+    connect_after(signal: "apply", callback: (_source: this) => void): number;
+    emit(signal: "apply"): void;
+    connect(signal: "cancel", callback: (_source: this) => void): number;
+    connect_after(signal: "cancel", callback: (_source: this) => void): number;
+    emit(signal: "cancel"): void;
+    connect(signal: "close", callback: (_source: this) => void): number;
+    connect_after(signal: "close", callback: (_source: this) => void): number;
+    emit(signal: "close"): void;
+    connect(signal: "escape", callback: (_source: this) => void): number;
+    connect_after(signal: "escape", callback: (_source: this) => void): number;
+    emit(signal: "escape"): void;
+    connect(signal: "prepare", callback: (_source: this, page: Widget) => void): number;
+    connect_after(signal: "prepare", callback: (_source: this, page: Widget) => void): number;
+    emit(signal: "prepare", page: Widget): void;
+
+    // Constructors
+
+    static ["new"](): Assistant;
+
+    // Members
+
+    add_action_widget(child: Widget): void;
+    append_page(page: Widget): number;
+    commit(): void;
+    get_current_page(): number;
+    get_n_pages(): number;
+    get_nth_page(page_num: number): Widget | null;
+    get_page(child: Widget): AssistantPage;
+    get_page_complete(page: Widget): boolean;
+    get_page_title(page: Widget): string;
+    get_page_type(page: Widget): AssistantPageType;
+    get_pages(): Gio.ListModel;
+    insert_page(page: Widget, position: number): number;
+    next_page(): void;
+    prepend_page(page: Widget): number;
+    previous_page(): void;
+    remove_action_widget(child: Widget): void;
+    remove_page(page_num: number): void;
+    set_current_page(page_num: number): void;
+    set_forward_page_func(page_func?: AssistantPageFunc | null): void;
+    set_page_complete(page: Widget, complete: boolean): void;
+    set_page_title(page: Widget, title: string): void;
+    set_page_type(page: Widget, type: AssistantPageType): void;
+    update_buttons_state(): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module AssistantPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        complete: boolean;
+        page_type: AssistantPageType;
+        pageType: AssistantPageType;
+        title: string;
+    }
+}
+export class AssistantPage extends GObject.Object {
+    static $gtype: GObject.GType<AssistantPage>;
+
+    constructor(properties?: Partial<AssistantPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<AssistantPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    get complete(): boolean;
+    set complete(val: boolean);
+    get page_type(): AssistantPageType;
+    set page_type(val: AssistantPageType);
+    get pageType(): AssistantPageType;
+    set pageType(val: AssistantPageType);
+    get title(): string;
+    set title(val: string);
+
+    // Members
+
+    get_child(): Widget;
+}
+export module BinLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class BinLayout extends LayoutManager {
+    static $gtype: GObject.GType<BinLayout>;
+
+    constructor(properties?: Partial<BinLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BinLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): BinLayout;
+}
+export module BookmarkList {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        attributes: string;
+        filename: string;
+        io_priority: number;
+        ioPriority: number;
+        loading: boolean;
+    }
+}
+export class BookmarkList<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<BookmarkList>;
+
+    constructor(properties?: Partial<BookmarkList.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<BookmarkList.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get attributes(): string;
+    set attributes(val: string);
+    get filename(): string;
+    get io_priority(): number;
+    set io_priority(val: number);
+    get ioPriority(): number;
+    set ioPriority(val: number);
+    get loading(): boolean;
+
+    // Constructors
+
+    static ["new"](filename?: string | null, attributes?: string | null): BookmarkList;
+
+    // Members
+
+    get_attributes(): string | null;
+    get_filename(): string;
+    get_io_priority(): number;
+    is_loading(): boolean;
+    set_attributes(attributes?: string | null): void;
+    set_io_priority(io_priority: number): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module BoolFilter {
+    export interface ConstructorProperties extends Filter.ConstructorProperties {
+        [key: string]: any;
+        expression: Expression;
+        invert: boolean;
+    }
+}
+export class BoolFilter extends Filter {
+    static $gtype: GObject.GType<BoolFilter>;
+
+    constructor(properties?: Partial<BoolFilter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BoolFilter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get expression(): Expression;
+    set expression(val: Expression);
+    get invert(): boolean;
+    set invert(val: boolean);
+
+    // Constructors
+
+    static ["new"](expression?: Expression | null): BoolFilter;
+
+    // Members
+
+    get_expression(): Expression | null;
+    get_invert(): boolean;
+    set_expression(expression?: Expression | null): void;
+    set_invert(invert: boolean): void;
+}
+export module Box {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        baseline_position: BaselinePosition;
+        baselinePosition: BaselinePosition;
+        homogeneous: boolean;
+        spacing: number;
+    }
+}
+export class Box extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Box>;
+
+    constructor(properties?: Partial<Box.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Box.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get baseline_position(): BaselinePosition;
+    set baseline_position(val: BaselinePosition);
+    get baselinePosition(): BaselinePosition;
+    set baselinePosition(val: BaselinePosition);
+    get homogeneous(): boolean;
+    set homogeneous(val: boolean);
+    get spacing(): number;
+    set spacing(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](orientation: Orientation, spacing: number): Box;
+
+    // Members
+
+    append(child: Widget): void;
+    get_baseline_position(): BaselinePosition;
+    get_homogeneous(): boolean;
+    get_spacing(): number;
+    insert_child_after(child: Widget, sibling?: Widget | null): void;
+    prepend(child: Widget): void;
+    remove(child: Widget): void;
+    reorder_child_after(child: Widget, sibling?: Widget | null): void;
+    set_baseline_position(position: BaselinePosition): void;
+    set_homogeneous(homogeneous: boolean): void;
+    set_spacing(spacing: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module BoxLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+        baseline_position: BaselinePosition;
+        baselinePosition: BaselinePosition;
+        homogeneous: boolean;
+        spacing: number;
+    }
+}
+export class BoxLayout extends LayoutManager implements Orientable {
+    static $gtype: GObject.GType<BoxLayout>;
+
+    constructor(properties?: Partial<BoxLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BoxLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get baseline_position(): BaselinePosition;
+    set baseline_position(val: BaselinePosition);
+    get baselinePosition(): BaselinePosition;
+    set baselinePosition(val: BaselinePosition);
+    get homogeneous(): boolean;
+    set homogeneous(val: boolean);
+    get spacing(): number;
+    set spacing(val: number);
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](orientation: Orientation): BoxLayout;
+
+    // Members
+
+    get_baseline_position(): BaselinePosition;
+    get_homogeneous(): boolean;
+    get_spacing(): number;
+    set_baseline_position(position: BaselinePosition): void;
+    set_homogeneous(homogeneous: boolean): void;
+    set_spacing(spacing: number): void;
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module Builder {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        current_object: GObject.Object;
+        currentObject: GObject.Object;
+        scope: BuilderScope;
+        translation_domain: string;
+        translationDomain: string;
+    }
+}
+export class Builder extends GObject.Object {
+    static $gtype: GObject.GType<Builder>;
+
+    constructor(properties?: Partial<Builder.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Builder.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get current_object(): GObject.Object;
+    set current_object(val: GObject.Object);
+    get currentObject(): GObject.Object;
+    set currentObject(val: GObject.Object);
+    get scope(): BuilderScope;
+    set scope(val: BuilderScope);
+    get translation_domain(): string;
+    set translation_domain(val: string);
+    get translationDomain(): string;
+    set translationDomain(val: string);
+
+    // Constructors
+
+    static ["new"](): Builder;
+    static new_from_file(filename: string): Builder;
+    static new_from_resource(resource_path: string): Builder;
+    static new_from_string(string: string, length: number): Builder;
+
+    // Members
+
+    add_from_file(filename: string): boolean;
+    add_from_resource(resource_path: string): boolean;
+    add_from_string(buffer: string, length: number): boolean;
+    add_objects_from_file(filename: string, object_ids: string[]): boolean;
+    add_objects_from_resource(resource_path: string, object_ids: string[]): boolean;
+    add_objects_from_string(buffer: string, length: number, object_ids: string[]): boolean;
+    create_closure(
+        function_name: string,
+        flags: BuilderClosureFlags,
+        object?: GObject.Object | null
+    ): GObject.Closure | null;
+    expose_object(name: string, object: GObject.Object): void;
+    extend_with_template(object: GObject.Object, template_type: GObject.GType, buffer: string, length: 
number): boolean;
+    get_current_object<T = GObject.Object>(): T;
+    get_object<T = GObject.Object>(name: string): T;
+    get_objects(): GObject.Object[];
+    get_scope(): BuilderScope;
+    get_translation_domain(): string | null;
+    get_type_from_name(type_name: string): GObject.GType;
+    set_current_object(current_object?: GObject.Object | null): void;
+    set_scope(scope?: BuilderScope | null): void;
+    set_translation_domain(domain?: string | null): void;
+    value_from_string(pspec: GObject.ParamSpec, string: string): [boolean, unknown];
+    value_from_string_type(type: GObject.GType, string: string): [boolean, unknown];
+}
+export module BuilderCScope {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class BuilderCScope extends GObject.Object implements BuilderScope {
+    static $gtype: GObject.GType<BuilderCScope>;
+
+    constructor(properties?: Partial<BuilderCScope.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BuilderCScope.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): BuilderCScope;
+
+    // Members
+
+    add_callback_symbol(callback_name: string, callback_symbol: GObject.Callback): void;
+
+    // Implemented Members
+
+    vfunc_create_closure(
+        builder: Builder,
+        function_name: string,
+        flags: BuilderClosureFlags,
+        object: GObject.Object
+    ): GObject.Closure;
+    vfunc_get_type_from_function(builder: Builder, function_name: string): GObject.GType;
+    vfunc_get_type_from_name(builder: Builder, type_name: string): GObject.GType;
+}
+export module BuilderListItemFactory {
+    export interface ConstructorProperties extends ListItemFactory.ConstructorProperties {
+        [key: string]: any;
+        bytes: GLib.Bytes;
+        resource: string;
+        scope: BuilderScope;
+    }
+}
+export class BuilderListItemFactory extends ListItemFactory {
+    static $gtype: GObject.GType<BuilderListItemFactory>;
+
+    constructor(properties?: Partial<BuilderListItemFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<BuilderListItemFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get bytes(): GLib.Bytes;
+    get resource(): string;
+    get scope(): BuilderScope;
+
+    // Constructors
+
+    static new_from_bytes(scope: BuilderScope | null, bytes: GLib.Bytes | Uint8Array): 
BuilderListItemFactory;
+    static new_from_resource(scope: BuilderScope | null, resource_path: string): BuilderListItemFactory;
+
+    // Members
+
+    get_bytes(): GLib.Bytes;
+    get_resource(): string | null;
+    get_scope(): BuilderScope | null;
+}
+export module Button {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        has_frame: boolean;
+        hasFrame: boolean;
+        icon_name: string;
+        iconName: string;
+        label: string;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class Button extends Widget implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Button>;
+
+    constructor(properties?: Partial<Button.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Button.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get has_frame(): boolean;
+    set has_frame(val: boolean);
+    get hasFrame(): boolean;
+    set hasFrame(val: boolean);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get label(): string;
+    set label(val: string);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "clicked", callback: (_source: this) => void): number;
+    connect_after(signal: "clicked", callback: (_source: this) => void): number;
+    emit(signal: "clicked"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): Button;
+    static new_from_icon_name(icon_name?: string | null): Button;
+    static new_with_label(label: string): Button;
+    static new_with_mnemonic(label: string): Button;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_has_frame(): boolean;
+    get_icon_name(): string | null;
+    get_label(): string | null;
+    get_use_underline(): boolean;
+    set_child(child?: Widget | null): void;
+    set_has_frame(has_frame: boolean): void;
+    set_icon_name(icon_name: string): void;
+    set_label(label: string): void;
+    set_use_underline(use_underline: boolean): void;
+    vfunc_activate(): void;
+    vfunc_clicked(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module CClosureExpression {
+    export interface ConstructorProperties extends Expression.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CClosureExpression extends Expression {
+    static $gtype: GObject.GType<CClosureExpression>;
+
+    constructor(properties?: Partial<CClosureExpression.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CClosureExpression.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        value_type: GObject.GType,
+        marshal: GObject.ClosureMarshal | null,
+        params: Expression[],
+        callback_func: GObject.Callback,
+        user_destroy?: GObject.ClosureNotify | null
+    ): CClosureExpression;
+}
+export module Calendar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        day: number;
+        month: number;
+        show_day_names: boolean;
+        showDayNames: boolean;
+        show_heading: boolean;
+        showHeading: boolean;
+        show_week_numbers: boolean;
+        showWeekNumbers: boolean;
+        year: number;
+    }
+}
+export class Calendar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Calendar>;
+
+    constructor(properties?: Partial<Calendar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Calendar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get day(): number;
+    set day(val: number);
+    get month(): number;
+    set month(val: number);
+    get show_day_names(): boolean;
+    set show_day_names(val: boolean);
+    get showDayNames(): boolean;
+    set showDayNames(val: boolean);
+    get show_heading(): boolean;
+    set show_heading(val: boolean);
+    get showHeading(): boolean;
+    set showHeading(val: boolean);
+    get show_week_numbers(): boolean;
+    set show_week_numbers(val: boolean);
+    get showWeekNumbers(): boolean;
+    set showWeekNumbers(val: boolean);
+    get year(): number;
+    set year(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "day-selected", callback: (_source: this) => void): number;
+    connect_after(signal: "day-selected", callback: (_source: this) => void): number;
+    emit(signal: "day-selected"): void;
+    connect(signal: "next-month", callback: (_source: this) => void): number;
+    connect_after(signal: "next-month", callback: (_source: this) => void): number;
+    emit(signal: "next-month"): void;
+    connect(signal: "next-year", callback: (_source: this) => void): number;
+    connect_after(signal: "next-year", callback: (_source: this) => void): number;
+    emit(signal: "next-year"): void;
+    connect(signal: "prev-month", callback: (_source: this) => void): number;
+    connect_after(signal: "prev-month", callback: (_source: this) => void): number;
+    emit(signal: "prev-month"): void;
+    connect(signal: "prev-year", callback: (_source: this) => void): number;
+    connect_after(signal: "prev-year", callback: (_source: this) => void): number;
+    emit(signal: "prev-year"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Calendar;
+
+    // Members
+
+    clear_marks(): void;
+    get_date(): GLib.DateTime;
+    get_day_is_marked(day: number): boolean;
+    get_show_day_names(): boolean;
+    get_show_heading(): boolean;
+    get_show_week_numbers(): boolean;
+    mark_day(day: number): void;
+    select_day(date: GLib.DateTime): void;
+    set_show_day_names(value: boolean): void;
+    set_show_heading(value: boolean): void;
+    set_show_week_numbers(value: boolean): void;
+    unmark_day(day: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module CallbackAction {
+    export interface ConstructorProperties extends ShortcutAction.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CallbackAction extends ShortcutAction {
+    static $gtype: GObject.GType<CallbackAction>;
+
+    constructor(properties?: Partial<CallbackAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CallbackAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): CallbackAction;
+}
+export module CellArea {
+    export interface ConstructorProperties extends GObject.InitiallyUnowned.ConstructorProperties {
+        [key: string]: any;
+        edit_widget: CellEditable;
+        editWidget: CellEditable;
+        edited_cell: CellRenderer;
+        editedCell: CellRenderer;
+        focus_cell: CellRenderer;
+        focusCell: CellRenderer;
+    }
+}
+export abstract class CellArea extends GObject.InitiallyUnowned implements Buildable, CellLayout {
+    static $gtype: GObject.GType<CellArea>;
+
+    constructor(properties?: Partial<CellArea.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellArea.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get edit_widget(): CellEditable;
+    get editWidget(): CellEditable;
+    get edited_cell(): CellRenderer;
+    get editedCell(): CellRenderer;
+    get focus_cell(): CellRenderer;
+    set focus_cell(val: CellRenderer);
+    get focusCell(): CellRenderer;
+    set focusCell(val: CellRenderer);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "add-editable",
+        callback: (
+            _source: this,
+            renderer: CellRenderer,
+            editable: CellEditable,
+            cell_area: Gdk.Rectangle,
+            path: string
+        ) => void
+    ): number;
+    connect_after(
+        signal: "add-editable",
+        callback: (
+            _source: this,
+            renderer: CellRenderer,
+            editable: CellEditable,
+            cell_area: Gdk.Rectangle,
+            path: string
+        ) => void
+    ): number;
+    emit(
+        signal: "add-editable",
+        renderer: CellRenderer,
+        editable: CellEditable,
+        cell_area: Gdk.Rectangle,
+        path: string
+    ): void;
+    connect(
+        signal: "apply-attributes",
+        callback: (_source: this, model: TreeModel, iter: TreeIter, is_expander: boolean, is_expanded: 
boolean) => void
+    ): number;
+    connect_after(
+        signal: "apply-attributes",
+        callback: (_source: this, model: TreeModel, iter: TreeIter, is_expander: boolean, is_expanded: 
boolean) => void
+    ): number;
+    emit(
+        signal: "apply-attributes",
+        model: TreeModel,
+        iter: TreeIter,
+        is_expander: boolean,
+        is_expanded: boolean
+    ): void;
+    connect(signal: "focus-changed", callback: (_source: this, renderer: CellRenderer, path: string) => 
void): number;
+    connect_after(
+        signal: "focus-changed",
+        callback: (_source: this, renderer: CellRenderer, path: string) => void
+    ): number;
+    emit(signal: "focus-changed", renderer: CellRenderer, path: string): void;
+    connect(
+        signal: "remove-editable",
+        callback: (_source: this, renderer: CellRenderer, editable: CellEditable) => void
+    ): number;
+    connect_after(
+        signal: "remove-editable",
+        callback: (_source: this, renderer: CellRenderer, editable: CellEditable) => void
+    ): number;
+    emit(signal: "remove-editable", renderer: CellRenderer, editable: CellEditable): void;
+
+    // Members
+
+    activate(
+        context: CellAreaContext,
+        widget: Widget,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState,
+        edit_only: boolean
+    ): boolean;
+    activate_cell(
+        widget: Widget,
+        renderer: CellRenderer,
+        event: Gdk.Event,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): boolean;
+    add(renderer: CellRenderer): void;
+    add_focus_sibling(renderer: CellRenderer, sibling: CellRenderer): void;
+    apply_attributes(tree_model: TreeModel, iter: TreeIter, is_expander: boolean, is_expanded: boolean): 
void;
+    attribute_connect(renderer: CellRenderer, attribute: string, column: number): void;
+    attribute_disconnect(renderer: CellRenderer, attribute: string): void;
+    attribute_get_column(renderer: CellRenderer, attribute: string): number;
+    cell_get_property(renderer: CellRenderer, property_name: string, value: GObject.Value | any): void;
+    cell_set_property(renderer: CellRenderer, property_name: string, value: GObject.Value | any): void;
+    copy_context(context: CellAreaContext): CellAreaContext;
+    create_context(): CellAreaContext;
+    event(
+        context: CellAreaContext,
+        widget: Widget,
+        event: Gdk.Event,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): number;
+    focus(direction: DirectionType): boolean;
+    foreach(callback: CellCallback): void;
+    foreach_alloc(
+        context: CellAreaContext,
+        widget: Widget,
+        cell_area: Gdk.Rectangle,
+        background_area: Gdk.Rectangle,
+        callback: CellAllocCallback
+    ): void;
+    get_cell_allocation(
+        context: CellAreaContext,
+        widget: Widget,
+        renderer: CellRenderer,
+        cell_area: Gdk.Rectangle
+    ): Gdk.Rectangle;
+    get_cell_at_position(
+        context: CellAreaContext,
+        widget: Widget,
+        cell_area: Gdk.Rectangle,
+        x: number,
+        y: number
+    ): [CellRenderer, Gdk.Rectangle | null];
+    get_current_path_string(): string;
+    get_edit_widget(): CellEditable | null;
+    get_edited_cell(): CellRenderer | null;
+    get_focus_cell(): CellRenderer | null;
+    get_focus_from_sibling(renderer: CellRenderer): CellRenderer | null;
+    get_focus_siblings(renderer: CellRenderer): CellRenderer[];
+    get_preferred_height(context: CellAreaContext, widget: Widget): [number, number];
+    get_preferred_height_for_width(context: CellAreaContext, widget: Widget, width: number): [number, 
number];
+    get_preferred_width(context: CellAreaContext, widget: Widget): [number, number];
+    get_preferred_width_for_height(context: CellAreaContext, widget: Widget, height: number): [number, 
number];
+    get_request_mode(): SizeRequestMode;
+    has_renderer(renderer: CellRenderer): boolean;
+    inner_cell_area(widget: Widget, cell_area: Gdk.Rectangle): Gdk.Rectangle;
+    is_activatable(): boolean;
+    is_focus_sibling(renderer: CellRenderer, sibling: CellRenderer): boolean;
+    remove(renderer: CellRenderer): void;
+    remove_focus_sibling(renderer: CellRenderer, sibling: CellRenderer): void;
+    request_renderer(
+        renderer: CellRenderer,
+        orientation: Orientation,
+        widget: Widget,
+        for_size: number
+    ): [number, number];
+    set_focus_cell(renderer?: CellRenderer | null): void;
+    snapshot(
+        context: CellAreaContext,
+        widget: Widget,
+        snapshot: Snapshot,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState,
+        paint_focus: boolean
+    ): void;
+    stop_editing(canceled: boolean): void;
+    vfunc_activate(
+        context: CellAreaContext,
+        widget: Widget,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState,
+        edit_only: boolean
+    ): boolean;
+    vfunc_add(renderer: CellRenderer): void;
+    vfunc_apply_attributes(tree_model: TreeModel, iter: TreeIter, is_expander: boolean, is_expanded: 
boolean): void;
+    vfunc_copy_context(context: CellAreaContext): CellAreaContext;
+    vfunc_create_context(): CellAreaContext;
+    vfunc_event(
+        context: CellAreaContext,
+        widget: Widget,
+        event: Gdk.Event,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): number;
+    vfunc_focus(direction: DirectionType): boolean;
+    vfunc_foreach(callback: CellCallback): void;
+    vfunc_foreach_alloc(
+        context: CellAreaContext,
+        widget: Widget,
+        cell_area: Gdk.Rectangle,
+        background_area: Gdk.Rectangle,
+        callback: CellAllocCallback
+    ): void;
+    vfunc_get_cell_property(
+        renderer: CellRenderer,
+        property_id: number,
+        value: GObject.Value | any,
+        pspec: GObject.ParamSpec
+    ): void;
+    vfunc_get_preferred_height(context: CellAreaContext, widget: Widget): [number, number];
+    vfunc_get_preferred_height_for_width(context: CellAreaContext, widget: Widget, width: number): [number, 
number];
+    vfunc_get_preferred_width(context: CellAreaContext, widget: Widget): [number, number];
+    vfunc_get_preferred_width_for_height(context: CellAreaContext, widget: Widget, height: number): [number, 
number];
+    vfunc_get_request_mode(): SizeRequestMode;
+    vfunc_is_activatable(): boolean;
+    vfunc_remove(renderer: CellRenderer): void;
+    vfunc_set_cell_property(
+        renderer: CellRenderer,
+        property_id: number,
+        value: GObject.Value | any,
+        pspec: GObject.ParamSpec
+    ): void;
+    vfunc_snapshot(
+        context: CellAreaContext,
+        widget: Widget,
+        snapshot: Snapshot,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState,
+        paint_focus: boolean
+    ): void;
+    static find_cell_property(property_name: string): GObject.ParamSpec;
+    static install_cell_property(property_id: number, pspec: GObject.ParamSpec): void;
+    static list_cell_properties(): GObject.ParamSpec[];
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+}
+export module CellAreaBox {
+    export interface ConstructorProperties extends CellArea.ConstructorProperties {
+        [key: string]: any;
+        spacing: number;
+    }
+}
+export class CellAreaBox extends CellArea implements Buildable, CellLayout, Orientable {
+    static $gtype: GObject.GType<CellAreaBox>;
+
+    constructor(properties?: Partial<CellAreaBox.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellAreaBox.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get spacing(): number;
+    set spacing(val: number);
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): CellAreaBox;
+
+    // Members
+
+    get_spacing(): number;
+    pack_end(renderer: CellRenderer, expand: boolean, align: boolean, fixed: boolean): void;
+    // Conflicted with Gtk.CellLayout.pack_end
+    pack_end(...args: never[]): any;
+    pack_start(renderer: CellRenderer, expand: boolean, align: boolean, fixed: boolean): void;
+    // Conflicted with Gtk.CellLayout.pack_start
+    pack_start(...args: never[]): any;
+    set_spacing(spacing: number): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module CellAreaContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        area: CellArea;
+        minimum_height: number;
+        minimumHeight: number;
+        minimum_width: number;
+        minimumWidth: number;
+        natural_height: number;
+        naturalHeight: number;
+        natural_width: number;
+        naturalWidth: number;
+    }
+}
+export class CellAreaContext extends GObject.Object {
+    static $gtype: GObject.GType<CellAreaContext>;
+
+    constructor(properties?: Partial<CellAreaContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellAreaContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get area(): CellArea;
+    get minimum_height(): number;
+    get minimumHeight(): number;
+    get minimum_width(): number;
+    get minimumWidth(): number;
+    get natural_height(): number;
+    get naturalHeight(): number;
+    get natural_width(): number;
+    get naturalWidth(): number;
+
+    // Members
+
+    allocate(width: number, height: number): void;
+    get_allocation(): [number, number];
+    get_area(): CellArea;
+    get_preferred_height(): [number, number];
+    get_preferred_height_for_width(width: number): [number, number];
+    get_preferred_width(): [number, number];
+    get_preferred_width_for_height(height: number): [number, number];
+    push_preferred_height(minimum_height: number, natural_height: number): void;
+    push_preferred_width(minimum_width: number, natural_width: number): void;
+    reset(): void;
+    vfunc_allocate(width: number, height: number): void;
+    vfunc_get_preferred_height_for_width(width: number): [number, number];
+    vfunc_get_preferred_width_for_height(height: number): [number, number];
+    vfunc_reset(): void;
+}
+export module CellRenderer {
+    export interface ConstructorProperties extends GObject.InitiallyUnowned.ConstructorProperties {
+        [key: string]: any;
+        cell_background: string;
+        cellBackground: string;
+        cell_background_rgba: Gdk.RGBA;
+        cellBackgroundRgba: Gdk.RGBA;
+        cell_background_set: boolean;
+        cellBackgroundSet: boolean;
+        editing: boolean;
+        height: number;
+        is_expanded: boolean;
+        isExpanded: boolean;
+        is_expander: boolean;
+        isExpander: boolean;
+        mode: CellRendererMode;
+        sensitive: boolean;
+        visible: boolean;
+        width: number;
+        xalign: number;
+        xpad: number;
+        yalign: number;
+        ypad: number;
+    }
+}
+export abstract class CellRenderer extends GObject.InitiallyUnowned {
+    static $gtype: GObject.GType<CellRenderer>;
+
+    constructor(properties?: Partial<CellRenderer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRenderer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set cell_background(val: string);
+    set cellBackground(val: string);
+    get cell_background_rgba(): Gdk.RGBA;
+    set cell_background_rgba(val: Gdk.RGBA);
+    get cellBackgroundRgba(): Gdk.RGBA;
+    set cellBackgroundRgba(val: Gdk.RGBA);
+    get cell_background_set(): boolean;
+    set cell_background_set(val: boolean);
+    get cellBackgroundSet(): boolean;
+    set cellBackgroundSet(val: boolean);
+    get editing(): boolean;
+    get height(): number;
+    set height(val: number);
+    get is_expanded(): boolean;
+    set is_expanded(val: boolean);
+    get isExpanded(): boolean;
+    set isExpanded(val: boolean);
+    get is_expander(): boolean;
+    set is_expander(val: boolean);
+    get isExpander(): boolean;
+    set isExpander(val: boolean);
+    get mode(): CellRendererMode;
+    set mode(val: CellRendererMode);
+    get sensitive(): boolean;
+    set sensitive(val: boolean);
+    get visible(): boolean;
+    set visible(val: boolean);
+    get width(): number;
+    set width(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+    get xpad(): number;
+    set xpad(val: number);
+    get yalign(): number;
+    set yalign(val: number);
+    get ypad(): number;
+    set ypad(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "editing-canceled", callback: (_source: this) => void): number;
+    connect_after(signal: "editing-canceled", callback: (_source: this) => void): number;
+    emit(signal: "editing-canceled"): void;
+    connect(signal: "editing-started", callback: (_source: this, editable: CellEditable, path: string) => 
void): number;
+    connect_after(
+        signal: "editing-started",
+        callback: (_source: this, editable: CellEditable, path: string) => void
+    ): number;
+    emit(signal: "editing-started", editable: CellEditable, path: string): void;
+
+    // Members
+
+    activate(
+        event: Gdk.Event,
+        widget: Widget,
+        path: string,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): boolean;
+    get_aligned_area(widget: Widget, flags: CellRendererState, cell_area: Gdk.Rectangle): Gdk.Rectangle;
+    get_alignment(): [number, number];
+    get_fixed_size(): [number, number];
+    get_is_expanded(): boolean;
+    get_is_expander(): boolean;
+    get_padding(): [number, number];
+    get_preferred_height(widget: Widget): [number, number];
+    get_preferred_height_for_width(widget: Widget, width: number): [number, number];
+    get_preferred_size(widget: Widget): [Requisition | null, Requisition | null];
+    get_preferred_width(widget: Widget): [number, number];
+    get_preferred_width_for_height(widget: Widget, height: number): [number, number];
+    get_request_mode(): SizeRequestMode;
+    get_sensitive(): boolean;
+    get_state(widget: Widget | null, cell_state: CellRendererState): StateFlags;
+    get_visible(): boolean;
+    is_activatable(): boolean;
+    set_alignment(xalign: number, yalign: number): void;
+    set_fixed_size(width: number, height: number): void;
+    set_is_expanded(is_expanded: boolean): void;
+    set_is_expander(is_expander: boolean): void;
+    set_padding(xpad: number, ypad: number): void;
+    set_sensitive(sensitive: boolean): void;
+    set_visible(visible: boolean): void;
+    snapshot(
+        snapshot: Snapshot,
+        widget: Widget,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): void;
+    start_editing(
+        event: Gdk.Event | null,
+        widget: Widget,
+        path: string,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): CellEditable | null;
+    stop_editing(canceled: boolean): void;
+    vfunc_activate(
+        event: Gdk.Event,
+        widget: Widget,
+        path: string,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): boolean;
+    vfunc_editing_canceled(): void;
+    vfunc_editing_started(editable: CellEditable, path: string): void;
+    vfunc_get_aligned_area(widget: Widget, flags: CellRendererState, cell_area: Gdk.Rectangle): 
Gdk.Rectangle;
+    vfunc_get_preferred_height(widget: Widget): [number, number];
+    vfunc_get_preferred_height_for_width(widget: Widget, width: number): [number, number];
+    vfunc_get_preferred_width(widget: Widget): [number, number];
+    vfunc_get_preferred_width_for_height(widget: Widget, height: number): [number, number];
+    vfunc_get_request_mode(): SizeRequestMode;
+    vfunc_snapshot(
+        snapshot: Snapshot,
+        widget: Widget,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): void;
+    vfunc_start_editing(
+        event: Gdk.Event | null,
+        widget: Widget,
+        path: string,
+        background_area: Gdk.Rectangle,
+        cell_area: Gdk.Rectangle,
+        flags: CellRendererState
+    ): CellEditable | null;
+}
+export module CellRendererAccel {
+    export interface ConstructorProperties extends CellRendererText.ConstructorProperties {
+        [key: string]: any;
+        accel_key: number;
+        accelKey: number;
+        accel_mode: CellRendererAccelMode;
+        accelMode: CellRendererAccelMode;
+        accel_mods: Gdk.ModifierType;
+        accelMods: Gdk.ModifierType;
+        keycode: number;
+    }
+}
+export class CellRendererAccel extends CellRendererText {
+    static $gtype: GObject.GType<CellRendererAccel>;
+
+    constructor(properties?: Partial<CellRendererAccel.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererAccel.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accel_key(): number;
+    set accel_key(val: number);
+    get accelKey(): number;
+    set accelKey(val: number);
+    get accel_mode(): CellRendererAccelMode;
+    set accel_mode(val: CellRendererAccelMode);
+    get accelMode(): CellRendererAccelMode;
+    set accelMode(val: CellRendererAccelMode);
+    get accel_mods(): Gdk.ModifierType;
+    set accel_mods(val: Gdk.ModifierType);
+    get accelMods(): Gdk.ModifierType;
+    set accelMods(val: Gdk.ModifierType);
+    get keycode(): number;
+    set keycode(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "accel-cleared", callback: (_source: this, path_string: string) => void): number;
+    connect_after(signal: "accel-cleared", callback: (_source: this, path_string: string) => void): number;
+    emit(signal: "accel-cleared", path_string: string): void;
+    connect(
+        signal: "accel-edited",
+        callback: (
+            _source: this,
+            path_string: string,
+            accel_key: number,
+            accel_mods: Gdk.ModifierType,
+            hardware_keycode: number
+        ) => void
+    ): number;
+    connect_after(
+        signal: "accel-edited",
+        callback: (
+            _source: this,
+            path_string: string,
+            accel_key: number,
+            accel_mods: Gdk.ModifierType,
+            hardware_keycode: number
+        ) => void
+    ): number;
+    emit(
+        signal: "accel-edited",
+        path_string: string,
+        accel_key: number,
+        accel_mods: Gdk.ModifierType,
+        hardware_keycode: number
+    ): void;
+
+    // Constructors
+
+    static ["new"](): CellRendererAccel;
+}
+export module CellRendererCombo {
+    export interface ConstructorProperties extends CellRendererText.ConstructorProperties {
+        [key: string]: any;
+        has_entry: boolean;
+        hasEntry: boolean;
+        model: TreeModel;
+        text_column: number;
+        textColumn: number;
+    }
+}
+export class CellRendererCombo extends CellRendererText {
+    static $gtype: GObject.GType<CellRendererCombo>;
+
+    constructor(properties?: Partial<CellRendererCombo.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererCombo.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get has_entry(): boolean;
+    set has_entry(val: boolean);
+    get hasEntry(): boolean;
+    set hasEntry(val: boolean);
+    get model(): TreeModel;
+    set model(val: TreeModel);
+    get text_column(): number;
+    set text_column(val: number);
+    get textColumn(): number;
+    set textColumn(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this, path_string: string, new_iter: TreeIter) => void): 
number;
+    connect_after(
+        signal: "changed",
+        callback: (_source: this, path_string: string, new_iter: TreeIter) => void
+    ): number;
+    emit(signal: "changed", path_string: string, new_iter: TreeIter): void;
+
+    // Constructors
+
+    static ["new"](): CellRendererCombo;
+}
+export module CellRendererPixbuf {
+    export interface ConstructorProperties extends CellRenderer.ConstructorProperties {
+        [key: string]: any;
+        gicon: Gio.Icon;
+        icon_name: string;
+        iconName: string;
+        icon_size: IconSize;
+        iconSize: IconSize;
+        pixbuf: GdkPixbuf.Pixbuf;
+        pixbuf_expander_closed: GdkPixbuf.Pixbuf;
+        pixbufExpanderClosed: GdkPixbuf.Pixbuf;
+        pixbuf_expander_open: GdkPixbuf.Pixbuf;
+        pixbufExpanderOpen: GdkPixbuf.Pixbuf;
+        texture: Gdk.Texture;
+    }
+}
+export class CellRendererPixbuf extends CellRenderer {
+    static $gtype: GObject.GType<CellRendererPixbuf>;
+
+    constructor(properties?: Partial<CellRendererPixbuf.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererPixbuf.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get gicon(): Gio.Icon;
+    set gicon(val: Gio.Icon);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get icon_size(): IconSize;
+    set icon_size(val: IconSize);
+    get iconSize(): IconSize;
+    set iconSize(val: IconSize);
+    set pixbuf(val: GdkPixbuf.Pixbuf);
+    get pixbuf_expander_closed(): GdkPixbuf.Pixbuf;
+    set pixbuf_expander_closed(val: GdkPixbuf.Pixbuf);
+    get pixbufExpanderClosed(): GdkPixbuf.Pixbuf;
+    set pixbufExpanderClosed(val: GdkPixbuf.Pixbuf);
+    get pixbuf_expander_open(): GdkPixbuf.Pixbuf;
+    set pixbuf_expander_open(val: GdkPixbuf.Pixbuf);
+    get pixbufExpanderOpen(): GdkPixbuf.Pixbuf;
+    set pixbufExpanderOpen(val: GdkPixbuf.Pixbuf);
+    get texture(): Gdk.Texture;
+    set texture(val: Gdk.Texture);
+
+    // Constructors
+
+    static ["new"](): CellRendererPixbuf;
+}
+export module CellRendererProgress {
+    export interface ConstructorProperties extends CellRenderer.ConstructorProperties {
+        [key: string]: any;
+        inverted: boolean;
+        pulse: number;
+        text: string;
+        text_xalign: number;
+        textXalign: number;
+        text_yalign: number;
+        textYalign: number;
+        value: number;
+    }
+}
+export class CellRendererProgress extends CellRenderer implements Orientable {
+    static $gtype: GObject.GType<CellRendererProgress>;
+
+    constructor(properties?: Partial<CellRendererProgress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererProgress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get inverted(): boolean;
+    set inverted(val: boolean);
+    get pulse(): number;
+    set pulse(val: number);
+    get text(): string;
+    set text(val: string);
+    get text_xalign(): number;
+    set text_xalign(val: number);
+    get textXalign(): number;
+    set textXalign(val: number);
+    get text_yalign(): number;
+    set text_yalign(val: number);
+    get textYalign(): number;
+    set textYalign(val: number);
+    get value(): number;
+    set value(val: number);
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): CellRendererProgress;
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module CellRendererSpin {
+    export interface ConstructorProperties extends CellRendererText.ConstructorProperties {
+        [key: string]: any;
+        adjustment: Adjustment;
+        climb_rate: number;
+        climbRate: number;
+        digits: number;
+    }
+}
+export class CellRendererSpin extends CellRendererText {
+    static $gtype: GObject.GType<CellRendererSpin>;
+
+    constructor(properties?: Partial<CellRendererSpin.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererSpin.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get adjustment(): Adjustment;
+    set adjustment(val: Adjustment);
+    get climb_rate(): number;
+    set climb_rate(val: number);
+    get climbRate(): number;
+    set climbRate(val: number);
+    get digits(): number;
+    set digits(val: number);
+
+    // Constructors
+
+    static ["new"](): CellRendererSpin;
+}
+export module CellRendererSpinner {
+    export interface ConstructorProperties extends CellRenderer.ConstructorProperties {
+        [key: string]: any;
+        active: boolean;
+        pulse: number;
+        size: IconSize;
+    }
+}
+export class CellRendererSpinner extends CellRenderer {
+    static $gtype: GObject.GType<CellRendererSpinner>;
+
+    constructor(properties?: Partial<CellRendererSpinner.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererSpinner.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): boolean;
+    set active(val: boolean);
+    get pulse(): number;
+    set pulse(val: number);
+    get size(): IconSize;
+    set size(val: IconSize);
+
+    // Constructors
+
+    static ["new"](): CellRendererSpinner;
+}
+export module CellRendererText {
+    export interface ConstructorProperties extends CellRenderer.ConstructorProperties {
+        [key: string]: any;
+        align_set: boolean;
+        alignSet: boolean;
+        alignment: Pango.Alignment;
+        attributes: Pango.AttrList;
+        background: string;
+        background_rgba: Gdk.RGBA;
+        backgroundRgba: Gdk.RGBA;
+        background_set: boolean;
+        backgroundSet: boolean;
+        editable: boolean;
+        editable_set: boolean;
+        editableSet: boolean;
+        ellipsize: Pango.EllipsizeMode;
+        ellipsize_set: boolean;
+        ellipsizeSet: boolean;
+        family: string;
+        family_set: boolean;
+        familySet: boolean;
+        font: string;
+        font_desc: Pango.FontDescription;
+        fontDesc: Pango.FontDescription;
+        foreground: string;
+        foreground_rgba: Gdk.RGBA;
+        foregroundRgba: Gdk.RGBA;
+        foreground_set: boolean;
+        foregroundSet: boolean;
+        language: string;
+        language_set: boolean;
+        languageSet: boolean;
+        markup: string;
+        max_width_chars: number;
+        maxWidthChars: number;
+        placeholder_text: string;
+        placeholderText: string;
+        rise: number;
+        rise_set: boolean;
+        riseSet: boolean;
+        scale: number;
+        scale_set: boolean;
+        scaleSet: boolean;
+        single_paragraph_mode: boolean;
+        singleParagraphMode: boolean;
+        size: number;
+        size_points: number;
+        sizePoints: number;
+        size_set: boolean;
+        sizeSet: boolean;
+        stretch: Pango.Stretch;
+        stretch_set: boolean;
+        stretchSet: boolean;
+        strikethrough: boolean;
+        strikethrough_set: boolean;
+        strikethroughSet: boolean;
+        style: Pango.Style;
+        style_set: boolean;
+        styleSet: boolean;
+        text: string;
+        underline: Pango.Underline;
+        underline_set: boolean;
+        underlineSet: boolean;
+        variant: Pango.Variant;
+        variant_set: boolean;
+        variantSet: boolean;
+        weight: number;
+        weight_set: boolean;
+        weightSet: boolean;
+        width_chars: number;
+        widthChars: number;
+        wrap_mode: Pango.WrapMode;
+        wrapMode: Pango.WrapMode;
+        wrap_width: number;
+        wrapWidth: number;
+    }
+}
+export class CellRendererText extends CellRenderer {
+    static $gtype: GObject.GType<CellRendererText>;
+
+    constructor(properties?: Partial<CellRendererText.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererText.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get align_set(): boolean;
+    set align_set(val: boolean);
+    get alignSet(): boolean;
+    set alignSet(val: boolean);
+    get alignment(): Pango.Alignment;
+    set alignment(val: Pango.Alignment);
+    get attributes(): Pango.AttrList;
+    set attributes(val: Pango.AttrList);
+    set background(val: string);
+    get background_rgba(): Gdk.RGBA;
+    set background_rgba(val: Gdk.RGBA);
+    get backgroundRgba(): Gdk.RGBA;
+    set backgroundRgba(val: Gdk.RGBA);
+    get background_set(): boolean;
+    set background_set(val: boolean);
+    get backgroundSet(): boolean;
+    set backgroundSet(val: boolean);
+    get editable(): boolean;
+    set editable(val: boolean);
+    get editable_set(): boolean;
+    set editable_set(val: boolean);
+    get editableSet(): boolean;
+    set editableSet(val: boolean);
+    get ellipsize(): Pango.EllipsizeMode;
+    set ellipsize(val: Pango.EllipsizeMode);
+    get ellipsize_set(): boolean;
+    set ellipsize_set(val: boolean);
+    get ellipsizeSet(): boolean;
+    set ellipsizeSet(val: boolean);
+    get family(): string;
+    set family(val: string);
+    get family_set(): boolean;
+    set family_set(val: boolean);
+    get familySet(): boolean;
+    set familySet(val: boolean);
+    get font(): string;
+    set font(val: string);
+    get font_desc(): Pango.FontDescription;
+    set font_desc(val: Pango.FontDescription);
+    get fontDesc(): Pango.FontDescription;
+    set fontDesc(val: Pango.FontDescription);
+    set foreground(val: string);
+    get foreground_rgba(): Gdk.RGBA;
+    set foreground_rgba(val: Gdk.RGBA);
+    get foregroundRgba(): Gdk.RGBA;
+    set foregroundRgba(val: Gdk.RGBA);
+    get foreground_set(): boolean;
+    set foreground_set(val: boolean);
+    get foregroundSet(): boolean;
+    set foregroundSet(val: boolean);
+    get language(): string;
+    set language(val: string);
+    get language_set(): boolean;
+    set language_set(val: boolean);
+    get languageSet(): boolean;
+    set languageSet(val: boolean);
+    set markup(val: string);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get placeholder_text(): string;
+    set placeholder_text(val: string);
+    get placeholderText(): string;
+    set placeholderText(val: string);
+    get rise(): number;
+    set rise(val: number);
+    get rise_set(): boolean;
+    set rise_set(val: boolean);
+    get riseSet(): boolean;
+    set riseSet(val: boolean);
+    get scale(): number;
+    set scale(val: number);
+    get scale_set(): boolean;
+    set scale_set(val: boolean);
+    get scaleSet(): boolean;
+    set scaleSet(val: boolean);
+    get single_paragraph_mode(): boolean;
+    set single_paragraph_mode(val: boolean);
+    get singleParagraphMode(): boolean;
+    set singleParagraphMode(val: boolean);
+    get size(): number;
+    set size(val: number);
+    get size_points(): number;
+    set size_points(val: number);
+    get sizePoints(): number;
+    set sizePoints(val: number);
+    get size_set(): boolean;
+    set size_set(val: boolean);
+    get sizeSet(): boolean;
+    set sizeSet(val: boolean);
+    get stretch(): Pango.Stretch;
+    set stretch(val: Pango.Stretch);
+    get stretch_set(): boolean;
+    set stretch_set(val: boolean);
+    get stretchSet(): boolean;
+    set stretchSet(val: boolean);
+    get strikethrough(): boolean;
+    set strikethrough(val: boolean);
+    get strikethrough_set(): boolean;
+    set strikethrough_set(val: boolean);
+    get strikethroughSet(): boolean;
+    set strikethroughSet(val: boolean);
+    get style(): Pango.Style;
+    set style(val: Pango.Style);
+    get style_set(): boolean;
+    set style_set(val: boolean);
+    get styleSet(): boolean;
+    set styleSet(val: boolean);
+    get text(): string;
+    set text(val: string);
+    get underline(): Pango.Underline;
+    set underline(val: Pango.Underline);
+    get underline_set(): boolean;
+    set underline_set(val: boolean);
+    get underlineSet(): boolean;
+    set underlineSet(val: boolean);
+    get variant(): Pango.Variant;
+    set variant(val: Pango.Variant);
+    get variant_set(): boolean;
+    set variant_set(val: boolean);
+    get variantSet(): boolean;
+    set variantSet(val: boolean);
+    get weight(): number;
+    set weight(val: number);
+    get weight_set(): boolean;
+    set weight_set(val: boolean);
+    get weightSet(): boolean;
+    set weightSet(val: boolean);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get wrap_mode(): Pango.WrapMode;
+    set wrap_mode(val: Pango.WrapMode);
+    get wrapMode(): Pango.WrapMode;
+    set wrapMode(val: Pango.WrapMode);
+    get wrap_width(): number;
+    set wrap_width(val: number);
+    get wrapWidth(): number;
+    set wrapWidth(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "edited", callback: (_source: this, path: string, new_text: string) => void): number;
+    connect_after(signal: "edited", callback: (_source: this, path: string, new_text: string) => void): 
number;
+    emit(signal: "edited", path: string, new_text: string): void;
+
+    // Constructors
+
+    static ["new"](): CellRendererText;
+
+    // Members
+
+    set_fixed_height_from_font(number_of_rows: number): void;
+    vfunc_edited(path: string, new_text: string): void;
+}
+export module CellRendererToggle {
+    export interface ConstructorProperties extends CellRenderer.ConstructorProperties {
+        [key: string]: any;
+        activatable: boolean;
+        active: boolean;
+        inconsistent: boolean;
+        radio: boolean;
+    }
+}
+export class CellRendererToggle extends CellRenderer {
+    static $gtype: GObject.GType<CellRendererToggle>;
+
+    constructor(properties?: Partial<CellRendererToggle.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellRendererToggle.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activatable(): boolean;
+    set activatable(val: boolean);
+    get active(): boolean;
+    set active(val: boolean);
+    get inconsistent(): boolean;
+    set inconsistent(val: boolean);
+    get radio(): boolean;
+    set radio(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "toggled", callback: (_source: this, path: string) => void): number;
+    connect_after(signal: "toggled", callback: (_source: this, path: string) => void): number;
+    emit(signal: "toggled", path: string): void;
+
+    // Constructors
+
+    static ["new"](): CellRendererToggle;
+
+    // Members
+
+    get_activatable(): boolean;
+    get_active(): boolean;
+    get_radio(): boolean;
+    set_activatable(setting: boolean): void;
+    set_active(setting: boolean): void;
+    set_radio(radio: boolean): void;
+}
+export module CellView {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        cell_area: CellArea;
+        cellArea: CellArea;
+        cell_area_context: CellAreaContext;
+        cellAreaContext: CellAreaContext;
+        draw_sensitive: boolean;
+        drawSensitive: boolean;
+        fit_model: boolean;
+        fitModel: boolean;
+        model: TreeModel;
+    }
+}
+export class CellView extends Widget implements Accessible, Buildable, CellLayout, ConstraintTarget, 
Orientable {
+    static $gtype: GObject.GType<CellView>;
+
+    constructor(properties?: Partial<CellView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CellView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get cell_area(): CellArea;
+    get cellArea(): CellArea;
+    get cell_area_context(): CellAreaContext;
+    get cellAreaContext(): CellAreaContext;
+    get draw_sensitive(): boolean;
+    set draw_sensitive(val: boolean);
+    get drawSensitive(): boolean;
+    set drawSensitive(val: boolean);
+    get fit_model(): boolean;
+    set fit_model(val: boolean);
+    get fitModel(): boolean;
+    set fitModel(val: boolean);
+    get model(): TreeModel;
+    set model(val: TreeModel);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): CellView;
+    static new_with_context(area: CellArea, context: CellAreaContext): CellView;
+    static new_with_markup(markup: string): CellView;
+    static new_with_text(text: string): CellView;
+    static new_with_texture(texture: Gdk.Texture): CellView;
+
+    // Members
+
+    get_displayed_row(): TreePath | null;
+    get_draw_sensitive(): boolean;
+    get_fit_model(): boolean;
+    get_model(): TreeModel | null;
+    set_displayed_row(path?: TreePath | null): void;
+    set_draw_sensitive(draw_sensitive: boolean): void;
+    set_fit_model(fit_model: boolean): void;
+    set_model(model?: TreeModel | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module CenterBox {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        baseline_position: BaselinePosition;
+        baselinePosition: BaselinePosition;
+    }
+}
+export class CenterBox extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<CenterBox>;
+
+    constructor(properties?: Partial<CenterBox.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CenterBox.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get baseline_position(): BaselinePosition;
+    set baseline_position(val: BaselinePosition);
+    get baselinePosition(): BaselinePosition;
+    set baselinePosition(val: BaselinePosition);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): CenterBox;
+
+    // Members
+
+    get_baseline_position(): BaselinePosition;
+    get_center_widget(): Widget | null;
+    get_end_widget(): Widget | null;
+    get_start_widget(): Widget | null;
+    set_baseline_position(position: BaselinePosition): void;
+    set_center_widget(child?: Widget | null): void;
+    set_end_widget(child?: Widget | null): void;
+    set_start_widget(child?: Widget | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module CenterLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CenterLayout extends LayoutManager {
+    static $gtype: GObject.GType<CenterLayout>;
+
+    constructor(properties?: Partial<CenterLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CenterLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): CenterLayout;
+
+    // Members
+
+    get_baseline_position(): BaselinePosition;
+    get_center_widget(): Widget | null;
+    get_end_widget(): Widget | null;
+    get_orientation(): Orientation;
+    get_start_widget(): Widget | null;
+    set_baseline_position(baseline_position: BaselinePosition): void;
+    set_center_widget(widget?: Widget | null): void;
+    set_end_widget(widget?: Widget | null): void;
+    set_orientation(orientation: Orientation): void;
+    set_start_widget(widget?: Widget | null): void;
+}
+export module CheckButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        active: boolean;
+        child: Widget;
+        group: CheckButton;
+        inconsistent: boolean;
+        label: string;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class CheckButton extends Widget implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<CheckButton>;
+
+    constructor(properties?: Partial<CheckButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CheckButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): boolean;
+    set active(val: boolean);
+    get child(): Widget;
+    set child(val: Widget);
+    set group(val: CheckButton);
+    get inconsistent(): boolean;
+    set inconsistent(val: boolean);
+    get label(): string;
+    set label(val: string);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "toggled", callback: (_source: this) => void): number;
+    connect_after(signal: "toggled", callback: (_source: this) => void): number;
+    emit(signal: "toggled"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): CheckButton;
+    static new_with_label(label?: string | null): CheckButton;
+    static new_with_mnemonic(label?: string | null): CheckButton;
+
+    // Members
+
+    get_active(): boolean;
+    get_child(): Widget | null;
+    get_inconsistent(): boolean;
+    get_label(): string | null;
+    get_use_underline(): boolean;
+    set_active(setting: boolean): void;
+    set_child(child?: Widget | null): void;
+    set_group(group?: CheckButton | null): void;
+    set_inconsistent(inconsistent: boolean): void;
+    set_label(label?: string | null): void;
+    set_use_underline(setting: boolean): void;
+    vfunc_activate(): void;
+    vfunc_toggled(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ClosureExpression {
+    export interface ConstructorProperties extends Expression.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ClosureExpression extends Expression {
+    static $gtype: GObject.GType<ClosureExpression>;
+
+    constructor(properties?: Partial<ClosureExpression.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ClosureExpression.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        value_type: GObject.GType,
+        closure: GObject.Closure,
+        params?: Expression[] | null
+    ): ClosureExpression;
+}
+export module ColorButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        modal: boolean;
+        show_editor: boolean;
+        showEditor: boolean;
+        title: string;
+    }
+}
+export class ColorButton extends Widget implements Accessible, Buildable, ColorChooser, ConstraintTarget {
+    static $gtype: GObject.GType<ColorButton>;
+
+    constructor(properties?: Partial<ColorButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ColorButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get modal(): boolean;
+    set modal(val: boolean);
+    get show_editor(): boolean;
+    set show_editor(val: boolean);
+    get showEditor(): boolean;
+    set showEditor(val: boolean);
+    get title(): string;
+    set title(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "color-set", callback: (_source: this) => void): number;
+    connect_after(signal: "color-set", callback: (_source: this) => void): number;
+    emit(signal: "color-set"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get rgba(): Gdk.RGBA;
+    set rgba(val: Gdk.RGBA);
+    get use_alpha(): boolean;
+    set use_alpha(val: boolean);
+    get useAlpha(): boolean;
+    set useAlpha(val: boolean);
+
+    // Constructors
+
+    static ["new"](): ColorButton;
+    static new_with_rgba(rgba: Gdk.RGBA): ColorButton;
+
+    // Members
+
+    get_modal(): boolean;
+    get_title(): string;
+    set_modal(modal: boolean): void;
+    set_title(title: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    get_rgba(): Gdk.RGBA;
+    get_use_alpha(): boolean;
+    set_rgba(color: Gdk.RGBA): void;
+    set_use_alpha(use_alpha: boolean): void;
+    vfunc_add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    vfunc_color_activated(color: Gdk.RGBA): void;
+    vfunc_get_rgba(): Gdk.RGBA;
+    vfunc_set_rgba(color: Gdk.RGBA): void;
+}
+export module ColorChooserDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+        show_editor: boolean;
+        showEditor: boolean;
+    }
+}
+export class ColorChooserDialog
+    extends Dialog
+    implements Accessible, Buildable, ColorChooser, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<ColorChooserDialog>;
+
+    constructor(properties?: Partial<ColorChooserDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ColorChooserDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get show_editor(): boolean;
+    set show_editor(val: boolean);
+    get showEditor(): boolean;
+    set showEditor(val: boolean);
+
+    // Implemented Properties
+
+    get rgba(): Gdk.RGBA;
+    set rgba(val: Gdk.RGBA);
+    get use_alpha(): boolean;
+    set use_alpha(val: boolean);
+    get useAlpha(): boolean;
+    set useAlpha(val: boolean);
+
+    // Constructors
+
+    static ["new"](title?: string | null, parent?: Window | null): ColorChooserDialog;
+    // Conflicted with Gtk.Dialog.new
+    static ["new"](...args: never[]): any;
+
+    // Implemented Members
+
+    add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    get_rgba(): Gdk.RGBA;
+    get_use_alpha(): boolean;
+    set_rgba(color: Gdk.RGBA): void;
+    set_use_alpha(use_alpha: boolean): void;
+    vfunc_add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    vfunc_color_activated(color: Gdk.RGBA): void;
+    vfunc_get_rgba(): Gdk.RGBA;
+    vfunc_set_rgba(color: Gdk.RGBA): void;
+}
+export module ColorChooserWidget {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        show_editor: boolean;
+        showEditor: boolean;
+    }
+}
+export class ColorChooserWidget extends Widget implements Accessible, Buildable, ColorChooser, 
ConstraintTarget {
+    static $gtype: GObject.GType<ColorChooserWidget>;
+
+    constructor(properties?: Partial<ColorChooserWidget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ColorChooserWidget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get show_editor(): boolean;
+    set show_editor(val: boolean);
+    get showEditor(): boolean;
+    set showEditor(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get rgba(): Gdk.RGBA;
+    set rgba(val: Gdk.RGBA);
+    get use_alpha(): boolean;
+    set use_alpha(val: boolean);
+    get useAlpha(): boolean;
+    set useAlpha(val: boolean);
+
+    // Constructors
+
+    static ["new"](): ColorChooserWidget;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    get_rgba(): Gdk.RGBA;
+    get_use_alpha(): boolean;
+    set_rgba(color: Gdk.RGBA): void;
+    set_use_alpha(use_alpha: boolean): void;
+    vfunc_add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    vfunc_color_activated(color: Gdk.RGBA): void;
+    vfunc_get_rgba(): Gdk.RGBA;
+    vfunc_set_rgba(color: Gdk.RGBA): void;
+}
+export module ColumnView {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        columns: Gio.ListModel;
+        enable_rubberband: boolean;
+        enableRubberband: boolean;
+        model: SelectionModel;
+        reorderable: boolean;
+        show_column_separators: boolean;
+        showColumnSeparators: boolean;
+        show_row_separators: boolean;
+        showRowSeparators: boolean;
+        single_click_activate: boolean;
+        singleClickActivate: boolean;
+        sorter: Sorter;
+    }
+}
+export class ColumnView extends Widget implements Accessible, Buildable, ConstraintTarget, Scrollable {
+    static $gtype: GObject.GType<ColumnView>;
+
+    constructor(properties?: Partial<ColumnView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ColumnView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get columns(): Gio.ListModel;
+    get enable_rubberband(): boolean;
+    set enable_rubberband(val: boolean);
+    get enableRubberband(): boolean;
+    set enableRubberband(val: boolean);
+    get model(): SelectionModel;
+    set model(val: SelectionModel);
+    get reorderable(): boolean;
+    set reorderable(val: boolean);
+    get show_column_separators(): boolean;
+    set show_column_separators(val: boolean);
+    get showColumnSeparators(): boolean;
+    set showColumnSeparators(val: boolean);
+    get show_row_separators(): boolean;
+    set show_row_separators(val: boolean);
+    get showRowSeparators(): boolean;
+    set showRowSeparators(val: boolean);
+    get single_click_activate(): boolean;
+    set single_click_activate(val: boolean);
+    get singleClickActivate(): boolean;
+    set singleClickActivate(val: boolean);
+    get sorter(): Sorter;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this, position: number) => void): number;
+    connect_after(signal: "activate", callback: (_source: this, position: number) => void): number;
+    emit(signal: "activate", position: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](model?: SelectionModel | null): ColumnView;
+
+    // Members
+
+    append_column(column: ColumnViewColumn): void;
+    get_columns(): Gio.ListModel;
+    get_enable_rubberband(): boolean;
+    get_model(): SelectionModel | null;
+    get_reorderable(): boolean;
+    get_show_column_separators(): boolean;
+    get_show_row_separators(): boolean;
+    get_single_click_activate(): boolean;
+    get_sorter(): Sorter | null;
+    insert_column(position: number, column: ColumnViewColumn): void;
+    remove_column(column: ColumnViewColumn): void;
+    set_enable_rubberband(enable_rubberband: boolean): void;
+    set_model(model?: SelectionModel | null): void;
+    set_reorderable(reorderable: boolean): void;
+    set_show_column_separators(show_column_separators: boolean): void;
+    set_show_row_separators(show_row_separators: boolean): void;
+    set_single_click_activate(single_click_activate: boolean): void;
+    sort_by_column(column: ColumnViewColumn | null, direction: SortType): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module ColumnViewColumn {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        column_view: ColumnView;
+        columnView: ColumnView;
+        expand: boolean;
+        factory: ListItemFactory;
+        fixed_width: number;
+        fixedWidth: number;
+        header_menu: Gio.MenuModel;
+        headerMenu: Gio.MenuModel;
+        resizable: boolean;
+        sorter: Sorter;
+        title: string;
+        visible: boolean;
+    }
+}
+export class ColumnViewColumn extends GObject.Object {
+    static $gtype: GObject.GType<ColumnViewColumn>;
+
+    constructor(properties?: Partial<ColumnViewColumn.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ColumnViewColumn.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get column_view(): ColumnView;
+    get columnView(): ColumnView;
+    get expand(): boolean;
+    set expand(val: boolean);
+    get factory(): ListItemFactory;
+    set factory(val: ListItemFactory);
+    get fixed_width(): number;
+    set fixed_width(val: number);
+    get fixedWidth(): number;
+    set fixedWidth(val: number);
+    get header_menu(): Gio.MenuModel;
+    set header_menu(val: Gio.MenuModel);
+    get headerMenu(): Gio.MenuModel;
+    set headerMenu(val: Gio.MenuModel);
+    get resizable(): boolean;
+    set resizable(val: boolean);
+    get sorter(): Sorter;
+    set sorter(val: Sorter);
+    get title(): string;
+    set title(val: string);
+    get visible(): boolean;
+    set visible(val: boolean);
+
+    // Constructors
+
+    static ["new"](title?: string | null, factory?: ListItemFactory | null): ColumnViewColumn;
+
+    // Members
+
+    get_column_view(): ColumnView | null;
+    get_expand(): boolean;
+    get_factory(): ListItemFactory | null;
+    get_fixed_width(): number;
+    get_header_menu(): Gio.MenuModel | null;
+    get_resizable(): boolean;
+    get_sorter(): Sorter | null;
+    get_title(): string | null;
+    get_visible(): boolean;
+    set_expand(expand: boolean): void;
+    set_factory(factory?: ListItemFactory | null): void;
+    set_fixed_width(fixed_width: number): void;
+    set_header_menu(menu?: Gio.MenuModel | null): void;
+    set_resizable(resizable: boolean): void;
+    set_sorter(sorter?: Sorter | null): void;
+    set_title(title?: string | null): void;
+    set_visible(visible: boolean): void;
+}
+export module ComboBox {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        active: number;
+        active_id: string;
+        activeId: string;
+        button_sensitivity: SensitivityType;
+        buttonSensitivity: SensitivityType;
+        child: Widget;
+        entry_text_column: number;
+        entryTextColumn: number;
+        has_entry: boolean;
+        hasEntry: boolean;
+        has_frame: boolean;
+        hasFrame: boolean;
+        id_column: number;
+        idColumn: number;
+        model: TreeModel;
+        popup_fixed_width: boolean;
+        popupFixedWidth: boolean;
+        popup_shown: boolean;
+        popupShown: boolean;
+    }
+}
+export class ComboBox extends Widget implements Accessible, Buildable, CellEditable, CellLayout, 
ConstraintTarget {
+    static $gtype: GObject.GType<ComboBox>;
+
+    constructor(properties?: Partial<ComboBox.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ComboBox.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): number;
+    set active(val: number);
+    get active_id(): string;
+    set active_id(val: string);
+    get activeId(): string;
+    set activeId(val: string);
+    get button_sensitivity(): SensitivityType;
+    set button_sensitivity(val: SensitivityType);
+    get buttonSensitivity(): SensitivityType;
+    set buttonSensitivity(val: SensitivityType);
+    get child(): Widget;
+    set child(val: Widget);
+    get entry_text_column(): number;
+    set entry_text_column(val: number);
+    get entryTextColumn(): number;
+    set entryTextColumn(val: number);
+    get has_entry(): boolean;
+    get hasEntry(): boolean;
+    get has_frame(): boolean;
+    set has_frame(val: boolean);
+    get hasFrame(): boolean;
+    set hasFrame(val: boolean);
+    get id_column(): number;
+    set id_column(val: number);
+    get idColumn(): number;
+    set idColumn(val: number);
+    get model(): TreeModel;
+    set model(val: TreeModel);
+    get popup_fixed_width(): boolean;
+    set popup_fixed_width(val: boolean);
+    get popupFixedWidth(): boolean;
+    set popupFixedWidth(val: boolean);
+    get popup_shown(): boolean;
+    get popupShown(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+    connect(signal: "format-entry-text", callback: (_source: this, path: string) => string): number;
+    connect_after(signal: "format-entry-text", callback: (_source: this, path: string) => string): number;
+    emit(signal: "format-entry-text", path: string): void;
+    connect(signal: "move-active", callback: (_source: this, scroll_type: ScrollType) => void): number;
+    connect_after(signal: "move-active", callback: (_source: this, scroll_type: ScrollType) => void): number;
+    emit(signal: "move-active", scroll_type: ScrollType): void;
+    connect(signal: "popdown", callback: (_source: this) => boolean): number;
+    connect_after(signal: "popdown", callback: (_source: this) => boolean): number;
+    emit(signal: "popdown"): void;
+    connect(signal: "popup", callback: (_source: this) => void): number;
+    connect_after(signal: "popup", callback: (_source: this) => void): number;
+    emit(signal: "popup"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get editing_canceled(): boolean;
+    set editing_canceled(val: boolean);
+    get editingCanceled(): boolean;
+    set editingCanceled(val: boolean);
+
+    // Constructors
+
+    static ["new"](): ComboBox;
+    static new_with_entry(): ComboBox;
+    static new_with_model(model: TreeModel): ComboBox;
+    static new_with_model_and_entry(model: TreeModel): ComboBox;
+
+    // Members
+
+    get_active(): number;
+    get_active_id(): string | null;
+    get_active_iter(): [boolean, TreeIter];
+    get_button_sensitivity(): SensitivityType;
+    get_child(): Widget | null;
+    get_entry_text_column(): number;
+    get_has_entry(): boolean;
+    get_id_column(): number;
+    get_model(): TreeModel | null;
+    get_popup_fixed_width(): boolean;
+    popdown(): void;
+    popup(): void;
+    popup_for_device(device: Gdk.Device): void;
+    set_active(index_: number): void;
+    set_active_id(active_id?: string | null): boolean;
+    set_active_iter(iter?: TreeIter | null): void;
+    set_button_sensitivity(sensitivity: SensitivityType): void;
+    set_child(child?: Widget | null): void;
+    set_entry_text_column(text_column: number): void;
+    set_id_column(id_column: number): void;
+    set_model(model?: TreeModel | null): void;
+    set_popup_fixed_width(fixed: boolean): void;
+    set_row_separator_func(func?: TreeViewRowSeparatorFunc | null, destroy?: GLib.DestroyNotify | null): 
void;
+    vfunc_activate(): void;
+    vfunc_changed(): void;
+    vfunc_format_entry_text(path: string): string;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    editing_done(): void;
+    remove_widget(): void;
+    start_editing(event?: Gdk.Event | null): void;
+    vfunc_editing_done(): void;
+    vfunc_remove_widget(): void;
+    vfunc_start_editing(event?: Gdk.Event | null): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+}
+export module ComboBoxText {
+    export interface ConstructorProperties extends ComboBox.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ComboBoxText
+    extends ComboBox
+    implements Accessible, Buildable, CellEditable, CellLayout, ConstraintTarget
+{
+    static $gtype: GObject.GType<ComboBoxText>;
+
+    constructor(properties?: Partial<ComboBoxText.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ComboBoxText.ConstructorProperties>, ...args: any[]): void;
+
+    // Implemented Properties
+
+    get editing_canceled(): boolean;
+    set editing_canceled(val: boolean);
+    get editingCanceled(): boolean;
+    set editingCanceled(val: boolean);
+
+    // Constructors
+
+    static ["new"](): ComboBoxText;
+    static new_with_entry(): ComboBoxText;
+
+    // Members
+
+    append(id: string | null, text: string): void;
+    append_text(text: string): void;
+    get_active_text(): string | null;
+    insert(position: number, id: string | null, text: string): void;
+    insert_text(position: number, text: string): void;
+    prepend(id: string | null, text: string): void;
+    prepend_text(text: string): void;
+    remove(position: number): void;
+    remove_all(): void;
+
+    // Implemented Members
+
+    editing_done(): void;
+    remove_widget(): void;
+    start_editing(event?: Gdk.Event | null): void;
+    vfunc_editing_done(): void;
+    vfunc_remove_widget(): void;
+    vfunc_start_editing(event?: Gdk.Event | null): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+}
+export module ConstantExpression {
+    export interface ConstructorProperties extends Expression.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ConstantExpression extends Expression {
+    static $gtype: GObject.GType<ConstantExpression>;
+
+    constructor(properties?: Partial<ConstantExpression.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ConstantExpression.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static new_for_value(value: GObject.Value | any): ConstantExpression;
+
+    // Members
+
+    get_value(): unknown;
+}
+export module Constraint {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        constant: number;
+        multiplier: number;
+        relation: ConstraintRelation;
+        source: ConstraintTarget;
+        source_attribute: ConstraintAttribute;
+        sourceAttribute: ConstraintAttribute;
+        strength: number;
+        target: ConstraintTarget;
+        target_attribute: ConstraintAttribute;
+        targetAttribute: ConstraintAttribute;
+    }
+}
+export class Constraint extends GObject.Object {
+    static $gtype: GObject.GType<Constraint>;
+
+    constructor(properties?: Partial<Constraint.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Constraint.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get constant(): number;
+    get multiplier(): number;
+    get relation(): ConstraintRelation;
+    get source(): ConstraintTarget;
+    get source_attribute(): ConstraintAttribute;
+    get sourceAttribute(): ConstraintAttribute;
+    get strength(): number;
+    get target(): ConstraintTarget;
+    get target_attribute(): ConstraintAttribute;
+    get targetAttribute(): ConstraintAttribute;
+
+    // Constructors
+
+    static ["new"](
+        target: ConstraintTarget | null,
+        target_attribute: ConstraintAttribute,
+        relation: ConstraintRelation,
+        source: ConstraintTarget | null,
+        source_attribute: ConstraintAttribute,
+        multiplier: number,
+        constant: number,
+        strength: number
+    ): Constraint;
+    static new_constant(
+        target: ConstraintTarget | null,
+        target_attribute: ConstraintAttribute,
+        relation: ConstraintRelation,
+        constant: number,
+        strength: number
+    ): Constraint;
+
+    // Members
+
+    get_constant(): number;
+    get_multiplier(): number;
+    get_relation(): ConstraintRelation;
+    get_source(): ConstraintTarget | null;
+    get_source_attribute(): ConstraintAttribute;
+    get_strength(): number;
+    get_target(): ConstraintTarget | null;
+    get_target_attribute(): ConstraintAttribute;
+    is_attached(): boolean;
+    is_constant(): boolean;
+    is_required(): boolean;
+}
+export module ConstraintGuide {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        max_height: number;
+        maxHeight: number;
+        max_width: number;
+        maxWidth: number;
+        min_height: number;
+        minHeight: number;
+        min_width: number;
+        minWidth: number;
+        name: string;
+        nat_height: number;
+        natHeight: number;
+        nat_width: number;
+        natWidth: number;
+        strength: ConstraintStrength;
+    }
+}
+export class ConstraintGuide extends GObject.Object implements ConstraintTarget {
+    static $gtype: GObject.GType<ConstraintGuide>;
+
+    constructor(properties?: Partial<ConstraintGuide.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ConstraintGuide.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get max_height(): number;
+    set max_height(val: number);
+    get maxHeight(): number;
+    set maxHeight(val: number);
+    get max_width(): number;
+    set max_width(val: number);
+    get maxWidth(): number;
+    set maxWidth(val: number);
+    get min_height(): number;
+    set min_height(val: number);
+    get minHeight(): number;
+    set minHeight(val: number);
+    get min_width(): number;
+    set min_width(val: number);
+    get minWidth(): number;
+    set minWidth(val: number);
+    get name(): string;
+    set name(val: string);
+    get nat_height(): number;
+    set nat_height(val: number);
+    get natHeight(): number;
+    set natHeight(val: number);
+    get nat_width(): number;
+    set nat_width(val: number);
+    get natWidth(): number;
+    set natWidth(val: number);
+    get strength(): ConstraintStrength;
+    set strength(val: ConstraintStrength);
+
+    // Constructors
+
+    static ["new"](): ConstraintGuide;
+
+    // Members
+
+    get_max_size(): [number, number];
+    get_min_size(): [number, number];
+    get_name(): string | null;
+    get_nat_size(): [number, number];
+    get_strength(): ConstraintStrength;
+    set_max_size(width: number, height: number): void;
+    set_min_size(width: number, height: number): void;
+    set_name(name?: string | null): void;
+    set_nat_size(width: number, height: number): void;
+    set_strength(strength: ConstraintStrength): void;
+}
+export module ConstraintLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ConstraintLayout extends LayoutManager implements Buildable {
+    static $gtype: GObject.GType<ConstraintLayout>;
+
+    constructor(properties?: Partial<ConstraintLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ConstraintLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): ConstraintLayout;
+
+    // Members
+
+    add_constraint(constraint: Constraint): void;
+    add_constraints_from_description(
+        lines: string[],
+        hspacing: number,
+        vspacing: number,
+        views: { [key: string]: any } | GLib.HashTable<string, ConstraintTarget>
+    ): Constraint[];
+    add_guide(guide: ConstraintGuide): void;
+    observe_constraints(): Gio.ListModel;
+    observe_guides(): Gio.ListModel;
+    remove_all_constraints(): void;
+    remove_constraint(constraint: Constraint): void;
+    remove_guide(guide: ConstraintGuide): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ConstraintLayoutChild {
+    export interface ConstructorProperties extends LayoutChild.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ConstraintLayoutChild extends LayoutChild {
+    static $gtype: GObject.GType<ConstraintLayoutChild>;
+
+    constructor(properties?: Partial<ConstraintLayoutChild.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ConstraintLayoutChild.ConstructorProperties>, ...args: any[]): void;
+}
+export module CssProvider {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CssProvider extends GObject.Object implements StyleProvider {
+    static $gtype: GObject.GType<CssProvider>;
+
+    constructor(properties?: Partial<CssProvider.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CssProvider.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "parsing-error", callback: (_source: this, section: CssSection, error: GLib.Error) => 
void): number;
+    connect_after(
+        signal: "parsing-error",
+        callback: (_source: this, section: CssSection, error: GLib.Error) => void
+    ): number;
+    emit(signal: "parsing-error", section: CssSection, error: GLib.Error): void;
+
+    // Constructors
+
+    static ["new"](): CssProvider;
+
+    // Members
+
+    load_from_data(data: Uint8Array | string): void;
+    load_from_file(file: Gio.File): void;
+    load_from_path(path: string): void;
+    load_from_resource(resource_path: string): void;
+    load_named(name: string, variant?: string | null): void;
+    to_string(): string;
+}
+export module CustomFilter {
+    export interface ConstructorProperties extends Filter.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CustomFilter extends Filter {
+    static $gtype: GObject.GType<CustomFilter>;
+
+    constructor(properties?: Partial<CustomFilter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CustomFilter.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](match_func?: CustomFilterFunc | null): CustomFilter;
+
+    // Members
+
+    set_filter_func(match_func?: CustomFilterFunc | null): void;
+}
+export module CustomLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CustomLayout extends LayoutManager {
+    static $gtype: GObject.GType<CustomLayout>;
+
+    constructor(properties?: Partial<CustomLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CustomLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](
+        request_mode: CustomRequestModeFunc | null,
+        measure: CustomMeasureFunc,
+        allocate: CustomAllocateFunc
+    ): CustomLayout;
+}
+export module CustomSorter {
+    export interface ConstructorProperties extends Sorter.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class CustomSorter extends Sorter {
+    static $gtype: GObject.GType<CustomSorter>;
+
+    constructor(properties?: Partial<CustomSorter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<CustomSorter.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](sort_func?: GLib.CompareDataFunc | null, user_destroy?: GLib.DestroyNotify | null): 
CustomSorter;
+
+    // Members
+
+    set_sort_func(sort_func?: GLib.CompareDataFunc | null): void;
+}
+export module Dialog {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        use_header_bar: number;
+        useHeaderBar: number;
+    }
+}
+export class Dialog extends Window implements Accessible, Buildable, ConstraintTarget, Native, Root, 
ShortcutManager {
+    static $gtype: GObject.GType<Dialog>;
+
+    constructor(properties?: Partial<Dialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Dialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get use_header_bar(): number;
+    get useHeaderBar(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "close", callback: (_source: this) => void): number;
+    connect_after(signal: "close", callback: (_source: this) => void): number;
+    emit(signal: "close"): void;
+    connect(signal: "response", callback: (_source: this, response_id: number) => void): number;
+    connect_after(signal: "response", callback: (_source: this, response_id: number) => void): number;
+    emit(signal: "response", response_id: number): void;
+
+    // Constructors
+
+    static ["new"](): Dialog;
+
+    // Members
+
+    add_action_widget(child: Widget, response_id: number): void;
+    add_button(button_text: string, response_id: number): Widget;
+    get_content_area(): Box;
+    get_header_bar(): HeaderBar;
+    get_response_for_widget(widget: Widget): number;
+    get_widget_for_response(response_id: number): Widget | null;
+    response(response_id: number): void;
+    set_default_response(response_id: number): void;
+    set_response_sensitive(response_id: number, setting: boolean): void;
+    vfunc_close(): void;
+    vfunc_response(response_id: number): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module DirectoryList {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        attributes: string;
+        error: GLib.Error;
+        file: Gio.File;
+        io_priority: number;
+        ioPriority: number;
+        loading: boolean;
+        monitored: boolean;
+    }
+}
+export class DirectoryList<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<DirectoryList>;
+
+    constructor(properties?: Partial<DirectoryList.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<DirectoryList.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get attributes(): string;
+    set attributes(val: string);
+    get error(): GLib.Error;
+    get file(): Gio.File;
+    set file(val: Gio.File);
+    get io_priority(): number;
+    set io_priority(val: number);
+    get ioPriority(): number;
+    set ioPriority(val: number);
+    get loading(): boolean;
+    get monitored(): boolean;
+    set monitored(val: boolean);
+
+    // Constructors
+
+    static ["new"](attributes?: string | null, file?: Gio.File | null): DirectoryList;
+
+    // Members
+
+    get_attributes(): string | null;
+    get_error(): GLib.Error | null;
+    get_file(): Gio.File | null;
+    get_io_priority(): number;
+    get_monitored(): boolean;
+    is_loading(): boolean;
+    set_attributes(attributes?: string | null): void;
+    set_file(file?: Gio.File | null): void;
+    set_io_priority(io_priority: number): void;
+    set_monitored(monitored: boolean): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module DragIcon {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+    }
+}
+export class DragIcon extends Widget implements Accessible, Buildable, ConstraintTarget, Native, Root {
+    static $gtype: GObject.GType<DragIcon>;
+
+    constructor(properties?: Partial<DragIcon.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DragIcon.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Members
+
+    get_child(): Widget | null;
+    set_child(child?: Widget | null): void;
+    static create_widget_for_value(value: GObject.Value | any): Widget | null;
+    static get_for_drag(drag: Gdk.Drag): Widget;
+    static set_from_paintable(drag: Gdk.Drag, paintable: Gdk.Paintable, hot_x: number, hot_y: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+}
+export module DragSource {
+    export interface ConstructorProperties extends GestureSingle.ConstructorProperties {
+        [key: string]: any;
+        actions: Gdk.DragAction;
+        content: Gdk.ContentProvider;
+    }
+}
+export class DragSource extends GestureSingle {
+    static $gtype: GObject.GType<DragSource>;
+
+    constructor(properties?: Partial<DragSource.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DragSource.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get actions(): Gdk.DragAction;
+    set actions(val: Gdk.DragAction);
+    get content(): Gdk.ContentProvider;
+    set content(val: Gdk.ContentProvider);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "drag-begin", callback: (_source: this, drag: Gdk.Drag) => void): number;
+    connect_after(signal: "drag-begin", callback: (_source: this, drag: Gdk.Drag) => void): number;
+    emit(signal: "drag-begin", drag: Gdk.Drag): void;
+    connect(
+        signal: "drag-cancel",
+        callback: (_source: this, drag: Gdk.Drag, reason: Gdk.DragCancelReason) => boolean
+    ): number;
+    connect_after(
+        signal: "drag-cancel",
+        callback: (_source: this, drag: Gdk.Drag, reason: Gdk.DragCancelReason) => boolean
+    ): number;
+    emit(signal: "drag-cancel", drag: Gdk.Drag, reason: Gdk.DragCancelReason): void;
+    connect(signal: "drag-end", callback: (_source: this, drag: Gdk.Drag, delete_data: boolean) => void): 
number;
+    connect_after(signal: "drag-end", callback: (_source: this, drag: Gdk.Drag, delete_data: boolean) => 
void): number;
+    emit(signal: "drag-end", drag: Gdk.Drag, delete_data: boolean): void;
+    connect(signal: "prepare", callback: (_source: this, x: number, y: number) => Gdk.ContentProvider | 
null): number;
+    connect_after(
+        signal: "prepare",
+        callback: (_source: this, x: number, y: number) => Gdk.ContentProvider | null
+    ): number;
+    emit(signal: "prepare", x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](): DragSource;
+
+    // Members
+
+    drag_cancel(): void;
+    get_actions(): Gdk.DragAction;
+    get_content(): Gdk.ContentProvider | null;
+    get_drag(): Gdk.Drag | null;
+    set_actions(actions: Gdk.DragAction): void;
+    set_content(content?: Gdk.ContentProvider | null): void;
+    set_icon(paintable: Gdk.Paintable | null, hot_x: number, hot_y: number): void;
+}
+export module DrawingArea {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        content_height: number;
+        contentHeight: number;
+        content_width: number;
+        contentWidth: number;
+    }
+}
+export class DrawingArea extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<DrawingArea>;
+
+    constructor(properties?: Partial<DrawingArea.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DrawingArea.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get content_height(): number;
+    set content_height(val: number);
+    get contentHeight(): number;
+    set contentHeight(val: number);
+    get content_width(): number;
+    set content_width(val: number);
+    get contentWidth(): number;
+    set contentWidth(val: number);
+
+    // Fields
+    widget: Widget;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "resize", callback: (_source: this, width: number, height: number) => void): number;
+    connect_after(signal: "resize", callback: (_source: this, width: number, height: number) => void): 
number;
+    emit(signal: "resize", width: number, height: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): DrawingArea;
+
+    // Members
+
+    get_content_height(): number;
+    get_content_width(): number;
+    set_content_height(height: number): void;
+    set_content_width(width: number): void;
+    set_draw_func(draw_func?: DrawingAreaDrawFunc | null): void;
+    vfunc_resize(width: number, height: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module DropControllerMotion {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        contains_pointer: boolean;
+        containsPointer: boolean;
+        drop: Gdk.Drop;
+        is_pointer: boolean;
+        isPointer: boolean;
+    }
+}
+export class DropControllerMotion extends EventController {
+    static $gtype: GObject.GType<DropControllerMotion>;
+
+    constructor(properties?: Partial<DropControllerMotion.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DropControllerMotion.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get contains_pointer(): boolean;
+    get containsPointer(): boolean;
+    get drop(): Gdk.Drop;
+    get is_pointer(): boolean;
+    get isPointer(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "enter", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "enter", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "enter", x: number, y: number): void;
+    connect(signal: "leave", callback: (_source: this) => void): number;
+    connect_after(signal: "leave", callback: (_source: this) => void): number;
+    emit(signal: "leave"): void;
+    connect(signal: "motion", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "motion", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "motion", x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](): DropControllerMotion;
+
+    // Members
+
+    get_drop(): Gdk.Drop | null;
+}
+export module DropDown {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        enable_search: boolean;
+        enableSearch: boolean;
+        expression: Expression;
+        factory: ListItemFactory;
+        list_factory: ListItemFactory;
+        listFactory: ListItemFactory;
+        model: Gio.ListModel;
+        selected: number;
+        selected_item: GObject.Object;
+        selectedItem: GObject.Object;
+        show_arrow: boolean;
+        showArrow: boolean;
+    }
+}
+export class DropDown extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<DropDown>;
+
+    constructor(properties?: Partial<DropDown.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DropDown.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_search(): boolean;
+    set enable_search(val: boolean);
+    get enableSearch(): boolean;
+    set enableSearch(val: boolean);
+    get expression(): Expression;
+    set expression(val: Expression);
+    get factory(): ListItemFactory;
+    set factory(val: ListItemFactory);
+    get list_factory(): ListItemFactory;
+    set list_factory(val: ListItemFactory);
+    get listFactory(): ListItemFactory;
+    set listFactory(val: ListItemFactory);
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+    get selected(): number;
+    set selected(val: number);
+    get selected_item(): GObject.Object;
+    get selectedItem(): GObject.Object;
+    get show_arrow(): boolean;
+    set show_arrow(val: boolean);
+    get showArrow(): boolean;
+    set showArrow(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null, expression?: Expression | null): DropDown;
+    static new_from_strings(strings: string[]): DropDown;
+
+    // Members
+
+    get_enable_search(): boolean;
+    get_expression(): Expression | null;
+    get_factory(): ListItemFactory | null;
+    get_list_factory(): ListItemFactory | null;
+    get_model(): Gio.ListModel | null;
+    get_selected(): number;
+    get_selected_item<T = GObject.Object>(): T;
+    get_show_arrow(): boolean;
+    set_enable_search(enable_search: boolean): void;
+    set_expression(expression?: Expression | null): void;
+    set_factory(factory?: ListItemFactory | null): void;
+    set_list_factory(factory?: ListItemFactory | null): void;
+    set_model(model?: Gio.ListModel | null): void;
+    set_selected(position: number): void;
+    set_show_arrow(show_arrow: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module DropTarget {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        actions: Gdk.DragAction;
+        current_drop: Gdk.Drop;
+        currentDrop: Gdk.Drop;
+        formats: Gdk.ContentFormats;
+        preload: boolean;
+        value: GObject.Value;
+    }
+}
+export class DropTarget extends EventController {
+    static $gtype: GObject.GType<DropTarget>;
+
+    constructor(properties?: Partial<DropTarget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DropTarget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get actions(): Gdk.DragAction;
+    set actions(val: Gdk.DragAction);
+    get current_drop(): Gdk.Drop;
+    get currentDrop(): Gdk.Drop;
+    get formats(): Gdk.ContentFormats;
+    get preload(): boolean;
+    set preload(val: boolean);
+    get value(): GObject.Value;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "accept", callback: (_source: this, drop: Gdk.Drop) => boolean): number;
+    connect_after(signal: "accept", callback: (_source: this, drop: Gdk.Drop) => boolean): number;
+    emit(signal: "accept", drop: Gdk.Drop): void;
+    connect(signal: "drop", callback: (_source: this, value: GObject.Value, x: number, y: number) => 
boolean): number;
+    connect_after(
+        signal: "drop",
+        callback: (_source: this, value: GObject.Value, x: number, y: number) => boolean
+    ): number;
+    emit(signal: "drop", value: GObject.Value | any, x: number, y: number): void;
+    connect(signal: "enter", callback: (_source: this, x: number, y: number) => Gdk.DragAction): number;
+    connect_after(signal: "enter", callback: (_source: this, x: number, y: number) => Gdk.DragAction): 
number;
+    emit(signal: "enter", x: number, y: number): void;
+    connect(signal: "leave", callback: (_source: this) => void): number;
+    connect_after(signal: "leave", callback: (_source: this) => void): number;
+    emit(signal: "leave"): void;
+    connect(signal: "motion", callback: (_source: this, x: number, y: number) => Gdk.DragAction): number;
+    connect_after(signal: "motion", callback: (_source: this, x: number, y: number) => Gdk.DragAction): 
number;
+    emit(signal: "motion", x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](type: GObject.GType, actions: Gdk.DragAction): DropTarget;
+
+    // Members
+
+    get_actions(): Gdk.DragAction;
+    get_current_drop(): Gdk.Drop | null;
+    get_drop(): Gdk.Drop | null;
+    get_formats(): Gdk.ContentFormats | null;
+    get_gtypes(): GObject.GType[] | null;
+    get_preload(): boolean;
+    get_value(): GObject.Value | null;
+    reject(): void;
+    set_actions(actions: Gdk.DragAction): void;
+    set_gtypes(types?: GObject.GType[] | null): void;
+    set_preload(preload: boolean): void;
+}
+export module DropTargetAsync {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        actions: Gdk.DragAction;
+        formats: Gdk.ContentFormats;
+    }
+}
+export class DropTargetAsync extends EventController {
+    static $gtype: GObject.GType<DropTargetAsync>;
+
+    constructor(properties?: Partial<DropTargetAsync.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<DropTargetAsync.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get actions(): Gdk.DragAction;
+    set actions(val: Gdk.DragAction);
+    get formats(): Gdk.ContentFormats;
+    set formats(val: Gdk.ContentFormats);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "accept", callback: (_source: this, drop: Gdk.Drop) => boolean): number;
+    connect_after(signal: "accept", callback: (_source: this, drop: Gdk.Drop) => boolean): number;
+    emit(signal: "accept", drop: Gdk.Drop): void;
+    connect(
+        signal: "drag-enter",
+        callback: (_source: this, drop: Gdk.Drop, x: number, y: number) => Gdk.DragAction
+    ): number;
+    connect_after(
+        signal: "drag-enter",
+        callback: (_source: this, drop: Gdk.Drop, x: number, y: number) => Gdk.DragAction
+    ): number;
+    emit(signal: "drag-enter", drop: Gdk.Drop, x: number, y: number): void;
+    connect(signal: "drag-leave", callback: (_source: this, drop: Gdk.Drop) => void): number;
+    connect_after(signal: "drag-leave", callback: (_source: this, drop: Gdk.Drop) => void): number;
+    emit(signal: "drag-leave", drop: Gdk.Drop): void;
+    connect(
+        signal: "drag-motion",
+        callback: (_source: this, drop: Gdk.Drop, x: number, y: number) => Gdk.DragAction
+    ): number;
+    connect_after(
+        signal: "drag-motion",
+        callback: (_source: this, drop: Gdk.Drop, x: number, y: number) => Gdk.DragAction
+    ): number;
+    emit(signal: "drag-motion", drop: Gdk.Drop, x: number, y: number): void;
+    connect(signal: "drop", callback: (_source: this, drop: Gdk.Drop, x: number, y: number) => boolean): 
number;
+    connect_after(signal: "drop", callback: (_source: this, drop: Gdk.Drop, x: number, y: number) => 
boolean): number;
+    emit(signal: "drop", drop: Gdk.Drop, x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](formats: Gdk.ContentFormats | null, actions: Gdk.DragAction): DropTargetAsync;
+
+    // Members
+
+    get_actions(): Gdk.DragAction;
+    get_formats(): Gdk.ContentFormats | null;
+    reject_drop(drop: Gdk.Drop): void;
+    set_actions(actions: Gdk.DragAction): void;
+    set_formats(formats?: Gdk.ContentFormats | null): void;
+}
+export module EditableLabel {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        editing: boolean;
+    }
+}
+export class EditableLabel extends Widget implements Accessible, Buildable, ConstraintTarget, Editable {
+    static $gtype: GObject.GType<EditableLabel>;
+
+    constructor(properties?: Partial<EditableLabel.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EditableLabel.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get editing(): boolean;
+    set editing(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](str: string): EditableLabel;
+
+    // Members
+
+    get_editing(): boolean;
+    start_editing(): void;
+    stop_editing(commit: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module EmojiChooser {
+    export interface ConstructorProperties extends Popover.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EmojiChooser extends Popover implements Accessible, Buildable, ConstraintTarget, Native, 
ShortcutManager {
+    static $gtype: GObject.GType<EmojiChooser>;
+
+    constructor(properties?: Partial<EmojiChooser.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EmojiChooser.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "emoji-picked", callback: (_source: this, text: string) => void): number;
+    connect_after(signal: "emoji-picked", callback: (_source: this, text: string) => void): number;
+    emit(signal: "emoji-picked", text: string): void;
+
+    // Constructors
+
+    static ["new"](): EmojiChooser;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module Entry {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activates_default: boolean;
+        activatesDefault: boolean;
+        attributes: Pango.AttrList;
+        buffer: EntryBuffer;
+        completion: EntryCompletion;
+        enable_emoji_completion: boolean;
+        enableEmojiCompletion: boolean;
+        extra_menu: Gio.MenuModel;
+        extraMenu: Gio.MenuModel;
+        has_frame: boolean;
+        hasFrame: boolean;
+        im_module: string;
+        imModule: string;
+        input_hints: InputHints;
+        inputHints: InputHints;
+        input_purpose: InputPurpose;
+        inputPurpose: InputPurpose;
+        invisible_char: number;
+        invisibleChar: number;
+        invisible_char_set: boolean;
+        invisibleCharSet: boolean;
+        max_length: number;
+        maxLength: number;
+        overwrite_mode: boolean;
+        overwriteMode: boolean;
+        placeholder_text: string;
+        placeholderText: string;
+        primary_icon_activatable: boolean;
+        primaryIconActivatable: boolean;
+        primary_icon_gicon: Gio.Icon;
+        primaryIconGicon: Gio.Icon;
+        primary_icon_name: string;
+        primaryIconName: string;
+        primary_icon_paintable: Gdk.Paintable;
+        primaryIconPaintable: Gdk.Paintable;
+        primary_icon_sensitive: boolean;
+        primaryIconSensitive: boolean;
+        primary_icon_storage_type: ImageType;
+        primaryIconStorageType: ImageType;
+        primary_icon_tooltip_markup: string;
+        primaryIconTooltipMarkup: string;
+        primary_icon_tooltip_text: string;
+        primaryIconTooltipText: string;
+        progress_fraction: number;
+        progressFraction: number;
+        progress_pulse_step: number;
+        progressPulseStep: number;
+        scroll_offset: number;
+        scrollOffset: number;
+        secondary_icon_activatable: boolean;
+        secondaryIconActivatable: boolean;
+        secondary_icon_gicon: Gio.Icon;
+        secondaryIconGicon: Gio.Icon;
+        secondary_icon_name: string;
+        secondaryIconName: string;
+        secondary_icon_paintable: Gdk.Paintable;
+        secondaryIconPaintable: Gdk.Paintable;
+        secondary_icon_sensitive: boolean;
+        secondaryIconSensitive: boolean;
+        secondary_icon_storage_type: ImageType;
+        secondaryIconStorageType: ImageType;
+        secondary_icon_tooltip_markup: string;
+        secondaryIconTooltipMarkup: string;
+        secondary_icon_tooltip_text: string;
+        secondaryIconTooltipText: string;
+        show_emoji_icon: boolean;
+        showEmojiIcon: boolean;
+        tabs: Pango.TabArray;
+        text_length: number;
+        textLength: number;
+        truncate_multiline: boolean;
+        truncateMultiline: boolean;
+        visibility: boolean;
+    }
+}
+export class Entry extends Widget implements Accessible, Buildable, CellEditable, ConstraintTarget, Editable 
{
+    static $gtype: GObject.GType<Entry>;
+
+    constructor(properties?: Partial<Entry.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Entry.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activates_default(): boolean;
+    set activates_default(val: boolean);
+    get activatesDefault(): boolean;
+    set activatesDefault(val: boolean);
+    get attributes(): Pango.AttrList;
+    set attributes(val: Pango.AttrList);
+    get buffer(): EntryBuffer;
+    set buffer(val: EntryBuffer);
+    get completion(): EntryCompletion;
+    set completion(val: EntryCompletion);
+    get enable_emoji_completion(): boolean;
+    set enable_emoji_completion(val: boolean);
+    get enableEmojiCompletion(): boolean;
+    set enableEmojiCompletion(val: boolean);
+    get extra_menu(): Gio.MenuModel;
+    set extra_menu(val: Gio.MenuModel);
+    get extraMenu(): Gio.MenuModel;
+    set extraMenu(val: Gio.MenuModel);
+    get has_frame(): boolean;
+    set has_frame(val: boolean);
+    get hasFrame(): boolean;
+    set hasFrame(val: boolean);
+    get im_module(): string;
+    set im_module(val: string);
+    get imModule(): string;
+    set imModule(val: string);
+    get input_hints(): InputHints;
+    set input_hints(val: InputHints);
+    get inputHints(): InputHints;
+    set inputHints(val: InputHints);
+    get input_purpose(): InputPurpose;
+    set input_purpose(val: InputPurpose);
+    get inputPurpose(): InputPurpose;
+    set inputPurpose(val: InputPurpose);
+    get invisible_char(): number;
+    set invisible_char(val: number);
+    get invisibleChar(): number;
+    set invisibleChar(val: number);
+    get invisible_char_set(): boolean;
+    set invisible_char_set(val: boolean);
+    get invisibleCharSet(): boolean;
+    set invisibleCharSet(val: boolean);
+    get max_length(): number;
+    set max_length(val: number);
+    get maxLength(): number;
+    set maxLength(val: number);
+    get overwrite_mode(): boolean;
+    set overwrite_mode(val: boolean);
+    get overwriteMode(): boolean;
+    set overwriteMode(val: boolean);
+    get placeholder_text(): string;
+    set placeholder_text(val: string);
+    get placeholderText(): string;
+    set placeholderText(val: string);
+    get primary_icon_activatable(): boolean;
+    set primary_icon_activatable(val: boolean);
+    get primaryIconActivatable(): boolean;
+    set primaryIconActivatable(val: boolean);
+    get primary_icon_gicon(): Gio.Icon;
+    set primary_icon_gicon(val: Gio.Icon);
+    get primaryIconGicon(): Gio.Icon;
+    set primaryIconGicon(val: Gio.Icon);
+    get primary_icon_name(): string;
+    set primary_icon_name(val: string);
+    get primaryIconName(): string;
+    set primaryIconName(val: string);
+    get primary_icon_paintable(): Gdk.Paintable;
+    set primary_icon_paintable(val: Gdk.Paintable);
+    get primaryIconPaintable(): Gdk.Paintable;
+    set primaryIconPaintable(val: Gdk.Paintable);
+    get primary_icon_sensitive(): boolean;
+    set primary_icon_sensitive(val: boolean);
+    get primaryIconSensitive(): boolean;
+    set primaryIconSensitive(val: boolean);
+    get primary_icon_storage_type(): ImageType;
+    get primaryIconStorageType(): ImageType;
+    get primary_icon_tooltip_markup(): string;
+    set primary_icon_tooltip_markup(val: string);
+    get primaryIconTooltipMarkup(): string;
+    set primaryIconTooltipMarkup(val: string);
+    get primary_icon_tooltip_text(): string;
+    set primary_icon_tooltip_text(val: string);
+    get primaryIconTooltipText(): string;
+    set primaryIconTooltipText(val: string);
+    get progress_fraction(): number;
+    set progress_fraction(val: number);
+    get progressFraction(): number;
+    set progressFraction(val: number);
+    get progress_pulse_step(): number;
+    set progress_pulse_step(val: number);
+    get progressPulseStep(): number;
+    set progressPulseStep(val: number);
+    get scroll_offset(): number;
+    get scrollOffset(): number;
+    get secondary_icon_activatable(): boolean;
+    set secondary_icon_activatable(val: boolean);
+    get secondaryIconActivatable(): boolean;
+    set secondaryIconActivatable(val: boolean);
+    get secondary_icon_gicon(): Gio.Icon;
+    set secondary_icon_gicon(val: Gio.Icon);
+    get secondaryIconGicon(): Gio.Icon;
+    set secondaryIconGicon(val: Gio.Icon);
+    get secondary_icon_name(): string;
+    set secondary_icon_name(val: string);
+    get secondaryIconName(): string;
+    set secondaryIconName(val: string);
+    get secondary_icon_paintable(): Gdk.Paintable;
+    set secondary_icon_paintable(val: Gdk.Paintable);
+    get secondaryIconPaintable(): Gdk.Paintable;
+    set secondaryIconPaintable(val: Gdk.Paintable);
+    get secondary_icon_sensitive(): boolean;
+    set secondary_icon_sensitive(val: boolean);
+    get secondaryIconSensitive(): boolean;
+    set secondaryIconSensitive(val: boolean);
+    get secondary_icon_storage_type(): ImageType;
+    get secondaryIconStorageType(): ImageType;
+    get secondary_icon_tooltip_markup(): string;
+    set secondary_icon_tooltip_markup(val: string);
+    get secondaryIconTooltipMarkup(): string;
+    set secondaryIconTooltipMarkup(val: string);
+    get secondary_icon_tooltip_text(): string;
+    set secondary_icon_tooltip_text(val: string);
+    get secondaryIconTooltipText(): string;
+    set secondaryIconTooltipText(val: string);
+    get show_emoji_icon(): boolean;
+    set show_emoji_icon(val: boolean);
+    get showEmojiIcon(): boolean;
+    set showEmojiIcon(val: boolean);
+    get tabs(): Pango.TabArray;
+    set tabs(val: Pango.TabArray);
+    get text_length(): number;
+    get textLength(): number;
+    get truncate_multiline(): boolean;
+    set truncate_multiline(val: boolean);
+    get truncateMultiline(): boolean;
+    set truncateMultiline(val: boolean);
+    get visibility(): boolean;
+    set visibility(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "icon-press", callback: (_source: this, icon_pos: EntryIconPosition) => void): number;
+    connect_after(signal: "icon-press", callback: (_source: this, icon_pos: EntryIconPosition) => void): 
number;
+    emit(signal: "icon-press", icon_pos: EntryIconPosition): void;
+    connect(signal: "icon-release", callback: (_source: this, icon_pos: EntryIconPosition) => void): number;
+    connect_after(signal: "icon-release", callback: (_source: this, icon_pos: EntryIconPosition) => void): 
number;
+    emit(signal: "icon-release", icon_pos: EntryIconPosition): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get editing_canceled(): boolean;
+    set editing_canceled(val: boolean);
+    get editingCanceled(): boolean;
+    set editingCanceled(val: boolean);
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](): Entry;
+    static new_with_buffer(buffer: EntryBuffer): Entry;
+
+    // Members
+
+    get_activates_default(): boolean;
+    get_alignment(): number;
+    get_attributes(): Pango.AttrList | null;
+    get_buffer(): EntryBuffer;
+    get_completion(): EntryCompletion | null;
+    get_current_icon_drag_source(): number;
+    get_extra_menu(): Gio.MenuModel | null;
+    get_has_frame(): boolean;
+    get_icon_activatable(icon_pos: EntryIconPosition): boolean;
+    get_icon_area(icon_pos: EntryIconPosition): Gdk.Rectangle;
+    get_icon_at_pos(x: number, y: number): number;
+    get_icon_gicon(icon_pos: EntryIconPosition): Gio.Icon | null;
+    get_icon_name(icon_pos: EntryIconPosition): string | null;
+    get_icon_paintable(icon_pos: EntryIconPosition): Gdk.Paintable | null;
+    get_icon_sensitive(icon_pos: EntryIconPosition): boolean;
+    get_icon_storage_type(icon_pos: EntryIconPosition): ImageType;
+    get_icon_tooltip_markup(icon_pos: EntryIconPosition): string | null;
+    get_icon_tooltip_text(icon_pos: EntryIconPosition): string | null;
+    get_input_hints(): InputHints;
+    get_input_purpose(): InputPurpose;
+    get_invisible_char(): number;
+    get_max_length(): number;
+    get_overwrite_mode(): boolean;
+    get_placeholder_text(): string | null;
+    get_progress_fraction(): number;
+    get_progress_pulse_step(): number;
+    get_tabs(): Pango.TabArray | null;
+    get_text_length(): number;
+    get_visibility(): boolean;
+    grab_focus_without_selecting(): boolean;
+    progress_pulse(): void;
+    reset_im_context(): void;
+    set_activates_default(setting: boolean): void;
+    set_alignment(xalign: number): void;
+    set_attributes(attrs: Pango.AttrList): void;
+    set_buffer(buffer: EntryBuffer): void;
+    set_completion(completion?: EntryCompletion | null): void;
+    set_extra_menu(model?: Gio.MenuModel | null): void;
+    set_has_frame(setting: boolean): void;
+    set_icon_activatable(icon_pos: EntryIconPosition, activatable: boolean): void;
+    set_icon_drag_source(icon_pos: EntryIconPosition, provider: Gdk.ContentProvider, actions: 
Gdk.DragAction): void;
+    set_icon_from_gicon(icon_pos: EntryIconPosition, icon?: Gio.Icon | null): void;
+    set_icon_from_icon_name(icon_pos: EntryIconPosition, icon_name?: string | null): void;
+    set_icon_from_paintable(icon_pos: EntryIconPosition, paintable?: Gdk.Paintable | null): void;
+    set_icon_sensitive(icon_pos: EntryIconPosition, sensitive: boolean): void;
+    set_icon_tooltip_markup(icon_pos: EntryIconPosition, tooltip?: string | null): void;
+    set_icon_tooltip_text(icon_pos: EntryIconPosition, tooltip?: string | null): void;
+    set_input_hints(hints: InputHints): void;
+    set_input_purpose(purpose: InputPurpose): void;
+    set_invisible_char(ch: number): void;
+    set_max_length(max: number): void;
+    set_overwrite_mode(overwrite: boolean): void;
+    set_placeholder_text(text?: string | null): void;
+    set_progress_fraction(fraction: number): void;
+    set_progress_pulse_step(fraction: number): void;
+    set_tabs(tabs?: Pango.TabArray | null): void;
+    set_visibility(visible: boolean): void;
+    unset_invisible_char(): void;
+    vfunc_activate(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    editing_done(): void;
+    remove_widget(): void;
+    start_editing(event?: Gdk.Event | null): void;
+    vfunc_editing_done(): void;
+    vfunc_remove_widget(): void;
+    vfunc_start_editing(event?: Gdk.Event | null): void;
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module EntryBuffer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        length: number;
+        max_length: number;
+        maxLength: number;
+        text: string;
+    }
+}
+export class EntryBuffer extends GObject.Object {
+    static $gtype: GObject.GType<EntryBuffer>;
+
+    constructor(properties?: Partial<EntryBuffer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EntryBuffer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get length(): number;
+    get max_length(): number;
+    set max_length(val: number);
+    get maxLength(): number;
+    set maxLength(val: number);
+    get text(): string;
+    set text(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "deleted-text", callback: (_source: this, position: number, n_chars: number) => void): 
number;
+    connect_after(signal: "deleted-text", callback: (_source: this, position: number, n_chars: number) => 
void): number;
+    emit(signal: "deleted-text", position: number, n_chars: number): void;
+    connect(
+        signal: "inserted-text",
+        callback: (_source: this, position: number, chars: string, n_chars: number) => void
+    ): number;
+    connect_after(
+        signal: "inserted-text",
+        callback: (_source: this, position: number, chars: string, n_chars: number) => void
+    ): number;
+    emit(signal: "inserted-text", position: number, chars: string, n_chars: number): void;
+
+    // Constructors
+
+    static ["new"](initial_chars: string | null, n_initial_chars: number): EntryBuffer;
+
+    // Members
+
+    delete_text(position: number, n_chars: number): number;
+    emit_deleted_text(position: number, n_chars: number): void;
+    emit_inserted_text(position: number, chars: string, n_chars: number): void;
+    get_bytes(): number;
+    get_length(): number;
+    get_max_length(): number;
+    get_text(): string;
+    insert_text(position: number, chars: string, n_chars: number): number;
+    set_max_length(max_length: number): void;
+    set_text(chars: string, n_chars: number): void;
+    vfunc_delete_text(position: number, n_chars: number): number;
+    vfunc_deleted_text(position: number, n_chars: number): void;
+    vfunc_get_length(): number;
+    vfunc_get_text(n_bytes: number): string;
+    vfunc_insert_text(position: number, chars: string, n_chars: number): number;
+    vfunc_inserted_text(position: number, chars: string, n_chars: number): void;
+}
+export module EntryCompletion {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        cell_area: CellArea;
+        cellArea: CellArea;
+        inline_completion: boolean;
+        inlineCompletion: boolean;
+        inline_selection: boolean;
+        inlineSelection: boolean;
+        minimum_key_length: number;
+        minimumKeyLength: number;
+        model: TreeModel;
+        popup_completion: boolean;
+        popupCompletion: boolean;
+        popup_set_width: boolean;
+        popupSetWidth: boolean;
+        popup_single_match: boolean;
+        popupSingleMatch: boolean;
+        text_column: number;
+        textColumn: number;
+    }
+}
+export class EntryCompletion extends GObject.Object implements Buildable, CellLayout {
+    static $gtype: GObject.GType<EntryCompletion>;
+
+    constructor(properties?: Partial<EntryCompletion.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EntryCompletion.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get cell_area(): CellArea;
+    get cellArea(): CellArea;
+    get inline_completion(): boolean;
+    set inline_completion(val: boolean);
+    get inlineCompletion(): boolean;
+    set inlineCompletion(val: boolean);
+    get inline_selection(): boolean;
+    set inline_selection(val: boolean);
+    get inlineSelection(): boolean;
+    set inlineSelection(val: boolean);
+    get minimum_key_length(): number;
+    set minimum_key_length(val: number);
+    get minimumKeyLength(): number;
+    set minimumKeyLength(val: number);
+    get model(): TreeModel;
+    set model(val: TreeModel);
+    get popup_completion(): boolean;
+    set popup_completion(val: boolean);
+    get popupCompletion(): boolean;
+    set popupCompletion(val: boolean);
+    get popup_set_width(): boolean;
+    set popup_set_width(val: boolean);
+    get popupSetWidth(): boolean;
+    set popupSetWidth(val: boolean);
+    get popup_single_match(): boolean;
+    set popup_single_match(val: boolean);
+    get popupSingleMatch(): boolean;
+    set popupSingleMatch(val: boolean);
+    get text_column(): number;
+    set text_column(val: number);
+    get textColumn(): number;
+    set textColumn(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "cursor-on-match", callback: (_source: this, model: TreeModel, iter: TreeIter) => 
boolean): number;
+    connect_after(
+        signal: "cursor-on-match",
+        callback: (_source: this, model: TreeModel, iter: TreeIter) => boolean
+    ): number;
+    emit(signal: "cursor-on-match", model: TreeModel, iter: TreeIter): void;
+    connect(signal: "insert-prefix", callback: (_source: this, prefix: string) => boolean): number;
+    connect_after(signal: "insert-prefix", callback: (_source: this, prefix: string) => boolean): number;
+    emit(signal: "insert-prefix", prefix: string): void;
+    connect(signal: "match-selected", callback: (_source: this, model: TreeModel, iter: TreeIter) => 
boolean): number;
+    connect_after(
+        signal: "match-selected",
+        callback: (_source: this, model: TreeModel, iter: TreeIter) => boolean
+    ): number;
+    emit(signal: "match-selected", model: TreeModel, iter: TreeIter): void;
+    connect(signal: "no-matches", callback: (_source: this) => void): number;
+    connect_after(signal: "no-matches", callback: (_source: this) => void): number;
+    emit(signal: "no-matches"): void;
+
+    // Constructors
+
+    static ["new"](): EntryCompletion;
+    static new_with_area(area: CellArea): EntryCompletion;
+
+    // Members
+
+    complete(): void;
+    compute_prefix(key: string): string | null;
+    get_completion_prefix(): string | null;
+    get_entry(): Widget;
+    get_inline_completion(): boolean;
+    get_inline_selection(): boolean;
+    get_minimum_key_length(): number;
+    get_model(): TreeModel | null;
+    get_popup_completion(): boolean;
+    get_popup_set_width(): boolean;
+    get_popup_single_match(): boolean;
+    get_text_column(): number;
+    insert_prefix(): void;
+    set_inline_completion(inline_completion: boolean): void;
+    set_inline_selection(inline_selection: boolean): void;
+    set_match_func(func: EntryCompletionMatchFunc): void;
+    set_minimum_key_length(length: number): void;
+    set_model(model?: TreeModel | null): void;
+    set_popup_completion(popup_completion: boolean): void;
+    set_popup_set_width(popup_set_width: boolean): void;
+    set_popup_single_match(popup_single_match: boolean): void;
+    set_text_column(column: number): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+}
+export module EventController {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        name: string;
+        propagation_limit: PropagationLimit;
+        propagationLimit: PropagationLimit;
+        propagation_phase: PropagationPhase;
+        propagationPhase: PropagationPhase;
+        widget: Widget;
+    }
+}
+export abstract class EventController extends GObject.Object {
+    static $gtype: GObject.GType<EventController>;
+
+    constructor(properties?: Partial<EventController.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EventController.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get name(): string;
+    set name(val: string);
+    get propagation_limit(): PropagationLimit;
+    set propagation_limit(val: PropagationLimit);
+    get propagationLimit(): PropagationLimit;
+    set propagationLimit(val: PropagationLimit);
+    get propagation_phase(): PropagationPhase;
+    set propagation_phase(val: PropagationPhase);
+    get propagationPhase(): PropagationPhase;
+    set propagationPhase(val: PropagationPhase);
+    get widget(): Widget;
+
+    // Members
+
+    get_current_event(): Gdk.Event | null;
+    get_current_event_device(): Gdk.Device | null;
+    get_current_event_state(): Gdk.ModifierType;
+    get_current_event_time(): number;
+    get_name(): string | null;
+    get_propagation_limit(): PropagationLimit;
+    get_propagation_phase(): PropagationPhase;
+    get_widget(): Widget;
+    reset(): void;
+    set_name(name?: string | null): void;
+    set_propagation_limit(limit: PropagationLimit): void;
+    set_propagation_phase(phase: PropagationPhase): void;
+}
+export module EventControllerFocus {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        contains_focus: boolean;
+        containsFocus: boolean;
+        is_focus: boolean;
+        isFocus: boolean;
+    }
+}
+export class EventControllerFocus extends EventController {
+    static $gtype: GObject.GType<EventControllerFocus>;
+
+    constructor(properties?: Partial<EventControllerFocus.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EventControllerFocus.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get contains_focus(): boolean;
+    get containsFocus(): boolean;
+    get is_focus(): boolean;
+    get isFocus(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "enter", callback: (_source: this) => void): number;
+    connect_after(signal: "enter", callback: (_source: this) => void): number;
+    emit(signal: "enter"): void;
+    connect(signal: "leave", callback: (_source: this) => void): number;
+    connect_after(signal: "leave", callback: (_source: this) => void): number;
+    emit(signal: "leave"): void;
+
+    // Constructors
+
+    static ["new"](): EventControllerFocus;
+}
+export module EventControllerKey {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EventControllerKey extends EventController {
+    static $gtype: GObject.GType<EventControllerKey>;
+
+    constructor(properties?: Partial<EventControllerKey.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EventControllerKey.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "im-update", callback: (_source: this) => void): number;
+    connect_after(signal: "im-update", callback: (_source: this) => void): number;
+    emit(signal: "im-update"): void;
+    connect(
+        signal: "key-pressed",
+        callback: (_source: this, keyval: number, keycode: number, state: Gdk.ModifierType) => boolean
+    ): number;
+    connect_after(
+        signal: "key-pressed",
+        callback: (_source: this, keyval: number, keycode: number, state: Gdk.ModifierType) => boolean
+    ): number;
+    emit(signal: "key-pressed", keyval: number, keycode: number, state: Gdk.ModifierType): void;
+    connect(
+        signal: "key-released",
+        callback: (_source: this, keyval: number, keycode: number, state: Gdk.ModifierType) => void
+    ): number;
+    connect_after(
+        signal: "key-released",
+        callback: (_source: this, keyval: number, keycode: number, state: Gdk.ModifierType) => void
+    ): number;
+    emit(signal: "key-released", keyval: number, keycode: number, state: Gdk.ModifierType): void;
+    connect(signal: "modifiers", callback: (_source: this, keyval: Gdk.ModifierType) => boolean): number;
+    connect_after(signal: "modifiers", callback: (_source: this, keyval: Gdk.ModifierType) => boolean): 
number;
+    emit(signal: "modifiers", keyval: Gdk.ModifierType): void;
+
+    // Constructors
+
+    static ["new"](): EventControllerKey;
+
+    // Members
+
+    forward(widget: Widget): boolean;
+    get_group(): number;
+    get_im_context(): IMContext | null;
+    set_im_context(im_context?: IMContext | null): void;
+}
+export module EventControllerLegacy {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class EventControllerLegacy extends EventController {
+    static $gtype: GObject.GType<EventControllerLegacy>;
+
+    constructor(properties?: Partial<EventControllerLegacy.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EventControllerLegacy.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "event", callback: (_source: this, event: Gdk.Event) => boolean): number;
+    connect_after(signal: "event", callback: (_source: this, event: Gdk.Event) => boolean): number;
+    emit(signal: "event", event: Gdk.Event): void;
+
+    // Constructors
+
+    static ["new"](): EventControllerLegacy;
+}
+export module EventControllerMotion {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        contains_pointer: boolean;
+        containsPointer: boolean;
+        is_pointer: boolean;
+        isPointer: boolean;
+    }
+}
+export class EventControllerMotion extends EventController {
+    static $gtype: GObject.GType<EventControllerMotion>;
+
+    constructor(properties?: Partial<EventControllerMotion.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EventControllerMotion.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get contains_pointer(): boolean;
+    get containsPointer(): boolean;
+    get is_pointer(): boolean;
+    get isPointer(): boolean;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "enter", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "enter", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "enter", x: number, y: number): void;
+    connect(signal: "leave", callback: (_source: this) => void): number;
+    connect_after(signal: "leave", callback: (_source: this) => void): number;
+    emit(signal: "leave"): void;
+    connect(signal: "motion", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "motion", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "motion", x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](): EventControllerMotion;
+}
+export module EventControllerScroll {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        flags: EventControllerScrollFlags;
+    }
+}
+export class EventControllerScroll extends EventController {
+    static $gtype: GObject.GType<EventControllerScroll>;
+
+    constructor(properties?: Partial<EventControllerScroll.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<EventControllerScroll.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get flags(): EventControllerScrollFlags;
+    set flags(val: EventControllerScrollFlags);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "decelerate", callback: (_source: this, vel_x: number, vel_y: number) => void): number;
+    connect_after(signal: "decelerate", callback: (_source: this, vel_x: number, vel_y: number) => void): 
number;
+    emit(signal: "decelerate", vel_x: number, vel_y: number): void;
+    connect(signal: "scroll", callback: (_source: this, dx: number, dy: number) => boolean): number;
+    connect_after(signal: "scroll", callback: (_source: this, dx: number, dy: number) => boolean): number;
+    emit(signal: "scroll", dx: number, dy: number): void;
+    connect(signal: "scroll-begin", callback: (_source: this) => void): number;
+    connect_after(signal: "scroll-begin", callback: (_source: this) => void): number;
+    emit(signal: "scroll-begin"): void;
+    connect(signal: "scroll-end", callback: (_source: this) => void): number;
+    connect_after(signal: "scroll-end", callback: (_source: this) => void): number;
+    emit(signal: "scroll-end"): void;
+
+    // Constructors
+
+    static ["new"](flags: EventControllerScrollFlags): EventControllerScroll;
+
+    // Members
+
+    get_flags(): EventControllerScrollFlags;
+    get_unit(): Gdk.ScrollUnit;
+    set_flags(flags: EventControllerScrollFlags): void;
+}
+export module EveryFilter {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends MultiFilter.ConstructorProperties<A> {
+        [key: string]: any;
+    }
+}
+export class EveryFilter<A extends GObject.Object = GObject.Object>
+    extends MultiFilter<A>
+    implements Gio.ListModel<A>, Buildable
+{
+    static $gtype: GObject.GType<EveryFilter>;
+
+    constructor(properties?: Partial<EveryFilter.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<EveryFilter.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): EveryFilter;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Expander {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        expanded: boolean;
+        label: string;
+        label_widget: Widget;
+        labelWidget: Widget;
+        resize_toplevel: boolean;
+        resizeToplevel: boolean;
+        use_markup: boolean;
+        useMarkup: boolean;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class Expander extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Expander>;
+
+    constructor(properties?: Partial<Expander.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Expander.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get expanded(): boolean;
+    set expanded(val: boolean);
+    get label(): string;
+    set label(val: string);
+    get label_widget(): Widget;
+    set label_widget(val: Widget);
+    get labelWidget(): Widget;
+    set labelWidget(val: Widget);
+    get resize_toplevel(): boolean;
+    set resize_toplevel(val: boolean);
+    get resizeToplevel(): boolean;
+    set resizeToplevel(val: boolean);
+    get use_markup(): boolean;
+    set use_markup(val: boolean);
+    get useMarkup(): boolean;
+    set useMarkup(val: boolean);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](label?: string | null): Expander;
+    static new_with_mnemonic(label?: string | null): Expander;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_expanded(): boolean;
+    get_label(): string | null;
+    get_label_widget(): Widget | null;
+    get_resize_toplevel(): boolean;
+    get_use_markup(): boolean;
+    get_use_underline(): boolean;
+    set_child(child?: Widget | null): void;
+    set_expanded(expanded: boolean): void;
+    set_label(label?: string | null): void;
+    set_label_widget(label_widget?: Widget | null): void;
+    set_resize_toplevel(resize_toplevel: boolean): void;
+    set_use_markup(use_markup: boolean): void;
+    set_use_underline(use_underline: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Expression {
+    export interface ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Expression {
+    static $gtype: GObject.GType<Expression>;
+
+    constructor(properties?: Partial<Expression.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Expression.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    bind(target: GObject.Object, property: string, this_?: GObject.Object | null): ExpressionWatch;
+    evaluate(this_: GObject.Object | null, value: GObject.Value | any): boolean;
+    get_value_type(): GObject.GType;
+    is_static(): boolean;
+    ref(): Expression;
+    unref(): void;
+    watch(this_: GObject.Object | null, notify: ExpressionNotify): ExpressionWatch;
+}
+export module FileChooserDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FileChooserDialog
+    extends Dialog
+    implements Accessible, Buildable, ConstraintTarget, FileChooser, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<FileChooserDialog>;
+
+    constructor(properties?: Partial<FileChooserDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileChooserDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Implemented Properties
+
+    get action(): FileChooserAction;
+    set action(val: FileChooserAction);
+    get create_folders(): boolean;
+    set create_folders(val: boolean);
+    get createFolders(): boolean;
+    set createFolders(val: boolean);
+    get filter(): FileFilter;
+    set filter(val: FileFilter);
+    get filters(): Gio.ListModel;
+    get select_multiple(): boolean;
+    set select_multiple(val: boolean);
+    get selectMultiple(): boolean;
+    set selectMultiple(val: boolean);
+    get shortcut_folders(): Gio.ListModel;
+    get shortcutFolders(): Gio.ListModel;
+
+    // Implemented Members
+
+    add_choice(id: string, label: string, options?: string[] | null, option_labels?: string[] | null): void;
+    add_filter(filter: FileFilter): void;
+    add_shortcut_folder(folder: Gio.File): boolean;
+    get_action(): FileChooserAction;
+    get_choice(id: string): string | null;
+    get_create_folders(): boolean;
+    get_current_folder(): Gio.File | null;
+    get_current_name(): string | null;
+    get_file(): Gio.File | null;
+    get_files(): Gio.ListModel;
+    get_filter(): FileFilter | null;
+    get_filters(): Gio.ListModel;
+    get_select_multiple(): boolean;
+    get_shortcut_folders(): Gio.ListModel;
+    remove_choice(id: string): void;
+    remove_filter(filter: FileFilter): void;
+    remove_shortcut_folder(folder: Gio.File): boolean;
+    set_action(action: FileChooserAction): void;
+    set_choice(id: string, option: string): void;
+    set_create_folders(create_folders: boolean): void;
+    set_current_folder(file?: Gio.File | null): boolean;
+    set_current_name(name: string): void;
+    set_file(file: Gio.File): boolean;
+    set_filter(filter: FileFilter): void;
+    set_select_multiple(select_multiple: boolean): void;
+}
+export module FileChooserNative {
+    export interface ConstructorProperties extends NativeDialog.ConstructorProperties {
+        [key: string]: any;
+        accept_label: string;
+        acceptLabel: string;
+        cancel_label: string;
+        cancelLabel: string;
+    }
+}
+export class FileChooserNative extends NativeDialog implements FileChooser {
+    static $gtype: GObject.GType<FileChooserNative>;
+
+    constructor(properties?: Partial<FileChooserNative.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileChooserNative.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accept_label(): string;
+    set accept_label(val: string);
+    get acceptLabel(): string;
+    set acceptLabel(val: string);
+    get cancel_label(): string;
+    set cancel_label(val: string);
+    get cancelLabel(): string;
+    set cancelLabel(val: string);
+
+    // Implemented Properties
+
+    get action(): FileChooserAction;
+    set action(val: FileChooserAction);
+    get create_folders(): boolean;
+    set create_folders(val: boolean);
+    get createFolders(): boolean;
+    set createFolders(val: boolean);
+    get filter(): FileFilter;
+    set filter(val: FileFilter);
+    get filters(): Gio.ListModel;
+    get select_multiple(): boolean;
+    set select_multiple(val: boolean);
+    get selectMultiple(): boolean;
+    set selectMultiple(val: boolean);
+    get shortcut_folders(): Gio.ListModel;
+    get shortcutFolders(): Gio.ListModel;
+
+    // Constructors
+
+    static ["new"](
+        title: string | null,
+        parent: Window | null,
+        action: FileChooserAction,
+        accept_label?: string | null,
+        cancel_label?: string | null
+    ): FileChooserNative;
+
+    // Members
+
+    get_accept_label(): string | null;
+    get_cancel_label(): string | null;
+    set_accept_label(accept_label?: string | null): void;
+    set_cancel_label(cancel_label?: string | null): void;
+
+    // Implemented Members
+
+    add_choice(id: string, label: string, options?: string[] | null, option_labels?: string[] | null): void;
+    add_filter(filter: FileFilter): void;
+    add_shortcut_folder(folder: Gio.File): boolean;
+    get_action(): FileChooserAction;
+    get_choice(id: string): string | null;
+    get_create_folders(): boolean;
+    get_current_folder(): Gio.File | null;
+    get_current_name(): string | null;
+    get_file(): Gio.File | null;
+    get_files(): Gio.ListModel;
+    get_filter(): FileFilter | null;
+    get_filters(): Gio.ListModel;
+    get_select_multiple(): boolean;
+    get_shortcut_folders(): Gio.ListModel;
+    remove_choice(id: string): void;
+    remove_filter(filter: FileFilter): void;
+    remove_shortcut_folder(folder: Gio.File): boolean;
+    set_action(action: FileChooserAction): void;
+    set_choice(id: string, option: string): void;
+    set_create_folders(create_folders: boolean): void;
+    set_current_folder(file?: Gio.File | null): boolean;
+    set_current_name(name: string): void;
+    set_file(file: Gio.File): boolean;
+    set_filter(filter: FileFilter): void;
+    set_select_multiple(select_multiple: boolean): void;
+}
+export module FileChooserWidget {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        search_mode: boolean;
+        searchMode: boolean;
+        subtitle: string;
+    }
+}
+export class FileChooserWidget extends Widget implements Accessible, Buildable, ConstraintTarget, 
FileChooser {
+    static $gtype: GObject.GType<FileChooserWidget>;
+
+    constructor(properties?: Partial<FileChooserWidget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileChooserWidget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get search_mode(): boolean;
+    set search_mode(val: boolean);
+    get searchMode(): boolean;
+    set searchMode(val: boolean);
+    get subtitle(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "desktop-folder", callback: (_source: this) => void): number;
+    connect_after(signal: "desktop-folder", callback: (_source: this) => void): number;
+    emit(signal: "desktop-folder"): void;
+    connect(signal: "down-folder", callback: (_source: this) => void): number;
+    connect_after(signal: "down-folder", callback: (_source: this) => void): number;
+    emit(signal: "down-folder"): void;
+    connect(signal: "home-folder", callback: (_source: this) => void): number;
+    connect_after(signal: "home-folder", callback: (_source: this) => void): number;
+    emit(signal: "home-folder"): void;
+    connect(signal: "location-popup", callback: (_source: this, path: string) => void): number;
+    connect_after(signal: "location-popup", callback: (_source: this, path: string) => void): number;
+    emit(signal: "location-popup", path: string): void;
+    connect(signal: "location-popup-on-paste", callback: (_source: this) => void): number;
+    connect_after(signal: "location-popup-on-paste", callback: (_source: this) => void): number;
+    emit(signal: "location-popup-on-paste"): void;
+    connect(signal: "location-toggle-popup", callback: (_source: this) => void): number;
+    connect_after(signal: "location-toggle-popup", callback: (_source: this) => void): number;
+    emit(signal: "location-toggle-popup"): void;
+    connect(signal: "places-shortcut", callback: (_source: this) => void): number;
+    connect_after(signal: "places-shortcut", callback: (_source: this) => void): number;
+    emit(signal: "places-shortcut"): void;
+    connect(signal: "quick-bookmark", callback: (_source: this, bookmark_index: number) => void): number;
+    connect_after(signal: "quick-bookmark", callback: (_source: this, bookmark_index: number) => void): 
number;
+    emit(signal: "quick-bookmark", bookmark_index: number): void;
+    connect(signal: "recent-shortcut", callback: (_source: this) => void): number;
+    connect_after(signal: "recent-shortcut", callback: (_source: this) => void): number;
+    emit(signal: "recent-shortcut"): void;
+    connect(signal: "search-shortcut", callback: (_source: this) => void): number;
+    connect_after(signal: "search-shortcut", callback: (_source: this) => void): number;
+    emit(signal: "search-shortcut"): void;
+    connect(signal: "show-hidden", callback: (_source: this) => void): number;
+    connect_after(signal: "show-hidden", callback: (_source: this) => void): number;
+    emit(signal: "show-hidden"): void;
+    connect(signal: "up-folder", callback: (_source: this) => void): number;
+    connect_after(signal: "up-folder", callback: (_source: this) => void): number;
+    emit(signal: "up-folder"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get action(): FileChooserAction;
+    set action(val: FileChooserAction);
+    get create_folders(): boolean;
+    set create_folders(val: boolean);
+    get createFolders(): boolean;
+    set createFolders(val: boolean);
+    get filter(): FileFilter;
+    set filter(val: FileFilter);
+    get filters(): Gio.ListModel;
+    get select_multiple(): boolean;
+    set select_multiple(val: boolean);
+    get selectMultiple(): boolean;
+    set selectMultiple(val: boolean);
+    get shortcut_folders(): Gio.ListModel;
+    get shortcutFolders(): Gio.ListModel;
+
+    // Constructors
+
+    static ["new"](action: FileChooserAction): FileChooserWidget;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_choice(id: string, label: string, options?: string[] | null, option_labels?: string[] | null): void;
+    add_filter(filter: FileFilter): void;
+    add_shortcut_folder(folder: Gio.File): boolean;
+    get_action(): FileChooserAction;
+    get_choice(id: string): string | null;
+    get_create_folders(): boolean;
+    get_current_folder(): Gio.File | null;
+    get_current_name(): string | null;
+    get_file(): Gio.File | null;
+    get_files(): Gio.ListModel;
+    get_filter(): FileFilter | null;
+    get_filters(): Gio.ListModel;
+    get_select_multiple(): boolean;
+    get_shortcut_folders(): Gio.ListModel;
+    remove_choice(id: string): void;
+    remove_filter(filter: FileFilter): void;
+    remove_shortcut_folder(folder: Gio.File): boolean;
+    set_action(action: FileChooserAction): void;
+    set_choice(id: string, option: string): void;
+    set_create_folders(create_folders: boolean): void;
+    set_current_folder(file?: Gio.File | null): boolean;
+    set_current_name(name: string): void;
+    set_file(file: Gio.File): boolean;
+    set_filter(filter: FileFilter): void;
+    set_select_multiple(select_multiple: boolean): void;
+}
+export module FileFilter {
+    export interface ConstructorProperties extends Filter.ConstructorProperties {
+        [key: string]: any;
+        name: string;
+    }
+}
+export class FileFilter extends Filter implements Buildable {
+    static $gtype: GObject.GType<FileFilter>;
+
+    constructor(properties?: Partial<FileFilter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FileFilter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get name(): string;
+    set name(val: string);
+
+    // Constructors
+
+    static ["new"](): FileFilter;
+    static new_from_gvariant(variant: GLib.Variant): FileFilter;
+
+    // Members
+
+    add_mime_type(mime_type: string): void;
+    add_pattern(pattern: string): void;
+    add_pixbuf_formats(): void;
+    add_suffix(suffix: string): void;
+    get_attributes(): string[];
+    get_name(): string | null;
+    set_name(name?: string | null): void;
+    to_gvariant(): GLib.Variant;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Filter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Filter extends GObject.Object {
+    static $gtype: GObject.GType<Filter>;
+
+    constructor(properties?: Partial<Filter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Filter.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this, change: FilterChange) => void): number;
+    connect_after(signal: "changed", callback: (_source: this, change: FilterChange) => void): number;
+    emit(signal: "changed", change: FilterChange): void;
+
+    // Members
+
+    changed(change: FilterChange): void;
+    get_strictness(): FilterMatch;
+    match(item: GObject.Object): boolean;
+    vfunc_get_strictness(): FilterMatch;
+    vfunc_match(item?: GObject.Object | null): boolean;
+}
+export module FilterListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        filter: Filter;
+        incremental: boolean;
+        model: Gio.ListModel;
+        pending: number;
+    }
+}
+export class FilterListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<FilterListModel>;
+
+    constructor(properties?: Partial<FilterListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<FilterListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get filter(): Filter;
+    set filter(val: Filter);
+    get incremental(): boolean;
+    set incremental(val: boolean);
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+    get pending(): number;
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null, filter?: Filter | null): FilterListModel;
+
+    // Members
+
+    get_filter(): Filter | null;
+    get_incremental(): boolean;
+    get_model(): Gio.ListModel | null;
+    get_pending(): number;
+    set_filter(filter?: Filter | null): void;
+    set_incremental(incremental: boolean): void;
+    set_model(model?: Gio.ListModel | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module Fixed {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Fixed extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Fixed>;
+
+    constructor(properties?: Partial<Fixed.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Fixed.ConstructorProperties>, ...args: any[]): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Fixed;
+
+    // Members
+
+    get_child_position(widget: Widget): [number, number];
+    get_child_transform(widget: Widget): Gsk.Transform | null;
+    move(widget: Widget, x: number, y: number): void;
+    put(widget: Widget, x: number, y: number): void;
+    remove(widget: Widget): void;
+    set_child_transform(widget: Widget, transform?: Gsk.Transform | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module FixedLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FixedLayout extends LayoutManager {
+    static $gtype: GObject.GType<FixedLayout>;
+
+    constructor(properties?: Partial<FixedLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FixedLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): FixedLayout;
+}
+export module FixedLayoutChild {
+    export interface ConstructorProperties extends LayoutChild.ConstructorProperties {
+        [key: string]: any;
+        transform: Gsk.Transform;
+    }
+}
+export class FixedLayoutChild extends LayoutChild {
+    static $gtype: GObject.GType<FixedLayoutChild>;
+
+    constructor(properties?: Partial<FixedLayoutChild.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FixedLayoutChild.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get transform(): Gsk.Transform;
+    set transform(val: Gsk.Transform);
+
+    // Members
+
+    get_transform(): Gsk.Transform | null;
+    set_transform(transform: Gsk.Transform): void;
+}
+export module FlattenListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        model: Gio.ListModel;
+    }
+}
+export class FlattenListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<FlattenListModel>;
+
+    constructor(properties?: Partial<FlattenListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<FlattenListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null): FlattenListModel;
+
+    // Members
+
+    get_model(): Gio.ListModel | null;
+    get_model_for_item(position: number): Gio.ListModel | null;
+    set_model(model?: Gio.ListModel | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module FlowBox {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        accept_unpaired_release: boolean;
+        acceptUnpairedRelease: boolean;
+        activate_on_single_click: boolean;
+        activateOnSingleClick: boolean;
+        column_spacing: number;
+        columnSpacing: number;
+        homogeneous: boolean;
+        max_children_per_line: number;
+        maxChildrenPerLine: number;
+        min_children_per_line: number;
+        minChildrenPerLine: number;
+        row_spacing: number;
+        rowSpacing: number;
+        selection_mode: SelectionMode;
+        selectionMode: SelectionMode;
+    }
+}
+export class FlowBox extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<FlowBox>;
+
+    constructor(properties?: Partial<FlowBox.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FlowBox.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accept_unpaired_release(): boolean;
+    set accept_unpaired_release(val: boolean);
+    get acceptUnpairedRelease(): boolean;
+    set acceptUnpairedRelease(val: boolean);
+    get activate_on_single_click(): boolean;
+    set activate_on_single_click(val: boolean);
+    get activateOnSingleClick(): boolean;
+    set activateOnSingleClick(val: boolean);
+    get column_spacing(): number;
+    set column_spacing(val: number);
+    get columnSpacing(): number;
+    set columnSpacing(val: number);
+    get homogeneous(): boolean;
+    set homogeneous(val: boolean);
+    get max_children_per_line(): number;
+    set max_children_per_line(val: number);
+    get maxChildrenPerLine(): number;
+    set maxChildrenPerLine(val: number);
+    get min_children_per_line(): number;
+    set min_children_per_line(val: number);
+    get minChildrenPerLine(): number;
+    set minChildrenPerLine(val: number);
+    get row_spacing(): number;
+    set row_spacing(val: number);
+    get rowSpacing(): number;
+    set rowSpacing(val: number);
+    get selection_mode(): SelectionMode;
+    set selection_mode(val: SelectionMode);
+    get selectionMode(): SelectionMode;
+    set selectionMode(val: SelectionMode);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-cursor-child", callback: (_source: this) => void): number;
+    connect_after(signal: "activate-cursor-child", callback: (_source: this) => void): number;
+    emit(signal: "activate-cursor-child"): void;
+    connect(signal: "child-activated", callback: (_source: this, child: FlowBoxChild) => void): number;
+    connect_after(signal: "child-activated", callback: (_source: this, child: FlowBoxChild) => void): number;
+    emit(signal: "child-activated", child: FlowBoxChild): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend: boolean, modify: boolean) => 
boolean
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend: boolean, modify: boolean) => 
boolean
+    ): number;
+    emit(signal: "move-cursor", step: MovementStep, count: number, extend: boolean, modify: boolean): void;
+    connect(signal: "select-all", callback: (_source: this) => void): number;
+    connect_after(signal: "select-all", callback: (_source: this) => void): number;
+    emit(signal: "select-all"): void;
+    connect(signal: "selected-children-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "selected-children-changed", callback: (_source: this) => void): number;
+    emit(signal: "selected-children-changed"): void;
+    connect(signal: "toggle-cursor-child", callback: (_source: this) => void): number;
+    connect_after(signal: "toggle-cursor-child", callback: (_source: this) => void): number;
+    emit(signal: "toggle-cursor-child"): void;
+    connect(signal: "unselect-all", callback: (_source: this) => void): number;
+    connect_after(signal: "unselect-all", callback: (_source: this) => void): number;
+    emit(signal: "unselect-all"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): FlowBox;
+
+    // Members
+
+    append(child: Widget): void;
+    bind_model(model: Gio.ListModel | null, create_widget_func: FlowBoxCreateWidgetFunc): void;
+    get_activate_on_single_click(): boolean;
+    get_child_at_index(idx: number): FlowBoxChild | null;
+    get_child_at_pos(x: number, y: number): FlowBoxChild | null;
+    get_column_spacing(): number;
+    get_homogeneous(): boolean;
+    get_max_children_per_line(): number;
+    get_min_children_per_line(): number;
+    get_row_spacing(): number;
+    get_selected_children(): FlowBoxChild[];
+    get_selection_mode(): SelectionMode;
+    insert(widget: Widget, position: number): void;
+    invalidate_filter(): void;
+    invalidate_sort(): void;
+    prepend(child: Widget): void;
+    remove(widget: Widget): void;
+    select_all(): void;
+    select_child(child: FlowBoxChild): void;
+    selected_foreach(func: FlowBoxForeachFunc): void;
+    set_activate_on_single_click(single: boolean): void;
+    set_column_spacing(spacing: number): void;
+    set_filter_func(filter_func?: FlowBoxFilterFunc | null): void;
+    set_hadjustment(adjustment: Adjustment): void;
+    set_homogeneous(homogeneous: boolean): void;
+    set_max_children_per_line(n_children: number): void;
+    set_min_children_per_line(n_children: number): void;
+    set_row_spacing(spacing: number): void;
+    set_selection_mode(mode: SelectionMode): void;
+    set_sort_func(sort_func?: FlowBoxSortFunc | null): void;
+    set_vadjustment(adjustment: Adjustment): void;
+    unselect_all(): void;
+    unselect_child(child: FlowBoxChild): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module FlowBoxChild {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+    }
+}
+export class FlowBoxChild extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<FlowBoxChild>;
+
+    constructor(properties?: Partial<FlowBoxChild.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FlowBoxChild.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): FlowBoxChild;
+
+    // Members
+
+    changed(): void;
+    get_child(): Widget | null;
+    get_index(): number;
+    is_selected(): boolean;
+    set_child(child?: Widget | null): void;
+    vfunc_activate(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module FontButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        modal: boolean;
+        title: string;
+        use_font: boolean;
+        useFont: boolean;
+        use_size: boolean;
+        useSize: boolean;
+    }
+}
+export class FontButton extends Widget implements Accessible, Buildable, ConstraintTarget, FontChooser {
+    static $gtype: GObject.GType<FontButton>;
+
+    constructor(properties?: Partial<FontButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get modal(): boolean;
+    set modal(val: boolean);
+    get title(): string;
+    set title(val: string);
+    get use_font(): boolean;
+    set use_font(val: boolean);
+    get useFont(): boolean;
+    set useFont(val: boolean);
+    get use_size(): boolean;
+    set use_size(val: boolean);
+    get useSize(): boolean;
+    set useSize(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "font-set", callback: (_source: this) => void): number;
+    connect_after(signal: "font-set", callback: (_source: this) => void): number;
+    emit(signal: "font-set"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get font(): string;
+    set font(val: string);
+    get font_desc(): Pango.FontDescription;
+    set font_desc(val: Pango.FontDescription);
+    get fontDesc(): Pango.FontDescription;
+    set fontDesc(val: Pango.FontDescription);
+    get font_features(): string;
+    get fontFeatures(): string;
+    get language(): string;
+    set language(val: string);
+    get level(): FontChooserLevel;
+    set level(val: FontChooserLevel);
+    get preview_text(): string;
+    set preview_text(val: string);
+    get previewText(): string;
+    set previewText(val: string);
+    get show_preview_entry(): boolean;
+    set show_preview_entry(val: boolean);
+    get showPreviewEntry(): boolean;
+    set showPreviewEntry(val: boolean);
+
+    // Constructors
+
+    static ["new"](): FontButton;
+    static new_with_font(fontname: string): FontButton;
+
+    // Members
+
+    get_modal(): boolean;
+    get_title(): string;
+    get_use_font(): boolean;
+    get_use_size(): boolean;
+    set_modal(modal: boolean): void;
+    set_title(title: string): void;
+    set_use_font(use_font: boolean): void;
+    set_use_size(use_size: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_font(): string | null;
+    get_font_desc(): Pango.FontDescription | null;
+    get_font_face(): Pango.FontFace | null;
+    get_font_family(): Pango.FontFamily | null;
+    get_font_features(): string;
+    get_font_map(): Pango.FontMap | null;
+    get_font_size(): number;
+    get_language(): string;
+    get_level(): FontChooserLevel;
+    get_preview_text(): string;
+    get_show_preview_entry(): boolean;
+    set_filter_func(filter?: FontFilterFunc | null): void;
+    set_font(fontname: string): void;
+    set_font_desc(font_desc: Pango.FontDescription): void;
+    set_font_map(fontmap?: Pango.FontMap | null): void;
+    set_language(language: string): void;
+    set_level(level: FontChooserLevel): void;
+    set_preview_text(text: string): void;
+    set_show_preview_entry(show_preview_entry: boolean): void;
+    vfunc_font_activated(fontname: string): void;
+    vfunc_get_font_face(): Pango.FontFace | null;
+    vfunc_get_font_family(): Pango.FontFamily | null;
+    vfunc_get_font_map(): Pango.FontMap | null;
+    vfunc_get_font_size(): number;
+    vfunc_set_filter_func(filter?: FontFilterFunc | null): void;
+    vfunc_set_font_map(fontmap?: Pango.FontMap | null): void;
+}
+export module FontChooserDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FontChooserDialog
+    extends Dialog
+    implements Accessible, Buildable, ConstraintTarget, FontChooser, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<FontChooserDialog>;
+
+    constructor(properties?: Partial<FontChooserDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontChooserDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Implemented Properties
+
+    get font(): string;
+    set font(val: string);
+    get font_desc(): Pango.FontDescription;
+    set font_desc(val: Pango.FontDescription);
+    get fontDesc(): Pango.FontDescription;
+    set fontDesc(val: Pango.FontDescription);
+    get font_features(): string;
+    get fontFeatures(): string;
+    get language(): string;
+    set language(val: string);
+    get level(): FontChooserLevel;
+    set level(val: FontChooserLevel);
+    get preview_text(): string;
+    set preview_text(val: string);
+    get previewText(): string;
+    set previewText(val: string);
+    get show_preview_entry(): boolean;
+    set show_preview_entry(val: boolean);
+    get showPreviewEntry(): boolean;
+    set showPreviewEntry(val: boolean);
+
+    // Constructors
+
+    static ["new"](title?: string | null, parent?: Window | null): FontChooserDialog;
+    // Conflicted with Gtk.Dialog.new
+    static ["new"](...args: never[]): any;
+
+    // Implemented Members
+
+    get_font(): string | null;
+    get_font_desc(): Pango.FontDescription | null;
+    get_font_face(): Pango.FontFace | null;
+    get_font_family(): Pango.FontFamily | null;
+    get_font_features(): string;
+    get_font_map(): Pango.FontMap | null;
+    get_font_size(): number;
+    get_language(): string;
+    get_level(): FontChooserLevel;
+    get_preview_text(): string;
+    get_show_preview_entry(): boolean;
+    set_filter_func(filter?: FontFilterFunc | null): void;
+    set_font(fontname: string): void;
+    set_font_desc(font_desc: Pango.FontDescription): void;
+    set_font_map(fontmap?: Pango.FontMap | null): void;
+    set_language(language: string): void;
+    set_level(level: FontChooserLevel): void;
+    set_preview_text(text: string): void;
+    set_show_preview_entry(show_preview_entry: boolean): void;
+    vfunc_font_activated(fontname: string): void;
+    vfunc_get_font_face(): Pango.FontFace | null;
+    vfunc_get_font_family(): Pango.FontFamily | null;
+    vfunc_get_font_map(): Pango.FontMap | null;
+    vfunc_get_font_size(): number;
+    vfunc_set_filter_func(filter?: FontFilterFunc | null): void;
+    vfunc_set_font_map(fontmap?: Pango.FontMap | null): void;
+}
+export module FontChooserWidget {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        tweak_action: Gio.Action;
+        tweakAction: Gio.Action;
+    }
+}
+export class FontChooserWidget extends Widget implements Accessible, Buildable, ConstraintTarget, 
FontChooser {
+    static $gtype: GObject.GType<FontChooserWidget>;
+
+    constructor(properties?: Partial<FontChooserWidget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontChooserWidget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get tweak_action(): Gio.Action;
+    get tweakAction(): Gio.Action;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get font(): string;
+    set font(val: string);
+    get font_desc(): Pango.FontDescription;
+    set font_desc(val: Pango.FontDescription);
+    get fontDesc(): Pango.FontDescription;
+    set fontDesc(val: Pango.FontDescription);
+    get font_features(): string;
+    get fontFeatures(): string;
+    get language(): string;
+    set language(val: string);
+    get level(): FontChooserLevel;
+    set level(val: FontChooserLevel);
+    get preview_text(): string;
+    set preview_text(val: string);
+    get previewText(): string;
+    set previewText(val: string);
+    get show_preview_entry(): boolean;
+    set show_preview_entry(val: boolean);
+    get showPreviewEntry(): boolean;
+    set showPreviewEntry(val: boolean);
+
+    // Constructors
+
+    static ["new"](): FontChooserWidget;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_font(): string | null;
+    get_font_desc(): Pango.FontDescription | null;
+    get_font_face(): Pango.FontFace | null;
+    get_font_family(): Pango.FontFamily | null;
+    get_font_features(): string;
+    get_font_map(): Pango.FontMap | null;
+    get_font_size(): number;
+    get_language(): string;
+    get_level(): FontChooserLevel;
+    get_preview_text(): string;
+    get_show_preview_entry(): boolean;
+    set_filter_func(filter?: FontFilterFunc | null): void;
+    set_font(fontname: string): void;
+    set_font_desc(font_desc: Pango.FontDescription): void;
+    set_font_map(fontmap?: Pango.FontMap | null): void;
+    set_language(language: string): void;
+    set_level(level: FontChooserLevel): void;
+    set_preview_text(text: string): void;
+    set_show_preview_entry(show_preview_entry: boolean): void;
+    vfunc_font_activated(fontname: string): void;
+    vfunc_get_font_face(): Pango.FontFace | null;
+    vfunc_get_font_family(): Pango.FontFamily | null;
+    vfunc_get_font_map(): Pango.FontMap | null;
+    vfunc_get_font_size(): number;
+    vfunc_set_filter_func(filter?: FontFilterFunc | null): void;
+    vfunc_set_font_map(fontmap?: Pango.FontMap | null): void;
+}
+export module Frame {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        label: string;
+        label_widget: Widget;
+        labelWidget: Widget;
+        label_xalign: number;
+        labelXalign: number;
+    }
+}
+export class Frame extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Frame>;
+
+    constructor(properties?: Partial<Frame.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Frame.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get label(): string;
+    set label(val: string);
+    get label_widget(): Widget;
+    set label_widget(val: Widget);
+    get labelWidget(): Widget;
+    set labelWidget(val: Widget);
+    get label_xalign(): number;
+    set label_xalign(val: number);
+    get labelXalign(): number;
+    set labelXalign(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](label?: string | null): Frame;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_label(): string | null;
+    get_label_align(): number;
+    get_label_widget(): Widget | null;
+    set_child(child?: Widget | null): void;
+    set_label(label?: string | null): void;
+    set_label_align(xalign: number): void;
+    set_label_widget(label_widget?: Widget | null): void;
+    vfunc_compute_child_allocation(allocation: Allocation): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module GLArea {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        auto_render: boolean;
+        autoRender: boolean;
+        context: Gdk.GLContext;
+        has_depth_buffer: boolean;
+        hasDepthBuffer: boolean;
+        has_stencil_buffer: boolean;
+        hasStencilBuffer: boolean;
+        use_es: boolean;
+        useEs: boolean;
+    }
+}
+export class GLArea extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<GLArea>;
+
+    constructor(properties?: Partial<GLArea.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GLArea.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get auto_render(): boolean;
+    set auto_render(val: boolean);
+    get autoRender(): boolean;
+    set autoRender(val: boolean);
+    get context(): Gdk.GLContext;
+    get has_depth_buffer(): boolean;
+    set has_depth_buffer(val: boolean);
+    get hasDepthBuffer(): boolean;
+    set hasDepthBuffer(val: boolean);
+    get has_stencil_buffer(): boolean;
+    set has_stencil_buffer(val: boolean);
+    get hasStencilBuffer(): boolean;
+    set hasStencilBuffer(val: boolean);
+    get use_es(): boolean;
+    set use_es(val: boolean);
+    get useEs(): boolean;
+    set useEs(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "create-context", callback: (_source: this) => Gdk.GLContext): number;
+    connect_after(signal: "create-context", callback: (_source: this) => Gdk.GLContext): number;
+    emit(signal: "create-context"): void;
+    connect(signal: "render", callback: (_source: this, context: Gdk.GLContext) => boolean): number;
+    connect_after(signal: "render", callback: (_source: this, context: Gdk.GLContext) => boolean): number;
+    emit(signal: "render", context: Gdk.GLContext): void;
+    connect(signal: "resize", callback: (_source: this, width: number, height: number) => void): number;
+    connect_after(signal: "resize", callback: (_source: this, width: number, height: number) => void): 
number;
+    emit(signal: "resize", width: number, height: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): GLArea;
+
+    // Members
+
+    attach_buffers(): void;
+    get_auto_render(): boolean;
+    get_context(): Gdk.GLContext | null;
+    get_error(): GLib.Error | null;
+    get_has_depth_buffer(): boolean;
+    get_has_stencil_buffer(): boolean;
+    get_required_version(): [number, number];
+    get_use_es(): boolean;
+    make_current(): void;
+    queue_render(): void;
+    set_auto_render(auto_render: boolean): void;
+    set_error(error?: GLib.Error | null): void;
+    set_has_depth_buffer(has_depth_buffer: boolean): void;
+    set_has_stencil_buffer(has_stencil_buffer: boolean): void;
+    set_required_version(major: number, minor: number): void;
+    set_use_es(use_es: boolean): void;
+    vfunc_render(context: Gdk.GLContext): boolean;
+    vfunc_resize(width: number, height: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Gesture {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        n_points: number;
+        nPoints: number;
+    }
+}
+export abstract class Gesture extends EventController {
+    static $gtype: GObject.GType<Gesture>;
+
+    constructor(properties?: Partial<Gesture.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Gesture.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get n_points(): number;
+    get nPoints(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "begin", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): number;
+    connect_after(signal: "begin", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): 
number;
+    emit(signal: "begin", sequence: Gdk.EventSequence | null): void;
+    connect(signal: "cancel", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): number;
+    connect_after(signal: "cancel", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): 
number;
+    emit(signal: "cancel", sequence: Gdk.EventSequence | null): void;
+    connect(signal: "end", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): number;
+    connect_after(signal: "end", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): 
number;
+    emit(signal: "end", sequence: Gdk.EventSequence | null): void;
+    connect(
+        signal: "sequence-state-changed",
+        callback: (_source: this, sequence: Gdk.EventSequence | null, state: EventSequenceState) => void
+    ): number;
+    connect_after(
+        signal: "sequence-state-changed",
+        callback: (_source: this, sequence: Gdk.EventSequence | null, state: EventSequenceState) => void
+    ): number;
+    emit(signal: "sequence-state-changed", sequence: Gdk.EventSequence | null, state: EventSequenceState): 
void;
+    connect(signal: "update", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): number;
+    connect_after(signal: "update", callback: (_source: this, sequence: Gdk.EventSequence | null) => void): 
number;
+    emit(signal: "update", sequence: Gdk.EventSequence | null): void;
+
+    // Members
+
+    get_bounding_box(): [boolean, Gdk.Rectangle];
+    get_bounding_box_center(): [boolean, number, number];
+    get_device(): Gdk.Device | null;
+    get_group(): Gesture[];
+    get_last_event(sequence?: Gdk.EventSequence | null): Gdk.Event | null;
+    get_last_updated_sequence(): Gdk.EventSequence | null;
+    get_point(sequence: Gdk.EventSequence | null): [boolean, number, number];
+    get_sequence_state(sequence: Gdk.EventSequence): EventSequenceState;
+    get_sequences(): Gdk.EventSequence[];
+    group(gesture: Gesture): void;
+    handles_sequence(sequence?: Gdk.EventSequence | null): boolean;
+    is_active(): boolean;
+    is_grouped_with(other: Gesture): boolean;
+    is_recognized(): boolean;
+    set_sequence_state(sequence: Gdk.EventSequence, state: EventSequenceState): boolean;
+    set_state(state: EventSequenceState): boolean;
+    ungroup(): void;
+}
+export module GestureClick {
+    export interface ConstructorProperties extends GestureSingle.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GestureClick extends GestureSingle {
+    static $gtype: GObject.GType<GestureClick>;
+
+    constructor(properties?: Partial<GestureClick.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureClick.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "pressed", callback: (_source: this, n_press: number, x: number, y: number) => void): 
number;
+    connect_after(signal: "pressed", callback: (_source: this, n_press: number, x: number, y: number) => 
void): number;
+    emit(signal: "pressed", n_press: number, x: number, y: number): void;
+    connect(signal: "released", callback: (_source: this, n_press: number, x: number, y: number) => void): 
number;
+    connect_after(signal: "released", callback: (_source: this, n_press: number, x: number, y: number) => 
void): number;
+    emit(signal: "released", n_press: number, x: number, y: number): void;
+    connect(signal: "stopped", callback: (_source: this) => void): number;
+    connect_after(signal: "stopped", callback: (_source: this) => void): number;
+    emit(signal: "stopped"): void;
+    connect(
+        signal: "unpaired-release",
+        callback: (_source: this, x: number, y: number, button: number, sequence: Gdk.EventSequence) => void
+    ): number;
+    connect_after(
+        signal: "unpaired-release",
+        callback: (_source: this, x: number, y: number, button: number, sequence: Gdk.EventSequence) => void
+    ): number;
+    emit(signal: "unpaired-release", x: number, y: number, button: number, sequence: Gdk.EventSequence): 
void;
+
+    // Constructors
+
+    static ["new"](): GestureClick;
+}
+export module GestureDrag {
+    export interface ConstructorProperties extends GestureSingle.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GestureDrag extends GestureSingle {
+    static $gtype: GObject.GType<GestureDrag>;
+
+    constructor(properties?: Partial<GestureDrag.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureDrag.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "drag-begin", callback: (_source: this, start_x: number, start_y: number) => void): 
number;
+    connect_after(signal: "drag-begin", callback: (_source: this, start_x: number, start_y: number) => 
void): number;
+    emit(signal: "drag-begin", start_x: number, start_y: number): void;
+    connect(signal: "drag-end", callback: (_source: this, offset_x: number, offset_y: number) => void): 
number;
+    connect_after(signal: "drag-end", callback: (_source: this, offset_x: number, offset_y: number) => 
void): number;
+    emit(signal: "drag-end", offset_x: number, offset_y: number): void;
+    connect(signal: "drag-update", callback: (_source: this, offset_x: number, offset_y: number) => void): 
number;
+    connect_after(signal: "drag-update", callback: (_source: this, offset_x: number, offset_y: number) => 
void): number;
+    emit(signal: "drag-update", offset_x: number, offset_y: number): void;
+
+    // Constructors
+
+    static ["new"](): GestureDrag;
+
+    // Members
+
+    get_offset(): [boolean, number, number];
+    get_start_point(): [boolean, number, number];
+}
+export module GestureLongPress {
+    export interface ConstructorProperties extends GestureSingle.ConstructorProperties {
+        [key: string]: any;
+        delay_factor: number;
+        delayFactor: number;
+    }
+}
+export class GestureLongPress extends GestureSingle {
+    static $gtype: GObject.GType<GestureLongPress>;
+
+    constructor(properties?: Partial<GestureLongPress.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureLongPress.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get delay_factor(): number;
+    set delay_factor(val: number);
+    get delayFactor(): number;
+    set delayFactor(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "cancelled", callback: (_source: this) => void): number;
+    connect_after(signal: "cancelled", callback: (_source: this) => void): number;
+    emit(signal: "cancelled"): void;
+    connect(signal: "pressed", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "pressed", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "pressed", x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](): GestureLongPress;
+
+    // Members
+
+    get_delay_factor(): number;
+    set_delay_factor(delay_factor: number): void;
+}
+export module GesturePan {
+    export interface ConstructorProperties extends GestureDrag.ConstructorProperties {
+        [key: string]: any;
+        orientation: Orientation;
+    }
+}
+export class GesturePan extends GestureDrag {
+    static $gtype: GObject.GType<GesturePan>;
+
+    constructor(properties?: Partial<GesturePan.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GesturePan.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "pan", callback: (_source: this, direction: PanDirection, offset: number) => void): 
number;
+    connect_after(signal: "pan", callback: (_source: this, direction: PanDirection, offset: number) => 
void): number;
+    emit(signal: "pan", direction: PanDirection, offset: number): void;
+
+    // Constructors
+
+    static ["new"](orientation: Orientation): GesturePan;
+    // Conflicted with Gtk.GestureDrag.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module GestureRotate {
+    export interface ConstructorProperties extends Gesture.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GestureRotate extends Gesture {
+    static $gtype: GObject.GType<GestureRotate>;
+
+    constructor(properties?: Partial<GestureRotate.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureRotate.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "angle-changed", callback: (_source: this, angle: number, angle_delta: number) => void): 
number;
+    connect_after(
+        signal: "angle-changed",
+        callback: (_source: this, angle: number, angle_delta: number) => void
+    ): number;
+    emit(signal: "angle-changed", angle: number, angle_delta: number): void;
+
+    // Constructors
+
+    static ["new"](): GestureRotate;
+
+    // Members
+
+    get_angle_delta(): number;
+}
+export module GestureSingle {
+    export interface ConstructorProperties extends Gesture.ConstructorProperties {
+        [key: string]: any;
+        button: number;
+        exclusive: boolean;
+        touch_only: boolean;
+        touchOnly: boolean;
+    }
+}
+export class GestureSingle extends Gesture {
+    static $gtype: GObject.GType<GestureSingle>;
+
+    constructor(properties?: Partial<GestureSingle.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureSingle.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get button(): number;
+    set button(val: number);
+    get exclusive(): boolean;
+    set exclusive(val: boolean);
+    get touch_only(): boolean;
+    set touch_only(val: boolean);
+    get touchOnly(): boolean;
+    set touchOnly(val: boolean);
+
+    // Members
+
+    get_button(): number;
+    get_current_button(): number;
+    get_current_sequence(): Gdk.EventSequence | null;
+    get_exclusive(): boolean;
+    get_touch_only(): boolean;
+    set_button(button: number): void;
+    set_exclusive(exclusive: boolean): void;
+    set_touch_only(touch_only: boolean): void;
+}
+export module GestureStylus {
+    export interface ConstructorProperties extends GestureSingle.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GestureStylus extends GestureSingle {
+    static $gtype: GObject.GType<GestureStylus>;
+
+    constructor(properties?: Partial<GestureStylus.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureStylus.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "down", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "down", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "down", x: number, y: number): void;
+    connect(signal: "motion", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "motion", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "motion", x: number, y: number): void;
+    connect(signal: "proximity", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "proximity", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "proximity", x: number, y: number): void;
+    connect(signal: "up", callback: (_source: this, x: number, y: number) => void): number;
+    connect_after(signal: "up", callback: (_source: this, x: number, y: number) => void): number;
+    emit(signal: "up", x: number, y: number): void;
+
+    // Constructors
+
+    static ["new"](): GestureStylus;
+
+    // Members
+
+    get_axes(axes: Gdk.AxisUse[]): [boolean, number[]];
+    get_axis(axis: Gdk.AxisUse): [boolean, number];
+    get_backlog(): [boolean, Gdk.TimeCoord[]];
+    get_device_tool(): Gdk.DeviceTool | null;
+}
+export module GestureSwipe {
+    export interface ConstructorProperties extends GestureSingle.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GestureSwipe extends GestureSingle {
+    static $gtype: GObject.GType<GestureSwipe>;
+
+    constructor(properties?: Partial<GestureSwipe.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureSwipe.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "swipe", callback: (_source: this, velocity_x: number, velocity_y: number) => void): 
number;
+    connect_after(signal: "swipe", callback: (_source: this, velocity_x: number, velocity_y: number) => 
void): number;
+    emit(signal: "swipe", velocity_x: number, velocity_y: number): void;
+
+    // Constructors
+
+    static ["new"](): GestureSwipe;
+
+    // Members
+
+    get_velocity(): [boolean, number, number];
+}
+export module GestureZoom {
+    export interface ConstructorProperties extends Gesture.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class GestureZoom extends Gesture {
+    static $gtype: GObject.GType<GestureZoom>;
+
+    constructor(properties?: Partial<GestureZoom.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GestureZoom.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "scale-changed", callback: (_source: this, scale: number) => void): number;
+    connect_after(signal: "scale-changed", callback: (_source: this, scale: number) => void): number;
+    emit(signal: "scale-changed", scale: number): void;
+
+    // Constructors
+
+    static ["new"](): GestureZoom;
+
+    // Members
+
+    get_scale_delta(): number;
+}
+export module Grid {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        baseline_row: number;
+        baselineRow: number;
+        column_homogeneous: boolean;
+        columnHomogeneous: boolean;
+        column_spacing: number;
+        columnSpacing: number;
+        row_homogeneous: boolean;
+        rowHomogeneous: boolean;
+        row_spacing: number;
+        rowSpacing: number;
+    }
+}
+export class Grid extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Grid>;
+
+    constructor(properties?: Partial<Grid.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Grid.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get baseline_row(): number;
+    set baseline_row(val: number);
+    get baselineRow(): number;
+    set baselineRow(val: number);
+    get column_homogeneous(): boolean;
+    set column_homogeneous(val: boolean);
+    get columnHomogeneous(): boolean;
+    set columnHomogeneous(val: boolean);
+    get column_spacing(): number;
+    set column_spacing(val: number);
+    get columnSpacing(): number;
+    set columnSpacing(val: number);
+    get row_homogeneous(): boolean;
+    set row_homogeneous(val: boolean);
+    get rowHomogeneous(): boolean;
+    set rowHomogeneous(val: boolean);
+    get row_spacing(): number;
+    set row_spacing(val: number);
+    get rowSpacing(): number;
+    set rowSpacing(val: number);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): Grid;
+
+    // Members
+
+    attach(child: Widget, column: number, row: number, width: number, height: number): void;
+    attach_next_to(child: Widget, sibling: Widget | null, side: PositionType, width: number, height: 
number): void;
+    get_baseline_row(): number;
+    get_child_at(column: number, row: number): Widget | null;
+    get_column_homogeneous(): boolean;
+    get_column_spacing(): number;
+    get_row_baseline_position(row: number): BaselinePosition;
+    get_row_homogeneous(): boolean;
+    get_row_spacing(): number;
+    insert_column(position: number): void;
+    insert_next_to(sibling: Widget, side: PositionType): void;
+    insert_row(position: number): void;
+    query_child(child: Widget): [number, number, number, number];
+    remove(child: Widget): void;
+    remove_column(position: number): void;
+    remove_row(position: number): void;
+    set_baseline_row(row: number): void;
+    set_column_homogeneous(homogeneous: boolean): void;
+    set_column_spacing(spacing: number): void;
+    set_row_baseline_position(row: number, pos: BaselinePosition): void;
+    set_row_homogeneous(homogeneous: boolean): void;
+    set_row_spacing(spacing: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module GridLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+        baseline_row: number;
+        baselineRow: number;
+        column_homogeneous: boolean;
+        columnHomogeneous: boolean;
+        column_spacing: number;
+        columnSpacing: number;
+        row_homogeneous: boolean;
+        rowHomogeneous: boolean;
+        row_spacing: number;
+        rowSpacing: number;
+    }
+}
+export class GridLayout extends LayoutManager {
+    static $gtype: GObject.GType<GridLayout>;
+
+    constructor(properties?: Partial<GridLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GridLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get baseline_row(): number;
+    set baseline_row(val: number);
+    get baselineRow(): number;
+    set baselineRow(val: number);
+    get column_homogeneous(): boolean;
+    set column_homogeneous(val: boolean);
+    get columnHomogeneous(): boolean;
+    set columnHomogeneous(val: boolean);
+    get column_spacing(): number;
+    set column_spacing(val: number);
+    get columnSpacing(): number;
+    set columnSpacing(val: number);
+    get row_homogeneous(): boolean;
+    set row_homogeneous(val: boolean);
+    get rowHomogeneous(): boolean;
+    set rowHomogeneous(val: boolean);
+    get row_spacing(): number;
+    set row_spacing(val: number);
+    get rowSpacing(): number;
+    set rowSpacing(val: number);
+
+    // Constructors
+
+    static ["new"](): GridLayout;
+
+    // Members
+
+    get_baseline_row(): number;
+    get_column_homogeneous(): boolean;
+    get_column_spacing(): number;
+    get_row_baseline_position(row: number): BaselinePosition;
+    get_row_homogeneous(): boolean;
+    get_row_spacing(): number;
+    set_baseline_row(row: number): void;
+    set_column_homogeneous(homogeneous: boolean): void;
+    set_column_spacing(spacing: number): void;
+    set_row_baseline_position(row: number, pos: BaselinePosition): void;
+    set_row_homogeneous(homogeneous: boolean): void;
+    set_row_spacing(spacing: number): void;
+}
+export module GridLayoutChild {
+    export interface ConstructorProperties extends LayoutChild.ConstructorProperties {
+        [key: string]: any;
+        column: number;
+        column_span: number;
+        columnSpan: number;
+        row: number;
+        row_span: number;
+        rowSpan: number;
+    }
+}
+export class GridLayoutChild extends LayoutChild {
+    static $gtype: GObject.GType<GridLayoutChild>;
+
+    constructor(properties?: Partial<GridLayoutChild.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GridLayoutChild.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get column(): number;
+    set column(val: number);
+    get column_span(): number;
+    set column_span(val: number);
+    get columnSpan(): number;
+    set columnSpan(val: number);
+    get row(): number;
+    set row(val: number);
+    get row_span(): number;
+    set row_span(val: number);
+    get rowSpan(): number;
+    set rowSpan(val: number);
+
+    // Members
+
+    get_column(): number;
+    get_column_span(): number;
+    get_row(): number;
+    get_row_span(): number;
+    set_column(column: number): void;
+    set_column_span(span: number): void;
+    set_row(row: number): void;
+    set_row_span(span: number): void;
+}
+export module GridView {
+    export interface ConstructorProperties extends ListBase.ConstructorProperties {
+        [key: string]: any;
+        enable_rubberband: boolean;
+        enableRubberband: boolean;
+        factory: ListItemFactory;
+        max_columns: number;
+        maxColumns: number;
+        min_columns: number;
+        minColumns: number;
+        model: SelectionModel;
+        single_click_activate: boolean;
+        singleClickActivate: boolean;
+    }
+}
+export class GridView extends ListBase implements Accessible, Buildable, ConstraintTarget, Orientable, 
Scrollable {
+    static $gtype: GObject.GType<GridView>;
+
+    constructor(properties?: Partial<GridView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<GridView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_rubberband(): boolean;
+    set enable_rubberband(val: boolean);
+    get enableRubberband(): boolean;
+    set enableRubberband(val: boolean);
+    get factory(): ListItemFactory;
+    set factory(val: ListItemFactory);
+    get max_columns(): number;
+    set max_columns(val: number);
+    get maxColumns(): number;
+    set maxColumns(val: number);
+    get min_columns(): number;
+    set min_columns(val: number);
+    get minColumns(): number;
+    set minColumns(val: number);
+    get model(): SelectionModel;
+    set model(val: SelectionModel);
+    get single_click_activate(): boolean;
+    set single_click_activate(val: boolean);
+    get singleClickActivate(): boolean;
+    set singleClickActivate(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this, position: number) => void): number;
+    connect_after(signal: "activate", callback: (_source: this, position: number) => void): number;
+    emit(signal: "activate", position: number): void;
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](model?: SelectionModel | null, factory?: ListItemFactory | null): GridView;
+
+    // Members
+
+    get_enable_rubberband(): boolean;
+    get_factory(): ListItemFactory | null;
+    get_max_columns(): number;
+    get_min_columns(): number;
+    get_model(): SelectionModel | null;
+    get_single_click_activate(): boolean;
+    set_enable_rubberband(enable_rubberband: boolean): void;
+    set_factory(factory?: ListItemFactory | null): void;
+    set_max_columns(max_columns: number): void;
+    set_min_columns(min_columns: number): void;
+    set_model(model?: SelectionModel | null): void;
+    set_single_click_activate(single_click_activate: boolean): void;
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module HeaderBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        decoration_layout: string;
+        decorationLayout: string;
+        show_title_buttons: boolean;
+        showTitleButtons: boolean;
+        title_widget: Widget;
+        titleWidget: Widget;
+    }
+}
+export class HeaderBar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<HeaderBar>;
+
+    constructor(properties?: Partial<HeaderBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<HeaderBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get decoration_layout(): string;
+    set decoration_layout(val: string);
+    get decorationLayout(): string;
+    set decorationLayout(val: string);
+    get show_title_buttons(): boolean;
+    set show_title_buttons(val: boolean);
+    get showTitleButtons(): boolean;
+    set showTitleButtons(val: boolean);
+    get title_widget(): Widget;
+    set title_widget(val: Widget);
+    get titleWidget(): Widget;
+    set titleWidget(val: Widget);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): HeaderBar;
+
+    // Members
+
+    get_decoration_layout(): string | null;
+    get_show_title_buttons(): boolean;
+    get_title_widget(): Widget | null;
+    pack_end(child: Widget): void;
+    pack_start(child: Widget): void;
+    remove(child: Widget): void;
+    set_decoration_layout(layout?: string | null): void;
+    set_show_title_buttons(setting: boolean): void;
+    set_title_widget(title_widget?: Widget | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module IMContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        input_hints: InputHints;
+        inputHints: InputHints;
+        input_purpose: InputPurpose;
+        inputPurpose: InputPurpose;
+    }
+}
+export abstract class IMContext extends GObject.Object {
+    static $gtype: GObject.GType<IMContext>;
+
+    constructor(properties?: Partial<IMContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IMContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get input_hints(): InputHints;
+    set input_hints(val: InputHints);
+    get inputHints(): InputHints;
+    set inputHints(val: InputHints);
+    get input_purpose(): InputPurpose;
+    set input_purpose(val: InputPurpose);
+    get inputPurpose(): InputPurpose;
+    set inputPurpose(val: InputPurpose);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "commit", callback: (_source: this, str: string) => void): number;
+    connect_after(signal: "commit", callback: (_source: this, str: string) => void): number;
+    emit(signal: "commit", str: string): void;
+    connect(
+        signal: "delete-surrounding",
+        callback: (_source: this, offset: number, n_chars: number) => boolean
+    ): number;
+    connect_after(
+        signal: "delete-surrounding",
+        callback: (_source: this, offset: number, n_chars: number) => boolean
+    ): number;
+    emit(signal: "delete-surrounding", offset: number, n_chars: number): void;
+    connect(signal: "preedit-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "preedit-changed", callback: (_source: this) => void): number;
+    emit(signal: "preedit-changed"): void;
+    connect(signal: "preedit-end", callback: (_source: this) => void): number;
+    connect_after(signal: "preedit-end", callback: (_source: this) => void): number;
+    emit(signal: "preedit-end"): void;
+    connect(signal: "preedit-start", callback: (_source: this) => void): number;
+    connect_after(signal: "preedit-start", callback: (_source: this) => void): number;
+    emit(signal: "preedit-start"): void;
+    connect(signal: "retrieve-surrounding", callback: (_source: this) => boolean): number;
+    connect_after(signal: "retrieve-surrounding", callback: (_source: this) => boolean): number;
+    emit(signal: "retrieve-surrounding"): void;
+
+    // Members
+
+    delete_surrounding(offset: number, n_chars: number): boolean;
+    filter_key(
+        press: boolean,
+        surface: Gdk.Surface,
+        device: Gdk.Device,
+        time: number,
+        keycode: number,
+        state: Gdk.ModifierType,
+        group: number
+    ): boolean;
+    filter_keypress(event: Gdk.Event): boolean;
+    focus_in(): void;
+    focus_out(): void;
+    get_preedit_string(): [string, Pango.AttrList, number];
+    get_surrounding(): [boolean, string, number];
+    get_surrounding_with_selection(): [boolean, string, number, number];
+    reset(): void;
+    set_client_widget(widget?: Widget | null): void;
+    set_cursor_location(area: Gdk.Rectangle): void;
+    set_surrounding(text: string, len: number, cursor_index: number): void;
+    set_surrounding_with_selection(text: string, len: number, cursor_index: number, anchor_index: number): 
void;
+    set_use_preedit(use_preedit: boolean): void;
+    vfunc_commit(str: string): void;
+    vfunc_delete_surrounding(offset: number, n_chars: number): boolean;
+    vfunc_filter_keypress(event: Gdk.Event): boolean;
+    vfunc_focus_in(): void;
+    vfunc_focus_out(): void;
+    vfunc_get_preedit_string(): [string, Pango.AttrList, number];
+    vfunc_get_surrounding(): [boolean, string, number];
+    vfunc_get_surrounding_with_selection(): [boolean, string, number, number];
+    vfunc_preedit_changed(): void;
+    vfunc_preedit_end(): void;
+    vfunc_preedit_start(): void;
+    vfunc_reset(): void;
+    vfunc_retrieve_surrounding(): boolean;
+    vfunc_set_client_widget(widget?: Widget | null): void;
+    vfunc_set_cursor_location(area: Gdk.Rectangle): void;
+    vfunc_set_surrounding(text: string, len: number, cursor_index: number): void;
+    vfunc_set_surrounding_with_selection(text: string, len: number, cursor_index: number, anchor_index: 
number): void;
+    vfunc_set_use_preedit(use_preedit: boolean): void;
+}
+export module IMContextSimple {
+    export interface ConstructorProperties extends IMContext.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class IMContextSimple extends IMContext {
+    static $gtype: GObject.GType<IMContextSimple>;
+
+    constructor(properties?: Partial<IMContextSimple.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IMContextSimple.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: IMContext;
+
+    // Constructors
+
+    static ["new"](): IMContextSimple;
+
+    // Members
+
+    add_compose_file(compose_file: string): void;
+}
+export module IMMulticontext {
+    export interface ConstructorProperties extends IMContext.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class IMMulticontext extends IMContext {
+    static $gtype: GObject.GType<IMMulticontext>;
+
+    constructor(properties?: Partial<IMMulticontext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IMMulticontext.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    object: IMContext;
+
+    // Constructors
+
+    static ["new"](): IMMulticontext;
+
+    // Members
+
+    get_context_id(): string;
+    set_context_id(context_id?: string | null): void;
+}
+export module IconPaintable {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        file: Gio.File;
+        icon_name: string;
+        iconName: string;
+        is_symbolic: boolean;
+        isSymbolic: boolean;
+    }
+}
+export class IconPaintable extends GObject.Object implements Gdk.Paintable, SymbolicPaintable {
+    static $gtype: GObject.GType<IconPaintable>;
+
+    constructor(properties?: Partial<IconPaintable.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IconPaintable.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get file(): Gio.File;
+    get icon_name(): string;
+    get iconName(): string;
+    get is_symbolic(): boolean;
+    get isSymbolic(): boolean;
+
+    // Constructors
+
+    static new_for_file(file: Gio.File, size: number, scale: number): IconPaintable;
+
+    // Members
+
+    get_file(): Gio.File | null;
+    get_icon_name(): string | null;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Gdk.Paintable;
+    get_flags(): Gdk.PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Gdk.Paintable;
+    vfunc_get_flags(): Gdk.PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+    snapshot_symbolic(snapshot: Gdk.Snapshot, width: number, height: number, colors: Gdk.RGBA[]): void;
+    vfunc_snapshot_symbolic(snapshot: Gdk.Snapshot, width: number, height: number, colors: Gdk.RGBA[]): void;
+}
+export module IconTheme {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        display: Gdk.Display;
+        icon_names: string[];
+        iconNames: string[];
+        resource_path: string[];
+        resourcePath: string[];
+        search_path: string[];
+        searchPath: string[];
+        theme_name: string;
+        themeName: string;
+    }
+}
+export class IconTheme extends GObject.Object {
+    static $gtype: GObject.GType<IconTheme>;
+
+    constructor(properties?: Partial<IconTheme.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IconTheme.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get display(): Gdk.Display;
+    set display(val: Gdk.Display);
+    get icon_names(): string[];
+    get iconNames(): string[];
+    get resource_path(): string[];
+    set resource_path(val: string[]);
+    get resourcePath(): string[];
+    set resourcePath(val: string[]);
+    get search_path(): string[];
+    set search_path(val: string[]);
+    get searchPath(): string[];
+    set searchPath(val: string[]);
+    get theme_name(): string;
+    set theme_name(val: string);
+    get themeName(): string;
+    set themeName(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+
+    // Constructors
+
+    static ["new"](): IconTheme;
+
+    // Members
+
+    add_resource_path(path: string): void;
+    add_search_path(path: string): void;
+    get_display(): Gdk.Display | null;
+    get_icon_names(): string[];
+    get_icon_sizes(icon_name: string): number[];
+    get_resource_path(): string[] | null;
+    get_search_path(): string[] | null;
+    get_theme_name(): string;
+    has_gicon(gicon: Gio.Icon): boolean;
+    has_icon(icon_name: string): boolean;
+    lookup_by_gicon(
+        icon: Gio.Icon,
+        size: number,
+        scale: number,
+        direction: TextDirection,
+        flags: IconLookupFlags
+    ): IconPaintable;
+    lookup_icon(
+        icon_name: string,
+        fallbacks: string[] | null,
+        size: number,
+        scale: number,
+        direction: TextDirection,
+        flags: IconLookupFlags
+    ): IconPaintable;
+    set_resource_path(path?: string[] | null): void;
+    set_search_path(path?: string[] | null): void;
+    set_theme_name(theme_name?: string | null): void;
+    static get_for_display(display: Gdk.Display): IconTheme;
+}
+export module IconView {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activate_on_single_click: boolean;
+        activateOnSingleClick: boolean;
+        cell_area: CellArea;
+        cellArea: CellArea;
+        column_spacing: number;
+        columnSpacing: number;
+        columns: number;
+        item_orientation: Orientation;
+        itemOrientation: Orientation;
+        item_padding: number;
+        itemPadding: number;
+        item_width: number;
+        itemWidth: number;
+        margin: number;
+        markup_column: number;
+        markupColumn: number;
+        model: TreeModel;
+        pixbuf_column: number;
+        pixbufColumn: number;
+        reorderable: boolean;
+        row_spacing: number;
+        rowSpacing: number;
+        selection_mode: SelectionMode;
+        selectionMode: SelectionMode;
+        spacing: number;
+        text_column: number;
+        textColumn: number;
+        tooltip_column: number;
+        tooltipColumn: number;
+    }
+}
+export class IconView extends Widget implements Accessible, Buildable, CellLayout, ConstraintTarget, 
Scrollable {
+    static $gtype: GObject.GType<IconView>;
+
+    constructor(properties?: Partial<IconView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<IconView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activate_on_single_click(): boolean;
+    set activate_on_single_click(val: boolean);
+    get activateOnSingleClick(): boolean;
+    set activateOnSingleClick(val: boolean);
+    get cell_area(): CellArea;
+    get cellArea(): CellArea;
+    get column_spacing(): number;
+    set column_spacing(val: number);
+    get columnSpacing(): number;
+    set columnSpacing(val: number);
+    get columns(): number;
+    set columns(val: number);
+    get item_orientation(): Orientation;
+    set item_orientation(val: Orientation);
+    get itemOrientation(): Orientation;
+    set itemOrientation(val: Orientation);
+    get item_padding(): number;
+    set item_padding(val: number);
+    get itemPadding(): number;
+    set itemPadding(val: number);
+    get item_width(): number;
+    set item_width(val: number);
+    get itemWidth(): number;
+    set itemWidth(val: number);
+    get margin(): number;
+    set margin(val: number);
+    get markup_column(): number;
+    set markup_column(val: number);
+    get markupColumn(): number;
+    set markupColumn(val: number);
+    get model(): TreeModel;
+    set model(val: TreeModel);
+    get pixbuf_column(): number;
+    set pixbuf_column(val: number);
+    get pixbufColumn(): number;
+    set pixbufColumn(val: number);
+    get reorderable(): boolean;
+    set reorderable(val: boolean);
+    get row_spacing(): number;
+    set row_spacing(val: number);
+    get rowSpacing(): number;
+    set rowSpacing(val: number);
+    get selection_mode(): SelectionMode;
+    set selection_mode(val: SelectionMode);
+    get selectionMode(): SelectionMode;
+    set selectionMode(val: SelectionMode);
+    get spacing(): number;
+    set spacing(val: number);
+    get text_column(): number;
+    set text_column(val: number);
+    get textColumn(): number;
+    set textColumn(val: number);
+    get tooltip_column(): number;
+    set tooltip_column(val: number);
+    get tooltipColumn(): number;
+    set tooltipColumn(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-cursor-item", callback: (_source: this) => boolean): number;
+    connect_after(signal: "activate-cursor-item", callback: (_source: this) => boolean): number;
+    emit(signal: "activate-cursor-item"): void;
+    connect(signal: "item-activated", callback: (_source: this, path: TreePath) => void): number;
+    connect_after(signal: "item-activated", callback: (_source: this, path: TreePath) => void): number;
+    emit(signal: "item-activated", path: TreePath): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend: boolean, modify: boolean) => 
boolean
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend: boolean, modify: boolean) => 
boolean
+    ): number;
+    emit(signal: "move-cursor", step: MovementStep, count: number, extend: boolean, modify: boolean): void;
+    connect(signal: "select-all", callback: (_source: this) => void): number;
+    connect_after(signal: "select-all", callback: (_source: this) => void): number;
+    emit(signal: "select-all"): void;
+    connect(signal: "select-cursor-item", callback: (_source: this) => void): number;
+    connect_after(signal: "select-cursor-item", callback: (_source: this) => void): number;
+    emit(signal: "select-cursor-item"): void;
+    connect(signal: "selection-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "selection-changed", callback: (_source: this) => void): number;
+    emit(signal: "selection-changed"): void;
+    connect(signal: "toggle-cursor-item", callback: (_source: this) => void): number;
+    connect_after(signal: "toggle-cursor-item", callback: (_source: this) => void): number;
+    emit(signal: "toggle-cursor-item"): void;
+    connect(signal: "unselect-all", callback: (_source: this) => void): number;
+    connect_after(signal: "unselect-all", callback: (_source: this) => void): number;
+    emit(signal: "unselect-all"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](): IconView;
+    static new_with_area(area: CellArea): IconView;
+    static new_with_model(model: TreeModel): IconView;
+
+    // Members
+
+    create_drag_icon(path: TreePath): Gdk.Paintable | null;
+    enable_model_drag_dest(formats: Gdk.ContentFormats, actions: Gdk.DragAction): void;
+    enable_model_drag_source(
+        start_button_mask: Gdk.ModifierType,
+        formats: Gdk.ContentFormats,
+        actions: Gdk.DragAction
+    ): void;
+    get_activate_on_single_click(): boolean;
+    get_cell_rect(path: TreePath, cell: CellRenderer | null): [boolean, Gdk.Rectangle];
+    get_column_spacing(): number;
+    get_columns(): number;
+    get_cursor(): [boolean, TreePath | null, CellRenderer | null];
+    // Conflicted with Gtk.Widget.get_cursor
+    get_cursor(...args: never[]): any;
+    get_dest_item_at_pos(drag_x: number, drag_y: number): [boolean, TreePath | null, IconViewDropPosition | 
null];
+    get_drag_dest_item(): [TreePath | null, IconViewDropPosition | null];
+    get_item_at_pos(x: number, y: number): [boolean, TreePath | null, CellRenderer | null];
+    get_item_column(path: TreePath): number;
+    get_item_orientation(): Orientation;
+    get_item_padding(): number;
+    get_item_row(path: TreePath): number;
+    get_item_width(): number;
+    get_margin(): number;
+    get_markup_column(): number;
+    get_model(): TreeModel | null;
+    get_path_at_pos(x: number, y: number): TreePath | null;
+    get_pixbuf_column(): number;
+    get_reorderable(): boolean;
+    get_row_spacing(): number;
+    get_selected_items(): TreePath[];
+    get_selection_mode(): SelectionMode;
+    get_spacing(): number;
+    get_text_column(): number;
+    get_tooltip_column(): number;
+    get_tooltip_context(
+        x: number,
+        y: number,
+        keyboard_tip: boolean
+    ): [boolean, TreeModel | null, TreePath | null, TreeIter | null];
+    get_visible_range(): [boolean, TreePath | null, TreePath | null];
+    item_activated(path: TreePath): void;
+    path_is_selected(path: TreePath): boolean;
+    scroll_to_path(path: TreePath, use_align: boolean, row_align: number, col_align: number): void;
+    select_all(): void;
+    select_path(path: TreePath): void;
+    selected_foreach(func: IconViewForeachFunc): void;
+    set_activate_on_single_click(single: boolean): void;
+    set_column_spacing(column_spacing: number): void;
+    set_columns(columns: number): void;
+    set_cursor(path: TreePath, cell: CellRenderer | null, start_editing: boolean): void;
+    // Conflicted with Gtk.Widget.set_cursor
+    set_cursor(...args: never[]): any;
+    set_drag_dest_item(path: TreePath | null, pos: IconViewDropPosition): void;
+    set_item_orientation(orientation: Orientation): void;
+    set_item_padding(item_padding: number): void;
+    set_item_width(item_width: number): void;
+    set_margin(margin: number): void;
+    set_markup_column(column: number): void;
+    set_model(model?: TreeModel | null): void;
+    set_pixbuf_column(column: number): void;
+    set_reorderable(reorderable: boolean): void;
+    set_row_spacing(row_spacing: number): void;
+    set_selection_mode(mode: SelectionMode): void;
+    set_spacing(spacing: number): void;
+    set_text_column(column: number): void;
+    set_tooltip_cell(tooltip: Tooltip, path: TreePath, cell?: CellRenderer | null): void;
+    set_tooltip_column(column: number): void;
+    set_tooltip_item(tooltip: Tooltip, path: TreePath): void;
+    unselect_all(): void;
+    unselect_path(path: TreePath): void;
+    unset_model_drag_dest(): void;
+    unset_model_drag_source(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module Image {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        file: string;
+        gicon: Gio.Icon;
+        icon_name: string;
+        iconName: string;
+        icon_size: IconSize;
+        iconSize: IconSize;
+        paintable: Gdk.Paintable;
+        pixel_size: number;
+        pixelSize: number;
+        resource: string;
+        storage_type: ImageType;
+        storageType: ImageType;
+        use_fallback: boolean;
+        useFallback: boolean;
+    }
+}
+export class Image extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Image>;
+
+    constructor(properties?: Partial<Image.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Image.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get file(): string;
+    set file(val: string);
+    get gicon(): Gio.Icon;
+    set gicon(val: Gio.Icon);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get icon_size(): IconSize;
+    set icon_size(val: IconSize);
+    get iconSize(): IconSize;
+    set iconSize(val: IconSize);
+    get paintable(): Gdk.Paintable;
+    set paintable(val: Gdk.Paintable);
+    get pixel_size(): number;
+    set pixel_size(val: number);
+    get pixelSize(): number;
+    set pixelSize(val: number);
+    get resource(): string;
+    set resource(val: string);
+    get storage_type(): ImageType;
+    get storageType(): ImageType;
+    get use_fallback(): boolean;
+    set use_fallback(val: boolean);
+    get useFallback(): boolean;
+    set useFallback(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Image;
+    static new_from_file(filename: string): Image;
+    static new_from_gicon(icon: Gio.Icon): Image;
+    static new_from_icon_name(icon_name?: string | null): Image;
+    static new_from_paintable(paintable?: Gdk.Paintable | null): Image;
+    static new_from_pixbuf(pixbuf?: GdkPixbuf.Pixbuf | null): Image;
+    static new_from_resource(resource_path: string): Image;
+
+    // Members
+
+    clear(): void;
+    get_gicon(): Gio.Icon | null;
+    get_icon_name(): string | null;
+    get_icon_size(): IconSize;
+    get_paintable(): Gdk.Paintable | null;
+    get_pixel_size(): number;
+    get_storage_type(): ImageType;
+    set_from_file(filename?: string | null): void;
+    set_from_gicon(icon: Gio.Icon): void;
+    set_from_icon_name(icon_name?: string | null): void;
+    set_from_paintable(paintable?: Gdk.Paintable | null): void;
+    set_from_pixbuf(pixbuf?: GdkPixbuf.Pixbuf | null): void;
+    set_from_resource(resource_path?: string | null): void;
+    set_icon_size(icon_size: IconSize): void;
+    set_pixel_size(pixel_size: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module InfoBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        message_type: MessageType;
+        messageType: MessageType;
+        revealed: boolean;
+        show_close_button: boolean;
+        showCloseButton: boolean;
+    }
+}
+export class InfoBar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<InfoBar>;
+
+    constructor(properties?: Partial<InfoBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<InfoBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get message_type(): MessageType;
+    set message_type(val: MessageType);
+    get messageType(): MessageType;
+    set messageType(val: MessageType);
+    get revealed(): boolean;
+    set revealed(val: boolean);
+    get show_close_button(): boolean;
+    set show_close_button(val: boolean);
+    get showCloseButton(): boolean;
+    set showCloseButton(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "close", callback: (_source: this) => void): number;
+    connect_after(signal: "close", callback: (_source: this) => void): number;
+    emit(signal: "close"): void;
+    connect(signal: "response", callback: (_source: this, response_id: number) => void): number;
+    connect_after(signal: "response", callback: (_source: this, response_id: number) => void): number;
+    emit(signal: "response", response_id: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): InfoBar;
+
+    // Members
+
+    add_action_widget(child: Widget, response_id: number): void;
+    add_button(button_text: string, response_id: number): Button;
+    add_child(widget: Widget): void;
+    get_message_type(): MessageType;
+    get_revealed(): boolean;
+    get_show_close_button(): boolean;
+    remove_action_widget(widget: Widget): void;
+    remove_child(widget: Widget): void;
+    response(response_id: number): void;
+    set_default_response(response_id: number): void;
+    set_message_type(message_type: MessageType): void;
+    set_response_sensitive(response_id: number, setting: boolean): void;
+    set_revealed(revealed: boolean): void;
+    set_show_close_button(setting: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module KeyvalTrigger {
+    export interface ConstructorProperties extends ShortcutTrigger.ConstructorProperties {
+        [key: string]: any;
+        keyval: number;
+        modifiers: Gdk.ModifierType;
+    }
+}
+export class KeyvalTrigger extends ShortcutTrigger {
+    static $gtype: GObject.GType<KeyvalTrigger>;
+
+    constructor(properties?: Partial<KeyvalTrigger.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<KeyvalTrigger.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get keyval(): number;
+    get modifiers(): Gdk.ModifierType;
+
+    // Constructors
+
+    static ["new"](keyval: number, modifiers: Gdk.ModifierType): KeyvalTrigger;
+
+    // Members
+
+    get_keyval(): number;
+    get_modifiers(): Gdk.ModifierType;
+}
+export module Label {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        attributes: Pango.AttrList;
+        ellipsize: Pango.EllipsizeMode;
+        extra_menu: Gio.MenuModel;
+        extraMenu: Gio.MenuModel;
+        justify: Justification;
+        label: string;
+        lines: number;
+        max_width_chars: number;
+        maxWidthChars: number;
+        mnemonic_keyval: number;
+        mnemonicKeyval: number;
+        mnemonic_widget: Widget;
+        mnemonicWidget: Widget;
+        natural_wrap_mode: NaturalWrapMode;
+        naturalWrapMode: NaturalWrapMode;
+        selectable: boolean;
+        single_line_mode: boolean;
+        singleLineMode: boolean;
+        use_markup: boolean;
+        useMarkup: boolean;
+        use_underline: boolean;
+        useUnderline: boolean;
+        width_chars: number;
+        widthChars: number;
+        wrap: boolean;
+        wrap_mode: Pango.WrapMode;
+        wrapMode: Pango.WrapMode;
+        xalign: number;
+        yalign: number;
+    }
+}
+export class Label extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Label>;
+
+    constructor(properties?: Partial<Label.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Label.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get attributes(): Pango.AttrList;
+    set attributes(val: Pango.AttrList);
+    get ellipsize(): Pango.EllipsizeMode;
+    set ellipsize(val: Pango.EllipsizeMode);
+    get extra_menu(): Gio.MenuModel;
+    set extra_menu(val: Gio.MenuModel);
+    get extraMenu(): Gio.MenuModel;
+    set extraMenu(val: Gio.MenuModel);
+    get justify(): Justification;
+    set justify(val: Justification);
+    get label(): string;
+    set label(val: string);
+    get lines(): number;
+    set lines(val: number);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get mnemonic_keyval(): number;
+    get mnemonicKeyval(): number;
+    get mnemonic_widget(): Widget;
+    set mnemonic_widget(val: Widget);
+    get mnemonicWidget(): Widget;
+    set mnemonicWidget(val: Widget);
+    get natural_wrap_mode(): NaturalWrapMode;
+    set natural_wrap_mode(val: NaturalWrapMode);
+    get naturalWrapMode(): NaturalWrapMode;
+    set naturalWrapMode(val: NaturalWrapMode);
+    get selectable(): boolean;
+    set selectable(val: boolean);
+    get single_line_mode(): boolean;
+    set single_line_mode(val: boolean);
+    get singleLineMode(): boolean;
+    set singleLineMode(val: boolean);
+    get use_markup(): boolean;
+    set use_markup(val: boolean);
+    get useMarkup(): boolean;
+    set useMarkup(val: boolean);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get wrap(): boolean;
+    set wrap(val: boolean);
+    get wrap_mode(): Pango.WrapMode;
+    set wrap_mode(val: Pango.WrapMode);
+    get wrapMode(): Pango.WrapMode;
+    set wrapMode(val: Pango.WrapMode);
+    get xalign(): number;
+    set xalign(val: number);
+    get yalign(): number;
+    set yalign(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-current-link", callback: (_source: this) => void): number;
+    connect_after(signal: "activate-current-link", callback: (_source: this) => void): number;
+    emit(signal: "activate-current-link"): void;
+    connect(signal: "activate-link", callback: (_source: this, uri: string) => boolean): number;
+    connect_after(signal: "activate-link", callback: (_source: this, uri: string) => boolean): number;
+    emit(signal: "activate-link", uri: string): void;
+    connect(signal: "copy-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "copy-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "copy-clipboard"): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend_selection: boolean) => void
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend_selection: boolean) => void
+    ): number;
+    emit(signal: "move-cursor", step: MovementStep, count: number, extend_selection: boolean): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](str?: string | null): Label;
+    static new_with_mnemonic(str?: string | null): Label;
+
+    // Members
+
+    get_attributes(): Pango.AttrList | null;
+    get_current_uri(): string | null;
+    get_ellipsize(): Pango.EllipsizeMode;
+    get_extra_menu(): Gio.MenuModel | null;
+    get_justify(): Justification;
+    get_label(): string;
+    get_layout(): Pango.Layout;
+    get_layout_offsets(): [number, number];
+    get_lines(): number;
+    get_max_width_chars(): number;
+    get_mnemonic_keyval(): number;
+    get_mnemonic_widget(): Widget | null;
+    get_natural_wrap_mode(): NaturalWrapMode;
+    get_selectable(): boolean;
+    get_selection_bounds(): [boolean, number, number];
+    get_single_line_mode(): boolean;
+    get_text(): string;
+    get_use_markup(): boolean;
+    get_use_underline(): boolean;
+    get_width_chars(): number;
+    get_wrap(): boolean;
+    get_wrap_mode(): Pango.WrapMode;
+    get_xalign(): number;
+    get_yalign(): number;
+    select_region(start_offset: number, end_offset: number): void;
+    set_attributes(attrs?: Pango.AttrList | null): void;
+    set_ellipsize(mode: Pango.EllipsizeMode): void;
+    set_extra_menu(model?: Gio.MenuModel | null): void;
+    set_justify(jtype: Justification): void;
+    set_label(str: string): void;
+    set_lines(lines: number): void;
+    set_markup(str: string): void;
+    set_markup_with_mnemonic(str: string): void;
+    set_max_width_chars(n_chars: number): void;
+    set_mnemonic_widget(widget?: Widget | null): void;
+    set_natural_wrap_mode(wrap_mode: NaturalWrapMode): void;
+    set_selectable(setting: boolean): void;
+    set_single_line_mode(single_line_mode: boolean): void;
+    set_text(str: string): void;
+    set_text_with_mnemonic(str: string): void;
+    set_use_markup(setting: boolean): void;
+    set_use_underline(setting: boolean): void;
+    set_width_chars(n_chars: number): void;
+    set_wrap(wrap: boolean): void;
+    set_wrap_mode(wrap_mode: Pango.WrapMode): void;
+    set_xalign(xalign: number): void;
+    set_yalign(yalign: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module LayoutChild {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child_widget: Widget;
+        childWidget: Widget;
+        layout_manager: LayoutManager;
+        layoutManager: LayoutManager;
+    }
+}
+export abstract class LayoutChild extends GObject.Object {
+    static $gtype: GObject.GType<LayoutChild>;
+
+    constructor(properties?: Partial<LayoutChild.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<LayoutChild.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child_widget(): Widget;
+    get childWidget(): Widget;
+    get layout_manager(): LayoutManager;
+    get layoutManager(): LayoutManager;
+
+    // Members
+
+    get_child_widget(): Widget;
+    get_layout_manager(): LayoutManager;
+}
+export module LayoutManager {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class LayoutManager extends GObject.Object {
+    static $gtype: GObject.GType<LayoutManager>;
+
+    constructor(properties?: Partial<LayoutManager.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<LayoutManager.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    allocate(widget: Widget, width: number, height: number, baseline: number): void;
+    get_layout_child(child: Widget): LayoutChild;
+    get_request_mode(): SizeRequestMode;
+    get_widget(): Widget | null;
+    layout_changed(): void;
+    measure(widget: Widget, orientation: Orientation, for_size: number): [number, number, number, number];
+    vfunc_allocate(widget: Widget, width: number, height: number, baseline: number): void;
+    vfunc_create_layout_child(widget: Widget, for_child: Widget): LayoutChild;
+    vfunc_get_request_mode(widget: Widget): SizeRequestMode;
+    vfunc_measure(widget: Widget, orientation: Orientation, for_size: number): [number, number, number, 
number];
+    vfunc_root(): void;
+    vfunc_unroot(): void;
+}
+export module LevelBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        inverted: boolean;
+        max_value: number;
+        maxValue: number;
+        min_value: number;
+        minValue: number;
+        mode: LevelBarMode;
+        value: number;
+    }
+}
+export class LevelBar extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<LevelBar>;
+
+    constructor(properties?: Partial<LevelBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<LevelBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get inverted(): boolean;
+    set inverted(val: boolean);
+    get max_value(): number;
+    set max_value(val: number);
+    get maxValue(): number;
+    set maxValue(val: number);
+    get min_value(): number;
+    set min_value(val: number);
+    get minValue(): number;
+    set minValue(val: number);
+    get mode(): LevelBarMode;
+    set mode(val: LevelBarMode);
+    get value(): number;
+    set value(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "offset-changed", callback: (_source: this, name: string) => void): number;
+    connect_after(signal: "offset-changed", callback: (_source: this, name: string) => void): number;
+    emit(signal: "offset-changed", name: string): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): LevelBar;
+    static new_for_interval(min_value: number, max_value: number): LevelBar;
+
+    // Members
+
+    add_offset_value(name: string, value: number): void;
+    get_inverted(): boolean;
+    get_max_value(): number;
+    get_min_value(): number;
+    get_mode(): LevelBarMode;
+    get_offset_value(name: string | null): [boolean, number];
+    get_value(): number;
+    remove_offset_value(name?: string | null): void;
+    set_inverted(inverted: boolean): void;
+    set_max_value(value: number): void;
+    set_min_value(value: number): void;
+    set_mode(mode: LevelBarMode): void;
+    set_value(value: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module LinkButton {
+    export interface ConstructorProperties extends Button.ConstructorProperties {
+        [key: string]: any;
+        uri: string;
+        visited: boolean;
+    }
+}
+export class LinkButton extends Button implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<LinkButton>;
+
+    constructor(properties?: Partial<LinkButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<LinkButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get uri(): string;
+    set uri(val: string);
+    get visited(): boolean;
+    set visited(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-link", callback: (_source: this) => boolean): number;
+    connect_after(signal: "activate-link", callback: (_source: this) => boolean): number;
+    emit(signal: "activate-link"): void;
+
+    // Implemented Properties
+
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](uri: string): LinkButton;
+    // Conflicted with Gtk.Button.new
+    static ["new"](...args: never[]): any;
+    static new_with_label(uri: string, label?: string | null): LinkButton;
+    // Conflicted with Gtk.Button.new_with_label
+    static new_with_label(...args: never[]): any;
+
+    // Members
+
+    get_uri(): string;
+    get_visited(): boolean;
+    set_uri(uri: string): void;
+    set_visited(visited: boolean): void;
+
+    // Implemented Members
+
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+}
+export module ListBase {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        orientation: Orientation;
+    }
+}
+export abstract class ListBase
+    extends Widget
+    implements Accessible, Buildable, ConstraintTarget, Orientable, Scrollable
+{
+    static $gtype: GObject.GType<ListBase>;
+
+    constructor(properties?: Partial<ListBase.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListBase.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module ListBox {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        accept_unpaired_release: boolean;
+        acceptUnpairedRelease: boolean;
+        activate_on_single_click: boolean;
+        activateOnSingleClick: boolean;
+        selection_mode: SelectionMode;
+        selectionMode: SelectionMode;
+        show_separators: boolean;
+        showSeparators: boolean;
+    }
+}
+export class ListBox extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ListBox>;
+
+    constructor(properties?: Partial<ListBox.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListBox.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accept_unpaired_release(): boolean;
+    set accept_unpaired_release(val: boolean);
+    get acceptUnpairedRelease(): boolean;
+    set acceptUnpairedRelease(val: boolean);
+    get activate_on_single_click(): boolean;
+    set activate_on_single_click(val: boolean);
+    get activateOnSingleClick(): boolean;
+    set activateOnSingleClick(val: boolean);
+    get selection_mode(): SelectionMode;
+    set selection_mode(val: SelectionMode);
+    get selectionMode(): SelectionMode;
+    set selectionMode(val: SelectionMode);
+    get show_separators(): boolean;
+    set show_separators(val: boolean);
+    get showSeparators(): boolean;
+    set showSeparators(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-cursor-row", callback: (_source: this) => void): number;
+    connect_after(signal: "activate-cursor-row", callback: (_source: this) => void): number;
+    emit(signal: "activate-cursor-row"): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, object: MovementStep, p0: number, p1: boolean, p2: boolean) => void
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, object: MovementStep, p0: number, p1: boolean, p2: boolean) => void
+    ): number;
+    emit(signal: "move-cursor", object: MovementStep, p0: number, p1: boolean, p2: boolean): void;
+    connect(signal: "row-activated", callback: (_source: this, row: ListBoxRow) => void): number;
+    connect_after(signal: "row-activated", callback: (_source: this, row: ListBoxRow) => void): number;
+    emit(signal: "row-activated", row: ListBoxRow): void;
+    connect(signal: "row-selected", callback: (_source: this, row: ListBoxRow | null) => void): number;
+    connect_after(signal: "row-selected", callback: (_source: this, row: ListBoxRow | null) => void): number;
+    emit(signal: "row-selected", row: ListBoxRow | null): void;
+    connect(signal: "select-all", callback: (_source: this) => void): number;
+    connect_after(signal: "select-all", callback: (_source: this) => void): number;
+    emit(signal: "select-all"): void;
+    connect(signal: "selected-rows-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "selected-rows-changed", callback: (_source: this) => void): number;
+    emit(signal: "selected-rows-changed"): void;
+    connect(signal: "toggle-cursor-row", callback: (_source: this) => void): number;
+    connect_after(signal: "toggle-cursor-row", callback: (_source: this) => void): number;
+    emit(signal: "toggle-cursor-row"): void;
+    connect(signal: "unselect-all", callback: (_source: this) => void): number;
+    connect_after(signal: "unselect-all", callback: (_source: this) => void): number;
+    emit(signal: "unselect-all"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ListBox;
+
+    // Members
+
+    append(child: Widget): void;
+    bind_model(model?: Gio.ListModel | null, create_widget_func?: ListBoxCreateWidgetFunc | null): void;
+    drag_highlight_row(row: ListBoxRow): void;
+    drag_unhighlight_row(): void;
+    get_activate_on_single_click(): boolean;
+    get_adjustment(): Adjustment | null;
+    get_row_at_index(index_: number): ListBoxRow | null;
+    get_row_at_y(y: number): ListBoxRow | null;
+    get_selected_row(): ListBoxRow | null;
+    get_selected_rows(): ListBoxRow[];
+    get_selection_mode(): SelectionMode;
+    get_show_separators(): boolean;
+    insert(child: Widget, position: number): void;
+    invalidate_filter(): void;
+    invalidate_headers(): void;
+    invalidate_sort(): void;
+    prepend(child: Widget): void;
+    remove(child: Widget): void;
+    select_all(): void;
+    select_row(row?: ListBoxRow | null): void;
+    selected_foreach(func: ListBoxForeachFunc): void;
+    set_activate_on_single_click(single: boolean): void;
+    set_adjustment(adjustment?: Adjustment | null): void;
+    set_filter_func(filter_func?: ListBoxFilterFunc | null): void;
+    set_header_func(update_header?: ListBoxUpdateHeaderFunc | null): void;
+    set_placeholder(placeholder?: Widget | null): void;
+    set_selection_mode(mode: SelectionMode): void;
+    set_show_separators(show_separators: boolean): void;
+    set_sort_func(sort_func?: ListBoxSortFunc | null): void;
+    unselect_all(): void;
+    unselect_row(row: ListBoxRow): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ListBoxRow {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activatable: boolean;
+        child: Widget;
+        selectable: boolean;
+    }
+}
+export class ListBoxRow extends Widget implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ListBoxRow>;
+
+    constructor(properties?: Partial<ListBoxRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListBoxRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activatable(): boolean;
+    set activatable(val: boolean);
+    get child(): Widget;
+    set child(val: Widget);
+    get selectable(): boolean;
+    set selectable(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): ListBoxRow;
+
+    // Members
+
+    changed(): void;
+    get_activatable(): boolean;
+    get_child(): Widget | null;
+    get_header(): Widget | null;
+    get_index(): number;
+    get_selectable(): boolean;
+    is_selected(): boolean;
+    set_activatable(activatable: boolean): void;
+    set_child(child?: Widget | null): void;
+    set_header(header?: Widget | null): void;
+    set_selectable(selectable: boolean): void;
+    vfunc_activate(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ListItem {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        activatable: boolean;
+        child: Widget;
+        item: GObject.Object;
+        position: number;
+        selectable: boolean;
+        selected: boolean;
+    }
+}
+export class ListItem extends GObject.Object {
+    static $gtype: GObject.GType<ListItem>;
+
+    constructor(properties?: Partial<ListItem.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListItem.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activatable(): boolean;
+    set activatable(val: boolean);
+    get child(): Widget;
+    set child(val: Widget);
+    get item(): GObject.Object;
+    get position(): number;
+    get selectable(): boolean;
+    set selectable(val: boolean);
+    get selected(): boolean;
+
+    // Members
+
+    get_activatable(): boolean;
+    get_child(): Widget | null;
+    get_item<T = GObject.Object>(): T;
+    get_position(): number;
+    get_selectable(): boolean;
+    get_selected(): boolean;
+    set_activatable(activatable: boolean): void;
+    set_child(child?: Widget | null): void;
+    set_selectable(selectable: boolean): void;
+}
+export module ListItemFactory {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ListItemFactory extends GObject.Object {
+    static $gtype: GObject.GType<ListItemFactory>;
+
+    constructor(properties?: Partial<ListItemFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListItemFactory.ConstructorProperties>, ...args: any[]): void;
+}
+export module ListStore {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ListStore
+    extends GObject.Object
+    implements Buildable, TreeDragDest, TreeDragSource, TreeModel, TreeSortable
+{
+    static $gtype: GObject.GType<ListStore>;
+
+    constructor(properties?: Partial<ListStore.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListStore.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](types: GObject.GType[]): ListStore;
+
+    // Members
+
+    append(): TreeIter;
+    clear(): void;
+    insert(position: number): TreeIter;
+    insert_after(sibling?: TreeIter | null): TreeIter;
+    insert_before(sibling?: TreeIter | null): TreeIter;
+    insert_with_values(position: number, columns: number[], values: GObject.Value[]): TreeIter | null;
+    iter_is_valid(iter: TreeIter): boolean;
+    move_after(iter: TreeIter, position?: TreeIter | null): void;
+    move_before(iter: TreeIter, position?: TreeIter | null): void;
+    prepend(): TreeIter;
+    remove(iter: TreeIter): boolean;
+    reorder(new_order: number[]): void;
+    set_column_types(types: GObject.GType[]): void;
+    set_value(iter: TreeIter, column: number, value: GObject.Value | any): void;
+    set(iter: TreeIter, columns: number[], values: GObject.Value[]): void;
+    // Conflicted with GObject.Object.set
+    set(...args: never[]): any;
+    swap(a: TreeIter, b: TreeIter): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    drag_data_received(dest: TreePath, value: GObject.Value | any): boolean;
+    row_drop_possible(dest_path: TreePath, value: GObject.Value | any): boolean;
+    vfunc_drag_data_received(dest: TreePath, value: GObject.Value | any): boolean;
+    vfunc_row_drop_possible(dest_path: TreePath, value: GObject.Value | any): boolean;
+    drag_data_delete(path: TreePath): boolean;
+    drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    row_draggable(path: TreePath): boolean;
+    vfunc_drag_data_delete(path: TreePath): boolean;
+    vfunc_drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    vfunc_row_draggable(path: TreePath): boolean;
+    filter_new(root?: TreePath | null): TreeModel;
+    foreach(func: TreeModelForeachFunc): void;
+    get_column_type(index_: number): GObject.GType;
+    get_flags(): TreeModelFlags;
+    get_iter(path: TreePath): [boolean, TreeIter];
+    get_iter_first(): [boolean, TreeIter];
+    get_iter_from_string(path_string: string): [boolean, TreeIter];
+    get_n_columns(): number;
+    get_path(iter: TreeIter): TreePath;
+    get_string_from_iter(iter: TreeIter): string | null;
+    get_value(iter: TreeIter, column: number): unknown;
+    iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    iter_has_child(iter: TreeIter): boolean;
+    iter_n_children(iter?: TreeIter | null): number;
+    iter_next(iter: TreeIter): boolean;
+    iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    iter_parent(child: TreeIter): [boolean, TreeIter];
+    iter_previous(iter: TreeIter): boolean;
+    ref_node(iter: TreeIter): void;
+    row_changed(path: TreePath, iter: TreeIter): void;
+    row_deleted(path: TreePath): void;
+    row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    row_inserted(path: TreePath, iter: TreeIter): void;
+    rows_reordered(path: TreePath, iter: TreeIter | null, new_order: number[]): void;
+    unref_node(iter: TreeIter): void;
+    vfunc_get_column_type(index_: number): GObject.GType;
+    vfunc_get_flags(): TreeModelFlags;
+    vfunc_get_iter(path: TreePath): [boolean, TreeIter];
+    vfunc_get_n_columns(): number;
+    vfunc_get_path(iter: TreeIter): TreePath;
+    vfunc_get_value(iter: TreeIter, column: number): unknown;
+    vfunc_iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    vfunc_iter_has_child(iter: TreeIter): boolean;
+    vfunc_iter_n_children(iter?: TreeIter | null): number;
+    vfunc_iter_next(iter: TreeIter): boolean;
+    vfunc_iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    vfunc_iter_parent(child: TreeIter): [boolean, TreeIter];
+    vfunc_iter_previous(iter: TreeIter): boolean;
+    vfunc_ref_node(iter: TreeIter): void;
+    vfunc_row_changed(path: TreePath, iter: TreeIter): void;
+    vfunc_row_deleted(path: TreePath): void;
+    vfunc_row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    vfunc_row_inserted(path: TreePath, iter: TreeIter): void;
+    vfunc_unref_node(iter: TreeIter): void;
+    get_sort_column_id(): [boolean, number, SortType];
+    has_default_sort_func(): boolean;
+    set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    set_sort_column_id(sort_column_id: number, order: SortType): void;
+    set_sort_func(sort_column_id: number, sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | 
null): void;
+    sort_column_changed(): void;
+    vfunc_get_sort_column_id(): [boolean, number, SortType];
+    vfunc_has_default_sort_func(): boolean;
+    vfunc_set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    vfunc_set_sort_column_id(sort_column_id: number, order: SortType): void;
+    vfunc_set_sort_func(
+        sort_column_id: number,
+        sort_func: TreeIterCompareFunc,
+        destroy?: GLib.DestroyNotify | null
+    ): void;
+    vfunc_sort_column_changed(): void;
+}
+export module ListView {
+    export interface ConstructorProperties extends ListBase.ConstructorProperties {
+        [key: string]: any;
+        enable_rubberband: boolean;
+        enableRubberband: boolean;
+        factory: ListItemFactory;
+        model: SelectionModel;
+        show_separators: boolean;
+        showSeparators: boolean;
+        single_click_activate: boolean;
+        singleClickActivate: boolean;
+    }
+}
+export class ListView extends ListBase implements Accessible, Buildable, ConstraintTarget, Orientable, 
Scrollable {
+    static $gtype: GObject.GType<ListView>;
+
+    constructor(properties?: Partial<ListView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ListView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_rubberband(): boolean;
+    set enable_rubberband(val: boolean);
+    get enableRubberband(): boolean;
+    set enableRubberband(val: boolean);
+    get factory(): ListItemFactory;
+    set factory(val: ListItemFactory);
+    get model(): SelectionModel;
+    set model(val: SelectionModel);
+    get show_separators(): boolean;
+    set show_separators(val: boolean);
+    get showSeparators(): boolean;
+    set showSeparators(val: boolean);
+    get single_click_activate(): boolean;
+    set single_click_activate(val: boolean);
+    get singleClickActivate(): boolean;
+    set singleClickActivate(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this, position: number) => void): number;
+    connect_after(signal: "activate", callback: (_source: this, position: number) => void): number;
+    emit(signal: "activate", position: number): void;
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](model?: SelectionModel | null, factory?: ListItemFactory | null): ListView;
+
+    // Members
+
+    get_enable_rubberband(): boolean;
+    get_factory(): ListItemFactory | null;
+    get_model(): SelectionModel | null;
+    get_show_separators(): boolean;
+    get_single_click_activate(): boolean;
+    set_enable_rubberband(enable_rubberband: boolean): void;
+    set_factory(factory?: ListItemFactory | null): void;
+    set_model(model?: SelectionModel | null): void;
+    set_show_separators(show_separators: boolean): void;
+    set_single_click_activate(single_click_activate: boolean): void;
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module LockButton {
+    export interface ConstructorProperties extends Button.ConstructorProperties {
+        [key: string]: any;
+        permission: Gio.Permission;
+        text_lock: string;
+        textLock: string;
+        text_unlock: string;
+        textUnlock: string;
+        tooltip_lock: string;
+        tooltipLock: string;
+        tooltip_not_authorized: string;
+        tooltipNotAuthorized: string;
+        tooltip_unlock: string;
+        tooltipUnlock: string;
+    }
+}
+export class LockButton extends Button implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<LockButton>;
+
+    constructor(properties?: Partial<LockButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<LockButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get permission(): Gio.Permission;
+    set permission(val: Gio.Permission);
+    get text_lock(): string;
+    set text_lock(val: string);
+    get textLock(): string;
+    set textLock(val: string);
+    get text_unlock(): string;
+    set text_unlock(val: string);
+    get textUnlock(): string;
+    set textUnlock(val: string);
+    get tooltip_lock(): string;
+    set tooltip_lock(val: string);
+    get tooltipLock(): string;
+    set tooltipLock(val: string);
+    get tooltip_not_authorized(): string;
+    set tooltip_not_authorized(val: string);
+    get tooltipNotAuthorized(): string;
+    set tooltipNotAuthorized(val: string);
+    get tooltip_unlock(): string;
+    set tooltip_unlock(val: string);
+    get tooltipUnlock(): string;
+    set tooltipUnlock(val: string);
+
+    // Implemented Properties
+
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](permission?: Gio.Permission | null): LockButton;
+    // Conflicted with Gtk.Button.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_permission(): Gio.Permission | null;
+    set_permission(permission?: Gio.Permission | null): void;
+
+    // Implemented Members
+
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+}
+export module MapListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        has_map: boolean;
+        hasMap: boolean;
+        model: Gio.ListModel;
+    }
+}
+export class MapListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<MapListModel>;
+
+    constructor(properties?: Partial<MapListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<MapListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get has_map(): boolean;
+    get hasMap(): boolean;
+    get model(): Gio.ListModel;
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null, map_func?: MapListModelMapFunc | null): MapListModel;
+
+    // Members
+
+    get_model(): Gio.ListModel | null;
+    set_map_func(map_func?: MapListModelMapFunc | null): void;
+    set_model(model?: Gio.ListModel | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module MediaControls {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        media_stream: MediaStream;
+        mediaStream: MediaStream;
+    }
+}
+export class MediaControls extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<MediaControls>;
+
+    constructor(properties?: Partial<MediaControls.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MediaControls.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get media_stream(): MediaStream;
+    set media_stream(val: MediaStream);
+    get mediaStream(): MediaStream;
+    set mediaStream(val: MediaStream);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](stream?: MediaStream | null): MediaControls;
+
+    // Members
+
+    get_media_stream(): MediaStream | null;
+    set_media_stream(stream?: MediaStream | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module MediaFile {
+    export interface ConstructorProperties extends MediaStream.ConstructorProperties {
+        [key: string]: any;
+        file: Gio.File;
+        input_stream: Gio.InputStream;
+        inputStream: Gio.InputStream;
+    }
+}
+export abstract class MediaFile extends MediaStream implements Gdk.Paintable {
+    static $gtype: GObject.GType<MediaFile>;
+
+    constructor(properties?: Partial<MediaFile.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MediaFile.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get file(): Gio.File;
+    set file(val: Gio.File);
+    get input_stream(): Gio.InputStream;
+    set input_stream(val: Gio.InputStream);
+    get inputStream(): Gio.InputStream;
+    set inputStream(val: Gio.InputStream);
+
+    // Constructors
+
+    static ["new"](): MediaFile;
+    static new_for_file(file: Gio.File): MediaFile;
+    static new_for_filename(filename: string): MediaFile;
+    static new_for_input_stream(stream: Gio.InputStream): MediaFile;
+    static new_for_resource(resource_path: string): MediaFile;
+
+    // Members
+
+    clear(): void;
+    get_file(): Gio.File | null;
+    get_input_stream(): Gio.InputStream | null;
+    set_file(file?: Gio.File | null): void;
+    set_filename(filename?: string | null): void;
+    set_input_stream(stream?: Gio.InputStream | null): void;
+    set_resource(resource_path?: string | null): void;
+    vfunc_close(): void;
+    vfunc_open(): void;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Gdk.Paintable;
+    get_flags(): Gdk.PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Gdk.Paintable;
+    vfunc_get_flags(): Gdk.PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+}
+export module MediaStream {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        duration: number;
+        ended: boolean;
+        error: GLib.Error;
+        has_audio: boolean;
+        hasAudio: boolean;
+        has_video: boolean;
+        hasVideo: boolean;
+        loop: boolean;
+        muted: boolean;
+        playing: boolean;
+        prepared: boolean;
+        seekable: boolean;
+        seeking: boolean;
+        timestamp: number;
+        volume: number;
+    }
+}
+export abstract class MediaStream extends GObject.Object implements Gdk.Paintable {
+    static $gtype: GObject.GType<MediaStream>;
+
+    constructor(properties?: Partial<MediaStream.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MediaStream.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get duration(): number;
+    get ended(): boolean;
+    get error(): GLib.Error;
+    get has_audio(): boolean;
+    get hasAudio(): boolean;
+    get has_video(): boolean;
+    get hasVideo(): boolean;
+    get loop(): boolean;
+    set loop(val: boolean);
+    get muted(): boolean;
+    set muted(val: boolean);
+    get playing(): boolean;
+    set playing(val: boolean);
+    get prepared(): boolean;
+    set prepared(val: boolean);
+    get seekable(): boolean;
+    get seeking(): boolean;
+    get timestamp(): number;
+    get volume(): number;
+    set volume(val: number);
+
+    // Members
+
+    gerror(error: GLib.Error): void;
+    get_duration(): number;
+    get_ended(): boolean;
+    get_error(): GLib.Error | null;
+    get_loop(): boolean;
+    get_muted(): boolean;
+    get_playing(): boolean;
+    get_timestamp(): number;
+    get_volume(): number;
+    is_prepared(): boolean;
+    is_seekable(): boolean;
+    is_seeking(): boolean;
+    pause(): void;
+    play(): void;
+    realize(surface: Gdk.Surface): void;
+    seek(timestamp: number): void;
+    seek_failed(): void;
+    seek_success(): void;
+    set_loop(loop: boolean): void;
+    set_muted(muted: boolean): void;
+    set_playing(playing: boolean): void;
+    set_volume(volume: number): void;
+    stream_ended(): void;
+    stream_prepared(has_audio: boolean, has_video: boolean, seekable: boolean, duration: number): void;
+    stream_unprepared(): void;
+    unrealize(surface: Gdk.Surface): void;
+    update(timestamp: number): void;
+    vfunc_pause(): void;
+    vfunc_play(): boolean;
+    vfunc_realize(surface: Gdk.Surface): void;
+    vfunc_seek(timestamp: number): void;
+    vfunc_unrealize(surface: Gdk.Surface): void;
+    vfunc_update_audio(muted: boolean, volume: number): void;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Gdk.Paintable;
+    get_flags(): Gdk.PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Gdk.Paintable;
+    vfunc_get_flags(): Gdk.PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+}
+export module MenuButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        always_show_arrow: boolean;
+        alwaysShowArrow: boolean;
+        child: Widget;
+        direction: ArrowType;
+        has_frame: boolean;
+        hasFrame: boolean;
+        icon_name: string;
+        iconName: string;
+        label: string;
+        menu_model: Gio.MenuModel;
+        menuModel: Gio.MenuModel;
+        popover: Popover;
+        primary: boolean;
+        use_underline: boolean;
+        useUnderline: boolean;
+    }
+}
+export class MenuButton extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<MenuButton>;
+
+    constructor(properties?: Partial<MenuButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MenuButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get always_show_arrow(): boolean;
+    set always_show_arrow(val: boolean);
+    get alwaysShowArrow(): boolean;
+    set alwaysShowArrow(val: boolean);
+    get child(): Widget;
+    set child(val: Widget);
+    get direction(): ArrowType;
+    set direction(val: ArrowType);
+    get has_frame(): boolean;
+    set has_frame(val: boolean);
+    get hasFrame(): boolean;
+    set hasFrame(val: boolean);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get label(): string;
+    set label(val: string);
+    get menu_model(): Gio.MenuModel;
+    set menu_model(val: Gio.MenuModel);
+    get menuModel(): Gio.MenuModel;
+    set menuModel(val: Gio.MenuModel);
+    get popover(): Popover;
+    set popover(val: Popover);
+    get primary(): boolean;
+    set primary(val: boolean);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): MenuButton;
+
+    // Members
+
+    get_always_show_arrow(): boolean;
+    get_child(): Widget | null;
+    get_direction(): ArrowType;
+    // Conflicted with Gtk.Widget.get_direction
+    get_direction(...args: never[]): any;
+    get_has_frame(): boolean;
+    get_icon_name(): string | null;
+    get_label(): string | null;
+    get_menu_model(): Gio.MenuModel | null;
+    get_popover(): Popover | null;
+    get_primary(): boolean;
+    get_use_underline(): boolean;
+    popdown(): void;
+    popup(): void;
+    set_always_show_arrow(always_show_arrow: boolean): void;
+    set_child(child?: Widget | null): void;
+    set_create_popup_func(func?: MenuButtonCreatePopupFunc | null, destroy_notify?: GLib.DestroyNotify | 
null): void;
+    set_direction(direction: ArrowType): void;
+    // Conflicted with Gtk.Widget.set_direction
+    set_direction(...args: never[]): any;
+    set_has_frame(has_frame: boolean): void;
+    set_icon_name(icon_name: string): void;
+    set_label(label: string): void;
+    set_menu_model(menu_model?: Gio.MenuModel | null): void;
+    set_popover(popover?: Widget | null): void;
+    set_primary(primary: boolean): void;
+    set_use_underline(use_underline: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module MessageDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+        buttons: ButtonsType;
+        message_area: Widget;
+        messageArea: Widget;
+        message_type: MessageType;
+        messageType: MessageType;
+        secondary_text: string;
+        secondaryText: string;
+        secondary_use_markup: boolean;
+        secondaryUseMarkup: boolean;
+        text: string;
+        use_markup: boolean;
+        useMarkup: boolean;
+    }
+}
+export class MessageDialog
+    extends Dialog
+    implements Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<MessageDialog>;
+
+    constructor(properties?: Partial<MessageDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MessageDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set buttons(val: ButtonsType);
+    get message_area(): Widget;
+    get messageArea(): Widget;
+    get message_type(): MessageType;
+    set message_type(val: MessageType);
+    get messageType(): MessageType;
+    set messageType(val: MessageType);
+    get secondary_text(): string;
+    set secondary_text(val: string);
+    get secondaryText(): string;
+    set secondaryText(val: string);
+    get secondary_use_markup(): boolean;
+    set secondary_use_markup(val: boolean);
+    get secondaryUseMarkup(): boolean;
+    set secondaryUseMarkup(val: boolean);
+    get text(): string;
+    set text(val: string);
+    get use_markup(): boolean;
+    set use_markup(val: boolean);
+    get useMarkup(): boolean;
+    set useMarkup(val: boolean);
+
+    // Members
+
+    get_message_area(): Widget;
+    set_markup(str: string): void;
+}
+export module MnemonicAction {
+    export interface ConstructorProperties extends ShortcutAction.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class MnemonicAction extends ShortcutAction {
+    static $gtype: GObject.GType<MnemonicAction>;
+
+    constructor(properties?: Partial<MnemonicAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MnemonicAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static get(): MnemonicAction;
+}
+export module MnemonicTrigger {
+    export interface ConstructorProperties extends ShortcutTrigger.ConstructorProperties {
+        [key: string]: any;
+        keyval: number;
+    }
+}
+export class MnemonicTrigger extends ShortcutTrigger {
+    static $gtype: GObject.GType<MnemonicTrigger>;
+
+    constructor(properties?: Partial<MnemonicTrigger.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MnemonicTrigger.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get keyval(): number;
+
+    // Constructors
+
+    static ["new"](keyval: number): MnemonicTrigger;
+
+    // Members
+
+    get_keyval(): number;
+}
+export module MountOperation {
+    export interface ConstructorProperties extends Gio.MountOperation.ConstructorProperties {
+        [key: string]: any;
+        display: Gdk.Display;
+        is_showing: boolean;
+        isShowing: boolean;
+    }
+}
+export class MountOperation extends Gio.MountOperation {
+    static $gtype: GObject.GType<MountOperation>;
+
+    constructor(properties?: Partial<MountOperation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<MountOperation.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get display(): Gdk.Display;
+    set display(val: Gdk.Display);
+    get is_showing(): boolean;
+    get isShowing(): boolean;
+
+    // Fields
+    priv: MountOperationPrivate | any;
+
+    // Constructors
+
+    static ["new"](parent?: Window | null): MountOperation;
+    // Conflicted with Gio.MountOperation.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_display(): Gdk.Display;
+    get_parent(): Window | null;
+    set_display(display: Gdk.Display): void;
+    set_parent(parent?: Window | null): void;
+}
+export module MultiFilter {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends Filter.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class MultiFilter<A extends GObject.Object = GObject.Object>
+    extends Filter
+    implements Gio.ListModel<A>, Buildable
+{
+    static $gtype: GObject.GType<MultiFilter>;
+
+    constructor(properties?: Partial<MultiFilter.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<MultiFilter.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Members
+
+    append(filter: Filter): void;
+    remove(position: number): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module MultiSelection {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        model: Gio.ListModel;
+    }
+}
+export class MultiSelection<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>, SelectionModel<A>
+{
+    static $gtype: GObject.GType<MultiSelection>;
+
+    constructor(properties?: Partial<MultiSelection.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<MultiSelection.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null): MultiSelection;
+
+    // Members
+
+    get_model(): Gio.ListModel | null;
+    set_model(model?: Gio.ListModel | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_selection(): Bitset;
+    get_selection_in_range(position: number, n_items: number): Bitset;
+    is_selected(position: number): boolean;
+    select_all(): boolean;
+    select_item(position: number, unselect_rest: boolean): boolean;
+    select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    selection_changed(position: number, n_items: number): void;
+    set_selection(selected: Bitset, mask: Bitset): boolean;
+    unselect_all(): boolean;
+    unselect_item(position: number): boolean;
+    unselect_range(position: number, n_items: number): boolean;
+    vfunc_get_selection_in_range(position: number, n_items: number): Bitset;
+    vfunc_is_selected(position: number): boolean;
+    vfunc_select_all(): boolean;
+    vfunc_select_item(position: number, unselect_rest: boolean): boolean;
+    vfunc_select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    vfunc_set_selection(selected: Bitset, mask: Bitset): boolean;
+    vfunc_unselect_all(): boolean;
+    vfunc_unselect_item(position: number): boolean;
+    vfunc_unselect_range(position: number, n_items: number): boolean;
+}
+export module MultiSorter {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends Sorter.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class MultiSorter<A extends GObject.Object = GObject.Object>
+    extends Sorter
+    implements Gio.ListModel<A>, Buildable
+{
+    static $gtype: GObject.GType<MultiSorter>;
+
+    constructor(properties?: Partial<MultiSorter.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<MultiSorter.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): MultiSorter;
+
+    // Members
+
+    append(sorter: Sorter): void;
+    remove(position: number): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module NamedAction {
+    export interface ConstructorProperties extends ShortcutAction.ConstructorProperties {
+        [key: string]: any;
+        action_name: string;
+        actionName: string;
+    }
+}
+export class NamedAction extends ShortcutAction {
+    static $gtype: GObject.GType<NamedAction>;
+
+    constructor(properties?: Partial<NamedAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NamedAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get action_name(): string;
+    get actionName(): string;
+
+    // Constructors
+
+    static ["new"](name: string): NamedAction;
+
+    // Members
+
+    get_action_name(): string;
+}
+export module NativeDialog {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        modal: boolean;
+        title: string;
+        transient_for: Window;
+        transientFor: Window;
+        visible: boolean;
+    }
+}
+export abstract class NativeDialog extends GObject.Object {
+    static $gtype: GObject.GType<NativeDialog>;
+
+    constructor(properties?: Partial<NativeDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NativeDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get modal(): boolean;
+    set modal(val: boolean);
+    get title(): string;
+    set title(val: string);
+    get transient_for(): Window;
+    set transient_for(val: Window);
+    get transientFor(): Window;
+    set transientFor(val: Window);
+    get visible(): boolean;
+    set visible(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "response", callback: (_source: this, response_id: number) => void): number;
+    connect_after(signal: "response", callback: (_source: this, response_id: number) => void): number;
+    emit(signal: "response", response_id: number): void;
+
+    // Members
+
+    destroy(): void;
+    get_modal(): boolean;
+    get_title(): string | null;
+    get_transient_for(): Window | null;
+    get_visible(): boolean;
+    hide(): void;
+    set_modal(modal: boolean): void;
+    set_title(title: string): void;
+    set_transient_for(parent?: Window | null): void;
+    show(): void;
+    vfunc_hide(): void;
+    vfunc_response(response_id: number): void;
+    vfunc_show(): void;
+}
+export module NeverTrigger {
+    export interface ConstructorProperties extends ShortcutTrigger.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class NeverTrigger extends ShortcutTrigger {
+    static $gtype: GObject.GType<NeverTrigger>;
+
+    constructor(properties?: Partial<NeverTrigger.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NeverTrigger.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static get(): NeverTrigger;
+}
+export module NoSelection {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        model: Gio.ListModel;
+    }
+}
+export class NoSelection<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>, SelectionModel<A>
+{
+    static $gtype: GObject.GType<NoSelection>;
+
+    constructor(properties?: Partial<NoSelection.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<NoSelection.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null): NoSelection;
+
+    // Members
+
+    get_model(): Gio.ListModel | null;
+    set_model(model?: Gio.ListModel | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_selection(): Bitset;
+    get_selection_in_range(position: number, n_items: number): Bitset;
+    is_selected(position: number): boolean;
+    select_all(): boolean;
+    select_item(position: number, unselect_rest: boolean): boolean;
+    select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    selection_changed(position: number, n_items: number): void;
+    set_selection(selected: Bitset, mask: Bitset): boolean;
+    unselect_all(): boolean;
+    unselect_item(position: number): boolean;
+    unselect_range(position: number, n_items: number): boolean;
+    vfunc_get_selection_in_range(position: number, n_items: number): Bitset;
+    vfunc_is_selected(position: number): boolean;
+    vfunc_select_all(): boolean;
+    vfunc_select_item(position: number, unselect_rest: boolean): boolean;
+    vfunc_select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    vfunc_set_selection(selected: Bitset, mask: Bitset): boolean;
+    vfunc_unselect_all(): boolean;
+    vfunc_unselect_item(position: number): boolean;
+    vfunc_unselect_range(position: number, n_items: number): boolean;
+}
+export module Notebook {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        enable_popup: boolean;
+        enablePopup: boolean;
+        group_name: string;
+        groupName: string;
+        page: number;
+        pages: Gio.ListModel;
+        scrollable: boolean;
+        show_border: boolean;
+        showBorder: boolean;
+        show_tabs: boolean;
+        showTabs: boolean;
+        tab_pos: PositionType;
+        tabPos: PositionType;
+    }
+}
+export class Notebook extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Notebook>;
+
+    constructor(properties?: Partial<Notebook.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Notebook.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get enable_popup(): boolean;
+    set enable_popup(val: boolean);
+    get enablePopup(): boolean;
+    set enablePopup(val: boolean);
+    get group_name(): string;
+    set group_name(val: string);
+    get groupName(): string;
+    set groupName(val: string);
+    get page(): number;
+    set page(val: number);
+    get pages(): Gio.ListModel;
+    get scrollable(): boolean;
+    set scrollable(val: boolean);
+    get show_border(): boolean;
+    set show_border(val: boolean);
+    get showBorder(): boolean;
+    set showBorder(val: boolean);
+    get show_tabs(): boolean;
+    set show_tabs(val: boolean);
+    get showTabs(): boolean;
+    set showTabs(val: boolean);
+    get tab_pos(): PositionType;
+    set tab_pos(val: PositionType);
+    get tabPos(): PositionType;
+    set tabPos(val: PositionType);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "change-current-page", callback: (_source: this, object: number) => boolean): number;
+    connect_after(signal: "change-current-page", callback: (_source: this, object: number) => boolean): 
number;
+    emit(signal: "change-current-page", object: number): void;
+    connect(signal: "create-window", callback: (_source: this, page: Widget) => Notebook | null): number;
+    connect_after(signal: "create-window", callback: (_source: this, page: Widget) => Notebook | null): 
number;
+    emit(signal: "create-window", page: Widget): void;
+    connect(signal: "focus-tab", callback: (_source: this, object: NotebookTab) => boolean): number;
+    connect_after(signal: "focus-tab", callback: (_source: this, object: NotebookTab) => boolean): number;
+    emit(signal: "focus-tab", object: NotebookTab): void;
+    connect(signal: "move-focus-out", callback: (_source: this, object: DirectionType) => void): number;
+    connect_after(signal: "move-focus-out", callback: (_source: this, object: DirectionType) => void): 
number;
+    emit(signal: "move-focus-out", object: DirectionType): void;
+    connect(signal: "page-added", callback: (_source: this, child: Widget, page_num: number) => void): 
number;
+    connect_after(signal: "page-added", callback: (_source: this, child: Widget, page_num: number) => void): 
number;
+    emit(signal: "page-added", child: Widget, page_num: number): void;
+    connect(signal: "page-removed", callback: (_source: this, child: Widget, page_num: number) => void): 
number;
+    connect_after(signal: "page-removed", callback: (_source: this, child: Widget, page_num: number) => 
void): number;
+    emit(signal: "page-removed", child: Widget, page_num: number): void;
+    connect(signal: "page-reordered", callback: (_source: this, child: Widget, page_num: number) => void): 
number;
+    connect_after(signal: "page-reordered", callback: (_source: this, child: Widget, page_num: number) => 
void): number;
+    emit(signal: "page-reordered", child: Widget, page_num: number): void;
+    connect(signal: "reorder-tab", callback: (_source: this, object: DirectionType, p0: boolean) => 
boolean): number;
+    connect_after(
+        signal: "reorder-tab",
+        callback: (_source: this, object: DirectionType, p0: boolean) => boolean
+    ): number;
+    emit(signal: "reorder-tab", object: DirectionType, p0: boolean): void;
+    connect(signal: "select-page", callback: (_source: this, object: boolean) => boolean): number;
+    connect_after(signal: "select-page", callback: (_source: this, object: boolean) => boolean): number;
+    emit(signal: "select-page", object: boolean): void;
+    connect(signal: "switch-page", callback: (_source: this, page: Widget, page_num: number) => void): 
number;
+    connect_after(signal: "switch-page", callback: (_source: this, page: Widget, page_num: number) => void): 
number;
+    emit(signal: "switch-page", page: Widget, page_num: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Notebook;
+
+    // Members
+
+    append_page(child: Widget, tab_label?: Widget | null): number;
+    append_page_menu(child: Widget, tab_label?: Widget | null, menu_label?: Widget | null): number;
+    detach_tab(child: Widget): void;
+    get_action_widget(pack_type: PackType): Widget | null;
+    get_current_page(): number;
+    get_group_name(): string | null;
+    get_menu_label(child: Widget): Widget | null;
+    get_menu_label_text(child: Widget): string | null;
+    get_n_pages(): number;
+    get_nth_page(page_num: number): Widget | null;
+    get_page(child: Widget): NotebookPage;
+    get_pages(): Gio.ListModel;
+    get_scrollable(): boolean;
+    get_show_border(): boolean;
+    get_show_tabs(): boolean;
+    get_tab_detachable(child: Widget): boolean;
+    get_tab_label(child: Widget): Widget | null;
+    get_tab_label_text(child: Widget): string | null;
+    get_tab_pos(): PositionType;
+    get_tab_reorderable(child: Widget): boolean;
+    insert_page(child: Widget, tab_label: Widget | null, position: number): number;
+    insert_page_menu(child: Widget, tab_label: Widget | null, menu_label: Widget | null, position: number): 
number;
+    next_page(): void;
+    page_num(child: Widget): number;
+    popup_disable(): void;
+    popup_enable(): void;
+    prepend_page(child: Widget, tab_label?: Widget | null): number;
+    prepend_page_menu(child: Widget, tab_label?: Widget | null, menu_label?: Widget | null): number;
+    prev_page(): void;
+    remove_page(page_num: number): void;
+    reorder_child(child: Widget, position: number): void;
+    set_action_widget(widget: Widget, pack_type: PackType): void;
+    set_current_page(page_num: number): void;
+    set_group_name(group_name?: string | null): void;
+    set_menu_label(child: Widget, menu_label?: Widget | null): void;
+    set_menu_label_text(child: Widget, menu_text: string): void;
+    set_scrollable(scrollable: boolean): void;
+    set_show_border(show_border: boolean): void;
+    set_show_tabs(show_tabs: boolean): void;
+    set_tab_detachable(child: Widget, detachable: boolean): void;
+    set_tab_label(child: Widget, tab_label?: Widget | null): void;
+    set_tab_label_text(child: Widget, tab_text: string): void;
+    set_tab_pos(pos: PositionType): void;
+    set_tab_reorderable(child: Widget, reorderable: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module NotebookPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        detachable: boolean;
+        menu: Widget;
+        menu_label: string;
+        menuLabel: string;
+        position: number;
+        reorderable: boolean;
+        tab: Widget;
+        tab_expand: boolean;
+        tabExpand: boolean;
+        tab_fill: boolean;
+        tabFill: boolean;
+        tab_label: string;
+        tabLabel: string;
+    }
+}
+export class NotebookPage extends GObject.Object {
+    static $gtype: GObject.GType<NotebookPage>;
+
+    constructor(properties?: Partial<NotebookPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NotebookPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    get detachable(): boolean;
+    set detachable(val: boolean);
+    get menu(): Widget;
+    get menu_label(): string;
+    set menu_label(val: string);
+    get menuLabel(): string;
+    set menuLabel(val: string);
+    get position(): number;
+    set position(val: number);
+    get reorderable(): boolean;
+    set reorderable(val: boolean);
+    get tab(): Widget;
+    get tab_expand(): boolean;
+    set tab_expand(val: boolean);
+    get tabExpand(): boolean;
+    set tabExpand(val: boolean);
+    get tab_fill(): boolean;
+    set tab_fill(val: boolean);
+    get tabFill(): boolean;
+    set tabFill(val: boolean);
+    get tab_label(): string;
+    set tab_label(val: string);
+    get tabLabel(): string;
+    set tabLabel(val: string);
+
+    // Members
+
+    get_child(): Widget;
+}
+export module NothingAction {
+    export interface ConstructorProperties extends ShortcutAction.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class NothingAction extends ShortcutAction {
+    static $gtype: GObject.GType<NothingAction>;
+
+    constructor(properties?: Partial<NothingAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NothingAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    static get(): NothingAction;
+}
+export module NumericSorter {
+    export interface ConstructorProperties extends Sorter.ConstructorProperties {
+        [key: string]: any;
+        expression: Expression;
+        sort_order: SortType;
+        sortOrder: SortType;
+    }
+}
+export class NumericSorter extends Sorter {
+    static $gtype: GObject.GType<NumericSorter>;
+
+    constructor(properties?: Partial<NumericSorter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<NumericSorter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get expression(): Expression;
+    set expression(val: Expression);
+    get sort_order(): SortType;
+    set sort_order(val: SortType);
+    get sortOrder(): SortType;
+    set sortOrder(val: SortType);
+
+    // Constructors
+
+    static ["new"](expression?: Expression | null): NumericSorter;
+
+    // Members
+
+    get_expression(): Expression | null;
+    get_sort_order(): SortType;
+    set_expression(expression?: Expression | null): void;
+    set_sort_order(sort_order: SortType): void;
+}
+export module ObjectExpression {
+    export interface ConstructorProperties extends Expression.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class ObjectExpression extends Expression {
+    static $gtype: GObject.GType<ObjectExpression>;
+
+    constructor(properties?: Partial<ObjectExpression.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ObjectExpression.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](object: GObject.Object): ObjectExpression;
+
+    // Members
+
+    get_object<T = GObject.Object>(): T;
+}
+export module Overlay {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+    }
+}
+export class Overlay extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Overlay>;
+
+    constructor(properties?: Partial<Overlay.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Overlay.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "get-child-position",
+        callback: (_source: this, widget: Widget, allocation: Gdk.Rectangle) => boolean
+    ): number;
+    connect_after(
+        signal: "get-child-position",
+        callback: (_source: this, widget: Widget, allocation: Gdk.Rectangle) => boolean
+    ): number;
+    emit(signal: "get-child-position", widget: Widget, allocation: Gdk.Rectangle): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Overlay;
+
+    // Members
+
+    add_overlay(widget: Widget): void;
+    get_child(): Widget | null;
+    get_clip_overlay(widget: Widget): boolean;
+    get_measure_overlay(widget: Widget): boolean;
+    remove_overlay(widget: Widget): void;
+    set_child(child?: Widget | null): void;
+    set_clip_overlay(widget: Widget, clip_overlay: boolean): void;
+    set_measure_overlay(widget: Widget, measure: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module OverlayLayout {
+    export interface ConstructorProperties extends LayoutManager.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class OverlayLayout extends LayoutManager {
+    static $gtype: GObject.GType<OverlayLayout>;
+
+    constructor(properties?: Partial<OverlayLayout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<OverlayLayout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): OverlayLayout;
+}
+export module OverlayLayoutChild {
+    export interface ConstructorProperties extends LayoutChild.ConstructorProperties {
+        [key: string]: any;
+        clip_overlay: boolean;
+        clipOverlay: boolean;
+        measure: boolean;
+    }
+}
+export class OverlayLayoutChild extends LayoutChild {
+    static $gtype: GObject.GType<OverlayLayoutChild>;
+
+    constructor(properties?: Partial<OverlayLayoutChild.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<OverlayLayoutChild.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get clip_overlay(): boolean;
+    set clip_overlay(val: boolean);
+    get clipOverlay(): boolean;
+    set clipOverlay(val: boolean);
+    get measure(): boolean;
+    set measure(val: boolean);
+
+    // Members
+
+    get_clip_overlay(): boolean;
+    get_measure(): boolean;
+    set_clip_overlay(clip_overlay: boolean): void;
+    set_measure(measure: boolean): void;
+}
+export module PadController {
+    export interface ConstructorProperties extends EventController.ConstructorProperties {
+        [key: string]: any;
+        action_group: Gio.ActionGroup;
+        actionGroup: Gio.ActionGroup;
+        pad: Gdk.Device;
+    }
+}
+export class PadController extends EventController {
+    static $gtype: GObject.GType<PadController>;
+
+    constructor(properties?: Partial<PadController.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PadController.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get action_group(): Gio.ActionGroup;
+    get actionGroup(): Gio.ActionGroup;
+    get pad(): Gdk.Device;
+
+    // Constructors
+
+    static ["new"](group: Gio.ActionGroup, pad?: Gdk.Device | null): PadController;
+
+    // Members
+
+    set_action(type: PadActionType, index: number, mode: number, label: string, action_name: string): void;
+    set_action_entries(entries: PadActionEntry[]): void;
+}
+export module PageSetup {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PageSetup extends GObject.Object {
+    static $gtype: GObject.GType<PageSetup>;
+
+    constructor(properties?: Partial<PageSetup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PageSetup.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): PageSetup;
+    static new_from_file(file_name: string): PageSetup;
+    static new_from_gvariant(variant: GLib.Variant): PageSetup;
+    static new_from_key_file(key_file: GLib.KeyFile, group_name?: string | null): PageSetup;
+
+    // Members
+
+    copy(): PageSetup;
+    get_bottom_margin(unit: Unit): number;
+    get_left_margin(unit: Unit): number;
+    get_orientation(): PageOrientation;
+    get_page_height(unit: Unit): number;
+    get_page_width(unit: Unit): number;
+    get_paper_height(unit: Unit): number;
+    get_paper_size(): PaperSize;
+    get_paper_width(unit: Unit): number;
+    get_right_margin(unit: Unit): number;
+    get_top_margin(unit: Unit): number;
+    load_file(file_name: string): boolean;
+    load_key_file(key_file: GLib.KeyFile, group_name?: string | null): boolean;
+    set_bottom_margin(margin: number, unit: Unit): void;
+    set_left_margin(margin: number, unit: Unit): void;
+    set_orientation(orientation: PageOrientation): void;
+    set_paper_size(size: PaperSize): void;
+    set_paper_size_and_default_margins(size: PaperSize): void;
+    set_right_margin(margin: number, unit: Unit): void;
+    set_top_margin(margin: number, unit: Unit): void;
+    to_file(file_name: string): boolean;
+    to_gvariant(): GLib.Variant;
+    to_key_file(key_file: GLib.KeyFile, group_name?: string | null): void;
+}
+export module PageSetupUnixDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PageSetupUnixDialog
+    extends Dialog
+    implements Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<PageSetupUnixDialog>;
+
+    constructor(properties?: Partial<PageSetupUnixDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PageSetupUnixDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](title?: string | null, parent?: Window | null): PageSetupUnixDialog;
+    // Conflicted with Gtk.Dialog.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    get_page_setup(): PageSetup;
+    get_print_settings(): PrintSettings | null;
+    set_page_setup(page_setup: PageSetup): void;
+    set_print_settings(print_settings?: PrintSettings | null): void;
+}
+export module Paned {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        end_child: Widget;
+        endChild: Widget;
+        max_position: number;
+        maxPosition: number;
+        min_position: number;
+        minPosition: number;
+        position: number;
+        position_set: boolean;
+        positionSet: boolean;
+        resize_end_child: boolean;
+        resizeEndChild: boolean;
+        resize_start_child: boolean;
+        resizeStartChild: boolean;
+        shrink_end_child: boolean;
+        shrinkEndChild: boolean;
+        shrink_start_child: boolean;
+        shrinkStartChild: boolean;
+        start_child: Widget;
+        startChild: Widget;
+        wide_handle: boolean;
+        wideHandle: boolean;
+    }
+}
+export class Paned extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Paned>;
+
+    constructor(properties?: Partial<Paned.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Paned.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get end_child(): Widget;
+    set end_child(val: Widget);
+    get endChild(): Widget;
+    set endChild(val: Widget);
+    get max_position(): number;
+    get maxPosition(): number;
+    get min_position(): number;
+    get minPosition(): number;
+    get position(): number;
+    set position(val: number);
+    get position_set(): boolean;
+    set position_set(val: boolean);
+    get positionSet(): boolean;
+    set positionSet(val: boolean);
+    get resize_end_child(): boolean;
+    set resize_end_child(val: boolean);
+    get resizeEndChild(): boolean;
+    set resizeEndChild(val: boolean);
+    get resize_start_child(): boolean;
+    set resize_start_child(val: boolean);
+    get resizeStartChild(): boolean;
+    set resizeStartChild(val: boolean);
+    get shrink_end_child(): boolean;
+    set shrink_end_child(val: boolean);
+    get shrinkEndChild(): boolean;
+    set shrinkEndChild(val: boolean);
+    get shrink_start_child(): boolean;
+    set shrink_start_child(val: boolean);
+    get shrinkStartChild(): boolean;
+    set shrinkStartChild(val: boolean);
+    get start_child(): Widget;
+    set start_child(val: Widget);
+    get startChild(): Widget;
+    set startChild(val: Widget);
+    get wide_handle(): boolean;
+    set wide_handle(val: boolean);
+    get wideHandle(): boolean;
+    set wideHandle(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "accept-position", callback: (_source: this) => boolean): number;
+    connect_after(signal: "accept-position", callback: (_source: this) => boolean): number;
+    emit(signal: "accept-position"): void;
+    connect(signal: "cancel-position", callback: (_source: this) => boolean): number;
+    connect_after(signal: "cancel-position", callback: (_source: this) => boolean): number;
+    emit(signal: "cancel-position"): void;
+    connect(signal: "cycle-child-focus", callback: (_source: this, reversed: boolean) => boolean): number;
+    connect_after(signal: "cycle-child-focus", callback: (_source: this, reversed: boolean) => boolean): 
number;
+    emit(signal: "cycle-child-focus", reversed: boolean): void;
+    connect(signal: "cycle-handle-focus", callback: (_source: this, reversed: boolean) => boolean): number;
+    connect_after(signal: "cycle-handle-focus", callback: (_source: this, reversed: boolean) => boolean): 
number;
+    emit(signal: "cycle-handle-focus", reversed: boolean): void;
+    connect(signal: "move-handle", callback: (_source: this, scroll_type: ScrollType) => boolean): number;
+    connect_after(signal: "move-handle", callback: (_source: this, scroll_type: ScrollType) => boolean): 
number;
+    emit(signal: "move-handle", scroll_type: ScrollType): void;
+    connect(signal: "toggle-handle-focus", callback: (_source: this) => boolean): number;
+    connect_after(signal: "toggle-handle-focus", callback: (_source: this) => boolean): number;
+    emit(signal: "toggle-handle-focus"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](orientation: Orientation): Paned;
+
+    // Members
+
+    get_end_child(): Widget | null;
+    get_position(): number;
+    get_resize_end_child(): boolean;
+    get_resize_start_child(): boolean;
+    get_shrink_end_child(): boolean;
+    get_shrink_start_child(): boolean;
+    get_start_child(): Widget | null;
+    get_wide_handle(): boolean;
+    set_end_child(child?: Widget | null): void;
+    set_position(position: number): void;
+    set_resize_end_child(resize: boolean): void;
+    set_resize_start_child(resize: boolean): void;
+    set_shrink_end_child(resize: boolean): void;
+    set_shrink_start_child(resize: boolean): void;
+    set_start_child(child?: Widget | null): void;
+    set_wide_handle(wide: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+
+export module PasswordEntry {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activates_default: boolean;
+        activatesDefault: boolean;
+        extra_menu: Gio.MenuModel;
+        extraMenu: Gio.MenuModel;
+        placeholder_text: string;
+        placeholderText: string;
+        show_peek_icon: boolean;
+        showPeekIcon: boolean;
+    }
+}
+export class PasswordEntry extends Widget implements Accessible, Buildable, ConstraintTarget, Editable {
+    static $gtype: GObject.GType<PasswordEntry>;
+
+    constructor(properties?: Partial<PasswordEntry.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PasswordEntry.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activates_default(): boolean;
+    set activates_default(val: boolean);
+    get activatesDefault(): boolean;
+    set activatesDefault(val: boolean);
+    get extra_menu(): Gio.MenuModel;
+    set extra_menu(val: Gio.MenuModel);
+    get extraMenu(): Gio.MenuModel;
+    set extraMenu(val: Gio.MenuModel);
+    get placeholder_text(): string;
+    set placeholder_text(val: string);
+    get placeholderText(): string;
+    set placeholderText(val: string);
+    get show_peek_icon(): boolean;
+    set show_peek_icon(val: boolean);
+    get showPeekIcon(): boolean;
+    set showPeekIcon(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](): PasswordEntry;
+
+    // Members
+
+    get_extra_menu(): Gio.MenuModel | null;
+    get_show_peek_icon(): boolean;
+    set_extra_menu(model?: Gio.MenuModel | null): void;
+    set_show_peek_icon(show_peek_icon: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module PasswordEntryBuffer {
+    export interface ConstructorProperties extends EntryBuffer.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PasswordEntryBuffer extends EntryBuffer {
+    static $gtype: GObject.GType<PasswordEntryBuffer>;
+
+    constructor(properties?: Partial<PasswordEntryBuffer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PasswordEntryBuffer.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): PasswordEntryBuffer;
+}
+export module Picture {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        alternative_text: string;
+        alternativeText: string;
+        can_shrink: boolean;
+        canShrink: boolean;
+        file: Gio.File;
+        keep_aspect_ratio: boolean;
+        keepAspectRatio: boolean;
+        paintable: Gdk.Paintable;
+    }
+}
+export class Picture extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Picture>;
+
+    constructor(properties?: Partial<Picture.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Picture.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get alternative_text(): string;
+    set alternative_text(val: string);
+    get alternativeText(): string;
+    set alternativeText(val: string);
+    get can_shrink(): boolean;
+    set can_shrink(val: boolean);
+    get canShrink(): boolean;
+    set canShrink(val: boolean);
+    get file(): Gio.File;
+    set file(val: Gio.File);
+    get keep_aspect_ratio(): boolean;
+    set keep_aspect_ratio(val: boolean);
+    get keepAspectRatio(): boolean;
+    set keepAspectRatio(val: boolean);
+    get paintable(): Gdk.Paintable;
+    set paintable(val: Gdk.Paintable);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Picture;
+    static new_for_file(file?: Gio.File | null): Picture;
+    static new_for_filename(filename?: string | null): Picture;
+    static new_for_paintable(paintable?: Gdk.Paintable | null): Picture;
+    static new_for_pixbuf(pixbuf?: GdkPixbuf.Pixbuf | null): Picture;
+    static new_for_resource(resource_path?: string | null): Picture;
+
+    // Members
+
+    get_alternative_text(): string | null;
+    get_can_shrink(): boolean;
+    get_file(): Gio.File | null;
+    get_keep_aspect_ratio(): boolean;
+    get_paintable(): Gdk.Paintable | null;
+    set_alternative_text(alternative_text?: string | null): void;
+    set_can_shrink(can_shrink: boolean): void;
+    set_file(file?: Gio.File | null): void;
+    set_filename(filename?: string | null): void;
+    set_keep_aspect_ratio(keep_aspect_ratio: boolean): void;
+    set_paintable(paintable?: Gdk.Paintable | null): void;
+    set_pixbuf(pixbuf?: GdkPixbuf.Pixbuf | null): void;
+    set_resource(resource_path?: string | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Popover {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        autohide: boolean;
+        cascade_popdown: boolean;
+        cascadePopdown: boolean;
+        child: Widget;
+        default_widget: Widget;
+        defaultWidget: Widget;
+        has_arrow: boolean;
+        hasArrow: boolean;
+        mnemonics_visible: boolean;
+        mnemonicsVisible: boolean;
+        pointing_to: Gdk.Rectangle;
+        pointingTo: Gdk.Rectangle;
+        position: PositionType;
+    }
+}
+export class Popover extends Widget implements Accessible, Buildable, ConstraintTarget, Native, 
ShortcutManager {
+    static $gtype: GObject.GType<Popover>;
+
+    constructor(properties?: Partial<Popover.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Popover.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get autohide(): boolean;
+    set autohide(val: boolean);
+    get cascade_popdown(): boolean;
+    set cascade_popdown(val: boolean);
+    get cascadePopdown(): boolean;
+    set cascadePopdown(val: boolean);
+    get child(): Widget;
+    set child(val: Widget);
+    get default_widget(): Widget;
+    set default_widget(val: Widget);
+    get defaultWidget(): Widget;
+    set defaultWidget(val: Widget);
+    get has_arrow(): boolean;
+    set has_arrow(val: boolean);
+    get hasArrow(): boolean;
+    set hasArrow(val: boolean);
+    get mnemonics_visible(): boolean;
+    set mnemonics_visible(val: boolean);
+    get mnemonicsVisible(): boolean;
+    set mnemonicsVisible(val: boolean);
+    get pointing_to(): Gdk.Rectangle;
+    set pointing_to(val: Gdk.Rectangle);
+    get pointingTo(): Gdk.Rectangle;
+    set pointingTo(val: Gdk.Rectangle);
+    get position(): PositionType;
+    set position(val: PositionType);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-default", callback: (_source: this) => void): number;
+    connect_after(signal: "activate-default", callback: (_source: this) => void): number;
+    emit(signal: "activate-default"): void;
+    connect(signal: "closed", callback: (_source: this) => void): number;
+    connect_after(signal: "closed", callback: (_source: this) => void): number;
+    emit(signal: "closed"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Popover;
+
+    // Members
+
+    get_autohide(): boolean;
+    get_cascade_popdown(): boolean;
+    get_child(): Widget | null;
+    get_has_arrow(): boolean;
+    get_mnemonics_visible(): boolean;
+    get_offset(): [number, number];
+    get_pointing_to(): [boolean, Gdk.Rectangle];
+    get_position(): PositionType;
+    popdown(): void;
+    popup(): void;
+    present(): void;
+    set_autohide(autohide: boolean): void;
+    set_cascade_popdown(cascade_popdown: boolean): void;
+    set_child(child?: Widget | null): void;
+    set_default_widget(widget?: Widget | null): void;
+    set_has_arrow(has_arrow: boolean): void;
+    set_mnemonics_visible(mnemonics_visible: boolean): void;
+    set_offset(x_offset: number, y_offset: number): void;
+    set_pointing_to(rect?: Gdk.Rectangle | null): void;
+    set_position(position: PositionType): void;
+    vfunc_activate_default(): void;
+    vfunc_closed(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module PopoverMenu {
+    export interface ConstructorProperties extends Popover.ConstructorProperties {
+        [key: string]: any;
+        menu_model: Gio.MenuModel;
+        menuModel: Gio.MenuModel;
+        visible_submenu: string;
+        visibleSubmenu: string;
+    }
+}
+export class PopoverMenu extends Popover implements Accessible, Buildable, ConstraintTarget, Native, 
ShortcutManager {
+    static $gtype: GObject.GType<PopoverMenu>;
+
+    constructor(properties?: Partial<PopoverMenu.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PopoverMenu.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get menu_model(): Gio.MenuModel;
+    set menu_model(val: Gio.MenuModel);
+    get menuModel(): Gio.MenuModel;
+    set menuModel(val: Gio.MenuModel);
+    get visible_submenu(): string;
+    set visible_submenu(val: string);
+    get visibleSubmenu(): string;
+    set visibleSubmenu(val: string);
+
+    // Constructors
+
+    static new_from_model(model?: Gio.MenuModel | null): PopoverMenu;
+    static new_from_model_full(model: Gio.MenuModel, flags: PopoverMenuFlags): PopoverMenu;
+
+    // Members
+
+    add_child(child: Widget, id: string): boolean;
+    get_menu_model(): Gio.MenuModel | null;
+    remove_child(child: Widget): boolean;
+    set_menu_model(model?: Gio.MenuModel | null): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module PopoverMenuBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        menu_model: Gio.MenuModel;
+        menuModel: Gio.MenuModel;
+    }
+}
+export class PopoverMenuBar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<PopoverMenuBar>;
+
+    constructor(properties?: Partial<PopoverMenuBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PopoverMenuBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get menu_model(): Gio.MenuModel;
+    set menu_model(val: Gio.MenuModel);
+    get menuModel(): Gio.MenuModel;
+    set menuModel(val: Gio.MenuModel);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static new_from_model(model?: Gio.MenuModel | null): PopoverMenuBar;
+
+    // Members
+
+    add_child(child: Widget, id: string): boolean;
+    get_menu_model(): Gio.MenuModel | null;
+    remove_child(child: Widget): boolean;
+    set_menu_model(model?: Gio.MenuModel | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module PrintContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PrintContext extends GObject.Object {
+    static $gtype: GObject.GType<PrintContext>;
+
+    constructor(properties?: Partial<PrintContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PrintContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    create_pango_context(): Pango.Context;
+    create_pango_layout(): Pango.Layout;
+    get_cairo_context(): cairo.Context;
+    get_dpi_x(): number;
+    get_dpi_y(): number;
+    get_hard_margins(): [boolean, number, number, number, number];
+    get_height(): number;
+    get_page_setup(): PageSetup;
+    get_pango_fontmap(): Pango.FontMap;
+    get_width(): number;
+    set_cairo_context(cr: cairo.Context, dpi_x: number, dpi_y: number): void;
+}
+export module PrintJob {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        page_setup: PageSetup;
+        pageSetup: PageSetup;
+        printer: Printer;
+        settings: PrintSettings;
+        title: string;
+        track_print_status: boolean;
+        trackPrintStatus: boolean;
+    }
+}
+export class PrintJob extends GObject.Object {
+    static $gtype: GObject.GType<PrintJob>;
+
+    constructor(properties?: Partial<PrintJob.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PrintJob.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get page_setup(): PageSetup;
+    get pageSetup(): PageSetup;
+    get printer(): Printer;
+    get settings(): PrintSettings;
+    get title(): string;
+    get track_print_status(): boolean;
+    set track_print_status(val: boolean);
+    get trackPrintStatus(): boolean;
+    set trackPrintStatus(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "status-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "status-changed", callback: (_source: this) => void): number;
+    emit(signal: "status-changed"): void;
+
+    // Constructors
+
+    static ["new"](title: string, printer: Printer, settings: PrintSettings, page_setup: PageSetup): 
PrintJob;
+
+    // Members
+
+    get_collate(): boolean;
+    get_n_up(): number;
+    get_n_up_layout(): NumberUpLayout;
+    get_num_copies(): number;
+    get_page_ranges(): PageRange[];
+    get_page_set(): PageSet;
+    get_pages(): PrintPages;
+    get_printer(): Printer;
+    get_reverse(): boolean;
+    get_rotate(): boolean;
+    get_scale(): number;
+    get_settings(): PrintSettings;
+    get_status(): PrintStatus;
+    get_surface(): cairo.Surface;
+    get_title(): string;
+    get_track_print_status(): boolean;
+    send(callback: PrintJobCompleteFunc): void;
+    set_collate(collate: boolean): void;
+    set_n_up(n_up: number): void;
+    set_n_up_layout(layout: NumberUpLayout): void;
+    set_num_copies(num_copies: number): void;
+    set_page_ranges(ranges: PageRange[]): void;
+    set_page_set(page_set: PageSet): void;
+    set_pages(pages: PrintPages): void;
+    set_reverse(reverse: boolean): void;
+    set_rotate(rotate: boolean): void;
+    set_scale(scale: number): void;
+    set_source_fd(fd: number): boolean;
+    set_source_file(filename: string): boolean;
+    set_track_print_status(track_status: boolean): void;
+}
+export module PrintOperation {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        allow_async: boolean;
+        allowAsync: boolean;
+        current_page: number;
+        currentPage: number;
+        custom_tab_label: string;
+        customTabLabel: string;
+        default_page_setup: PageSetup;
+        defaultPageSetup: PageSetup;
+        embed_page_setup: boolean;
+        embedPageSetup: boolean;
+        export_filename: string;
+        exportFilename: string;
+        has_selection: boolean;
+        hasSelection: boolean;
+        job_name: string;
+        jobName: string;
+        n_pages: number;
+        nPages: number;
+        n_pages_to_print: number;
+        nPagesToPrint: number;
+        print_settings: PrintSettings;
+        printSettings: PrintSettings;
+        show_progress: boolean;
+        showProgress: boolean;
+        status: PrintStatus;
+        status_string: string;
+        statusString: string;
+        support_selection: boolean;
+        supportSelection: boolean;
+        track_print_status: boolean;
+        trackPrintStatus: boolean;
+        unit: Unit;
+        use_full_page: boolean;
+        useFullPage: boolean;
+    }
+}
+export class PrintOperation extends GObject.Object implements PrintOperationPreview {
+    static $gtype: GObject.GType<PrintOperation>;
+
+    constructor(properties?: Partial<PrintOperation.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PrintOperation.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get allow_async(): boolean;
+    set allow_async(val: boolean);
+    get allowAsync(): boolean;
+    set allowAsync(val: boolean);
+    get current_page(): number;
+    set current_page(val: number);
+    get currentPage(): number;
+    set currentPage(val: number);
+    get custom_tab_label(): string;
+    set custom_tab_label(val: string);
+    get customTabLabel(): string;
+    set customTabLabel(val: string);
+    get default_page_setup(): PageSetup;
+    set default_page_setup(val: PageSetup);
+    get defaultPageSetup(): PageSetup;
+    set defaultPageSetup(val: PageSetup);
+    get embed_page_setup(): boolean;
+    set embed_page_setup(val: boolean);
+    get embedPageSetup(): boolean;
+    set embedPageSetup(val: boolean);
+    get export_filename(): string;
+    set export_filename(val: string);
+    get exportFilename(): string;
+    set exportFilename(val: string);
+    get has_selection(): boolean;
+    set has_selection(val: boolean);
+    get hasSelection(): boolean;
+    set hasSelection(val: boolean);
+    get job_name(): string;
+    set job_name(val: string);
+    get jobName(): string;
+    set jobName(val: string);
+    get n_pages(): number;
+    set n_pages(val: number);
+    get nPages(): number;
+    set nPages(val: number);
+    get n_pages_to_print(): number;
+    get nPagesToPrint(): number;
+    get print_settings(): PrintSettings;
+    set print_settings(val: PrintSettings);
+    get printSettings(): PrintSettings;
+    set printSettings(val: PrintSettings);
+    get show_progress(): boolean;
+    set show_progress(val: boolean);
+    get showProgress(): boolean;
+    set showProgress(val: boolean);
+    get status(): PrintStatus;
+    get status_string(): string;
+    get statusString(): string;
+    get support_selection(): boolean;
+    set support_selection(val: boolean);
+    get supportSelection(): boolean;
+    set supportSelection(val: boolean);
+    get track_print_status(): boolean;
+    set track_print_status(val: boolean);
+    get trackPrintStatus(): boolean;
+    set trackPrintStatus(val: boolean);
+    get unit(): Unit;
+    set unit(val: Unit);
+    get use_full_page(): boolean;
+    set use_full_page(val: boolean);
+    get useFullPage(): boolean;
+    set useFullPage(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "begin-print", callback: (_source: this, context: PrintContext) => void): number;
+    connect_after(signal: "begin-print", callback: (_source: this, context: PrintContext) => void): number;
+    emit(signal: "begin-print", context: PrintContext): void;
+    connect(signal: "create-custom-widget", callback: (_source: this) => GObject.Object | null): number;
+    connect_after(signal: "create-custom-widget", callback: (_source: this) => GObject.Object | null): 
number;
+    emit(signal: "create-custom-widget"): void;
+    connect(signal: "custom-widget-apply", callback: (_source: this, widget: Widget) => void): number;
+    connect_after(signal: "custom-widget-apply", callback: (_source: this, widget: Widget) => void): number;
+    emit(signal: "custom-widget-apply", widget: Widget): void;
+    connect(signal: "done", callback: (_source: this, result: PrintOperationResult) => void): number;
+    connect_after(signal: "done", callback: (_source: this, result: PrintOperationResult) => void): number;
+    emit(signal: "done", result: PrintOperationResult): void;
+    connect(signal: "draw-page", callback: (_source: this, context: PrintContext, page_nr: number) => void): 
number;
+    connect_after(
+        signal: "draw-page",
+        callback: (_source: this, context: PrintContext, page_nr: number) => void
+    ): number;
+    emit(signal: "draw-page", context: PrintContext, page_nr: number): void;
+    connect(signal: "end-print", callback: (_source: this, context: PrintContext) => void): number;
+    connect_after(signal: "end-print", callback: (_source: this, context: PrintContext) => void): number;
+    emit(signal: "end-print", context: PrintContext): void;
+    connect(signal: "paginate", callback: (_source: this, context: PrintContext) => boolean): number;
+    connect_after(signal: "paginate", callback: (_source: this, context: PrintContext) => boolean): number;
+    emit(signal: "paginate", context: PrintContext): void;
+    connect(
+        signal: "preview",
+        callback: (
+            _source: this,
+            preview: PrintOperationPreview,
+            context: PrintContext,
+            parent: Window | null
+        ) => boolean
+    ): number;
+    connect_after(
+        signal: "preview",
+        callback: (
+            _source: this,
+            preview: PrintOperationPreview,
+            context: PrintContext,
+            parent: Window | null
+        ) => boolean
+    ): number;
+    emit(signal: "preview", preview: PrintOperationPreview, context: PrintContext, parent: Window | null): 
void;
+    connect(
+        signal: "request-page-setup",
+        callback: (_source: this, context: PrintContext, page_nr: number, setup: PageSetup) => void
+    ): number;
+    connect_after(
+        signal: "request-page-setup",
+        callback: (_source: this, context: PrintContext, page_nr: number, setup: PageSetup) => void
+    ): number;
+    emit(signal: "request-page-setup", context: PrintContext, page_nr: number, setup: PageSetup): void;
+    connect(signal: "status-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "status-changed", callback: (_source: this) => void): number;
+    emit(signal: "status-changed"): void;
+    connect(
+        signal: "update-custom-widget",
+        callback: (_source: this, widget: Widget, setup: PageSetup, settings: PrintSettings) => void
+    ): number;
+    connect_after(
+        signal: "update-custom-widget",
+        callback: (_source: this, widget: Widget, setup: PageSetup, settings: PrintSettings) => void
+    ): number;
+    emit(signal: "update-custom-widget", widget: Widget, setup: PageSetup, settings: PrintSettings): void;
+
+    // Constructors
+
+    static ["new"](): PrintOperation;
+
+    // Members
+
+    cancel(): void;
+    draw_page_finish(): void;
+    get_default_page_setup(): PageSetup;
+    get_embed_page_setup(): boolean;
+    get_error(): void;
+    get_has_selection(): boolean;
+    get_n_pages_to_print(): number;
+    get_print_settings(): PrintSettings | null;
+    get_status(): PrintStatus;
+    get_status_string(): string;
+    get_support_selection(): boolean;
+    is_finished(): boolean;
+    run(action: PrintOperationAction, parent?: Window | null): PrintOperationResult;
+    set_allow_async(allow_async: boolean): void;
+    set_current_page(current_page: number): void;
+    set_custom_tab_label(label?: string | null): void;
+    set_default_page_setup(default_page_setup?: PageSetup | null): void;
+    set_defer_drawing(): void;
+    set_embed_page_setup(embed: boolean): void;
+    set_export_filename(filename: string): void;
+    set_has_selection(has_selection: boolean): void;
+    set_job_name(job_name: string): void;
+    set_n_pages(n_pages: number): void;
+    set_print_settings(print_settings?: PrintSettings | null): void;
+    set_show_progress(show_progress: boolean): void;
+    set_support_selection(support_selection: boolean): void;
+    set_track_print_status(track_status: boolean): void;
+    set_unit(unit: Unit): void;
+    set_use_full_page(full_page: boolean): void;
+    vfunc_begin_print(context: PrintContext): void;
+    vfunc_custom_widget_apply(widget: Widget): void;
+    vfunc_done(result: PrintOperationResult): void;
+    vfunc_draw_page(context: PrintContext, page_nr: number): void;
+    vfunc_end_print(context: PrintContext): void;
+    vfunc_paginate(context: PrintContext): boolean;
+    vfunc_preview(preview: PrintOperationPreview, context: PrintContext, parent: Window): boolean;
+    vfunc_request_page_setup(context: PrintContext, page_nr: number, setup: PageSetup): void;
+    vfunc_status_changed(): void;
+    vfunc_update_custom_widget(widget: Widget, setup: PageSetup, settings: PrintSettings): void;
+
+    // Implemented Members
+
+    end_preview(): void;
+    is_selected(page_nr: number): boolean;
+    render_page(page_nr: number): void;
+    vfunc_end_preview(): void;
+    vfunc_got_page_size(context: PrintContext, page_setup: PageSetup): void;
+    vfunc_is_selected(page_nr: number): boolean;
+    vfunc_ready(context: PrintContext): void;
+    vfunc_render_page(page_nr: number): void;
+}
+export module PrintSettings {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PrintSettings extends GObject.Object {
+    static $gtype: GObject.GType<PrintSettings>;
+
+    constructor(properties?: Partial<PrintSettings.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PrintSettings.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): PrintSettings;
+    static new_from_file(file_name: string): PrintSettings;
+    static new_from_gvariant(variant: GLib.Variant): PrintSettings;
+    static new_from_key_file(key_file: GLib.KeyFile, group_name?: string | null): PrintSettings;
+
+    // Members
+
+    copy(): PrintSettings;
+    foreach(func: PrintSettingsFunc): void;
+    get(key: string): string | null;
+    get_bool(key: string): boolean;
+    get_collate(): boolean;
+    get_default_source(): string | null;
+    get_dither(): string | null;
+    get_double(key: string): number;
+    get_double_with_default(key: string, def: number): number;
+    get_duplex(): PrintDuplex;
+    get_finishings(): string | null;
+    get_int(key: string): number;
+    get_int_with_default(key: string, def: number): number;
+    get_length(key: string, unit: Unit): number;
+    get_media_type(): string | null;
+    get_n_copies(): number;
+    get_number_up(): number;
+    get_number_up_layout(): NumberUpLayout;
+    get_orientation(): PageOrientation;
+    get_output_bin(): string | null;
+    get_page_ranges(): PageRange[];
+    get_page_set(): PageSet;
+    get_paper_height(unit: Unit): number;
+    get_paper_size(): PaperSize | null;
+    get_paper_width(unit: Unit): number;
+    get_print_pages(): PrintPages;
+    get_printer(): string | null;
+    get_printer_lpi(): number;
+    get_quality(): PrintQuality;
+    get_resolution(): number;
+    get_resolution_x(): number;
+    get_resolution_y(): number;
+    get_reverse(): boolean;
+    get_scale(): number;
+    get_use_color(): boolean;
+    has_key(key: string): boolean;
+    load_file(file_name: string): boolean;
+    load_key_file(key_file: GLib.KeyFile, group_name?: string | null): boolean;
+    set(key: string, value?: string | null): void;
+    // Conflicted with GObject.Object.set
+    set(...args: never[]): any;
+    set_bool(key: string, value: boolean): void;
+    set_collate(collate: boolean): void;
+    set_default_source(default_source: string): void;
+    set_dither(dither: string): void;
+    set_double(key: string, value: number): void;
+    set_duplex(duplex: PrintDuplex): void;
+    set_finishings(finishings: string): void;
+    set_int(key: string, value: number): void;
+    set_length(key: string, value: number, unit: Unit): void;
+    set_media_type(media_type: string): void;
+    set_n_copies(num_copies: number): void;
+    set_number_up(number_up: number): void;
+    set_number_up_layout(number_up_layout: NumberUpLayout): void;
+    set_orientation(orientation: PageOrientation): void;
+    set_output_bin(output_bin: string): void;
+    set_page_ranges(page_ranges: PageRange[]): void;
+    set_page_set(page_set: PageSet): void;
+    set_paper_height(height: number, unit: Unit): void;
+    set_paper_size(paper_size: PaperSize): void;
+    set_paper_width(width: number, unit: Unit): void;
+    set_print_pages(pages: PrintPages): void;
+    set_printer(printer: string): void;
+    set_printer_lpi(lpi: number): void;
+    set_quality(quality: PrintQuality): void;
+    set_resolution(resolution: number): void;
+    set_resolution_xy(resolution_x: number, resolution_y: number): void;
+    set_reverse(reverse: boolean): void;
+    set_scale(scale: number): void;
+    set_use_color(use_color: boolean): void;
+    to_file(file_name: string): boolean;
+    to_gvariant(): GLib.Variant;
+    to_key_file(key_file: GLib.KeyFile, group_name?: string | null): void;
+    unset(key: string): void;
+}
+export module PrintUnixDialog {
+    export interface ConstructorProperties extends Dialog.ConstructorProperties {
+        [key: string]: any;
+        current_page: number;
+        currentPage: number;
+        embed_page_setup: boolean;
+        embedPageSetup: boolean;
+        has_selection: boolean;
+        hasSelection: boolean;
+        manual_capabilities: PrintCapabilities;
+        manualCapabilities: PrintCapabilities;
+        page_setup: PageSetup;
+        pageSetup: PageSetup;
+        print_settings: PrintSettings;
+        printSettings: PrintSettings;
+        selected_printer: Printer;
+        selectedPrinter: Printer;
+        support_selection: boolean;
+        supportSelection: boolean;
+    }
+}
+export class PrintUnixDialog
+    extends Dialog
+    implements Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<PrintUnixDialog>;
+
+    constructor(properties?: Partial<PrintUnixDialog.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PrintUnixDialog.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get current_page(): number;
+    set current_page(val: number);
+    get currentPage(): number;
+    set currentPage(val: number);
+    get embed_page_setup(): boolean;
+    set embed_page_setup(val: boolean);
+    get embedPageSetup(): boolean;
+    set embedPageSetup(val: boolean);
+    get has_selection(): boolean;
+    set has_selection(val: boolean);
+    get hasSelection(): boolean;
+    set hasSelection(val: boolean);
+    get manual_capabilities(): PrintCapabilities;
+    set manual_capabilities(val: PrintCapabilities);
+    get manualCapabilities(): PrintCapabilities;
+    set manualCapabilities(val: PrintCapabilities);
+    get page_setup(): PageSetup;
+    set page_setup(val: PageSetup);
+    get pageSetup(): PageSetup;
+    set pageSetup(val: PageSetup);
+    get print_settings(): PrintSettings;
+    set print_settings(val: PrintSettings);
+    get printSettings(): PrintSettings;
+    set printSettings(val: PrintSettings);
+    get selected_printer(): Printer;
+    get selectedPrinter(): Printer;
+    get support_selection(): boolean;
+    set support_selection(val: boolean);
+    get supportSelection(): boolean;
+    set supportSelection(val: boolean);
+
+    // Constructors
+
+    static ["new"](title?: string | null, parent?: Window | null): PrintUnixDialog;
+    // Conflicted with Gtk.Dialog.new
+    static ["new"](...args: never[]): any;
+
+    // Members
+
+    add_custom_tab(child: Widget, tab_label: Widget): void;
+    get_current_page(): number;
+    get_embed_page_setup(): boolean;
+    get_has_selection(): boolean;
+    get_manual_capabilities(): PrintCapabilities;
+    get_page_setup(): PageSetup;
+    get_page_setup_set(): boolean;
+    get_selected_printer(): Printer | null;
+    get_settings(): PrintSettings;
+    // Conflicted with Gtk.Widget.get_settings
+    get_settings(...args: never[]): any;
+    get_support_selection(): boolean;
+    set_current_page(current_page: number): void;
+    set_embed_page_setup(embed: boolean): void;
+    set_has_selection(has_selection: boolean): void;
+    set_manual_capabilities(capabilities: PrintCapabilities): void;
+    set_page_setup(page_setup: PageSetup): void;
+    set_settings(settings?: PrintSettings | null): void;
+    set_support_selection(support_selection: boolean): void;
+}
+export module Printer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        accepting_jobs: boolean;
+        acceptingJobs: boolean;
+        accepts_pdf: boolean;
+        acceptsPdf: boolean;
+        accepts_ps: boolean;
+        acceptsPs: boolean;
+        icon_name: string;
+        iconName: string;
+        is_virtual: boolean;
+        isVirtual: boolean;
+        job_count: number;
+        jobCount: number;
+        location: string;
+        name: string;
+        paused: boolean;
+        state_message: string;
+        stateMessage: string;
+    }
+}
+export class Printer extends GObject.Object {
+    static $gtype: GObject.GType<Printer>;
+
+    constructor(properties?: Partial<Printer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Printer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accepting_jobs(): boolean;
+    get acceptingJobs(): boolean;
+    get accepts_pdf(): boolean;
+    get acceptsPdf(): boolean;
+    get accepts_ps(): boolean;
+    get acceptsPs(): boolean;
+    get icon_name(): string;
+    get iconName(): string;
+    get is_virtual(): boolean;
+    get isVirtual(): boolean;
+    get job_count(): number;
+    get jobCount(): number;
+    get location(): string;
+    get name(): string;
+    get paused(): boolean;
+    get state_message(): string;
+    get stateMessage(): string;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "details-acquired", callback: (_source: this, success: boolean) => void): number;
+    connect_after(signal: "details-acquired", callback: (_source: this, success: boolean) => void): number;
+    emit(signal: "details-acquired", success: boolean): void;
+
+    // Constructors
+
+    static ["new"](name: string, backend: PrintBackend, virtual_: boolean): Printer;
+
+    // Members
+
+    compare(b: Printer): number;
+    get_backend(): PrintBackend;
+    get_capabilities(): PrintCapabilities;
+    get_default_page_size(): PageSetup;
+    get_description(): string;
+    get_hard_margins(): [boolean, number, number, number, number];
+    get_hard_margins_for_paper_size(paper_size: PaperSize): [boolean, number, number, number, number];
+    get_icon_name(): string;
+    get_job_count(): number;
+    get_location(): string;
+    get_name(): string;
+    get_state_message(): string;
+    has_details(): boolean;
+    is_accepting_jobs(): boolean;
+    is_active(): boolean;
+    is_default(): boolean;
+    is_paused(): boolean;
+    list_papers(): PageSetup[];
+    request_details(): void;
+}
+export module ProgressBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        ellipsize: Pango.EllipsizeMode;
+        fraction: number;
+        inverted: boolean;
+        pulse_step: number;
+        pulseStep: number;
+        show_text: boolean;
+        showText: boolean;
+        text: string;
+    }
+}
+export class ProgressBar extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<ProgressBar>;
+
+    constructor(properties?: Partial<ProgressBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ProgressBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get ellipsize(): Pango.EllipsizeMode;
+    set ellipsize(val: Pango.EllipsizeMode);
+    get fraction(): number;
+    set fraction(val: number);
+    get inverted(): boolean;
+    set inverted(val: boolean);
+    get pulse_step(): number;
+    set pulse_step(val: number);
+    get pulseStep(): number;
+    set pulseStep(val: number);
+    get show_text(): boolean;
+    set show_text(val: boolean);
+    get showText(): boolean;
+    set showText(val: boolean);
+    get text(): string;
+    set text(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): ProgressBar;
+
+    // Members
+
+    get_ellipsize(): Pango.EllipsizeMode;
+    get_fraction(): number;
+    get_inverted(): boolean;
+    get_pulse_step(): number;
+    get_show_text(): boolean;
+    get_text(): string | null;
+    pulse(): void;
+    set_ellipsize(mode: Pango.EllipsizeMode): void;
+    set_fraction(fraction: number): void;
+    set_inverted(inverted: boolean): void;
+    set_pulse_step(fraction: number): void;
+    set_show_text(show_text: boolean): void;
+    set_text(text?: string | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module PropertyExpression {
+    export interface ConstructorProperties extends Expression.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class PropertyExpression extends Expression {
+    static $gtype: GObject.GType<PropertyExpression>;
+
+    constructor(properties?: Partial<PropertyExpression.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<PropertyExpression.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](this_type: GObject.GType, expression: Expression | null, property_name: string): 
PropertyExpression;
+    static new_for_pspec(expression: Expression | null, pspec: GObject.ParamSpec): PropertyExpression;
+
+    // Members
+
+    get_expression(): Expression | null;
+    get_pspec(): GObject.ParamSpec;
+}
+export module Range {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        adjustment: Adjustment;
+        fill_level: number;
+        fillLevel: number;
+        inverted: boolean;
+        restrict_to_fill_level: boolean;
+        restrictToFillLevel: boolean;
+        round_digits: number;
+        roundDigits: number;
+        show_fill_level: boolean;
+        showFillLevel: boolean;
+    }
+}
+export class Range extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Range>;
+
+    constructor(properties?: Partial<Range.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Range.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get adjustment(): Adjustment;
+    set adjustment(val: Adjustment);
+    get fill_level(): number;
+    set fill_level(val: number);
+    get fillLevel(): number;
+    set fillLevel(val: number);
+    get inverted(): boolean;
+    set inverted(val: boolean);
+    get restrict_to_fill_level(): boolean;
+    set restrict_to_fill_level(val: boolean);
+    get restrictToFillLevel(): boolean;
+    set restrictToFillLevel(val: boolean);
+    get round_digits(): number;
+    set round_digits(val: number);
+    get roundDigits(): number;
+    set roundDigits(val: number);
+    get show_fill_level(): boolean;
+    set show_fill_level(val: boolean);
+    get showFillLevel(): boolean;
+    set showFillLevel(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "adjust-bounds", callback: (_source: this, value: number) => void): number;
+    connect_after(signal: "adjust-bounds", callback: (_source: this, value: number) => void): number;
+    emit(signal: "adjust-bounds", value: number): void;
+    connect(signal: "change-value", callback: (_source: this, scroll: ScrollType, value: number) => 
boolean): number;
+    connect_after(
+        signal: "change-value",
+        callback: (_source: this, scroll: ScrollType, value: number) => boolean
+    ): number;
+    emit(signal: "change-value", scroll: ScrollType, value: number): void;
+    connect(signal: "move-slider", callback: (_source: this, step: ScrollType) => void): number;
+    connect_after(signal: "move-slider", callback: (_source: this, step: ScrollType) => void): number;
+    emit(signal: "move-slider", step: ScrollType): void;
+    connect(signal: "value-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "value-changed", callback: (_source: this) => void): number;
+    emit(signal: "value-changed"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Members
+
+    get_adjustment(): Adjustment;
+    get_fill_level(): number;
+    get_flippable(): boolean;
+    get_inverted(): boolean;
+    get_range_rect(): Gdk.Rectangle;
+    get_restrict_to_fill_level(): boolean;
+    get_round_digits(): number;
+    get_show_fill_level(): boolean;
+    get_slider_range(): [number, number];
+    get_slider_size_fixed(): boolean;
+    get_value(): number;
+    set_adjustment(adjustment: Adjustment): void;
+    set_fill_level(fill_level: number): void;
+    set_flippable(flippable: boolean): void;
+    set_increments(step: number, page: number): void;
+    set_inverted(setting: boolean): void;
+    set_range(min: number, max: number): void;
+    set_restrict_to_fill_level(restrict_to_fill_level: boolean): void;
+    set_round_digits(round_digits: number): void;
+    set_show_fill_level(show_fill_level: boolean): void;
+    set_slider_size_fixed(size_fixed: boolean): void;
+    set_value(value: number): void;
+    vfunc_adjust_bounds(new_value: number): void;
+    vfunc_change_value(scroll: ScrollType, new_value: number): boolean;
+    vfunc_get_range_border(border_: Border): void;
+    vfunc_move_slider(scroll: ScrollType): void;
+    vfunc_value_changed(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module RecentManager {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        filename: string;
+        size: number;
+    }
+}
+export class RecentManager extends GObject.Object {
+    static $gtype: GObject.GType<RecentManager>;
+
+    constructor(properties?: Partial<RecentManager.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<RecentManager.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get filename(): string;
+    get size(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+
+    // Constructors
+
+    static ["new"](): RecentManager;
+
+    // Members
+
+    add_full(uri: string, recent_data: RecentData): boolean;
+    add_item(uri: string): boolean;
+    get_items(): RecentInfo[];
+    has_item(uri: string): boolean;
+    lookup_item(uri: string): RecentInfo | null;
+    move_item(uri: string, new_uri?: string | null): boolean;
+    purge_items(): number;
+    remove_item(uri: string): boolean;
+    vfunc_changed(): void;
+    static get_default(): RecentManager;
+}
+export module Revealer {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        child_revealed: boolean;
+        childRevealed: boolean;
+        reveal_child: boolean;
+        revealChild: boolean;
+        transition_duration: number;
+        transitionDuration: number;
+        transition_type: RevealerTransitionType;
+        transitionType: RevealerTransitionType;
+    }
+}
+export class Revealer extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Revealer>;
+
+    constructor(properties?: Partial<Revealer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Revealer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get child_revealed(): boolean;
+    get childRevealed(): boolean;
+    get reveal_child(): boolean;
+    set reveal_child(val: boolean);
+    get revealChild(): boolean;
+    set revealChild(val: boolean);
+    get transition_duration(): number;
+    set transition_duration(val: number);
+    get transitionDuration(): number;
+    set transitionDuration(val: number);
+    get transition_type(): RevealerTransitionType;
+    set transition_type(val: RevealerTransitionType);
+    get transitionType(): RevealerTransitionType;
+    set transitionType(val: RevealerTransitionType);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Revealer;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_child_revealed(): boolean;
+    get_reveal_child(): boolean;
+    get_transition_duration(): number;
+    get_transition_type(): RevealerTransitionType;
+    set_child(child?: Widget | null): void;
+    set_reveal_child(reveal_child: boolean): void;
+    set_transition_duration(duration: number): void;
+    set_transition_type(transition: RevealerTransitionType): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Scale {
+    export interface ConstructorProperties extends Range.ConstructorProperties {
+        [key: string]: any;
+        digits: number;
+        draw_value: boolean;
+        drawValue: boolean;
+        has_origin: boolean;
+        hasOrigin: boolean;
+        value_pos: PositionType;
+        valuePos: PositionType;
+    }
+}
+export class Scale extends Range implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Scale>;
+
+    constructor(properties?: Partial<Scale.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Scale.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get digits(): number;
+    set digits(val: number);
+    get draw_value(): boolean;
+    set draw_value(val: boolean);
+    get drawValue(): boolean;
+    set drawValue(val: boolean);
+    get has_origin(): boolean;
+    set has_origin(val: boolean);
+    get hasOrigin(): boolean;
+    set hasOrigin(val: boolean);
+    get value_pos(): PositionType;
+    set value_pos(val: PositionType);
+    get valuePos(): PositionType;
+    set valuePos(val: PositionType);
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](orientation: Orientation, adjustment?: Adjustment | null): Scale;
+    static new_with_range(orientation: Orientation, min: number, max: number, step: number): Scale;
+
+    // Members
+
+    add_mark(value: number, position: PositionType, markup?: string | null): void;
+    clear_marks(): void;
+    get_digits(): number;
+    get_draw_value(): boolean;
+    get_has_origin(): boolean;
+    get_layout(): Pango.Layout | null;
+    get_layout_offsets(): [number, number];
+    get_value_pos(): PositionType;
+    set_digits(digits: number): void;
+    set_draw_value(draw_value: boolean): void;
+    set_format_value_func(func?: ScaleFormatValueFunc | null, destroy_notify?: GLib.DestroyNotify | null): 
void;
+    set_has_origin(has_origin: boolean): void;
+    set_value_pos(pos: PositionType): void;
+    vfunc_get_layout_offsets(): [number, number];
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module ScaleButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        adjustment: Adjustment;
+        icons: string[];
+        value: number;
+    }
+}
+export class ScaleButton extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<ScaleButton>;
+
+    constructor(properties?: Partial<ScaleButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ScaleButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get adjustment(): Adjustment;
+    set adjustment(val: Adjustment);
+    get icons(): string[];
+    set icons(val: string[]);
+    get value(): number;
+    set value(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "popdown", callback: (_source: this) => void): number;
+    connect_after(signal: "popdown", callback: (_source: this) => void): number;
+    emit(signal: "popdown"): void;
+    connect(signal: "popup", callback: (_source: this) => void): number;
+    connect_after(signal: "popup", callback: (_source: this) => void): number;
+    emit(signal: "popup"): void;
+    connect(signal: "value-changed", callback: (_source: this, value: number) => void): number;
+    connect_after(signal: "value-changed", callback: (_source: this, value: number) => void): number;
+    emit(signal: "value-changed", value: number): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](min: number, max: number, step: number, icons?: string[] | null): ScaleButton;
+
+    // Members
+
+    get_adjustment(): Adjustment;
+    get_minus_button(): Button;
+    get_plus_button(): Button;
+    get_popup(): Widget;
+    get_value(): number;
+    set_adjustment(adjustment: Adjustment): void;
+    set_icons(icons: string[]): void;
+    set_value(value: number): void;
+    vfunc_value_changed(value: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module Scrollbar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        adjustment: Adjustment;
+    }
+}
+export class Scrollbar extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Scrollbar>;
+
+    constructor(properties?: Partial<Scrollbar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Scrollbar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get adjustment(): Adjustment;
+    set adjustment(val: Adjustment);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](orientation: Orientation, adjustment?: Adjustment | null): Scrollbar;
+
+    // Members
+
+    get_adjustment(): Adjustment;
+    set_adjustment(adjustment?: Adjustment | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module ScrolledWindow {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        hadjustment: Adjustment;
+        has_frame: boolean;
+        hasFrame: boolean;
+        hscrollbar_policy: PolicyType;
+        hscrollbarPolicy: PolicyType;
+        kinetic_scrolling: boolean;
+        kineticScrolling: boolean;
+        max_content_height: number;
+        maxContentHeight: number;
+        max_content_width: number;
+        maxContentWidth: number;
+        min_content_height: number;
+        minContentHeight: number;
+        min_content_width: number;
+        minContentWidth: number;
+        overlay_scrolling: boolean;
+        overlayScrolling: boolean;
+        propagate_natural_height: boolean;
+        propagateNaturalHeight: boolean;
+        propagate_natural_width: boolean;
+        propagateNaturalWidth: boolean;
+        vadjustment: Adjustment;
+        vscrollbar_policy: PolicyType;
+        vscrollbarPolicy: PolicyType;
+        window_placement: CornerType;
+        windowPlacement: CornerType;
+    }
+}
+export class ScrolledWindow extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ScrolledWindow>;
+
+    constructor(properties?: Partial<ScrolledWindow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ScrolledWindow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get has_frame(): boolean;
+    set has_frame(val: boolean);
+    get hasFrame(): boolean;
+    set hasFrame(val: boolean);
+    get hscrollbar_policy(): PolicyType;
+    set hscrollbar_policy(val: PolicyType);
+    get hscrollbarPolicy(): PolicyType;
+    set hscrollbarPolicy(val: PolicyType);
+    get kinetic_scrolling(): boolean;
+    set kinetic_scrolling(val: boolean);
+    get kineticScrolling(): boolean;
+    set kineticScrolling(val: boolean);
+    get max_content_height(): number;
+    set max_content_height(val: number);
+    get maxContentHeight(): number;
+    set maxContentHeight(val: number);
+    get max_content_width(): number;
+    set max_content_width(val: number);
+    get maxContentWidth(): number;
+    set maxContentWidth(val: number);
+    get min_content_height(): number;
+    set min_content_height(val: number);
+    get minContentHeight(): number;
+    set minContentHeight(val: number);
+    get min_content_width(): number;
+    set min_content_width(val: number);
+    get minContentWidth(): number;
+    set minContentWidth(val: number);
+    get overlay_scrolling(): boolean;
+    set overlay_scrolling(val: boolean);
+    get overlayScrolling(): boolean;
+    set overlayScrolling(val: boolean);
+    get propagate_natural_height(): boolean;
+    set propagate_natural_height(val: boolean);
+    get propagateNaturalHeight(): boolean;
+    set propagateNaturalHeight(val: boolean);
+    get propagate_natural_width(): boolean;
+    set propagate_natural_width(val: boolean);
+    get propagateNaturalWidth(): boolean;
+    set propagateNaturalWidth(val: boolean);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscrollbar_policy(): PolicyType;
+    set vscrollbar_policy(val: PolicyType);
+    get vscrollbarPolicy(): PolicyType;
+    set vscrollbarPolicy(val: PolicyType);
+    get window_placement(): CornerType;
+    set window_placement(val: CornerType);
+    get windowPlacement(): CornerType;
+    set windowPlacement(val: CornerType);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "edge-overshot", callback: (_source: this, pos: PositionType) => void): number;
+    connect_after(signal: "edge-overshot", callback: (_source: this, pos: PositionType) => void): number;
+    emit(signal: "edge-overshot", pos: PositionType): void;
+    connect(signal: "edge-reached", callback: (_source: this, pos: PositionType) => void): number;
+    connect_after(signal: "edge-reached", callback: (_source: this, pos: PositionType) => void): number;
+    emit(signal: "edge-reached", pos: PositionType): void;
+    connect(signal: "move-focus-out", callback: (_source: this, direction_type: DirectionType) => void): 
number;
+    connect_after(signal: "move-focus-out", callback: (_source: this, direction_type: DirectionType) => 
void): number;
+    emit(signal: "move-focus-out", direction_type: DirectionType): void;
+    connect(
+        signal: "scroll-child",
+        callback: (_source: this, scroll: ScrollType, horizontal: boolean) => boolean
+    ): number;
+    connect_after(
+        signal: "scroll-child",
+        callback: (_source: this, scroll: ScrollType, horizontal: boolean) => boolean
+    ): number;
+    emit(signal: "scroll-child", scroll: ScrollType, horizontal: boolean): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): ScrolledWindow;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_hadjustment(): Adjustment;
+    get_has_frame(): boolean;
+    get_hscrollbar(): Widget;
+    get_kinetic_scrolling(): boolean;
+    get_max_content_height(): number;
+    get_max_content_width(): number;
+    get_min_content_height(): number;
+    get_min_content_width(): number;
+    get_overlay_scrolling(): boolean;
+    get_placement(): CornerType;
+    get_policy(): [PolicyType | null, PolicyType | null];
+    get_propagate_natural_height(): boolean;
+    get_propagate_natural_width(): boolean;
+    get_vadjustment(): Adjustment;
+    get_vscrollbar(): Widget;
+    set_child(child?: Widget | null): void;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_has_frame(has_frame: boolean): void;
+    set_kinetic_scrolling(kinetic_scrolling: boolean): void;
+    set_max_content_height(height: number): void;
+    set_max_content_width(width: number): void;
+    set_min_content_height(height: number): void;
+    set_min_content_width(width: number): void;
+    set_overlay_scrolling(overlay_scrolling: boolean): void;
+    set_placement(window_placement: CornerType): void;
+    set_policy(hscrollbar_policy: PolicyType, vscrollbar_policy: PolicyType): void;
+    set_propagate_natural_height(propagate: boolean): void;
+    set_propagate_natural_width(propagate: boolean): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    unset_placement(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module SearchBar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        key_capture_widget: Widget;
+        keyCaptureWidget: Widget;
+        search_mode_enabled: boolean;
+        searchModeEnabled: boolean;
+        show_close_button: boolean;
+        showCloseButton: boolean;
+    }
+}
+export class SearchBar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<SearchBar>;
+
+    constructor(properties?: Partial<SearchBar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SearchBar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get key_capture_widget(): Widget;
+    set key_capture_widget(val: Widget);
+    get keyCaptureWidget(): Widget;
+    set keyCaptureWidget(val: Widget);
+    get search_mode_enabled(): boolean;
+    set search_mode_enabled(val: boolean);
+    get searchModeEnabled(): boolean;
+    set searchModeEnabled(val: boolean);
+    get show_close_button(): boolean;
+    set show_close_button(val: boolean);
+    get showCloseButton(): boolean;
+    set showCloseButton(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): SearchBar;
+
+    // Members
+
+    connect_entry(entry: Editable): void;
+    get_child(): Widget | null;
+    get_key_capture_widget(): Widget | null;
+    get_search_mode(): boolean;
+    get_show_close_button(): boolean;
+    set_child(child?: Widget | null): void;
+    set_key_capture_widget(widget?: Widget | null): void;
+    set_search_mode(search_mode: boolean): void;
+    set_show_close_button(visible: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module SearchEntry {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activates_default: boolean;
+        activatesDefault: boolean;
+        placeholder_text: string;
+        placeholderText: string;
+        search_delay: number;
+        searchDelay: number;
+    }
+}
+export class SearchEntry extends Widget implements Accessible, Buildable, ConstraintTarget, Editable {
+    static $gtype: GObject.GType<SearchEntry>;
+
+    constructor(properties?: Partial<SearchEntry.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SearchEntry.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activates_default(): boolean;
+    set activates_default(val: boolean);
+    get activatesDefault(): boolean;
+    set activatesDefault(val: boolean);
+    get placeholder_text(): string;
+    set placeholder_text(val: string);
+    get placeholderText(): string;
+    set placeholderText(val: string);
+    get search_delay(): number;
+    set search_delay(val: number);
+    get searchDelay(): number;
+    set searchDelay(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "next-match", callback: (_source: this) => void): number;
+    connect_after(signal: "next-match", callback: (_source: this) => void): number;
+    emit(signal: "next-match"): void;
+    connect(signal: "previous-match", callback: (_source: this) => void): number;
+    connect_after(signal: "previous-match", callback: (_source: this) => void): number;
+    emit(signal: "previous-match"): void;
+    connect(signal: "search-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "search-changed", callback: (_source: this) => void): number;
+    emit(signal: "search-changed"): void;
+    connect(signal: "search-started", callback: (_source: this) => void): number;
+    connect_after(signal: "search-started", callback: (_source: this) => void): number;
+    emit(signal: "search-started"): void;
+    connect(signal: "stop-search", callback: (_source: this) => void): number;
+    connect_after(signal: "stop-search", callback: (_source: this) => void): number;
+    emit(signal: "stop-search"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](): SearchEntry;
+
+    // Members
+
+    get_key_capture_widget(): Widget | null;
+    get_search_delay(): number;
+    set_key_capture_widget(widget?: Widget | null): void;
+    set_search_delay(delay: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module SelectionFilterModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        model: SelectionModel;
+    }
+}
+export class SelectionFilterModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<SelectionFilterModel>;
+
+    constructor(properties?: Partial<SelectionFilterModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<SelectionFilterModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get model(): SelectionModel;
+    set model(val: SelectionModel);
+
+    // Constructors
+
+    static ["new"](model?: SelectionModel | null): SelectionFilterModel;
+
+    // Members
+
+    get_model(): SelectionModel | null;
+    set_model(model?: SelectionModel | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module Separator {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Separator extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<Separator>;
+
+    constructor(properties?: Partial<Separator.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Separator.ConstructorProperties>, ...args: any[]): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](orientation: Orientation): Separator;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module Settings {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        gtk_alternative_button_order: boolean;
+        gtkAlternativeButtonOrder: boolean;
+        gtk_alternative_sort_arrows: boolean;
+        gtkAlternativeSortArrows: boolean;
+        gtk_application_prefer_dark_theme: boolean;
+        gtkApplicationPreferDarkTheme: boolean;
+        gtk_cursor_aspect_ratio: number;
+        gtkCursorAspectRatio: number;
+        gtk_cursor_blink: boolean;
+        gtkCursorBlink: boolean;
+        gtk_cursor_blink_time: number;
+        gtkCursorBlinkTime: number;
+        gtk_cursor_blink_timeout: number;
+        gtkCursorBlinkTimeout: number;
+        gtk_cursor_theme_name: string;
+        gtkCursorThemeName: string;
+        gtk_cursor_theme_size: number;
+        gtkCursorThemeSize: number;
+        gtk_decoration_layout: string;
+        gtkDecorationLayout: string;
+        gtk_dialogs_use_header: boolean;
+        gtkDialogsUseHeader: boolean;
+        gtk_dnd_drag_threshold: number;
+        gtkDndDragThreshold: number;
+        gtk_double_click_distance: number;
+        gtkDoubleClickDistance: number;
+        gtk_double_click_time: number;
+        gtkDoubleClickTime: number;
+        gtk_enable_accels: boolean;
+        gtkEnableAccels: boolean;
+        gtk_enable_animations: boolean;
+        gtkEnableAnimations: boolean;
+        gtk_enable_event_sounds: boolean;
+        gtkEnableEventSounds: boolean;
+        gtk_enable_input_feedback_sounds: boolean;
+        gtkEnableInputFeedbackSounds: boolean;
+        gtk_enable_primary_paste: boolean;
+        gtkEnablePrimaryPaste: boolean;
+        gtk_entry_password_hint_timeout: number;
+        gtkEntryPasswordHintTimeout: number;
+        gtk_entry_select_on_focus: boolean;
+        gtkEntrySelectOnFocus: boolean;
+        gtk_error_bell: boolean;
+        gtkErrorBell: boolean;
+        gtk_font_name: string;
+        gtkFontName: string;
+        gtk_fontconfig_timestamp: number;
+        gtkFontconfigTimestamp: number;
+        gtk_hint_font_metrics: boolean;
+        gtkHintFontMetrics: boolean;
+        gtk_icon_theme_name: string;
+        gtkIconThemeName: string;
+        gtk_im_module: string;
+        gtkImModule: string;
+        gtk_keynav_use_caret: boolean;
+        gtkKeynavUseCaret: boolean;
+        gtk_label_select_on_focus: boolean;
+        gtkLabelSelectOnFocus: boolean;
+        gtk_long_press_time: number;
+        gtkLongPressTime: number;
+        gtk_overlay_scrolling: boolean;
+        gtkOverlayScrolling: boolean;
+        gtk_primary_button_warps_slider: boolean;
+        gtkPrimaryButtonWarpsSlider: boolean;
+        gtk_print_backends: string;
+        gtkPrintBackends: string;
+        gtk_print_preview_command: string;
+        gtkPrintPreviewCommand: string;
+        gtk_recent_files_enabled: boolean;
+        gtkRecentFilesEnabled: boolean;
+        gtk_recent_files_max_age: number;
+        gtkRecentFilesMaxAge: number;
+        gtk_shell_shows_app_menu: boolean;
+        gtkShellShowsAppMenu: boolean;
+        gtk_shell_shows_desktop: boolean;
+        gtkShellShowsDesktop: boolean;
+        gtk_shell_shows_menubar: boolean;
+        gtkShellShowsMenubar: boolean;
+        gtk_sound_theme_name: string;
+        gtkSoundThemeName: string;
+        gtk_split_cursor: boolean;
+        gtkSplitCursor: boolean;
+        gtk_theme_name: string;
+        gtkThemeName: string;
+        gtk_titlebar_double_click: string;
+        gtkTitlebarDoubleClick: string;
+        gtk_titlebar_middle_click: string;
+        gtkTitlebarMiddleClick: string;
+        gtk_titlebar_right_click: string;
+        gtkTitlebarRightClick: string;
+        gtk_xft_antialias: number;
+        gtkXftAntialias: number;
+        gtk_xft_dpi: number;
+        gtkXftDpi: number;
+        gtk_xft_hinting: number;
+        gtkXftHinting: number;
+        gtk_xft_hintstyle: string;
+        gtkXftHintstyle: string;
+        gtk_xft_rgba: string;
+        gtkXftRgba: string;
+    }
+}
+export class Settings extends GObject.Object implements StyleProvider {
+    static $gtype: GObject.GType<Settings>;
+
+    constructor(properties?: Partial<Settings.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Settings.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get gtk_alternative_button_order(): boolean;
+    set gtk_alternative_button_order(val: boolean);
+    get gtkAlternativeButtonOrder(): boolean;
+    set gtkAlternativeButtonOrder(val: boolean);
+    get gtk_alternative_sort_arrows(): boolean;
+    set gtk_alternative_sort_arrows(val: boolean);
+    get gtkAlternativeSortArrows(): boolean;
+    set gtkAlternativeSortArrows(val: boolean);
+    get gtk_application_prefer_dark_theme(): boolean;
+    set gtk_application_prefer_dark_theme(val: boolean);
+    get gtkApplicationPreferDarkTheme(): boolean;
+    set gtkApplicationPreferDarkTheme(val: boolean);
+    get gtk_cursor_aspect_ratio(): number;
+    set gtk_cursor_aspect_ratio(val: number);
+    get gtkCursorAspectRatio(): number;
+    set gtkCursorAspectRatio(val: number);
+    get gtk_cursor_blink(): boolean;
+    set gtk_cursor_blink(val: boolean);
+    get gtkCursorBlink(): boolean;
+    set gtkCursorBlink(val: boolean);
+    get gtk_cursor_blink_time(): number;
+    set gtk_cursor_blink_time(val: number);
+    get gtkCursorBlinkTime(): number;
+    set gtkCursorBlinkTime(val: number);
+    get gtk_cursor_blink_timeout(): number;
+    set gtk_cursor_blink_timeout(val: number);
+    get gtkCursorBlinkTimeout(): number;
+    set gtkCursorBlinkTimeout(val: number);
+    get gtk_cursor_theme_name(): string;
+    set gtk_cursor_theme_name(val: string);
+    get gtkCursorThemeName(): string;
+    set gtkCursorThemeName(val: string);
+    get gtk_cursor_theme_size(): number;
+    set gtk_cursor_theme_size(val: number);
+    get gtkCursorThemeSize(): number;
+    set gtkCursorThemeSize(val: number);
+    get gtk_decoration_layout(): string;
+    set gtk_decoration_layout(val: string);
+    get gtkDecorationLayout(): string;
+    set gtkDecorationLayout(val: string);
+    get gtk_dialogs_use_header(): boolean;
+    set gtk_dialogs_use_header(val: boolean);
+    get gtkDialogsUseHeader(): boolean;
+    set gtkDialogsUseHeader(val: boolean);
+    get gtk_dnd_drag_threshold(): number;
+    set gtk_dnd_drag_threshold(val: number);
+    get gtkDndDragThreshold(): number;
+    set gtkDndDragThreshold(val: number);
+    get gtk_double_click_distance(): number;
+    set gtk_double_click_distance(val: number);
+    get gtkDoubleClickDistance(): number;
+    set gtkDoubleClickDistance(val: number);
+    get gtk_double_click_time(): number;
+    set gtk_double_click_time(val: number);
+    get gtkDoubleClickTime(): number;
+    set gtkDoubleClickTime(val: number);
+    get gtk_enable_accels(): boolean;
+    set gtk_enable_accels(val: boolean);
+    get gtkEnableAccels(): boolean;
+    set gtkEnableAccels(val: boolean);
+    get gtk_enable_animations(): boolean;
+    set gtk_enable_animations(val: boolean);
+    get gtkEnableAnimations(): boolean;
+    set gtkEnableAnimations(val: boolean);
+    get gtk_enable_event_sounds(): boolean;
+    set gtk_enable_event_sounds(val: boolean);
+    get gtkEnableEventSounds(): boolean;
+    set gtkEnableEventSounds(val: boolean);
+    get gtk_enable_input_feedback_sounds(): boolean;
+    set gtk_enable_input_feedback_sounds(val: boolean);
+    get gtkEnableInputFeedbackSounds(): boolean;
+    set gtkEnableInputFeedbackSounds(val: boolean);
+    get gtk_enable_primary_paste(): boolean;
+    set gtk_enable_primary_paste(val: boolean);
+    get gtkEnablePrimaryPaste(): boolean;
+    set gtkEnablePrimaryPaste(val: boolean);
+    get gtk_entry_password_hint_timeout(): number;
+    set gtk_entry_password_hint_timeout(val: number);
+    get gtkEntryPasswordHintTimeout(): number;
+    set gtkEntryPasswordHintTimeout(val: number);
+    get gtk_entry_select_on_focus(): boolean;
+    set gtk_entry_select_on_focus(val: boolean);
+    get gtkEntrySelectOnFocus(): boolean;
+    set gtkEntrySelectOnFocus(val: boolean);
+    get gtk_error_bell(): boolean;
+    set gtk_error_bell(val: boolean);
+    get gtkErrorBell(): boolean;
+    set gtkErrorBell(val: boolean);
+    get gtk_font_name(): string;
+    set gtk_font_name(val: string);
+    get gtkFontName(): string;
+    set gtkFontName(val: string);
+    get gtk_fontconfig_timestamp(): number;
+    set gtk_fontconfig_timestamp(val: number);
+    get gtkFontconfigTimestamp(): number;
+    set gtkFontconfigTimestamp(val: number);
+    get gtk_hint_font_metrics(): boolean;
+    set gtk_hint_font_metrics(val: boolean);
+    get gtkHintFontMetrics(): boolean;
+    set gtkHintFontMetrics(val: boolean);
+    get gtk_icon_theme_name(): string;
+    set gtk_icon_theme_name(val: string);
+    get gtkIconThemeName(): string;
+    set gtkIconThemeName(val: string);
+    get gtk_im_module(): string;
+    set gtk_im_module(val: string);
+    get gtkImModule(): string;
+    set gtkImModule(val: string);
+    get gtk_keynav_use_caret(): boolean;
+    set gtk_keynav_use_caret(val: boolean);
+    get gtkKeynavUseCaret(): boolean;
+    set gtkKeynavUseCaret(val: boolean);
+    get gtk_label_select_on_focus(): boolean;
+    set gtk_label_select_on_focus(val: boolean);
+    get gtkLabelSelectOnFocus(): boolean;
+    set gtkLabelSelectOnFocus(val: boolean);
+    get gtk_long_press_time(): number;
+    set gtk_long_press_time(val: number);
+    get gtkLongPressTime(): number;
+    set gtkLongPressTime(val: number);
+    get gtk_overlay_scrolling(): boolean;
+    set gtk_overlay_scrolling(val: boolean);
+    get gtkOverlayScrolling(): boolean;
+    set gtkOverlayScrolling(val: boolean);
+    get gtk_primary_button_warps_slider(): boolean;
+    set gtk_primary_button_warps_slider(val: boolean);
+    get gtkPrimaryButtonWarpsSlider(): boolean;
+    set gtkPrimaryButtonWarpsSlider(val: boolean);
+    get gtk_print_backends(): string;
+    set gtk_print_backends(val: string);
+    get gtkPrintBackends(): string;
+    set gtkPrintBackends(val: string);
+    get gtk_print_preview_command(): string;
+    set gtk_print_preview_command(val: string);
+    get gtkPrintPreviewCommand(): string;
+    set gtkPrintPreviewCommand(val: string);
+    get gtk_recent_files_enabled(): boolean;
+    set gtk_recent_files_enabled(val: boolean);
+    get gtkRecentFilesEnabled(): boolean;
+    set gtkRecentFilesEnabled(val: boolean);
+    get gtk_recent_files_max_age(): number;
+    set gtk_recent_files_max_age(val: number);
+    get gtkRecentFilesMaxAge(): number;
+    set gtkRecentFilesMaxAge(val: number);
+    get gtk_shell_shows_app_menu(): boolean;
+    set gtk_shell_shows_app_menu(val: boolean);
+    get gtkShellShowsAppMenu(): boolean;
+    set gtkShellShowsAppMenu(val: boolean);
+    get gtk_shell_shows_desktop(): boolean;
+    set gtk_shell_shows_desktop(val: boolean);
+    get gtkShellShowsDesktop(): boolean;
+    set gtkShellShowsDesktop(val: boolean);
+    get gtk_shell_shows_menubar(): boolean;
+    set gtk_shell_shows_menubar(val: boolean);
+    get gtkShellShowsMenubar(): boolean;
+    set gtkShellShowsMenubar(val: boolean);
+    get gtk_sound_theme_name(): string;
+    set gtk_sound_theme_name(val: string);
+    get gtkSoundThemeName(): string;
+    set gtkSoundThemeName(val: string);
+    get gtk_split_cursor(): boolean;
+    set gtk_split_cursor(val: boolean);
+    get gtkSplitCursor(): boolean;
+    set gtkSplitCursor(val: boolean);
+    get gtk_theme_name(): string;
+    set gtk_theme_name(val: string);
+    get gtkThemeName(): string;
+    set gtkThemeName(val: string);
+    get gtk_titlebar_double_click(): string;
+    set gtk_titlebar_double_click(val: string);
+    get gtkTitlebarDoubleClick(): string;
+    set gtkTitlebarDoubleClick(val: string);
+    get gtk_titlebar_middle_click(): string;
+    set gtk_titlebar_middle_click(val: string);
+    get gtkTitlebarMiddleClick(): string;
+    set gtkTitlebarMiddleClick(val: string);
+    get gtk_titlebar_right_click(): string;
+    set gtk_titlebar_right_click(val: string);
+    get gtkTitlebarRightClick(): string;
+    set gtkTitlebarRightClick(val: string);
+    get gtk_xft_antialias(): number;
+    set gtk_xft_antialias(val: number);
+    get gtkXftAntialias(): number;
+    set gtkXftAntialias(val: number);
+    get gtk_xft_dpi(): number;
+    set gtk_xft_dpi(val: number);
+    get gtkXftDpi(): number;
+    set gtkXftDpi(val: number);
+    get gtk_xft_hinting(): number;
+    set gtk_xft_hinting(val: number);
+    get gtkXftHinting(): number;
+    set gtkXftHinting(val: number);
+    get gtk_xft_hintstyle(): string;
+    set gtk_xft_hintstyle(val: string);
+    get gtkXftHintstyle(): string;
+    set gtkXftHintstyle(val: string);
+    get gtk_xft_rgba(): string;
+    set gtk_xft_rgba(val: string);
+    get gtkXftRgba(): string;
+    set gtkXftRgba(val: string);
+
+    // Members
+
+    reset_property(name: string): void;
+    static get_default(): Settings | null;
+    static get_for_display(display: Gdk.Display): Settings;
+}
+export module Shortcut {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        action: ShortcutAction;
+        arguments: GLib.Variant;
+        trigger: ShortcutTrigger;
+    }
+}
+export class Shortcut extends GObject.Object {
+    static $gtype: GObject.GType<Shortcut>;
+
+    constructor(properties?: Partial<Shortcut.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Shortcut.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get action(): ShortcutAction;
+    set action(val: ShortcutAction);
+    get arguments(): GLib.Variant;
+    set arguments(val: GLib.Variant);
+    get trigger(): ShortcutTrigger;
+    set trigger(val: ShortcutTrigger);
+
+    // Constructors
+
+    static ["new"](trigger?: ShortcutTrigger | null, action?: ShortcutAction | null): Shortcut;
+
+    // Members
+
+    get_action(): ShortcutAction | null;
+    get_arguments(): GLib.Variant | null;
+    get_trigger(): ShortcutTrigger | null;
+    set_action(action?: ShortcutAction | null): void;
+    set_arguments(args?: GLib.Variant | null): void;
+    set_trigger(trigger?: ShortcutTrigger | null): void;
+}
+export module ShortcutAction {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class ShortcutAction extends GObject.Object {
+    static $gtype: GObject.GType<ShortcutAction>;
+
+    constructor(properties?: Partial<ShortcutAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static parse_string(string: string): ShortcutAction;
+
+    // Members
+
+    activate(flags: ShortcutActionFlags, widget: Widget, args?: GLib.Variant | null): boolean;
+    print(string: GLib.String): void;
+    to_string(): string;
+}
+export module ShortcutController {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends EventController.ConstructorProperties {
+        [key: string]: any;
+        mnemonic_modifiers: Gdk.ModifierType;
+        mnemonicModifiers: Gdk.ModifierType;
+        model: Gio.ListModel;
+        scope: ShortcutScope;
+    }
+}
+export class ShortcutController<A extends GObject.Object = GObject.Object>
+    extends EventController
+    implements Gio.ListModel<A>, Buildable
+{
+    static $gtype: GObject.GType<ShortcutController>;
+
+    constructor(properties?: Partial<ShortcutController.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<ShortcutController.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get mnemonic_modifiers(): Gdk.ModifierType;
+    set mnemonic_modifiers(val: Gdk.ModifierType);
+    get mnemonicModifiers(): Gdk.ModifierType;
+    set mnemonicModifiers(val: Gdk.ModifierType);
+    set model(val: Gio.ListModel);
+    get scope(): ShortcutScope;
+    set scope(val: ShortcutScope);
+
+    // Constructors
+
+    static ["new"](): ShortcutController;
+    static new_for_model(model: Gio.ListModel): ShortcutController;
+
+    // Members
+
+    add_shortcut(shortcut: Shortcut): void;
+    get_mnemonics_modifiers(): Gdk.ModifierType;
+    get_scope(): ShortcutScope;
+    remove_shortcut(shortcut: Shortcut): void;
+    set_mnemonics_modifiers(modifiers: Gdk.ModifierType): void;
+    set_scope(scope: ShortcutScope): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ShortcutLabel {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        accelerator: string;
+        disabled_text: string;
+        disabledText: string;
+    }
+}
+export class ShortcutLabel extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ShortcutLabel>;
+
+    constructor(properties?: Partial<ShortcutLabel.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutLabel.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accelerator(): string;
+    set accelerator(val: string);
+    get disabled_text(): string;
+    set disabled_text(val: string);
+    get disabledText(): string;
+    set disabledText(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](accelerator: string): ShortcutLabel;
+
+    // Members
+
+    get_accelerator(): string | null;
+    get_disabled_text(): string | null;
+    set_accelerator(accelerator: string): void;
+    set_disabled_text(disabled_text: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ShortcutTrigger {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class ShortcutTrigger extends GObject.Object {
+    static $gtype: GObject.GType<ShortcutTrigger>;
+
+    constructor(properties?: Partial<ShortcutTrigger.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutTrigger.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static parse_string(string: string): ShortcutTrigger;
+
+    // Members
+
+    compare(trigger2: ShortcutTrigger): number;
+    equal(trigger2: ShortcutTrigger): boolean;
+    hash(): number;
+    print(string: GLib.String): void;
+    print_label(display: Gdk.Display, string: GLib.String): boolean;
+    to_label(display: Gdk.Display): string;
+    to_string(): string;
+    trigger(event: Gdk.Event, enable_mnemonics: boolean): Gdk.KeyMatch;
+}
+export module ShortcutsGroup {
+    export interface ConstructorProperties extends Box.ConstructorProperties {
+        [key: string]: any;
+        accel_size_group: SizeGroup;
+        accelSizeGroup: SizeGroup;
+        height: number;
+        title: string;
+        title_size_group: SizeGroup;
+        titleSizeGroup: SizeGroup;
+        view: string;
+    }
+}
+export class ShortcutsGroup extends Box implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<ShortcutsGroup>;
+
+    constructor(properties?: Partial<ShortcutsGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutsGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set accel_size_group(val: SizeGroup);
+    set accelSizeGroup(val: SizeGroup);
+    get height(): number;
+    get title(): string;
+    set title(val: string);
+    set title_size_group(val: SizeGroup);
+    set titleSizeGroup(val: SizeGroup);
+    get view(): string;
+    set view(val: string);
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module ShortcutsSection {
+    export interface ConstructorProperties extends Box.ConstructorProperties {
+        [key: string]: any;
+        max_height: number;
+        maxHeight: number;
+        section_name: string;
+        sectionName: string;
+        title: string;
+        view_name: string;
+        viewName: string;
+    }
+}
+export class ShortcutsSection extends Box implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<ShortcutsSection>;
+
+    constructor(properties?: Partial<ShortcutsSection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutsSection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get max_height(): number;
+    set max_height(val: number);
+    get maxHeight(): number;
+    set maxHeight(val: number);
+    get section_name(): string;
+    set section_name(val: string);
+    get sectionName(): string;
+    set sectionName(val: string);
+    get title(): string;
+    set title(val: string);
+    get view_name(): string;
+    set view_name(val: string);
+    get viewName(): string;
+    set viewName(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "change-current-page", callback: (_source: this, object: number) => boolean): number;
+    connect_after(signal: "change-current-page", callback: (_source: this, object: number) => boolean): 
number;
+    emit(signal: "change-current-page", object: number): void;
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module ShortcutsShortcut {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        accel_size_group: SizeGroup;
+        accelSizeGroup: SizeGroup;
+        accelerator: string;
+        action_name: string;
+        actionName: string;
+        direction: TextDirection;
+        icon: Gio.Icon;
+        icon_set: boolean;
+        iconSet: boolean;
+        shortcut_type: ShortcutType;
+        shortcutType: ShortcutType;
+        subtitle: string;
+        subtitle_set: boolean;
+        subtitleSet: boolean;
+        title: string;
+        title_size_group: SizeGroup;
+        titleSizeGroup: SizeGroup;
+    }
+}
+export class ShortcutsShortcut extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ShortcutsShortcut>;
+
+    constructor(properties?: Partial<ShortcutsShortcut.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutsShortcut.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    set accel_size_group(val: SizeGroup);
+    set accelSizeGroup(val: SizeGroup);
+    get accelerator(): string;
+    set accelerator(val: string);
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get direction(): TextDirection;
+    set direction(val: TextDirection);
+    get icon(): Gio.Icon;
+    set icon(val: Gio.Icon);
+    get icon_set(): boolean;
+    set icon_set(val: boolean);
+    get iconSet(): boolean;
+    set iconSet(val: boolean);
+    get shortcut_type(): ShortcutType;
+    set shortcut_type(val: ShortcutType);
+    get shortcutType(): ShortcutType;
+    set shortcutType(val: ShortcutType);
+    get subtitle(): string;
+    set subtitle(val: string);
+    get subtitle_set(): boolean;
+    set subtitle_set(val: boolean);
+    get subtitleSet(): boolean;
+    set subtitleSet(val: boolean);
+    get title(): string;
+    set title(val: string);
+    set title_size_group(val: SizeGroup);
+    set titleSizeGroup(val: SizeGroup);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module ShortcutsWindow {
+    export interface ConstructorProperties extends Window.ConstructorProperties {
+        [key: string]: any;
+        section_name: string;
+        sectionName: string;
+        view_name: string;
+        viewName: string;
+    }
+}
+export class ShortcutsWindow
+    extends Window
+    implements Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
+{
+    static $gtype: GObject.GType<ShortcutsWindow>;
+
+    constructor(properties?: Partial<ShortcutsWindow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ShortcutsWindow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get section_name(): string;
+    set section_name(val: string);
+    get sectionName(): string;
+    set sectionName(val: string);
+    get view_name(): string;
+    set view_name(val: string);
+    get viewName(): string;
+    set viewName(val: string);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "close", callback: (_source: this) => void): number;
+    connect_after(signal: "close", callback: (_source: this) => void): number;
+    emit(signal: "close"): void;
+    connect(signal: "search", callback: (_source: this) => void): number;
+    connect_after(signal: "search", callback: (_source: this) => void): number;
+    emit(signal: "search"): void;
+
+    // Implemented Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module SignalAction {
+    export interface ConstructorProperties extends ShortcutAction.ConstructorProperties {
+        [key: string]: any;
+        signal_name: string;
+        signalName: string;
+    }
+}
+export class SignalAction extends ShortcutAction {
+    static $gtype: GObject.GType<SignalAction>;
+
+    constructor(properties?: Partial<SignalAction.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SignalAction.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get signal_name(): string;
+    get signalName(): string;
+
+    // Constructors
+
+    static ["new"](signal_name: string): SignalAction;
+
+    // Members
+
+    get_signal_name(): string;
+}
+export module SignalListItemFactory {
+    export interface ConstructorProperties extends ListItemFactory.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class SignalListItemFactory extends ListItemFactory {
+    static $gtype: GObject.GType<SignalListItemFactory>;
+
+    constructor(properties?: Partial<SignalListItemFactory.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SignalListItemFactory.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "bind", callback: (_source: this, listitem: ListItem) => void): number;
+    connect_after(signal: "bind", callback: (_source: this, listitem: ListItem) => void): number;
+    emit(signal: "bind", listitem: ListItem): void;
+    connect(signal: "setup", callback: (_source: this, listitem: ListItem) => void): number;
+    connect_after(signal: "setup", callback: (_source: this, listitem: ListItem) => void): number;
+    emit(signal: "setup", listitem: ListItem): void;
+    connect(signal: "teardown", callback: (_source: this, listitem: ListItem) => void): number;
+    connect_after(signal: "teardown", callback: (_source: this, listitem: ListItem) => void): number;
+    emit(signal: "teardown", listitem: ListItem): void;
+    connect(signal: "unbind", callback: (_source: this, listitem: ListItem) => void): number;
+    connect_after(signal: "unbind", callback: (_source: this, listitem: ListItem) => void): number;
+    emit(signal: "unbind", listitem: ListItem): void;
+
+    // Constructors
+
+    static ["new"](): SignalListItemFactory;
+}
+export module SingleSelection {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        autoselect: boolean;
+        can_unselect: boolean;
+        canUnselect: boolean;
+        model: Gio.ListModel;
+        selected: number;
+        selected_item: GObject.Object;
+        selectedItem: GObject.Object;
+    }
+}
+export class SingleSelection<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>, SelectionModel<A>
+{
+    static $gtype: GObject.GType<SingleSelection>;
+
+    constructor(properties?: Partial<SingleSelection.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<SingleSelection.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get autoselect(): boolean;
+    set autoselect(val: boolean);
+    get can_unselect(): boolean;
+    set can_unselect(val: boolean);
+    get canUnselect(): boolean;
+    set canUnselect(val: boolean);
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+    get selected(): number;
+    set selected(val: number);
+    get selected_item(): GObject.Object;
+    get selectedItem(): GObject.Object;
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null): SingleSelection;
+
+    // Members
+
+    get_autoselect(): boolean;
+    get_can_unselect(): boolean;
+    get_model(): Gio.ListModel | null;
+    get_selected(): number;
+    get_selected_item<T = GObject.Object>(): T;
+    set_autoselect(autoselect: boolean): void;
+    set_can_unselect(can_unselect: boolean): void;
+    set_model(model?: Gio.ListModel | null): void;
+    set_selected(position: number): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_selection(): Bitset;
+    get_selection_in_range(position: number, n_items: number): Bitset;
+    is_selected(position: number): boolean;
+    select_all(): boolean;
+    select_item(position: number, unselect_rest: boolean): boolean;
+    select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    selection_changed(position: number, n_items: number): void;
+    set_selection(selected: Bitset, mask: Bitset): boolean;
+    unselect_all(): boolean;
+    unselect_item(position: number): boolean;
+    unselect_range(position: number, n_items: number): boolean;
+    vfunc_get_selection_in_range(position: number, n_items: number): Bitset;
+    vfunc_is_selected(position: number): boolean;
+    vfunc_select_all(): boolean;
+    vfunc_select_item(position: number, unselect_rest: boolean): boolean;
+    vfunc_select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    vfunc_set_selection(selected: Bitset, mask: Bitset): boolean;
+    vfunc_unselect_all(): boolean;
+    vfunc_unselect_item(position: number): boolean;
+    vfunc_unselect_range(position: number, n_items: number): boolean;
+}
+export module SizeGroup {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        mode: SizeGroupMode;
+    }
+}
+export class SizeGroup extends GObject.Object implements Buildable {
+    static $gtype: GObject.GType<SizeGroup>;
+
+    constructor(properties?: Partial<SizeGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SizeGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get mode(): SizeGroupMode;
+    set mode(val: SizeGroupMode);
+
+    // Constructors
+
+    static ["new"](mode: SizeGroupMode): SizeGroup;
+
+    // Members
+
+    add_widget(widget: Widget): void;
+    get_mode(): SizeGroupMode;
+    get_widgets(): Widget[];
+    remove_widget(widget: Widget): void;
+    set_mode(mode: SizeGroupMode): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module SliceListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        model: Gio.ListModel;
+        offset: number;
+        size: number;
+    }
+}
+export class SliceListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<SliceListModel>;
+
+    constructor(properties?: Partial<SliceListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<SliceListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+    get offset(): number;
+    set offset(val: number);
+    get size(): number;
+    set size(val: number);
+
+    // Constructors
+
+    static ["new"](model: Gio.ListModel | null, offset: number, size: number): SliceListModel;
+
+    // Members
+
+    get_model(): Gio.ListModel | null;
+    get_offset(): number;
+    get_size(): number;
+    set_model(model?: Gio.ListModel | null): void;
+    set_offset(offset: number): void;
+    set_size(size: number): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module Snapshot {
+    export interface ConstructorProperties extends Gdk.Snapshot.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Snapshot extends Gdk.Snapshot {
+    static $gtype: GObject.GType<Snapshot>;
+
+    constructor(properties?: Partial<Snapshot.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Snapshot.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): Snapshot;
+
+    // Members
+
+    append_border(outline: Gsk.RoundedRect, border_width: number[], border_color: Gdk.RGBA[]): void;
+    append_cairo(bounds: Graphene.Rect): cairo.Context;
+    append_color(color: Gdk.RGBA, bounds: Graphene.Rect): void;
+    append_conic_gradient(
+        bounds: Graphene.Rect,
+        center: Graphene.Point,
+        rotation: number,
+        stops: Gsk.ColorStop[]
+    ): void;
+    append_inset_shadow(
+        outline: Gsk.RoundedRect,
+        color: Gdk.RGBA,
+        dx: number,
+        dy: number,
+        spread: number,
+        blur_radius: number
+    ): void;
+    append_layout(layout: Pango.Layout, color: Gdk.RGBA): void;
+    append_linear_gradient(
+        bounds: Graphene.Rect,
+        start_point: Graphene.Point,
+        end_point: Graphene.Point,
+        stops: Gsk.ColorStop[]
+    ): void;
+    append_node(node: Gsk.RenderNode): void;
+    append_outset_shadow(
+        outline: Gsk.RoundedRect,
+        color: Gdk.RGBA,
+        dx: number,
+        dy: number,
+        spread: number,
+        blur_radius: number
+    ): void;
+    append_radial_gradient(
+        bounds: Graphene.Rect,
+        center: Graphene.Point,
+        hradius: number,
+        vradius: number,
+        start: number,
+        end: number,
+        stops: Gsk.ColorStop[]
+    ): void;
+    append_repeating_linear_gradient(
+        bounds: Graphene.Rect,
+        start_point: Graphene.Point,
+        end_point: Graphene.Point,
+        stops: Gsk.ColorStop[]
+    ): void;
+    append_repeating_radial_gradient(
+        bounds: Graphene.Rect,
+        center: Graphene.Point,
+        hradius: number,
+        vradius: number,
+        start: number,
+        end: number,
+        stops: Gsk.ColorStop[]
+    ): void;
+    append_texture(texture: Gdk.Texture, bounds: Graphene.Rect): void;
+    gl_shader_pop_texture(): void;
+    perspective(depth: number): void;
+    pop(): void;
+    push_blend(blend_mode: Gsk.BlendMode): void;
+    push_blur(radius: number): void;
+    push_clip(bounds: Graphene.Rect): void;
+    push_color_matrix(color_matrix: Graphene.Matrix, color_offset: Graphene.Vec4): void;
+    push_cross_fade(progress: number): void;
+    push_gl_shader(shader: Gsk.GLShader, bounds: Graphene.Rect, take_args: GLib.Bytes | Uint8Array): void;
+    push_opacity(opacity: number): void;
+    push_repeat(bounds: Graphene.Rect, child_bounds?: Graphene.Rect | null): void;
+    push_rounded_clip(bounds: Gsk.RoundedRect): void;
+    push_shadow(shadow: Gsk.Shadow[]): void;
+    render_background(context: StyleContext, x: number, y: number, width: number, height: number): void;
+    render_focus(context: StyleContext, x: number, y: number, width: number, height: number): void;
+    render_frame(context: StyleContext, x: number, y: number, width: number, height: number): void;
+    render_insertion_cursor(
+        context: StyleContext,
+        x: number,
+        y: number,
+        layout: Pango.Layout,
+        index: number,
+        direction: Pango.Direction
+    ): void;
+    render_layout(context: StyleContext, x: number, y: number, layout: Pango.Layout): void;
+    restore(): void;
+    rotate(angle: number): void;
+    rotate_3d(angle: number, axis: Graphene.Vec3): void;
+    save(): void;
+    scale(factor_x: number, factor_y: number): void;
+    scale_3d(factor_x: number, factor_y: number, factor_z: number): void;
+    to_node(): Gsk.RenderNode | null;
+    to_paintable(size?: Graphene.Size | null): Gdk.Paintable | null;
+    transform(transform?: Gsk.Transform | null): void;
+    transform_matrix(matrix: Graphene.Matrix): void;
+    translate(point: Graphene.Point): void;
+    translate_3d(point: Graphene.Point3D): void;
+}
+export module SortListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        incremental: boolean;
+        model: Gio.ListModel;
+        pending: number;
+        sorter: Sorter;
+    }
+}
+export class SortListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<SortListModel>;
+
+    constructor(properties?: Partial<SortListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<SortListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get incremental(): boolean;
+    set incremental(val: boolean);
+    get model(): Gio.ListModel;
+    set model(val: Gio.ListModel);
+    get pending(): number;
+    get sorter(): Sorter;
+    set sorter(val: Sorter);
+
+    // Constructors
+
+    static ["new"](model?: Gio.ListModel | null, sorter?: Sorter | null): SortListModel;
+
+    // Members
+
+    get_incremental(): boolean;
+    get_model(): Gio.ListModel | null;
+    get_pending(): number;
+    get_sorter(): Sorter | null;
+    set_incremental(incremental: boolean): void;
+    set_model(model?: Gio.ListModel | null): void;
+    set_sorter(sorter?: Sorter | null): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module Sorter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Sorter extends GObject.Object {
+    static $gtype: GObject.GType<Sorter>;
+
+    constructor(properties?: Partial<Sorter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Sorter.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this, change: SorterChange) => void): number;
+    connect_after(signal: "changed", callback: (_source: this, change: SorterChange) => void): number;
+    emit(signal: "changed", change: SorterChange): void;
+
+    // Members
+
+    changed(change: SorterChange): void;
+    compare(item1: GObject.Object, item2: GObject.Object): Ordering;
+    get_order(): SorterOrder;
+    vfunc_compare(item1?: GObject.Object | null, item2?: GObject.Object | null): Ordering;
+    vfunc_get_order(): SorterOrder;
+}
+export module SpinButton {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        adjustment: Adjustment;
+        climb_rate: number;
+        climbRate: number;
+        digits: number;
+        numeric: boolean;
+        snap_to_ticks: boolean;
+        snapToTicks: boolean;
+        update_policy: SpinButtonUpdatePolicy;
+        updatePolicy: SpinButtonUpdatePolicy;
+        value: number;
+        wrap: boolean;
+    }
+}
+export class SpinButton
+    extends Widget
+    implements Accessible, Buildable, CellEditable, ConstraintTarget, Editable, Orientable
+{
+    static $gtype: GObject.GType<SpinButton>;
+
+    constructor(properties?: Partial<SpinButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<SpinButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get adjustment(): Adjustment;
+    set adjustment(val: Adjustment);
+    get climb_rate(): number;
+    set climb_rate(val: number);
+    get climbRate(): number;
+    set climbRate(val: number);
+    get digits(): number;
+    set digits(val: number);
+    get numeric(): boolean;
+    set numeric(val: boolean);
+    get snap_to_ticks(): boolean;
+    set snap_to_ticks(val: boolean);
+    get snapToTicks(): boolean;
+    set snapToTicks(val: boolean);
+    get update_policy(): SpinButtonUpdatePolicy;
+    set update_policy(val: SpinButtonUpdatePolicy);
+    get updatePolicy(): SpinButtonUpdatePolicy;
+    set updatePolicy(val: SpinButtonUpdatePolicy);
+    get value(): number;
+    set value(val: number);
+    get wrap(): boolean;
+    set wrap(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "change-value", callback: (_source: this, scroll: ScrollType) => void): number;
+    connect_after(signal: "change-value", callback: (_source: this, scroll: ScrollType) => void): number;
+    emit(signal: "change-value", scroll: ScrollType): void;
+    connect(signal: "input", callback: (_source: this, new_value: number) => number): number;
+    connect_after(signal: "input", callback: (_source: this, new_value: number) => number): number;
+    emit(signal: "input", new_value: number): void;
+    connect(signal: "output", callback: (_source: this) => boolean): number;
+    connect_after(signal: "output", callback: (_source: this) => boolean): number;
+    emit(signal: "output"): void;
+    connect(signal: "value-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "value-changed", callback: (_source: this) => void): number;
+    emit(signal: "value-changed"): void;
+    connect(signal: "wrapped", callback: (_source: this) => void): number;
+    connect_after(signal: "wrapped", callback: (_source: this) => void): number;
+    emit(signal: "wrapped"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get editing_canceled(): boolean;
+    set editing_canceled(val: boolean);
+    get editingCanceled(): boolean;
+    set editingCanceled(val: boolean);
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](adjustment: Adjustment | null, climb_rate: number, digits: number): SpinButton;
+    static new_with_range(min: number, max: number, step: number): SpinButton;
+
+    // Members
+
+    configure(adjustment: Adjustment | null, climb_rate: number, digits: number): void;
+    get_adjustment(): Adjustment;
+    get_climb_rate(): number;
+    get_digits(): number;
+    get_increments(): [number, number];
+    get_numeric(): boolean;
+    get_range(): [number, number];
+    get_snap_to_ticks(): boolean;
+    get_update_policy(): SpinButtonUpdatePolicy;
+    get_value(): number;
+    get_value_as_int(): number;
+    get_wrap(): boolean;
+    set_adjustment(adjustment: Adjustment): void;
+    set_climb_rate(climb_rate: number): void;
+    set_digits(digits: number): void;
+    set_increments(step: number, page: number): void;
+    set_numeric(numeric: boolean): void;
+    set_range(min: number, max: number): void;
+    set_snap_to_ticks(snap_to_ticks: boolean): void;
+    set_update_policy(policy: SpinButtonUpdatePolicy): void;
+    set_value(value: number): void;
+    set_wrap(wrap: boolean): void;
+    spin(direction: SpinType, increment: number): void;
+    update(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    editing_done(): void;
+    remove_widget(): void;
+    start_editing(event?: Gdk.Event | null): void;
+    vfunc_editing_done(): void;
+    vfunc_remove_widget(): void;
+    vfunc_start_editing(event?: Gdk.Event | null): void;
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module Spinner {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        spinning: boolean;
+    }
+}
+export class Spinner extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Spinner>;
+
+    constructor(properties?: Partial<Spinner.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Spinner.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get spinning(): boolean;
+    set spinning(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Spinner;
+
+    // Members
+
+    get_spinning(): boolean;
+    set_spinning(spinning: boolean): void;
+    start(): void;
+    stop(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Stack {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        hhomogeneous: boolean;
+        interpolate_size: boolean;
+        interpolateSize: boolean;
+        pages: SelectionModel;
+        transition_duration: number;
+        transitionDuration: number;
+        transition_running: boolean;
+        transitionRunning: boolean;
+        transition_type: StackTransitionType;
+        transitionType: StackTransitionType;
+        vhomogeneous: boolean;
+        visible_child: Widget;
+        visibleChild: Widget;
+        visible_child_name: string;
+        visibleChildName: string;
+    }
+}
+export class Stack extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Stack>;
+
+    constructor(properties?: Partial<Stack.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Stack.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get hhomogeneous(): boolean;
+    set hhomogeneous(val: boolean);
+    get interpolate_size(): boolean;
+    set interpolate_size(val: boolean);
+    get interpolateSize(): boolean;
+    set interpolateSize(val: boolean);
+    get pages(): SelectionModel;
+    get transition_duration(): number;
+    set transition_duration(val: number);
+    get transitionDuration(): number;
+    set transitionDuration(val: number);
+    get transition_running(): boolean;
+    get transitionRunning(): boolean;
+    get transition_type(): StackTransitionType;
+    set transition_type(val: StackTransitionType);
+    get transitionType(): StackTransitionType;
+    set transitionType(val: StackTransitionType);
+    get vhomogeneous(): boolean;
+    set vhomogeneous(val: boolean);
+    get visible_child(): Widget;
+    set visible_child(val: Widget);
+    get visibleChild(): Widget;
+    set visibleChild(val: Widget);
+    get visible_child_name(): string;
+    set visible_child_name(val: string);
+    get visibleChildName(): string;
+    set visibleChildName(val: string);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Stack;
+
+    // Members
+
+    add_child(child: Widget): StackPage;
+    add_named(child: Widget, name?: string | null): StackPage;
+    add_titled(child: Widget, name: string | null, title: string): StackPage;
+    get_child_by_name(name: string): Widget | null;
+    get_hhomogeneous(): boolean;
+    get_interpolate_size(): boolean;
+    get_page(child: Widget): StackPage;
+    get_pages(): SelectionModel;
+    get_transition_duration(): number;
+    get_transition_running(): boolean;
+    get_transition_type(): StackTransitionType;
+    get_vhomogeneous(): boolean;
+    get_visible_child(): Widget | null;
+    get_visible_child_name(): string | null;
+    remove(child: Widget): void;
+    set_hhomogeneous(hhomogeneous: boolean): void;
+    set_interpolate_size(interpolate_size: boolean): void;
+    set_transition_duration(duration: number): void;
+    set_transition_type(transition: StackTransitionType): void;
+    set_vhomogeneous(vhomogeneous: boolean): void;
+    set_visible_child(child: Widget): void;
+    set_visible_child_full(name: string, transition: StackTransitionType): void;
+    set_visible_child_name(name: string): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module StackPage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        icon_name: string;
+        iconName: string;
+        name: string;
+        needs_attention: boolean;
+        needsAttention: boolean;
+        title: string;
+        use_underline: boolean;
+        useUnderline: boolean;
+        visible: boolean;
+    }
+}
+export class StackPage extends GObject.Object implements Accessible {
+    static $gtype: GObject.GType<StackPage>;
+
+    constructor(properties?: Partial<StackPage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StackPage.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get name(): string;
+    set name(val: string);
+    get needs_attention(): boolean;
+    set needs_attention(val: boolean);
+    get needsAttention(): boolean;
+    set needsAttention(val: boolean);
+    get title(): string;
+    set title(val: string);
+    get use_underline(): boolean;
+    set use_underline(val: boolean);
+    get useUnderline(): boolean;
+    set useUnderline(val: boolean);
+    get visible(): boolean;
+    set visible(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Members
+
+    get_child(): Widget;
+    get_icon_name(): string | null;
+    get_name(): string | null;
+    get_needs_attention(): boolean;
+    get_title(): string | null;
+    get_use_underline(): boolean;
+    get_visible(): boolean;
+    set_icon_name(setting: string): void;
+    set_name(setting: string): void;
+    set_needs_attention(setting: boolean): void;
+    set_title(setting: string): void;
+    set_use_underline(setting: boolean): void;
+    set_visible(visible: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+}
+export module StackSidebar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        stack: Stack;
+    }
+}
+export class StackSidebar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<StackSidebar>;
+
+    constructor(properties?: Partial<StackSidebar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StackSidebar.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get stack(): Stack;
+    set stack(val: Stack);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): StackSidebar;
+
+    // Members
+
+    get_stack(): Stack | null;
+    set_stack(stack: Stack): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module StackSwitcher {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        stack: Stack;
+    }
+}
+export class StackSwitcher extends Widget implements Accessible, Buildable, ConstraintTarget, Orientable {
+    static $gtype: GObject.GType<StackSwitcher>;
+
+    constructor(properties?: Partial<StackSwitcher.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StackSwitcher.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get stack(): Stack;
+    set stack(val: Stack);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): StackSwitcher;
+
+    // Members
+
+    get_stack(): Stack | null;
+    set_stack(stack?: Stack | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module Statusbar {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Statusbar extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Statusbar>;
+
+    constructor(properties?: Partial<Statusbar.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Statusbar.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "text-popped", callback: (_source: this, context_id: number, text: string) => void): 
number;
+    connect_after(signal: "text-popped", callback: (_source: this, context_id: number, text: string) => 
void): number;
+    emit(signal: "text-popped", context_id: number, text: string): void;
+    connect(signal: "text-pushed", callback: (_source: this, context_id: number, text: string) => void): 
number;
+    connect_after(signal: "text-pushed", callback: (_source: this, context_id: number, text: string) => 
void): number;
+    emit(signal: "text-pushed", context_id: number, text: string): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Statusbar;
+
+    // Members
+
+    get_context_id(context_description: string): number;
+    pop(context_id: number): void;
+    push(context_id: number, text: string): number;
+    remove(context_id: number, message_id: number): void;
+    remove_all(context_id: number): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module StringFilter {
+    export interface ConstructorProperties extends Filter.ConstructorProperties {
+        [key: string]: any;
+        expression: Expression;
+        ignore_case: boolean;
+        ignoreCase: boolean;
+        match_mode: StringFilterMatchMode;
+        matchMode: StringFilterMatchMode;
+        search: string;
+    }
+}
+export class StringFilter extends Filter {
+    static $gtype: GObject.GType<StringFilter>;
+
+    constructor(properties?: Partial<StringFilter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StringFilter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get expression(): Expression;
+    set expression(val: Expression);
+    get ignore_case(): boolean;
+    set ignore_case(val: boolean);
+    get ignoreCase(): boolean;
+    set ignoreCase(val: boolean);
+    get match_mode(): StringFilterMatchMode;
+    set match_mode(val: StringFilterMatchMode);
+    get matchMode(): StringFilterMatchMode;
+    set matchMode(val: StringFilterMatchMode);
+    get search(): string;
+    set search(val: string);
+
+    // Constructors
+
+    static ["new"](expression?: Expression | null): StringFilter;
+
+    // Members
+
+    get_expression(): Expression | null;
+    get_ignore_case(): boolean;
+    get_match_mode(): StringFilterMatchMode;
+    get_search(): string | null;
+    set_expression(expression?: Expression | null): void;
+    set_ignore_case(ignore_case: boolean): void;
+    set_match_mode(mode: StringFilterMatchMode): void;
+    set_search(search?: string | null): void;
+}
+export module StringList {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class StringList<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>, Buildable
+{
+    static $gtype: GObject.GType<StringList>;
+
+    constructor(properties?: Partial<StringList.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<StringList.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](strings?: string[] | null): StringList;
+
+    // Members
+
+    append(string: string): void;
+    get_string(position: number): string | null;
+    remove(position: number): void;
+    splice(position: number, n_removals: number, additions?: string[] | null): void;
+    take(string: string): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module StringObject {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        string: string;
+    }
+}
+export class StringObject extends GObject.Object {
+    static $gtype: GObject.GType<StringObject>;
+
+    constructor(properties?: Partial<StringObject.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StringObject.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get string(): string;
+
+    // Constructors
+
+    static ["new"](string: string): StringObject;
+
+    // Members
+
+    get_string(): string;
+}
+export module StringSorter {
+    export interface ConstructorProperties extends Sorter.ConstructorProperties {
+        [key: string]: any;
+        expression: Expression;
+        ignore_case: boolean;
+        ignoreCase: boolean;
+    }
+}
+export class StringSorter extends Sorter {
+    static $gtype: GObject.GType<StringSorter>;
+
+    constructor(properties?: Partial<StringSorter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StringSorter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get expression(): Expression;
+    set expression(val: Expression);
+    get ignore_case(): boolean;
+    set ignore_case(val: boolean);
+    get ignoreCase(): boolean;
+    set ignoreCase(val: boolean);
+
+    // Constructors
+
+    static ["new"](expression?: Expression | null): StringSorter;
+
+    // Members
+
+    get_expression(): Expression | null;
+    get_ignore_case(): boolean;
+    set_expression(expression?: Expression | null): void;
+    set_ignore_case(ignore_case: boolean): void;
+}
+export module StyleContext {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        display: Gdk.Display;
+    }
+}
+export class StyleContext extends GObject.Object {
+    static $gtype: GObject.GType<StyleContext>;
+
+    constructor(properties?: Partial<StyleContext.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<StyleContext.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get display(): Gdk.Display;
+    set display(val: Gdk.Display);
+
+    // Fields
+    parent_object: GObject.Object;
+
+    // Members
+
+    add_class(class_name: string): void;
+    add_provider(provider: StyleProvider, priority: number): void;
+    get_border(): Border;
+    get_color(): Gdk.RGBA;
+    get_display(): Gdk.Display;
+    get_margin(): Border;
+    get_padding(): Border;
+    get_scale(): number;
+    get_state(): StateFlags;
+    has_class(class_name: string): boolean;
+    lookup_color(color_name: string): [boolean, Gdk.RGBA];
+    remove_class(class_name: string): void;
+    remove_provider(provider: StyleProvider): void;
+    restore(): void;
+    save(): void;
+    set_display(display: Gdk.Display): void;
+    set_scale(scale: number): void;
+    set_state(flags: StateFlags): void;
+    to_string(flags: StyleContextPrintFlags): string;
+    vfunc_changed(): void;
+    static add_provider_for_display(display: Gdk.Display, provider: StyleProvider, priority: number): void;
+    static remove_provider_for_display(display: Gdk.Display, provider: StyleProvider): void;
+}
+export module Switch {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        active: boolean;
+        state: boolean;
+    }
+}
+export class Switch extends Widget implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Switch>;
+
+    constructor(properties?: Partial<Switch.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Switch.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): boolean;
+    set active(val: boolean);
+    get state(): boolean;
+    set state(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "state-set", callback: (_source: this, state: boolean) => boolean): number;
+    connect_after(signal: "state-set", callback: (_source: this, state: boolean) => boolean): number;
+    emit(signal: "state-set", state: boolean): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): Switch;
+
+    // Members
+
+    get_active(): boolean;
+    get_state(): boolean;
+    set_active(is_active: boolean): void;
+    set_state(state: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Text {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activates_default: boolean;
+        activatesDefault: boolean;
+        attributes: Pango.AttrList;
+        buffer: EntryBuffer;
+        enable_emoji_completion: boolean;
+        enableEmojiCompletion: boolean;
+        extra_menu: Gio.MenuModel;
+        extraMenu: Gio.MenuModel;
+        im_module: string;
+        imModule: string;
+        input_hints: InputHints;
+        inputHints: InputHints;
+        input_purpose: InputPurpose;
+        inputPurpose: InputPurpose;
+        invisible_char: number;
+        invisibleChar: number;
+        invisible_char_set: boolean;
+        invisibleCharSet: boolean;
+        max_length: number;
+        maxLength: number;
+        overwrite_mode: boolean;
+        overwriteMode: boolean;
+        placeholder_text: string;
+        placeholderText: string;
+        propagate_text_width: boolean;
+        propagateTextWidth: boolean;
+        scroll_offset: number;
+        scrollOffset: number;
+        tabs: Pango.TabArray;
+        truncate_multiline: boolean;
+        truncateMultiline: boolean;
+        visibility: boolean;
+    }
+}
+export class Text extends Widget implements Accessible, Buildable, ConstraintTarget, Editable {
+    static $gtype: GObject.GType<Text>;
+
+    constructor(properties?: Partial<Text.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Text.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activates_default(): boolean;
+    set activates_default(val: boolean);
+    get activatesDefault(): boolean;
+    set activatesDefault(val: boolean);
+    get attributes(): Pango.AttrList;
+    set attributes(val: Pango.AttrList);
+    get buffer(): EntryBuffer;
+    set buffer(val: EntryBuffer);
+    get enable_emoji_completion(): boolean;
+    set enable_emoji_completion(val: boolean);
+    get enableEmojiCompletion(): boolean;
+    set enableEmojiCompletion(val: boolean);
+    get extra_menu(): Gio.MenuModel;
+    set extra_menu(val: Gio.MenuModel);
+    get extraMenu(): Gio.MenuModel;
+    set extraMenu(val: Gio.MenuModel);
+    get im_module(): string;
+    set im_module(val: string);
+    get imModule(): string;
+    set imModule(val: string);
+    get input_hints(): InputHints;
+    set input_hints(val: InputHints);
+    get inputHints(): InputHints;
+    set inputHints(val: InputHints);
+    get input_purpose(): InputPurpose;
+    set input_purpose(val: InputPurpose);
+    get inputPurpose(): InputPurpose;
+    set inputPurpose(val: InputPurpose);
+    get invisible_char(): number;
+    set invisible_char(val: number);
+    get invisibleChar(): number;
+    set invisibleChar(val: number);
+    get invisible_char_set(): boolean;
+    set invisible_char_set(val: boolean);
+    get invisibleCharSet(): boolean;
+    set invisibleCharSet(val: boolean);
+    get max_length(): number;
+    set max_length(val: number);
+    get maxLength(): number;
+    set maxLength(val: number);
+    get overwrite_mode(): boolean;
+    set overwrite_mode(val: boolean);
+    get overwriteMode(): boolean;
+    set overwriteMode(val: boolean);
+    get placeholder_text(): string;
+    set placeholder_text(val: string);
+    get placeholderText(): string;
+    set placeholderText(val: string);
+    get propagate_text_width(): boolean;
+    set propagate_text_width(val: boolean);
+    get propagateTextWidth(): boolean;
+    set propagateTextWidth(val: boolean);
+    get scroll_offset(): number;
+    get scrollOffset(): number;
+    get tabs(): Pango.TabArray;
+    set tabs(val: Pango.TabArray);
+    get truncate_multiline(): boolean;
+    set truncate_multiline(val: boolean);
+    get truncateMultiline(): boolean;
+    set truncateMultiline(val: boolean);
+    get visibility(): boolean;
+    set visibility(val: boolean);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate", callback: (_source: this) => void): number;
+    connect_after(signal: "activate", callback: (_source: this) => void): number;
+    emit(signal: "activate"): void;
+    connect(signal: "backspace", callback: (_source: this) => void): number;
+    connect_after(signal: "backspace", callback: (_source: this) => void): number;
+    emit(signal: "backspace"): void;
+    connect(signal: "copy-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "copy-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "copy-clipboard"): void;
+    connect(signal: "cut-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "cut-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "cut-clipboard"): void;
+    connect(signal: "delete-from-cursor", callback: (_source: this, type: DeleteType, count: number) => 
void): number;
+    connect_after(
+        signal: "delete-from-cursor",
+        callback: (_source: this, type: DeleteType, count: number) => void
+    ): number;
+    emit(signal: "delete-from-cursor", type: DeleteType, count: number): void;
+    connect(signal: "insert-at-cursor", callback: (_source: this, string: string) => void): number;
+    connect_after(signal: "insert-at-cursor", callback: (_source: this, string: string) => void): number;
+    emit(signal: "insert-at-cursor", string: string): void;
+    connect(signal: "insert-emoji", callback: (_source: this) => void): number;
+    connect_after(signal: "insert-emoji", callback: (_source: this) => void): number;
+    emit(signal: "insert-emoji"): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend: boolean) => void
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend: boolean) => void
+    ): number;
+    emit(signal: "move-cursor", step: MovementStep, count: number, extend: boolean): void;
+    connect(signal: "paste-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "paste-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "paste-clipboard"): void;
+    connect(signal: "preedit-changed", callback: (_source: this, preedit: string) => void): number;
+    connect_after(signal: "preedit-changed", callback: (_source: this, preedit: string) => void): number;
+    emit(signal: "preedit-changed", preedit: string): void;
+    connect(signal: "toggle-overwrite", callback: (_source: this) => void): number;
+    connect_after(signal: "toggle-overwrite", callback: (_source: this) => void): number;
+    emit(signal: "toggle-overwrite"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get editable(): boolean;
+    set editable(val: boolean);
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get max_width_chars(): number;
+    set max_width_chars(val: number);
+    get maxWidthChars(): number;
+    set maxWidthChars(val: number);
+    get selection_bound(): number;
+    get selectionBound(): number;
+    get text(): string;
+    set text(val: string);
+    get width_chars(): number;
+    set width_chars(val: number);
+    get widthChars(): number;
+    set widthChars(val: number);
+    get xalign(): number;
+    set xalign(val: number);
+
+    // Constructors
+
+    static ["new"](): Text;
+    static new_with_buffer(buffer: EntryBuffer): Text;
+
+    // Members
+
+    compute_cursor_extents(position: number): [Graphene.Rect | null, Graphene.Rect | null];
+    get_activates_default(): boolean;
+    get_attributes(): Pango.AttrList | null;
+    get_buffer(): EntryBuffer;
+    get_enable_emoji_completion(): boolean;
+    get_extra_menu(): Gio.MenuModel | null;
+    get_input_hints(): InputHints;
+    get_input_purpose(): InputPurpose;
+    get_invisible_char(): number;
+    get_max_length(): number;
+    get_overwrite_mode(): boolean;
+    get_placeholder_text(): string | null;
+    get_propagate_text_width(): boolean;
+    get_tabs(): Pango.TabArray | null;
+    get_text_length(): number;
+    get_truncate_multiline(): boolean;
+    get_visibility(): boolean;
+    grab_focus_without_selecting(): boolean;
+    set_activates_default(activates: boolean): void;
+    set_attributes(attrs?: Pango.AttrList | null): void;
+    set_buffer(buffer: EntryBuffer): void;
+    set_enable_emoji_completion(enable_emoji_completion: boolean): void;
+    set_extra_menu(model?: Gio.MenuModel | null): void;
+    set_input_hints(hints: InputHints): void;
+    set_input_purpose(purpose: InputPurpose): void;
+    set_invisible_char(ch: number): void;
+    set_max_length(length: number): void;
+    set_overwrite_mode(overwrite: boolean): void;
+    set_placeholder_text(text?: string | null): void;
+    set_propagate_text_width(propagate_text_width: boolean): void;
+    set_tabs(tabs?: Pango.TabArray | null): void;
+    set_truncate_multiline(truncate_multiline: boolean): void;
+    set_visibility(visible: boolean): void;
+    unset_invisible_char(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+export module TextBuffer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        can_redo: boolean;
+        canRedo: boolean;
+        can_undo: boolean;
+        canUndo: boolean;
+        cursor_position: number;
+        cursorPosition: number;
+        enable_undo: boolean;
+        enableUndo: boolean;
+        has_selection: boolean;
+        hasSelection: boolean;
+        tag_table: TextTagTable;
+        tagTable: TextTagTable;
+        text: string;
+    }
+}
+export class TextBuffer extends GObject.Object {
+    static $gtype: GObject.GType<TextBuffer>;
+
+    constructor(properties?: Partial<TextBuffer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TextBuffer.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get can_redo(): boolean;
+    get canRedo(): boolean;
+    get can_undo(): boolean;
+    get canUndo(): boolean;
+    get cursor_position(): number;
+    get cursorPosition(): number;
+    get enable_undo(): boolean;
+    set enable_undo(val: boolean);
+    get enableUndo(): boolean;
+    set enableUndo(val: boolean);
+    get has_selection(): boolean;
+    get hasSelection(): boolean;
+    get tag_table(): TextTagTable;
+    get tagTable(): TextTagTable;
+    get text(): string;
+    set text(val: string);
+
+    // Fields
+    priv: TextBufferPrivate;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(
+        signal: "apply-tag",
+        callback: (_source: this, tag: TextTag, start: TextIter, end: TextIter) => void
+    ): number;
+    connect_after(
+        signal: "apply-tag",
+        callback: (_source: this, tag: TextTag, start: TextIter, end: TextIter) => void
+    ): number;
+    emit(signal: "apply-tag", tag: TextTag, start: TextIter, end: TextIter): void;
+    connect(signal: "begin-user-action", callback: (_source: this) => void): number;
+    connect_after(signal: "begin-user-action", callback: (_source: this) => void): number;
+    emit(signal: "begin-user-action"): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+    connect(signal: "delete-range", callback: (_source: this, start: TextIter, end: TextIter) => void): 
number;
+    connect_after(signal: "delete-range", callback: (_source: this, start: TextIter, end: TextIter) => 
void): number;
+    emit(signal: "delete-range", start: TextIter, end: TextIter): void;
+    connect(signal: "end-user-action", callback: (_source: this) => void): number;
+    connect_after(signal: "end-user-action", callback: (_source: this) => void): number;
+    emit(signal: "end-user-action"): void;
+    connect(
+        signal: "insert-child-anchor",
+        callback: (_source: this, location: TextIter, anchor: TextChildAnchor) => void
+    ): number;
+    connect_after(
+        signal: "insert-child-anchor",
+        callback: (_source: this, location: TextIter, anchor: TextChildAnchor) => void
+    ): number;
+    emit(signal: "insert-child-anchor", location: TextIter, anchor: TextChildAnchor): void;
+    connect(
+        signal: "insert-paintable",
+        callback: (_source: this, location: TextIter, paintable: Gdk.Paintable) => void
+    ): number;
+    connect_after(
+        signal: "insert-paintable",
+        callback: (_source: this, location: TextIter, paintable: Gdk.Paintable) => void
+    ): number;
+    emit(signal: "insert-paintable", location: TextIter, paintable: Gdk.Paintable): void;
+    connect(
+        signal: "insert-text",
+        callback: (_source: this, location: TextIter, text: string, len: number) => void
+    ): number;
+    connect_after(
+        signal: "insert-text",
+        callback: (_source: this, location: TextIter, text: string, len: number) => void
+    ): number;
+    emit(signal: "insert-text", location: TextIter, text: string, len: number): void;
+    connect(signal: "mark-deleted", callback: (_source: this, mark: TextMark) => void): number;
+    connect_after(signal: "mark-deleted", callback: (_source: this, mark: TextMark) => void): number;
+    emit(signal: "mark-deleted", mark: TextMark): void;
+    connect(signal: "mark-set", callback: (_source: this, location: TextIter, mark: TextMark) => void): 
number;
+    connect_after(signal: "mark-set", callback: (_source: this, location: TextIter, mark: TextMark) => 
void): number;
+    emit(signal: "mark-set", location: TextIter, mark: TextMark): void;
+    connect(signal: "modified-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "modified-changed", callback: (_source: this) => void): number;
+    emit(signal: "modified-changed"): void;
+    connect(signal: "paste-done", callback: (_source: this, clipboard: Gdk.Clipboard) => void): number;
+    connect_after(signal: "paste-done", callback: (_source: this, clipboard: Gdk.Clipboard) => void): number;
+    emit(signal: "paste-done", clipboard: Gdk.Clipboard): void;
+    connect(signal: "redo", callback: (_source: this) => void): number;
+    connect_after(signal: "redo", callback: (_source: this) => void): number;
+    emit(signal: "redo"): void;
+    connect(
+        signal: "remove-tag",
+        callback: (_source: this, tag: TextTag, start: TextIter, end: TextIter) => void
+    ): number;
+    connect_after(
+        signal: "remove-tag",
+        callback: (_source: this, tag: TextTag, start: TextIter, end: TextIter) => void
+    ): number;
+    emit(signal: "remove-tag", tag: TextTag, start: TextIter, end: TextIter): void;
+    connect(signal: "undo", callback: (_source: this) => void): number;
+    connect_after(signal: "undo", callback: (_source: this) => void): number;
+    emit(signal: "undo"): void;
+
+    // Constructors
+
+    static ["new"](table?: TextTagTable | null): TextBuffer;
+
+    // Members
+
+    add_mark(mark: TextMark, where: TextIter): void;
+    add_selection_clipboard(clipboard: Gdk.Clipboard): void;
+    apply_tag(tag: TextTag, start: TextIter, end: TextIter): void;
+    apply_tag_by_name(name: string, start: TextIter, end: TextIter): void;
+    backspace(iter: TextIter, interactive: boolean, default_editable: boolean): boolean;
+    begin_irreversible_action(): void;
+    begin_user_action(): void;
+    copy_clipboard(clipboard: Gdk.Clipboard): void;
+    create_child_anchor(iter: TextIter): TextChildAnchor;
+    create_mark(mark_name: string | null, where: TextIter, left_gravity: boolean): TextMark;
+    cut_clipboard(clipboard: Gdk.Clipboard, default_editable: boolean): void;
+    ["delete"](start: TextIter, end: TextIter): void;
+    delete_interactive(start_iter: TextIter, end_iter: TextIter, default_editable: boolean): boolean;
+    delete_mark(mark: TextMark): void;
+    delete_mark_by_name(name: string): void;
+    delete_selection(interactive: boolean, default_editable: boolean): boolean;
+    end_irreversible_action(): void;
+    end_user_action(): void;
+    get_bounds(): [TextIter, TextIter];
+    get_can_redo(): boolean;
+    get_can_undo(): boolean;
+    get_char_count(): number;
+    get_enable_undo(): boolean;
+    get_end_iter(): TextIter;
+    get_has_selection(): boolean;
+    get_insert(): TextMark;
+    get_iter_at_child_anchor(anchor: TextChildAnchor): TextIter;
+    get_iter_at_line(line_number: number): [boolean, TextIter];
+    get_iter_at_line_index(line_number: number, byte_index: number): [boolean, TextIter];
+    get_iter_at_line_offset(line_number: number, char_offset: number): [boolean, TextIter];
+    get_iter_at_mark(mark: TextMark): TextIter;
+    get_iter_at_offset(char_offset: number): TextIter;
+    get_line_count(): number;
+    get_mark(name: string): TextMark | null;
+    get_max_undo_levels(): number;
+    get_modified(): boolean;
+    get_selection_bound(): TextMark;
+    get_selection_bounds(): [boolean, TextIter, TextIter];
+    get_selection_content(): Gdk.ContentProvider;
+    get_slice(start: TextIter, end: TextIter, include_hidden_chars: boolean): string;
+    get_start_iter(): TextIter;
+    get_tag_table(): TextTagTable;
+    get_text(start: TextIter, end: TextIter, include_hidden_chars: boolean): string;
+    insert(iter: TextIter, text: string, len: number): void;
+    insert_at_cursor(text: string, len: number): void;
+    insert_child_anchor(iter: TextIter, anchor: TextChildAnchor): void;
+    insert_interactive(iter: TextIter, text: string, len: number, default_editable: boolean): boolean;
+    insert_interactive_at_cursor(text: string, len: number, default_editable: boolean): boolean;
+    insert_markup(iter: TextIter, markup: string, len: number): void;
+    insert_paintable(iter: TextIter, paintable: Gdk.Paintable): void;
+    insert_range(iter: TextIter, start: TextIter, end: TextIter): void;
+    insert_range_interactive(iter: TextIter, start: TextIter, end: TextIter, default_editable: boolean): 
boolean;
+    move_mark(mark: TextMark, where: TextIter): void;
+    move_mark_by_name(name: string, where: TextIter): void;
+    paste_clipboard(clipboard: Gdk.Clipboard, override_location: TextIter | null, default_editable: 
boolean): void;
+    place_cursor(where: TextIter): void;
+    redo(): void;
+    remove_all_tags(start: TextIter, end: TextIter): void;
+    remove_selection_clipboard(clipboard: Gdk.Clipboard): void;
+    remove_tag(tag: TextTag, start: TextIter, end: TextIter): void;
+    remove_tag_by_name(name: string, start: TextIter, end: TextIter): void;
+    select_range(ins: TextIter, bound: TextIter): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_undo_levels(max_undo_levels: number): void;
+    set_modified(setting: boolean): void;
+    set_text(text: string, len: number): void;
+    undo(): void;
+    vfunc_apply_tag(tag: TextTag, start: TextIter, end: TextIter): void;
+    vfunc_begin_user_action(): void;
+    vfunc_changed(): void;
+    vfunc_delete_range(start: TextIter, end: TextIter): void;
+    vfunc_end_user_action(): void;
+    vfunc_insert_child_anchor(iter: TextIter, anchor: TextChildAnchor): void;
+    vfunc_insert_paintable(iter: TextIter, paintable: Gdk.Paintable): void;
+    vfunc_insert_text(pos: TextIter, new_text: string, new_text_length: number): void;
+    vfunc_mark_deleted(mark: TextMark): void;
+    vfunc_mark_set(location: TextIter, mark: TextMark): void;
+    vfunc_modified_changed(): void;
+    vfunc_paste_done(clipboard: Gdk.Clipboard): void;
+    vfunc_redo(): void;
+    vfunc_remove_tag(tag: TextTag, start: TextIter, end: TextIter): void;
+    vfunc_undo(): void;
+}
+export module TextChildAnchor {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TextChildAnchor extends GObject.Object {
+    static $gtype: GObject.GType<TextChildAnchor>;
+
+    constructor(properties?: Partial<TextChildAnchor.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TextChildAnchor.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): TextChildAnchor;
+    static new_with_replacement(character: string): TextChildAnchor;
+
+    // Members
+
+    get_deleted(): boolean;
+    get_widgets(): Widget[];
+}
+export module TextMark {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        left_gravity: boolean;
+        leftGravity: boolean;
+        name: string;
+    }
+}
+export class TextMark extends GObject.Object {
+    static $gtype: GObject.GType<TextMark>;
+
+    constructor(properties?: Partial<TextMark.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TextMark.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get left_gravity(): boolean;
+    get leftGravity(): boolean;
+    get name(): string;
+
+    // Constructors
+
+    static ["new"](name: string | null, left_gravity: boolean): TextMark;
+
+    // Members
+
+    get_buffer(): TextBuffer | null;
+    get_deleted(): boolean;
+    get_left_gravity(): boolean;
+    get_name(): string | null;
+    get_visible(): boolean;
+    set_visible(setting: boolean): void;
+}
+export module TextTag {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        accumulative_margin: boolean;
+        accumulativeMargin: boolean;
+        allow_breaks: boolean;
+        allowBreaks: boolean;
+        allow_breaks_set: boolean;
+        allowBreaksSet: boolean;
+        background: string;
+        background_full_height: boolean;
+        backgroundFullHeight: boolean;
+        background_full_height_set: boolean;
+        backgroundFullHeightSet: boolean;
+        background_rgba: Gdk.RGBA;
+        backgroundRgba: Gdk.RGBA;
+        background_set: boolean;
+        backgroundSet: boolean;
+        direction: TextDirection;
+        editable: boolean;
+        editable_set: boolean;
+        editableSet: boolean;
+        fallback: boolean;
+        fallback_set: boolean;
+        fallbackSet: boolean;
+        family: string;
+        family_set: boolean;
+        familySet: boolean;
+        font: string;
+        font_desc: Pango.FontDescription;
+        fontDesc: Pango.FontDescription;
+        font_features: string;
+        fontFeatures: string;
+        font_features_set: boolean;
+        fontFeaturesSet: boolean;
+        foreground: string;
+        foreground_rgba: Gdk.RGBA;
+        foregroundRgba: Gdk.RGBA;
+        foreground_set: boolean;
+        foregroundSet: boolean;
+        indent: number;
+        indent_set: boolean;
+        indentSet: boolean;
+        insert_hyphens: boolean;
+        insertHyphens: boolean;
+        insert_hyphens_set: boolean;
+        insertHyphensSet: boolean;
+        invisible: boolean;
+        invisible_set: boolean;
+        invisibleSet: boolean;
+        justification: Justification;
+        justification_set: boolean;
+        justificationSet: boolean;
+        language: string;
+        language_set: boolean;
+        languageSet: boolean;
+        left_margin: number;
+        leftMargin: number;
+        left_margin_set: boolean;
+        leftMarginSet: boolean;
+        letter_spacing: number;
+        letterSpacing: number;
+        letter_spacing_set: boolean;
+        letterSpacingSet: boolean;
+        line_height: number;
+        lineHeight: number;
+        line_height_set: boolean;
+        lineHeightSet: boolean;
+        name: string;
+        overline: Pango.Overline;
+        overline_rgba: Gdk.RGBA;
+        overlineRgba: Gdk.RGBA;
+        overline_rgba_set: boolean;
+        overlineRgbaSet: boolean;
+        overline_set: boolean;
+        overlineSet: boolean;
+        paragraph_background: string;
+        paragraphBackground: string;
+        paragraph_background_rgba: Gdk.RGBA;
+        paragraphBackgroundRgba: Gdk.RGBA;
+        paragraph_background_set: boolean;
+        paragraphBackgroundSet: boolean;
+        pixels_above_lines: number;
+        pixelsAboveLines: number;
+        pixels_above_lines_set: boolean;
+        pixelsAboveLinesSet: boolean;
+        pixels_below_lines: number;
+        pixelsBelowLines: number;
+        pixels_below_lines_set: boolean;
+        pixelsBelowLinesSet: boolean;
+        pixels_inside_wrap: number;
+        pixelsInsideWrap: number;
+        pixels_inside_wrap_set: boolean;
+        pixelsInsideWrapSet: boolean;
+        right_margin: number;
+        rightMargin: number;
+        right_margin_set: boolean;
+        rightMarginSet: boolean;
+        rise: number;
+        rise_set: boolean;
+        riseSet: boolean;
+        scale: number;
+        scale_set: boolean;
+        scaleSet: boolean;
+        sentence: boolean;
+        sentence_set: boolean;
+        sentenceSet: boolean;
+        show_spaces: Pango.ShowFlags;
+        showSpaces: Pango.ShowFlags;
+        show_spaces_set: boolean;
+        showSpacesSet: boolean;
+        size: number;
+        size_points: number;
+        sizePoints: number;
+        size_set: boolean;
+        sizeSet: boolean;
+        stretch: Pango.Stretch;
+        stretch_set: boolean;
+        stretchSet: boolean;
+        strikethrough: boolean;
+        strikethrough_rgba: Gdk.RGBA;
+        strikethroughRgba: Gdk.RGBA;
+        strikethrough_rgba_set: boolean;
+        strikethroughRgbaSet: boolean;
+        strikethrough_set: boolean;
+        strikethroughSet: boolean;
+        style: Pango.Style;
+        style_set: boolean;
+        styleSet: boolean;
+        tabs: Pango.TabArray;
+        tabs_set: boolean;
+        tabsSet: boolean;
+        text_transform: Pango.TextTransform;
+        textTransform: Pango.TextTransform;
+        text_transform_set: boolean;
+        textTransformSet: boolean;
+        underline: Pango.Underline;
+        underline_rgba: Gdk.RGBA;
+        underlineRgba: Gdk.RGBA;
+        underline_rgba_set: boolean;
+        underlineRgbaSet: boolean;
+        underline_set: boolean;
+        underlineSet: boolean;
+        variant: Pango.Variant;
+        variant_set: boolean;
+        variantSet: boolean;
+        weight: number;
+        weight_set: boolean;
+        weightSet: boolean;
+        word: boolean;
+        word_set: boolean;
+        wordSet: boolean;
+        wrap_mode: WrapMode;
+        wrapMode: WrapMode;
+        wrap_mode_set: boolean;
+        wrapModeSet: boolean;
+    }
+}
+export class TextTag extends GObject.Object {
+    static $gtype: GObject.GType<TextTag>;
+
+    constructor(properties?: Partial<TextTag.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TextTag.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accumulative_margin(): boolean;
+    set accumulative_margin(val: boolean);
+    get accumulativeMargin(): boolean;
+    set accumulativeMargin(val: boolean);
+    get allow_breaks(): boolean;
+    set allow_breaks(val: boolean);
+    get allowBreaks(): boolean;
+    set allowBreaks(val: boolean);
+    get allow_breaks_set(): boolean;
+    set allow_breaks_set(val: boolean);
+    get allowBreaksSet(): boolean;
+    set allowBreaksSet(val: boolean);
+    set background(val: string);
+    get background_full_height(): boolean;
+    set background_full_height(val: boolean);
+    get backgroundFullHeight(): boolean;
+    set backgroundFullHeight(val: boolean);
+    get background_full_height_set(): boolean;
+    set background_full_height_set(val: boolean);
+    get backgroundFullHeightSet(): boolean;
+    set backgroundFullHeightSet(val: boolean);
+    get background_rgba(): Gdk.RGBA;
+    set background_rgba(val: Gdk.RGBA);
+    get backgroundRgba(): Gdk.RGBA;
+    set backgroundRgba(val: Gdk.RGBA);
+    get background_set(): boolean;
+    set background_set(val: boolean);
+    get backgroundSet(): boolean;
+    set backgroundSet(val: boolean);
+    get direction(): TextDirection;
+    set direction(val: TextDirection);
+    get editable(): boolean;
+    set editable(val: boolean);
+    get editable_set(): boolean;
+    set editable_set(val: boolean);
+    get editableSet(): boolean;
+    set editableSet(val: boolean);
+    get fallback(): boolean;
+    set fallback(val: boolean);
+    get fallback_set(): boolean;
+    set fallback_set(val: boolean);
+    get fallbackSet(): boolean;
+    set fallbackSet(val: boolean);
+    get family(): string;
+    set family(val: string);
+    get family_set(): boolean;
+    set family_set(val: boolean);
+    get familySet(): boolean;
+    set familySet(val: boolean);
+    get font(): string;
+    set font(val: string);
+    get font_desc(): Pango.FontDescription;
+    set font_desc(val: Pango.FontDescription);
+    get fontDesc(): Pango.FontDescription;
+    set fontDesc(val: Pango.FontDescription);
+    get font_features(): string;
+    set font_features(val: string);
+    get fontFeatures(): string;
+    set fontFeatures(val: string);
+    get font_features_set(): boolean;
+    set font_features_set(val: boolean);
+    get fontFeaturesSet(): boolean;
+    set fontFeaturesSet(val: boolean);
+    set foreground(val: string);
+    get foreground_rgba(): Gdk.RGBA;
+    set foreground_rgba(val: Gdk.RGBA);
+    get foregroundRgba(): Gdk.RGBA;
+    set foregroundRgba(val: Gdk.RGBA);
+    get foreground_set(): boolean;
+    set foreground_set(val: boolean);
+    get foregroundSet(): boolean;
+    set foregroundSet(val: boolean);
+    get indent(): number;
+    set indent(val: number);
+    get indent_set(): boolean;
+    set indent_set(val: boolean);
+    get indentSet(): boolean;
+    set indentSet(val: boolean);
+    get insert_hyphens(): boolean;
+    set insert_hyphens(val: boolean);
+    get insertHyphens(): boolean;
+    set insertHyphens(val: boolean);
+    get insert_hyphens_set(): boolean;
+    set insert_hyphens_set(val: boolean);
+    get insertHyphensSet(): boolean;
+    set insertHyphensSet(val: boolean);
+    get invisible(): boolean;
+    set invisible(val: boolean);
+    get invisible_set(): boolean;
+    set invisible_set(val: boolean);
+    get invisibleSet(): boolean;
+    set invisibleSet(val: boolean);
+    get justification(): Justification;
+    set justification(val: Justification);
+    get justification_set(): boolean;
+    set justification_set(val: boolean);
+    get justificationSet(): boolean;
+    set justificationSet(val: boolean);
+    get language(): string;
+    set language(val: string);
+    get language_set(): boolean;
+    set language_set(val: boolean);
+    get languageSet(): boolean;
+    set languageSet(val: boolean);
+    get left_margin(): number;
+    set left_margin(val: number);
+    get leftMargin(): number;
+    set leftMargin(val: number);
+    get left_margin_set(): boolean;
+    set left_margin_set(val: boolean);
+    get leftMarginSet(): boolean;
+    set leftMarginSet(val: boolean);
+    get letter_spacing(): number;
+    set letter_spacing(val: number);
+    get letterSpacing(): number;
+    set letterSpacing(val: number);
+    get letter_spacing_set(): boolean;
+    set letter_spacing_set(val: boolean);
+    get letterSpacingSet(): boolean;
+    set letterSpacingSet(val: boolean);
+    get line_height(): number;
+    set line_height(val: number);
+    get lineHeight(): number;
+    set lineHeight(val: number);
+    get line_height_set(): boolean;
+    set line_height_set(val: boolean);
+    get lineHeightSet(): boolean;
+    set lineHeightSet(val: boolean);
+    get name(): string;
+    get overline(): Pango.Overline;
+    set overline(val: Pango.Overline);
+    get overline_rgba(): Gdk.RGBA;
+    set overline_rgba(val: Gdk.RGBA);
+    get overlineRgba(): Gdk.RGBA;
+    set overlineRgba(val: Gdk.RGBA);
+    get overline_rgba_set(): boolean;
+    set overline_rgba_set(val: boolean);
+    get overlineRgbaSet(): boolean;
+    set overlineRgbaSet(val: boolean);
+    get overline_set(): boolean;
+    set overline_set(val: boolean);
+    get overlineSet(): boolean;
+    set overlineSet(val: boolean);
+    set paragraph_background(val: string);
+    set paragraphBackground(val: string);
+    get paragraph_background_rgba(): Gdk.RGBA;
+    set paragraph_background_rgba(val: Gdk.RGBA);
+    get paragraphBackgroundRgba(): Gdk.RGBA;
+    set paragraphBackgroundRgba(val: Gdk.RGBA);
+    get paragraph_background_set(): boolean;
+    set paragraph_background_set(val: boolean);
+    get paragraphBackgroundSet(): boolean;
+    set paragraphBackgroundSet(val: boolean);
+    get pixels_above_lines(): number;
+    set pixels_above_lines(val: number);
+    get pixelsAboveLines(): number;
+    set pixelsAboveLines(val: number);
+    get pixels_above_lines_set(): boolean;
+    set pixels_above_lines_set(val: boolean);
+    get pixelsAboveLinesSet(): boolean;
+    set pixelsAboveLinesSet(val: boolean);
+    get pixels_below_lines(): number;
+    set pixels_below_lines(val: number);
+    get pixelsBelowLines(): number;
+    set pixelsBelowLines(val: number);
+    get pixels_below_lines_set(): boolean;
+    set pixels_below_lines_set(val: boolean);
+    get pixelsBelowLinesSet(): boolean;
+    set pixelsBelowLinesSet(val: boolean);
+    get pixels_inside_wrap(): number;
+    set pixels_inside_wrap(val: number);
+    get pixelsInsideWrap(): number;
+    set pixelsInsideWrap(val: number);
+    get pixels_inside_wrap_set(): boolean;
+    set pixels_inside_wrap_set(val: boolean);
+    get pixelsInsideWrapSet(): boolean;
+    set pixelsInsideWrapSet(val: boolean);
+    get right_margin(): number;
+    set right_margin(val: number);
+    get rightMargin(): number;
+    set rightMargin(val: number);
+    get right_margin_set(): boolean;
+    set right_margin_set(val: boolean);
+    get rightMarginSet(): boolean;
+    set rightMarginSet(val: boolean);
+    get rise(): number;
+    set rise(val: number);
+    get rise_set(): boolean;
+    set rise_set(val: boolean);
+    get riseSet(): boolean;
+    set riseSet(val: boolean);
+    get scale(): number;
+    set scale(val: number);
+    get scale_set(): boolean;
+    set scale_set(val: boolean);
+    get scaleSet(): boolean;
+    set scaleSet(val: boolean);
+    get sentence(): boolean;
+    set sentence(val: boolean);
+    get sentence_set(): boolean;
+    set sentence_set(val: boolean);
+    get sentenceSet(): boolean;
+    set sentenceSet(val: boolean);
+    get show_spaces(): Pango.ShowFlags;
+    set show_spaces(val: Pango.ShowFlags);
+    get showSpaces(): Pango.ShowFlags;
+    set showSpaces(val: Pango.ShowFlags);
+    get show_spaces_set(): boolean;
+    set show_spaces_set(val: boolean);
+    get showSpacesSet(): boolean;
+    set showSpacesSet(val: boolean);
+    get size(): number;
+    set size(val: number);
+    get size_points(): number;
+    set size_points(val: number);
+    get sizePoints(): number;
+    set sizePoints(val: number);
+    get size_set(): boolean;
+    set size_set(val: boolean);
+    get sizeSet(): boolean;
+    set sizeSet(val: boolean);
+    get stretch(): Pango.Stretch;
+    set stretch(val: Pango.Stretch);
+    get stretch_set(): boolean;
+    set stretch_set(val: boolean);
+    get stretchSet(): boolean;
+    set stretchSet(val: boolean);
+    get strikethrough(): boolean;
+    set strikethrough(val: boolean);
+    get strikethrough_rgba(): Gdk.RGBA;
+    set strikethrough_rgba(val: Gdk.RGBA);
+    get strikethroughRgba(): Gdk.RGBA;
+    set strikethroughRgba(val: Gdk.RGBA);
+    get strikethrough_rgba_set(): boolean;
+    set strikethrough_rgba_set(val: boolean);
+    get strikethroughRgbaSet(): boolean;
+    set strikethroughRgbaSet(val: boolean);
+    get strikethrough_set(): boolean;
+    set strikethrough_set(val: boolean);
+    get strikethroughSet(): boolean;
+    set strikethroughSet(val: boolean);
+    get style(): Pango.Style;
+    set style(val: Pango.Style);
+    get style_set(): boolean;
+    set style_set(val: boolean);
+    get styleSet(): boolean;
+    set styleSet(val: boolean);
+    get tabs(): Pango.TabArray;
+    set tabs(val: Pango.TabArray);
+    get tabs_set(): boolean;
+    set tabs_set(val: boolean);
+    get tabsSet(): boolean;
+    set tabsSet(val: boolean);
+    get text_transform(): Pango.TextTransform;
+    set text_transform(val: Pango.TextTransform);
+    get textTransform(): Pango.TextTransform;
+    set textTransform(val: Pango.TextTransform);
+    get text_transform_set(): boolean;
+    set text_transform_set(val: boolean);
+    get textTransformSet(): boolean;
+    set textTransformSet(val: boolean);
+    get underline(): Pango.Underline;
+    set underline(val: Pango.Underline);
+    get underline_rgba(): Gdk.RGBA;
+    set underline_rgba(val: Gdk.RGBA);
+    get underlineRgba(): Gdk.RGBA;
+    set underlineRgba(val: Gdk.RGBA);
+    get underline_rgba_set(): boolean;
+    set underline_rgba_set(val: boolean);
+    get underlineRgbaSet(): boolean;
+    set underlineRgbaSet(val: boolean);
+    get underline_set(): boolean;
+    set underline_set(val: boolean);
+    get underlineSet(): boolean;
+    set underlineSet(val: boolean);
+    get variant(): Pango.Variant;
+    set variant(val: Pango.Variant);
+    get variant_set(): boolean;
+    set variant_set(val: boolean);
+    get variantSet(): boolean;
+    set variantSet(val: boolean);
+    get weight(): number;
+    set weight(val: number);
+    get weight_set(): boolean;
+    set weight_set(val: boolean);
+    get weightSet(): boolean;
+    set weightSet(val: boolean);
+    get word(): boolean;
+    set word(val: boolean);
+    get word_set(): boolean;
+    set word_set(val: boolean);
+    get wordSet(): boolean;
+    set wordSet(val: boolean);
+    get wrap_mode(): WrapMode;
+    set wrap_mode(val: WrapMode);
+    get wrapMode(): WrapMode;
+    set wrapMode(val: WrapMode);
+    get wrap_mode_set(): boolean;
+    set wrap_mode_set(val: boolean);
+    get wrapModeSet(): boolean;
+    set wrapModeSet(val: boolean);
+
+    // Fields
+    priv: TextTagPrivate;
+
+    // Constructors
+
+    static ["new"](name?: string | null): TextTag;
+
+    // Members
+
+    changed(size_changed: boolean): void;
+    get_priority(): number;
+    set_priority(priority: number): void;
+}
+export module TextTagTable {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TextTagTable extends GObject.Object implements Buildable {
+    static $gtype: GObject.GType<TextTagTable>;
+
+    constructor(properties?: Partial<TextTagTable.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TextTagTable.ConstructorProperties>, ...args: any[]): void;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "tag-added", callback: (_source: this, tag: TextTag) => void): number;
+    connect_after(signal: "tag-added", callback: (_source: this, tag: TextTag) => void): number;
+    emit(signal: "tag-added", tag: TextTag): void;
+    connect(signal: "tag-changed", callback: (_source: this, tag: TextTag, size_changed: boolean) => void): 
number;
+    connect_after(
+        signal: "tag-changed",
+        callback: (_source: this, tag: TextTag, size_changed: boolean) => void
+    ): number;
+    emit(signal: "tag-changed", tag: TextTag, size_changed: boolean): void;
+    connect(signal: "tag-removed", callback: (_source: this, tag: TextTag) => void): number;
+    connect_after(signal: "tag-removed", callback: (_source: this, tag: TextTag) => void): number;
+    emit(signal: "tag-removed", tag: TextTag): void;
+
+    // Constructors
+
+    static ["new"](): TextTagTable;
+
+    // Members
+
+    add(tag: TextTag): boolean;
+    foreach(func: TextTagTableForeach): void;
+    get_size(): number;
+    lookup(name: string): TextTag | null;
+    remove(tag: TextTag): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module TextView {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        accepts_tab: boolean;
+        acceptsTab: boolean;
+        bottom_margin: number;
+        bottomMargin: number;
+        buffer: TextBuffer;
+        cursor_visible: boolean;
+        cursorVisible: boolean;
+        editable: boolean;
+        extra_menu: Gio.MenuModel;
+        extraMenu: Gio.MenuModel;
+        im_module: string;
+        imModule: string;
+        indent: number;
+        input_hints: InputHints;
+        inputHints: InputHints;
+        input_purpose: InputPurpose;
+        inputPurpose: InputPurpose;
+        justification: Justification;
+        left_margin: number;
+        leftMargin: number;
+        monospace: boolean;
+        overwrite: boolean;
+        pixels_above_lines: number;
+        pixelsAboveLines: number;
+        pixels_below_lines: number;
+        pixelsBelowLines: number;
+        pixels_inside_wrap: number;
+        pixelsInsideWrap: number;
+        right_margin: number;
+        rightMargin: number;
+        tabs: Pango.TabArray;
+        top_margin: number;
+        topMargin: number;
+        wrap_mode: WrapMode;
+        wrapMode: WrapMode;
+    }
+}
+export class TextView extends Widget implements Accessible, Buildable, ConstraintTarget, Scrollable {
+    static $gtype: GObject.GType<TextView>;
+
+    constructor(properties?: Partial<TextView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TextView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get accepts_tab(): boolean;
+    set accepts_tab(val: boolean);
+    get acceptsTab(): boolean;
+    set acceptsTab(val: boolean);
+    get bottom_margin(): number;
+    set bottom_margin(val: number);
+    get bottomMargin(): number;
+    set bottomMargin(val: number);
+    get buffer(): TextBuffer;
+    set buffer(val: TextBuffer);
+    get cursor_visible(): boolean;
+    set cursor_visible(val: boolean);
+    get cursorVisible(): boolean;
+    set cursorVisible(val: boolean);
+    get editable(): boolean;
+    set editable(val: boolean);
+    get extra_menu(): Gio.MenuModel;
+    set extra_menu(val: Gio.MenuModel);
+    get extraMenu(): Gio.MenuModel;
+    set extraMenu(val: Gio.MenuModel);
+    get im_module(): string;
+    set im_module(val: string);
+    get imModule(): string;
+    set imModule(val: string);
+    get indent(): number;
+    set indent(val: number);
+    get input_hints(): InputHints;
+    set input_hints(val: InputHints);
+    get inputHints(): InputHints;
+    set inputHints(val: InputHints);
+    get input_purpose(): InputPurpose;
+    set input_purpose(val: InputPurpose);
+    get inputPurpose(): InputPurpose;
+    set inputPurpose(val: InputPurpose);
+    get justification(): Justification;
+    set justification(val: Justification);
+    get left_margin(): number;
+    set left_margin(val: number);
+    get leftMargin(): number;
+    set leftMargin(val: number);
+    get monospace(): boolean;
+    set monospace(val: boolean);
+    get overwrite(): boolean;
+    set overwrite(val: boolean);
+    get pixels_above_lines(): number;
+    set pixels_above_lines(val: number);
+    get pixelsAboveLines(): number;
+    set pixelsAboveLines(val: number);
+    get pixels_below_lines(): number;
+    set pixels_below_lines(val: number);
+    get pixelsBelowLines(): number;
+    set pixelsBelowLines(val: number);
+    get pixels_inside_wrap(): number;
+    set pixels_inside_wrap(val: number);
+    get pixelsInsideWrap(): number;
+    set pixelsInsideWrap(val: number);
+    get right_margin(): number;
+    set right_margin(val: number);
+    get rightMargin(): number;
+    set rightMargin(val: number);
+    get tabs(): Pango.TabArray;
+    set tabs(val: Pango.TabArray);
+    get top_margin(): number;
+    set top_margin(val: number);
+    get topMargin(): number;
+    set topMargin(val: number);
+    get wrap_mode(): WrapMode;
+    set wrap_mode(val: WrapMode);
+    get wrapMode(): WrapMode;
+    set wrapMode(val: WrapMode);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "backspace", callback: (_source: this) => void): number;
+    connect_after(signal: "backspace", callback: (_source: this) => void): number;
+    emit(signal: "backspace"): void;
+    connect(signal: "copy-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "copy-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "copy-clipboard"): void;
+    connect(signal: "cut-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "cut-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "cut-clipboard"): void;
+    connect(signal: "delete-from-cursor", callback: (_source: this, type: DeleteType, count: number) => 
void): number;
+    connect_after(
+        signal: "delete-from-cursor",
+        callback: (_source: this, type: DeleteType, count: number) => void
+    ): number;
+    emit(signal: "delete-from-cursor", type: DeleteType, count: number): void;
+    connect(
+        signal: "extend-selection",
+        callback: (
+            _source: this,
+            granularity: TextExtendSelection,
+            location: TextIter,
+            start: TextIter,
+            end: TextIter
+        ) => boolean
+    ): number;
+    connect_after(
+        signal: "extend-selection",
+        callback: (
+            _source: this,
+            granularity: TextExtendSelection,
+            location: TextIter,
+            start: TextIter,
+            end: TextIter
+        ) => boolean
+    ): number;
+    emit(
+        signal: "extend-selection",
+        granularity: TextExtendSelection,
+        location: TextIter,
+        start: TextIter,
+        end: TextIter
+    ): void;
+    connect(signal: "insert-at-cursor", callback: (_source: this, string: string) => void): number;
+    connect_after(signal: "insert-at-cursor", callback: (_source: this, string: string) => void): number;
+    emit(signal: "insert-at-cursor", string: string): void;
+    connect(signal: "insert-emoji", callback: (_source: this) => void): number;
+    connect_after(signal: "insert-emoji", callback: (_source: this) => void): number;
+    emit(signal: "insert-emoji"): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend_selection: boolean) => void
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, count: number, extend_selection: boolean) => void
+    ): number;
+    emit(signal: "move-cursor", step: MovementStep, count: number, extend_selection: boolean): void;
+    connect(signal: "move-viewport", callback: (_source: this, step: ScrollStep, count: number) => void): 
number;
+    connect_after(signal: "move-viewport", callback: (_source: this, step: ScrollStep, count: number) => 
void): number;
+    emit(signal: "move-viewport", step: ScrollStep, count: number): void;
+    connect(signal: "paste-clipboard", callback: (_source: this) => void): number;
+    connect_after(signal: "paste-clipboard", callback: (_source: this) => void): number;
+    emit(signal: "paste-clipboard"): void;
+    connect(signal: "preedit-changed", callback: (_source: this, preedit: string) => void): number;
+    connect_after(signal: "preedit-changed", callback: (_source: this, preedit: string) => void): number;
+    emit(signal: "preedit-changed", preedit: string): void;
+    connect(signal: "select-all", callback: (_source: this, select: boolean) => void): number;
+    connect_after(signal: "select-all", callback: (_source: this, select: boolean) => void): number;
+    emit(signal: "select-all", select: boolean): void;
+    connect(signal: "set-anchor", callback: (_source: this) => void): number;
+    connect_after(signal: "set-anchor", callback: (_source: this) => void): number;
+    emit(signal: "set-anchor"): void;
+    connect(signal: "toggle-cursor-visible", callback: (_source: this) => void): number;
+    connect_after(signal: "toggle-cursor-visible", callback: (_source: this) => void): number;
+    emit(signal: "toggle-cursor-visible"): void;
+    connect(signal: "toggle-overwrite", callback: (_source: this) => void): number;
+    connect_after(signal: "toggle-overwrite", callback: (_source: this) => void): number;
+    emit(signal: "toggle-overwrite"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](): TextView;
+    static new_with_buffer(buffer: TextBuffer): TextView;
+
+    // Members
+
+    add_child_at_anchor(child: Widget, anchor: TextChildAnchor): void;
+    add_overlay(child: Widget, xpos: number, ypos: number): void;
+    backward_display_line(iter: TextIter): boolean;
+    backward_display_line_start(iter: TextIter): boolean;
+    buffer_to_window_coords(win: TextWindowType, buffer_x: number, buffer_y: number): [number, number];
+    forward_display_line(iter: TextIter): boolean;
+    forward_display_line_end(iter: TextIter): boolean;
+    get_accepts_tab(): boolean;
+    get_bottom_margin(): number;
+    get_buffer(): TextBuffer;
+    get_cursor_locations(iter?: TextIter | null): [Gdk.Rectangle | null, Gdk.Rectangle | null];
+    get_cursor_visible(): boolean;
+    get_editable(): boolean;
+    get_extra_menu(): Gio.MenuModel;
+    get_gutter(win: TextWindowType): Widget | null;
+    get_indent(): number;
+    get_input_hints(): InputHints;
+    get_input_purpose(): InputPurpose;
+    get_iter_at_location(x: number, y: number): [boolean, TextIter];
+    get_iter_at_position(x: number, y: number): [boolean, TextIter, number];
+    get_iter_location(iter: TextIter): Gdk.Rectangle;
+    get_justification(): Justification;
+    get_left_margin(): number;
+    get_line_at_y(y: number): [TextIter, number];
+    get_line_yrange(iter: TextIter): [number, number];
+    get_ltr_context(): Pango.Context;
+    get_monospace(): boolean;
+    get_overwrite(): boolean;
+    get_pixels_above_lines(): number;
+    get_pixels_below_lines(): number;
+    get_pixels_inside_wrap(): number;
+    get_right_margin(): number;
+    get_rtl_context(): Pango.Context;
+    get_tabs(): Pango.TabArray | null;
+    get_top_margin(): number;
+    get_visible_rect(): Gdk.Rectangle;
+    get_wrap_mode(): WrapMode;
+    im_context_filter_keypress(event: Gdk.Event): boolean;
+    move_mark_onscreen(mark: TextMark): boolean;
+    move_overlay(child: Widget, xpos: number, ypos: number): void;
+    move_visually(iter: TextIter, count: number): boolean;
+    place_cursor_onscreen(): boolean;
+    remove(child: Widget): void;
+    reset_cursor_blink(): void;
+    reset_im_context(): void;
+    scroll_mark_onscreen(mark: TextMark): void;
+    scroll_to_iter(iter: TextIter, within_margin: number, use_align: boolean, xalign: number, yalign: 
number): boolean;
+    scroll_to_mark(mark: TextMark, within_margin: number, use_align: boolean, xalign: number, yalign: 
number): void;
+    set_accepts_tab(accepts_tab: boolean): void;
+    set_bottom_margin(bottom_margin: number): void;
+    set_buffer(buffer?: TextBuffer | null): void;
+    set_cursor_visible(setting: boolean): void;
+    set_editable(setting: boolean): void;
+    set_extra_menu(model?: Gio.MenuModel | null): void;
+    set_gutter(win: TextWindowType, widget?: Widget | null): void;
+    set_indent(indent: number): void;
+    set_input_hints(hints: InputHints): void;
+    set_input_purpose(purpose: InputPurpose): void;
+    set_justification(justification: Justification): void;
+    set_left_margin(left_margin: number): void;
+    set_monospace(monospace: boolean): void;
+    set_overwrite(overwrite: boolean): void;
+    set_pixels_above_lines(pixels_above_lines: number): void;
+    set_pixels_below_lines(pixels_below_lines: number): void;
+    set_pixels_inside_wrap(pixels_inside_wrap: number): void;
+    set_right_margin(right_margin: number): void;
+    set_tabs(tabs: Pango.TabArray): void;
+    set_top_margin(top_margin: number): void;
+    set_wrap_mode(wrap_mode: WrapMode): void;
+    starts_display_line(iter: TextIter): boolean;
+    window_to_buffer_coords(win: TextWindowType, window_x: number, window_y: number): [number, number];
+    vfunc_backspace(): void;
+    vfunc_copy_clipboard(): void;
+    vfunc_cut_clipboard(): void;
+    vfunc_delete_from_cursor(type: DeleteType, count: number): void;
+    vfunc_extend_selection(
+        granularity: TextExtendSelection,
+        location: TextIter,
+        start: TextIter,
+        end: TextIter
+    ): boolean;
+    vfunc_insert_at_cursor(str: string): void;
+    vfunc_insert_emoji(): void;
+    vfunc_move_cursor(step: MovementStep, count: number, extend_selection: boolean): void;
+    vfunc_paste_clipboard(): void;
+    vfunc_set_anchor(): void;
+    vfunc_snapshot_layer(layer: TextViewLayer, snapshot: Snapshot): void;
+    vfunc_toggle_overwrite(): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module ToggleButton {
+    export interface ConstructorProperties extends Button.ConstructorProperties {
+        [key: string]: any;
+        active: boolean;
+        group: ToggleButton;
+    }
+}
+export class ToggleButton extends Button implements Accessible, Actionable, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<ToggleButton>;
+
+    constructor(properties?: Partial<ToggleButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<ToggleButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get active(): boolean;
+    set active(val: boolean);
+    set group(val: ToggleButton);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "toggled", callback: (_source: this) => void): number;
+    connect_after(signal: "toggled", callback: (_source: this) => void): number;
+    emit(signal: "toggled"): void;
+
+    // Implemented Properties
+
+    get action_name(): string;
+    set action_name(val: string);
+    get actionName(): string;
+    set actionName(val: string);
+    get action_target(): GLib.Variant;
+    set action_target(val: GLib.Variant);
+    get actionTarget(): GLib.Variant;
+    set actionTarget(val: GLib.Variant);
+
+    // Constructors
+
+    static ["new"](): ToggleButton;
+    static new_with_label(label: string): ToggleButton;
+    static new_with_mnemonic(label: string): ToggleButton;
+
+    // Members
+
+    get_active(): boolean;
+    set_active(is_active: boolean): void;
+    set_group(group?: ToggleButton | null): void;
+    toggled(): void;
+    vfunc_toggled(): void;
+
+    // Implemented Members
+
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+}
+export module Tooltip {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Tooltip extends GObject.Object {
+    static $gtype: GObject.GType<Tooltip>;
+
+    constructor(properties?: Partial<Tooltip.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Tooltip.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    set_custom(custom_widget?: Widget | null): void;
+    set_icon(paintable?: Gdk.Paintable | null): void;
+    set_icon_from_gicon(gicon?: Gio.Icon | null): void;
+    set_icon_from_icon_name(icon_name?: string | null): void;
+    set_markup(markup?: string | null): void;
+    set_text(text?: string | null): void;
+    set_tip_area(rect: Gdk.Rectangle): void;
+}
+export module TreeExpander {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        indent_for_icon: boolean;
+        indentForIcon: boolean;
+        item: GObject.Object;
+        list_row: TreeListRow;
+        listRow: TreeListRow;
+    }
+}
+export class TreeExpander extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<TreeExpander>;
+
+    constructor(properties?: Partial<TreeExpander.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeExpander.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get indent_for_icon(): boolean;
+    set indent_for_icon(val: boolean);
+    get indentForIcon(): boolean;
+    set indentForIcon(val: boolean);
+    get item(): GObject.Object;
+    get list_row(): TreeListRow;
+    set list_row(val: TreeListRow);
+    get listRow(): TreeListRow;
+    set listRow(val: TreeListRow);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): TreeExpander;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_indent_for_icon(): boolean;
+    get_item<T = GObject.Object>(): T;
+    get_list_row(): TreeListRow | null;
+    set_child(child?: Widget | null): void;
+    set_indent_for_icon(indent_for_icon: boolean): void;
+    set_list_row(list_row?: TreeListRow | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module TreeListModel {
+    export interface ConstructorProperties<A extends GObject.Object = GObject.Object>
+        extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        autoexpand: boolean;
+        model: Gio.ListModel;
+        passthrough: boolean;
+    }
+}
+export class TreeListModel<A extends GObject.Object = GObject.Object>
+    extends GObject.Object
+    implements Gio.ListModel<A>
+{
+    static $gtype: GObject.GType<TreeListModel>;
+
+    constructor(properties?: Partial<TreeListModel.ConstructorProperties<A>>, ...args: any[]);
+    _init(properties?: Partial<TreeListModel.ConstructorProperties<A>>, ...args: any[]): void;
+
+    // Properties
+    get autoexpand(): boolean;
+    set autoexpand(val: boolean);
+    get model(): Gio.ListModel;
+    get passthrough(): boolean;
+
+    // Constructors
+
+    static ["new"](
+        root: Gio.ListModel,
+        passthrough: boolean,
+        autoexpand: boolean,
+        create_func: TreeListModelCreateModelFunc
+    ): TreeListModel;
+
+    // Members
+
+    get_autoexpand(): boolean;
+    get_child_row(position: number): TreeListRow | null;
+    get_model(): Gio.ListModel;
+    get_passthrough(): boolean;
+    get_row(position: number): TreeListRow | null;
+    set_autoexpand(autoexpand: boolean): void;
+
+    // Implemented Members
+
+    get_item_type(): GObject.GType;
+    get_n_items(): number;
+    get_item(position: number): A | null;
+    items_changed(position: number, removed: number, added: number): void;
+    vfunc_get_item(position: number): A | null;
+    vfunc_get_item_type(): GObject.GType;
+    vfunc_get_n_items(): number;
+}
+export module TreeListRow {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        children: Gio.ListModel;
+        depth: number;
+        expandable: boolean;
+        expanded: boolean;
+        item: GObject.Object;
+    }
+}
+export class TreeListRow extends GObject.Object {
+    static $gtype: GObject.GType<TreeListRow>;
+
+    constructor(properties?: Partial<TreeListRow.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeListRow.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get children(): Gio.ListModel;
+    get depth(): number;
+    get expandable(): boolean;
+    get expanded(): boolean;
+    set expanded(val: boolean);
+    get item(): GObject.Object;
+
+    // Members
+
+    get_child_row(position: number): TreeListRow | null;
+    get_children(): Gio.ListModel | null;
+    get_depth(): number;
+    get_expanded(): boolean;
+    get_item<T = GObject.Object>(): T;
+    get_parent(): TreeListRow | null;
+    get_position(): number;
+    is_expandable(): boolean;
+    set_expanded(expanded: boolean): void;
+}
+export module TreeListRowSorter {
+    export interface ConstructorProperties extends Sorter.ConstructorProperties {
+        [key: string]: any;
+        sorter: Sorter;
+    }
+}
+export class TreeListRowSorter extends Sorter {
+    static $gtype: GObject.GType<TreeListRowSorter>;
+
+    constructor(properties?: Partial<TreeListRowSorter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeListRowSorter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get sorter(): Sorter;
+    set sorter(val: Sorter);
+
+    // Constructors
+
+    static ["new"](sorter?: Sorter | null): TreeListRowSorter;
+
+    // Members
+
+    get_sorter(): Sorter | null;
+    set_sorter(sorter?: Sorter | null): void;
+}
+export module TreeModelFilter {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        child_model: TreeModel;
+        childModel: TreeModel;
+        virtual_root: TreePath;
+        virtualRoot: TreePath;
+    }
+}
+export class TreeModelFilter extends GObject.Object implements TreeDragSource, TreeModel {
+    static $gtype: GObject.GType<TreeModelFilter>;
+
+    constructor(properties?: Partial<TreeModelFilter.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeModelFilter.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child_model(): TreeModel;
+    get childModel(): TreeModel;
+    get virtual_root(): TreePath;
+    get virtualRoot(): TreePath;
+
+    // Members
+
+    clear_cache(): void;
+    convert_child_iter_to_iter(child_iter: TreeIter): [boolean, TreeIter];
+    convert_child_path_to_path(child_path: TreePath): TreePath | null;
+    convert_iter_to_child_iter(filter_iter: TreeIter): TreeIter;
+    convert_path_to_child_path(filter_path: TreePath): TreePath | null;
+    get_model(): TreeModel;
+    refilter(): void;
+    set_modify_func(types: GObject.GType[], func: TreeModelFilterModifyFunc, destroy?: GLib.DestroyNotify | 
null): void;
+    set_visible_column(column: number): void;
+    set_visible_func(func: TreeModelFilterVisibleFunc, destroy?: GLib.DestroyNotify | null): void;
+    vfunc_modify(child_model: TreeModel, iter: TreeIter, value: GObject.Value | any, column: number): void;
+    vfunc_visible(child_model: TreeModel, iter: TreeIter): boolean;
+
+    // Implemented Members
+
+    drag_data_delete(path: TreePath): boolean;
+    drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    row_draggable(path: TreePath): boolean;
+    vfunc_drag_data_delete(path: TreePath): boolean;
+    vfunc_drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    vfunc_row_draggable(path: TreePath): boolean;
+    filter_new(root?: TreePath | null): TreeModel;
+    foreach(func: TreeModelForeachFunc): void;
+    get_column_type(index_: number): GObject.GType;
+    get_flags(): TreeModelFlags;
+    get_iter(path: TreePath): [boolean, TreeIter];
+    get_iter_first(): [boolean, TreeIter];
+    get_iter_from_string(path_string: string): [boolean, TreeIter];
+    get_n_columns(): number;
+    get_path(iter: TreeIter): TreePath;
+    get_string_from_iter(iter: TreeIter): string | null;
+    get_value(iter: TreeIter, column: number): unknown;
+    iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    iter_has_child(iter: TreeIter): boolean;
+    iter_n_children(iter?: TreeIter | null): number;
+    iter_next(iter: TreeIter): boolean;
+    iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    iter_parent(child: TreeIter): [boolean, TreeIter];
+    iter_previous(iter: TreeIter): boolean;
+    ref_node(iter: TreeIter): void;
+    row_changed(path: TreePath, iter: TreeIter): void;
+    row_deleted(path: TreePath): void;
+    row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    row_inserted(path: TreePath, iter: TreeIter): void;
+    rows_reordered(path: TreePath, iter: TreeIter | null, new_order: number[]): void;
+    unref_node(iter: TreeIter): void;
+    vfunc_get_column_type(index_: number): GObject.GType;
+    vfunc_get_flags(): TreeModelFlags;
+    vfunc_get_iter(path: TreePath): [boolean, TreeIter];
+    vfunc_get_n_columns(): number;
+    vfunc_get_path(iter: TreeIter): TreePath;
+    vfunc_get_value(iter: TreeIter, column: number): unknown;
+    vfunc_iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    vfunc_iter_has_child(iter: TreeIter): boolean;
+    vfunc_iter_n_children(iter?: TreeIter | null): number;
+    vfunc_iter_next(iter: TreeIter): boolean;
+    vfunc_iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    vfunc_iter_parent(child: TreeIter): [boolean, TreeIter];
+    vfunc_iter_previous(iter: TreeIter): boolean;
+    vfunc_ref_node(iter: TreeIter): void;
+    vfunc_row_changed(path: TreePath, iter: TreeIter): void;
+    vfunc_row_deleted(path: TreePath): void;
+    vfunc_row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    vfunc_row_inserted(path: TreePath, iter: TreeIter): void;
+    vfunc_unref_node(iter: TreeIter): void;
+}
+export module TreeModelSort {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        model: TreeModel;
+    }
+}
+export class TreeModelSort extends GObject.Object implements TreeDragSource, TreeModel, TreeSortable {
+    static $gtype: GObject.GType<TreeModelSort>;
+
+    constructor(properties?: Partial<TreeModelSort.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeModelSort.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get model(): TreeModel;
+
+    // Constructors
+
+    static new_with_model(child_model: TreeModel): TreeModelSort;
+
+    // Members
+
+    clear_cache(): void;
+    convert_child_iter_to_iter(child_iter: TreeIter): [boolean, TreeIter];
+    convert_child_path_to_path(child_path: TreePath): TreePath | null;
+    convert_iter_to_child_iter(sorted_iter: TreeIter): TreeIter;
+    convert_path_to_child_path(sorted_path: TreePath): TreePath | null;
+    get_model(): TreeModel;
+    iter_is_valid(iter: TreeIter): boolean;
+    reset_default_sort_func(): void;
+
+    // Implemented Members
+
+    drag_data_delete(path: TreePath): boolean;
+    drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    row_draggable(path: TreePath): boolean;
+    vfunc_drag_data_delete(path: TreePath): boolean;
+    vfunc_drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    vfunc_row_draggable(path: TreePath): boolean;
+    filter_new(root?: TreePath | null): TreeModel;
+    foreach(func: TreeModelForeachFunc): void;
+    get_column_type(index_: number): GObject.GType;
+    get_flags(): TreeModelFlags;
+    get_iter(path: TreePath): [boolean, TreeIter];
+    get_iter_first(): [boolean, TreeIter];
+    get_iter_from_string(path_string: string): [boolean, TreeIter];
+    get_n_columns(): number;
+    get_path(iter: TreeIter): TreePath;
+    get_string_from_iter(iter: TreeIter): string | null;
+    get_value(iter: TreeIter, column: number): unknown;
+    iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    iter_has_child(iter: TreeIter): boolean;
+    iter_n_children(iter?: TreeIter | null): number;
+    iter_next(iter: TreeIter): boolean;
+    iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    iter_parent(child: TreeIter): [boolean, TreeIter];
+    iter_previous(iter: TreeIter): boolean;
+    ref_node(iter: TreeIter): void;
+    row_changed(path: TreePath, iter: TreeIter): void;
+    row_deleted(path: TreePath): void;
+    row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    row_inserted(path: TreePath, iter: TreeIter): void;
+    rows_reordered(path: TreePath, iter: TreeIter | null, new_order: number[]): void;
+    unref_node(iter: TreeIter): void;
+    vfunc_get_column_type(index_: number): GObject.GType;
+    vfunc_get_flags(): TreeModelFlags;
+    vfunc_get_iter(path: TreePath): [boolean, TreeIter];
+    vfunc_get_n_columns(): number;
+    vfunc_get_path(iter: TreeIter): TreePath;
+    vfunc_get_value(iter: TreeIter, column: number): unknown;
+    vfunc_iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    vfunc_iter_has_child(iter: TreeIter): boolean;
+    vfunc_iter_n_children(iter?: TreeIter | null): number;
+    vfunc_iter_next(iter: TreeIter): boolean;
+    vfunc_iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    vfunc_iter_parent(child: TreeIter): [boolean, TreeIter];
+    vfunc_iter_previous(iter: TreeIter): boolean;
+    vfunc_ref_node(iter: TreeIter): void;
+    vfunc_row_changed(path: TreePath, iter: TreeIter): void;
+    vfunc_row_deleted(path: TreePath): void;
+    vfunc_row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    vfunc_row_inserted(path: TreePath, iter: TreeIter): void;
+    vfunc_unref_node(iter: TreeIter): void;
+    get_sort_column_id(): [boolean, number, SortType];
+    has_default_sort_func(): boolean;
+    set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    set_sort_column_id(sort_column_id: number, order: SortType): void;
+    set_sort_func(sort_column_id: number, sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | 
null): void;
+    sort_column_changed(): void;
+    vfunc_get_sort_column_id(): [boolean, number, SortType];
+    vfunc_has_default_sort_func(): boolean;
+    vfunc_set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    vfunc_set_sort_column_id(sort_column_id: number, order: SortType): void;
+    vfunc_set_sort_func(
+        sort_column_id: number,
+        sort_func: TreeIterCompareFunc,
+        destroy?: GLib.DestroyNotify | null
+    ): void;
+    vfunc_sort_column_changed(): void;
+}
+export module TreeSelection {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        mode: SelectionMode;
+    }
+}
+export class TreeSelection extends GObject.Object {
+    static $gtype: GObject.GType<TreeSelection>;
+
+    constructor(properties?: Partial<TreeSelection.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeSelection.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get mode(): SelectionMode;
+    set mode(val: SelectionMode);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "changed", callback: (_source: this) => void): number;
+    connect_after(signal: "changed", callback: (_source: this) => void): number;
+    emit(signal: "changed"): void;
+
+    // Members
+
+    count_selected_rows(): number;
+    get_mode(): SelectionMode;
+    get_selected(): [boolean, TreeModel | null, TreeIter | null];
+    get_selected_rows(): [TreePath[], TreeModel | null];
+    get_tree_view(): TreeView;
+    iter_is_selected(iter: TreeIter): boolean;
+    path_is_selected(path: TreePath): boolean;
+    select_all(): void;
+    select_iter(iter: TreeIter): void;
+    select_path(path: TreePath): void;
+    select_range(start_path: TreePath, end_path: TreePath): void;
+    selected_foreach(func: TreeSelectionForeachFunc): void;
+    set_mode(type: SelectionMode): void;
+    set_select_function(func?: TreeSelectionFunc | null): void;
+    unselect_all(): void;
+    unselect_iter(iter: TreeIter): void;
+    unselect_path(path: TreePath): void;
+    unselect_range(start_path: TreePath, end_path: TreePath): void;
+}
+export module TreeStore {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class TreeStore
+    extends GObject.Object
+    implements Buildable, TreeDragDest, TreeDragSource, TreeModel, TreeSortable
+{
+    static $gtype: GObject.GType<TreeStore>;
+
+    constructor(properties?: Partial<TreeStore.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeStore.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: TreeStorePrivate;
+
+    // Constructors
+
+    static ["new"](types: GObject.GType[]): TreeStore;
+
+    // Members
+
+    append(parent?: TreeIter | null): TreeIter;
+    clear(): void;
+    insert(parent: TreeIter | null, position: number): TreeIter;
+    insert_after(parent?: TreeIter | null, sibling?: TreeIter | null): TreeIter;
+    insert_before(parent?: TreeIter | null, sibling?: TreeIter | null): TreeIter;
+    insert_with_values(
+        parent: TreeIter | null,
+        position: number,
+        columns: number[],
+        values: GObject.Value[]
+    ): TreeIter | null;
+    is_ancestor(iter: TreeIter, descendant: TreeIter): boolean;
+    iter_depth(iter: TreeIter): number;
+    iter_is_valid(iter: TreeIter): boolean;
+    move_after(iter: TreeIter, position?: TreeIter | null): void;
+    move_before(iter: TreeIter, position?: TreeIter | null): void;
+    prepend(parent?: TreeIter | null): TreeIter;
+    remove(iter: TreeIter): boolean;
+    set_column_types(types: GObject.GType[]): void;
+    set_value(iter: TreeIter, column: number, value: GObject.Value | any): void;
+    set(iter: TreeIter, columns: number[], values: GObject.Value[]): void;
+    // Conflicted with GObject.Object.set
+    set(...args: never[]): any;
+    swap(a: TreeIter, b: TreeIter): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    drag_data_received(dest: TreePath, value: GObject.Value | any): boolean;
+    row_drop_possible(dest_path: TreePath, value: GObject.Value | any): boolean;
+    vfunc_drag_data_received(dest: TreePath, value: GObject.Value | any): boolean;
+    vfunc_row_drop_possible(dest_path: TreePath, value: GObject.Value | any): boolean;
+    drag_data_delete(path: TreePath): boolean;
+    drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    row_draggable(path: TreePath): boolean;
+    vfunc_drag_data_delete(path: TreePath): boolean;
+    vfunc_drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    vfunc_row_draggable(path: TreePath): boolean;
+    filter_new(root?: TreePath | null): TreeModel;
+    foreach(func: TreeModelForeachFunc): void;
+    get_column_type(index_: number): GObject.GType;
+    get_flags(): TreeModelFlags;
+    get_iter(path: TreePath): [boolean, TreeIter];
+    get_iter_first(): [boolean, TreeIter];
+    get_iter_from_string(path_string: string): [boolean, TreeIter];
+    get_n_columns(): number;
+    get_path(iter: TreeIter): TreePath;
+    get_string_from_iter(iter: TreeIter): string | null;
+    get_value(iter: TreeIter, column: number): unknown;
+    iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    iter_has_child(iter: TreeIter): boolean;
+    iter_n_children(iter?: TreeIter | null): number;
+    iter_next(iter: TreeIter): boolean;
+    iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    iter_parent(child: TreeIter): [boolean, TreeIter];
+    iter_previous(iter: TreeIter): boolean;
+    ref_node(iter: TreeIter): void;
+    row_changed(path: TreePath, iter: TreeIter): void;
+    row_deleted(path: TreePath): void;
+    row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    row_inserted(path: TreePath, iter: TreeIter): void;
+    rows_reordered(path: TreePath, iter: TreeIter | null, new_order: number[]): void;
+    unref_node(iter: TreeIter): void;
+    vfunc_get_column_type(index_: number): GObject.GType;
+    vfunc_get_flags(): TreeModelFlags;
+    vfunc_get_iter(path: TreePath): [boolean, TreeIter];
+    vfunc_get_n_columns(): number;
+    vfunc_get_path(iter: TreeIter): TreePath;
+    vfunc_get_value(iter: TreeIter, column: number): unknown;
+    vfunc_iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    vfunc_iter_has_child(iter: TreeIter): boolean;
+    vfunc_iter_n_children(iter?: TreeIter | null): number;
+    vfunc_iter_next(iter: TreeIter): boolean;
+    vfunc_iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    vfunc_iter_parent(child: TreeIter): [boolean, TreeIter];
+    vfunc_iter_previous(iter: TreeIter): boolean;
+    vfunc_ref_node(iter: TreeIter): void;
+    vfunc_row_changed(path: TreePath, iter: TreeIter): void;
+    vfunc_row_deleted(path: TreePath): void;
+    vfunc_row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    vfunc_row_inserted(path: TreePath, iter: TreeIter): void;
+    vfunc_unref_node(iter: TreeIter): void;
+    get_sort_column_id(): [boolean, number, SortType];
+    has_default_sort_func(): boolean;
+    set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    set_sort_column_id(sort_column_id: number, order: SortType): void;
+    set_sort_func(sort_column_id: number, sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | 
null): void;
+    sort_column_changed(): void;
+    vfunc_get_sort_column_id(): [boolean, number, SortType];
+    vfunc_has_default_sort_func(): boolean;
+    vfunc_set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    vfunc_set_sort_column_id(sort_column_id: number, order: SortType): void;
+    vfunc_set_sort_func(
+        sort_column_id: number,
+        sort_func: TreeIterCompareFunc,
+        destroy?: GLib.DestroyNotify | null
+    ): void;
+    vfunc_sort_column_changed(): void;
+}
+export module TreeView {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        activate_on_single_click: boolean;
+        activateOnSingleClick: boolean;
+        enable_grid_lines: TreeViewGridLines;
+        enableGridLines: TreeViewGridLines;
+        enable_search: boolean;
+        enableSearch: boolean;
+        enable_tree_lines: boolean;
+        enableTreeLines: boolean;
+        expander_column: TreeViewColumn;
+        expanderColumn: TreeViewColumn;
+        fixed_height_mode: boolean;
+        fixedHeightMode: boolean;
+        headers_clickable: boolean;
+        headersClickable: boolean;
+        headers_visible: boolean;
+        headersVisible: boolean;
+        hover_expand: boolean;
+        hoverExpand: boolean;
+        hover_selection: boolean;
+        hoverSelection: boolean;
+        level_indentation: number;
+        levelIndentation: number;
+        model: TreeModel;
+        reorderable: boolean;
+        rubber_banding: boolean;
+        rubberBanding: boolean;
+        search_column: number;
+        searchColumn: number;
+        show_expanders: boolean;
+        showExpanders: boolean;
+        tooltip_column: number;
+        tooltipColumn: number;
+    }
+}
+export class TreeView extends Widget implements Accessible, Buildable, ConstraintTarget, Scrollable {
+    static $gtype: GObject.GType<TreeView>;
+
+    constructor(properties?: Partial<TreeView.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeView.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get activate_on_single_click(): boolean;
+    set activate_on_single_click(val: boolean);
+    get activateOnSingleClick(): boolean;
+    set activateOnSingleClick(val: boolean);
+    get enable_grid_lines(): TreeViewGridLines;
+    set enable_grid_lines(val: TreeViewGridLines);
+    get enableGridLines(): TreeViewGridLines;
+    set enableGridLines(val: TreeViewGridLines);
+    get enable_search(): boolean;
+    set enable_search(val: boolean);
+    get enableSearch(): boolean;
+    set enableSearch(val: boolean);
+    get enable_tree_lines(): boolean;
+    set enable_tree_lines(val: boolean);
+    get enableTreeLines(): boolean;
+    set enableTreeLines(val: boolean);
+    get expander_column(): TreeViewColumn;
+    set expander_column(val: TreeViewColumn);
+    get expanderColumn(): TreeViewColumn;
+    set expanderColumn(val: TreeViewColumn);
+    get fixed_height_mode(): boolean;
+    set fixed_height_mode(val: boolean);
+    get fixedHeightMode(): boolean;
+    set fixedHeightMode(val: boolean);
+    get headers_clickable(): boolean;
+    set headers_clickable(val: boolean);
+    get headersClickable(): boolean;
+    set headersClickable(val: boolean);
+    get headers_visible(): boolean;
+    set headers_visible(val: boolean);
+    get headersVisible(): boolean;
+    set headersVisible(val: boolean);
+    get hover_expand(): boolean;
+    set hover_expand(val: boolean);
+    get hoverExpand(): boolean;
+    set hoverExpand(val: boolean);
+    get hover_selection(): boolean;
+    set hover_selection(val: boolean);
+    get hoverSelection(): boolean;
+    set hoverSelection(val: boolean);
+    get level_indentation(): number;
+    set level_indentation(val: number);
+    get levelIndentation(): number;
+    set levelIndentation(val: number);
+    get model(): TreeModel;
+    set model(val: TreeModel);
+    get reorderable(): boolean;
+    set reorderable(val: boolean);
+    get rubber_banding(): boolean;
+    set rubber_banding(val: boolean);
+    get rubberBanding(): boolean;
+    set rubberBanding(val: boolean);
+    get search_column(): number;
+    set search_column(val: number);
+    get searchColumn(): number;
+    set searchColumn(val: number);
+    get show_expanders(): boolean;
+    set show_expanders(val: boolean);
+    get showExpanders(): boolean;
+    set showExpanders(val: boolean);
+    get tooltip_column(): number;
+    set tooltip_column(val: number);
+    get tooltipColumn(): number;
+    set tooltipColumn(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "columns-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "columns-changed", callback: (_source: this) => void): number;
+    emit(signal: "columns-changed"): void;
+    connect(signal: "cursor-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "cursor-changed", callback: (_source: this) => void): number;
+    emit(signal: "cursor-changed"): void;
+    connect(
+        signal: "expand-collapse-cursor-row",
+        callback: (_source: this, object: boolean, p0: boolean, p1: boolean) => boolean
+    ): number;
+    connect_after(
+        signal: "expand-collapse-cursor-row",
+        callback: (_source: this, object: boolean, p0: boolean, p1: boolean) => boolean
+    ): number;
+    emit(signal: "expand-collapse-cursor-row", object: boolean, p0: boolean, p1: boolean): void;
+    connect(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, direction: number, extend: boolean, modify: boolean) 
=> boolean
+    ): number;
+    connect_after(
+        signal: "move-cursor",
+        callback: (_source: this, step: MovementStep, direction: number, extend: boolean, modify: boolean) 
=> boolean
+    ): number;
+    emit(signal: "move-cursor", step: MovementStep, direction: number, extend: boolean, modify: boolean): 
void;
+    connect(
+        signal: "row-activated",
+        callback: (_source: this, path: TreePath, column: TreeViewColumn | null) => void
+    ): number;
+    connect_after(
+        signal: "row-activated",
+        callback: (_source: this, path: TreePath, column: TreeViewColumn | null) => void
+    ): number;
+    emit(signal: "row-activated", path: TreePath, column: TreeViewColumn | null): void;
+    connect(signal: "row-collapsed", callback: (_source: this, iter: TreeIter, path: TreePath) => void): 
number;
+    connect_after(signal: "row-collapsed", callback: (_source: this, iter: TreeIter, path: TreePath) => 
void): number;
+    emit(signal: "row-collapsed", iter: TreeIter, path: TreePath): void;
+    connect(signal: "row-expanded", callback: (_source: this, iter: TreeIter, path: TreePath) => void): 
number;
+    connect_after(signal: "row-expanded", callback: (_source: this, iter: TreeIter, path: TreePath) => 
void): number;
+    emit(signal: "row-expanded", iter: TreeIter, path: TreePath): void;
+    connect(signal: "select-all", callback: (_source: this) => boolean): number;
+    connect_after(signal: "select-all", callback: (_source: this) => boolean): number;
+    emit(signal: "select-all"): void;
+    connect(signal: "select-cursor-parent", callback: (_source: this) => boolean): number;
+    connect_after(signal: "select-cursor-parent", callback: (_source: this) => boolean): number;
+    emit(signal: "select-cursor-parent"): void;
+    connect(signal: "select-cursor-row", callback: (_source: this, object: boolean) => boolean): number;
+    connect_after(signal: "select-cursor-row", callback: (_source: this, object: boolean) => boolean): 
number;
+    emit(signal: "select-cursor-row", object: boolean): void;
+    connect(signal: "start-interactive-search", callback: (_source: this) => boolean): number;
+    connect_after(signal: "start-interactive-search", callback: (_source: this) => boolean): number;
+    emit(signal: "start-interactive-search"): void;
+    connect(signal: "test-collapse-row", callback: (_source: this, iter: TreeIter, path: TreePath) => 
boolean): number;
+    connect_after(
+        signal: "test-collapse-row",
+        callback: (_source: this, iter: TreeIter, path: TreePath) => boolean
+    ): number;
+    emit(signal: "test-collapse-row", iter: TreeIter, path: TreePath): void;
+    connect(signal: "test-expand-row", callback: (_source: this, iter: TreeIter, path: TreePath) => 
boolean): number;
+    connect_after(
+        signal: "test-expand-row",
+        callback: (_source: this, iter: TreeIter, path: TreePath) => boolean
+    ): number;
+    emit(signal: "test-expand-row", iter: TreeIter, path: TreePath): void;
+    connect(signal: "toggle-cursor-row", callback: (_source: this) => boolean): number;
+    connect_after(signal: "toggle-cursor-row", callback: (_source: this) => boolean): number;
+    emit(signal: "toggle-cursor-row"): void;
+    connect(signal: "unselect-all", callback: (_source: this) => boolean): number;
+    connect_after(signal: "unselect-all", callback: (_source: this) => boolean): number;
+    emit(signal: "unselect-all"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](): TreeView;
+    static new_with_model(model: TreeModel): TreeView;
+
+    // Members
+
+    append_column(column: TreeViewColumn): number;
+    collapse_all(): void;
+    collapse_row(path: TreePath): boolean;
+    columns_autosize(): void;
+    convert_bin_window_to_tree_coords(bx: number, by: number): [number, number];
+    convert_bin_window_to_widget_coords(bx: number, by: number): [number, number];
+    convert_tree_to_bin_window_coords(tx: number, ty: number): [number, number];
+    convert_tree_to_widget_coords(tx: number, ty: number): [number, number];
+    convert_widget_to_bin_window_coords(wx: number, wy: number): [number, number];
+    convert_widget_to_tree_coords(wx: number, wy: number): [number, number];
+    create_row_drag_icon(path: TreePath): Gdk.Paintable | null;
+    enable_model_drag_dest(formats: Gdk.ContentFormats, actions: Gdk.DragAction): void;
+    enable_model_drag_source(
+        start_button_mask: Gdk.ModifierType,
+        formats: Gdk.ContentFormats,
+        actions: Gdk.DragAction
+    ): void;
+    expand_all(): void;
+    expand_row(path: TreePath, open_all: boolean): boolean;
+    expand_to_path(path: TreePath): void;
+    get_activate_on_single_click(): boolean;
+    get_background_area(path: TreePath | null, column: TreeViewColumn | null): Gdk.Rectangle;
+    get_cell_area(path: TreePath | null, column: TreeViewColumn | null): Gdk.Rectangle;
+    get_column(n: number): TreeViewColumn | null;
+    get_columns(): TreeViewColumn[];
+    get_cursor(): [TreePath | null, TreeViewColumn | null];
+    // Conflicted with Gtk.Widget.get_cursor
+    get_cursor(...args: never[]): any;
+    get_dest_row_at_pos(drag_x: number, drag_y: number): [boolean, TreePath | null, TreeViewDropPosition | 
null];
+    get_drag_dest_row(): [TreePath | null, TreeViewDropPosition | null];
+    get_enable_search(): boolean;
+    get_enable_tree_lines(): boolean;
+    get_expander_column(): TreeViewColumn | null;
+    get_fixed_height_mode(): boolean;
+    get_grid_lines(): TreeViewGridLines;
+    get_headers_clickable(): boolean;
+    get_headers_visible(): boolean;
+    get_hover_expand(): boolean;
+    get_hover_selection(): boolean;
+    get_level_indentation(): number;
+    get_model(): TreeModel | null;
+    get_n_columns(): number;
+    get_path_at_pos(x: number, y: number): [boolean, TreePath | null, TreeViewColumn | null, number, number];
+    get_reorderable(): boolean;
+    get_rubber_banding(): boolean;
+    get_search_column(): number;
+    get_search_entry(): Editable | null;
+    get_selection(): TreeSelection;
+    get_show_expanders(): boolean;
+    get_tooltip_column(): number;
+    get_tooltip_context(
+        x: number,
+        y: number,
+        keyboard_tip: boolean
+    ): [boolean, TreeModel | null, TreePath | null, TreeIter | null];
+    get_visible_range(): [boolean, TreePath | null, TreePath | null];
+    get_visible_rect(): Gdk.Rectangle;
+    insert_column(column: TreeViewColumn, position: number): number;
+    insert_column_with_data_func(position: number, title: string, cell: CellRenderer, func: 
TreeCellDataFunc): number;
+    is_blank_at_pos(x: number, y: number): [boolean, TreePath | null, TreeViewColumn | null, number, number];
+    is_rubber_banding_active(): boolean;
+    map_expanded_rows(func: TreeViewMappingFunc): void;
+    move_column_after(column: TreeViewColumn, base_column?: TreeViewColumn | null): void;
+    remove_column(column: TreeViewColumn): number;
+    row_activated(path: TreePath, column?: TreeViewColumn | null): void;
+    row_expanded(path: TreePath): boolean;
+    scroll_to_cell(
+        path: TreePath | null,
+        column: TreeViewColumn | null,
+        use_align: boolean,
+        row_align: number,
+        col_align: number
+    ): void;
+    scroll_to_point(tree_x: number, tree_y: number): void;
+    set_activate_on_single_click(single: boolean): void;
+    set_column_drag_function(func?: TreeViewColumnDropFunc | null, destroy?: GLib.DestroyNotify | null): 
void;
+    set_cursor(path: TreePath, focus_column: TreeViewColumn | null, start_editing: boolean): void;
+    // Conflicted with Gtk.Widget.set_cursor
+    set_cursor(...args: never[]): any;
+    set_cursor_on_cell(
+        path: TreePath,
+        focus_column: TreeViewColumn | null,
+        focus_cell: CellRenderer | null,
+        start_editing: boolean
+    ): void;
+    set_drag_dest_row(path: TreePath | null, pos: TreeViewDropPosition): void;
+    set_enable_search(enable_search: boolean): void;
+    set_enable_tree_lines(enabled: boolean): void;
+    set_expander_column(column?: TreeViewColumn | null): void;
+    set_fixed_height_mode(enable: boolean): void;
+    set_grid_lines(grid_lines: TreeViewGridLines): void;
+    set_headers_clickable(setting: boolean): void;
+    set_headers_visible(headers_visible: boolean): void;
+    set_hover_expand(expand: boolean): void;
+    set_hover_selection(hover: boolean): void;
+    set_level_indentation(indentation: number): void;
+    set_model(model?: TreeModel | null): void;
+    set_reorderable(reorderable: boolean): void;
+    set_row_separator_func(func?: TreeViewRowSeparatorFunc | null, destroy?: GLib.DestroyNotify | null): 
void;
+    set_rubber_banding(enable: boolean): void;
+    set_search_column(column: number): void;
+    set_search_entry(entry?: Editable | null): void;
+    set_search_equal_func(search_equal_func: TreeViewSearchEqualFunc, search_destroy?: GLib.DestroyNotify | 
null): void;
+    set_show_expanders(enabled: boolean): void;
+    set_tooltip_cell(
+        tooltip: Tooltip,
+        path?: TreePath | null,
+        column?: TreeViewColumn | null,
+        cell?: CellRenderer | null
+    ): void;
+    set_tooltip_column(column: number): void;
+    set_tooltip_row(tooltip: Tooltip, path: TreePath): void;
+    unset_rows_drag_dest(): void;
+    unset_rows_drag_source(): void;
+    vfunc_columns_changed(): void;
+    vfunc_cursor_changed(): void;
+    vfunc_expand_collapse_cursor_row(logical: boolean, expand: boolean, open_all: boolean): boolean;
+    vfunc_move_cursor(step: MovementStep, count: number, extend: boolean, modify: boolean): boolean;
+    vfunc_row_activated(path: TreePath, column?: TreeViewColumn | null): void;
+    vfunc_row_collapsed(iter: TreeIter, path: TreePath): void;
+    vfunc_row_expanded(iter: TreeIter, path: TreePath): void;
+    vfunc_select_all(): boolean;
+    vfunc_select_cursor_parent(): boolean;
+    vfunc_select_cursor_row(start_editing: boolean): boolean;
+    vfunc_start_interactive_search(): boolean;
+    vfunc_test_collapse_row(iter: TreeIter, path: TreePath): boolean;
+    vfunc_test_expand_row(iter: TreeIter, path: TreePath): boolean;
+    vfunc_toggle_cursor_row(): boolean;
+    vfunc_unselect_all(): boolean;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module TreeViewColumn {
+    export interface ConstructorProperties extends GObject.InitiallyUnowned.ConstructorProperties {
+        [key: string]: any;
+        alignment: number;
+        cell_area: CellArea;
+        cellArea: CellArea;
+        clickable: boolean;
+        expand: boolean;
+        fixed_width: number;
+        fixedWidth: number;
+        max_width: number;
+        maxWidth: number;
+        min_width: number;
+        minWidth: number;
+        reorderable: boolean;
+        resizable: boolean;
+        sizing: TreeViewColumnSizing;
+        sort_column_id: number;
+        sortColumnId: number;
+        sort_indicator: boolean;
+        sortIndicator: boolean;
+        sort_order: SortType;
+        sortOrder: SortType;
+        spacing: number;
+        title: string;
+        visible: boolean;
+        widget: Widget;
+        width: number;
+        x_offset: number;
+        xOffset: number;
+    }
+}
+export class TreeViewColumn extends GObject.InitiallyUnowned implements Buildable, CellLayout {
+    static $gtype: GObject.GType<TreeViewColumn>;
+
+    constructor(properties?: Partial<TreeViewColumn.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<TreeViewColumn.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get alignment(): number;
+    set alignment(val: number);
+    get cell_area(): CellArea;
+    get cellArea(): CellArea;
+    get clickable(): boolean;
+    set clickable(val: boolean);
+    get expand(): boolean;
+    set expand(val: boolean);
+    get fixed_width(): number;
+    set fixed_width(val: number);
+    get fixedWidth(): number;
+    set fixedWidth(val: number);
+    get max_width(): number;
+    set max_width(val: number);
+    get maxWidth(): number;
+    set maxWidth(val: number);
+    get min_width(): number;
+    set min_width(val: number);
+    get minWidth(): number;
+    set minWidth(val: number);
+    get reorderable(): boolean;
+    set reorderable(val: boolean);
+    get resizable(): boolean;
+    set resizable(val: boolean);
+    get sizing(): TreeViewColumnSizing;
+    set sizing(val: TreeViewColumnSizing);
+    get sort_column_id(): number;
+    set sort_column_id(val: number);
+    get sortColumnId(): number;
+    set sortColumnId(val: number);
+    get sort_indicator(): boolean;
+    set sort_indicator(val: boolean);
+    get sortIndicator(): boolean;
+    set sortIndicator(val: boolean);
+    get sort_order(): SortType;
+    set sort_order(val: SortType);
+    get sortOrder(): SortType;
+    set sortOrder(val: SortType);
+    get spacing(): number;
+    set spacing(val: number);
+    get title(): string;
+    set title(val: string);
+    get visible(): boolean;
+    set visible(val: boolean);
+    get widget(): Widget;
+    set widget(val: Widget);
+    get width(): number;
+    get x_offset(): number;
+    get xOffset(): number;
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "clicked", callback: (_source: this) => void): number;
+    connect_after(signal: "clicked", callback: (_source: this) => void): number;
+    emit(signal: "clicked"): void;
+
+    // Constructors
+
+    static ["new"](): TreeViewColumn;
+    static new_with_area(area: CellArea): TreeViewColumn;
+
+    // Members
+
+    add_attribute(cell_renderer: CellRenderer, attribute: string, column: number): void;
+    cell_get_position(cell_renderer: CellRenderer): [boolean, number, number];
+    cell_get_size(): [number, number, number, number];
+    cell_is_visible(): boolean;
+    cell_set_cell_data(tree_model: TreeModel, iter: TreeIter, is_expander: boolean, is_expanded: boolean): 
void;
+    clear(): void;
+    clear_attributes(cell_renderer: CellRenderer): void;
+    clicked(): void;
+    focus_cell(cell: CellRenderer): void;
+    get_alignment(): number;
+    get_button(): Widget;
+    get_clickable(): boolean;
+    get_expand(): boolean;
+    get_fixed_width(): number;
+    get_max_width(): number;
+    get_min_width(): number;
+    get_reorderable(): boolean;
+    get_resizable(): boolean;
+    get_sizing(): TreeViewColumnSizing;
+    get_sort_column_id(): number;
+    get_sort_indicator(): boolean;
+    get_sort_order(): SortType;
+    get_spacing(): number;
+    get_title(): string;
+    get_tree_view(): Widget | null;
+    get_visible(): boolean;
+    get_widget(): Widget | null;
+    get_width(): number;
+    get_x_offset(): number;
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    queue_resize(): void;
+    set_alignment(xalign: number): void;
+    set_cell_data_func(cell_renderer: CellRenderer, func?: TreeCellDataFunc | null): void;
+    // Conflicted with Gtk.CellLayout.set_cell_data_func
+    set_cell_data_func(...args: never[]): any;
+    set_clickable(clickable: boolean): void;
+    set_expand(expand: boolean): void;
+    set_fixed_width(fixed_width: number): void;
+    set_max_width(max_width: number): void;
+    set_min_width(min_width: number): void;
+    set_reorderable(reorderable: boolean): void;
+    set_resizable(resizable: boolean): void;
+    set_sizing(type: TreeViewColumnSizing): void;
+    set_sort_column_id(sort_column_id: number): void;
+    set_sort_indicator(setting: boolean): void;
+    set_sort_order(order: SortType): void;
+    set_spacing(spacing: number): void;
+    set_title(title: string): void;
+    set_visible(visible: boolean): void;
+    set_widget(widget?: Widget | null): void;
+
+    // Implemented Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    reorder(cell: CellRenderer, position: number): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+}
+export module Video {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        autoplay: boolean;
+        file: Gio.File;
+        loop: boolean;
+        media_stream: MediaStream;
+        mediaStream: MediaStream;
+    }
+}
+export class Video extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<Video>;
+
+    constructor(properties?: Partial<Video.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Video.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get autoplay(): boolean;
+    set autoplay(val: boolean);
+    get file(): Gio.File;
+    set file(val: Gio.File);
+    get loop(): boolean;
+    set loop(val: boolean);
+    get media_stream(): MediaStream;
+    set media_stream(val: MediaStream);
+    get mediaStream(): MediaStream;
+    set mediaStream(val: MediaStream);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Video;
+    static new_for_file(file?: Gio.File | null): Video;
+    static new_for_filename(filename?: string | null): Video;
+    static new_for_media_stream(stream?: MediaStream | null): Video;
+    static new_for_resource(resource_path?: string | null): Video;
+
+    // Members
+
+    get_autoplay(): boolean;
+    get_file(): Gio.File | null;
+    get_loop(): boolean;
+    get_media_stream(): MediaStream | null;
+    set_autoplay(autoplay: boolean): void;
+    set_file(file?: Gio.File | null): void;
+    set_filename(filename?: string | null): void;
+    set_loop(loop: boolean): void;
+    set_media_stream(stream?: MediaStream | null): void;
+    set_resource(resource_path?: string | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module Viewport {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+        scroll_to_focus: boolean;
+        scrollToFocus: boolean;
+    }
+}
+export class Viewport extends Widget implements Accessible, Buildable, ConstraintTarget, Scrollable {
+    static $gtype: GObject.GType<Viewport>;
+
+    constructor(properties?: Partial<Viewport.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Viewport.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+    get scroll_to_focus(): boolean;
+    set scroll_to_focus(val: boolean);
+    get scrollToFocus(): boolean;
+    set scrollToFocus(val: boolean);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+    get hadjustment(): Adjustment;
+    set hadjustment(val: Adjustment);
+    get hscroll_policy(): ScrollablePolicy;
+    set hscroll_policy(val: ScrollablePolicy);
+    get hscrollPolicy(): ScrollablePolicy;
+    set hscrollPolicy(val: ScrollablePolicy);
+    get vadjustment(): Adjustment;
+    set vadjustment(val: Adjustment);
+    get vscroll_policy(): ScrollablePolicy;
+    set vscroll_policy(val: ScrollablePolicy);
+    get vscrollPolicy(): ScrollablePolicy;
+    set vscrollPolicy(val: ScrollablePolicy);
+
+    // Constructors
+
+    static ["new"](hadjustment?: Adjustment | null, vadjustment?: Adjustment | null): Viewport;
+
+    // Members
+
+    get_child(): Widget | null;
+    get_scroll_to_focus(): boolean;
+    set_child(child?: Widget | null): void;
+    set_scroll_to_focus(scroll_to_focus: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+export module VolumeButton {
+    export interface ConstructorProperties extends ScaleButton.ConstructorProperties {
+        [key: string]: any;
+        use_symbolic: boolean;
+        useSymbolic: boolean;
+    }
+}
+export class VolumeButton extends ScaleButton implements Accessible, Buildable, ConstraintTarget, Orientable 
{
+    static $gtype: GObject.GType<VolumeButton>;
+
+    constructor(properties?: Partial<VolumeButton.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<VolumeButton.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get use_symbolic(): boolean;
+    set use_symbolic(val: boolean);
+    get useSymbolic(): boolean;
+    set useSymbolic(val: boolean);
+
+    // Implemented Properties
+
+    get orientation(): Orientation;
+    set orientation(val: Orientation);
+
+    // Constructors
+
+    static ["new"](): VolumeButton;
+
+    // Implemented Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+export module Widget {
+    export interface ConstructorProperties extends GObject.InitiallyUnowned.ConstructorProperties {
+        [key: string]: any;
+        can_focus: boolean;
+        canFocus: boolean;
+        can_target: boolean;
+        canTarget: boolean;
+        css_classes: string[];
+        cssClasses: string[];
+        css_name: string;
+        cssName: string;
+        cursor: Gdk.Cursor;
+        focus_on_click: boolean;
+        focusOnClick: boolean;
+        focusable: boolean;
+        halign: Align;
+        has_default: boolean;
+        hasDefault: boolean;
+        has_focus: boolean;
+        hasFocus: boolean;
+        has_tooltip: boolean;
+        hasTooltip: boolean;
+        height_request: number;
+        heightRequest: number;
+        hexpand: boolean;
+        hexpand_set: boolean;
+        hexpandSet: boolean;
+        layout_manager: LayoutManager;
+        layoutManager: LayoutManager;
+        margin_bottom: number;
+        marginBottom: number;
+        margin_end: number;
+        marginEnd: number;
+        margin_start: number;
+        marginStart: number;
+        margin_top: number;
+        marginTop: number;
+        name: string;
+        opacity: number;
+        overflow: Overflow;
+        receives_default: boolean;
+        receivesDefault: boolean;
+        root: Root;
+        scale_factor: number;
+        scaleFactor: number;
+        sensitive: boolean;
+        tooltip_markup: string;
+        tooltipMarkup: string;
+        tooltip_text: string;
+        tooltipText: string;
+        valign: Align;
+        vexpand: boolean;
+        vexpand_set: boolean;
+        vexpandSet: boolean;
+        visible: boolean;
+        width_request: number;
+        widthRequest: number;
+    }
+}
+export abstract class Widget extends GObject.InitiallyUnowned implements Accessible, Buildable, 
ConstraintTarget {
+    static $gtype: GObject.GType<Widget>;
+
+    constructor(properties?: Partial<Widget.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Widget.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get can_focus(): boolean;
+    set can_focus(val: boolean);
+    get canFocus(): boolean;
+    set canFocus(val: boolean);
+    get can_target(): boolean;
+    set can_target(val: boolean);
+    get canTarget(): boolean;
+    set canTarget(val: boolean);
+    get css_classes(): string[];
+    set css_classes(val: string[]);
+    get cssClasses(): string[];
+    set cssClasses(val: string[]);
+    get css_name(): string;
+    get cssName(): string;
+    get cursor(): Gdk.Cursor;
+    set cursor(val: Gdk.Cursor);
+    get focus_on_click(): boolean;
+    set focus_on_click(val: boolean);
+    get focusOnClick(): boolean;
+    set focusOnClick(val: boolean);
+    get focusable(): boolean;
+    set focusable(val: boolean);
+    get halign(): Align;
+    set halign(val: Align);
+    get has_default(): boolean;
+    get hasDefault(): boolean;
+    get has_focus(): boolean;
+    get hasFocus(): boolean;
+    get has_tooltip(): boolean;
+    set has_tooltip(val: boolean);
+    get hasTooltip(): boolean;
+    set hasTooltip(val: boolean);
+    get height_request(): number;
+    set height_request(val: number);
+    get heightRequest(): number;
+    set heightRequest(val: number);
+    get hexpand(): boolean;
+    set hexpand(val: boolean);
+    get hexpand_set(): boolean;
+    set hexpand_set(val: boolean);
+    get hexpandSet(): boolean;
+    set hexpandSet(val: boolean);
+    get layout_manager(): LayoutManager;
+    set layout_manager(val: LayoutManager);
+    get layoutManager(): LayoutManager;
+    set layoutManager(val: LayoutManager);
+    get margin_bottom(): number;
+    set margin_bottom(val: number);
+    get marginBottom(): number;
+    set marginBottom(val: number);
+    get margin_end(): number;
+    set margin_end(val: number);
+    get marginEnd(): number;
+    set marginEnd(val: number);
+    get margin_start(): number;
+    set margin_start(val: number);
+    get marginStart(): number;
+    set marginStart(val: number);
+    get margin_top(): number;
+    set margin_top(val: number);
+    get marginTop(): number;
+    set marginTop(val: number);
+    get name(): string;
+    set name(val: string);
+    get opacity(): number;
+    set opacity(val: number);
+    get overflow(): Overflow;
+    set overflow(val: Overflow);
+    get receives_default(): boolean;
+    set receives_default(val: boolean);
+    get receivesDefault(): boolean;
+    set receivesDefault(val: boolean);
+    get root(): Root;
+    get scale_factor(): number;
+    get scaleFactor(): number;
+    get sensitive(): boolean;
+    set sensitive(val: boolean);
+    get tooltip_markup(): string;
+    set tooltip_markup(val: string);
+    get tooltipMarkup(): string;
+    set tooltipMarkup(val: string);
+    get tooltip_text(): string;
+    set tooltip_text(val: string);
+    get tooltipText(): string;
+    set tooltipText(val: string);
+    get valign(): Align;
+    set valign(val: Align);
+    get vexpand(): boolean;
+    set vexpand(val: boolean);
+    get vexpand_set(): boolean;
+    set vexpand_set(val: boolean);
+    get vexpandSet(): boolean;
+    set vexpandSet(val: boolean);
+    get visible(): boolean;
+    set visible(val: boolean);
+    get width_request(): number;
+    set width_request(val: number);
+    get widthRequest(): number;
+    set widthRequest(val: number);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "destroy", callback: (_source: this) => void): number;
+    connect_after(signal: "destroy", callback: (_source: this) => void): number;
+    emit(signal: "destroy"): void;
+    connect(signal: "direction-changed", callback: (_source: this, previous_direction: TextDirection) => 
void): number;
+    connect_after(
+        signal: "direction-changed",
+        callback: (_source: this, previous_direction: TextDirection) => void
+    ): number;
+    emit(signal: "direction-changed", previous_direction: TextDirection): void;
+    connect(signal: "hide", callback: (_source: this) => void): number;
+    connect_after(signal: "hide", callback: (_source: this) => void): number;
+    emit(signal: "hide"): void;
+    connect(signal: "keynav-failed", callback: (_source: this, direction: DirectionType) => boolean): number;
+    connect_after(signal: "keynav-failed", callback: (_source: this, direction: DirectionType) => boolean): 
number;
+    emit(signal: "keynav-failed", direction: DirectionType): void;
+    connect(signal: "map", callback: (_source: this) => void): number;
+    connect_after(signal: "map", callback: (_source: this) => void): number;
+    emit(signal: "map"): void;
+    connect(signal: "mnemonic-activate", callback: (_source: this, group_cycling: boolean) => boolean): 
number;
+    connect_after(signal: "mnemonic-activate", callback: (_source: this, group_cycling: boolean) => 
boolean): number;
+    emit(signal: "mnemonic-activate", group_cycling: boolean): void;
+    connect(signal: "move-focus", callback: (_source: this, direction: DirectionType) => void): number;
+    connect_after(signal: "move-focus", callback: (_source: this, direction: DirectionType) => void): number;
+    emit(signal: "move-focus", direction: DirectionType): void;
+    connect(
+        signal: "query-tooltip",
+        callback: (_source: this, x: number, y: number, keyboard_mode: boolean, tooltip: Tooltip) => boolean
+    ): number;
+    connect_after(
+        signal: "query-tooltip",
+        callback: (_source: this, x: number, y: number, keyboard_mode: boolean, tooltip: Tooltip) => boolean
+    ): number;
+    emit(signal: "query-tooltip", x: number, y: number, keyboard_mode: boolean, tooltip: Tooltip): void;
+    connect(signal: "realize", callback: (_source: this) => void): number;
+    connect_after(signal: "realize", callback: (_source: this) => void): number;
+    emit(signal: "realize"): void;
+    connect(signal: "show", callback: (_source: this) => void): number;
+    connect_after(signal: "show", callback: (_source: this) => void): number;
+    emit(signal: "show"): void;
+    connect(signal: "state-flags-changed", callback: (_source: this, flags: StateFlags) => void): number;
+    connect_after(signal: "state-flags-changed", callback: (_source: this, flags: StateFlags) => void): 
number;
+    emit(signal: "state-flags-changed", flags: StateFlags): void;
+    connect(signal: "unmap", callback: (_source: this) => void): number;
+    connect_after(signal: "unmap", callback: (_source: this) => void): number;
+    emit(signal: "unmap"): void;
+    connect(signal: "unrealize", callback: (_source: this) => void): number;
+    connect_after(signal: "unrealize", callback: (_source: this) => void): number;
+    emit(signal: "unrealize"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Members
+
+    action_set_enabled(action_name: string, enabled: boolean): void;
+    activate(): boolean;
+    activate_action(name: string, args?: GLib.Variant | null): boolean;
+    activate_default(): void;
+    add_controller(controller: EventController): void;
+    add_css_class(css_class: string): void;
+    add_mnemonic_label(label: Widget): void;
+    add_tick_callback(callback: TickCallback): number;
+    allocate(width: number, height: number, baseline: number, transform?: Gsk.Transform | null): void;
+    child_focus(direction: DirectionType): boolean;
+    compute_bounds(target: Widget): [boolean, Graphene.Rect];
+    compute_expand(orientation: Orientation): boolean;
+    compute_point(target: Widget, point: Graphene.Point): [boolean, Graphene.Point];
+    compute_transform(target: Widget): [boolean, Graphene.Matrix];
+    contains(x: number, y: number): boolean;
+    create_pango_context(): Pango.Context;
+    create_pango_layout(text?: string | null): Pango.Layout;
+    drag_check_threshold(start_x: number, start_y: number, current_x: number, current_y: number): boolean;
+    error_bell(): void;
+    get_allocated_baseline(): number;
+    get_allocated_height(): number;
+    get_allocated_width(): number;
+    get_allocation(): Allocation;
+    get_ancestor(widget_type: GObject.GType): Widget | null;
+    get_can_focus(): boolean;
+    get_can_target(): boolean;
+    get_child_visible(): boolean;
+    get_clipboard(): Gdk.Clipboard;
+    get_css_classes(): string[];
+    get_css_name(): string;
+    get_cursor(): Gdk.Cursor | null;
+    get_direction(): TextDirection;
+    get_display(): Gdk.Display;
+    get_first_child(): Widget | null;
+    get_focus_child(): Widget | null;
+    get_focus_on_click(): boolean;
+    get_focusable(): boolean;
+    get_font_map(): Pango.FontMap | null;
+    get_font_options(): cairo.FontOptions | null;
+    get_frame_clock(): Gdk.FrameClock | null;
+    get_halign(): Align;
+    get_has_tooltip(): boolean;
+    get_height(): number;
+    get_hexpand(): boolean;
+    get_hexpand_set(): boolean;
+    get_last_child(): Widget | null;
+    get_layout_manager(): LayoutManager | null;
+    get_mapped(): boolean;
+    get_margin_bottom(): number;
+    get_margin_end(): number;
+    get_margin_start(): number;
+    get_margin_top(): number;
+    get_name(): string;
+    get_native(): Native | null;
+    get_next_sibling(): Widget | null;
+    get_opacity(): number;
+    get_overflow(): Overflow;
+    get_pango_context(): Pango.Context;
+    get_parent(): Widget | null;
+    get_preferred_size(): [Requisition | null, Requisition | null];
+    get_prev_sibling(): Widget | null;
+    get_primary_clipboard(): Gdk.Clipboard;
+    get_realized(): boolean;
+    get_receives_default(): boolean;
+    get_request_mode(): SizeRequestMode;
+    get_root(): Root | null;
+    get_scale_factor(): number;
+    get_sensitive(): boolean;
+    get_settings(): Settings;
+    get_size(orientation: Orientation): number;
+    get_size_request(): [number, number];
+    get_state_flags(): StateFlags;
+    get_style_context(): StyleContext;
+    get_template_child<T = GObject.Object>(widget_type: GObject.GType, name: string): T;
+    get_tooltip_markup(): string | null;
+    get_tooltip_text(): string | null;
+    get_valign(): Align;
+    get_vexpand(): boolean;
+    get_vexpand_set(): boolean;
+    get_visible(): boolean;
+    get_width(): number;
+    grab_focus(): boolean;
+    has_css_class(css_class: string): boolean;
+    has_visible_focus(): boolean;
+    hide(): void;
+    in_destruction(): boolean;
+    init_template(): void;
+    insert_action_group(name: string, group?: Gio.ActionGroup | null): void;
+    insert_after(parent: Widget, previous_sibling?: Widget | null): void;
+    insert_before(parent: Widget, next_sibling?: Widget | null): void;
+    is_ancestor(ancestor: Widget): boolean;
+    is_drawable(): boolean;
+    is_focus(): boolean;
+    is_sensitive(): boolean;
+    is_visible(): boolean;
+    keynav_failed(direction: DirectionType): boolean;
+    list_mnemonic_labels(): Widget[];
+    map(): void;
+    measure(orientation: Orientation, for_size: number): [number, number, number, number];
+    mnemonic_activate(group_cycling: boolean): boolean;
+    observe_children(): Gio.ListModel;
+    observe_controllers(): Gio.ListModel;
+    pick(x: number, y: number, flags: PickFlags): Widget | null;
+    queue_allocate(): void;
+    queue_draw(): void;
+    queue_resize(): void;
+    realize(): void;
+    remove_controller(controller: EventController): void;
+    remove_css_class(css_class: string): void;
+    remove_mnemonic_label(label: Widget): void;
+    remove_tick_callback(id: number): void;
+    set_can_focus(can_focus: boolean): void;
+    set_can_target(can_target: boolean): void;
+    set_child_visible(child_visible: boolean): void;
+    set_css_classes(classes: string[]): void;
+    set_cursor(cursor?: Gdk.Cursor | null): void;
+    set_cursor_from_name(name?: string | null): void;
+    set_direction(dir: TextDirection): void;
+    set_focus_child(child?: Widget | null): void;
+    set_focus_on_click(focus_on_click: boolean): void;
+    set_focusable(focusable: boolean): void;
+    set_font_map(font_map?: Pango.FontMap | null): void;
+    set_font_options(options?: cairo.FontOptions | null): void;
+    set_halign(align: Align): void;
+    set_has_tooltip(has_tooltip: boolean): void;
+    set_hexpand(expand: boolean): void;
+    set_hexpand_set(set: boolean): void;
+    set_layout_manager(layout_manager?: LayoutManager | null): void;
+    set_margin_bottom(margin: number): void;
+    set_margin_end(margin: number): void;
+    set_margin_start(margin: number): void;
+    set_margin_top(margin: number): void;
+    set_name(name: string): void;
+    set_opacity(opacity: number): void;
+    set_overflow(overflow: Overflow): void;
+    set_parent(parent: Widget): void;
+    set_receives_default(receives_default: boolean): void;
+    set_sensitive(sensitive: boolean): void;
+    set_size_request(width: number, height: number): void;
+    set_state_flags(flags: StateFlags, clear: boolean): void;
+    set_tooltip_markup(markup?: string | null): void;
+    set_tooltip_text(text?: string | null): void;
+    set_valign(align: Align): void;
+    set_vexpand(expand: boolean): void;
+    set_vexpand_set(set: boolean): void;
+    set_visible(visible: boolean): void;
+    should_layout(): boolean;
+    show(): void;
+    size_allocate(allocation: Allocation, baseline: number): void;
+    snapshot_child(child: Widget, snapshot: Snapshot): void;
+    translate_coordinates(dest_widget: Widget, src_x: number, src_y: number): [boolean, number, number];
+    trigger_tooltip_query(): void;
+    unmap(): void;
+    unparent(): void;
+    unrealize(): void;
+    unset_state_flags(flags: StateFlags): void;
+    vfunc_compute_expand(hexpand_p: boolean, vexpand_p: boolean): void;
+    vfunc_contains(x: number, y: number): boolean;
+    vfunc_css_changed(change: CssStyleChange): void;
+    vfunc_direction_changed(previous_direction: TextDirection): void;
+    vfunc_focus(direction: DirectionType): boolean;
+    vfunc_get_request_mode(): SizeRequestMode;
+    vfunc_grab_focus(): boolean;
+    vfunc_hide(): void;
+    vfunc_keynav_failed(direction: DirectionType): boolean;
+    vfunc_map(): void;
+    vfunc_measure(orientation: Orientation, for_size: number): [number, number, number, number];
+    vfunc_mnemonic_activate(group_cycling: boolean): boolean;
+    vfunc_move_focus(direction: DirectionType): void;
+    vfunc_query_tooltip(x: number, y: number, keyboard_tooltip: boolean, tooltip: Tooltip): boolean;
+    vfunc_realize(): void;
+    vfunc_root(): void;
+    vfunc_set_focus_child(child?: Widget | null): void;
+    vfunc_show(): void;
+    vfunc_size_allocate(width: number, height: number, baseline: number): void;
+    vfunc_snapshot(snapshot: Snapshot): void;
+    vfunc_state_flags_changed(previous_state_flags: StateFlags): void;
+    vfunc_system_setting_changed(settings: SystemSetting): void;
+    vfunc_unmap(): void;
+    vfunc_unrealize(): void;
+    vfunc_unroot(): void;
+    static get_default_direction(): TextDirection;
+    static set_default_direction(dir: TextDirection): void;
+    static add_shortcut(shortcut: Shortcut): void;
+    static bind_template_callback_full(callback_name: string, callback_symbol: GObject.Callback): void;
+    static bind_template_child_full(name: string, internal_child: boolean, struct_offset: number): void;
+    static get_accessible_role(): AccessibleRole;
+    static get_activate_signal(): number;
+    static get_css_name(): string;
+    static get_layout_manager_type(): GObject.GType;
+    static install_action(action_name: string, parameter_type: string | null, activate: 
WidgetActionActivateFunc): void;
+    static install_property_action(action_name: string, property_name: string): void;
+    static query_action(index_: number): [boolean, GObject.GType, string, GLib.VariantType | null, string];
+    static set_accessible_role(accessible_role: AccessibleRole): void;
+    static set_activate_signal(signal_id: number): void;
+    static set_activate_signal_from_name(signal_name: string): void;
+    static set_css_name(name: string): void;
+    static set_layout_manager_type(type: GObject.GType): void;
+    static set_template(template_bytes: GLib.Bytes | Uint8Array): void;
+    static set_template_from_resource(resource_name: string): void;
+    static set_template_scope(scope: BuilderScope): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module WidgetPaintable {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+        widget: Widget;
+    }
+}
+export class WidgetPaintable extends GObject.Object implements Gdk.Paintable {
+    static $gtype: GObject.GType<WidgetPaintable>;
+
+    constructor(properties?: Partial<WidgetPaintable.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<WidgetPaintable.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get widget(): Widget;
+    set widget(val: Widget);
+
+    // Constructors
+
+    static ["new"](widget?: Widget | null): WidgetPaintable;
+
+    // Members
+
+    get_widget(): Widget | null;
+    set_widget(widget?: Widget | null): void;
+
+    // Implemented Members
+
+    compute_concrete_size(
+        specified_width: number,
+        specified_height: number,
+        default_width: number,
+        default_height: number
+    ): [number, number];
+    get_current_image(): Gdk.Paintable;
+    get_flags(): Gdk.PaintableFlags;
+    get_intrinsic_aspect_ratio(): number;
+    get_intrinsic_height(): number;
+    get_intrinsic_width(): number;
+    invalidate_contents(): void;
+    invalidate_size(): void;
+    snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+    vfunc_get_current_image(): Gdk.Paintable;
+    vfunc_get_flags(): Gdk.PaintableFlags;
+    vfunc_get_intrinsic_aspect_ratio(): number;
+    vfunc_get_intrinsic_height(): number;
+    vfunc_get_intrinsic_width(): number;
+    vfunc_snapshot(snapshot: Gdk.Snapshot, width: number, height: number): void;
+}
+export module Window {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        application: Application;
+        child: Widget;
+        decorated: boolean;
+        default_height: number;
+        defaultHeight: number;
+        default_widget: Widget;
+        defaultWidget: Widget;
+        default_width: number;
+        defaultWidth: number;
+        deletable: boolean;
+        destroy_with_parent: boolean;
+        destroyWithParent: boolean;
+        display: Gdk.Display;
+        focus_visible: boolean;
+        focusVisible: boolean;
+        focus_widget: Widget;
+        focusWidget: Widget;
+        fullscreened: boolean;
+        handle_menubar_accel: boolean;
+        handleMenubarAccel: boolean;
+        hide_on_close: boolean;
+        hideOnClose: boolean;
+        icon_name: string;
+        iconName: string;
+        is_active: boolean;
+        isActive: boolean;
+        maximized: boolean;
+        mnemonics_visible: boolean;
+        mnemonicsVisible: boolean;
+        modal: boolean;
+        resizable: boolean;
+        startup_id: string;
+        startupId: string;
+        title: string;
+        titlebar: Widget;
+        transient_for: Window;
+        transientFor: Window;
+    }
+}
+export class Window extends Widget implements Accessible, Buildable, ConstraintTarget, Native, Root, 
ShortcutManager {
+    static $gtype: GObject.GType<Window>;
+
+    constructor(properties?: Partial<Window.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Window.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get application(): Application;
+    set application(val: Application);
+    get child(): Widget;
+    set child(val: Widget);
+    get decorated(): boolean;
+    set decorated(val: boolean);
+    get default_height(): number;
+    set default_height(val: number);
+    get defaultHeight(): number;
+    set defaultHeight(val: number);
+    get default_widget(): Widget;
+    set default_widget(val: Widget);
+    get defaultWidget(): Widget;
+    set defaultWidget(val: Widget);
+    get default_width(): number;
+    set default_width(val: number);
+    get defaultWidth(): number;
+    set defaultWidth(val: number);
+    get deletable(): boolean;
+    set deletable(val: boolean);
+    get destroy_with_parent(): boolean;
+    set destroy_with_parent(val: boolean);
+    get destroyWithParent(): boolean;
+    set destroyWithParent(val: boolean);
+    get display(): Gdk.Display;
+    set display(val: Gdk.Display);
+    get focus_visible(): boolean;
+    set focus_visible(val: boolean);
+    get focusVisible(): boolean;
+    set focusVisible(val: boolean);
+    get focus_widget(): Widget;
+    set focus_widget(val: Widget);
+    get focusWidget(): Widget;
+    set focusWidget(val: Widget);
+    get fullscreened(): boolean;
+    set fullscreened(val: boolean);
+    get handle_menubar_accel(): boolean;
+    set handle_menubar_accel(val: boolean);
+    get handleMenubarAccel(): boolean;
+    set handleMenubarAccel(val: boolean);
+    get hide_on_close(): boolean;
+    set hide_on_close(val: boolean);
+    get hideOnClose(): boolean;
+    set hideOnClose(val: boolean);
+    get icon_name(): string;
+    set icon_name(val: string);
+    get iconName(): string;
+    set iconName(val: string);
+    get is_active(): boolean;
+    get isActive(): boolean;
+    get maximized(): boolean;
+    set maximized(val: boolean);
+    get mnemonics_visible(): boolean;
+    set mnemonics_visible(val: boolean);
+    get mnemonicsVisible(): boolean;
+    set mnemonicsVisible(val: boolean);
+    get modal(): boolean;
+    set modal(val: boolean);
+    get resizable(): boolean;
+    set resizable(val: boolean);
+    set startup_id(val: string);
+    set startupId(val: string);
+    get title(): string;
+    set title(val: string);
+    get titlebar(): Widget;
+    set titlebar(val: Widget);
+    get transient_for(): Window;
+    set transient_for(val: Window);
+    get transientFor(): Window;
+    set transientFor(val: Window);
+
+    // Signals
+
+    connect(id: string, callback: (...args: any[]) => any): number;
+    connect_after(id: string, callback: (...args: any[]) => any): number;
+    emit(id: string, ...args: any[]): void;
+    connect(signal: "activate-default", callback: (_source: this) => void): number;
+    connect_after(signal: "activate-default", callback: (_source: this) => void): number;
+    emit(signal: "activate-default"): void;
+    connect(signal: "activate-focus", callback: (_source: this) => void): number;
+    connect_after(signal: "activate-focus", callback: (_source: this) => void): number;
+    emit(signal: "activate-focus"): void;
+    connect(signal: "close-request", callback: (_source: this) => boolean): number;
+    connect_after(signal: "close-request", callback: (_source: this) => boolean): number;
+    emit(signal: "close-request"): void;
+    connect(signal: "enable-debugging", callback: (_source: this, toggle: boolean) => boolean): number;
+    connect_after(signal: "enable-debugging", callback: (_source: this, toggle: boolean) => boolean): number;
+    emit(signal: "enable-debugging", toggle: boolean): void;
+    connect(signal: "keys-changed", callback: (_source: this) => void): number;
+    connect_after(signal: "keys-changed", callback: (_source: this) => void): number;
+    emit(signal: "keys-changed"): void;
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): Window;
+
+    // Members
+
+    close(): void;
+    destroy(): void;
+    fullscreen(): void;
+    fullscreen_on_monitor(monitor: Gdk.Monitor): void;
+    get_application(): Application | null;
+    get_child(): Widget | null;
+    get_decorated(): boolean;
+    get_default_size(): [number, number];
+    get_default_widget(): Widget | null;
+    get_deletable(): boolean;
+    get_destroy_with_parent(): boolean;
+    get_focus(): Widget | null;
+    get_focus_visible(): boolean;
+    get_group(): WindowGroup;
+    get_handle_menubar_accel(): boolean;
+    get_hide_on_close(): boolean;
+    get_icon_name(): string | null;
+    get_mnemonics_visible(): boolean;
+    get_modal(): boolean;
+    get_resizable(): boolean;
+    get_title(): string | null;
+    get_titlebar(): Widget | null;
+    get_transient_for(): Window | null;
+    has_group(): boolean;
+    is_fullscreen(): boolean;
+    is_maximized(): boolean;
+    maximize(): void;
+    minimize(): void;
+    present(): void;
+    present_with_time(timestamp: number): void;
+    set_application(application?: Application | null): void;
+    set_child(child?: Widget | null): void;
+    set_decorated(setting: boolean): void;
+    set_default_size(width: number, height: number): void;
+    set_default_widget(default_widget?: Widget | null): void;
+    set_deletable(setting: boolean): void;
+    set_destroy_with_parent(setting: boolean): void;
+    set_display(display: Gdk.Display): void;
+    set_focus(focus?: Widget | null): void;
+    set_focus_visible(setting: boolean): void;
+    set_handle_menubar_accel(handle_menubar_accel: boolean): void;
+    set_hide_on_close(setting: boolean): void;
+    set_icon_name(name?: string | null): void;
+    set_mnemonics_visible(setting: boolean): void;
+    set_modal(modal: boolean): void;
+    set_resizable(resizable: boolean): void;
+    set_startup_id(startup_id: string): void;
+    set_title(title?: string | null): void;
+    set_titlebar(titlebar?: Widget | null): void;
+    set_transient_for(parent?: Window | null): void;
+    unfullscreen(): void;
+    unmaximize(): void;
+    unminimize(): void;
+    vfunc_activate_default(): void;
+    vfunc_activate_focus(): void;
+    vfunc_close_request(): boolean;
+    vfunc_enable_debugging(toggle: boolean): boolean;
+    vfunc_keys_changed(): void;
+    static get_default_icon_name(): string | null;
+    static get_toplevels(): Gio.ListModel;
+    static list_toplevels(): Widget[];
+    static set_auto_startup_notification(setting: boolean): void;
+    static set_default_icon_name(name: string): void;
+    static set_interactive_debugging(enable: boolean): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+    get_display(): Gdk.Display;
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+export module WindowControls {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        decoration_layout: string;
+        decorationLayout: string;
+        empty: boolean;
+        side: PackType;
+    }
+}
+export class WindowControls extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<WindowControls>;
+
+    constructor(properties?: Partial<WindowControls.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<WindowControls.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get decoration_layout(): string;
+    set decoration_layout(val: string);
+    get decorationLayout(): string;
+    set decorationLayout(val: string);
+    get empty(): boolean;
+    get side(): PackType;
+    set side(val: PackType);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](side: PackType): WindowControls;
+
+    // Members
+
+    get_decoration_layout(): string | null;
+    get_empty(): boolean;
+    get_side(): PackType;
+    set_decoration_layout(layout?: string | null): void;
+    set_side(side: PackType): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+export module WindowGroup {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class WindowGroup extends GObject.Object {
+    static $gtype: GObject.GType<WindowGroup>;
+
+    constructor(properties?: Partial<WindowGroup.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<WindowGroup.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    priv: WindowGroupPrivate;
+
+    // Constructors
+
+    static ["new"](): WindowGroup;
+
+    // Members
+
+    add_window(window: Window): void;
+    list_windows(): Window[];
+    remove_window(window: Window): void;
+}
+export module WindowHandle {
+    export interface ConstructorProperties extends Widget.ConstructorProperties {
+        [key: string]: any;
+        child: Widget;
+    }
+}
+export class WindowHandle extends Widget implements Accessible, Buildable, ConstraintTarget {
+    static $gtype: GObject.GType<WindowHandle>;
+
+    constructor(properties?: Partial<WindowHandle.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<WindowHandle.ConstructorProperties>, ...args: any[]): void;
+
+    // Properties
+    get child(): Widget;
+    set child(val: Widget);
+
+    // Implemented Properties
+
+    get accessible_role(): AccessibleRole;
+    set accessible_role(val: AccessibleRole);
+    get accessibleRole(): AccessibleRole;
+    set accessibleRole(val: AccessibleRole);
+
+    // Constructors
+
+    static ["new"](): WindowHandle;
+
+    // Members
+
+    get_child(): Widget | null;
+    set_child(child?: Widget | null): void;
+
+    // Implemented Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+
+export class Bitset {
+    static $gtype: GObject.GType<Bitset>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: Bitset);
+
+    // Constructors
+    static new_empty(): Bitset;
+    static new_range(start: number, n_items: number): Bitset;
+
+    // Members
+    add(value: number): boolean;
+    add_range(start: number, n_items: number): void;
+    add_range_closed(first: number, last: number): void;
+    add_rectangle(start: number, width: number, height: number, stride: number): void;
+    contains(value: number): boolean;
+    copy(): Bitset;
+    difference(other: Bitset): void;
+    equals(other: Bitset): boolean;
+    get_maximum(): number;
+    get_minimum(): number;
+    get_nth(nth: number): number;
+    get_size(): number;
+    get_size_in_range(first: number, last: number): number;
+    intersect(other: Bitset): void;
+    is_empty(): boolean;
+    ref(): Bitset;
+    remove(value: number): boolean;
+    remove_all(): void;
+    remove_range(start: number, n_items: number): void;
+    remove_range_closed(first: number, last: number): void;
+    remove_rectangle(start: number, width: number, height: number, stride: number): void;
+    shift_left(amount: number): void;
+    shift_right(amount: number): void;
+    splice(position: number, removed: number, added: number): void;
+    subtract(other: Bitset): void;
+    union(other: Bitset): void;
+    unref(): void;
+}
+
+export class BitsetIter {
+    static $gtype: GObject.GType<BitsetIter>;
+
+    constructor(copy: BitsetIter);
+
+    // Members
+    get_value(): number;
+    is_valid(): boolean;
+    next(): [boolean, number];
+    previous(): [boolean, number];
+    static init_at(set: Bitset, target: number): [boolean, BitsetIter, number];
+    static init_first(set: Bitset): [boolean, BitsetIter, number];
+    static init_last(set: Bitset): [boolean, BitsetIter, number];
+}
+
+export class Border {
+    static $gtype: GObject.GType<Border>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            left?: number;
+            right?: number;
+            top?: number;
+            bottom?: number;
+        }>
+    );
+    constructor(copy: Border);
+
+    // Fields
+    left: number;
+    right: number;
+    top: number;
+    bottom: number;
+
+    // Constructors
+    static ["new"](): Border;
+
+    // Members
+    copy(): Border;
+    free(): void;
+}
+
+export class BuildableParseContext {
+    static $gtype: GObject.GType<BuildableParseContext>;
+
+    constructor(copy: BuildableParseContext);
+
+    // Members
+    get_element(): string | null;
+    get_element_stack(): string[];
+    get_position(): [number, number];
+    pop(): any | null;
+    push(parser: BuildableParser, user_data?: any | null): void;
+}
+
+export class BuildableParser {
+    static $gtype: GObject.GType<BuildableParser>;
+
+    constructor(copy: BuildableParser);
+}
+
+export class ButtonPrivate {
+    static $gtype: GObject.GType<ButtonPrivate>;
+
+    constructor(copy: ButtonPrivate);
+}
+
+export class CellAreaContextPrivate {
+    static $gtype: GObject.GType<CellAreaContextPrivate>;
+
+    constructor(copy: CellAreaContextPrivate);
+}
+
+export class CellRendererClassPrivate {
+    static $gtype: GObject.GType<CellRendererClassPrivate>;
+
+    constructor(copy: CellRendererClassPrivate);
+}
+
+export class CellRendererPrivate {
+    static $gtype: GObject.GType<CellRendererPrivate>;
+
+    constructor(copy: CellRendererPrivate);
+}
+
+export class CssLocation {
+    static $gtype: GObject.GType<CssLocation>;
+
+    constructor(
+        properties?: Partial<{
+            bytes?: number;
+            chars?: number;
+            lines?: number;
+            line_bytes?: number;
+            line_chars?: number;
+        }>
+    );
+    constructor(copy: CssLocation);
+
+    // Fields
+    bytes: number;
+    chars: number;
+    lines: number;
+    line_bytes: number;
+    line_chars: number;
+}
+
+export class CssProviderPrivate {
+    static $gtype: GObject.GType<CssProviderPrivate>;
+
+    constructor(copy: CssProviderPrivate);
+}
+
+export class CssSection {
+    static $gtype: GObject.GType<CssSection>;
+
+    constructor(file: Gio.File | null, start: CssLocation, end: CssLocation);
+    constructor(copy: CssSection);
+
+    // Constructors
+    static ["new"](file: Gio.File | null, start: CssLocation, end: CssLocation): CssSection;
+
+    // Members
+    get_end_location(): CssLocation;
+    get_file(): Gio.File | null;
+    get_parent(): CssSection | null;
+    get_start_location(): CssLocation;
+    print(string: GLib.String): void;
+    ref(): CssSection;
+    to_string(): string;
+    unref(): void;
+}
+
+export class CssStyleChange {
+    static $gtype: GObject.GType<CssStyleChange>;
+
+    constructor(copy: CssStyleChange);
+}
+
+export class ExpressionWatch {
+    static $gtype: GObject.GType<ExpressionWatch>;
+
+    constructor(copy: ExpressionWatch);
+
+    // Members
+    evaluate(value: GObject.Value | any): boolean;
+    ref(): ExpressionWatch;
+    unref(): void;
+    unwatch(): void;
+}
+
+export class IMContextSimplePrivate {
+    static $gtype: GObject.GType<IMContextSimplePrivate>;
+
+    constructor(copy: IMContextSimplePrivate);
+}
+
+export class IMMulticontextPrivate {
+    static $gtype: GObject.GType<IMMulticontextPrivate>;
+
+    constructor(copy: IMMulticontextPrivate);
+}
+
+export class ListStorePrivate {
+    static $gtype: GObject.GType<ListStorePrivate>;
+
+    constructor(copy: ListStorePrivate);
+}
+
+export class MountOperationPrivate {
+    static $gtype: GObject.GType<MountOperationPrivate>;
+
+    constructor(copy: MountOperationPrivate);
+}
+
+export class PadActionEntry {
+    static $gtype: GObject.GType<PadActionEntry>;
+
+    constructor(copy: PadActionEntry);
+
+    // Fields
+    type: PadActionType;
+    index: number;
+    mode: number;
+    label: string;
+    action_name: string;
+}
+
+export class PageRange {
+    static $gtype: GObject.GType<PageRange>;
+
+    constructor(
+        properties?: Partial<{
+            start?: number;
+            end?: number;
+        }>
+    );
+    constructor(copy: PageRange);
+
+    // Fields
+    start: number;
+    end: number;
+}
+
+export class PaperSize {
+    static $gtype: GObject.GType<PaperSize>;
+
+    constructor(name?: string | null);
+    constructor(copy: PaperSize);
+
+    // Constructors
+    static ["new"](name?: string | null): PaperSize;
+    static new_custom(name: string, display_name: string, width: number, height: number, unit: Unit): 
PaperSize;
+    static new_from_gvariant(variant: GLib.Variant): PaperSize;
+    static new_from_ipp(ipp_name: string, width: number, height: number): PaperSize;
+    static new_from_key_file(key_file: GLib.KeyFile, group_name?: string | null): PaperSize;
+    static new_from_ppd(ppd_name: string, ppd_display_name: string, width: number, height: number): 
PaperSize;
+
+    // Members
+    copy(): PaperSize;
+    free(): void;
+    get_default_bottom_margin(unit: Unit): number;
+    get_default_left_margin(unit: Unit): number;
+    get_default_right_margin(unit: Unit): number;
+    get_default_top_margin(unit: Unit): number;
+    get_display_name(): string;
+    get_height(unit: Unit): number;
+    get_name(): string;
+    get_ppd_name(): string;
+    get_width(unit: Unit): number;
+    is_custom(): boolean;
+    is_equal(size2: PaperSize): boolean;
+    is_ipp(): boolean;
+    set_size(width: number, height: number, unit: Unit): void;
+    to_gvariant(): GLib.Variant;
+    to_key_file(key_file: GLib.KeyFile, group_name: string): void;
+    static get_default(): string;
+    static get_paper_sizes(include_custom: boolean): PaperSize[];
+}
+
+export class PrintBackend {
+    static $gtype: GObject.GType<PrintBackend>;
+
+    constructor(copy: PrintBackend);
+}
+
+export class PrintOperationPrivate {
+    static $gtype: GObject.GType<PrintOperationPrivate>;
+
+    constructor(copy: PrintOperationPrivate);
+}
+
+export class RecentData {
+    static $gtype: GObject.GType<RecentData>;
+
+    constructor(copy: RecentData);
+
+    // Fields
+    display_name: string;
+    description: string;
+    mime_type: string;
+    app_name: string;
+    app_exec: string;
+    groups: string[];
+    is_private: boolean;
+}
+
+export class RecentInfo {
+    static $gtype: GObject.GType<RecentInfo>;
+
+    constructor(copy: RecentInfo);
+
+    // Members
+    create_app_info(app_name?: string | null): Gio.AppInfo | null;
+    exists(): boolean;
+    get_added(): GLib.DateTime;
+    get_age(): number;
+    get_application_info(app_name: string): [boolean, string, number, GLib.DateTime];
+    get_applications(): string[];
+    get_description(): string;
+    get_display_name(): string;
+    get_gicon(): Gio.Icon | null;
+    get_groups(): string[];
+    get_mime_type(): string;
+    get_modified(): GLib.DateTime;
+    get_private_hint(): boolean;
+    get_short_name(): string;
+    get_uri(): string;
+    get_uri_display(): string | null;
+    get_visited(): GLib.DateTime;
+    has_application(app_name: string): boolean;
+    has_group(group_name: string): boolean;
+    is_local(): boolean;
+    last_application(): string;
+    match(info_b: RecentInfo): boolean;
+    ref(): RecentInfo;
+    unref(): void;
+}
+
+export class RecentManagerPrivate {
+    static $gtype: GObject.GType<RecentManagerPrivate>;
+
+    constructor(copy: RecentManagerPrivate);
+}
+
+export class RequestedSize {
+    static $gtype: GObject.GType<RequestedSize>;
+
+    constructor(
+        properties?: Partial<{
+            data?: any;
+            minimum_size?: number;
+            natural_size?: number;
+        }>
+    );
+    constructor(copy: RequestedSize);
+
+    // Fields
+    data: any;
+    minimum_size: number;
+    natural_size: number;
+}
+
+export class Requisition {
+    static $gtype: GObject.GType<Requisition>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            width?: number;
+            height?: number;
+        }>
+    );
+    constructor(copy: Requisition);
+
+    // Fields
+    width: number;
+    height: number;
+
+    // Constructors
+    static ["new"](): Requisition;
+
+    // Members
+    copy(): Requisition;
+    free(): void;
+}
+
+export class TextBufferPrivate {
+    static $gtype: GObject.GType<TextBufferPrivate>;
+
+    constructor(copy: TextBufferPrivate);
+}
+
+export class TextIter {
+    static $gtype: GObject.GType<TextIter>;
+
+    constructor(copy: TextIter);
+
+    // Members
+    assign(other: TextIter): void;
+    backward_char(): boolean;
+    backward_chars(count: number): boolean;
+    backward_cursor_position(): boolean;
+    backward_cursor_positions(count: number): boolean;
+    backward_find_char(pred: TextCharPredicate, limit?: TextIter | null): boolean;
+    backward_line(): boolean;
+    backward_lines(count: number): boolean;
+    backward_search(
+        str: string,
+        flags: TextSearchFlags,
+        limit?: TextIter | null
+    ): [boolean, TextIter | null, TextIter | null];
+    backward_sentence_start(): boolean;
+    backward_sentence_starts(count: number): boolean;
+    backward_to_tag_toggle(tag?: TextTag | null): boolean;
+    backward_visible_cursor_position(): boolean;
+    backward_visible_cursor_positions(count: number): boolean;
+    backward_visible_line(): boolean;
+    backward_visible_lines(count: number): boolean;
+    backward_visible_word_start(): boolean;
+    backward_visible_word_starts(count: number): boolean;
+    backward_word_start(): boolean;
+    backward_word_starts(count: number): boolean;
+    can_insert(default_editability: boolean): boolean;
+    compare(rhs: TextIter): number;
+    copy(): TextIter;
+    editable(default_setting: boolean): boolean;
+    ends_line(): boolean;
+    ends_sentence(): boolean;
+    ends_tag(tag?: TextTag | null): boolean;
+    ends_word(): boolean;
+    equal(rhs: TextIter): boolean;
+    forward_char(): boolean;
+    forward_chars(count: number): boolean;
+    forward_cursor_position(): boolean;
+    forward_cursor_positions(count: number): boolean;
+    forward_find_char(pred: TextCharPredicate, limit?: TextIter | null): boolean;
+    forward_line(): boolean;
+    forward_lines(count: number): boolean;
+    forward_search(
+        str: string,
+        flags: TextSearchFlags,
+        limit?: TextIter | null
+    ): [boolean, TextIter | null, TextIter | null];
+    forward_sentence_end(): boolean;
+    forward_sentence_ends(count: number): boolean;
+    forward_to_end(): void;
+    forward_to_line_end(): boolean;
+    forward_to_tag_toggle(tag?: TextTag | null): boolean;
+    forward_visible_cursor_position(): boolean;
+    forward_visible_cursor_positions(count: number): boolean;
+    forward_visible_line(): boolean;
+    forward_visible_lines(count: number): boolean;
+    forward_visible_word_end(): boolean;
+    forward_visible_word_ends(count: number): boolean;
+    forward_word_end(): boolean;
+    forward_word_ends(count: number): boolean;
+    free(): void;
+    get_buffer(): TextBuffer;
+    get_bytes_in_line(): number;
+    get_char(): number;
+    get_chars_in_line(): number;
+    get_child_anchor(): TextChildAnchor | null;
+    get_language(): Pango.Language;
+    get_line(): number;
+    get_line_index(): number;
+    get_line_offset(): number;
+    get_marks(): TextMark[];
+    get_offset(): number;
+    get_paintable(): Gdk.Paintable | null;
+    get_slice(end: TextIter): string;
+    get_tags(): TextTag[];
+    get_text(end: TextIter): string;
+    get_toggled_tags(toggled_on: boolean): TextTag[];
+    get_visible_line_index(): number;
+    get_visible_line_offset(): number;
+    get_visible_slice(end: TextIter): string;
+    get_visible_text(end: TextIter): string;
+    has_tag(tag: TextTag): boolean;
+    in_range(start: TextIter, end: TextIter): boolean;
+    inside_sentence(): boolean;
+    inside_word(): boolean;
+    is_cursor_position(): boolean;
+    is_end(): boolean;
+    is_start(): boolean;
+    order(second: TextIter): void;
+    set_line(line_number: number): void;
+    set_line_index(byte_on_line: number): void;
+    set_line_offset(char_on_line: number): void;
+    set_offset(char_offset: number): void;
+    set_visible_line_index(byte_on_line: number): void;
+    set_visible_line_offset(char_on_line: number): void;
+    starts_line(): boolean;
+    starts_sentence(): boolean;
+    starts_tag(tag?: TextTag | null): boolean;
+    starts_word(): boolean;
+    toggles_tag(tag?: TextTag | null): boolean;
+}
+
+export class TextTagPrivate {
+    static $gtype: GObject.GType<TextTagPrivate>;
+
+    constructor(copy: TextTagPrivate);
+}
+
+export class TextViewPrivate {
+    static $gtype: GObject.GType<TextViewPrivate>;
+
+    constructor(copy: TextViewPrivate);
+}
+
+export class TreeIter {
+    static $gtype: GObject.GType<TreeIter>;
+
+    constructor(
+        properties?: Partial<{
+            stamp?: number;
+            user_data?: any;
+            user_data2?: any;
+            user_data3?: any;
+        }>
+    );
+    constructor(copy: TreeIter);
+
+    // Fields
+    stamp: number;
+    user_data: any;
+    user_data2: any;
+    user_data3: any;
+
+    // Members
+    copy(): TreeIter;
+    free(): void;
+}
+
+export class TreeModelFilterPrivate {
+    static $gtype: GObject.GType<TreeModelFilterPrivate>;
+
+    constructor(copy: TreeModelFilterPrivate);
+}
+
+export class TreeModelSortPrivate {
+    static $gtype: GObject.GType<TreeModelSortPrivate>;
+
+    constructor(copy: TreeModelSortPrivate);
+}
+
+export class TreePath {
+    static $gtype: GObject.GType<TreePath>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: TreePath);
+
+    // Constructors
+    static ["new"](): TreePath;
+    static new_first(): TreePath;
+    static new_from_indices(indices: number[]): TreePath;
+    static new_from_string(path: string): TreePath;
+
+    // Members
+    append_index(index_: number): void;
+    compare(b: TreePath): number;
+    copy(): TreePath;
+    down(): void;
+    free(): void;
+    get_depth(): number;
+    get_indices(): number[] | null;
+    is_ancestor(descendant: TreePath): boolean;
+    is_descendant(ancestor: TreePath): boolean;
+    next(): void;
+    prepend_index(index_: number): void;
+    prev(): boolean;
+    to_string(): string | null;
+    up(): boolean;
+}
+
+export class TreeRowReference {
+    static $gtype: GObject.GType<TreeRowReference>;
+
+    constructor(model: TreeModel, path: TreePath);
+    constructor(copy: TreeRowReference);
+
+    // Constructors
+    static ["new"](model: TreeModel, path: TreePath): TreeRowReference;
+    static new_proxy(proxy: GObject.Object, model: TreeModel, path: TreePath): TreeRowReference;
+
+    // Members
+    copy(): TreeRowReference;
+    free(): void;
+    get_model(): TreeModel;
+    get_path(): TreePath | null;
+    valid(): boolean;
+    static deleted(proxy: GObject.Object, path: TreePath): void;
+    static inserted(proxy: GObject.Object, path: TreePath): void;
+}
+
+export class TreeStorePrivate {
+    static $gtype: GObject.GType<TreeStorePrivate>;
+
+    constructor(copy: TreeStorePrivate);
+}
+
+export class WidgetClassPrivate {
+    static $gtype: GObject.GType<WidgetClassPrivate>;
+
+    constructor(copy: WidgetClassPrivate);
+}
+
+export class WidgetPrivate {
+    static $gtype: GObject.GType<WidgetPrivate>;
+
+    constructor(copy: WidgetPrivate);
+}
+
+export class WindowGroupPrivate {
+    static $gtype: GObject.GType<WindowGroupPrivate>;
+
+    constructor(copy: WindowGroupPrivate);
+}
+
+export interface AccessibleNamespace {
+    $gtype: GObject.GType<Accessible>;
+    prototype: AccessiblePrototype;
+}
+export type Accessible = AccessiblePrototype;
+export interface AccessiblePrototype extends GObject.Object {
+    // Properties
+    accessible_role: AccessibleRole;
+    accessibleRole: AccessibleRole;
+
+    // Members
+
+    get_accessible_role(): AccessibleRole;
+    reset_property(property: AccessibleProperty): void;
+    reset_relation(relation: AccessibleRelation): void;
+    reset_state(state: AccessibleState): void;
+    update_property(properties: AccessibleProperty[], values: GObject.Value[]): void;
+    update_relation(relations: AccessibleRelation[], values: GObject.Value[]): void;
+    update_state(states: AccessibleState[], values: GObject.Value[]): void;
+}
+
+export const Accessible: AccessibleNamespace;
+
+export interface ActionableNamespace {
+    $gtype: GObject.GType<Actionable>;
+    prototype: ActionablePrototype;
+}
+export type Actionable = ActionablePrototype;
+export interface ActionablePrototype extends Widget {
+    // Properties
+    action_name: string;
+    actionName: string;
+    action_target: GLib.Variant;
+    actionTarget: GLib.Variant;
+
+    // Members
+
+    get_action_name(): string | null;
+    get_action_target_value(): GLib.Variant | null;
+    set_action_name(action_name?: string | null): void;
+    set_action_target_value(target_value?: GLib.Variant | null): void;
+    set_detailed_action_name(detailed_action_name: string): void;
+    vfunc_get_action_name(): string | null;
+    vfunc_get_action_target_value(): GLib.Variant | null;
+    vfunc_set_action_name(action_name?: string | null): void;
+    vfunc_set_action_target_value(target_value?: GLib.Variant | null): void;
+}
+
+export const Actionable: ActionableNamespace;
+
+export interface AppChooserNamespace {
+    $gtype: GObject.GType<AppChooser>;
+    prototype: AppChooserPrototype;
+}
+export type AppChooser = AppChooserPrototype;
+export interface AppChooserPrototype extends Widget {
+    // Properties
+    readonly content_type: string;
+    readonly contentType: string;
+
+    // Members
+
+    get_app_info(): Gio.AppInfo | null;
+    get_content_type(): string;
+    refresh(): void;
+}
+
+export const AppChooser: AppChooserNamespace;
+
+export interface BuildableNamespace {
+    $gtype: GObject.GType<Buildable>;
+    prototype: BuildablePrototype;
+}
+export type Buildable = BuildablePrototype;
+export interface BuildablePrototype extends GObject.Object {
+    // Members
+
+    get_buildable_id(): string | null;
+    vfunc_add_child(builder: Builder, child: GObject.Object, type?: string | null): void;
+    vfunc_custom_finished(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_end(builder: Builder, child: GObject.Object | null, tagname: string, data?: any | 
null): void;
+    vfunc_custom_tag_start(
+        builder: Builder,
+        child: GObject.Object | null,
+        tagname: string
+    ): [boolean, BuildableParser, any];
+    vfunc_get_id(): string;
+    vfunc_get_internal_child<T = GObject.Object>(builder: Builder, childname: string): T;
+    vfunc_parser_finished(builder: Builder): void;
+    vfunc_set_buildable_property(builder: Builder, name: string, value: GObject.Value | any): void;
+    vfunc_set_id(id: string): void;
+}
+
+export const Buildable: BuildableNamespace;
+
+export interface BuilderScopeNamespace {
+    $gtype: GObject.GType<BuilderScope>;
+    prototype: BuilderScopePrototype;
+}
+export type BuilderScope = BuilderScopePrototype;
+export interface BuilderScopePrototype extends GObject.Object {
+    // Members
+
+    vfunc_create_closure(
+        builder: Builder,
+        function_name: string,
+        flags: BuilderClosureFlags,
+        object: GObject.Object
+    ): GObject.Closure;
+    vfunc_get_type_from_function(builder: Builder, function_name: string): GObject.GType;
+    vfunc_get_type_from_name(builder: Builder, type_name: string): GObject.GType;
+}
+
+export const BuilderScope: BuilderScopeNamespace;
+
+export interface CellEditableNamespace {
+    $gtype: GObject.GType<CellEditable>;
+    prototype: CellEditablePrototype;
+}
+export type CellEditable = CellEditablePrototype;
+export interface CellEditablePrototype extends Widget {
+    // Properties
+    editing_canceled: boolean;
+    editingCanceled: boolean;
+
+    // Members
+
+    editing_done(): void;
+    remove_widget(): void;
+    start_editing(event?: Gdk.Event | null): void;
+    vfunc_editing_done(): void;
+    vfunc_remove_widget(): void;
+    vfunc_start_editing(event?: Gdk.Event | null): void;
+}
+
+export const CellEditable: CellEditableNamespace;
+
+export interface CellLayoutNamespace {
+    $gtype: GObject.GType<CellLayout>;
+    prototype: CellLayoutPrototype;
+}
+export type CellLayout = CellLayoutPrototype;
+export interface CellLayoutPrototype extends GObject.Object {
+    // Members
+
+    add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    clear(): void;
+    clear_attributes(cell: CellRenderer): void;
+    get_area(): CellArea | null;
+    get_cells(): CellRenderer[];
+    pack_end(cell: CellRenderer, expand: boolean): void;
+    pack_start(cell: CellRenderer, expand: boolean): void;
+    reorder(cell: CellRenderer, position: number): void;
+    set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+    vfunc_add_attribute(cell: CellRenderer, attribute: string, column: number): void;
+    vfunc_clear(): void;
+    vfunc_clear_attributes(cell: CellRenderer): void;
+    vfunc_get_area(): CellArea | null;
+    vfunc_get_cells(): CellRenderer[];
+    vfunc_pack_end(cell: CellRenderer, expand: boolean): void;
+    vfunc_pack_start(cell: CellRenderer, expand: boolean): void;
+    vfunc_reorder(cell: CellRenderer, position: number): void;
+    vfunc_set_cell_data_func(cell: CellRenderer, func?: CellLayoutDataFunc | null): void;
+}
+
+export const CellLayout: CellLayoutNamespace;
+
+export interface ColorChooserNamespace {
+    $gtype: GObject.GType<ColorChooser>;
+    prototype: ColorChooserPrototype;
+}
+export type ColorChooser = ColorChooserPrototype;
+export interface ColorChooserPrototype extends GObject.Object {
+    // Properties
+    rgba: Gdk.RGBA;
+    use_alpha: boolean;
+    useAlpha: boolean;
+
+    // Members
+
+    add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    get_rgba(): Gdk.RGBA;
+    get_use_alpha(): boolean;
+    set_rgba(color: Gdk.RGBA): void;
+    set_use_alpha(use_alpha: boolean): void;
+    vfunc_add_palette(orientation: Orientation, colors_per_line: number, colors?: Gdk.RGBA[] | null): void;
+    vfunc_color_activated(color: Gdk.RGBA): void;
+    vfunc_get_rgba(): Gdk.RGBA;
+    vfunc_set_rgba(color: Gdk.RGBA): void;
+}
+
+export const ColorChooser: ColorChooserNamespace;
+
+export interface ConstraintTargetNamespace {
+    $gtype: GObject.GType<ConstraintTarget>;
+    prototype: ConstraintTargetPrototype;
+}
+export type ConstraintTarget = ConstraintTargetPrototype;
+export interface ConstraintTargetPrototype extends GObject.Object {}
+
+export const ConstraintTarget: ConstraintTargetNamespace;
+
+export interface EditableNamespace {
+    $gtype: GObject.GType<Editable>;
+    prototype: EditablePrototype;
+
+    delegate_get_property(
+        object: GObject.Object,
+        prop_id: number,
+        value: GObject.Value | any,
+        pspec: GObject.ParamSpec
+    ): boolean;
+    delegate_set_property(
+        object: GObject.Object,
+        prop_id: number,
+        value: GObject.Value | any,
+        pspec: GObject.ParamSpec
+    ): boolean;
+    install_properties(object_class: GObject.Object, first_prop: number): number;
+    // Conflicted with GObject.Object.install_properties
+    install_properties(...args: never[]): any;
+}
+export type Editable = EditablePrototype;
+export interface EditablePrototype extends Widget {
+    // Properties
+    readonly cursor_position: number;
+    readonly cursorPosition: number;
+    editable: boolean;
+    enable_undo: boolean;
+    enableUndo: boolean;
+    max_width_chars: number;
+    maxWidthChars: number;
+    readonly selection_bound: number;
+    readonly selectionBound: number;
+    text: string;
+    width_chars: number;
+    widthChars: number;
+    xalign: number;
+
+    // Members
+
+    delete_selection(): void;
+    delete_text(start_pos: number, end_pos: number): void;
+    finish_delegate(): void;
+    get_alignment(): number;
+    get_chars(start_pos: number, end_pos: number): string;
+    get_delegate(): Editable | null;
+    get_editable(): boolean;
+    get_enable_undo(): boolean;
+    get_max_width_chars(): number;
+    get_position(): number;
+    get_selection_bounds(): [boolean, number, number];
+    get_text(): string;
+    get_width_chars(): number;
+    init_delegate(): void;
+    insert_text(text: string, length: number, position: number): number;
+    select_region(start_pos: number, end_pos: number): void;
+    set_alignment(xalign: number): void;
+    set_editable(is_editable: boolean): void;
+    set_enable_undo(enable_undo: boolean): void;
+    set_max_width_chars(n_chars: number): void;
+    set_position(position: number): void;
+    set_text(text: string): void;
+    set_width_chars(n_chars: number): void;
+    vfunc_changed(): void;
+    vfunc_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_delete_text(start_pos: number, end_pos: number): void;
+    vfunc_do_insert_text(text: string, length: number, position: number): number;
+    vfunc_get_delegate(): Editable | null;
+    vfunc_get_selection_bounds(): [boolean, number, number];
+    vfunc_get_text(): string;
+    vfunc_insert_text(text: string, length: number, position: number): number;
+    vfunc_set_selection_bounds(start_pos: number, end_pos: number): void;
+}
+
+export const Editable: EditableNamespace;
+
+export interface FileChooserNamespace {
+    $gtype: GObject.GType<FileChooser>;
+    prototype: FileChooserPrototype;
+}
+export type FileChooser = FileChooserPrototype;
+export interface FileChooserPrototype extends GObject.Object {
+    // Properties
+    action: FileChooserAction;
+    create_folders: boolean;
+    createFolders: boolean;
+    filter: FileFilter;
+    readonly filters: Gio.ListModel;
+    select_multiple: boolean;
+    selectMultiple: boolean;
+    readonly shortcut_folders: Gio.ListModel;
+    readonly shortcutFolders: Gio.ListModel;
+
+    // Members
+
+    add_choice(id: string, label: string, options?: string[] | null, option_labels?: string[] | null): void;
+    add_filter(filter: FileFilter): void;
+    add_shortcut_folder(folder: Gio.File): boolean;
+    get_action(): FileChooserAction;
+    get_choice(id: string): string | null;
+    get_create_folders(): boolean;
+    get_current_folder(): Gio.File | null;
+    get_current_name(): string | null;
+    get_file(): Gio.File | null;
+    get_files(): Gio.ListModel;
+    get_filter(): FileFilter | null;
+    get_filters(): Gio.ListModel;
+    get_select_multiple(): boolean;
+    get_shortcut_folders(): Gio.ListModel;
+    remove_choice(id: string): void;
+    remove_filter(filter: FileFilter): void;
+    remove_shortcut_folder(folder: Gio.File): boolean;
+    set_action(action: FileChooserAction): void;
+    set_choice(id: string, option: string): void;
+    set_create_folders(create_folders: boolean): void;
+    set_current_folder(file?: Gio.File | null): boolean;
+    set_current_name(name: string): void;
+    set_file(file: Gio.File): boolean;
+    set_filter(filter: FileFilter): void;
+    set_select_multiple(select_multiple: boolean): void;
+}
+
+export const FileChooser: FileChooserNamespace;
+
+export interface FontChooserNamespace {
+    $gtype: GObject.GType<FontChooser>;
+    prototype: FontChooserPrototype;
+}
+export type FontChooser = FontChooserPrototype;
+export interface FontChooserPrototype extends GObject.Object {
+    // Properties
+    font: string;
+    font_desc: Pango.FontDescription;
+    fontDesc: Pango.FontDescription;
+    readonly font_features: string;
+    readonly fontFeatures: string;
+    language: string;
+    level: FontChooserLevel;
+    preview_text: string;
+    previewText: string;
+    show_preview_entry: boolean;
+    showPreviewEntry: boolean;
+
+    // Members
+
+    get_font(): string | null;
+    get_font_desc(): Pango.FontDescription | null;
+    get_font_face(): Pango.FontFace | null;
+    get_font_family(): Pango.FontFamily | null;
+    get_font_features(): string;
+    get_font_map(): Pango.FontMap | null;
+    get_font_size(): number;
+    get_language(): string;
+    get_level(): FontChooserLevel;
+    get_preview_text(): string;
+    get_show_preview_entry(): boolean;
+    set_filter_func(filter?: FontFilterFunc | null): void;
+    set_font(fontname: string): void;
+    set_font_desc(font_desc: Pango.FontDescription): void;
+    set_font_map(fontmap?: Pango.FontMap | null): void;
+    set_language(language: string): void;
+    set_level(level: FontChooserLevel): void;
+    set_preview_text(text: string): void;
+    set_show_preview_entry(show_preview_entry: boolean): void;
+    vfunc_font_activated(fontname: string): void;
+    vfunc_get_font_face(): Pango.FontFace | null;
+    vfunc_get_font_family(): Pango.FontFamily | null;
+    vfunc_get_font_map(): Pango.FontMap | null;
+    vfunc_get_font_size(): number;
+    vfunc_set_filter_func(filter?: FontFilterFunc | null): void;
+    vfunc_set_font_map(fontmap?: Pango.FontMap | null): void;
+}
+
+export const FontChooser: FontChooserNamespace;
+
+export interface NativeNamespace {
+    $gtype: GObject.GType<Native>;
+    prototype: NativePrototype;
+
+    get_for_surface(surface: Gdk.Surface): Native | null;
+}
+export type Native = NativePrototype;
+export interface NativePrototype extends Widget {
+    // Members
+
+    get_renderer(): Gsk.Renderer;
+    get_surface(): Gdk.Surface;
+    get_surface_transform(): [number, number];
+    realize(): void;
+    unrealize(): void;
+}
+
+export const Native: NativeNamespace;
+
+export interface OrientableNamespace {
+    $gtype: GObject.GType<Orientable>;
+    prototype: OrientablePrototype;
+}
+export type Orientable = OrientablePrototype;
+export interface OrientablePrototype extends GObject.Object {
+    // Properties
+    orientation: Orientation;
+
+    // Members
+
+    get_orientation(): Orientation;
+    set_orientation(orientation: Orientation): void;
+}
+
+export const Orientable: OrientableNamespace;
+
+export interface PrintOperationPreviewNamespace {
+    $gtype: GObject.GType<PrintOperationPreview>;
+    prototype: PrintOperationPreviewPrototype;
+}
+export type PrintOperationPreview = PrintOperationPreviewPrototype;
+export interface PrintOperationPreviewPrototype extends GObject.Object {
+    // Members
+
+    end_preview(): void;
+    is_selected(page_nr: number): boolean;
+    render_page(page_nr: number): void;
+    vfunc_end_preview(): void;
+    vfunc_got_page_size(context: PrintContext, page_setup: PageSetup): void;
+    vfunc_is_selected(page_nr: number): boolean;
+    vfunc_ready(context: PrintContext): void;
+    vfunc_render_page(page_nr: number): void;
+}
+
+export const PrintOperationPreview: PrintOperationPreviewNamespace;
+
+export interface RootNamespace {
+    $gtype: GObject.GType<Root>;
+    prototype: RootPrototype;
+}
+export type Root = RootPrototype;
+export interface RootPrototype extends Native {
+    // Members
+
+    get_display(): Gdk.Display;
+    get_focus(): Widget | null;
+    set_focus(focus?: Widget | null): void;
+}
+
+export const Root: RootNamespace;
+
+export interface ScrollableNamespace {
+    $gtype: GObject.GType<Scrollable>;
+    prototype: ScrollablePrototype;
+}
+export type Scrollable = ScrollablePrototype;
+export interface ScrollablePrototype extends GObject.Object {
+    // Properties
+    hadjustment: Adjustment;
+    hscroll_policy: ScrollablePolicy;
+    hscrollPolicy: ScrollablePolicy;
+    vadjustment: Adjustment;
+    vscroll_policy: ScrollablePolicy;
+    vscrollPolicy: ScrollablePolicy;
+
+    // Members
+
+    get_border(): [boolean, Border];
+    get_hadjustment(): Adjustment | null;
+    get_hscroll_policy(): ScrollablePolicy;
+    get_vadjustment(): Adjustment | null;
+    get_vscroll_policy(): ScrollablePolicy;
+    set_hadjustment(hadjustment?: Adjustment | null): void;
+    set_hscroll_policy(policy: ScrollablePolicy): void;
+    set_vadjustment(vadjustment?: Adjustment | null): void;
+    set_vscroll_policy(policy: ScrollablePolicy): void;
+    vfunc_get_border(): [boolean, Border];
+}
+
+export const Scrollable: ScrollableNamespace;
+
+export interface SelectionModelNamespace {
+    $gtype: GObject.GType<SelectionModel>;
+    prototype: SelectionModelPrototype;
+}
+export type SelectionModel<A extends GObject.Object = GObject.Object> = SelectionModelPrototype<A>;
+export interface SelectionModelPrototype<A extends GObject.Object = GObject.Object> extends Gio.ListModel<A> 
{
+    // Members
+
+    get_selection(): Bitset;
+    get_selection_in_range(position: number, n_items: number): Bitset;
+    is_selected(position: number): boolean;
+    select_all(): boolean;
+    select_item(position: number, unselect_rest: boolean): boolean;
+    select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    selection_changed(position: number, n_items: number): void;
+    set_selection(selected: Bitset, mask: Bitset): boolean;
+    unselect_all(): boolean;
+    unselect_item(position: number): boolean;
+    unselect_range(position: number, n_items: number): boolean;
+    vfunc_get_selection_in_range(position: number, n_items: number): Bitset;
+    vfunc_is_selected(position: number): boolean;
+    vfunc_select_all(): boolean;
+    vfunc_select_item(position: number, unselect_rest: boolean): boolean;
+    vfunc_select_range(position: number, n_items: number, unselect_rest: boolean): boolean;
+    vfunc_set_selection(selected: Bitset, mask: Bitset): boolean;
+    vfunc_unselect_all(): boolean;
+    vfunc_unselect_item(position: number): boolean;
+    vfunc_unselect_range(position: number, n_items: number): boolean;
+}
+
+export const SelectionModel: SelectionModelNamespace;
+
+export interface ShortcutManagerNamespace {
+    $gtype: GObject.GType<ShortcutManager>;
+    prototype: ShortcutManagerPrototype;
+}
+export type ShortcutManager = ShortcutManagerPrototype;
+export interface ShortcutManagerPrototype extends GObject.Object {
+    // Members
+
+    vfunc_add_controller(controller: ShortcutController): void;
+    vfunc_remove_controller(controller: ShortcutController): void;
+}
+
+export const ShortcutManager: ShortcutManagerNamespace;
+
+export interface StyleProviderNamespace {
+    $gtype: GObject.GType<StyleProvider>;
+    prototype: StyleProviderPrototype;
+}
+export type StyleProvider = StyleProviderPrototype;
+export interface StyleProviderPrototype extends GObject.Object {}
+
+export const StyleProvider: StyleProviderNamespace;
+
+export interface SymbolicPaintableNamespace {
+    $gtype: GObject.GType<SymbolicPaintable>;
+    prototype: SymbolicPaintablePrototype;
+}
+export type SymbolicPaintable = SymbolicPaintablePrototype;
+export interface SymbolicPaintablePrototype extends Gdk.Paintable {
+    // Members
+
+    snapshot_symbolic(snapshot: Gdk.Snapshot, width: number, height: number, colors: Gdk.RGBA[]): void;
+    vfunc_snapshot_symbolic(snapshot: Gdk.Snapshot, width: number, height: number, colors: Gdk.RGBA[]): void;
+}
+
+export const SymbolicPaintable: SymbolicPaintableNamespace;
+
+export interface TreeDragDestNamespace {
+    $gtype: GObject.GType<TreeDragDest>;
+    prototype: TreeDragDestPrototype;
+}
+export type TreeDragDest = TreeDragDestPrototype;
+export interface TreeDragDestPrototype extends GObject.Object {
+    // Members
+
+    drag_data_received(dest: TreePath, value: GObject.Value | any): boolean;
+    row_drop_possible(dest_path: TreePath, value: GObject.Value | any): boolean;
+    vfunc_drag_data_received(dest: TreePath, value: GObject.Value | any): boolean;
+    vfunc_row_drop_possible(dest_path: TreePath, value: GObject.Value | any): boolean;
+}
+
+export const TreeDragDest: TreeDragDestNamespace;
+
+export interface TreeDragSourceNamespace {
+    $gtype: GObject.GType<TreeDragSource>;
+    prototype: TreeDragSourcePrototype;
+}
+export type TreeDragSource = TreeDragSourcePrototype;
+export interface TreeDragSourcePrototype extends GObject.Object {
+    // Members
+
+    drag_data_delete(path: TreePath): boolean;
+    drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    row_draggable(path: TreePath): boolean;
+    vfunc_drag_data_delete(path: TreePath): boolean;
+    vfunc_drag_data_get(path: TreePath): Gdk.ContentProvider | null;
+    vfunc_row_draggable(path: TreePath): boolean;
+}
+
+export const TreeDragSource: TreeDragSourceNamespace;
+
+export interface TreeModelNamespace {
+    $gtype: GObject.GType<TreeModel>;
+    prototype: TreeModelPrototype;
+}
+export type TreeModel = TreeModelPrototype;
+export interface TreeModelPrototype extends GObject.Object {
+    // Members
+
+    filter_new(root?: TreePath | null): TreeModel;
+    foreach(func: TreeModelForeachFunc): void;
+    get_column_type(index_: number): GObject.GType;
+    get_flags(): TreeModelFlags;
+    get_iter(path: TreePath): [boolean, TreeIter];
+    get_iter_first(): [boolean, TreeIter];
+    get_iter_from_string(path_string: string): [boolean, TreeIter];
+    get_n_columns(): number;
+    get_path(iter: TreeIter): TreePath;
+    get_string_from_iter(iter: TreeIter): string | null;
+    get_value(iter: TreeIter, column: number): unknown;
+    iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    iter_has_child(iter: TreeIter): boolean;
+    iter_n_children(iter?: TreeIter | null): number;
+    iter_next(iter: TreeIter): boolean;
+    iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    iter_parent(child: TreeIter): [boolean, TreeIter];
+    iter_previous(iter: TreeIter): boolean;
+    ref_node(iter: TreeIter): void;
+    row_changed(path: TreePath, iter: TreeIter): void;
+    row_deleted(path: TreePath): void;
+    row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    row_inserted(path: TreePath, iter: TreeIter): void;
+    rows_reordered(path: TreePath, iter: TreeIter | null, new_order: number[]): void;
+    unref_node(iter: TreeIter): void;
+    vfunc_get_column_type(index_: number): GObject.GType;
+    vfunc_get_flags(): TreeModelFlags;
+    vfunc_get_iter(path: TreePath): [boolean, TreeIter];
+    vfunc_get_n_columns(): number;
+    vfunc_get_path(iter: TreeIter): TreePath;
+    vfunc_get_value(iter: TreeIter, column: number): unknown;
+    vfunc_iter_children(parent?: TreeIter | null): [boolean, TreeIter];
+    vfunc_iter_has_child(iter: TreeIter): boolean;
+    vfunc_iter_n_children(iter?: TreeIter | null): number;
+    vfunc_iter_next(iter: TreeIter): boolean;
+    vfunc_iter_nth_child(parent: TreeIter | null, n: number): [boolean, TreeIter];
+    vfunc_iter_parent(child: TreeIter): [boolean, TreeIter];
+    vfunc_iter_previous(iter: TreeIter): boolean;
+    vfunc_ref_node(iter: TreeIter): void;
+    vfunc_row_changed(path: TreePath, iter: TreeIter): void;
+    vfunc_row_deleted(path: TreePath): void;
+    vfunc_row_has_child_toggled(path: TreePath, iter: TreeIter): void;
+    vfunc_row_inserted(path: TreePath, iter: TreeIter): void;
+    vfunc_unref_node(iter: TreeIter): void;
+}
+
+export const TreeModel: TreeModelNamespace;
+
+export interface TreeSortableNamespace {
+    $gtype: GObject.GType<TreeSortable>;
+    prototype: TreeSortablePrototype;
+}
+export type TreeSortable = TreeSortablePrototype;
+export interface TreeSortablePrototype extends TreeModel {
+    // Members
+
+    get_sort_column_id(): [boolean, number, SortType];
+    has_default_sort_func(): boolean;
+    set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    set_sort_column_id(sort_column_id: number, order: SortType): void;
+    set_sort_func(sort_column_id: number, sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | 
null): void;
+    sort_column_changed(): void;
+    vfunc_get_sort_column_id(): [boolean, number, SortType];
+    vfunc_has_default_sort_func(): boolean;
+    vfunc_set_default_sort_func(sort_func: TreeIterCompareFunc, destroy?: GLib.DestroyNotify | null): void;
+    vfunc_set_sort_column_id(sort_column_id: number, order: SortType): void;
+    vfunc_set_sort_func(
+        sort_column_id: number,
+        sort_func: TreeIterCompareFunc,
+        destroy?: GLib.DestroyNotify | null
+    ): void;
+    vfunc_sort_column_changed(): void;
+}
+
+export const TreeSortable: TreeSortableNamespace;
+
+export type Allocation = Gdk.Rectangle;
diff --git a/types/harfbuzz.d.ts b/types/harfbuzz.d.ts
new file mode 100644
index 0000000..e023060
--- /dev/null
+++ b/types/harfbuzz.d.ts
@@ -0,0 +1,2194 @@
+/**
+ * HarfBuzz 2.0
+ *
+ * Generated from 4.3.0
+ */
+
+import * as GLib from "glib";
+import * as GObject from "gobject";
+
+export const AAT_LAYOUT_NO_SELECTOR_INDEX: number;
+export const BUFFER_REPLACEMENT_CODEPOINT_DEFAULT: number;
+export const FEATURE_GLOBAL_START: number;
+export const LANGUAGE_INVALID: language_t;
+export const MAP_VALUE_INVALID: codepoint_t;
+export const OT_LAYOUT_DEFAULT_LANGUAGE_INDEX: number;
+export const OT_LAYOUT_NO_FEATURE_INDEX: number;
+export const OT_LAYOUT_NO_SCRIPT_INDEX: number;
+export const OT_LAYOUT_NO_VARIATIONS_INDEX: number;
+export const OT_MAX_TAGS_PER_LANGUAGE: number;
+export const OT_MAX_TAGS_PER_SCRIPT: number;
+export const OT_VAR_NO_AXIS_INDEX: number;
+export const SET_VALUE_INVALID: codepoint_t;
+export const UNICODE_MAX: number;
+export const UNICODE_MAX_DECOMPOSITION_LEN: number;
+export const VERSION_MAJOR: number;
+export const VERSION_MICRO: number;
+export const VERSION_MINOR: number;
+export const VERSION_STRING: string;
+export function aat_layout_feature_type_get_name_id(
+    face: face_t,
+    feature_type: aat_layout_feature_type_t
+): ot_name_id_t;
+export function aat_layout_feature_type_get_selector_infos(
+    face: face_t,
+    feature_type: aat_layout_feature_type_t,
+    start_offset: number
+): [number, aat_layout_feature_selector_info_t[] | null, number];
+export function aat_layout_get_feature_types(face: face_t, start_offset: number): [number, 
aat_layout_feature_type_t[]];
+export function aat_layout_has_positioning(face: face_t): bool_t;
+export function aat_layout_has_substitution(face: face_t): bool_t;
+export function aat_layout_has_tracking(face: face_t): bool_t;
+export function blob_copy_writable_or_fail(blob: blob_t): blob_t;
+export function blob_create_from_file(file_name: string): blob_t;
+export function blob_create_from_file_or_fail(file_name: string): blob_t;
+export function blob_create_sub_blob(parent: blob_t, offset: number, length: number): blob_t;
+export function blob_get_data(blob: blob_t): string[];
+export function blob_get_data_writable(blob: blob_t): string[];
+export function blob_get_empty(): blob_t;
+export function blob_get_length(blob: blob_t): number;
+export function blob_is_immutable(blob: blob_t): bool_t;
+export function blob_make_immutable(blob: blob_t): void;
+export function buffer_add(buffer: buffer_t, codepoint: codepoint_t, cluster: number): void;
+export function buffer_add_codepoints(
+    buffer: buffer_t,
+    text: codepoint_t[],
+    item_offset: number,
+    item_length: number
+): void;
+export function buffer_add_latin1(
+    buffer: buffer_t,
+    text: Uint8Array | string,
+    item_offset: number,
+    item_length: number
+): void;
+export function buffer_add_utf16(buffer: buffer_t, text: number[], item_offset: number, item_length: 
number): void;
+export function buffer_add_utf32(buffer: buffer_t, text: number[], item_offset: number, item_length: 
number): void;
+export function buffer_add_utf8(
+    buffer: buffer_t,
+    text: Uint8Array | string,
+    item_offset: number,
+    item_length: number
+): void;
+export function buffer_allocation_successful(buffer: buffer_t): bool_t;
+export function buffer_append(buffer: buffer_t, source: buffer_t, start: number, end: number): void;
+export function buffer_clear_contents(buffer: buffer_t): void;
+export function buffer_create(): buffer_t;
+export function buffer_create_similar(src: buffer_t): buffer_t;
+export function buffer_deserialize_glyphs(
+    buffer: buffer_t,
+    buf: string[],
+    font: font_t | null,
+    format: buffer_serialize_format_t
+): [bool_t, string];
+export function buffer_deserialize_unicode(
+    buffer: buffer_t,
+    buf: string[],
+    format: buffer_serialize_format_t
+): [bool_t, string];
+export function buffer_diff(
+    buffer: buffer_t,
+    reference: buffer_t,
+    dottedcircle_glyph: codepoint_t,
+    position_fuzz: number
+): buffer_diff_flags_t;
+export function buffer_get_cluster_level(buffer: buffer_t): buffer_cluster_level_t;
+export function buffer_get_content_type(buffer: buffer_t): buffer_content_type_t;
+export function buffer_get_direction(buffer: buffer_t): direction_t;
+export function buffer_get_empty(): buffer_t;
+export function buffer_get_flags(buffer: buffer_t): buffer_flags_t;
+export function buffer_get_glyph_infos(buffer: buffer_t): glyph_info_t[];
+export function buffer_get_glyph_positions(buffer: buffer_t): glyph_position_t[];
+export function buffer_get_invisible_glyph(buffer: buffer_t): codepoint_t;
+export function buffer_get_language(buffer: buffer_t): language_t;
+export function buffer_get_length(buffer: buffer_t): number;
+export function buffer_get_not_found_glyph(buffer: buffer_t): codepoint_t;
+export function buffer_get_replacement_codepoint(buffer: buffer_t): codepoint_t;
+export function buffer_get_script(buffer: buffer_t): script_t;
+export function buffer_get_segment_properties(buffer: buffer_t): segment_properties_t;
+export function buffer_get_unicode_funcs(buffer: buffer_t): unicode_funcs_t;
+export function buffer_guess_segment_properties(buffer: buffer_t): void;
+export function buffer_has_positions(buffer: buffer_t): bool_t;
+export function buffer_normalize_glyphs(buffer: buffer_t): void;
+export function buffer_pre_allocate(buffer: buffer_t, size: number): bool_t;
+export function buffer_reset(buffer: buffer_t): void;
+export function buffer_reverse(buffer: buffer_t): void;
+export function buffer_reverse_clusters(buffer: buffer_t): void;
+export function buffer_reverse_range(buffer: buffer_t, start: number, end: number): void;
+export function buffer_serialize(
+    buffer: buffer_t,
+    start: number,
+    end: number,
+    font: font_t | null,
+    format: buffer_serialize_format_t,
+    flags: buffer_serialize_flags_t
+): [number, Uint8Array, number];
+export function buffer_serialize_format_from_string(str: Uint8Array | string): buffer_serialize_format_t;
+export function buffer_serialize_format_to_string(format: buffer_serialize_format_t): string;
+export function buffer_serialize_glyphs(
+    buffer: buffer_t,
+    start: number,
+    end: number,
+    font: font_t | null,
+    format: buffer_serialize_format_t,
+    flags: buffer_serialize_flags_t
+): [number, Uint8Array, number];
+export function buffer_serialize_list_formats(): string[];
+export function buffer_serialize_unicode(
+    buffer: buffer_t,
+    start: number,
+    end: number,
+    format: buffer_serialize_format_t,
+    flags: buffer_serialize_flags_t
+): [number, Uint8Array, number];
+export function buffer_set_cluster_level(buffer: buffer_t, cluster_level: buffer_cluster_level_t): void;
+export function buffer_set_content_type(buffer: buffer_t, content_type: buffer_content_type_t): void;
+export function buffer_set_direction(buffer: buffer_t, direction: direction_t): void;
+export function buffer_set_flags(buffer: buffer_t, flags: buffer_flags_t): void;
+export function buffer_set_invisible_glyph(buffer: buffer_t, invisible: codepoint_t): void;
+export function buffer_set_language(buffer: buffer_t, language: language_t): void;
+export function buffer_set_length(buffer: buffer_t, length: number): bool_t;
+export function buffer_set_message_func(
+    buffer: buffer_t,
+    func: buffer_message_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function buffer_set_not_found_glyph(buffer: buffer_t, not_found: codepoint_t): void;
+export function buffer_set_replacement_codepoint(buffer: buffer_t, replacement: codepoint_t): void;
+export function buffer_set_script(buffer: buffer_t, script: script_t): void;
+export function buffer_set_segment_properties(buffer: buffer_t, props: segment_properties_t): void;
+export function buffer_set_unicode_funcs(buffer: buffer_t, unicode_funcs: unicode_funcs_t): void;
+export function color_get_alpha(color: color_t): number;
+export function color_get_blue(color: color_t): number;
+export function color_get_green(color: color_t): number;
+export function color_get_red(color: color_t): number;
+export function direction_from_string(str: Uint8Array | string): direction_t;
+export function direction_to_string(direction: direction_t): string;
+export function draw_close_path(dfuncs: draw_funcs_t, draw_data: any | null, st: draw_state_t): void;
+export function draw_cubic_to(
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    control1_x: number,
+    control1_y: number,
+    control2_x: number,
+    control2_y: number,
+    to_x: number,
+    to_y: number
+): void;
+export function draw_funcs_create(): draw_funcs_t;
+export function draw_funcs_is_immutable(dfuncs: draw_funcs_t): bool_t;
+export function draw_funcs_make_immutable(dfuncs: draw_funcs_t): void;
+export function draw_funcs_set_close_path_func(
+    dfuncs: draw_funcs_t,
+    func: draw_close_path_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function draw_funcs_set_cubic_to_func(
+    dfuncs: draw_funcs_t,
+    func: draw_cubic_to_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function draw_funcs_set_line_to_func(
+    dfuncs: draw_funcs_t,
+    func: draw_line_to_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function draw_funcs_set_move_to_func(
+    dfuncs: draw_funcs_t,
+    func: draw_move_to_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function draw_funcs_set_quadratic_to_func(
+    dfuncs: draw_funcs_t,
+    func: draw_quadratic_to_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function draw_line_to(
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    to_x: number,
+    to_y: number
+): void;
+export function draw_move_to(
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    to_x: number,
+    to_y: number
+): void;
+export function draw_quadratic_to(
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    control_x: number,
+    control_y: number,
+    to_x: number,
+    to_y: number
+): void;
+export function face_builder_add_table(face: face_t, tag: tag_t, blob: blob_t): bool_t;
+export function face_builder_create(): face_t;
+export function face_collect_unicodes(face: face_t, out: set_t): void;
+export function face_collect_variation_selectors(face: face_t, out: set_t): void;
+export function face_collect_variation_unicodes(face: face_t, variation_selector: codepoint_t, out: set_t): 
void;
+export function face_count(blob: blob_t): number;
+export function face_create(blob: blob_t, index: number): face_t;
+export function face_create_for_tables(
+    reference_table_func: reference_table_func_t,
+    destroy?: destroy_func_t | null
+): face_t;
+export function face_get_empty(): face_t;
+export function face_get_glyph_count(face: face_t): number;
+export function face_get_index(face: face_t): number;
+export function face_get_table_tags(face: face_t, start_offset: number): [number, tag_t[]];
+export function face_get_upem(face: face_t): number;
+export function face_is_immutable(face: face_t): bool_t;
+export function face_make_immutable(face: face_t): void;
+export function face_reference_blob(face: face_t): blob_t;
+export function face_reference_table(face: face_t, tag: tag_t): blob_t;
+export function face_set_glyph_count(face: face_t, glyph_count: number): void;
+export function face_set_index(face: face_t, index: number): void;
+export function face_set_upem(face: face_t, upem: number): void;
+export function feature_from_string(str: Uint8Array | string): [bool_t, feature_t];
+export function feature_to_string(feature: feature_t): string[];
+export function font_add_glyph_origin_for_direction(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t,
+    x: position_t,
+    y: position_t
+): [position_t, position_t];
+export function font_create(face: face_t): font_t;
+export function font_create_sub_font(parent: font_t): font_t;
+export function font_funcs_create(): font_funcs_t;
+export function font_funcs_get_empty(): font_funcs_t;
+export function font_funcs_is_immutable(ffuncs: font_funcs_t): bool_t;
+export function font_funcs_make_immutable(ffuncs: font_funcs_t): void;
+export function font_funcs_set_font_h_extents_func(
+    ffuncs: font_funcs_t,
+    func: font_get_font_h_extents_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_font_v_extents_func(
+    ffuncs: font_funcs_t,
+    func: font_get_font_v_extents_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_contour_point_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_contour_point_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_extents_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_extents_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_from_name_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_from_name_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_h_advance_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_h_advance_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_h_advances_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_h_advances_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_h_kerning_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_h_kerning_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_h_origin_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_h_origin_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_name_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_name_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_shape_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_shape_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_v_advance_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_v_advance_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_v_advances_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_v_advances_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_v_kerning_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_v_kerning_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_glyph_v_origin_func(
+    ffuncs: font_funcs_t,
+    func: font_get_glyph_v_origin_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_nominal_glyph_func(
+    ffuncs: font_funcs_t,
+    func: font_get_nominal_glyph_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_nominal_glyphs_func(
+    ffuncs: font_funcs_t,
+    func: font_get_nominal_glyphs_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_funcs_set_variation_glyph_func(
+    ffuncs: font_funcs_t,
+    func: font_get_variation_glyph_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function font_get_empty(): font_t;
+export function font_get_extents_for_direction(font: font_t, direction: direction_t): font_extents_t;
+export function font_get_face(font: font_t): face_t;
+export function font_get_glyph(
+    font: font_t,
+    unicode: codepoint_t,
+    variation_selector: codepoint_t
+): [bool_t, codepoint_t];
+export function font_get_glyph_advance_for_direction(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t
+): [position_t, position_t];
+export function font_get_glyph_advances_for_direction(
+    font: font_t,
+    direction: direction_t,
+    count: number,
+    first_glyph: codepoint_t,
+    glyph_stride: number
+): [position_t, number];
+export function font_get_glyph_contour_point(
+    font: font_t,
+    glyph: codepoint_t,
+    point_index: number
+): [bool_t, position_t, position_t];
+export function font_get_glyph_contour_point_for_origin(
+    font: font_t,
+    glyph: codepoint_t,
+    point_index: number,
+    direction: direction_t
+): [bool_t, position_t, position_t];
+export function font_get_glyph_extents(font: font_t, glyph: codepoint_t): [bool_t, glyph_extents_t];
+export function font_get_glyph_extents_for_origin(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t
+): [bool_t, glyph_extents_t];
+export function font_get_glyph_from_name(font: font_t, name: string[]): [bool_t, codepoint_t];
+export function font_get_glyph_h_advance(font: font_t, glyph: codepoint_t): position_t;
+export function font_get_glyph_h_advances(
+    font: font_t,
+    count: number,
+    first_glyph: codepoint_t,
+    glyph_stride: number,
+    advance_stride: number
+): position_t;
+export function font_get_glyph_h_kerning(font: font_t, left_glyph: codepoint_t, right_glyph: codepoint_t): 
position_t;
+export function font_get_glyph_h_origin(font: font_t, glyph: codepoint_t): [bool_t, position_t, position_t];
+export function font_get_glyph_kerning_for_direction(
+    font: font_t,
+    first_glyph: codepoint_t,
+    second_glyph: codepoint_t,
+    direction: direction_t
+): [position_t, position_t];
+export function font_get_glyph_name(font: font_t, glyph: codepoint_t): [bool_t, string[]];
+export function font_get_glyph_origin_for_direction(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t
+): [position_t, position_t];
+export function font_get_glyph_shape(
+    font: font_t,
+    glyph: codepoint_t,
+    dfuncs: draw_funcs_t,
+    draw_data?: any | null
+): void;
+export function font_get_glyph_v_advance(font: font_t, glyph: codepoint_t): position_t;
+export function font_get_glyph_v_advances(
+    font: font_t,
+    count: number,
+    first_glyph: codepoint_t,
+    glyph_stride: number
+): [position_t, number];
+export function font_get_glyph_v_kerning(font: font_t, top_glyph: codepoint_t, bottom_glyph: codepoint_t): 
position_t;
+export function font_get_glyph_v_origin(font: font_t, glyph: codepoint_t): [bool_t, position_t, position_t];
+export function font_get_h_extents(font: font_t): [bool_t, font_extents_t];
+export function font_get_nominal_glyph(font: font_t, unicode: codepoint_t): [bool_t, codepoint_t];
+export function font_get_nominal_glyphs(
+    font: font_t,
+    count: number,
+    first_unicode: codepoint_t,
+    unicode_stride: number,
+    glyph_stride: number
+): [number, codepoint_t];
+export function font_get_parent(font: font_t): font_t;
+export function font_get_ppem(font: font_t): [number, number];
+export function font_get_ptem(font: font_t): number;
+export function font_get_scale(font: font_t): [number, number];
+export function font_get_synthetic_slant(font: font_t): number;
+export function font_get_v_extents(font: font_t): [bool_t, font_extents_t];
+export function font_get_var_coords_design(font: font_t): [number, number];
+export function font_get_var_coords_normalized(font: font_t): [number, number];
+export function font_get_variation_glyph(
+    font: font_t,
+    unicode: codepoint_t,
+    variation_selector: codepoint_t
+): [bool_t, codepoint_t];
+export function font_glyph_from_string(font: font_t, s: Uint8Array | string): [bool_t, codepoint_t];
+export function font_glyph_to_string(font: font_t, glyph: codepoint_t): string[];
+export function font_is_immutable(font: font_t): bool_t;
+export function font_make_immutable(font: font_t): void;
+export function font_set_face(font: font_t, face: face_t): void;
+export function font_set_funcs(font: font_t, klass: font_funcs_t, destroy?: destroy_func_t | null): void;
+export function font_set_funcs_data(font: font_t, font_data?: any | null, destroy?: destroy_func_t | null): 
void;
+export function font_set_parent(font: font_t, parent: font_t): void;
+export function font_set_ppem(font: font_t, x_ppem: number, y_ppem: number): void;
+export function font_set_ptem(font: font_t, ptem: number): void;
+export function font_set_scale(font: font_t, x_scale: number, y_scale: number): void;
+export function font_set_synthetic_slant(font: font_t, slant: number): void;
+export function font_set_var_coords_design(font: font_t, coords: number[]): void;
+export function font_set_var_coords_normalized(font: font_t, coords: number[]): void;
+export function font_set_var_named_instance(font: font_t, instance_index: number): void;
+export function font_set_variations(font: font_t, variations: variation_t[]): void;
+export function font_subtract_glyph_origin_for_direction(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t,
+    x: position_t,
+    y: position_t
+): [position_t, position_t];
+export function ft_font_changed(font: font_t): void;
+export function ft_font_get_load_flags(font: font_t): number;
+export function ft_font_set_funcs(font: font_t): void;
+export function ft_font_set_load_flags(font: font_t, load_flags: number): void;
+export function ft_font_unlock_face(font: font_t): void;
+export function glib_blob_create(gbytes: GLib.Bytes | Uint8Array): blob_t;
+export function glib_get_unicode_funcs(): unicode_funcs_t;
+export function glib_script_from_script(script: script_t): GLib.UnicodeScript;
+export function glib_script_to_script(script: GLib.UnicodeScript): script_t;
+export function glyph_info_get_glyph_flags(info: glyph_info_t): glyph_flags_t;
+export function language_from_string(str: Uint8Array | string): language_t;
+export function language_get_default(): language_t;
+export function language_to_string(language: language_t): string;
+export function map_allocation_successful(map: map_t): bool_t;
+export function map_clear(map: map_t): void;
+export function map_create(): map_t;
+export function map_del(map: map_t, key: codepoint_t): void;
+export function map_get(map: map_t, key: codepoint_t): codepoint_t;
+export function map_get_empty(): map_t;
+export function map_get_population(map: map_t): number;
+export function map_has(map: map_t, key: codepoint_t): bool_t;
+export function map_is_empty(map: map_t): bool_t;
+export function map_is_equal(map: map_t, other: map_t): bool_t;
+export function map_set(map: map_t, key: codepoint_t, value: codepoint_t): void;
+export function ot_color_glyph_get_layers(
+    face: face_t,
+    glyph: codepoint_t,
+    start_offset: number
+): [number, ot_color_layer_t[] | null];
+export function ot_color_glyph_reference_png(font: font_t, glyph: codepoint_t): blob_t;
+export function ot_color_glyph_reference_svg(face: face_t, glyph: codepoint_t): blob_t;
+export function ot_color_has_layers(face: face_t): bool_t;
+export function ot_color_has_palettes(face: face_t): bool_t;
+export function ot_color_has_png(face: face_t): bool_t;
+export function ot_color_has_svg(face: face_t): bool_t;
+export function ot_color_palette_color_get_name_id(face: face_t, color_index: number): ot_name_id_t;
+export function ot_color_palette_get_colors(
+    face: face_t,
+    palette_index: number,
+    start_offset: number
+): [number, color_t[] | null];
+export function ot_color_palette_get_count(face: face_t): number;
+export function ot_color_palette_get_flags(face: face_t, palette_index: number): ot_color_palette_flags_t;
+export function ot_color_palette_get_name_id(face: face_t, palette_index: number): ot_name_id_t;
+export function ot_font_set_funcs(font: font_t): void;
+export function ot_layout_collect_features(
+    face: face_t,
+    table_tag: tag_t,
+    scripts: tag_t,
+    languages: tag_t,
+    features: tag_t
+): set_t;
+export function ot_layout_collect_lookups(
+    face: face_t,
+    table_tag: tag_t,
+    scripts: tag_t,
+    languages: tag_t,
+    features: tag_t
+): set_t;
+export function ot_layout_feature_get_characters(
+    face: face_t,
+    table_tag: tag_t,
+    feature_index: number,
+    start_offset: number
+): [number, codepoint_t[]];
+export function ot_layout_feature_get_lookups(
+    face: face_t,
+    table_tag: tag_t,
+    feature_index: number,
+    start_offset: number
+): [number, number[]];
+export function ot_layout_feature_get_name_ids(
+    face: face_t,
+    table_tag: tag_t,
+    feature_index: number
+): [bool_t, ot_name_id_t | null, ot_name_id_t | null, ot_name_id_t | null, number, ot_name_id_t | null];
+export function ot_layout_feature_with_variations_get_lookups(
+    face: face_t,
+    table_tag: tag_t,
+    feature_index: number,
+    variations_index: number,
+    start_offset: number
+): [number, number[]];
+export function ot_layout_get_attach_points(face: face_t, glyph: codepoint_t, start_offset: number): 
[number, number[]];
+export function ot_layout_get_baseline(
+    font: font_t,
+    baseline_tag: ot_layout_baseline_tag_t,
+    direction: direction_t,
+    script_tag: tag_t,
+    language_tag: tag_t
+): [bool_t, position_t | null];
+export function ot_layout_get_baseline_with_fallback(
+    font: font_t,
+    baseline_tag: ot_layout_baseline_tag_t,
+    direction: direction_t,
+    script_tag: tag_t,
+    language_tag: tag_t
+): position_t;
+export function ot_layout_get_glyph_class(face: face_t, glyph: codepoint_t): ot_layout_glyph_class_t;
+export function ot_layout_get_glyphs_in_class(face: face_t, klass: ot_layout_glyph_class_t): set_t;
+export function ot_layout_get_horizontal_baseline_tag_for_script(script: script_t): ot_layout_baseline_tag_t;
+export function ot_layout_get_ligature_carets(
+    font: font_t,
+    direction: direction_t,
+    glyph: codepoint_t,
+    start_offset: number
+): [number, position_t[]];
+export function ot_layout_get_size_params(face: face_t): [bool_t, number, number, ot_name_id_t, number, 
number];
+export function ot_layout_has_glyph_classes(face: face_t): bool_t;
+export function ot_layout_has_positioning(face: face_t): bool_t;
+export function ot_layout_has_substitution(face: face_t): bool_t;
+export function ot_layout_language_find_feature(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_index: number,
+    feature_tag: tag_t
+): [bool_t, number];
+export function ot_layout_language_get_feature_indexes(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_index: number,
+    start_offset: number
+): [number, number[]];
+export function ot_layout_language_get_feature_tags(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_index: number,
+    start_offset: number
+): [number, tag_t[]];
+export function ot_layout_language_get_required_feature(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_index: number
+): [bool_t, number, tag_t];
+export function ot_layout_language_get_required_feature_index(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_index: number
+): [bool_t, number];
+export function ot_layout_lookup_collect_glyphs(
+    face: face_t,
+    table_tag: tag_t,
+    lookup_index: number
+): [set_t, set_t, set_t, set_t];
+export function ot_layout_lookup_get_glyph_alternates(
+    face: face_t,
+    lookup_index: number,
+    glyph: codepoint_t,
+    start_offset: number
+): [number, codepoint_t[]];
+export function ot_layout_lookup_substitute_closure(face: face_t, lookup_index: number): set_t;
+export function ot_layout_lookup_would_substitute(
+    face: face_t,
+    lookup_index: number,
+    glyphs: codepoint_t,
+    glyphs_length: number,
+    zero_context: bool_t
+): bool_t;
+export function ot_layout_lookups_substitute_closure(face: face_t, lookups: set_t): set_t;
+export function ot_layout_script_find_language(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_tag: tag_t,
+    language_index: number
+): bool_t;
+export function ot_layout_script_get_language_tags(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    start_offset: number
+): [number, tag_t[]];
+export function ot_layout_script_select_language(
+    face: face_t,
+    table_tag: tag_t,
+    script_index: number,
+    language_count: number,
+    language_tags: tag_t
+): [bool_t, number];
+export function ot_layout_table_choose_script(
+    face: face_t,
+    table_tag: tag_t,
+    script_tags: tag_t
+): [bool_t, number, tag_t];
+export function ot_layout_table_find_feature_variations(
+    face: face_t,
+    table_tag: tag_t,
+    coords: number,
+    num_coords: number
+): [bool_t, number];
+export function ot_layout_table_find_script(face: face_t, table_tag: tag_t, script_tag: tag_t): [bool_t, 
number];
+export function ot_layout_table_get_feature_tags(
+    face: face_t,
+    table_tag: tag_t,
+    start_offset: number
+): [number, tag_t[]];
+export function ot_layout_table_get_lookup_count(face: face_t, table_tag: tag_t): number;
+export function ot_layout_table_get_script_tags(
+    face: face_t,
+    table_tag: tag_t,
+    start_offset: number
+): [number, tag_t[]];
+export function ot_layout_table_select_script(
+    face: face_t,
+    table_tag: tag_t,
+    script_count: number,
+    script_tags: tag_t
+): [bool_t, number, tag_t | null];
+export function ot_math_get_constant(font: font_t, constant: ot_math_constant_t): position_t;
+export function ot_math_get_glyph_assembly(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t,
+    start_offset: number
+): [number, ot_math_glyph_part_t[], position_t];
+export function ot_math_get_glyph_italics_correction(font: font_t, glyph: codepoint_t): position_t;
+export function ot_math_get_glyph_kerning(
+    font: font_t,
+    glyph: codepoint_t,
+    kern: ot_math_kern_t,
+    correction_height: position_t
+): position_t;
+export function ot_math_get_glyph_kernings(
+    font: font_t,
+    glyph: codepoint_t,
+    kern: ot_math_kern_t,
+    start_offset: number
+): [number, ot_math_kern_entry_t[]];
+export function ot_math_get_glyph_top_accent_attachment(font: font_t, glyph: codepoint_t): position_t;
+export function ot_math_get_glyph_variants(
+    font: font_t,
+    glyph: codepoint_t,
+    direction: direction_t,
+    start_offset: number
+): [number, ot_math_glyph_variant_t[]];
+export function ot_math_get_min_connector_overlap(font: font_t, direction: direction_t): position_t;
+export function ot_math_has_data(face: face_t): bool_t;
+export function ot_math_is_glyph_extended_shape(face: face_t, glyph: codepoint_t): bool_t;
+export function ot_meta_get_entry_tags(face: face_t, start_offset: number): [number, ot_meta_tag_t[]];
+export function ot_meta_reference_entry(face: face_t, meta_tag: ot_meta_tag_t): blob_t;
+export function ot_metrics_get_position(font: font_t, metrics_tag: ot_metrics_tag_t): [bool_t, position_t | 
null];
+export function ot_metrics_get_position_with_fallback(font: font_t, metrics_tag: ot_metrics_tag_t): 
position_t | null;
+export function ot_metrics_get_variation(font: font_t, metrics_tag: ot_metrics_tag_t): number;
+export function ot_metrics_get_x_variation(font: font_t, metrics_tag: ot_metrics_tag_t): position_t;
+export function ot_metrics_get_y_variation(font: font_t, metrics_tag: ot_metrics_tag_t): position_t;
+export function ot_name_get_utf16(face: face_t, name_id: ot_name_id_t, language: language_t): [number, 
number[]];
+export function ot_name_get_utf32(face: face_t, name_id: ot_name_id_t, language: language_t): [number, 
number[]];
+export function ot_name_get_utf8(face: face_t, name_id: ot_name_id_t, language: language_t): [number, 
string[]];
+export function ot_name_list_names(face: face_t): ot_name_entry_t[];
+export function ot_shape_glyphs_closure(font: font_t, buffer: buffer_t, features: feature_t[]): set_t;
+export function ot_shape_plan_collect_lookups(shape_plan: shape_plan_t, table_tag: tag_t): set_t;
+export function ot_tag_from_language(language: language_t): tag_t;
+export function ot_tag_to_language(tag: tag_t): language_t | null;
+export function ot_tag_to_script(tag: tag_t): script_t;
+export function ot_tags_from_script(script: script_t, script_tag_1: tag_t, script_tag_2: tag_t): void;
+export function ot_tags_from_script_and_language(
+    script: script_t,
+    language: language_t,
+    script_count?: number,
+    language_count?: number
+): [number, tag_t | null, number, tag_t | null];
+export function ot_tags_to_script_and_language(
+    script_tag: tag_t,
+    language_tag: tag_t
+): [script_t | null, language_t | null];
+export function ot_var_find_axis(face: face_t, axis_tag: tag_t, axis_index: number): [bool_t, ot_var_axis_t];
+export function ot_var_find_axis_info(face: face_t, axis_tag: tag_t): [bool_t, ot_var_axis_info_t];
+export function ot_var_get_axes(face: face_t, start_offset: number): [number, ot_var_axis_t[]];
+export function ot_var_get_axis_count(face: face_t): number;
+export function ot_var_get_axis_infos(face: face_t, start_offset: number): [number, ot_var_axis_info_t[]];
+export function ot_var_get_named_instance_count(face: face_t): number;
+export function ot_var_has_data(face: face_t): bool_t;
+export function ot_var_named_instance_get_design_coords(face: face_t, instance_index: number): [number, 
number[]];
+export function ot_var_named_instance_get_postscript_name_id(face: face_t, instance_index: number): 
ot_name_id_t;
+export function ot_var_named_instance_get_subfamily_name_id(face: face_t, instance_index: number): 
ot_name_id_t;
+export function ot_var_normalize_coords(face: face_t, coords_length: number, design_coords: number): number;
+export function ot_var_normalize_variations(face: face_t, variations: variation_t, variations_length: 
number): number[];
+export function script_from_iso15924_tag(tag: tag_t): script_t;
+export function script_from_string(str: Uint8Array | string): script_t;
+export function script_get_horizontal_direction(script: script_t): direction_t;
+export function script_to_iso15924_tag(script: script_t): tag_t;
+export function segment_properties_equal(a: segment_properties_t, b: segment_properties_t): bool_t;
+export function segment_properties_hash(p: segment_properties_t): number;
+export function segment_properties_overlay(p: segment_properties_t, src: segment_properties_t): void;
+export function set_add(set: set_t, codepoint: codepoint_t): void;
+export function set_add_range(set: set_t, first: codepoint_t, last: codepoint_t): void;
+export function set_add_sorted_array(set: set_t, sorted_codepoints: codepoint_t[]): void;
+export function set_allocation_successful(set: set_t): bool_t;
+export function set_clear(set: set_t): void;
+export function set_copy(set: set_t): set_t;
+export function set_create(): set_t;
+export function set_del(set: set_t, codepoint: codepoint_t): void;
+export function set_del_range(set: set_t, first: codepoint_t, last: codepoint_t): void;
+export function set_get_empty(): set_t;
+export function set_get_max(set: set_t): codepoint_t;
+export function set_get_min(set: set_t): codepoint_t;
+export function set_get_population(set: set_t): number;
+export function set_has(set: set_t, codepoint: codepoint_t): bool_t;
+export function set_intersect(set: set_t, other: set_t): void;
+export function set_invert(set: set_t): void;
+export function set_is_empty(set: set_t): bool_t;
+export function set_is_equal(set: set_t, other: set_t): bool_t;
+export function set_is_subset(set: set_t, larger_set: set_t): bool_t;
+export function set_next(set: set_t, codepoint: codepoint_t): [bool_t, codepoint_t];
+export function set_next_many(set: set_t, codepoint: codepoint_t, out: codepoint_t[]): number;
+export function set_next_range(set: set_t, last: codepoint_t): [bool_t, codepoint_t, codepoint_t];
+export function set_previous(set: set_t, codepoint: codepoint_t): [bool_t, codepoint_t];
+export function set_previous_range(set: set_t, first: codepoint_t): [bool_t, codepoint_t, codepoint_t];
+export function set_set(set: set_t, other: set_t): void;
+export function set_subtract(set: set_t, other: set_t): void;
+export function set_symmetric_difference(set: set_t, other: set_t): void;
+export function set_union(set: set_t, other: set_t): void;
+export function shape(font: font_t, buffer: buffer_t, features?: feature_t[] | null): void;
+export function shape_full(
+    font: font_t,
+    buffer: buffer_t,
+    features?: feature_t[] | null,
+    shaper_list?: string[] | null
+): bool_t;
+export function shape_list_shapers(): string[];
+export function shape_plan_create(
+    face: face_t,
+    props: segment_properties_t,
+    user_features: feature_t[],
+    shaper_list: string[]
+): shape_plan_t;
+export function shape_plan_create2(
+    face: face_t,
+    props: segment_properties_t,
+    user_features: feature_t[],
+    coords: number[],
+    shaper_list: string[]
+): shape_plan_t;
+export function shape_plan_create_cached(
+    face: face_t,
+    props: segment_properties_t,
+    user_features: feature_t[],
+    shaper_list: string[]
+): shape_plan_t;
+export function shape_plan_create_cached2(
+    face: face_t,
+    props: segment_properties_t,
+    user_features: feature_t[],
+    coords: number[],
+    shaper_list: string[]
+): shape_plan_t;
+export function shape_plan_execute(
+    shape_plan: shape_plan_t,
+    font: font_t,
+    buffer: buffer_t,
+    features: feature_t[]
+): bool_t;
+export function shape_plan_get_empty(): shape_plan_t;
+export function shape_plan_get_shaper(shape_plan: shape_plan_t): string;
+export function style_get_value(font: font_t, style_tag: style_tag_t): number;
+export function tag_from_string(str: Uint8Array | string): tag_t;
+export function tag_to_string(tag: tag_t): Uint8Array;
+export function unicode_combining_class(ufuncs: unicode_funcs_t, unicode: codepoint_t): 
unicode_combining_class_t;
+export function unicode_compose(ufuncs: unicode_funcs_t, a: codepoint_t, b: codepoint_t): [bool_t, 
codepoint_t];
+export function unicode_decompose(ufuncs: unicode_funcs_t, ab: codepoint_t): [bool_t, codepoint_t, 
codepoint_t];
+export function unicode_decompose_compatibility(ufuncs: unicode_funcs_t, u: codepoint_t): [number, 
codepoint_t];
+export function unicode_eastasian_width(ufuncs: unicode_funcs_t, unicode: codepoint_t): number;
+export function unicode_funcs_create(parent?: unicode_funcs_t | null): unicode_funcs_t;
+export function unicode_funcs_get_default(): unicode_funcs_t;
+export function unicode_funcs_get_empty(): unicode_funcs_t;
+export function unicode_funcs_get_parent(ufuncs: unicode_funcs_t): unicode_funcs_t;
+export function unicode_funcs_is_immutable(ufuncs: unicode_funcs_t): bool_t;
+export function unicode_funcs_make_immutable(ufuncs: unicode_funcs_t): void;
+export function unicode_funcs_set_combining_class_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_combining_class_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_compose_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_compose_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_decompose_compatibility_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_decompose_compatibility_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_decompose_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_decompose_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_eastasian_width_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_eastasian_width_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_general_category_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_general_category_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_mirroring_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_mirroring_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_funcs_set_script_func(
+    ufuncs: unicode_funcs_t,
+    func: unicode_script_func_t,
+    destroy?: destroy_func_t | null
+): void;
+export function unicode_general_category(ufuncs: unicode_funcs_t, unicode: codepoint_t): 
unicode_general_category_t;
+export function unicode_mirroring(ufuncs: unicode_funcs_t, unicode: codepoint_t): codepoint_t;
+export function unicode_script(ufuncs: unicode_funcs_t, unicode: codepoint_t): script_t;
+export function variation_from_string(str: Uint8Array | string): [bool_t, variation_t];
+export function variation_to_string(variation: variation_t): string[];
+export function version(): [number, number, number];
+export function version_atleast(major: number, minor: number, micro: number): bool_t;
+export function version_string(): string;
+export type buffer_message_func_t = (buffer: buffer_t, font: font_t, message: string) => bool_t;
+export type destroy_func_t = () => void;
+export type draw_close_path_func_t = (dfuncs: draw_funcs_t, draw_data: any | null, st: draw_state_t) => void;
+export type draw_cubic_to_func_t = (
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    control1_x: number,
+    control1_y: number,
+    control2_x: number,
+    control2_y: number,
+    to_x: number,
+    to_y: number
+) => void;
+export type draw_line_to_func_t = (
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    to_x: number,
+    to_y: number
+) => void;
+export type draw_move_to_func_t = (
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    to_x: number,
+    to_y: number
+) => void;
+export type draw_quadratic_to_func_t = (
+    dfuncs: draw_funcs_t,
+    draw_data: any | null,
+    st: draw_state_t,
+    control_x: number,
+    control_y: number,
+    to_x: number,
+    to_y: number
+) => void;
+export type font_get_font_extents_func_t = (font: font_t, font_data: any | null) => bool_t;
+export type font_get_glyph_advance_func_t = (font: font_t, font_data: any | null, glyph: codepoint_t) => 
position_t;
+export type font_get_glyph_advances_func_t = (
+    font: font_t,
+    font_data: any | null,
+    count: number,
+    first_glyph: codepoint_t,
+    glyph_stride: number,
+    advance_stride: number
+) => void;
+export type font_get_glyph_contour_point_func_t = (
+    font: font_t,
+    font_data: any | null,
+    glyph: codepoint_t,
+    point_index: number
+) => bool_t;
+export type font_get_glyph_extents_func_t = (font: font_t, font_data: any | null, glyph: codepoint_t) => 
bool_t;
+export type font_get_glyph_from_name_func_t = (font: font_t, font_data: any | null, name: string[]) => 
bool_t;
+export type font_get_glyph_func_t = (
+    font: font_t,
+    font_data: any | null,
+    unicode: codepoint_t,
+    variation_selector: codepoint_t
+) => bool_t;
+export type font_get_glyph_kerning_func_t = (
+    font: font_t,
+    font_data: any | null,
+    first_glyph: codepoint_t,
+    second_glyph: codepoint_t
+) => position_t;
+export type font_get_glyph_name_func_t = (font: font_t, font_data: any | null, glyph: codepoint_t) => bool_t;
+export type font_get_glyph_origin_func_t = (font: font_t, font_data: any | null, glyph: codepoint_t) => 
bool_t;
+export type font_get_glyph_shape_func_t = (
+    font: font_t,
+    font_data: any | null,
+    glyph: codepoint_t,
+    draw_funcs: draw_funcs_t,
+    draw_data?: any | null
+) => void;
+export type font_get_nominal_glyph_func_t = (font: font_t, font_data: any | null, unicode: codepoint_t) => 
bool_t;
+export type font_get_nominal_glyphs_func_t = (
+    font: font_t,
+    font_data: any | null,
+    count: number,
+    first_unicode: codepoint_t,
+    unicode_stride: number,
+    glyph_stride: number
+) => number;
+export type font_get_variation_glyph_func_t = (
+    font: font_t,
+    font_data: any | null,
+    unicode: codepoint_t,
+    variation_selector: codepoint_t
+) => bool_t;
+export type reference_table_func_t = (face: face_t, tag: tag_t) => blob_t;
+export type unicode_combining_class_func_t = (
+    ufuncs: unicode_funcs_t,
+    unicode: codepoint_t
+) => unicode_combining_class_t;
+export type unicode_compose_func_t = (ufuncs: unicode_funcs_t, a: codepoint_t, b: codepoint_t) => bool_t;
+export type unicode_decompose_compatibility_func_t = (
+    ufuncs: unicode_funcs_t,
+    u: codepoint_t,
+    decomposed: codepoint_t
+) => number;
+export type unicode_decompose_func_t = (ufuncs: unicode_funcs_t, ab: codepoint_t) => bool_t;
+export type unicode_eastasian_width_func_t = (ufuncs: unicode_funcs_t, unicode: codepoint_t) => number;
+export type unicode_general_category_func_t = (
+    ufuncs: unicode_funcs_t,
+    unicode: codepoint_t
+) => unicode_general_category_t;
+export type unicode_mirroring_func_t = (ufuncs: unicode_funcs_t, unicode: codepoint_t) => codepoint_t;
+export type unicode_script_func_t = (ufuncs: unicode_funcs_t, unicode: codepoint_t) => script_t;
+
+export namespace aat_layout_feature_selector_t {
+    export const $gtype: GObject.GType<aat_layout_feature_selector_t>;
+}
+
+export enum aat_layout_feature_selector_t {
+    INVALID = 65535,
+    ALL_TYPE_FEATURES_ON = 0,
+    ALL_TYPE_FEATURES_OFF = 1,
+    REQUIRED_LIGATURES_ON = 0,
+    REQUIRED_LIGATURES_OFF = 1,
+    COMMON_LIGATURES_ON = 2,
+    COMMON_LIGATURES_OFF = 3,
+    RARE_LIGATURES_ON = 4,
+    RARE_LIGATURES_OFF = 5,
+    LOGOS_ON = 6,
+    LOGOS_OFF = 7,
+    REBUS_PICTURES_ON = 8,
+    REBUS_PICTURES_OFF = 9,
+    DIPHTHONG_LIGATURES_ON = 10,
+    DIPHTHONG_LIGATURES_OFF = 11,
+    SQUARED_LIGATURES_ON = 12,
+    SQUARED_LIGATURES_OFF = 13,
+    ABBREV_SQUARED_LIGATURES_ON = 14,
+    ABBREV_SQUARED_LIGATURES_OFF = 15,
+    SYMBOL_LIGATURES_ON = 16,
+    SYMBOL_LIGATURES_OFF = 17,
+    CONTEXTUAL_LIGATURES_ON = 18,
+    CONTEXTUAL_LIGATURES_OFF = 19,
+    HISTORICAL_LIGATURES_ON = 20,
+    HISTORICAL_LIGATURES_OFF = 21,
+    UNCONNECTED = 0,
+    PARTIALLY_CONNECTED = 1,
+    CURSIVE = 2,
+    UPPER_AND_LOWER_CASE = 0,
+    ALL_CAPS = 1,
+    ALL_LOWER_CASE = 2,
+    SMALL_CAPS = 3,
+    INITIAL_CAPS = 4,
+    INITIAL_CAPS_AND_SMALL_CAPS = 5,
+    SUBSTITUTE_VERTICAL_FORMS_ON = 0,
+    SUBSTITUTE_VERTICAL_FORMS_OFF = 1,
+    LINGUISTIC_REARRANGEMENT_ON = 0,
+    LINGUISTIC_REARRANGEMENT_OFF = 1,
+    MONOSPACED_NUMBERS = 0,
+    PROPORTIONAL_NUMBERS = 1,
+    THIRD_WIDTH_NUMBERS = 2,
+    QUARTER_WIDTH_NUMBERS = 3,
+    WORD_INITIAL_SWASHES_ON = 0,
+    WORD_INITIAL_SWASHES_OFF = 1,
+    WORD_FINAL_SWASHES_ON = 2,
+    WORD_FINAL_SWASHES_OFF = 3,
+    LINE_INITIAL_SWASHES_ON = 4,
+    LINE_INITIAL_SWASHES_OFF = 5,
+    LINE_FINAL_SWASHES_ON = 6,
+    LINE_FINAL_SWASHES_OFF = 7,
+    NON_FINAL_SWASHES_ON = 8,
+    NON_FINAL_SWASHES_OFF = 9,
+    SHOW_DIACRITICS = 0,
+    HIDE_DIACRITICS = 1,
+    DECOMPOSE_DIACRITICS = 2,
+    NORMAL_POSITION = 0,
+    SUPERIORS = 1,
+    INFERIORS = 2,
+    ORDINALS = 3,
+    SCIENTIFIC_INFERIORS = 4,
+    NO_FRACTIONS = 0,
+    VERTICAL_FRACTIONS = 1,
+    DIAGONAL_FRACTIONS = 2,
+    PREVENT_OVERLAP_ON = 0,
+    PREVENT_OVERLAP_OFF = 1,
+    HYPHENS_TO_EM_DASH_ON = 0,
+    HYPHENS_TO_EM_DASH_OFF = 1,
+    HYPHEN_TO_EN_DASH_ON = 2,
+    HYPHEN_TO_EN_DASH_OFF = 3,
+    SLASHED_ZERO_ON = 4,
+    SLASHED_ZERO_OFF = 5,
+    FORM_INTERROBANG_ON = 6,
+    FORM_INTERROBANG_OFF = 7,
+    SMART_QUOTES_ON = 8,
+    SMART_QUOTES_OFF = 9,
+    PERIODS_TO_ELLIPSIS_ON = 10,
+    PERIODS_TO_ELLIPSIS_OFF = 11,
+    HYPHEN_TO_MINUS_ON = 0,
+    HYPHEN_TO_MINUS_OFF = 1,
+    ASTERISK_TO_MULTIPLY_ON = 2,
+    ASTERISK_TO_MULTIPLY_OFF = 3,
+    SLASH_TO_DIVIDE_ON = 4,
+    SLASH_TO_DIVIDE_OFF = 5,
+    INEQUALITY_LIGATURES_ON = 6,
+    INEQUALITY_LIGATURES_OFF = 7,
+    EXPONENTS_ON = 8,
+    EXPONENTS_OFF = 9,
+    MATHEMATICAL_GREEK_ON = 10,
+    MATHEMATICAL_GREEK_OFF = 11,
+    NO_ORNAMENTS = 0,
+    DINGBATS = 1,
+    PI_CHARACTERS = 2,
+    FLEURONS = 3,
+    DECORATIVE_BORDERS = 4,
+    INTERNATIONAL_SYMBOLS = 5,
+    MATH_SYMBOLS = 6,
+    NO_ALTERNATES = 0,
+    DESIGN_LEVEL1 = 0,
+    DESIGN_LEVEL2 = 1,
+    DESIGN_LEVEL3 = 2,
+    DESIGN_LEVEL4 = 3,
+    DESIGN_LEVEL5 = 4,
+    NO_STYLE_OPTIONS = 0,
+    DISPLAY_TEXT = 1,
+    ENGRAVED_TEXT = 2,
+    ILLUMINATED_CAPS = 3,
+    TITLING_CAPS = 4,
+    TALL_CAPS = 5,
+    TRADITIONAL_CHARACTERS = 0,
+    SIMPLIFIED_CHARACTERS = 1,
+    JIS1978_CHARACTERS = 2,
+    JIS1983_CHARACTERS = 3,
+    JIS1990_CHARACTERS = 4,
+    TRADITIONAL_ALT_ONE = 5,
+    TRADITIONAL_ALT_TWO = 6,
+    TRADITIONAL_ALT_THREE = 7,
+    TRADITIONAL_ALT_FOUR = 8,
+    TRADITIONAL_ALT_FIVE = 9,
+    EXPERT_CHARACTERS = 10,
+    JIS2004_CHARACTERS = 11,
+    HOJO_CHARACTERS = 12,
+    NLCCHARACTERS = 13,
+    TRADITIONAL_NAMES_CHARACTERS = 14,
+    LOWER_CASE_NUMBERS = 0,
+    UPPER_CASE_NUMBERS = 1,
+    PROPORTIONAL_TEXT = 0,
+    MONOSPACED_TEXT = 1,
+    HALF_WIDTH_TEXT = 2,
+    THIRD_WIDTH_TEXT = 3,
+    QUARTER_WIDTH_TEXT = 4,
+    ALT_PROPORTIONAL_TEXT = 5,
+    ALT_HALF_WIDTH_TEXT = 6,
+    NO_TRANSLITERATION = 0,
+    HANJA_TO_HANGUL = 1,
+    HIRAGANA_TO_KATAKANA = 2,
+    KATAKANA_TO_HIRAGANA = 3,
+    KANA_TO_ROMANIZATION = 4,
+    ROMANIZATION_TO_HIRAGANA = 5,
+    ROMANIZATION_TO_KATAKANA = 6,
+    HANJA_TO_HANGUL_ALT_ONE = 7,
+    HANJA_TO_HANGUL_ALT_TWO = 8,
+    HANJA_TO_HANGUL_ALT_THREE = 9,
+    NO_ANNOTATION = 0,
+    BOX_ANNOTATION = 1,
+    ROUNDED_BOX_ANNOTATION = 2,
+    CIRCLE_ANNOTATION = 3,
+    INVERTED_CIRCLE_ANNOTATION = 4,
+    PARENTHESIS_ANNOTATION = 5,
+    PERIOD_ANNOTATION = 6,
+    ROMAN_NUMERAL_ANNOTATION = 7,
+    DIAMOND_ANNOTATION = 8,
+    INVERTED_BOX_ANNOTATION = 9,
+    INVERTED_ROUNDED_BOX_ANNOTATION = 10,
+    FULL_WIDTH_KANA = 0,
+    PROPORTIONAL_KANA = 1,
+    FULL_WIDTH_IDEOGRAPHS = 0,
+    PROPORTIONAL_IDEOGRAPHS = 1,
+    HALF_WIDTH_IDEOGRAPHS = 2,
+    CANONICAL_COMPOSITION_ON = 0,
+    CANONICAL_COMPOSITION_OFF = 1,
+    COMPATIBILITY_COMPOSITION_ON = 2,
+    COMPATIBILITY_COMPOSITION_OFF = 3,
+    TRANSCODING_COMPOSITION_ON = 4,
+    TRANSCODING_COMPOSITION_OFF = 5,
+    NO_RUBY_KANA = 0,
+    RUBY_KANA = 1,
+    RUBY_KANA_ON = 2,
+    RUBY_KANA_OFF = 3,
+    NO_CJK_SYMBOL_ALTERNATIVES = 0,
+    CJK_SYMBOL_ALT_ONE = 1,
+    CJK_SYMBOL_ALT_TWO = 2,
+    CJK_SYMBOL_ALT_THREE = 3,
+    CJK_SYMBOL_ALT_FOUR = 4,
+    CJK_SYMBOL_ALT_FIVE = 5,
+    NO_IDEOGRAPHIC_ALTERNATIVES = 0,
+    IDEOGRAPHIC_ALT_ONE = 1,
+    IDEOGRAPHIC_ALT_TWO = 2,
+    IDEOGRAPHIC_ALT_THREE = 3,
+    IDEOGRAPHIC_ALT_FOUR = 4,
+    IDEOGRAPHIC_ALT_FIVE = 5,
+    CJK_VERTICAL_ROMAN_CENTERED = 0,
+    CJK_VERTICAL_ROMAN_HBASELINE = 1,
+    NO_CJK_ITALIC_ROMAN = 0,
+    CJK_ITALIC_ROMAN = 1,
+    CJK_ITALIC_ROMAN_ON = 2,
+    CJK_ITALIC_ROMAN_OFF = 3,
+    CASE_SENSITIVE_LAYOUT_ON = 0,
+    CASE_SENSITIVE_LAYOUT_OFF = 1,
+    CASE_SENSITIVE_SPACING_ON = 2,
+    CASE_SENSITIVE_SPACING_OFF = 3,
+    ALTERNATE_HORIZ_KANA_ON = 0,
+    ALTERNATE_HORIZ_KANA_OFF = 1,
+    ALTERNATE_VERT_KANA_ON = 2,
+    ALTERNATE_VERT_KANA_OFF = 3,
+    NO_STYLISTIC_ALTERNATES = 0,
+    STYLISTIC_ALT_ONE_ON = 2,
+    STYLISTIC_ALT_ONE_OFF = 3,
+    STYLISTIC_ALT_TWO_ON = 4,
+    STYLISTIC_ALT_TWO_OFF = 5,
+    STYLISTIC_ALT_THREE_ON = 6,
+    STYLISTIC_ALT_THREE_OFF = 7,
+    STYLISTIC_ALT_FOUR_ON = 8,
+    STYLISTIC_ALT_FOUR_OFF = 9,
+    STYLISTIC_ALT_FIVE_ON = 10,
+    STYLISTIC_ALT_FIVE_OFF = 11,
+    STYLISTIC_ALT_SIX_ON = 12,
+    STYLISTIC_ALT_SIX_OFF = 13,
+    STYLISTIC_ALT_SEVEN_ON = 14,
+    STYLISTIC_ALT_SEVEN_OFF = 15,
+    STYLISTIC_ALT_EIGHT_ON = 16,
+    STYLISTIC_ALT_EIGHT_OFF = 17,
+    STYLISTIC_ALT_NINE_ON = 18,
+    STYLISTIC_ALT_NINE_OFF = 19,
+    STYLISTIC_ALT_TEN_ON = 20,
+    STYLISTIC_ALT_TEN_OFF = 21,
+    STYLISTIC_ALT_ELEVEN_ON = 22,
+    STYLISTIC_ALT_ELEVEN_OFF = 23,
+    STYLISTIC_ALT_TWELVE_ON = 24,
+    STYLISTIC_ALT_TWELVE_OFF = 25,
+    STYLISTIC_ALT_THIRTEEN_ON = 26,
+    STYLISTIC_ALT_THIRTEEN_OFF = 27,
+    STYLISTIC_ALT_FOURTEEN_ON = 28,
+    STYLISTIC_ALT_FOURTEEN_OFF = 29,
+    STYLISTIC_ALT_FIFTEEN_ON = 30,
+    STYLISTIC_ALT_FIFTEEN_OFF = 31,
+    STYLISTIC_ALT_SIXTEEN_ON = 32,
+    STYLISTIC_ALT_SIXTEEN_OFF = 33,
+    STYLISTIC_ALT_SEVENTEEN_ON = 34,
+    STYLISTIC_ALT_SEVENTEEN_OFF = 35,
+    STYLISTIC_ALT_EIGHTEEN_ON = 36,
+    STYLISTIC_ALT_EIGHTEEN_OFF = 37,
+    STYLISTIC_ALT_NINETEEN_ON = 38,
+    STYLISTIC_ALT_NINETEEN_OFF = 39,
+    STYLISTIC_ALT_TWENTY_ON = 40,
+    STYLISTIC_ALT_TWENTY_OFF = 41,
+    CONTEXTUAL_ALTERNATES_ON = 0,
+    CONTEXTUAL_ALTERNATES_OFF = 1,
+    SWASH_ALTERNATES_ON = 2,
+    SWASH_ALTERNATES_OFF = 3,
+    CONTEXTUAL_SWASH_ALTERNATES_ON = 4,
+    CONTEXTUAL_SWASH_ALTERNATES_OFF = 5,
+    DEFAULT_LOWER_CASE = 0,
+    LOWER_CASE_SMALL_CAPS = 1,
+    LOWER_CASE_PETITE_CAPS = 2,
+    DEFAULT_UPPER_CASE = 0,
+    UPPER_CASE_SMALL_CAPS = 1,
+    UPPER_CASE_PETITE_CAPS = 2,
+    HALF_WIDTH_CJK_ROMAN = 0,
+    PROPORTIONAL_CJK_ROMAN = 1,
+    DEFAULT_CJK_ROMAN = 2,
+    FULL_WIDTH_CJK_ROMAN = 3,
+}
+
+export namespace aat_layout_feature_type_t {
+    export const $gtype: GObject.GType<aat_layout_feature_type_t>;
+}
+
+export enum aat_layout_feature_type_t {
+    INVALID = 65535,
+    ALL_TYPOGRAPHIC = 0,
+    LIGATURES = 1,
+    CURISVE_CONNECTION = 2,
+    LETTER_CASE = 3,
+    VERTICAL_SUBSTITUTION = 4,
+    LINGUISTIC_REARRANGEMENT = 5,
+    NUMBER_SPACING = 6,
+    SMART_SWASH_TYPE = 8,
+    DIACRITICS_TYPE = 9,
+    VERTICAL_POSITION = 10,
+    FRACTIONS = 11,
+    OVERLAPPING_CHARACTERS_TYPE = 13,
+    TYPOGRAPHIC_EXTRAS = 14,
+    MATHEMATICAL_EXTRAS = 15,
+    ORNAMENT_SETS_TYPE = 16,
+    CHARACTER_ALTERNATIVES = 17,
+    DESIGN_COMPLEXITY_TYPE = 18,
+    STYLE_OPTIONS = 19,
+    CHARACTER_SHAPE = 20,
+    NUMBER_CASE = 21,
+    TEXT_SPACING = 22,
+    TRANSLITERATION = 23,
+    ANNOTATION_TYPE = 24,
+    KANA_SPACING_TYPE = 25,
+    IDEOGRAPHIC_SPACING_TYPE = 26,
+    UNICODE_DECOMPOSITION_TYPE = 27,
+    RUBY_KANA = 28,
+    CJK_SYMBOL_ALTERNATIVES_TYPE = 29,
+    IDEOGRAPHIC_ALTERNATIVES_TYPE = 30,
+    CJK_VERTICAL_ROMAN_PLACEMENT_TYPE = 31,
+    ITALIC_CJK_ROMAN = 32,
+    CASE_SENSITIVE_LAYOUT = 33,
+    ALTERNATE_KANA = 34,
+    STYLISTIC_ALTERNATIVES = 35,
+    CONTEXTUAL_ALTERNATIVES = 36,
+    LOWER_CASE = 37,
+    UPPER_CASE = 38,
+    LANGUAGE_TAG_TYPE = 39,
+    CJK_ROMAN_SPACING_TYPE = 103,
+}
+
+export namespace buffer_cluster_level_t {
+    export const $gtype: GObject.GType<buffer_cluster_level_t>;
+}
+
+export enum buffer_cluster_level_t {
+    MONOTONE_GRAPHEMES = 0,
+    MONOTONE_CHARACTERS = 1,
+    CHARACTERS = 2,
+    DEFAULT = 0,
+}
+
+export namespace buffer_content_type_t {
+    export const $gtype: GObject.GType<buffer_content_type_t>;
+}
+
+export enum buffer_content_type_t {
+    INVALID = 0,
+    UNICODE = 1,
+    GLYPHS = 2,
+}
+
+export namespace buffer_serialize_format_t {
+    export const $gtype: GObject.GType<buffer_serialize_format_t>;
+}
+
+export enum buffer_serialize_format_t {
+    TEXT = 1413830740,
+    JSON = 1246973774,
+    INVALID = 0,
+}
+
+export namespace direction_t {
+    export const $gtype: GObject.GType<direction_t>;
+}
+
+export enum direction_t {
+    INVALID = 0,
+    LTR = 4,
+    RTL = 5,
+    TTB = 6,
+    BTT = 7,
+}
+
+export namespace memory_mode_t {
+    export const $gtype: GObject.GType<memory_mode_t>;
+}
+
+export enum memory_mode_t {
+    DUPLICATE = 0,
+    READONLY = 1,
+    WRITABLE = 2,
+    READONLY_MAY_MAKE_WRITABLE = 3,
+}
+
+export namespace ot_layout_baseline_tag_t {
+    export const $gtype: GObject.GType<ot_layout_baseline_tag_t>;
+}
+
+export enum ot_layout_baseline_tag_t {
+    ROMAN = 1919905134,
+    HANGING = 1751215719,
+    IDEO_FACE_BOTTOM_OR_LEFT = 1768121954,
+    IDEO_FACE_TOP_OR_RIGHT = 1768121972,
+    IDEO_FACE_CENTRAL = 1231251043,
+    IDEO_EMBOX_BOTTOM_OR_LEFT = 1768187247,
+    IDEO_EMBOX_TOP_OR_RIGHT = 1768191088,
+    IDEO_EMBOX_CENTRAL = 1231315813,
+    MATH = 1835103336,
+}
+
+export namespace ot_layout_glyph_class_t {
+    export const $gtype: GObject.GType<ot_layout_glyph_class_t>;
+}
+
+export enum ot_layout_glyph_class_t {
+    UNCLASSIFIED = 0,
+    BASE_GLYPH = 1,
+    LIGATURE = 2,
+    MARK = 3,
+    COMPONENT = 4,
+}
+
+export namespace ot_math_constant_t {
+    export const $gtype: GObject.GType<ot_math_constant_t>;
+}
+
+export enum ot_math_constant_t {
+    SCRIPT_PERCENT_SCALE_DOWN = 0,
+    SCRIPT_SCRIPT_PERCENT_SCALE_DOWN = 1,
+    DELIMITED_SUB_FORMULA_MIN_HEIGHT = 2,
+    DISPLAY_OPERATOR_MIN_HEIGHT = 3,
+    MATH_LEADING = 4,
+    AXIS_HEIGHT = 5,
+    ACCENT_BASE_HEIGHT = 6,
+    FLATTENED_ACCENT_BASE_HEIGHT = 7,
+    SUBSCRIPT_SHIFT_DOWN = 8,
+    SUBSCRIPT_TOP_MAX = 9,
+    SUBSCRIPT_BASELINE_DROP_MIN = 10,
+    SUPERSCRIPT_SHIFT_UP = 11,
+    SUPERSCRIPT_SHIFT_UP_CRAMPED = 12,
+    SUPERSCRIPT_BOTTOM_MIN = 13,
+    SUPERSCRIPT_BASELINE_DROP_MAX = 14,
+    SUB_SUPERSCRIPT_GAP_MIN = 15,
+    SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT = 16,
+    SPACE_AFTER_SCRIPT = 17,
+    UPPER_LIMIT_GAP_MIN = 18,
+    UPPER_LIMIT_BASELINE_RISE_MIN = 19,
+    LOWER_LIMIT_GAP_MIN = 20,
+    LOWER_LIMIT_BASELINE_DROP_MIN = 21,
+    STACK_TOP_SHIFT_UP = 22,
+    STACK_TOP_DISPLAY_STYLE_SHIFT_UP = 23,
+    STACK_BOTTOM_SHIFT_DOWN = 24,
+    STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN = 25,
+    STACK_GAP_MIN = 26,
+    STACK_DISPLAY_STYLE_GAP_MIN = 27,
+    STRETCH_STACK_TOP_SHIFT_UP = 28,
+    STRETCH_STACK_BOTTOM_SHIFT_DOWN = 29,
+    STRETCH_STACK_GAP_ABOVE_MIN = 30,
+    STRETCH_STACK_GAP_BELOW_MIN = 31,
+    FRACTION_NUMERATOR_SHIFT_UP = 32,
+    FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP = 33,
+    FRACTION_DENOMINATOR_SHIFT_DOWN = 34,
+    FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN = 35,
+    FRACTION_NUMERATOR_GAP_MIN = 36,
+    FRACTION_NUM_DISPLAY_STYLE_GAP_MIN = 37,
+    FRACTION_RULE_THICKNESS = 38,
+    FRACTION_DENOMINATOR_GAP_MIN = 39,
+    FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN = 40,
+    SKEWED_FRACTION_HORIZONTAL_GAP = 41,
+    SKEWED_FRACTION_VERTICAL_GAP = 42,
+    OVERBAR_VERTICAL_GAP = 43,
+    OVERBAR_RULE_THICKNESS = 44,
+    OVERBAR_EXTRA_ASCENDER = 45,
+    UNDERBAR_VERTICAL_GAP = 46,
+    UNDERBAR_RULE_THICKNESS = 47,
+    UNDERBAR_EXTRA_DESCENDER = 48,
+    RADICAL_VERTICAL_GAP = 49,
+    RADICAL_DISPLAY_STYLE_VERTICAL_GAP = 50,
+    RADICAL_RULE_THICKNESS = 51,
+    RADICAL_EXTRA_ASCENDER = 52,
+    RADICAL_KERN_BEFORE_DEGREE = 53,
+    RADICAL_KERN_AFTER_DEGREE = 54,
+    RADICAL_DEGREE_BOTTOM_RAISE_PERCENT = 55,
+}
+
+export namespace ot_math_kern_t {
+    export const $gtype: GObject.GType<ot_math_kern_t>;
+}
+
+export enum ot_math_kern_t {
+    TOP_RIGHT = 0,
+    TOP_LEFT = 1,
+    BOTTOM_RIGHT = 2,
+    BOTTOM_LEFT = 3,
+}
+
+export namespace ot_meta_tag_t {
+    export const $gtype: GObject.GType<ot_meta_tag_t>;
+}
+
+export enum ot_meta_tag_t {
+    DESIGN_LANGUAGES = 1684827751,
+    SUPPORTED_LANGUAGES = 1936485991,
+}
+
+export namespace ot_metrics_tag_t {
+    export const $gtype: GObject.GType<ot_metrics_tag_t>;
+}
+
+export enum ot_metrics_tag_t {
+    HORIZONTAL_ASCENDER = 1751216995,
+    HORIZONTAL_DESCENDER = 1751413603,
+    HORIZONTAL_LINE_GAP = 1751934832,
+    HORIZONTAL_CLIPPING_ASCENT = 1751346273,
+    HORIZONTAL_CLIPPING_DESCENT = 1751346276,
+    VERTICAL_ASCENDER = 1986098019,
+    VERTICAL_DESCENDER = 1986294627,
+    VERTICAL_LINE_GAP = 1986815856,
+    HORIZONTAL_CARET_RISE = 1751347827,
+    HORIZONTAL_CARET_RUN = 1751347822,
+    HORIZONTAL_CARET_OFFSET = 1751347046,
+    VERTICAL_CARET_RISE = 1986228851,
+    VERTICAL_CARET_RUN = 1986228846,
+    VERTICAL_CARET_OFFSET = 1986228070,
+    X_HEIGHT = 2020108148,
+    CAP_HEIGHT = 1668311156,
+    SUBSCRIPT_EM_X_SIZE = 1935833203,
+    SUBSCRIPT_EM_Y_SIZE = 1935833459,
+    SUBSCRIPT_EM_X_OFFSET = 1935833199,
+    SUBSCRIPT_EM_Y_OFFSET = 1935833455,
+    SUPERSCRIPT_EM_X_SIZE = 1936750707,
+    SUPERSCRIPT_EM_Y_SIZE = 1936750963,
+    SUPERSCRIPT_EM_X_OFFSET = 1936750703,
+    SUPERSCRIPT_EM_Y_OFFSET = 1936750959,
+    STRIKEOUT_SIZE = 1937011315,
+    STRIKEOUT_OFFSET = 1937011311,
+    UNDERLINE_SIZE = 1970168947,
+    UNDERLINE_OFFSET = 1970168943,
+}
+
+export namespace script_t {
+    export const $gtype: GObject.GType<script_t>;
+}
+
+export enum script_t {
+    COMMON = 1517910393,
+    INHERITED = 1516858984,
+    UNKNOWN = 1517976186,
+    ARABIC = 1098015074,
+    ARMENIAN = 1098018158,
+    BENGALI = 1113943655,
+    CYRILLIC = 1132032620,
+    DEVANAGARI = 1147500129,
+    GEORGIAN = 1197830002,
+    GREEK = 1198679403,
+    GUJARATI = 1198877298,
+    GURMUKHI = 1198879349,
+    HANGUL = 1214344807,
+    HAN = 1214344809,
+    HEBREW = 1214603890,
+    HIRAGANA = 1214870113,
+    KANNADA = 1265525857,
+    KATAKANA = 1264676449,
+    LAO = 1281453935,
+    LATIN = 1281455214,
+    MALAYALAM = 1298954605,
+    ORIYA = 1332902241,
+    TAMIL = 1415671148,
+    TELUGU = 1415933045,
+    THAI = 1416126825,
+    TIBETAN = 1416192628,
+    BOPOMOFO = 1114599535,
+    BRAILLE = 1114792297,
+    CANADIAN_SYLLABICS = 1130458739,
+    CHEROKEE = 1130915186,
+    ETHIOPIC = 1165256809,
+    KHMER = 1265134962,
+    MONGOLIAN = 1299148391,
+    MYANMAR = 1299803506,
+    OGHAM = 1332175213,
+    RUNIC = 1383427698,
+    SINHALA = 1399418472,
+    SYRIAC = 1400468067,
+    THAANA = 1416126817,
+    YI = 1500080489,
+    DESERET = 1148416628,
+    GOTHIC = 1198486632,
+    OLD_ITALIC = 1232363884,
+    BUHID = 1114990692,
+    HANUNOO = 1214344815,
+    TAGALOG = 1416064103,
+    TAGBANWA = 1415669602,
+    CYPRIOT = 1131442804,
+    LIMBU = 1281977698,
+    LINEAR_B = 1281977954,
+    OSMANYA = 1332964705,
+    SHAVIAN = 1399349623,
+    TAI_LE = 1415670885,
+    UGARITIC = 1432838514,
+    BUGINESE = 1114990441,
+    COPTIC = 1131376756,
+    GLAGOLITIC = 1198285159,
+    KHAROSHTHI = 1265131890,
+    NEW_TAI_LUE = 1415670901,
+    OLD_PERSIAN = 1483761007,
+    SYLOTI_NAGRI = 1400466543,
+    TIFINAGH = 1415999079,
+    BALINESE = 1113681001,
+    CUNEIFORM = 1483961720,
+    NKO = 1315663727,
+    PHAGS_PA = 1349017959,
+    PHOENICIAN = 1349021304,
+    CARIAN = 1130459753,
+    CHAM = 1130914157,
+    KAYAH_LI = 1264675945,
+    LEPCHA = 1281716323,
+    LYCIAN = 1283023721,
+    LYDIAN = 1283023977,
+    OL_CHIKI = 1332503403,
+    REJANG = 1382706791,
+    SAURASHTRA = 1398895986,
+    SUNDANESE = 1400204900,
+    VAI = 1449224553,
+    AVESTAN = 1098281844,
+    BAMUM = 1113681269,
+    EGYPTIAN_HIEROGLYPHS = 1164409200,
+    IMPERIAL_ARAMAIC = 1098018153,
+    INSCRIPTIONAL_PAHLAVI = 1349020777,
+    INSCRIPTIONAL_PARTHIAN = 1349678185,
+    JAVANESE = 1247901281,
+    KAITHI = 1265920105,
+    LISU = 1281979253,
+    MEETEI_MAYEK = 1299473769,
+    OLD_SOUTH_ARABIAN = 1398895202,
+    OLD_TURKIC = 1332898664,
+    SAMARITAN = 1398893938,
+    TAI_THAM = 1281453665,
+    TAI_VIET = 1415673460,
+    BATAK = 1113683051,
+    BRAHMI = 1114792296,
+    MANDAIC = 1298230884,
+    CHAKMA = 1130457965,
+    MEROITIC_CURSIVE = 1298494051,
+    MEROITIC_HIEROGLYPHS = 1298494063,
+    MIAO = 1349284452,
+    SHARADA = 1399353956,
+    SORA_SOMPENG = 1399812705,
+    TAKRI = 1415670642,
+    BASSA_VAH = 1113682803,
+    CAUCASIAN_ALBANIAN = 1097295970,
+    DUPLOYAN = 1148547180,
+    ELBASAN = 1164730977,
+    GRANTHA = 1198678382,
+    KHOJKI = 1265135466,
+    KHUDAWADI = 1399418468,
+    LINEAR_A = 1281977953,
+    MAHAJANI = 1298229354,
+    MANICHAEAN = 1298230889,
+    MENDE_KIKAKUI = 1298493028,
+    MODI = 1299145833,
+    MRO = 1299345263,
+    NABATAEAN = 1315070324,
+    OLD_NORTH_ARABIAN = 1315009122,
+    OLD_PERMIC = 1348825709,
+    PAHAWH_HMONG = 1215131239,
+    PALMYRENE = 1348562029,
+    PAU_CIN_HAU = 1348564323,
+    PSALTER_PAHLAVI = 1349020784,
+    SIDDHAM = 1399415908,
+    TIRHUTA = 1416196712,
+    WARANG_CITI = 1466004065,
+    AHOM = 1097363309,
+    ANATOLIAN_HIEROGLYPHS = 1215067511,
+    HATRAN = 1214346354,
+    MULTANI = 1299541108,
+    OLD_HUNGARIAN = 1215655527,
+    SIGNWRITING = 1399287415,
+    ADLAM = 1097100397,
+    BHAIKSUKI = 1114139507,
+    MARCHEN = 1298231907,
+    OSAGE = 1332963173,
+    TANGUT = 1415671399,
+    NEWA = 1315272545,
+    MASARAM_GONDI = 1198485101,
+    NUSHU = 1316186229,
+    SOYOMBO = 1399814511,
+    ZANABAZAR_SQUARE = 1516334690,
+    DOGRA = 1148151666,
+    GUNJALA_GONDI = 1198485095,
+    HANIFI_ROHINGYA = 1383032935,
+    MAKASAR = 1298230113,
+    MEDEFAIDRIN = 1298490470,
+    OLD_SOGDIAN = 1399809903,
+    SOGDIAN = 1399809892,
+    ELYMAIC = 1164736877,
+    NANDINAGARI = 1315008100,
+    NYIAKENG_PUACHUE_HMONG = 1215131248,
+    WANCHO = 1466132591,
+    CHORASMIAN = 1130918515,
+    DIVES_AKURU = 1147756907,
+    KHITAN_SMALL_SCRIPT = 1265202291,
+    YEZIDI = 1499822697,
+    CYPRO_MINOAN = 1131441518,
+    OLD_UYGHUR = 1333094258,
+    TANGSA = 1416524641,
+    TOTO = 1416590447,
+    VITHKUQI = 1449751656,
+    MATH = 1517122664,
+    INVALID = 0,
+}
+
+export namespace style_tag_t {
+    export const $gtype: GObject.GType<style_tag_t>;
+}
+
+export enum style_tag_t {
+    ITALIC = 1769234796,
+    OPTICAL_SIZE = 1869640570,
+    SLANT_ANGLE = 1936486004,
+    SLANT_RATIO = 1399615092,
+    WIDTH = 2003072104,
+    WEIGHT = 2003265652,
+}
+
+export namespace unicode_combining_class_t {
+    export const $gtype: GObject.GType<unicode_combining_class_t>;
+}
+
+export enum unicode_combining_class_t {
+    NOT_REORDERED = 0,
+    OVERLAY = 1,
+    NUKTA = 7,
+    KANA_VOICING = 8,
+    VIRAMA = 9,
+    CCC10 = 10,
+    CCC11 = 11,
+    CCC12 = 12,
+    CCC13 = 13,
+    CCC14 = 14,
+    CCC15 = 15,
+    CCC16 = 16,
+    CCC17 = 17,
+    CCC18 = 18,
+    CCC19 = 19,
+    CCC20 = 20,
+    CCC21 = 21,
+    CCC22 = 22,
+    CCC23 = 23,
+    CCC24 = 24,
+    CCC25 = 25,
+    CCC26 = 26,
+    CCC27 = 27,
+    CCC28 = 28,
+    CCC29 = 29,
+    CCC30 = 30,
+    CCC31 = 31,
+    CCC32 = 32,
+    CCC33 = 33,
+    CCC34 = 34,
+    CCC35 = 35,
+    CCC36 = 36,
+    CCC84 = 84,
+    CCC91 = 91,
+    CCC103 = 103,
+    CCC107 = 107,
+    CCC118 = 118,
+    CCC122 = 122,
+    CCC129 = 129,
+    CCC130 = 130,
+    CCC133 = 132,
+    ATTACHED_BELOW_LEFT = 200,
+    ATTACHED_BELOW = 202,
+    ATTACHED_ABOVE = 214,
+    ATTACHED_ABOVE_RIGHT = 216,
+    BELOW_LEFT = 218,
+    BELOW = 220,
+    BELOW_RIGHT = 222,
+    LEFT = 224,
+    RIGHT = 226,
+    ABOVE_LEFT = 228,
+    ABOVE = 230,
+    ABOVE_RIGHT = 232,
+    DOUBLE_BELOW = 233,
+    DOUBLE_ABOVE = 234,
+    IOTA_SUBSCRIPT = 240,
+    INVALID = 255,
+}
+
+export namespace unicode_general_category_t {
+    export const $gtype: GObject.GType<unicode_general_category_t>;
+}
+
+export enum unicode_general_category_t {
+    CONTROL = 0,
+    FORMAT = 1,
+    UNASSIGNED = 2,
+    PRIVATE_USE = 3,
+    SURROGATE = 4,
+    LOWERCASE_LETTER = 5,
+    MODIFIER_LETTER = 6,
+    OTHER_LETTER = 7,
+    TITLECASE_LETTER = 8,
+    UPPERCASE_LETTER = 9,
+    SPACING_MARK = 10,
+    ENCLOSING_MARK = 11,
+    NON_SPACING_MARK = 12,
+    DECIMAL_NUMBER = 13,
+    LETTER_NUMBER = 14,
+    OTHER_NUMBER = 15,
+    CONNECT_PUNCTUATION = 16,
+    DASH_PUNCTUATION = 17,
+    CLOSE_PUNCTUATION = 18,
+    FINAL_PUNCTUATION = 19,
+    INITIAL_PUNCTUATION = 20,
+    OTHER_PUNCTUATION = 21,
+    OPEN_PUNCTUATION = 22,
+    CURRENCY_SYMBOL = 23,
+    MODIFIER_SYMBOL = 24,
+    MATH_SYMBOL = 25,
+    OTHER_SYMBOL = 26,
+    LINE_SEPARATOR = 27,
+    PARAGRAPH_SEPARATOR = 28,
+    SPACE_SEPARATOR = 29,
+}
+
+export namespace buffer_diff_flags_t {
+    export const $gtype: GObject.GType<buffer_diff_flags_t>;
+}
+
+export enum buffer_diff_flags_t {
+    EQUAL = 0,
+    CONTENT_TYPE_MISMATCH = 1,
+    LENGTH_MISMATCH = 2,
+    NOTDEF_PRESENT = 4,
+    DOTTED_CIRCLE_PRESENT = 8,
+    CODEPOINT_MISMATCH = 16,
+    CLUSTER_MISMATCH = 32,
+    GLYPH_FLAGS_MISMATCH = 64,
+    POSITION_MISMATCH = 128,
+}
+
+export namespace buffer_flags_t {
+    export const $gtype: GObject.GType<buffer_flags_t>;
+}
+
+export enum buffer_flags_t {
+    DEFAULT = 0,
+    BOT = 1,
+    EOT = 2,
+    PRESERVE_DEFAULT_IGNORABLES = 4,
+    REMOVE_DEFAULT_IGNORABLES = 8,
+    DO_NOT_INSERT_DOTTED_CIRCLE = 16,
+    VERIFY = 32,
+    PRODUCE_UNSAFE_TO_CONCAT = 64,
+}
+
+export namespace buffer_serialize_flags_t {
+    export const $gtype: GObject.GType<buffer_serialize_flags_t>;
+}
+
+export enum buffer_serialize_flags_t {
+    DEFAULT = 0,
+    NO_CLUSTERS = 1,
+    NO_POSITIONS = 2,
+    NO_GLYPH_NAMES = 4,
+    GLYPH_EXTENTS = 8,
+    GLYPH_FLAGS = 16,
+    NO_ADVANCES = 32,
+}
+
+export namespace glyph_flags_t {
+    export const $gtype: GObject.GType<glyph_flags_t>;
+}
+
+export enum glyph_flags_t {
+    UNSAFE_TO_BREAK = 1,
+    UNSAFE_TO_CONCAT = 2,
+    DEFINED = 3,
+}
+
+export namespace ot_color_palette_flags_t {
+    export const $gtype: GObject.GType<ot_color_palette_flags_t>;
+}
+
+export enum ot_color_palette_flags_t {
+    DEFAULT = 0,
+    USABLE_WITH_LIGHT_BACKGROUND = 1,
+    USABLE_WITH_DARK_BACKGROUND = 2,
+}
+
+export namespace ot_math_glyph_part_flags_t {
+    export const $gtype: GObject.GType<ot_math_glyph_part_flags_t>;
+}
+
+export enum ot_math_glyph_part_flags_t {
+    EXTENDER = 1,
+}
+
+export namespace ot_var_axis_flags_t {
+    export const $gtype: GObject.GType<ot_var_axis_flags_t>;
+}
+
+export enum ot_var_axis_flags_t {
+    HIDDEN = 1,
+}
+
+export class aat_layout_feature_selector_info_t {
+    static $gtype: GObject.GType<aat_layout_feature_selector_info_t>;
+
+    constructor(copy: aat_layout_feature_selector_info_t);
+
+    // Fields
+    name_id: ot_name_id_t;
+    enable: aat_layout_feature_selector_t;
+    disable: aat_layout_feature_selector_t;
+}
+
+export class blob_t {
+    static $gtype: GObject.GType<blob_t>;
+
+    constructor(copy: blob_t);
+}
+
+export class buffer_t {
+    static $gtype: GObject.GType<buffer_t>;
+
+    constructor(copy: buffer_t);
+}
+
+export class draw_funcs_t {
+    static $gtype: GObject.GType<draw_funcs_t>;
+
+    constructor(copy: draw_funcs_t);
+}
+
+export class draw_state_t {
+    static $gtype: GObject.GType<draw_state_t>;
+
+    constructor(copy: draw_state_t);
+
+    // Fields
+    path_open: bool_t;
+    path_start_x: number;
+    path_start_y: number;
+    current_x: number;
+    current_y: number;
+}
+
+export class face_t {
+    static $gtype: GObject.GType<face_t>;
+
+    constructor(copy: face_t);
+}
+
+export class feature_t {
+    static $gtype: GObject.GType<feature_t>;
+
+    constructor(copy: feature_t);
+
+    // Fields
+    tag: tag_t;
+    value: number;
+    start: number;
+    end: number;
+
+    // Members
+    _string(): string[];
+}
+
+export class font_extents_t {
+    static $gtype: GObject.GType<font_extents_t>;
+
+    constructor(copy: font_extents_t);
+
+    // Fields
+    ascender: position_t;
+    descender: position_t;
+    line_gap: position_t;
+}
+
+export class font_funcs_t {
+    static $gtype: GObject.GType<font_funcs_t>;
+
+    constructor(copy: font_funcs_t);
+}
+
+export class font_t {
+    static $gtype: GObject.GType<font_t>;
+
+    constructor(copy: font_t);
+}
+
+export class glyph_extents_t {
+    static $gtype: GObject.GType<glyph_extents_t>;
+
+    constructor(copy: glyph_extents_t);
+
+    // Fields
+    x_bearing: position_t;
+    y_bearing: position_t;
+    width: position_t;
+    height: position_t;
+}
+
+export class glyph_info_t {
+    static $gtype: GObject.GType<glyph_info_t>;
+
+    constructor(copy: glyph_info_t);
+
+    // Fields
+    codepoint: codepoint_t;
+    cluster: number;
+}
+
+export class glyph_position_t {
+    static $gtype: GObject.GType<glyph_position_t>;
+
+    constructor(copy: glyph_position_t);
+
+    // Fields
+    x_advance: position_t;
+    y_advance: position_t;
+    x_offset: position_t;
+    y_offset: position_t;
+}
+
+export class language_t {
+    static $gtype: GObject.GType<language_t>;
+
+    constructor(copy: language_t);
+
+    // Members
+    _string(): string;
+}
+
+export class map_t {
+    static $gtype: GObject.GType<map_t>;
+
+    constructor(copy: map_t);
+}
+
+export class ot_color_layer_t {
+    static $gtype: GObject.GType<ot_color_layer_t>;
+
+    constructor(copy: ot_color_layer_t);
+
+    // Fields
+    glyph: codepoint_t;
+    color_index: number;
+}
+
+export class ot_math_glyph_part_t {
+    static $gtype: GObject.GType<ot_math_glyph_part_t>;
+
+    constructor(copy: ot_math_glyph_part_t);
+
+    // Fields
+    glyph: codepoint_t;
+    start_connector_length: position_t;
+    end_connector_length: position_t;
+    full_advance: position_t;
+    flags: ot_math_glyph_part_flags_t;
+}
+
+export class ot_math_glyph_variant_t {
+    static $gtype: GObject.GType<ot_math_glyph_variant_t>;
+
+    constructor(copy: ot_math_glyph_variant_t);
+
+    // Fields
+    glyph: codepoint_t;
+    advance: position_t;
+}
+
+export class ot_math_kern_entry_t {
+    static $gtype: GObject.GType<ot_math_kern_entry_t>;
+
+    constructor(copy: ot_math_kern_entry_t);
+
+    // Fields
+    max_correction_height: position_t;
+    kern_value: position_t;
+}
+
+export class ot_name_entry_t {
+    static $gtype: GObject.GType<ot_name_entry_t>;
+
+    constructor(copy: ot_name_entry_t);
+
+    // Fields
+    name_id: ot_name_id_t;
+    language: language_t;
+}
+
+export class ot_var_axis_info_t {
+    static $gtype: GObject.GType<ot_var_axis_info_t>;
+
+    constructor(copy: ot_var_axis_info_t);
+
+    // Fields
+    axis_index: number;
+    tag: tag_t;
+    name_id: ot_name_id_t;
+    flags: ot_var_axis_flags_t;
+    min_value: number;
+    default_value: number;
+    max_value: number;
+}
+
+export class ot_var_axis_t {
+    static $gtype: GObject.GType<ot_var_axis_t>;
+
+    constructor(copy: ot_var_axis_t);
+
+    // Fields
+    tag: tag_t;
+    name_id: ot_name_id_t;
+    min_value: number;
+    default_value: number;
+    max_value: number;
+}
+
+export class segment_properties_t {
+    static $gtype: GObject.GType<segment_properties_t>;
+
+    constructor(copy: segment_properties_t);
+
+    // Fields
+    direction: direction_t;
+    script: script_t;
+    language: language_t;
+}
+
+export class set_t {
+    static $gtype: GObject.GType<set_t>;
+
+    constructor(copy: set_t);
+}
+
+export class shape_plan_t {
+    static $gtype: GObject.GType<shape_plan_t>;
+
+    constructor(copy: shape_plan_t);
+}
+
+export class unicode_funcs_t {
+    static $gtype: GObject.GType<unicode_funcs_t>;
+
+    constructor(copy: unicode_funcs_t);
+}
+
+export class user_data_key_t {
+    static $gtype: GObject.GType<user_data_key_t>;
+
+    constructor(copy: user_data_key_t);
+}
+
+export class variation_t {
+    static $gtype: GObject.GType<variation_t>;
+
+    constructor(copy: variation_t);
+
+    // Fields
+    tag: tag_t;
+    value: number;
+
+    // Members
+    _string(): string[];
+}
+
+export class var_int_t {
+    static $gtype: GObject.GType<var_int_t>;
+
+    constructor(copy: var_int_t);
+
+    // Fields
+    u32: number;
+    i32: number;
+    u16: number[];
+    i16: number[];
+    u8: Uint8Array;
+    i8: Uint8Array;
+}
+
+export class var_num_t {
+    static $gtype: GObject.GType<var_num_t>;
+
+    constructor(copy: var_num_t);
+
+    // Fields
+    f: number;
+    u32: number;
+    i32: number;
+    u16: number[];
+    i16: number[];
+    u8: Uint8Array;
+    i8: Uint8Array;
+}
+export type bool_t = number;
+export type codepoint_t = number;
+export type color_t = number;
+export type font_get_font_h_extents_func_t = font_get_font_extents_func_t;
+export type font_get_font_v_extents_func_t = font_get_font_extents_func_t;
+export type font_get_glyph_h_advance_func_t = font_get_glyph_advance_func_t;
+export type font_get_glyph_h_advances_func_t = font_get_glyph_advances_func_t;
+export type font_get_glyph_h_kerning_func_t = font_get_glyph_kerning_func_t;
+export type font_get_glyph_h_origin_func_t = font_get_glyph_origin_func_t;
+export type font_get_glyph_v_advance_func_t = font_get_glyph_advance_func_t;
+export type font_get_glyph_v_advances_func_t = font_get_glyph_advances_func_t;
+export type font_get_glyph_v_kerning_func_t = font_get_glyph_kerning_func_t;
+export type font_get_glyph_v_origin_func_t = font_get_glyph_origin_func_t;
+export type mask_t = number;
+export type ot_name_id_t = number;
+export type position_t = number;
+export type tag_t = number;
diff --git a/types/pango.d.ts b/types/pango.d.ts
new file mode 100644
index 0000000..09ef1da
--- /dev/null
+++ b/types/pango.d.ts
@@ -0,0 +1,1702 @@
+/**
+ * Pango 1.0
+ *
+ * Generated from 1.50.7
+ */
+
+import * as GLib from "glib";
+import * as GObject from "gobject";
+import * as HarfBuzz from "harfbuzz";
+
+export const ANALYSIS_FLAG_CENTERED_BASELINE: number;
+export const ANALYSIS_FLAG_IS_ELLIPSIS: number;
+export const ANALYSIS_FLAG_NEED_HYPHEN: number;
+export const ATTR_INDEX_FROM_TEXT_BEGINNING: number;
+export const ATTR_INDEX_TO_TEXT_END: number;
+export const GLYPH_EMPTY: Glyph;
+export const GLYPH_INVALID_INPUT: Glyph;
+export const GLYPH_UNKNOWN_FLAG: Glyph;
+export const SCALE: number;
+export const VERSION_MAJOR: number;
+export const VERSION_MICRO: number;
+export const VERSION_MINOR: number;
+export const VERSION_STRING: string;
+export function attr_allow_breaks_new(allow_breaks: boolean): Attribute;
+export function attr_background_alpha_new(alpha: number): Attribute;
+export function attr_background_new(red: number, green: number, blue: number): Attribute;
+export function attr_baseline_shift_new(shift: number): Attribute;
+export function attr_break(text: string, length: number, attr_list: AttrList, offset: number, attrs: 
LogAttr[]): void;
+export function attr_fallback_new(enable_fallback: boolean): Attribute;
+export function attr_family_new(family: string): Attribute;
+export function attr_font_desc_new(desc: FontDescription): Attribute;
+export function attr_font_features_new(features: string): Attribute;
+export function attr_font_scale_new(scale: FontScale): Attribute;
+export function attr_foreground_alpha_new(alpha: number): Attribute;
+export function attr_foreground_new(red: number, green: number, blue: number): Attribute;
+export function attr_gravity_hint_new(hint: GravityHint): Attribute;
+export function attr_gravity_new(gravity: Gravity): Attribute;
+export function attr_insert_hyphens_new(insert_hyphens: boolean): Attribute;
+export function attr_language_new(language: Language): Attribute;
+export function attr_letter_spacing_new(letter_spacing: number): Attribute;
+export function attr_line_height_new(factor: number): Attribute;
+export function attr_line_height_new_absolute(height: number): Attribute;
+export function attr_list_from_string(text: string): AttrList | null;
+export function attr_overline_color_new(red: number, green: number, blue: number): Attribute;
+export function attr_overline_new(overline: Overline): Attribute;
+export function attr_rise_new(rise: number): Attribute;
+export function attr_scale_new(scale_factor: number): Attribute;
+export function attr_sentence_new(): Attribute;
+export function attr_shape_new(ink_rect: Rectangle, logical_rect: Rectangle): Attribute;
+export function attr_shape_new_with_data(
+    ink_rect: Rectangle,
+    logical_rect: Rectangle,
+    data?: any | null,
+    copy_func?: AttrDataCopyFunc | null,
+    destroy_func?: GLib.DestroyNotify | null
+): Attribute;
+export function attr_show_new(flags: ShowFlags): Attribute;
+export function attr_size_new(size: number): Attribute;
+export function attr_size_new_absolute(size: number): Attribute;
+export function attr_stretch_new(stretch: Stretch): Attribute;
+export function attr_strikethrough_color_new(red: number, green: number, blue: number): Attribute;
+export function attr_strikethrough_new(strikethrough: boolean): Attribute;
+export function attr_style_new(style: Style): Attribute;
+export function attr_text_transform_new(transform: TextTransform): Attribute;
+export function attr_type_get_name(type: AttrType): string | null;
+export function attr_type_register(name: string): AttrType;
+export function attr_underline_color_new(red: number, green: number, blue: number): Attribute;
+export function attr_underline_new(underline: Underline): Attribute;
+export function attr_variant_new(variant: Variant): Attribute;
+export function attr_weight_new(weight: Weight): Attribute;
+export function attr_word_new(): Attribute;
+export function bidi_type_for_unichar(ch: number): BidiType;
+export function __break(text: string, length: number, analysis: Analysis, attrs: LogAttr[]): void;
+export function default_break(
+    text: string,
+    length: number,
+    analysis: Analysis | null,
+    attrs: LogAttr,
+    attrs_len: number
+): void;
+export function extents_to_pixels(inclusive?: Rectangle | null, nearest?: Rectangle | null): void;
+export function find_base_dir(text: string, length: number): Direction;
+export function find_paragraph_boundary(text: string, length: number): [number, number];
+export function font_description_from_string(str: string): FontDescription;
+export function get_log_attrs(text: string, length: number, level: number, language: Language, attrs: 
LogAttr[]): void;
+export function get_mirror_char(ch: number, mirrored_ch: number): boolean;
+export function gravity_get_for_matrix(matrix?: Matrix | null): Gravity;
+export function gravity_get_for_script(script: Script, base_gravity: Gravity, hint: GravityHint): Gravity;
+export function gravity_get_for_script_and_width(
+    script: Script,
+    wide: boolean,
+    base_gravity: Gravity,
+    hint: GravityHint
+): Gravity;
+export function gravity_to_rotation(gravity: Gravity): number;
+export function is_zero_width(ch: number): boolean;
+export function itemize(
+    context: Context,
+    text: string,
+    start_index: number,
+    length: number,
+    attrs: AttrList,
+    cached_iter?: AttrIterator | null
+): Item[];
+export function itemize_with_base_dir(
+    context: Context,
+    base_dir: Direction,
+    text: string,
+    start_index: number,
+    length: number,
+    attrs: AttrList,
+    cached_iter?: AttrIterator | null
+): Item[];
+export function language_from_string(language?: string | null): Language | null;
+export function language_get_default(): Language;
+export function language_get_preferred(): Language | null;
+export function layout_deserialize_error_quark(): GLib.Quark;
+export function log2vis_get_embedding_levels(text: string, length: number, pbase_dir: Direction): number;
+export function markup_parser_finish(context: GLib.MarkupParseContext): [boolean, AttrList | null, string, 
number];
+export function markup_parser_new(accel_marker: number): GLib.MarkupParseContext;
+export function parse_enum(type: GObject.GType, str: string | null, warn: boolean): [boolean, number, 
string];
+export function parse_markup(
+    markup_text: string,
+    length: number,
+    accel_marker: number
+): [boolean, AttrList | null, string, number];
+export function parse_stretch(str: string, warn: boolean): [boolean, Stretch];
+export function parse_style(str: string, warn: boolean): [boolean, Style];
+export function parse_variant(str: string, warn: boolean): [boolean, Variant];
+export function parse_weight(str: string, warn: boolean): [boolean, Weight];
+export function quantize_line_geometry(thickness: number, position: number): [number, number];
+export function read_line(stream: any | null, str: GLib.String): number;
+export function reorder_items(items: Item[]): Item[];
+export function scan_int(pos: string): [boolean, string, number];
+export function scan_string(pos: string, out: GLib.String): [boolean, string];
+export function scan_word(pos: string, out: GLib.String): [boolean, string];
+export function script_for_unichar(ch: number): Script;
+export function script_get_sample_language(script: Script): Language | null;
+export function shape(text: string, length: number, analysis: Analysis, glyphs: GlyphString): void;
+export function shape_full(
+    item_text: string,
+    item_length: number,
+    paragraph_text: string | null,
+    paragraph_length: number,
+    analysis: Analysis,
+    glyphs: GlyphString
+): void;
+export function shape_item(
+    item: Item,
+    paragraph_text: string | null,
+    paragraph_length: number,
+    log_attrs: LogAttr | null,
+    glyphs: GlyphString,
+    flags: ShapeFlags
+): void;
+export function shape_with_flags(
+    item_text: string,
+    item_length: number,
+    paragraph_text: string | null,
+    paragraph_length: number,
+    analysis: Analysis,
+    glyphs: GlyphString,
+    flags: ShapeFlags
+): void;
+export function skip_space(pos: string): [boolean, string];
+export function split_file_list(str: string): string[];
+export function tab_array_from_string(text: string): TabArray | null;
+export function tailor_break(text: string, length: number, analysis: Analysis, offset: number, attrs: 
LogAttr[]): void;
+export function trim_string(str: string): string;
+export function unichar_direction(ch: number): Direction;
+export function units_from_double(d: number): number;
+export function units_to_double(i: number): number;
+export function version(): number;
+export function version_check(required_major: number, required_minor: number, required_micro: number): 
string | null;
+export function version_string(): string;
+export type AttrDataCopyFunc = () => any | null;
+export type AttrFilterFunc = (attribute: Attribute) => boolean;
+export type FontsetForeachFunc = (fontset: Fontset, font: Font) => boolean;
+
+export namespace Alignment {
+    export const $gtype: GObject.GType<Alignment>;
+}
+
+export enum Alignment {
+    LEFT = 0,
+    CENTER = 1,
+    RIGHT = 2,
+}
+
+export namespace AttrType {
+    export const $gtype: GObject.GType<AttrType>;
+}
+
+export enum AttrType {
+    INVALID = 0,
+    LANGUAGE = 1,
+    FAMILY = 2,
+    STYLE = 3,
+    WEIGHT = 4,
+    VARIANT = 5,
+    STRETCH = 6,
+    SIZE = 7,
+    FONT_DESC = 8,
+    FOREGROUND = 9,
+    BACKGROUND = 10,
+    UNDERLINE = 11,
+    STRIKETHROUGH = 12,
+    RISE = 13,
+    SHAPE = 14,
+    SCALE = 15,
+    FALLBACK = 16,
+    LETTER_SPACING = 17,
+    UNDERLINE_COLOR = 18,
+    STRIKETHROUGH_COLOR = 19,
+    ABSOLUTE_SIZE = 20,
+    GRAVITY = 21,
+    GRAVITY_HINT = 22,
+    FONT_FEATURES = 23,
+    FOREGROUND_ALPHA = 24,
+    BACKGROUND_ALPHA = 25,
+    ALLOW_BREAKS = 26,
+    SHOW = 27,
+    INSERT_HYPHENS = 28,
+    OVERLINE = 29,
+    OVERLINE_COLOR = 30,
+    LINE_HEIGHT = 31,
+    ABSOLUTE_LINE_HEIGHT = 32,
+    TEXT_TRANSFORM = 33,
+    WORD = 34,
+    SENTENCE = 35,
+    BASELINE_SHIFT = 36,
+    FONT_SCALE = 37,
+}
+
+export namespace BaselineShift {
+    export const $gtype: GObject.GType<BaselineShift>;
+}
+
+export enum BaselineShift {
+    NONE = 0,
+    SUPERSCRIPT = 1,
+    SUBSCRIPT = 2,
+}
+
+export namespace BidiType {
+    export const $gtype: GObject.GType<BidiType>;
+}
+
+export enum BidiType {
+    L = 0,
+    LRE = 1,
+    LRO = 2,
+    R = 3,
+    AL = 4,
+    RLE = 5,
+    RLO = 6,
+    PDF = 7,
+    EN = 8,
+    ES = 9,
+    ET = 10,
+    AN = 11,
+    CS = 12,
+    NSM = 13,
+    BN = 14,
+    B = 15,
+    S = 16,
+    WS = 17,
+    ON = 18,
+    LRI = 19,
+    RLI = 20,
+    FSI = 21,
+    PDI = 22,
+}
+
+export namespace CoverageLevel {
+    export const $gtype: GObject.GType<CoverageLevel>;
+}
+
+export enum CoverageLevel {
+    NONE = 0,
+    FALLBACK = 1,
+    APPROXIMATE = 2,
+    EXACT = 3,
+}
+
+export namespace Direction {
+    export const $gtype: GObject.GType<Direction>;
+}
+
+export enum Direction {
+    LTR = 0,
+    RTL = 1,
+    TTB_LTR = 2,
+    TTB_RTL = 3,
+    WEAK_LTR = 4,
+    WEAK_RTL = 5,
+    NEUTRAL = 6,
+}
+
+export namespace EllipsizeMode {
+    export const $gtype: GObject.GType<EllipsizeMode>;
+}
+
+export enum EllipsizeMode {
+    NONE = 0,
+    START = 1,
+    MIDDLE = 2,
+    END = 3,
+}
+
+export namespace FontScale {
+    export const $gtype: GObject.GType<FontScale>;
+}
+
+export enum FontScale {
+    NONE = 0,
+    SUPERSCRIPT = 1,
+    SUBSCRIPT = 2,
+    SMALL_CAPS = 3,
+}
+
+export namespace Gravity {
+    export const $gtype: GObject.GType<Gravity>;
+}
+
+export enum Gravity {
+    SOUTH = 0,
+    EAST = 1,
+    NORTH = 2,
+    WEST = 3,
+    AUTO = 4,
+}
+
+export namespace GravityHint {
+    export const $gtype: GObject.GType<GravityHint>;
+}
+
+export enum GravityHint {
+    NATURAL = 0,
+    STRONG = 1,
+    LINE = 2,
+}
+
+export class LayoutDeserializeError extends GLib.Error {
+    static $gtype: GObject.GType<LayoutDeserializeError>;
+
+    constructor(options: { message: string; code: number });
+    constructor(copy: LayoutDeserializeError);
+
+    // Fields
+    static INVALID: number;
+    static INVALID_VALUE: number;
+    static MISSING_VALUE: number;
+
+    // Members
+    static quark(): GLib.Quark;
+}
+
+export namespace Overline {
+    export const $gtype: GObject.GType<Overline>;
+}
+
+export enum Overline {
+    NONE = 0,
+    SINGLE = 1,
+}
+
+export namespace RenderPart {
+    export const $gtype: GObject.GType<RenderPart>;
+}
+
+export enum RenderPart {
+    FOREGROUND = 0,
+    BACKGROUND = 1,
+    UNDERLINE = 2,
+    STRIKETHROUGH = 3,
+    OVERLINE = 4,
+}
+
+export namespace Script {
+    export const $gtype: GObject.GType<Script>;
+}
+
+export enum Script {
+    INVALID_CODE = -1,
+    COMMON = 0,
+    INHERITED = 1,
+    ARABIC = 2,
+    ARMENIAN = 3,
+    BENGALI = 4,
+    BOPOMOFO = 5,
+    CHEROKEE = 6,
+    COPTIC = 7,
+    CYRILLIC = 8,
+    DESERET = 9,
+    DEVANAGARI = 10,
+    ETHIOPIC = 11,
+    GEORGIAN = 12,
+    GOTHIC = 13,
+    GREEK = 14,
+    GUJARATI = 15,
+    GURMUKHI = 16,
+    HAN = 17,
+    HANGUL = 18,
+    HEBREW = 19,
+    HIRAGANA = 20,
+    KANNADA = 21,
+    KATAKANA = 22,
+    KHMER = 23,
+    LAO = 24,
+    LATIN = 25,
+    MALAYALAM = 26,
+    MONGOLIAN = 27,
+    MYANMAR = 28,
+    OGHAM = 29,
+    OLD_ITALIC = 30,
+    ORIYA = 31,
+    RUNIC = 32,
+    SINHALA = 33,
+    SYRIAC = 34,
+    TAMIL = 35,
+    TELUGU = 36,
+    THAANA = 37,
+    THAI = 38,
+    TIBETAN = 39,
+    CANADIAN_ABORIGINAL = 40,
+    YI = 41,
+    TAGALOG = 42,
+    HANUNOO = 43,
+    BUHID = 44,
+    TAGBANWA = 45,
+    BRAILLE = 46,
+    CYPRIOT = 47,
+    LIMBU = 48,
+    OSMANYA = 49,
+    SHAVIAN = 50,
+    LINEAR_B = 51,
+    TAI_LE = 52,
+    UGARITIC = 53,
+    NEW_TAI_LUE = 54,
+    BUGINESE = 55,
+    GLAGOLITIC = 56,
+    TIFINAGH = 57,
+    SYLOTI_NAGRI = 58,
+    OLD_PERSIAN = 59,
+    KHAROSHTHI = 60,
+    UNKNOWN = 61,
+    BALINESE = 62,
+    CUNEIFORM = 63,
+    PHOENICIAN = 64,
+    PHAGS_PA = 65,
+    NKO = 66,
+    KAYAH_LI = 67,
+    LEPCHA = 68,
+    REJANG = 69,
+    SUNDANESE = 70,
+    SAURASHTRA = 71,
+    CHAM = 72,
+    OL_CHIKI = 73,
+    VAI = 74,
+    CARIAN = 75,
+    LYCIAN = 76,
+    LYDIAN = 77,
+    BATAK = 78,
+    BRAHMI = 79,
+    MANDAIC = 80,
+    CHAKMA = 81,
+    MEROITIC_CURSIVE = 82,
+    MEROITIC_HIEROGLYPHS = 83,
+    MIAO = 84,
+    SHARADA = 85,
+    SORA_SOMPENG = 86,
+    TAKRI = 87,
+    BASSA_VAH = 88,
+    CAUCASIAN_ALBANIAN = 89,
+    DUPLOYAN = 90,
+    ELBASAN = 91,
+    GRANTHA = 92,
+    KHOJKI = 93,
+    KHUDAWADI = 94,
+    LINEAR_A = 95,
+    MAHAJANI = 96,
+    MANICHAEAN = 97,
+    MENDE_KIKAKUI = 98,
+    MODI = 99,
+    MRO = 100,
+    NABATAEAN = 101,
+    OLD_NORTH_ARABIAN = 102,
+    OLD_PERMIC = 103,
+    PAHAWH_HMONG = 104,
+    PALMYRENE = 105,
+    PAU_CIN_HAU = 106,
+    PSALTER_PAHLAVI = 107,
+    SIDDHAM = 108,
+    TIRHUTA = 109,
+    WARANG_CITI = 110,
+    AHOM = 111,
+    ANATOLIAN_HIEROGLYPHS = 112,
+    HATRAN = 113,
+    MULTANI = 114,
+    OLD_HUNGARIAN = 115,
+    SIGNWRITING = 116,
+}
+
+export namespace Stretch {
+    export const $gtype: GObject.GType<Stretch>;
+}
+
+export enum Stretch {
+    ULTRA_CONDENSED = 0,
+    EXTRA_CONDENSED = 1,
+    CONDENSED = 2,
+    SEMI_CONDENSED = 3,
+    NORMAL = 4,
+    SEMI_EXPANDED = 5,
+    EXPANDED = 6,
+    EXTRA_EXPANDED = 7,
+    ULTRA_EXPANDED = 8,
+}
+
+export namespace Style {
+    export const $gtype: GObject.GType<Style>;
+}
+
+export enum Style {
+    NORMAL = 0,
+    OBLIQUE = 1,
+    ITALIC = 2,
+}
+
+export namespace TabAlign {
+    export const $gtype: GObject.GType<TabAlign>;
+}
+
+export enum TabAlign {
+    LEFT = 0,
+    RIGHT = 1,
+    CENTER = 2,
+    DECIMAL = 3,
+}
+
+export namespace TextTransform {
+    export const $gtype: GObject.GType<TextTransform>;
+}
+
+export enum TextTransform {
+    NONE = 0,
+    LOWERCASE = 1,
+    UPPERCASE = 2,
+    CAPITALIZE = 3,
+}
+
+export namespace Underline {
+    export const $gtype: GObject.GType<Underline>;
+}
+
+export enum Underline {
+    NONE = 0,
+    SINGLE = 1,
+    DOUBLE = 2,
+    LOW = 3,
+    ERROR = 4,
+    SINGLE_LINE = 5,
+    DOUBLE_LINE = 6,
+    ERROR_LINE = 7,
+}
+
+export namespace Variant {
+    export const $gtype: GObject.GType<Variant>;
+}
+
+export enum Variant {
+    NORMAL = 0,
+    SMALL_CAPS = 1,
+    ALL_SMALL_CAPS = 2,
+    PETITE_CAPS = 3,
+    ALL_PETITE_CAPS = 4,
+    UNICASE = 5,
+    TITLE_CAPS = 6,
+}
+
+export namespace Weight {
+    export const $gtype: GObject.GType<Weight>;
+}
+
+export enum Weight {
+    THIN = 100,
+    ULTRALIGHT = 200,
+    LIGHT = 300,
+    SEMILIGHT = 350,
+    BOOK = 380,
+    NORMAL = 400,
+    MEDIUM = 500,
+    SEMIBOLD = 600,
+    BOLD = 700,
+    ULTRABOLD = 800,
+    HEAVY = 900,
+    ULTRAHEAVY = 1000,
+}
+
+export namespace WrapMode {
+    export const $gtype: GObject.GType<WrapMode>;
+}
+
+export enum WrapMode {
+    WORD = 0,
+    CHAR = 1,
+    WORD_CHAR = 2,
+}
+
+export namespace FontMask {
+    export const $gtype: GObject.GType<FontMask>;
+}
+
+export enum FontMask {
+    FAMILY = 1,
+    STYLE = 2,
+    VARIANT = 4,
+    WEIGHT = 8,
+    STRETCH = 16,
+    SIZE = 32,
+    GRAVITY = 64,
+    VARIATIONS = 128,
+}
+
+export namespace LayoutDeserializeFlags {
+    export const $gtype: GObject.GType<LayoutDeserializeFlags>;
+}
+
+export enum LayoutDeserializeFlags {
+    DEFAULT = 0,
+    CONTEXT = 1,
+}
+
+export namespace LayoutSerializeFlags {
+    export const $gtype: GObject.GType<LayoutSerializeFlags>;
+}
+
+export enum LayoutSerializeFlags {
+    DEFAULT = 0,
+    CONTEXT = 1,
+    OUTPUT = 2,
+}
+
+export namespace ShapeFlags {
+    export const $gtype: GObject.GType<ShapeFlags>;
+}
+
+export enum ShapeFlags {
+    NONE = 0,
+    ROUND_POSITIONS = 1,
+}
+
+export namespace ShowFlags {
+    export const $gtype: GObject.GType<ShowFlags>;
+}
+
+export enum ShowFlags {
+    NONE = 0,
+    SPACES = 1,
+    LINE_BREAKS = 2,
+    IGNORABLES = 4,
+}
+export module Context {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Context extends GObject.Object {
+    static $gtype: GObject.GType<Context>;
+
+    constructor(properties?: Partial<Context.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Context.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): Context;
+
+    // Members
+
+    changed(): void;
+    get_base_dir(): Direction;
+    get_base_gravity(): Gravity;
+    get_font_description(): FontDescription;
+    get_font_map(): FontMap;
+    get_gravity(): Gravity;
+    get_gravity_hint(): GravityHint;
+    get_language(): Language;
+    get_matrix(): Matrix | null;
+    get_metrics(desc?: FontDescription | null, language?: Language | null): FontMetrics;
+    get_round_glyph_positions(): boolean;
+    get_serial(): number;
+    list_families(): FontFamily[];
+    load_font(desc: FontDescription): Font | null;
+    load_fontset(desc: FontDescription, language: Language): Fontset | null;
+    set_base_dir(direction: Direction): void;
+    set_base_gravity(gravity: Gravity): void;
+    set_font_description(desc: FontDescription): void;
+    set_font_map(font_map: FontMap): void;
+    set_gravity_hint(hint: GravityHint): void;
+    set_language(language: Language): void;
+    set_matrix(matrix?: Matrix | null): void;
+    set_round_glyph_positions(round_positions: boolean): void;
+}
+export module Coverage {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Coverage extends GObject.Object {
+    static $gtype: GObject.GType<Coverage>;
+
+    constructor(properties?: Partial<Coverage.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Coverage.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](): Coverage;
+
+    // Members
+
+    copy(): Coverage;
+    get(index_: number): CoverageLevel;
+    max(other: Coverage): void;
+    ref(): Coverage;
+    set(index_: number, level: CoverageLevel): void;
+    // Conflicted with GObject.Object.set
+    set(...args: never[]): any;
+    to_bytes(): Uint8Array;
+    unref(): void;
+    static from_bytes(bytes: Uint8Array | string): Coverage | null;
+}
+export module Font {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Font extends GObject.Object {
+    static $gtype: GObject.GType<Font>;
+
+    constructor(properties?: Partial<Font.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Font.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    describe(): FontDescription;
+    describe_with_absolute_size(): FontDescription;
+    get_coverage(language: Language): Coverage;
+    get_face(): FontFace;
+    get_features(num_features: number): [HarfBuzz.feature_t[], number];
+    get_font_map(): FontMap | null;
+    get_glyph_extents(glyph: Glyph): [Rectangle | null, Rectangle | null];
+    get_languages(): Language[] | null;
+    get_metrics(language?: Language | null): FontMetrics;
+    has_char(wc: number): boolean;
+    serialize(): GLib.Bytes;
+    vfunc_create_hb_font(): HarfBuzz.font_t;
+    vfunc_describe(): FontDescription;
+    vfunc_describe_absolute(): FontDescription;
+    vfunc_get_coverage(language: Language): Coverage;
+    vfunc_get_features(num_features: number): [HarfBuzz.feature_t[], number];
+    vfunc_get_font_map(): FontMap | null;
+    vfunc_get_glyph_extents(glyph: Glyph): [Rectangle | null, Rectangle | null];
+    vfunc_get_metrics(language?: Language | null): FontMetrics;
+    static descriptions_free(descs?: FontDescription[] | null): void;
+    static deserialize(context: Context, bytes: GLib.Bytes | Uint8Array): Font | null;
+}
+export module FontFace {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class FontFace extends GObject.Object {
+    static $gtype: GObject.GType<FontFace>;
+
+    constructor(properties?: Partial<FontFace.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontFace.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    describe(): FontDescription;
+    get_face_name(): string;
+    get_family(): FontFamily;
+    is_synthesized(): boolean;
+    list_sizes(): number[] | null;
+    vfunc_describe(): FontDescription;
+    vfunc_get_face_name(): string;
+    vfunc_get_family(): FontFamily;
+    vfunc_is_synthesized(): boolean;
+    vfunc_list_sizes(): number[] | null;
+}
+export module FontFamily {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class FontFamily extends GObject.Object {
+    static $gtype: GObject.GType<FontFamily>;
+
+    constructor(properties?: Partial<FontFamily.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontFamily.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    get_face(name?: string | null): FontFace | null;
+    get_name(): string;
+    is_monospace(): boolean;
+    is_variable(): boolean;
+    list_faces(): FontFace[] | null;
+    vfunc_get_face(name?: string | null): FontFace | null;
+    vfunc_get_name(): string;
+    vfunc_is_monospace(): boolean;
+    vfunc_is_variable(): boolean;
+    vfunc_list_faces(): FontFace[] | null;
+}
+export module FontMap {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class FontMap extends GObject.Object {
+    static $gtype: GObject.GType<FontMap>;
+
+    constructor(properties?: Partial<FontMap.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontMap.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    changed(): void;
+    create_context(): Context;
+    get_family(name: string): FontFamily;
+    get_serial(): number;
+    list_families(): FontFamily[];
+    load_font(context: Context, desc: FontDescription): Font | null;
+    load_fontset(context: Context, desc: FontDescription, language: Language): Fontset | null;
+    vfunc_changed(): void;
+    vfunc_get_family(name: string): FontFamily;
+    vfunc_get_serial(): number;
+    vfunc_list_families(): FontFamily[];
+    vfunc_load_font(context: Context, desc: FontDescription): Font | null;
+    vfunc_load_fontset(context: Context, desc: FontDescription, language: Language): Fontset | null;
+}
+export module Fontset {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Fontset extends GObject.Object {
+    static $gtype: GObject.GType<Fontset>;
+
+    constructor(properties?: Partial<Fontset.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Fontset.ConstructorProperties>, ...args: any[]): void;
+
+    // Members
+
+    foreach(func: FontsetForeachFunc): void;
+    get_font(wc: number): Font;
+    get_metrics(): FontMetrics;
+    vfunc_foreach(func: FontsetForeachFunc): void;
+    vfunc_get_font(wc: number): Font;
+    vfunc_get_language(): Language;
+    vfunc_get_metrics(): FontMetrics;
+}
+export module FontsetSimple {
+    export interface ConstructorProperties extends Fontset.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class FontsetSimple extends Fontset {
+    static $gtype: GObject.GType<FontsetSimple>;
+
+    constructor(properties?: Partial<FontsetSimple.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<FontsetSimple.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](language: Language): FontsetSimple;
+
+    // Members
+
+    append(font: Font): void;
+    size(): number;
+}
+export module Layout {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export class Layout extends GObject.Object {
+    static $gtype: GObject.GType<Layout>;
+
+    constructor(properties?: Partial<Layout.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Layout.ConstructorProperties>, ...args: any[]): void;
+
+    // Constructors
+
+    static ["new"](context: Context): Layout;
+
+    // Members
+
+    context_changed(): void;
+    copy(): Layout;
+    get_alignment(): Alignment;
+    get_attributes(): AttrList | null;
+    get_auto_dir(): boolean;
+    get_baseline(): number;
+    get_caret_pos(index_: number): [Rectangle | null, Rectangle | null];
+    get_character_count(): number;
+    get_context(): Context;
+    get_cursor_pos(index_: number): [Rectangle | null, Rectangle | null];
+    get_direction(index: number): Direction;
+    get_ellipsize(): EllipsizeMode;
+    get_extents(): [Rectangle | null, Rectangle | null];
+    get_font_description(): FontDescription | null;
+    get_height(): number;
+    get_indent(): number;
+    get_iter(): LayoutIter;
+    get_justify(): boolean;
+    get_justify_last_line(): boolean;
+    get_line(line: number): LayoutLine | null;
+    get_line_count(): number;
+    get_line_readonly(line: number): LayoutLine | null;
+    get_line_spacing(): number;
+    get_lines(): LayoutLine[];
+    get_lines_readonly(): LayoutLine[];
+    get_log_attrs(): LogAttr[];
+    get_log_attrs_readonly(): LogAttr[];
+    get_pixel_extents(): [Rectangle | null, Rectangle | null];
+    get_pixel_size(): [number, number];
+    get_serial(): number;
+    get_single_paragraph_mode(): boolean;
+    get_size(): [number, number];
+    get_spacing(): number;
+    get_tabs(): TabArray | null;
+    get_text(): string;
+    get_unknown_glyphs_count(): number;
+    get_width(): number;
+    get_wrap(): WrapMode;
+    index_to_line_x(index_: number, trailing: boolean): [number, number];
+    index_to_pos(index_: number): Rectangle;
+    is_ellipsized(): boolean;
+    is_wrapped(): boolean;
+    move_cursor_visually(strong: boolean, old_index: number, old_trailing: number, direction: number): 
[number, number];
+    serialize(flags: LayoutSerializeFlags): GLib.Bytes;
+    set_alignment(alignment: Alignment): void;
+    set_attributes(attrs?: AttrList | null): void;
+    set_auto_dir(auto_dir: boolean): void;
+    set_ellipsize(ellipsize: EllipsizeMode): void;
+    set_font_description(desc?: FontDescription | null): void;
+    set_height(height: number): void;
+    set_indent(indent: number): void;
+    set_justify(justify: boolean): void;
+    set_justify_last_line(justify: boolean): void;
+    set_line_spacing(factor: number): void;
+    set_markup(markup: string, length: number): void;
+    set_markup_with_accel(markup: string, length: number, accel_marker: number): number;
+    set_single_paragraph_mode(setting: boolean): void;
+    set_spacing(spacing: number): void;
+    set_tabs(tabs?: TabArray | null): void;
+    set_text(text: string, length: number): void;
+    set_width(width: number): void;
+    set_wrap(wrap: WrapMode): void;
+    write_to_file(flags: LayoutSerializeFlags, filename: string): boolean;
+    xy_to_index(x: number, y: number): [boolean, number, number];
+    static deserialize(context: Context, bytes: GLib.Bytes | Uint8Array, flags: LayoutDeserializeFlags): 
Layout | null;
+}
+export module Renderer {
+    export interface ConstructorProperties extends GObject.Object.ConstructorProperties {
+        [key: string]: any;
+    }
+}
+export abstract class Renderer extends GObject.Object {
+    static $gtype: GObject.GType<Renderer>;
+
+    constructor(properties?: Partial<Renderer.ConstructorProperties>, ...args: any[]);
+    _init(properties?: Partial<Renderer.ConstructorProperties>, ...args: any[]): void;
+
+    // Fields
+    matrix: Matrix;
+
+    // Members
+
+    activate(): void;
+    deactivate(): void;
+    draw_error_underline(x: number, y: number, width: number, height: number): void;
+    draw_glyph(font: Font, glyph: Glyph, x: number, y: number): void;
+    draw_glyph_item(text: string | null, glyph_item: GlyphItem, x: number, y: number): void;
+    draw_glyphs(font: Font, glyphs: GlyphString, x: number, y: number): void;
+    draw_layout(layout: Layout, x: number, y: number): void;
+    draw_layout_line(line: LayoutLine, x: number, y: number): void;
+    draw_rectangle(part: RenderPart, x: number, y: number, width: number, height: number): void;
+    draw_trapezoid(part: RenderPart, y1_: number, x11: number, x21: number, y2: number, x12: number, x22: 
number): void;
+    get_alpha(part: RenderPart): number;
+    get_color(part: RenderPart): Color | null;
+    get_layout(): Layout | null;
+    get_layout_line(): LayoutLine | null;
+    get_matrix(): Matrix | null;
+    part_changed(part: RenderPart): void;
+    set_alpha(part: RenderPart, alpha: number): void;
+    set_color(part: RenderPart, color?: Color | null): void;
+    set_matrix(matrix?: Matrix | null): void;
+    vfunc_begin(): void;
+    vfunc_draw_error_underline(x: number, y: number, width: number, height: number): void;
+    vfunc_draw_glyph(font: Font, glyph: Glyph, x: number, y: number): void;
+    vfunc_draw_glyph_item(text: string | null, glyph_item: GlyphItem, x: number, y: number): void;
+    vfunc_draw_glyphs(font: Font, glyphs: GlyphString, x: number, y: number): void;
+    vfunc_draw_rectangle(part: RenderPart, x: number, y: number, width: number, height: number): void;
+    vfunc_draw_shape(attr: AttrShape, x: number, y: number): void;
+    vfunc_draw_trapezoid(
+        part: RenderPart,
+        y1_: number,
+        x11: number,
+        x21: number,
+        y2: number,
+        x12: number,
+        x22: number
+    ): void;
+    vfunc_end(): void;
+    vfunc_part_changed(part: RenderPart): void;
+    vfunc_prepare_run(run: LayoutRun): void;
+}
+
+export class Analysis {
+    static $gtype: GObject.GType<Analysis>;
+
+    constructor(copy: Analysis);
+
+    // Fields
+    shape_engine: any;
+    lang_engine: any;
+    font: Font;
+    level: number;
+    gravity: number;
+    flags: number;
+    script: number;
+    language: Language;
+    extra_attrs: any[];
+}
+
+export class AttrClass {
+    static $gtype: GObject.GType<AttrClass>;
+
+    constructor(copy: AttrClass);
+
+    // Fields
+    type: AttrType;
+}
+
+export class AttrColor {
+    static $gtype: GObject.GType<AttrColor>;
+
+    constructor(copy: AttrColor);
+
+    // Fields
+    attr: Attribute;
+    color: Color;
+}
+
+export class AttrFloat {
+    static $gtype: GObject.GType<AttrFloat>;
+
+    constructor(copy: AttrFloat);
+
+    // Fields
+    attr: Attribute;
+    value: number;
+}
+
+export class AttrFontDesc {
+    static $gtype: GObject.GType<AttrFontDesc>;
+
+    constructor(copy: AttrFontDesc);
+
+    // Fields
+    attr: Attribute;
+    desc: FontDescription;
+
+    // Members
+    static new(desc: FontDescription): Attribute;
+}
+
+export class AttrFontFeatures {
+    static $gtype: GObject.GType<AttrFontFeatures>;
+
+    constructor(copy: AttrFontFeatures);
+
+    // Fields
+    attr: Attribute;
+    features: string;
+
+    // Members
+    static new(features: string): Attribute;
+}
+
+export class AttrInt {
+    static $gtype: GObject.GType<AttrInt>;
+
+    constructor(copy: AttrInt);
+
+    // Fields
+    attr: Attribute;
+    value: number;
+}
+
+export class AttrIterator {
+    static $gtype: GObject.GType<AttrIterator>;
+
+    constructor(copy: AttrIterator);
+
+    // Members
+    copy(): AttrIterator;
+    destroy(): void;
+    get(type: AttrType): Attribute | null;
+    get_attrs(): Attribute[];
+    get_font(desc: FontDescription): [Language | null, Attribute[] | null];
+    next(): boolean;
+    range(): [number, number];
+}
+
+export class AttrLanguage {
+    static $gtype: GObject.GType<AttrLanguage>;
+
+    constructor(copy: AttrLanguage);
+
+    // Fields
+    attr: Attribute;
+    value: Language;
+
+    // Members
+    static new(language: Language): Attribute;
+}
+
+export class AttrList {
+    static $gtype: GObject.GType<AttrList>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: AttrList);
+
+    // Constructors
+    static ["new"](): AttrList;
+
+    // Members
+    change(attr: Attribute): void;
+    copy(): AttrList | null;
+    equal(other_list: AttrList): boolean;
+    filter(func: AttrFilterFunc): AttrList | null;
+    get_attributes(): Attribute[];
+    get_iterator(): AttrIterator;
+    insert(attr: Attribute): void;
+    insert_before(attr: Attribute): void;
+    ref(): AttrList;
+    splice(other: AttrList, pos: number, len: number): void;
+    to_string(): string;
+    unref(): void;
+    update(pos: number, remove: number, add: number): void;
+    static from_string(text: string): AttrList | null;
+}
+
+export class AttrShape {
+    static $gtype: GObject.GType<AttrShape>;
+
+    constructor(copy: AttrShape);
+
+    // Fields
+    attr: Attribute;
+    ink_rect: Rectangle;
+    logical_rect: Rectangle;
+    data: any;
+    copy_func: AttrDataCopyFunc;
+    destroy_func: GLib.DestroyNotify;
+
+    // Members
+    static new(ink_rect: Rectangle, logical_rect: Rectangle): Attribute;
+    static new_with_data(
+        ink_rect: Rectangle,
+        logical_rect: Rectangle,
+        data?: any | null,
+        copy_func?: AttrDataCopyFunc | null,
+        destroy_func?: GLib.DestroyNotify | null
+    ): Attribute;
+}
+
+export class AttrSize {
+    static $gtype: GObject.GType<AttrSize>;
+
+    constructor(copy: AttrSize);
+
+    // Fields
+    attr: Attribute;
+    size: number;
+    absolute: number;
+
+    // Members
+    static new(size: number): Attribute;
+    static new_absolute(size: number): Attribute;
+}
+
+export class AttrString {
+    static $gtype: GObject.GType<AttrString>;
+
+    constructor(copy: AttrString);
+
+    // Fields
+    attr: Attribute;
+    value: string;
+}
+
+export class Attribute {
+    static $gtype: GObject.GType<Attribute>;
+
+    constructor(copy: Attribute);
+
+    // Fields
+    klass: AttrClass;
+    start_index: number;
+    end_index: number;
+
+    // Members
+    as_color(): AttrColor | null;
+    as_float(): AttrFloat | null;
+    as_font_desc(): AttrFontDesc | null;
+    as_font_features(): AttrFontFeatures | null;
+    as_int(): AttrInt | null;
+    as_language(): AttrLanguage | null;
+    as_shape(): AttrShape | null;
+    as_size(): AttrSize | null;
+    as_string(): AttrString | null;
+    copy(): Attribute;
+    destroy(): void;
+    equal(attr2: Attribute): boolean;
+    init(klass: AttrClass): void;
+}
+
+export class Color {
+    static $gtype: GObject.GType<Color>;
+
+    constructor(
+        properties?: Partial<{
+            red?: number;
+            green?: number;
+            blue?: number;
+        }>
+    );
+    constructor(copy: Color);
+
+    // Fields
+    red: number;
+    green: number;
+    blue: number;
+
+    // Members
+    copy(): Color | null;
+    free(): void;
+    parse(spec: string): boolean;
+    parse_with_alpha(spec: string): [boolean, number];
+    to_string(): string;
+}
+
+export class FontDescription {
+    static $gtype: GObject.GType<FontDescription>;
+
+    constructor();
+    constructor(properties?: Partial<{}>);
+    constructor(copy: FontDescription);
+
+    // Constructors
+    static ["new"](): FontDescription;
+
+    // Members
+    better_match(old_match: FontDescription | null, new_match: FontDescription): boolean;
+    copy(): FontDescription | null;
+    copy_static(): FontDescription | null;
+    equal(desc2: FontDescription): boolean;
+    free(): void;
+    get_family(): string | null;
+    get_gravity(): Gravity;
+    get_set_fields(): FontMask;
+    get_size(): number;
+    get_size_is_absolute(): boolean;
+    get_stretch(): Stretch;
+    get_style(): Style;
+    get_variant(): Variant;
+    get_variations(): string | null;
+    get_weight(): Weight;
+    hash(): number;
+    merge(desc_to_merge: FontDescription | null, replace_existing: boolean): void;
+    merge_static(desc_to_merge: FontDescription, replace_existing: boolean): void;
+    set_absolute_size(size: number): void;
+    set_family(family: string): void;
+    set_family_static(family: string): void;
+    set_gravity(gravity: Gravity): void;
+    set_size(size: number): void;
+    set_stretch(stretch: Stretch): void;
+    set_style(style: Style): void;
+    set_variant(variant: Variant): void;
+    set_variations(variations?: string | null): void;
+    set_variations_static(variations: string): void;
+    set_weight(weight: Weight): void;
+    to_filename(): string;
+    to_string(): string;
+    unset_fields(to_unset: FontMask): void;
+    static from_string(str: string): FontDescription;
+}
+
+export class FontMetrics {
+    static $gtype: GObject.GType<FontMetrics>;
+
+    constructor(copy: FontMetrics);
+
+    // Members
+    get_approximate_char_width(): number;
+    get_approximate_digit_width(): number;
+    get_ascent(): number;
+    get_descent(): number;
+    get_height(): number;
+    get_strikethrough_position(): number;
+    get_strikethrough_thickness(): number;
+    get_underline_position(): number;
+    get_underline_thickness(): number;
+    ref(): FontMetrics | null;
+    unref(): void;
+}
+
+export class GlyphGeometry {
+    static $gtype: GObject.GType<GlyphGeometry>;
+
+    constructor(copy: GlyphGeometry);
+
+    // Fields
+    width: GlyphUnit;
+    x_offset: GlyphUnit;
+    y_offset: GlyphUnit;
+}
+
+export class GlyphInfo {
+    static $gtype: GObject.GType<GlyphInfo>;
+
+    constructor(copy: GlyphInfo);
+
+    // Fields
+    glyph: Glyph;
+    geometry: GlyphGeometry;
+    attr: GlyphVisAttr;
+}
+
+export class GlyphItem {
+    static $gtype: GObject.GType<GlyphItem>;
+
+    constructor(copy: GlyphItem);
+
+    // Fields
+    item: Item;
+    glyphs: GlyphString;
+    y_offset: number;
+    start_x_offset: number;
+    end_x_offset: number;
+
+    // Members
+    apply_attrs(text: string, list: AttrList): GlyphItem[];
+    copy(): GlyphItem | null;
+    free(): void;
+    get_logical_widths(text: string, logical_widths: number[]): void;
+    letter_space(text: string, log_attrs: LogAttr[], letter_spacing: number): void;
+    split(text: string, split_index: number): GlyphItem;
+}
+
+export class GlyphItemIter {
+    static $gtype: GObject.GType<GlyphItemIter>;
+
+    constructor(copy: GlyphItemIter);
+
+    // Fields
+    glyph_item: GlyphItem;
+    text: string;
+    start_glyph: number;
+    start_index: number;
+    start_char: number;
+    end_glyph: number;
+    end_index: number;
+    end_char: number;
+
+    // Members
+    copy(): GlyphItemIter | null;
+    free(): void;
+    init_end(glyph_item: GlyphItem, text: string): boolean;
+    init_start(glyph_item: GlyphItem, text: string): boolean;
+    next_cluster(): boolean;
+    prev_cluster(): boolean;
+}
+
+export class GlyphString {
+    static $gtype: GObject.GType<GlyphString>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            num_glyphs?: number;
+            glyphs?: GlyphInfo[];
+            log_clusters?: number;
+        }>
+    );
+    constructor(copy: GlyphString);
+
+    // Fields
+    num_glyphs: number;
+    glyphs: GlyphInfo[];
+    log_clusters: number;
+
+    // Constructors
+    static ["new"](): GlyphString;
+
+    // Members
+    copy(): GlyphString | null;
+    extents(font: Font): [Rectangle | null, Rectangle | null];
+    extents_range(start: number, end: number, font: Font): [Rectangle | null, Rectangle | null];
+    free(): void;
+    get_logical_widths(text: string, length: number, embedding_level: number, logical_widths: number[]): 
void;
+    get_width(): number;
+    index_to_x(text: string, length: number, analysis: Analysis, index_: number, trailing: boolean): number;
+    index_to_x_full(
+        text: string,
+        length: number,
+        analysis: Analysis,
+        attrs: LogAttr | null,
+        index_: number,
+        trailing: boolean
+    ): number;
+    set_size(new_len: number): void;
+    x_to_index(text: string, length: number, analysis: Analysis, x_pos: number): [number, number];
+}
+
+export class GlyphVisAttr {
+    static $gtype: GObject.GType<GlyphVisAttr>;
+
+    constructor(
+        properties?: Partial<{
+            is_cluster_start?: number;
+            is_color?: number;
+        }>
+    );
+    constructor(copy: GlyphVisAttr);
+
+    // Fields
+    is_cluster_start: number;
+    is_color: number;
+}
+
+export class Item {
+    static $gtype: GObject.GType<Item>;
+
+    constructor();
+    constructor(
+        properties?: Partial<{
+            offset?: number;
+            length?: number;
+            num_chars?: number;
+            analysis?: Analysis;
+        }>
+    );
+    constructor(copy: Item);
+
+    // Fields
+    offset: number;
+    length: number;
+    num_chars: number;
+    analysis: Analysis;
+
+    // Constructors
+    static ["new"](): Item;
+
+    // Members
+    apply_attrs(iter: AttrIterator): void;
+    copy(): Item | null;
+    free(): void;
+    split(split_index: number, split_offset: number): Item;
+}
+
+export class Language {
+    static $gtype: GObject.GType<Language>;
+
+    constructor(copy: Language);
+
+    // Members
+    get_sample_string(): string;
+    get_scripts(): Script[] | null;
+    includes_script(script: Script): boolean;
+    matches(range_list: string): boolean;
+    to_string(): string;
+    static from_string(language?: string | null): Language | null;
+    static get_default(): Language;
+    static get_preferred(): Language | null;
+}
+
+export class LayoutIter {
+    static $gtype: GObject.GType<LayoutIter>;
+
+    constructor(copy: LayoutIter);
+
+    // Members
+    at_last_line(): boolean;
+    copy(): LayoutIter | null;
+    free(): void;
+    get_baseline(): number;
+    get_char_extents(): Rectangle;
+    get_cluster_extents(): [Rectangle | null, Rectangle | null];
+    get_index(): number;
+    get_layout(): Layout;
+    get_layout_extents(): [Rectangle | null, Rectangle | null];
+    get_line(): LayoutLine;
+    get_line_extents(): [Rectangle | null, Rectangle | null];
+    get_line_readonly(): LayoutLine;
+    get_line_yrange(): [number, number];
+    get_run(): LayoutRun | null;
+    get_run_baseline(): number;
+    get_run_extents(): [Rectangle | null, Rectangle | null];
+    get_run_readonly(): LayoutRun | null;
+    next_char(): boolean;
+    next_cluster(): boolean;
+    next_line(): boolean;
+    next_run(): boolean;
+}
+
+export class LayoutLine {
+    static $gtype: GObject.GType<LayoutLine>;
+
+    constructor(copy: LayoutLine);
+
+    // Fields
+    layout: Layout;
+    start_index: number;
+    length: number;
+    runs: LayoutRun[];
+    resolved_dir: number;
+
+    // Members
+    get_extents(): [Rectangle | null, Rectangle | null];
+    get_height(): number;
+    get_length(): number;
+    get_pixel_extents(): [Rectangle | null, Rectangle | null];
+    get_resolved_direction(): Direction;
+    get_start_index(): number;
+    get_x_ranges(start_index: number, end_index: number): number[];
+    index_to_x(index_: number, trailing: boolean): number;
+    is_paragraph_start(): boolean;
+    ref(): LayoutLine;
+    unref(): void;
+    x_to_index(x_pos: number): [boolean, number, number];
+}
+
+export class LogAttr {
+    static $gtype: GObject.GType<LogAttr>;
+
+    constructor(
+        properties?: Partial<{
+            is_line_break?: number;
+            is_mandatory_break?: number;
+            is_char_break?: number;
+            is_white?: number;
+            is_cursor_position?: number;
+            is_word_start?: number;
+            is_word_end?: number;
+            is_sentence_boundary?: number;
+            is_sentence_start?: number;
+            is_sentence_end?: number;
+            backspace_deletes_character?: number;
+            is_expandable_space?: number;
+            is_word_boundary?: number;
+            break_inserts_hyphen?: number;
+            break_removes_preceding?: number;
+            reserved?: number;
+        }>
+    );
+    constructor(copy: LogAttr);
+
+    // Fields
+    is_line_break: number;
+    is_mandatory_break: number;
+    is_char_break: number;
+    is_white: number;
+    is_cursor_position: number;
+    is_word_start: number;
+    is_word_end: number;
+    is_sentence_boundary: number;
+    is_sentence_start: number;
+    is_sentence_end: number;
+    backspace_deletes_character: number;
+    is_expandable_space: number;
+    is_word_boundary: number;
+    break_inserts_hyphen: number;
+    break_removes_preceding: number;
+    reserved: number;
+}
+
+export class Matrix {
+    static $gtype: GObject.GType<Matrix>;
+
+    constructor(
+        properties?: Partial<{
+            xx?: number;
+            xy?: number;
+            yx?: number;
+            yy?: number;
+            x0?: number;
+            y0?: number;
+        }>
+    );
+    constructor(copy: Matrix);
+
+    // Fields
+    xx: number;
+    xy: number;
+    yx: number;
+    yy: number;
+    x0: number;
+    y0: number;
+
+    // Members
+    concat(new_matrix: Matrix): void;
+    copy(): Matrix | null;
+    free(): void;
+    get_font_scale_factor(): number;
+    get_font_scale_factors(): [number, number];
+    get_slant_ratio(): number;
+    rotate(degrees: number): void;
+    scale(scale_x: number, scale_y: number): void;
+    transform_distance(dx: number, dy: number): [number, number];
+    transform_pixel_rectangle(rect?: Rectangle): Rectangle;
+    transform_point(x: number, y: number): [number, number];
+    transform_rectangle(rect?: Rectangle): Rectangle;
+    translate(tx: number, ty: number): void;
+}
+
+export class Rectangle {
+    static $gtype: GObject.GType<Rectangle>;
+
+    constructor(
+        properties?: Partial<{
+            x?: number;
+            y?: number;
+            width?: number;
+            height?: number;
+        }>
+    );
+    constructor(copy: Rectangle);
+
+    // Fields
+    x: number;
+    y: number;
+    width: number;
+    height: number;
+}
+
+export class RendererPrivate {
+    static $gtype: GObject.GType<RendererPrivate>;
+
+    constructor(copy: RendererPrivate);
+}
+
+export class ScriptIter {
+    static $gtype: GObject.GType<ScriptIter>;
+
+    constructor(text: string, length: number);
+    constructor(copy: ScriptIter);
+
+    // Constructors
+    static ["new"](text: string, length: number): ScriptIter;
+
+    // Members
+    free(): void;
+    get_range(): [string, string, Script | null];
+    next(): boolean;
+}
+
+export class TabArray {
+    static $gtype: GObject.GType<TabArray>;
+
+    constructor(initial_size: number, positions_in_pixels: boolean);
+    constructor(copy: TabArray);
+
+    // Constructors
+    static ["new"](initial_size: number, positions_in_pixels: boolean): TabArray;
+
+    // Members
+    copy(): TabArray;
+    free(): void;
+    get_decimal_point(tab_index: number): number;
+    get_positions_in_pixels(): boolean;
+    get_size(): number;
+    get_tab(tab_index: number): [TabAlign | null, number];
+    get_tabs(): [TabAlign | null, number[] | null];
+    resize(new_size: number): void;
+    set_decimal_point(tab_index: number, decimal_point: number): void;
+    set_positions_in_pixels(positions_in_pixels: boolean): void;
+    set_tab(tab_index: number, alignment: TabAlign, location: number): void;
+    sort(): void;
+    to_string(): string;
+    static from_string(text: string): TabArray | null;
+}
+export type Glyph = number;
+export type GlyphUnit = number;
+export type LayoutRun = GlyphItem;
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..fb57ccd
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,4 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]