File adapt-to-new-ecal.patch of Package pantheon-mail

diff -rubN mail-8.0.0/meson.build mail-8.0.0-patched/meson.build
--- mail-8.0.0/meson.build	2024-05-29 20:44:58.000000000 +0200
+++ mail-8.0.0-patched/meson.build	2025-10-02 01:32:56.105521682 +0200
@@ -15,7 +15,12 @@
 granite_dep = dependency('granite', version: '>= 6.0.0')
 gee_dep = dependency('gee-0.8')
 handy_dep = dependency('libhandy-1', version: '>=1.1.90')
-camel_dep = dependency('camel-1.2', version: '>= 3.28')
+camel_dep = dependency('camel-1.2', version: '>= 3.57.1', required: false)
+if camel_dep.found()
+    add_project_arguments('--define=HAS_CAMEL_3_57', language: 'vala')
+else
+    camel_dep = dependency('camel-1.2', version: '>= 3.28')
+endif
 libedataserver_dep = dependency('libedataserver-1.2', version: '>= 3.28')
 libedataserverui_dep = dependency('libedataserverui-1.2', version: '>= 3.28')
 if libedataserverui_dep.version().version_compare('>=3.45.1')
diff -rubN mail-8.0.0/meson.build.orig mail-8.0.0-patched/meson.build.orig
--- mail-8.0.0/meson.build.orig	1970-01-01 01:00:00.000000000 +0100
+++ mail-8.0.0-patched/meson.build.orig	2025-10-02 01:32:47.242006006 +0200
@@ -0,0 +1,90 @@
+project(
+    'io.elementary.mail',
+    'vala', 'c',
+    version: '8.0.0',
+    meson_version: '>=0.58.0'
+)
+
+gnome = import('gnome')
+i18n = import('i18n')
+
+add_project_arguments(['--vapidir', join_paths(meson.current_source_dir(), 'vapi')], language: 'vala')
+
+glib_dep = dependency('glib-2.0')
+gobject_dep = dependency('gobject-2.0')
+granite_dep = dependency('granite', version: '>= 6.0.0')
+gee_dep = dependency('gee-0.8')
+handy_dep = dependency('libhandy-1', version: '>=1.1.90')
+camel_dep = dependency('camel-1.2', version: '>= 3.28')
+libedataserver_dep = dependency('libedataserver-1.2', version: '>= 3.28')
+libedataserverui_dep = dependency('libedataserverui-1.2', version: '>= 3.28')
+if libedataserverui_dep.version().version_compare('>=3.45.1')
+    add_project_arguments('--define=HAS_SOUP_3', language: 'vala')
+    webkit2_dep = dependency('webkit2gtk-4.1')
+    webkit2_web_extension_dep = dependency('webkit2gtk-web-extension-4.1')
+else
+    webkit2_dep = dependency('webkit2gtk-4.0', version: '>=2.28')
+    webkit2_web_extension_dep = dependency('webkit2gtk-web-extension-4.0', version: '>=2.28')
+endif
+libportal_dep = dependency('libportal')
+libportal_gtk_dep = dependency('libportal-gtk3')
+folks_dep = dependency('folks')
+m_dep = meson.get_compiler('c').find_library('m')
+
+webkit2_extension_path = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name(), 'webkit2')
+
+dependencies = [
+    glib_dep,
+    gobject_dep,
+    granite_dep,
+    gee_dep,
+    handy_dep,
+    camel_dep,
+    libedataserver_dep,
+    libedataserverui_dep,
+    libportal_dep,
+    libportal_gtk_dep,
+    webkit2_dep,
+    folks_dep,
+    m_dep
+]
+
+asresources = gnome.compile_resources(
+    'as-resources', 'data/' + meson.project_name() + '.gresource.xml',
+    source_dir: 'data',
+    c_name: 'as'
+)
+
+extension_dependencies = [
+    glib_dep,
+    gobject_dep,
+    gee_dep,
+    webkit2_web_extension_dep
+]
+
+add_global_arguments([
+        '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()),
+        '-DHANDY_USE_UNSTABLE_API'
+    ],
+    language:'c'
+)
+
+gnome.post_install(glib_compile_schemas: true)
+
+config_data = configuration_data()
+config_data.set('GETTEXT_PACKAGE', meson.project_name())
+config_data.set('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
+
+config_file = configure_file(
+    input: 'Config.vala.in',
+    output: '@BASENAME@',
+    configuration: config_data
+)
+
+subdir('src')
+subdir('webkit-extension')
+subdir('data')
+subdir('po')
+if get_option('documentation')
+    subdir('docs')
+endif
diff -rubN mail-8.0.0/src/Backend/MoveOperation.vala mail-8.0.0-patched/src/Backend/MoveOperation.vala
--- mail-8.0.0/src/Backend/MoveOperation.vala	2024-05-29 20:44:58.000000000 +0200
+++ mail-8.0.0-patched/src/Backend/MoveOperation.vala	2025-10-02 01:32:56.105663963 +0200
@@ -189,10 +189,16 @@
             var vee_folder = (Camel.VeeFolder)src_folder;
 
             store = null;
+#if !HAS_CAMEL_3_57
             unowned Camel.Folder? orig_folder = null;
+#endif
 
             foreach (unowned Camel.MessageInfo message in moved_messages) {
+#if HAS_CAMEL_3_57
+                Camel.Folder? orig_folder = vee_folder.dup_vee_uid_folder (message.uid);
+#else
                 orig_folder = vee_folder.get_vee_uid_folder (message.uid);
+#endif
                 if (orig_folder != null) {
                     if (store != null && orig_folder.get_parent_store () != store) {
                         // Don't know which archive folder to use when messages are from
@@ -214,11 +220,20 @@
     }
 
     private async void collect_thread_messages (Camel.FolderThreadNode thread) {
+#if HAS_CAMEL_3_57
+        moved_messages.add ((Camel.MessageInfo?) thread.get_item ());
+        unowned Camel.FolderThreadNode? child = (Camel.FolderThreadNode?) thread.get_child ();
+#else
         moved_messages.add (thread.message);
         unowned Camel.FolderThreadNode? child = (Camel.FolderThreadNode?) thread.child;
+#endif
         while (child != null) {
             yield collect_thread_messages (child);
+#if HAS_CAMEL_3_57
+            child = (Camel.FolderThreadNode?) child.get_next ();
+#else
             child = (Camel.FolderThreadNode?) child.next;
+#endif
         }
     }
 
diff -rubN mail-8.0.0/src/ConversationList/ConversationItemModel.vala mail-8.0.0-patched/src/ConversationList/ConversationItemModel.vala
--- mail-8.0.0/src/ConversationList/ConversationItemModel.vala	2024-05-29 20:44:58.000000000 +0200
+++ mail-8.0.0-patched/src/ConversationList/ConversationItemModel.vala	2025-10-02 01:32:56.105845783 +0200
@@ -46,7 +46,11 @@
 
             unowned Camel.FolderThreadNode? current_node = node;
             while (current_node != null) {
+#if HAS_CAMEL_3_57
+                weak Camel.MessageInfo? message = (Camel.MessageInfo?) current_node.get_item ();
+#else
                 weak Camel.MessageInfo? message = current_node.message;
+#endif
                 if (message != null) {
                     var address = new Camel.InternetAddress ();
                     if (address.decode (message.from) > 0) {
@@ -67,7 +71,11 @@
                     }
                 }
 
+#if HAS_CAMEL_3_57
+                current_node = (Camel.FolderThreadNode?) current_node.get_child ();
+#else
                 current_node = (Camel.FolderThreadNode?) current_node.child;
+#endif
             }
 
             if (senders.length > 0) {
@@ -84,7 +92,11 @@
 
             unowned Camel.FolderThreadNode? current_node = node;
             while (current_node != null) {
+#if HAS_CAMEL_3_57
+                weak Camel.MessageInfo? message = (Camel.MessageInfo?) current_node.get_item ();
+#else
                 weak Camel.MessageInfo? message = current_node.message;
+#endif
                 if (message != null) {
                     var address = new Camel.InternetAddress ();
                     if (address.decode (message.to) > 0) {
@@ -105,7 +117,11 @@
                     }
                 }
 
+#if HAS_CAMEL_3_57
+                current_node = (Camel.FolderThreadNode?) current_node.get_child ();
+#else
                 current_node = (Camel.FolderThreadNode?) current_node.child;
+#endif
             }
 
             if (recipients.length > 0) {
@@ -118,7 +134,11 @@
 
     public string subject {
         get {
+#if HAS_CAMEL_3_57
+            weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
             weak Camel.MessageInfo? message = node.message;
+#endif
             if (message == null) {
                 return _("Unknown");
             }
@@ -129,7 +149,11 @@
 
     public bool flagged {
         get {
+#if HAS_CAMEL_3_57
+            weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
             weak Camel.MessageInfo? message = node.message;
+#endif
             if (message == null) {
                 return false;
             }
@@ -140,7 +164,11 @@
 
     public bool forwarded {
         get {
+#if HAS_CAMEL_3_57
+            weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
             weak Camel.MessageInfo? message = node.message;
+#endif
             if (message == null) {
                 return false;
             }
@@ -151,7 +179,11 @@
 
     public bool replied {
         get {
+#if HAS_CAMEL_3_57
+            weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
             weak Camel.MessageInfo? message = node.message;
+#endif
             if (message == null) {
                 return false;
             }
@@ -162,7 +194,11 @@
 
     public bool replied_all {
         get {
+#if HAS_CAMEL_3_57
+            weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
             weak Camel.MessageInfo? message = node.message;
+#endif
             if (message == null) {
                 return false;
             }
@@ -179,7 +215,11 @@
 
     public bool deleted {
         get {
+#if HAS_CAMEL_3_57
+            weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
             weak Camel.MessageInfo? message = node.message;
+#endif
             if (message == null) {
                 return false;
             }
@@ -204,7 +244,11 @@
 
     private static uint count_thread_messages (Camel.FolderThreadNode node) {
         uint i = 1;
+#if HAS_CAMEL_3_57
+        for (unowned Camel.FolderThreadNode? child = node.get_child (); child != null; child = child.get_next ()) {
+#else
         for (unowned Camel.FolderThreadNode? child = node.child; child != null; child = child.next) {
+#endif
             i += count_thread_messages (child);
         }
 
@@ -217,13 +261,21 @@
             return time;
         }
 
+#if HAS_CAMEL_3_57
+        weak Camel.MessageInfo? message = (Camel.MessageInfo?) node.get_item ();
+#else
         weak Camel.MessageInfo? message = node.message;
+#endif
         if (message != null) {
             time = int64.max (time, message.date_received);
             time = int64.max (time, message.date_sent);
         }
 
+#if HAS_CAMEL_3_57
+        for (unowned Camel.FolderThreadNode? child = node.get_child (); child != null; child = child.get_next ()) {
+#else
         for (unowned Camel.FolderThreadNode? child = node.child; child != null; child = child.next) {
+#endif
             time = get_newest_timestamp (child, time);
         }
 
@@ -235,10 +287,18 @@
             return false;
         }
 
+#if HAS_CAMEL_3_57
+        var has_flag = !(flag in (int)((Camel.MessageInfo?) node.get_item ()).flags);
+#else
         var has_flag = !(flag in (int)node.message.flags);
+#endif
 
         if (!has_flag) {
+#if HAS_CAMEL_3_57
+            for (unowned Camel.FolderThreadNode? child = node.get_child (); child != null; child = child.get_next ()) {
+#else
             for (unowned Camel.FolderThreadNode? child = node.child; child != null; child = child.next) {
+#endif
                 has_flag = has_thread_flag (child, flag);
                 if (has_flag) {
                     break;
diff -rubN mail-8.0.0/src/ConversationList/ConversationList.vala mail-8.0.0-patched/src/ConversationList/ConversationList.vala
--- mail-8.0.0/src/ConversationList/ConversationList.vala	2024-05-29 20:44:58.000000000 +0200
+++ mail-8.0.0-patched/src/ConversationList/ConversationList.vala	2025-10-02 01:32:56.106269756 +0200
@@ -213,11 +213,19 @@
             return;
         }
 
+#if HAS_CAMEL_3_57
+        if (!(flag in (int)((Camel.MessageInfo?) node.get_item ()).flags)) {
+            ((Camel.MessageInfo?) node.get_item ()).set_flags (flag, ~0);
+        }
+
+        for (unowned Camel.FolderThreadNode? child = node.get_child (); child != null; child = child.get_next ()) {
+#else
         if (!(flag in (int)node.message.flags)) {
             node.message.set_flags (flag, ~0);
         }
 
         for (unowned Camel.FolderThreadNode? child = node.child; child != null; child = child.next) {
+#endif
             set_thread_flag (child, flag);
         }
     }
@@ -269,17 +277,29 @@
 
                                 var search_result_uids = get_search_result_uids (current_account.service.uid);
                                 if (search_result_uids != null) {
+#if HAS_CAMEL_3_57
+                                    var thread = new Camel.FolderThread (folder, (GLib.GenericArray<string>?) search_result_uids, Camel.FolderThreadFlags.NONE);
+#else
                                     var thread = new Camel.FolderThread (folder, search_result_uids, false);
+#endif
                                     threads[current_account.service.uid] = thread;
 
+#if HAS_CAMEL_3_57
+                                    weak Camel.FolderThreadNode? child = thread.get_tree ();
+#else
                                     weak Camel.FolderThreadNode? child = thread.tree;
+#endif
                                     while (child != null) {
                                         if (cancellable.is_cancelled ()) {
                                             break;
                                         }
 
                                         add_conversation_item (folder_info_flags[current_account.service.uid], child, thread, current_account.service.uid);
+#if HAS_CAMEL_3_57
+                                        child = child.get_next ();
+#else
                                         child = child.next;
+#endif
                                     }
                                 }
                             } catch (Error e) {
@@ -326,7 +346,11 @@
                     return;
                 }
 
+#if HAS_CAMEL_3_57
+                threads[service_uid] = new Camel.FolderThread (folders[service_uid], (GLib.GenericArray<string>?) search_result_uids, Camel.FolderThreadFlags.NONE);
+#else
                 threads[service_uid] = new Camel.FolderThread (folders[service_uid], search_result_uids, false);
+#endif
 
                 var removed = 0;
                 change_info.get_removed_uids ().foreach ((uid) => {
@@ -338,25 +362,41 @@
                     }
                 });
 
+#if HAS_CAMEL_3_57
+                unowned Camel.FolderThreadNode? child = threads[service_uid].get_tree ();
+#else
                 unowned Camel.FolderThreadNode? child = threads[service_uid].tree;
+#endif
                 while (child != null) {
                     if (cancellable.is_cancelled ()) {
                         return;
                     }
 
+#if HAS_CAMEL_3_57
+                    var item = conversations[((Camel.MessageInfo?) child.get_item ()).uid];
+#else
                     var item = conversations[child.message.uid];
+#endif
                     if (item == null) {
                         add_conversation_item (folder_info_flags[service_uid], child, threads[service_uid], service_uid);
                     } else {
                         if (item.is_older_than (child)) {
+#if HAS_CAMEL_3_57
+                            conversations.unset (((Camel.MessageInfo?) child.get_item ()).uid);
+#else
                             conversations.unset (child.message.uid);
+#endif
                             list_store.remove (item);
                             removed++;
                             add_conversation_item (folder_info_flags[service_uid], child, threads[service_uid], service_uid);
                         };
                     }
 
+#if HAS_CAMEL_3_57
+                    child = child.get_next ();
+#else
                     child = child.next;
+#endif
                 }
 
                 list_store.items_changed (0, removed, list_store.get_n_items ());
@@ -364,7 +404,11 @@
         }
     }
 
+#if HAS_CAMEL_3_57
+    private GenericArray<weak string>? get_search_result_uids (string service_uid) {
+#else
     private GenericArray<string>? get_search_result_uids (string service_uid) {
+#endif
         var style_context = filter_button.get_style_context ();
         if (hide_read_switch.active || hide_unstarred_switch.active) {
             if (!style_context.has_class (Granite.STYLE_CLASS_ACCENT)) {
@@ -381,7 +425,11 @@
 
             var has_current_search_query = search_entry.text.strip () != "";
             if (!has_current_search_query && !hide_read_switch.active && !hide_unstarred_switch.active) {
+#if HAS_CAMEL_3_57
+                return folders[service_uid].dup_uids ();
+#else
                 return folders[service_uid].get_uids ();
+#endif
             }
 
             string[] current_search_expressions = {};
@@ -406,20 +454,34 @@
             string search_query = "(match-all (and " + string.joinv ("", current_search_expressions) + "))";
 
             try {
+#if HAS_CAMEL_3_57
+                GenericArray<weak string>? uids = null;
+                folders[service_uid].search_sync (search_query, out uids, cancellable);
+                return uids;
+#else
                 return folders[service_uid].search_by_expression (search_query, cancellable);
+#endif
             } catch (Error e) {
                 if (!(e is GLib.IOError.CANCELLED)) {
                     warning ("Error while searching: %s", e.message);
                 }
 
+#if HAS_CAMEL_3_57
+                return folders[service_uid].dup_uids ();
+#else
                 return folders[service_uid].get_uids ();
+#endif
             }
         }
     }
 
     private void add_conversation_item (Camel.FolderInfoFlags folder_info_flags, Camel.FolderThreadNode child, Camel.FolderThread thread, string service_uid) {
         var item = new ConversationItemModel (folder_info_flags, child, thread, service_uid);
+#if HAS_CAMEL_3_57
+        conversations[((Camel.MessageInfo?) child.get_item ()).uid] = item;
+#else
         conversations[child.message.uid] = item;
+#endif
         list_store.add (item);
     }
 
@@ -439,28 +501,44 @@
     public void mark_read_selected_messages () {
         var selected_rows = list_box.get_selected_rows ();
         foreach (var row in selected_rows) {
+#if HAS_CAMEL_3_57
+            ((Camel.MessageInfo?) (((ConversationItemModel)row).node).get_item ()).set_flags (Camel.MessageFlags.SEEN, ~0);
+#else
             (((ConversationItemModel)row).node).message.set_flags (Camel.MessageFlags.SEEN, ~0);
+#endif
         }
     }
 
     public void mark_star_selected_messages () {
         var selected_rows = list_box.get_selected_rows ();
         foreach (var row in selected_rows) {
+#if HAS_CAMEL_3_57
+            ((Camel.MessageInfo?) (((ConversationItemModel)row).node).get_item ()).set_flags (Camel.MessageFlags.FLAGGED, ~0);
+#else
             (((ConversationItemModel)row).node).message.set_flags (Camel.MessageFlags.FLAGGED, ~0);
+#endif
         }
     }
 
     public void mark_unread_selected_messages () {
         var selected_rows = list_box.get_selected_rows ();
         foreach (var row in selected_rows) {
+#if HAS_CAMEL_3_57
+            ((Camel.MessageInfo?) (((ConversationItemModel)row).node).get_item ()).set_flags (Camel.MessageFlags.SEEN, 0);
+#else
             (((ConversationItemModel)row).node).message.set_flags (Camel.MessageFlags.SEEN, 0);
+#endif
         }
     }
 
     public void mark_unstar_selected_messages () {
         var selected_rows = list_box.get_selected_rows ();
         foreach (var row in selected_rows) {
+#if HAS_CAMEL_3_57
+            ((Camel.MessageInfo?) (((ConversationItemModel)row).node).get_item ()).set_flags (Camel.MessageFlags.FLAGGED, 0);
+#else
             (((ConversationItemModel)row).node).message.set_flags (Camel.MessageFlags.FLAGGED, 0);
+#endif
         }
     }
 
diff -rubN mail-8.0.0/src/MessageList/MessageList.vala mail-8.0.0-patched/src/MessageList/MessageList.vala
--- mail-8.0.0/src/MessageList/MessageList.vala	2024-05-29 20:44:58.000000000 +0200
+++ mail-8.0.0-patched/src/MessageList/MessageList.vala	2025-10-02 01:32:56.106658738 +0200
@@ -179,14 +179,28 @@
          */
         can_move_thread (true);
 
+#if HAS_CAMEL_3_57
+        var store = ((Camel.MessageInfo?) node.get_item ()).summary.folder.parent_store;
+#else
         var store = node.message.summary.folder.parent_store;
+#endif
         folder_popover.set_store (store);
 
+#if HAS_CAMEL_3_57
+        var item = new MessageListItem ((Camel.MessageInfo?) node.get_item ());
+#else
         var item = new MessageListItem (node.message);
+#endif
         list_box.add (item);
+#if HAS_CAMEL_3_57
+        messages.set (((Camel.MessageInfo?) node.get_item ()).uid, item);
+        if (node.get_child () != null) {
+            go_down ((Camel.FolderThreadNode?) node.get_child ());
+#else
         messages.set (node.message.uid, item);
         if (node.child != null) {
             go_down ((Camel.FolderThreadNode?) node.child);
+#endif
         }
 
         var children = list_box.get_children ();
@@ -203,7 +217,11 @@
             }
         }
 
+#if HAS_CAMEL_3_57
+        if (node.get_item () != null && Camel.MessageFlags.DRAFT in (int) ((Camel.MessageInfo?) node.get_item ()).flags) {
+#else
         if (node.message != null && Camel.MessageFlags.DRAFT in (int) node.message.flags) {
+#endif
             compose.begin (Composer.Type.DRAFT, "");
         }
     }
@@ -211,14 +229,28 @@
     private void go_down (Camel.FolderThreadNode node) {
         unowned Camel.FolderThreadNode? current_node = node;
         while (current_node != null) {
+#if HAS_CAMEL_3_57
+            var item = new MessageListItem ((Camel.MessageInfo?) current_node.get_item ());
+#else
             var item = new MessageListItem (current_node.message);
+#endif
             list_box.add (item);
+#if HAS_CAMEL_3_57
+            messages.set (((Camel.MessageInfo?) current_node.get_item ()).uid, item);
+            if (current_node.get_next () != null) {
+                go_down ((Camel.FolderThreadNode?) current_node.get_next ());
+#else
             messages.set (current_node.message.uid, item);
             if (current_node.next != null) {
                 go_down ((Camel.FolderThreadNode?) current_node.next);
+#endif
             }
 
+#if HAS_CAMEL_3_57
+            current_node = (Camel.FolderThreadNode?) current_node.get_child ();
+#else
             current_node = (Camel.FolderThreadNode?) current_node.child;
+#endif
         }
     }
 
diff -rubN mail-8.0.0/vapi/camel-1.2.vapi mail-8.0.0-patched/vapi/camel-1.2.vapi
--- mail-8.0.0/vapi/camel-1.2.vapi	2024-05-29 20:44:58.000000000 +0200
+++ mail-8.0.0-patched/vapi/camel-1.2.vapi	2025-10-02 01:32:56.107320253 +0200
@@ -95,17 +95,32 @@
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_cipher_context_get_type ()")]
 	public class CipherContext : GLib.Object {
 		[CCode (has_construct_function = false)]
+#if HAS_CAMEL_3_57
+		public CipherContext (Camel.Session? session);
+#else
 		public CipherContext (Camel.Session session);
+#endif
 		[Version (since = "3.0")]
 		public async Camel.CipherValidity decrypt (Camel.MimePart ipart, Camel.MimePart opart, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual Camel.CipherValidity decrypt_sync (Camel.MimePart ipart, Camel.MimePart opart, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
+#if HAS_CAMEL_3_57
+		public async bool encrypt (string? userid, GLib.GenericArray<string> recipients, Camel.MimePart ipart, Camel.MimePart opart, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.0")]
+		public virtual bool encrypt_sync (string? userid, GLib.GenericArray<string> recipients, Camel.MimePart ipart, Camel.MimePart opart, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public static GLib.Quark error_quark ();
+#else
 		public async bool encrypt (string userid, GLib.GenericArray<string> recipients, Camel.MimePart ipart, Camel.MimePart opart, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual bool encrypt_sync (string userid, GLib.GenericArray<string> recipients, Camel.MimePart ipart, Camel.MimePart opart, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[Version (since = "2.32")]
+#if HAS_CAMEL_3_57
+		public unowned Camel.Session? get_session ();
+#else
 		public unowned Camel.Session get_session ();
+#endif
 		public virtual unowned string hash_to_id (Camel.CipherHash hash);
 		public virtual Camel.CipherHash id_to_hash (string id);
 		[Version (since = "3.0")]
@@ -125,18 +140,30 @@
 		public CipherValidity ();
 		public int add_certinfo (Camel.CipherValidityMode mode, string name, string email);
 		[Version (since = "2.30")]
+#if HAS_CAMEL_3_57
+		public int add_certinfo_ex (Camel.CipherValidityMode mode, string name, string email, void* cert_data, GLib.DestroyNotify? cert_data_free, Camel.CipherCloneFunc? cert_data_clone);
+#else
 		public int add_certinfo_ex (Camel.CipherValidityMode mode, string name, string email, [CCode (destroy_notify_pos = 4.5)] owned void* cert_data, Camel.CipherCloneFunc? cert_data_clone);
+#endif
 		public void clear ();
 		public Camel.CipherValidity clone ();
 		public void envelope (Camel.CipherValidity valid);
 		public void free ();
 		[Version (since = "3.22")]
 		public void* get_certinfo_property (Camel.CipherValidityMode mode, int info_index, string name);
+#if HAS_CAMEL_3_57
+		public unowned string get_description ();
+#else
 		public string get_description ();
+#endif
 		public bool get_valid ();
 		public void init ();
 		[Version (since = "3.22")]
+#if HAS_CAMEL_3_57
+		public void set_certinfo_property (Camel.CipherValidityMode mode, int info_index, string name, void* value, GLib.DestroyNotify? value_free, Camel.CipherCloneFunc? value_clone);
+#else
 		public void set_certinfo_property (Camel.CipherValidityMode mode, int info_index, string name, [CCode (destroy_notify_pos = 4.5)] owned void* value, Camel.CipherCloneFunc? value_clone);
+#endif
 		public void set_description (string description);
 		public void set_valid (bool valid);
 	}
@@ -178,8 +205,25 @@
 	[Version (since = "2.24")]
 	public class DB : GLib.Object {
 		[CCode (has_construct_function = false)]
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+#else
 		[Version (since = "3.24")]
+#endif
 		public DB (string filename) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public bool abort_transaction () throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public bool begin_transaction () throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public bool end_transaction () throws GLib.Error;
+		public static GLib.Quark error_quark ();
+		[Version (since = "3.57.1")]
+		public bool exec_select (string stmt, Camel.DBSelectCB callback) throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public bool exec_statement (string stmt) throws GLib.Error;
+#else
 		public int abort_transaction () throws GLib.Error;
 		public int add_to_transaction (string query) throws GLib.Error;
 		public int begin_transaction () throws GLib.Error;
@@ -202,34 +246,66 @@
 		public int end_transaction () throws GLib.Error;
 		[Version (since = "2.26")]
 		public int flush_in_memory_transactions (string folder_name) throws GLib.Error;
+#endif
 		public static void free_sqlized_string (string? string);
+#if !HAS_CAMEL_3_57
 		[Version (since = "3.4")]
 		public static Camel.DBKnownColumnNames get_column_ident (ref GLib.HashTable<void*,void*> hash, int index, [CCode (array_length_cname = "ncols", array_length_pos = 2.5)] string[] col_names);
 		public static string? get_column_name (string raw_name);
+#endif
 		[Version (since = "3.24")]
 		public unowned string get_filename ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public bool has_table (string table_name);
+		[Version (since = "3.57.1")]
+		public bool has_table_with_column (string table_name, string column_name);
+#else
 		public GLib.GenericArray<string>? get_folder_deleted_uids (string folder_name) throws GLib.Error;
 		public GLib.GenericArray<string>? get_folder_junk_uids (string folder_name) throws GLib.Error;
 		public int get_folder_uids (string folder_name, string? sort_by, string? collate, GLib.HashTable<string,uint32> hash) throws GLib.Error;
+#endif
 		[Version (since = "3.16")]
 		public bool maybe_run_maintenance () throws GLib.Error;
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public bool open (string filename) throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public void reader_lock ();
+		[Version (since = "3.57.1")]
+		public void reader_unlock ();
+#else
 		public int prepare_message_info_table (string folder_name) throws GLib.Error;
 		public int read_folder_info_record (string folder_name, out Camel.FIRecord record) throws GLib.Error;
 		public int read_message_info_record_with_uid (string folder_name, string uid, [CCode (delegate_target_pos = 2.5)] Camel.DBSelectCB callback) throws GLib.Error;
 		public int read_message_info_records (string folder_name, [CCode (delegate_target_pos = 1.5, scope = "async")] Camel.DBSelectCB callback) throws GLib.Error;
+#endif
 		[Version (since = "3.24")]
 		public static void release_cache_memory ();
+#if HAS_CAMEL_3_57
+		public bool set_collate (string col, string collate, Camel.DBCollate func);
+#else
 		public int rename_folder (string old_folder_name, string new_folder_name) throws GLib.Error;
 		[Version (since = "2.28")]
 		public int reset_folder_version (string folder_name, int reset_version) throws GLib.Error;
 		public int select (string stmt, Camel.DBSelectCB callback) throws GLib.Error;
 		public int set_collate (string col, string collate, Camel.DBCollate func);
+#endif
 		public static string sqlize_string (string string);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public static void sqlize_to_statement (GLib.StringBuilder stmt, string? str, Camel.DBSqlizeFlags flags);
+		[Version (since = "3.57.1")]
+		public void writer_lock ();
+		[Version (since = "3.57.1")]
+		public void writer_unlock ();
+#else
 		[Version (since = "2.26")]
 		public int start_in_memory_transactions () throws GLib.Error;
 		public int transaction_command (GLib.List<string> qry_list) throws GLib.Error;
 		public int write_folder_info_record (Camel.FIRecord record) throws GLib.Error;
 		public int write_message_info_record (string folder_name, Camel.MIRecord record) throws GLib.Error;
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_data_cache_get_type ()")]
 	public class DataCache : GLib.Object {
@@ -248,8 +324,13 @@
 		[Version (since = "2.32")]
 		public unowned string get_path ();
 		public int remove (string path, string key) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		public void set_expire_access (time_t when);
+		public void set_expire_age (time_t when);
+#else
 		public void set_expire_access (long when);
 		public void set_expire_age (long when);
+#endif
 		[Version (since = "3.24")]
 		public void set_expire_enabled (bool expire_enabled);
 		[Version (since = "2.32")]
@@ -265,6 +346,10 @@
 		public size_t calculate_decoded_size_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.24")]
 		public size_t calculate_size_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		[Version (since = "3.46")]
+		public bool construct_from_data_sync (void* data, ssize_t data_len, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[Version (since = "3.12")]
 		public async bool construct_from_input_stream (GLib.InputStream input_stream, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.12")]
@@ -286,7 +371,11 @@
 		[Version (since = "3.24")]
 		public Camel.TransferEncoding get_encoding ();
 		public virtual string get_mime_type ();
+#if HAS_CAMEL_3_57
+		public virtual unowned Camel.ContentType? get_mime_type_field ();
+#else
 		public virtual unowned Camel.ContentType get_mime_type_field ();
+#endif
 		public virtual bool is_offline ();
 		[Version (since = "3.24")]
 		public void set_encoding (Camel.TransferEncoding encoding);
@@ -310,9 +399,17 @@
 		[CCode (has_construct_function = false)]
 		public FilterDriver (Camel.Session session);
 		public void add_rule (string name, string match, string action);
+#if HAS_CAMEL_3_57
+		public int filter_folder (Camel.Folder folder, Camel.UIDCache cache, GLib.GenericArray<string>? uids, bool remove, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public int filter_folder (Camel.Folder folder, Camel.UIDCache cache, GLib.GenericArray<string> uids, bool remove, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		public int filter_mbox (string mbox, string? original_source_url, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		public int filter_message (Camel.MimeMessage? message, Camel.MessageInfo? info, string? uid, Camel.Folder? source, string? store_uid, string? original_store_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public int filter_message (Camel.MimeMessage message, Camel.MessageInfo info, string uid, Camel.Folder source, string store_uid, string original_store_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		public void flush () throws GLib.Error;
 		public bool remove_rule_by_name (string name);
 		public void set_default_folder (Camel.Folder? def);
@@ -351,8 +448,10 @@
 		public virtual bool append_message_sync (Camel.MimeMessage message, Camel.MessageInfo? info, out string? appended_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "2.28")]
 		public virtual int cmp_uids (string uid1, string uid2);
+#if !HAS_CAMEL_3_57
 		[Version (since = "2.26")]
 		public virtual uint32 count_by_expression (string expression, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		public void @delete ();
 		[NoWrapper]
 		public virtual void delete_ ();
@@ -362,14 +461,24 @@
 		public string dup_display_name ();
 		[Version (since = "3.8")]
 		public string dup_full_name ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public virtual bool dup_headers_sync (string uid, out Camel.NameValueArray out_headers, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public virtual GLib.GenericArray<weak string> dup_uids ();
+		[Version (since = "3.57.1")]
+		public virtual GLib.GenericArray<weak string> dup_uncached_uids (GLib.GenericArray<string> uids) throws GLib.Error;
+#endif
 		[Version (since = "3.0")]
 		public async bool expunge (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual bool expunge_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if !HAS_CAMEL_3_57
 		public void free_deep (GLib.GenericArray<string> array);
 		public void free_shallow (GLib.GenericArray<string> array);
 		public virtual void free_summary (GLib.GenericArray<Camel.MessageInfo> array);
 		public virtual void free_uids (GLib.GenericArray<string> array);
+#endif
 		public virtual void freeze ();
 		public int get_deleted_message_count ();
 		[Version (since = "2.32")]
@@ -384,6 +493,10 @@
 		public unowned Camel.FolderSummary get_folder_summary ();
 		[Version (since = "2.32")]
 		public int get_frozen_count ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.46")]
+		public virtual unowned string get_full_display_name ();
+#endif
 		public unowned string get_full_name ();
 		[Version (since = "3.32")]
 		public Camel.ThreeState get_mark_seen ();
@@ -396,7 +509,11 @@
 		public virtual int get_message_count ();
 		[Version (deprecated = true)]
 		public virtual uint32 get_message_flags (string uid);
+#if HAS_CAMEL_3_57
+		public virtual Camel.MessageInfo? get_message_info (string uid);
+#else
 		public virtual Camel.MessageInfo get_message_info (string uid);
+#endif
 		[Version (since = "3.0")]
 		public virtual unowned Camel.MimeMessage get_message_sync (string message_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (deprecated = true)]
@@ -409,10 +526,12 @@
 		public async Camel.FolderQuotaInfo get_quota_info (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.2")]
 		public virtual Camel.FolderQuotaInfo get_quota_info_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if !HAS_CAMEL_3_57
 		public virtual unowned GLib.GenericArray<string> get_summary ();
 		public virtual unowned GLib.GenericArray<string> get_uids ();
 		[Version (since = "2.26")]
 		public virtual unowned GLib.GenericArray<string> get_uncached_uids (GLib.GenericArray<string> uids) throws GLib.Error;
+#endif
 		[Version (deprecated = true)]
 		public int get_unread_message_count ();
 		[NoWrapper]
@@ -432,9 +551,18 @@
 		[Version (since = "3.0")]
 		public virtual bool refresh_info_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual void rename (string new_name);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public virtual bool search_body_sync (GLib.GenericArray<string> words, out GLib.GenericArray<weak string> out_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public virtual bool search_header_sync (string header_name, GLib.GenericArray<string>? words, out GLib.GenericArray<weak string> out_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public virtual bool search_sync (string expression, out GLib.GenericArray<weak string>? out_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public virtual GLib.GenericArray<string> search_by_expression (string expression, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual GLib.GenericArray<string> search_by_uids (string expression, GLib.GenericArray<string> uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual void search_free (GLib.GenericArray<string> result);
+#endif
 		[Version (since = "2.32")]
 		public void set_description (string description);
 		[Version (since = "3.2")]
@@ -469,9 +597,15 @@
 		public void take_folder_summary (owned Camel.FolderSummary summary);
 		public virtual void thaw ();
 		[Version (since = "3.0")]
+#if HAS_CAMEL_3_57
+		public async bool transfer_messages_to (GLib.GenericArray<string> message_uids, Camel.Folder destination, bool delete_originals, int io_priority, GLib.Cancellable? cancellable = null, out GLib.GenericArray<weak string>? transferred_uids) throws GLib.Error;
+		[Version (since = "3.0")]
+		public virtual bool transfer_messages_to_sync (GLib.GenericArray<string> message_uids, Camel.Folder destination, bool delete_originals, out GLib.GenericArray<weak string>? transferred_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public async bool transfer_messages_to (GLib.GenericArray<string> message_uids, Camel.Folder destination, bool delete_originals, int io_priority, GLib.Cancellable? cancellable = null, out GLib.GenericArray<string>? transferred_uids) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual bool transfer_messages_to_sync (GLib.GenericArray<string> message_uids, Camel.Folder destination, bool delete_originals, out GLib.GenericArray<string>? transferred_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[Version (since = "2.32")]
 		public void @unlock ();
 		public string description { get; set construct; }
@@ -551,6 +685,7 @@
 		public Camel.FolderQuotaInfo clone ();
 		public void free ();
 	}
+#if !HAS_CAMEL_3_57
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_folder_search_get_type ()")]
 	public class FolderSearch : GLib.Object {
 		[CCode (has_construct_function = false)]
@@ -588,6 +723,7 @@
 		[Version (since = "3.30")]
 		public static long util_make_time (int argc, Camel.SExpResult argv);
 	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_folder_summary_get_type ()")]
 	public class FolderSummary : GLib.Object {
 		[CCode (has_construct_function = false)]
@@ -597,13 +733,21 @@
 		public bool check_uid (string uid);
 		public bool clear () throws GLib.Error;
 		public uint count ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public GLib.GenericArray<weak string> dup_changed ();
+		[Version (since = "3.57.1")]
+		public GLib.GenericArray<weak string> dup_uids ();
+#endif
 		[CCode (vfunc_name = "message_info_from_uid")]
 		[Version (since = "3.4")]
 		public virtual Camel.MessageInfo? @get (string uid);
+#if !HAS_CAMEL_3_57
 		[Version (since = "3.4")]
 		public GLib.GenericArray<string> get_array ();
 		[Version (since = "2.24")]
 		public GLib.GenericArray<string> get_changed ();
+#endif
 		[Version (since = "3.4")]
 		public uint32 get_deleted_count ();
 		[Version (since = "3.24")]
@@ -613,7 +757,11 @@
 		[Version (since = "3.6")]
 		public GLib.HashTable<weak string,int> get_hash ();
 		[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+		public unowned Camel.Index? get_index ();
+#else
 		public unowned Camel.Index get_index ();
+#endif
 		[Version (since = "3.12")]
 		public uint32 get_info_flags (string uid);
 		[Version (since = "3.4")]
@@ -636,12 +784,18 @@
 		public bool header_load ([CCode (type = "_CamelStore*")] Camel.Store store, string folder_name) throws GLib.Error;
 		[CCode (vfunc_name = "summary_header_load")]
 		[NoWrapper]
+#if HAS_CAMEL_3_57
+		public virtual bool header_load_impl (Camel.StoreDBFolderRecord record);
+#else
 		public virtual bool header_load_impl ([CCode (type = "_CamelFIRecord*")] Camel.FIRecord fir);
+#endif
 		[Version (since = "3.24")]
 		public bool header_save () throws GLib.Error;
+#if !HAS_CAMEL_3_57
 		[CCode (vfunc_name = "summary_header_save")]
 		[NoWrapper]
 		public virtual Camel.FIRecord? header_save_impl () throws GLib.Error;
+#endif
 		[CCode (vfunc_name = "message_info_new_from_headers")]
 		[Version (since = "3.24")]
 		public virtual Camel.MessageInfo info_new_from_headers (Camel.NameValueArray headers);
@@ -665,19 +819,33 @@
 		public bool remove (Camel.MessageInfo info);
 		public bool remove_uid (string uid);
 		[Version (since = "3.6")]
+#if HAS_CAMEL_3_57
+		public bool remove_uids (GLib.GenericArray<string> uids);
+		[Version (since = "3.57.1")]
+		public bool replace_flags (string uid, uint32 new_flags);
+#else
 		public bool remove_uids (GLib.List<string> uids);
 		[Version (since = "3.6")]
 		public bool replace_flags (Camel.MessageInfo info);
+#endif
 		[Version (since = "3.24")]
 		public bool save () throws GLib.Error;
 		[Version (since = "3.24")]
 		public void set_flags (uint32 flags);
+#if HAS_CAMEL_3_57
+		public void set_index (Camel.Index? index);
+#else
 		public void set_index (Camel.Index index);
+#endif
 		public void set_next_uid (uint32 uid);
 		[Version (since = "3.24")]
 		public void set_timestamp (int64 timestamp);
 		[Version (since = "3.24")]
 		public void set_version (uint32 version);
+#if HAS_CAMEL_3_57
+		[NoWrapper]
+		public virtual bool summary_header_save (Camel.StoreDBFolderRecord inout_record) throws GLib.Error;
+#endif
 		public void touch ();
 		[Version (since = "2.32")]
 		public void @unlock ();
@@ -689,6 +857,19 @@
 		public uint unread_count { get; }
 		public uint visible_count { get; }
 		public signal void changed ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public signal void info_flags_changed (string uid, uint new_flags);
+	}
+	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_folder_thread_get_type ()")]
+	public class FolderThread : GLib.Object {
+		[CCode (has_construct_function = false)]
+		[Version (since = "3.57.1")]
+		public FolderThread (Camel.Folder folder, GLib.GenericArray<string>? uids, Camel.FolderThreadFlags flags);
+		public uint dump ();
+		[Version (since = "3.57.1")]
+		public unowned Camel.FolderThreadNode get_tree ();
+#else
 	}
 	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "folder_thread_messages", ref_function = "camel_folder_thread_messages_ref", type_id = "camel_folder_thread_messages_get_type ()", unref_function = "camel_folder_thread_messages_unref")]
 	[Compact]
@@ -704,10 +885,21 @@
 		public void apply (GLib.GenericArray<string> uids);
 		public Camel.FolderThread @ref ();
 		public void unref ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
 	[Compact]
 	public class FolderThreadNode {
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public unowned Camel.FolderThreadNode? get_child ();
+		[Version (since = "3.57.1")]
+		public void* get_item ();
+		[Version (since = "3.57.1")]
+		public unowned Camel.FolderThreadNode? get_next ();
+		[Version (since = "3.57.1")]
+		public unowned Camel.FolderThreadNode? get_parent ();
+#else
 		public weak Camel.FolderThreadNode? child;
 		public weak Camel.MessageInfo? message;
 		public weak Camel.FolderThreadNode? next;
@@ -717,20 +909,64 @@
 		public weak string root_subject;
 		[CCode (cname = "camel_folder_threaded_messages_dump")]
 		public int dump ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_gpg_context_get_type ()")]
 	public class GpgContext : Camel.CipherContext {
 		[CCode (has_construct_function = false, type = "CamelCipherContext*")]
+#if HAS_CAMEL_3_57
+		public GpgContext (Camel.Session? session);
+#else
 		public GpgContext (Camel.Session session);
+#endif
 		[Version (since = "2.32")]
 		public bool get_always_trust ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.50")]
+		public bool get_key_data_info_sync (uint8 data, size_t data_size, uint32 flags, out GLib.SList<Camel.GpgKeyInfo> out_infos, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.46")]
+		public bool get_locate_keys ();
+#endif
 		[Version (since = "3.20")]
 		public bool get_prefer_inline ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.50")]
+		public bool get_public_key_info_sync (string keyid, uint32 flags, out GLib.SList<Camel.GpgKeyInfo> out_infos, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.50")]
+		public bool get_public_key_sync (string keyid, uint32 flags, out uint8 out_data, out size_t out_data_size, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.50")]
+		public bool has_public_key_sync (string keyid, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.50")]
+		public bool import_key_sync (uint8 data, size_t data_size, uint32 flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		public void set_always_trust (bool always_trust);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.50")]
+		public bool set_key_trust_sync (string keyid, Camel.GpgTrust trust, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.46")]
+		public void set_locate_keys (bool locate_keys);
+#endif
 		[Version (since = "3.20")]
 		public void set_prefer_inline (bool prefer_inline);
 		public bool always_trust { get; set construct; }
+#if HAS_CAMEL_3_57
+		public bool locate_keys { get; set construct; }
+#endif
 		public bool prefer_inline { get; set construct; }
+#if HAS_CAMEL_3_57
+	}
+	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_gpg_key_info_get_type ()")]
+	[Compact]
+	[Version (since = "3.50")]
+	public class GpgKeyInfo {
+		public Camel.GpgKeyInfo? copy ();
+		public void free ();
+		public int64 get_creation_date ();
+		public unowned string get_fingerprint ();
+		public unowned string get_id ();
+		public Camel.GpgTrust get_trust ();
+		public unowned GLib.SList<string> get_user_ids ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_html_parser_get_type ()")]
 	public class HTMLParser : GLib.Object {
@@ -781,16 +1017,34 @@
 		public Camel.HeaderParam? next;
 		public string value;
 		[CCode (cname = "camel_header_param_list_decode")]
+#if HAS_CAMEL_3_57
+		[Version (replacement = "HeaderParam.list_decode")]
+#endif
 		public static Camel.HeaderParam? decode (string? @in);
 		[CCode (cname = "camel_header_param_list_format")]
+#if HAS_CAMEL_3_57
+		[Version (replacement = "HeaderParam.list_format")]
+#endif
 		public string format ();
 		[CCode (cname = "camel_header_param_list_format_append", instance_pos = 1.5)]
+#if HAS_CAMEL_3_57
+		[Version (replacement = "HeaderParam.list_format_append")]
+#endif
 		public void format_append (GLib.StringBuilder @out);
 		[CCode (cname = "camel_header_param_list_free")]
 		[DestroysInstance]
+#if HAS_CAMEL_3_57
+		[Version (replacement = "HeaderParam.list_free")]
+#endif
 		public void free ();
 		[CCode (cname = "camel_header_param")]
 		public unowned string get_value (string name);
+#if HAS_CAMEL_3_57
+		public static void* list_decode (string? @in);
+		public static string list_format (void* @params);
+		public static void list_format_append (GLib.StringBuilder @out, void* @params);
+		public static void list_free (void* @params);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_index_get_type ()")]
 	public class Index : GLib.Object {
@@ -842,13 +1096,21 @@
 		[CCode (has_construct_function = false)]
 		public InternetAddress ();
 		public int add (string name, string address);
+#if HAS_CAMEL_3_57
+		public static string encode_address (int? len, string name, string addr);
+#else
 		public static string encode_address (int len, string name, string addr);
+#endif
 		[Version (since = "3.16")]
 		public void ensure_ascii_domains ();
 		public int find_address (string address, out unowned string? namep);
 		public int find_name (string name, out unowned string? addressp);
 		public static string format_address (string name, string addr);
 		public bool @get (int index, out unowned string? namep, out unowned string? addressp);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.44")]
+		public bool sanitize_ascii_domain ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_key_file_get_type ()")]
 	public class KeyFile : GLib.Object {
@@ -907,8 +1169,13 @@
 		[Version (since = "3.24")]
 		public virtual unowned Camel.NameValueArray get_headers ();
 		public virtual void remove_header (string name);
+#if HAS_CAMEL_3_57
+		public virtual void set_content (Camel.DataWrapper? content);
+		public virtual void set_header (string name, string? value);
+#else
 		public virtual void set_content (Camel.DataWrapper content);
 		public virtual void set_header (string name, string value);
+#endif
 		public Camel.DataWrapper content { get; set; }
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
@@ -936,7 +1203,11 @@
 		[CCode (has_construct_function = false)]
 		public MessageContentInfo ();
 		[Version (since = "3.24")]
+#if HAS_CAMEL_3_57
+		public Camel.MessageContentInfo? copy ();
+#else
 		public Camel.MessageContentInfo copy ();
+#endif
 		public void dump (int depth);
 		public void free ();
 		[CCode (has_construct_function = false)]
@@ -962,7 +1233,11 @@
 		[Version (since = "3.24")]
 		public GLib.Array<uint64>? dup_references ();
 		[Version (since = "3.24")]
+#if HAS_CAMEL_3_57
+		public virtual Camel.NamedFlags? dup_user_flags ();
+#else
 		public virtual Camel.NamedFlags dup_user_flags ();
+#endif
 		[Version (since = "3.42")]
 		public string? dup_user_header (string name);
 		[Version (since = "3.42")]
@@ -971,8 +1246,19 @@
 		public string? dup_user_tag (string name);
 		[Version (since = "3.24")]
 		public virtual Camel.NameValueArray? dup_user_tags ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public string encode_user_flags ();
+		[Version (since = "3.57.1")]
+		public string encode_user_tags ();
+#endif
 		[Version (since = "3.24")]
 		public void freeze_notifications ();
+#if HAS_CAMEL_3_57
+		[CCode (has_construct_function = false)]
+		[Version (since = "3.54")]
+		public MessageInfo.from_message (Camel.FolderSummary? summary, Camel.MimeMessage message);
+#endif
 		[Version (since = "3.24")]
 		public bool get_abort_notifications ();
 		[Version (since = "3.24")]
@@ -1024,7 +1310,11 @@
 		[Version (since = "3.24")]
 		public virtual unowned Camel.NameValueArray? get_user_tags ();
 		[Version (since = "3.24")]
+#if HAS_CAMEL_3_57
+		public virtual bool load (Camel.StoreDBMessageRecord record, string bdata_ptr);
+#else
 		public virtual bool load (Camel.MIRecord? record, string bdata_ptr);
+#endif
 		[Version (since = "3.24")]
 		public unowned string pooldup_uid ();
 		[Version (since = "3.24")]
@@ -1034,7 +1324,11 @@
 		[Version (since = "3.24")]
 		public Camel.FolderSummary? ref_summary ();
 		[Version (since = "3.24")]
+#if HAS_CAMEL_3_57
+		public virtual bool save (Camel.StoreDBMessageRecord record, GLib.StringBuilder bdata_str);
+#else
 		public virtual bool save (Camel.MIRecord? record, GLib.StringBuilder bdata_str);
+#endif
 		[Version (since = "3.24")]
 		public void set_abort_notifications (bool abort_notifications);
 		[Version (since = "3.24")]
@@ -1155,8 +1449,16 @@
 		public void backup ([CCode (array_length_cname = "length", array_length_pos = 1.1, array_length_type = "gsize")] uint8[] data);
 		public virtual void complete ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, size_t prespace, [CCode (array_length_cname = "outlen", array_length_pos = 3.5, array_length_type = "gsize")] out uint8[] @out, out size_t outprespace);
 		public virtual void filter ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, size_t prespace, [CCode (array_length_cname = "outlen", array_length_pos = 3.5, array_length_type = "gsize")] out uint8[] @out, out size_t outprespace);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.52")]
+		public bool get_request_stop ();
+#endif
 		public static Camel.MimeFilter @new ();
 		public virtual void reset ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.52")]
+		public void set_request_stop (bool request_stop);
+#endif
 		public void set_size (size_t size, int keep);
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_basic_get_type ()")]
@@ -1228,6 +1530,20 @@
 		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
 		public MimeFilterPgp ();
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_preview_get_type ()")]
+	public class MimeFilterPreview : Camel.MimeFilter {
+		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
+		[Version (since = "3.52")]
+		public MimeFilterPreview (uint limit);
+		[Version (since = "3.52")]
+		public uint get_limit ();
+		[Version (since = "3.52")]
+		public unowned string? get_text ();
+		[Version (since = "3.52")]
+		public void set_limit (uint limit);
+	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_progress_get_type ()")]
 	[Version (since = "2.24")]
 	public class MimeFilterProgress : Camel.MimeFilter {
@@ -1263,9 +1579,15 @@
 		public void dump (int body);
 		public void encode_8bit_parts ();
 		[Version (since = "3.34")]
+#if HAS_CAMEL_3_57
+		public void foreach_part (Camel.ForeachPartFunc callback);
+		public time_t get_date (out int offset);
+		public time_t get_date_received (out int offset);
+#else
 		public void foreach_part ();
 		public long get_date (out int offset);
 		public long get_date_received (out int offset);
+#endif
 		public unowned Camel.InternetAddress? get_from ();
 		public unowned string? get_message_id ();
 		public unowned Camel.MimePart? get_part_by_content_id (string content_id);
@@ -1277,7 +1599,11 @@
 		[Version (since = "2.28")]
 		public bool has_attachment ();
 		public void set_best_encoding (Camel.BestencRequired required, Camel.BestencEncoding enctype);
+#if HAS_CAMEL_3_57
+		public void set_date (time_t date, int offset);
+#else
 		public void set_date (long date, int offset);
+#endif
 		public void set_from (Camel.InternetAddress? from);
 		public void set_message_id (string? message_id);
 		public void set_recipients (string type, Camel.InternetAddress? recipients);
@@ -1291,18 +1617,31 @@
 		public MimeParser ();
 		[NoWrapper]
 		public virtual void content ();
+#if HAS_CAMEL_3_57
+		public Camel.ContentType? content_type ();
+#else
 		public Camel.ContentType content_type ();
+#endif
 		public void drop_step ();
 		[Version (since = "3.24")]
+#if HAS_CAMEL_3_57
+		public Camel.NameValueArray? dup_headers ();
+#else
 		public Camel.NameValueArray dup_headers ();
+#endif
 		public int errno ();
 		[Version (since = "2.22")]
 		public int filter_add (Camel.MimeFilter mf);
 		[Version (since = "2.22")]
 		public void filter_remove (int id);
 		[Version (since = "2.22")]
+#if HAS_CAMEL_3_57
+		public unowned string? from_line ();
+		public unowned string? header (string name, int offset);
+#else
 		public unowned string from_line ();
 		public unowned string header (string name, int offset);
+#endif
 		[Version (since = "3.12")]
 		public void init_with_bytes (GLib.Bytes bytes);
 		public int init_with_fd (int fd);
@@ -1314,9 +1653,17 @@
 		[NoWrapper]
 		public virtual void part ();
 		[Version (since = "2.22")]
+#if HAS_CAMEL_3_57
+		public unowned string? postface ();
+#else
 		public unowned string postface ();
+#endif
 		[Version (since = "2.22")]
+#if HAS_CAMEL_3_57
+		public unowned string? preface ();
+#else
 		public unowned string preface ();
+#endif
 		public void push_state (Camel.MimeParserState newstate, string boundary);
 		public ssize_t read ([CCode (array_length = false)] out uint8[] databuffer, ssize_t len) throws GLib.Error;
 		public void scan_from (bool scan_from);
@@ -1347,7 +1694,21 @@
 		public async bool construct_from_parser (Camel.MimeParser parser, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual bool construct_from_parser_sync (Camel.MimeParser parser, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		[Version (since = "3.52")]
+		public virtual string? generate_preview (Camel.GeneratePreviewFunc? func);
+#endif
 		[Version (since = "2.30")]
+#if HAS_CAMEL_3_57
+		public unowned Camel.ContentDisposition? get_content_disposition ();
+		public unowned string? get_content_id ();
+		public unowned GLib.List<string>? get_content_languages ();
+		public unowned string? get_content_location ();
+		public unowned string? get_content_md5 ();
+		public unowned Camel.ContentType? get_content_type ();
+		public unowned string? get_description ();
+		public unowned string? get_disposition ();
+#else
 		public unowned Camel.ContentDisposition get_content_disposition ();
 		public unowned string get_content_id ();
 		public unowned GLib.List<string> get_content_languages ();
@@ -1356,18 +1717,39 @@
 		public unowned Camel.ContentType get_content_type ();
 		public unowned string get_description ();
 		public unowned string get_disposition ();
+#endif
 		public Camel.TransferEncoding get_encoding ();
+#if HAS_CAMEL_3_57
+		public unowned string? get_filename ();
+#else
 		public unowned string get_filename ();
+#endif
 		public void set_content ([CCode (array_length_cname = "length", array_length_pos = 1.5)] uint8[]? data, string? type);
+#if HAS_CAMEL_3_57
+		public void set_content_id (string? contentid);
+		public void set_content_languages (owned GLib.List<string>? content_languages);
+		public void set_content_location (string? location);
+		public void set_content_md5 (string? md5sum);
+		public void set_content_type (string? content_type);
+#else
 		public void set_content_id (string contentid);
 		public void set_content_languages (GLib.List<string> content_languages);
 		public void set_content_location (string location);
 		public void set_content_md5 (string md5sum);
 		public void set_content_type (string content_type);
+#endif
 		public void set_description (string description);
+#if HAS_CAMEL_3_57
+		public void set_disposition (string? disposition);
+#else
 		public void set_disposition (string disposition);
+#endif
 		public void set_encoding (Camel.TransferEncoding encoding);
+#if HAS_CAMEL_3_57
+		public void set_filename (string? filename);
+#else
 		public void set_filename (string filename);
+#endif
 		public string content_id { get; set; }
 		public string content_md5 { get; set; }
 		public string description { get; set; }
@@ -1384,9 +1766,17 @@
 		public Multipart ();
 		public virtual void add_part (Camel.MimePart part);
 		public virtual int construct_from_parser (Camel.MimeParser parser);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.52")]
+		public virtual string? generate_preview (Camel.GeneratePreviewFunc? func);
+#endif
 		public virtual unowned string get_boundary ();
 		public virtual uint get_number ();
+#if HAS_CAMEL_3_57
+		public virtual unowned Camel.MimePart? get_part (uint index);
+#else
 		public virtual unowned Camel.MimePart get_part (uint index);
+#endif
 		[Version (since = "3.12")]
 		public unowned string get_postface ();
 		[Version (since = "3.12")]
@@ -1504,9 +1894,15 @@
 		[Version (since = "3.22")]
 		public bool can_downsync ();
 		[Version (since = "3.0")]
+#if HAS_CAMEL_3_57
+		public async bool downsync (string? expression, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.0")]
+		public virtual bool downsync_sync (string? expression, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public async bool downsync (string expression, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual bool downsync_sync (string expression, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[Version (since = "2.32")]
 		public Camel.ThreeState get_offline_sync ();
 		[Version (since = "2.32")]
@@ -1563,6 +1959,10 @@
 		[CCode (has_construct_function = false, type = "GCancellable*")]
 		public Operation ();
 		public static void cancel_all ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.52")]
+		public static string? dup_message (GLib.Cancellable? cancellable = null);
+#endif
 		[CCode (has_construct_function = false, type = "GCancellable*")]
 		[Version (since = "3.24")]
 		public Operation.proxy (GLib.Cancellable? cancellable = null);
@@ -1621,7 +2021,11 @@
 		public static void encode_string (GLib.StringBuilder string, string v_string);
 		public unowned string? error ();
 		public unowned Camel.SExpResult? eval ();
+#if HAS_CAMEL_3_57
+		public bool evaluate_occur_times (time_t start, time_t end);
+#else
 		public bool evaluate_occur_times (long start, long end);
+#endif
 		public void fatal_error (string why, ...);
 		public void input_file (int fd);
 		public void input_text (string text, int len);
@@ -1633,8 +2037,10 @@
 		public void resultv_free ([CCode (array_length_cname = "argc", array_length_pos = 0.5)] Camel.SExpResult[] argv);
 		public int set_scope (uint scope);
 		public Camel.SExpResult? term_eval (Camel.SExpTerm term);
+#if !HAS_CAMEL_3_57
 		[Version (since = "2.26")]
 		public static string to_sql_sexp (string sexp);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_smime_context_get_type ()")]
 	public class SMIMEContext : Camel.CipherContext {
@@ -1643,6 +2049,10 @@
 		public uint32 describe_part ([CCode (type = "_CamelMimePart*")] Camel.MimePart part);
 		public void set_encrypt_key (bool use, string key);
 		public void set_sign_mode (Camel.SMIMESign type);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.52")]
+		public static unowned string? util_nss_error_to_string (int nss_error_code);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_get_type ()")]
 	public abstract class Sasl : GLib.Object {
@@ -1652,12 +2062,20 @@
 		public static unowned Camel.ServiceAuthType? authtype (string mechanism);
 		public static GLib.List<weak Camel.ServiceAuthType?> authtype_list (bool include_plain);
 		[Version (since = "3.0")]
+#if HAS_CAMEL_3_57
+		public async GLib.ByteArray? challenge (GLib.ByteArray? token, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public async GLib.ByteArray challenge (GLib.ByteArray token, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[Version (since = "3.0")]
 		public async string challenge_base64 (string token, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.0")]
 		public string challenge_base64_sync (string token, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		public virtual GLib.ByteArray? challenge_sync (GLib.ByteArray? token, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		public virtual GLib.ByteArray challenge_sync (GLib.ByteArray token, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[CCode (cname = "camel_sasl_new")]
 		public static Camel.Sasl? for_service (string service_name, string mechanism, Camel.Service service);
 		public bool get_authenticated ();
@@ -1761,13 +2179,21 @@
 		[Version (since = "3.6")]
 		public virtual bool disconnect_sync (bool clean, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.12")]
+#if HAS_CAMEL_3_57
+		public string? dup_display_name ();
+#else
 		public string dup_display_name ();
+#endif
 		[Version (since = "3.12")]
 		public string dup_password ();
 		[Version (since = "3.2")]
 		public Camel.ServiceConnectionStatus get_connection_status ();
 		[Version (since = "3.2")]
+#if HAS_CAMEL_3_57
+		public unowned string? get_display_name ();
+#else
 		public unowned string get_display_name ();
+#endif
 		public virtual string get_name (bool brief);
 		[Version (since = "3.4")]
 		public unowned string get_password ();
@@ -1788,19 +2214,35 @@
 		[Version (since = "3.12")]
 		public void queue_task (GLib.Task task, [CCode (scope = "async")] GLib.TaskThreadFunc task_func);
 		[Version (since = "3.12")]
+#if HAS_CAMEL_3_57
+		public GLib.ProxyResolver? ref_proxy_resolver ();
+#else
 		public GLib.ProxyResolver ref_proxy_resolver ();
+#endif
 		[Version (since = "3.8")]
 		public Camel.Session ref_session ();
 		[Version (since = "3.6")]
 		public Camel.Settings ref_settings ();
 		[Version (since = "3.2")]
+#if HAS_CAMEL_3_57
+		public void set_display_name (string? display_name);
+#else
 		public void set_display_name (string display_name);
+#endif
 		[Version (since = "3.4")]
 		public void set_password (string password);
 		[Version (since = "3.12")]
+#if HAS_CAMEL_3_57
+		public void set_proxy_resolver (GLib.ProxyResolver? proxy_resolver);
+#else
 		public void set_proxy_resolver (GLib.ProxyResolver proxy_resolver);
+#endif
 		[Version (since = "3.2")]
+#if HAS_CAMEL_3_57
+		public void set_settings (Camel.Settings? settings);
+#else
 		public void set_settings (Camel.Settings settings);
+#endif
 		public Camel.ServiceConnectionStatus connection_status { get; }
 		public string display_name { get; set construct; }
 		public string password { get; set construct; }
@@ -1812,6 +2254,10 @@
 		[NoAccessorMethod]
 		public Camel.Settings settings { owned get; set construct; }
 		public string uid { get; construct; }
+#if HAS_CAMEL_3_57
+		[NoAccessorMethod]
+		public bool with_proxy_resolver { construct; }
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_session_get_type ()")]
 	public class Session : GLib.Object {
@@ -1819,6 +2265,10 @@
 		protected Session ();
 		[Version (since = "3.2")]
 		public virtual Camel.Service add_service (string uid, string protocol, Camel.ProviderType type) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		[Version (since = "3.44")]
+		public virtual bool addressbook_contains_sync (string book_uid, string email_address, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#endif
 		[Version (since = "3.4")]
 		public async bool authenticate (Camel.Service service, string? mechanism, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.4")]
@@ -1830,7 +2280,11 @@
 		public virtual bool forward_to_sync (Camel.Folder folder, Camel.MimeMessage message, string address, GLib.Cancellable? cancellable = null) throws GLib.Error;
 		public virtual unowned Camel.FilterDriver get_filter_driver (string type, Camel.Folder? for_folder) throws GLib.Error;
 		[Version (since = "3.2")]
+#if HAS_CAMEL_3_57
+		public unowned Camel.JunkFilter? get_junk_filter ();
+#else
 		public unowned Camel.JunkFilter get_junk_filter ();
+#endif
 		[Version (since = "2.22")]
 		public unowned GLib.HashTable<string,string> get_junk_headers ();
 		[Version (since = "3.28")]
@@ -1854,15 +2308,27 @@
 		[Version (since = "3.22")]
 		public GLib.NetworkMonitor ref_network_monitor ();
 		[Version (since = "3.6")]
+#if HAS_CAMEL_3_57
+		public Camel.Service? ref_service (string uid);
+#else
 		public Camel.Service ref_service (string uid);
+#endif
 		[Version (since = "3.6")]
+#if HAS_CAMEL_3_57
+		public Camel.Service? ref_service_by_url (Camel.URL url, Camel.ProviderType type);
+#else
 		public Camel.Service ref_service_by_url (Camel.URL url, Camel.ProviderType type);
+#endif
 		[Version (since = "3.2")]
 		public virtual void remove_service (Camel.Service service);
 		[Version (since = "3.2")]
 		public void remove_services ();
 		[Version (since = "3.2")]
+#if HAS_CAMEL_3_57
+		public void set_junk_filter (Camel.JunkFilter? junk_filter);
+#else
 		public void set_junk_filter (Camel.JunkFilter junk_filter);
+#endif
 		[Version (since = "2.22")]
 		public void set_junk_headers ([CCode (array_length_cname = "len", array_length_pos = 2.1)] string[] headers, [CCode (array_length = false)] string[] values);
 		[Version (since = "3.22")]
@@ -1917,8 +2383,13 @@
 		public GLib.GenericArray<Camel.Folder> dup_opened_folders ();
 		[Version (since = "3.40")]
 		public virtual bool get_can_auto_save_changes ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public unowned Camel.StoreDB get_db ();
+#else
 		[Version (since = "3.24")]
 		public unowned Camel.DB get_db ();
+#endif
 		[Version (since = "3.24")]
 		public uint32 get_flags ();
 		[Version (since = "3.0")]
@@ -1974,6 +2445,110 @@
 		[HasEmitter]
 		public virtual signal void folder_renamed (string old_name, Camel.FolderInfo folder_info);
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_db_get_type ()")]
+	[Version (since = "3.57.1")]
+	public class StoreDB : Camel.DB {
+		[CCode (has_construct_function = false)]
+		public StoreDB (string filename, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public bool clear_folder (string folder_name) throws GLib.Error;
+		public bool count_messages (string folder_name, Camel.StoreDBCountKind kind, out uint32 out_count) throws GLib.Error;
+		public bool delete_folder (string folder_name) throws GLib.Error;
+		public bool delete_message (string folder_name, string uid) throws GLib.Error;
+		public bool delete_messages (string folder_name, GLib.GenericArray<string> uids) throws GLib.Error;
+		public GLib.GenericArray<weak string> dup_deleted_uids (string folder_name) throws GLib.Error;
+		public GLib.GenericArray<weak string> dup_junk_uids (string folder_name) throws GLib.Error;
+		public string? dup_string_key (string key);
+		public GLib.HashTable<weak string,uint32> dup_uids_with_flags (string folder_name) throws GLib.Error;
+		public uint32 get_folder_id (string folder_name);
+		public int get_int_key (string key, int def_value);
+		public bool read_folder (string folder_name, out Camel.StoreDBFolderRecord out_record) throws GLib.Error;
+		public bool read_message (string folder_name, string uid, out Camel.StoreDBMessageRecord out_record) throws GLib.Error;
+		public bool read_messages (string folder_name, Camel.StoreDBReadMessagesFunc func) throws GLib.Error;
+		public bool rename_folder (string old_folder_name, string new_folder_name) throws GLib.Error;
+		public bool set_int_key (string key, int value) throws GLib.Error;
+		public bool set_string_key (string key, string value) throws GLib.Error;
+		public static unowned string? util_get_column_for_header_name (string header_name);
+		public bool write_folder (string folder_name, Camel.StoreDBFolderRecord record) throws GLib.Error;
+		public bool write_message (string folder_name, Camel.StoreDBMessageRecord record) throws GLib.Error;
+	}
+	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_store_info_ref", type_id = "camel_store_info_get_type ()", unref_function = "camel_store_info_unref")]
+	[Compact]
+	public class StoreInfo {
+		public uint32 flags;
+		public int refcount;
+		public weak Camel.StoreSummary summary;
+		public uint32 total;
+		public uint32 unread;
+		[Version (since = "3.46")]
+		public unowned string get_name ();
+		[Version (since = "3.46")]
+		public unowned string get_path ();
+		[Version (deprecated = true, deprecated_since = "3.46")]
+		public static unowned string name (Camel.StoreSummary summary, Camel.StoreInfo info);
+		[Version (deprecated = true, deprecated_since = "3.46")]
+		public static unowned string path (Camel.StoreSummary summary, Camel.StoreInfo info);
+		[Version (since = "3.46")]
+		public Camel.StoreInfo @ref ();
+		[Version (deprecated = true, deprecated_since = "3.46")]
+		public static void set_string (Camel.StoreSummary summary, Camel.StoreInfo info, int type, string value);
+		[Version (since = "3.46")]
+		public void set_value (int type, string value);
+		[Version (since = "3.46")]
+		public void unref ();
+	}
+	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_search_get_type ()")]
+	[Version (since = "3.57.1")]
+	public class StoreSearch : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public StoreSearch (Camel.Store store);
+		public void add_folder (Camel.Folder folder);
+		public void add_match_index (Camel.StoreSearchIndex index);
+		public bool add_match_threads_items_sync (ref GLib.GenericArray<weak Camel.StoreSearchThreadItem> inout_items, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public GLib.GenericArray<weak string>? dup_additional_columns ();
+		public unowned string? get_expression ();
+		public bool get_items_sync (out GLib.GenericArray<weak Camel.StoreSearchItem?> out_items, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public Camel.MatchThreadsKind get_match_threads_kind (out Camel.FolderThreadFlags out_flags);
+		public unowned Camel.Store get_store ();
+		public bool get_uids_sync (string folder_name, out GLib.GenericArray<weak string> out_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public GLib.GenericArray<weak Camel.Folder> list_folders ();
+		public GLib.GenericArray<weak Camel.StoreSearchIndex> list_match_indexes ();
+		public bool rebuild_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public Camel.StoreSearchIndex? ref_result_index ();
+		public void remove_folder (Camel.Folder folder);
+		public void remove_match_index (Camel.StoreSearchIndex index);
+		public void set_additional_columns (GLib.GenericArray<string>? colnames);
+		public void set_expression (string? expression);
+		public void set_result_index (Camel.StoreSearchIndex? index);
+		public Camel.Store store { get; construct; }
+	}
+	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_store_search_index_ref", type_id = "camel_store_search_index_get_type ()", unref_function = "camel_store_search_index_unref")]
+	[Compact]
+	[Version (since = "3.57.1")]
+	public class StoreSearchIndex {
+		[CCode (has_construct_function = false)]
+		public StoreSearchIndex ();
+		public void add (Camel.Store store, uint32 folder_id, string uid);
+		public void apply_match_threads (GLib.GenericArray<Camel.StoreSearchThreadItem> items, Camel.MatchThreadsKind kind, Camel.FolderThreadFlags flags, GLib.Cancellable? cancellable = null);
+		public bool contains (Camel.Store store, uint32 folder_id, string uid);
+		public void move_from_existing (Camel.StoreSearchIndex src);
+		public Camel.StoreSearchIndex @ref ();
+		public bool remove (Camel.Store store, uint32 folder_id, string uid);
+		[DestroysInstance]
+		public void unref ();
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	[Compact]
+	[Version (since = "3.57.1")]
+	public class StoreSearchThreadItem {
+		public uint32 get_folder_id ();
+		public uint64 get_message_id ();
+		public unowned GLib.Array<uint64>? get_references ();
+		public unowned Camel.Store get_store ();
+		public unowned string get_subject ();
+		public unowned string get_uid ();
+	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_settings_get_type ()")]
 	[Version (since = "3.2")]
 	public class StoreSettings : Camel.Settings {
@@ -1992,20 +2567,42 @@
 	public class StoreSummary : GLib.Object {
 		[CCode (has_construct_function = false)]
 		public StoreSummary ();
+#if HAS_CAMEL_3_57
+		public void add (owned Camel.StoreInfo info);
+#else
 		public void add (Camel.StoreInfo info);
+#endif
 		public unowned Camel.StoreInfo? add_from_path (string path);
+#if HAS_CAMEL_3_57
+		public GLib.GenericArray<Camel.StoreInfo> array ();
+		[Version (deprecated = true, deprecated_since = "3.46")]
+		public void array_free (owned GLib.GenericArray<Camel.StoreInfo> array);
+#else
 		public GLib.GenericArray<Camel.StoreInfo?> array ();
 		public void array_free (GLib.GenericArray<Camel.StoreInfo?> array);
+#endif
 		[Version (since = "3.4")]
 		public bool connect_folder_summary (string path, Camel.FolderSummary folder_summary);
 		public int count ();
 		[Version (since = "3.4")]
 		public bool disconnect_folder_summary (Camel.FolderSummary folder_summary);
+#if HAS_CAMEL_3_57
+		public Camel.StoreInfo info_new ();
+		[Version (deprecated = true, deprecated_since = "3.46")]
+		public Camel.StoreInfo info_ref (Camel.StoreInfo info);
+		[Version (deprecated = true, deprecated_since = "3.46")]
+		public void info_unref (owned Camel.StoreInfo info);
+#else
 		public unowned Camel.StoreInfo? info_new ();
 		public Camel.StoreInfo? info_ref (Camel.StoreInfo info);
 		public void info_unref (Camel.StoreInfo info);
+#endif
 		public int load ();
+#if HAS_CAMEL_3_57
+		public Camel.StoreInfo? path (string path);
+#else
 		public unowned Camel.StoreInfo? path (string path);
+#endif
 		public void remove (Camel.StoreInfo info);
 		public void remove_path (string path);
 		public int save ();
@@ -2013,15 +2610,31 @@
 		[Version (since = "3.24")]
 		public void sort (GLib.CompareDataFunc compare_func);
 		[NoWrapper]
+#if HAS_CAMEL_3_57
+		public virtual void store_info_free (owned Camel.StoreInfo info);
+#else
 		public virtual void store_info_free (Camel.StoreInfo info);
+#endif
 		[NoWrapper]
+#if HAS_CAMEL_3_57
+		public virtual Camel.StoreInfo store_info_load ([CCode (type = "FILE*")] GLib.FileStream file);
+#else
 		public virtual unowned Camel.StoreInfo? store_info_load ([CCode (type = "FILE*")] GLib.FileStream file);
+#endif
 		[NoWrapper]
+#if HAS_CAMEL_3_57
+		public virtual Camel.StoreInfo store_info_new (string path);
+#else
 		public virtual unowned Camel.StoreInfo? store_info_new (string path);
+#endif
 		[NoWrapper]
 		public virtual int store_info_save ([CCode (type = "FILE*")] GLib.FileStream file, Camel.StoreInfo info);
 		[NoWrapper]
+#if HAS_CAMEL_3_57
+		public virtual void store_info_set_value (Camel.StoreInfo info, int type, string value);
+#else
 		public virtual void store_info_set_string (Camel.StoreInfo info, int type, string value);
+#endif
 		[NoWrapper]
 		public virtual int summary_header_load ([CCode (type = "FILE*")] GLib.FileStream file);
 		[NoWrapper]
@@ -2140,10 +2753,18 @@
 	public abstract class Transport : Camel.Service, GLib.Initable {
 		[CCode (has_construct_function = false)]
 		protected Transport ();
+#if HAS_CAMEL_3_57
+		[Version (since = "3.50")]
+		public bool get_request_dsn ();
+#endif
 		[Version (since = "3.0")]
 		public async bool send_to (Camel.MimeMessage message, Camel.Address from, Camel.Address recipients, int io_priority, GLib.Cancellable? cancellable = null, out bool out_sent_message_saved) throws GLib.Error;
 		[Version (since = "3.0")]
 		public virtual bool send_to_sync (Camel.MimeMessage message, Camel.Address from, Camel.Address recipients, out bool out_sent_message_saved, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#if HAS_CAMEL_3_57
+		[Version (since = "3.50")]
+		public void set_request_dsn (bool request_dsn);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
 	[Compact]
@@ -2171,12 +2792,20 @@
 		public Camel.URL copy ();
 		public static void decode (string part);
 		public static string decode_path (string path);
+#if HAS_CAMEL_3_57
+		public static string encode (string part, string? escape_extra);
+#else
 		public static string encode (string part, string escape_extra);
+#endif
 		public bool equal (Camel.URL u2);
 		public static bool file_end (string @in, string pos, string inend, Camel.UrlMatch match);
 		public static bool file_start (string @in, string pos, string inend, Camel.UrlMatch match);
 		public void free ();
+#if HAS_CAMEL_3_57
+		public unowned string? get_param (string name);
+#else
 		public unowned string get_param (string name);
+#endif
 		public uint hash ();
 		public Camel.URL new_with_base (string url_string);
 		public void set_authmech (string authmech);
@@ -2205,6 +2834,7 @@
 		[Version (since = "3.24")]
 		public Camel.VTrashFolderType get_folder_type ();
 	}
+#if !HAS_CAMEL_3_57
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_data_cache_get_type ()")]
 	[Version (since = "3.6")]
 	public class VeeDataCache : GLib.Object {
@@ -2219,16 +2849,29 @@
 		public void remove_message_info_data (Camel.VeeMessageInfoData mi_data);
 		public void remove_subfolder (Camel.Folder subfolder);
 	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_folder_get_type ()")]
 	public class VeeFolder : Camel.Folder {
 		[CCode (has_construct_function = false, type = "CamelFolder*")]
 		public VeeFolder (Camel.Store parent_store, string full, uint32 flags);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public bool add_folder_sync (Camel.Folder subfolder, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		public void @construct (uint32 flags);
+		[Version (since = "3.57.1")]
+		public GLib.GenericArray<weak Camel.Folder> dup_folders ();
+#else
 		public virtual void add_folder (Camel.Folder subfolder, GLib.Cancellable? cancellable = null);
+#endif
 		[Version (since = "3.6")]
+#if HAS_CAMEL_3_57
+		public Camel.Folder? dup_vee_uid_folder (string vee_message_uid);
+#else
 		public void add_vuid ([CCode (type = "_CamelVeeMessageInfoData*")] Camel.VeeMessageInfoData mi_data, Camel.FolderChangeInfo? changes);
 		public void @construct (uint32 flags);
 		[NoWrapper]
 		public virtual void folder_changed (Camel.Folder subfolder, Camel.FolderChangeInfo changes);
+#endif
 		[Version (since = "3.6")]
 		public bool get_auto_update ();
 		[Version (since = "3.6")]
@@ -2236,6 +2879,10 @@
 		[Version (since = "3.24")]
 		public uint32 get_flags ();
 		public unowned Camel.Folder get_location (Camel.VeeMessageInfo vinfo, out string? realuid);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public bool remove_folder_sync (Camel.Folder subfolder, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		[Version (since = "3.6")]
 		public unowned Camel.Folder? get_vee_uid_folder (string vee_message_uid);
 		[Version (since = "3.2")]
@@ -2250,12 +2897,25 @@
 		public void remove_from_ignore_changed_event (Camel.Folder subfolder);
 		[Version (since = "3.6")]
 		public void remove_vuid ([CCode (type = "_CamelVeeMessageInfoData*")] Camel.VeeMessageInfoData mi_data, Camel.FolderChangeInfo? changes);
+#endif
 		[Version (since = "3.6")]
 		public void set_auto_update (bool auto_update);
+#if HAS_CAMEL_3_57
+		[Version (since = "3.57.1")]
+		public bool set_expression_sync (string expression, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
+		[Version (since = "3.57.1")]
+		public bool set_folders_sync (GLib.GenericArray<Camel.Folder> folders, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
+#else
 		[Version (since = "3.6")]
 		public virtual void set_expression (string expression);
 		public void set_folders (GLib.List<Camel.Folder> folders, GLib.Cancellable? cancellable = null);
+#endif
 		public bool auto_update { get; set; }
+#if HAS_CAMEL_3_57
+		public signal void rebuild_run_test_signal ();
+		public signal void rebuild_schedule_test_signal ();
+		public signal void vee_setup_changed ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_message_info_get_type ()")]
 	public class VeeMessageInfo : Camel.MessageInfo {
@@ -2267,6 +2927,7 @@
 		[Version (since = "3.24")]
 		public unowned Camel.FolderSummary get_original_summary ();
 	}
+#if !HAS_CAMEL_3_57
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_message_info_data_get_type ()")]
 	[Version (since = "3.6")]
 	public class VeeMessageInfoData : GLib.Object {
@@ -2276,9 +2937,14 @@
 		public unowned Camel.VeeSubfolderData get_subfolder_data ();
 		public unowned string get_vee_message_uid ();
 	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_store_get_type ()")]
 	public class VeeStore : Camel.Store, GLib.Initable {
 		[CCode (has_construct_function = false)]
+#if HAS_CAMEL_3_57
+		protected VeeStore ();
+		[NoAccessorMethod]
+#else
 		public VeeStore ();
 		[Version (since = "3.6")]
 		public bool get_unmatched_enabled ();
@@ -2298,7 +2964,9 @@
 		public void rebuild_unmatched_folder (GLib.Cancellable? cancellable = null) throws GLib.Error;
 		[Version (since = "3.6")]
 		public void set_unmatched_enabled (bool is_enabled);
+#endif
 		public bool unmatched_enabled { get; set; }
+#if !HAS_CAMEL_3_57
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_subfolder_data_get_type ()")]
 	[Version (since = "3.6")]
@@ -2307,11 +2975,13 @@
 		public VeeSubfolderData (Camel.Folder folder);
 		public unowned Camel.Folder get_folder ();
 		public unowned string get_folder_id ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_summary_get_type ()")]
 	public class VeeSummary : Camel.FolderSummary {
 		[CCode (has_construct_function = false, type = "CamelFolderSummary*")]
 		public VeeSummary (Camel.Folder parent);
+#if !HAS_CAMEL_3_57
 		public Camel.VeeMessageInfo add (Camel.VeeMessageInfoData mi_data);
 		[Version (since = "3.6")]
 		public GLib.HashTable<weak string,int> get_uids_for_subfolder (Camel.Folder subfolder);
@@ -2319,6 +2989,7 @@
 		public void remove (string vuid, Camel.Folder subfolder);
 		[Version (since = "3.6")]
 		public void replace_flags (string uid);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_weak_ref_group_ref", type_id = "camel_weak_ref_group_get_type ()", unref_function = "camel_weak_ref_group_unref")]
 	[Compact]
@@ -2354,15 +3025,27 @@
 		public abstract uint16 get_default_port (Camel.NetworkSecurityMethod method);
 		[Version (since = "3.8")]
 		public bool get_host_reachable ();
+#if HAS_CAMEL_3_57
+		public abstract unowned string? get_service_name (Camel.NetworkSecurityMethod method);
+#else
 		public abstract unowned string get_service_name (Camel.NetworkSecurityMethod method);
+#endif
 		[NoWrapper]
 		public abstract unowned GLib.SocketConnectable new_connectable ();
 		[Version (since = "3.8")]
 		public GLib.SocketConnectable ref_connectable ();
 		[Version (since = "3.8")]
+#if HAS_CAMEL_3_57
+		public void set_connectable (GLib.SocketConnectable? connectable);
+#else
 		public void set_connectable (GLib.SocketConnectable connectable);
+#endif
 		[Version (since = "3.12")]
+#if HAS_CAMEL_3_57
+		public GLib.IOStream? starttls (GLib.IOStream base_stream) throws GLib.Error;
+#else
 		public GLib.IOStream starttls (GLib.IOStream base_stream) throws GLib.Error;
+#endif
 		[NoAccessorMethod]
 		public abstract GLib.SocketConnectable connectable { owned get; set; }
 		[ConcreteAccessor]
@@ -2372,7 +3055,11 @@
 	[Version (since = "3.2")]
 	public interface NetworkSettings : Camel.Settings {
 		[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+		public string? dup_auth_mechanism ();
+#else
 		public string dup_auth_mechanism ();
+#endif
 		[Version (since = "3.4")]
 		public string dup_host ();
 		[Version (since = "3.16")]
@@ -2380,7 +3067,11 @@
 		[Version (since = "3.4")]
 		public string dup_user ();
 		[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+		public unowned string? get_auth_mechanism ();
+#else
 		public unowned string get_auth_mechanism ();
+#endif
 		[Version (since = "3.4")]
 		public unowned string get_host ();
 		[Version (since = "3.4")]
@@ -2389,14 +3080,26 @@
 		[Version (since = "3.4")]
 		public unowned string get_user ();
 		[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+		public void set_auth_mechanism (string? auth_mechanism);
+#else
 		public void set_auth_mechanism (string auth_mechanism);
+#endif
 		[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+		public void set_host (string? host);
+#else
 		public void set_host (string host);
+#endif
 		[Version (since = "3.4")]
 		public void set_port (uint16 port);
 		public void set_security_method (Camel.NetworkSecurityMethod method);
 		[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+		public void set_user (string? user);
+#else
 		public void set_user (string user);
+#endif
 		[ConcreteAccessor]
 		public abstract string auth_mechanism { get; set construct; }
 		[ConcreteAccessor]
@@ -2462,7 +3165,11 @@
 		public void* get_property (string name);
 		[CCode (cname = "camel_cipher_certinfo_set_property")]
 		[Version (since = "3.22")]
+#if HAS_CAMEL_3_57
+		public void set_property (string name, void* value, GLib.DestroyNotify? value_free, Camel.CipherCloneFunc? value_clone);
+#else
 		public void set_property (string name, [CCode (destroy_notify_pos = 2.5)] owned void* value, Camel.CipherCloneFunc? value_clone);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
 	public struct CipherCertInfoProperty {
@@ -2472,8 +3179,138 @@
 		public weak Camel.CipherCloneFunc value_clone;
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+#if HAS_CAMEL_3_57
+	public struct KeyBlock {
+		public Camel._block_t next;
+		public uint32 used;
+		[CCode (array_length = false, cname = "u.keys")]
+		public weak void*[] u_keys;
+		[CCode (array_length = false, cname = "u.keydata")]
+		public weak char u_keydata[1016];
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct KeyRootBlock {
+		public Camel._block_t first;
+		public Camel._block_t last;
+		public Camel._key_t free;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+#endif
 	[Version (since = "2.24")]
+#if HAS_CAMEL_3_57
+	public struct Msg {
+		public weak Camel.MsgPort reply_port;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct PartitionKey {
+		public Camel._hash_t hashid;
+		public Camel._key_t keyid;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct PartitionKeyBlock {
+		public uint32 used;
+		[CCode (array_length = false)]
+		public weak void*[] keys;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct PartitionMap {
+		public Camel._hash_t hashid;
+		public Camel._block_t blockid;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct PartitionMapBlock {
+		public Camel._block_t next;
+		public uint32 used;
+		[CCode (array_length = false)]
+		public weak void*[] partition;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct ProviderConfEntry {
+		public Camel.ProviderConfType type;
+		public weak string name;
+		public weak string depname;
+		public weak string text;
+		public weak string value;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	public struct ProviderModule {
+		public weak string path;
+		public weak GLib.SList<void*> types;
+		public uint loaded;
+		public static void init ();
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	[Version (since = "3.2")]
+	public struct ProviderPortEntry {
+		public int port;
+		public weak string desc;
+		public bool is_ssl;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	[Version (since = "3.4")]
+	public struct SExpResult {
+		public Camel.SExpResultType type;
+		public bool time_generator;
+		public time_t occuring_start;
+		public time_t occuring_end;
+		public void* user_data;
+		public weak GLib.DestroyNotify free_user_data;
+		[CCode (cname = "value.ptrarray")]
+		public weak GLib.GenericArray<void*> value_ptrarray;
+		[CCode (cname = "value.number")]
+		public int value_number;
+		[CCode (cname = "value.string")]
+		public weak string value_string;
+		[CCode (cname = "value.boolean")]
+		public int value_boolean;
+		[CCode (cname = "value.time")]
+		public time_t value_time;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	[Version (since = "3.4")]
+	public struct SExpSymbol {
+		public int type;
+		public weak string name;
+		public void* data;
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	[Version (since = "3.4")]
+	public struct SExpTerm {
+		public Camel.SExpTermType type;
+		[CCode (cname = "value.string")]
+		public weak string value_string;
+		[CCode (cname = "value.number")]
+		public int value_number;
+		[CCode (cname = "value.boolean")]
+		public int value_boolean;
+		[CCode (cname = "value.time")]
+		public time_t value_time;
+		[CCode (cname = "value.var")]
+		public Camel.SExpSymbol value_var;
+		[CCode (cname = "value.func.sym")]
+		public Camel.SExpSymbol value_func_sym;
+		[CCode (array_length = false, cname = "value.func.terms")]
+		public Camel.SExpTerm[] value_func_terms;
+		[CCode (cname = "value.func.termcount")]
+		public int value_func_termcount;
+	}
+	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_service_auth_type_get_type ()")]
+	public struct ServiceAuthType {
+		public weak string name;
+		public weak string description;
+		public weak string authproto;
+		public bool need_password;
+		[Version (since = "3.24")]
+		public Camel.ServiceAuthType? copy ();
+		[Version (since = "3.24")]
+		public void free ();
+	}
+	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+	[Version (since = "3.57.1")]
+	public struct StoreDBFolderRecord {
+#else
 	public struct FIRecord {
+#endif
 		public weak string folder_name;
 		public uint32 version;
 		public uint32 flags;
@@ -2486,8 +3323,17 @@
 		public uint32 visible_count;
 		public uint32 jnd_count;
 		public weak string bdata;
+#if HAS_CAMEL_3_57
+		public uint32 folder_id;
+		public void clear ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.57.1")]
+	public struct StoreDBMessageRecord {
+		public uint32 folder_id;
+#else
 	public struct KeyBlock {
 		public Camel._block_t next;
 		public uint32 used;
@@ -2505,16 +3351,19 @@
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
 	[Version (since = "2.24")]
 	public struct MIRecord {
+#endif
 		public weak string uid;
 		public uint32 flags;
 		public uint32 msg_type;
 		public uint32 dirty;
+#if !HAS_CAMEL_3_57
 		public bool read;
 		public bool deleted;
 		public bool replied;
 		public bool important;
 		public bool junk;
 		public bool attachment;
+#endif
 		public uint32 size;
 		public int64 dsent;
 		public int64 dreceived;
@@ -2523,9 +3372,11 @@
 		public weak string to;
 		public weak string cc;
 		public weak string mlist;
+#if !HAS_CAMEL_3_57
 		public weak string followup_flag;
 		public weak string followup_completed_on;
 		public weak string followup_due_by;
+#endif
 		public weak string part;
 		public weak string labels;
 		public weak string usertags;
@@ -2533,8 +3384,19 @@
 		public weak string bdata;
 		public weak string userheaders;
 		public weak string preview;
+#if HAS_CAMEL_3_57
+		public void clear ();
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.57.1")]
+	public struct StoreSearchItem {
+		public uint32 folder_id;
+		public weak string uid;
+		public unowned string? get_additional_value (uint32 index);
+		public uint32 get_n_additional_values ();
+#else
 	[Version (since = "2.24")]
 	public struct Msg {
 		public weak Camel.MsgPort reply_port;
@@ -2650,6 +3512,7 @@
 		public uint32 total;
 		public static unowned string name (Camel.StoreSummary summary, Camel.StoreInfo info);
 		public static void set_string (Camel.StoreSummary summary, Camel.StoreInfo info, int type, string value);
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
 	public struct SummaryMessageID {
@@ -2671,8 +3534,12 @@
 		public size_t size;
 		public int fd;
 		public void destroy ();
+#if HAS_CAMEL_3_57
+		public GLib.GenericArray<weak string> dup_new_uids (GLib.GenericArray<string> uids);
+#else
 		public static void free_uids (owned GLib.GenericArray<string> uids);
 		public GLib.GenericArray<string> get_new_uids (GLib.GenericArray<string> uids);
+#endif
 		public bool save ();
 		public void save_uid (string uid);
 	}
@@ -2781,6 +3648,14 @@
 		FULLY,
 		ULTIMATE,
 		TEMPORARY
+#if HAS_CAMEL_3_57
+	}
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CIPHER_CONTEXT_ERROR_KEY_NOT_", has_type_id = false)]
+	[Version (since = "3.50")]
+	public enum CipherContextError {
+		[CCode (cname = "CAMEL_CIPHER_CONTEXT_ERROR_KEY_NOT_FOUND")]
+		CIPHER_CONTEXT_ERROR_KEY_NOT_FOUND
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CIPHER_HASH_", has_type_id = false)]
 	public enum CipherHash {
@@ -2821,6 +3696,20 @@
 		INSENSITIVE,
 		SENSITIVE
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_DB_ERROR_", has_type_id = false)]
+	[Version (since = "3.44")]
+	public enum DBError {
+		[CCode (cname = "CAMEL_DB_ERROR_CORRUPT")]
+		DB_ERROR_CORRUPT
+	}
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_DB_SQLIZE_FLAG_", type_id = "camel_db_sqlize_flags_get_type ()")]
+	[Flags]
+	[Version (since = "3.57.1")]
+	public enum DBSqlizeFlags {
+		FULL,
+		ESCAPE_ONLY
+#else
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_DB_COLUMN_", has_type_id = false)]
 	[Version (since = "3.4")]
 	public enum DBKnownColumnNames {
@@ -2862,6 +3751,7 @@
 		VERSION,
 		VISIBLE_COUNT,
 		VUID
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FETCH_HEADERS_", type_id = "camel_fetch_headers_type_get_type ()")]
 	[Version (since = "3.2")]
@@ -2923,6 +3813,26 @@
 		DIRTY,
 		IN_MEMORY_ONLY
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_THREAD_FLAG_", type_id = "camel_folder_thread_flags_get_type ()")]
+	[Flags]
+	[Version (since = "3.57.1")]
+	public enum FolderThreadFlags {
+		NONE,
+		SUBJECT,
+		SORT
+	}
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_GPG_TRUST_", type_id = "camel_gpg_trust_get_type ()")]
+	[Version (since = "3.50")]
+	public enum GpgTrust {
+		NONE,
+		UNKNOWN,
+		NEVER,
+		MARGINAL,
+		FULL,
+		ULTIMATE
+	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_HTML_PARSER_", has_type_id = false)]
 	public enum HTMLParserState {
 		DATA,
@@ -2957,6 +3867,17 @@
 	public enum LockType {
 		READ,
 		WRITE
+#if HAS_CAMEL_3_57
+	}
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MATCH_THREADS_KIND_", type_id = "camel_match_threads_kind_get_type ()")]
+	[Version (since = "3.57.1")]
+	public enum MatchThreadsKind {
+		NONE,
+		ALL,
+		REPLIES,
+		REPLIES_AND_PARENTS,
+		SINGLE
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MEMPOOL_ALIGN_", has_type_id = false)]
 	[Version (since = "2.32")]
@@ -3088,7 +4009,12 @@
 		LABEL,
 		HIDDEN,
 		OPTIONS,
+#if HAS_CAMEL_3_57
+		PLACEHOLDER,
+		ADVANCED_SECTION_START
+#else
 		PLACEHOLDER
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_PROVIDER_", type_id = "camel_provider_flags_get_type ()")]
 	[Flags]
@@ -3204,6 +4130,19 @@
 		ASCENDING,
 		DESCENDING
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_DB_COUNT_KIND_", type_id = "camel_store_db_count_kind_get_type ()")]
+	[Version (since = "3.57.1")]
+	public enum StoreDBCountKind {
+		TOTAL,
+		UNREAD,
+		JUNK,
+		DELETED,
+		NOT_JUNK_NOT_DELETED,
+		NOT_JUNK_NOT_DELETED_UNREAD,
+		JUNK_NOT_DELETED
+	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_", type_id = "camel_store_flags_get_type ()")]
 	[Flags]
 	public enum StoreFlags {
@@ -3215,7 +4154,13 @@
 		CAN_EDIT_FOLDERS,
 		USE_CACHE_DIR,
 		CAN_DELETE_FOLDERS_AT_ONCE,
+#if HAS_CAMEL_3_57
+		SUPPORTS_INITIAL_SETUP,
+		IS_BUILTIN,
+		USE_TEMP_DIR
+#else
 		SUPPORTS_INITIAL_SETUP
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_FOLDER_", type_id = "camel_store_get_folder_flags_get_type ()")]
 	[Flags]
@@ -3327,6 +4272,16 @@
 		JUNK,
 		LAST
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_VEE_FOLDER_OP_FLAG_", type_id = "camel_vee_folder_op_flags_get_type ()")]
+	[Flags]
+	[Version (since = "3.57.1")]
+	public enum VeeFolderOpFlags {
+		NONE,
+		SKIP_REBUILD,
+		SKIP_EMIT
+	}
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cname = "camel_search_flags_t", cprefix = "CAMEL_SEARCH_MATCH_", has_type_id = false)]
 	[Flags]
 	public enum _search_flags_t {
@@ -3343,7 +4298,13 @@
 		WORD,
 		STARTS,
 		ENDS,
+#if HAS_CAMEL_3_57
+		SOUNDEX,
+		REGEX_SINGLELINE,
+		REGEX_MULTILINE
+#else
 		SOUNDEX
+#endif
 	}
 	[CCode (cheader_filename = "camel/camel.h", cname = "camel_search_t", cprefix = "CAMEL_SEARCH_TYPE_", has_type_id = false)]
 	public enum _search_t {
@@ -3359,14 +4320,22 @@
 		COMPLEX,
 		@8BIT
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_ERROR_", has_type_id = false)]
+#else
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_ERROR_")]
+#endif
 	[Version (since = "2.32")]
 	public errordomain Error {
 		[CCode (cname = "CAMEL_ERROR_GENERIC")]
 		ERROR_GENERIC;
 		public static GLib.Quark quark ();
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_ERROR_", type_id = "camel_folder_error_get_type ()")]
+#else
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_ERROR_")]
+#endif
 	[Version (since = "2.32")]
 	public errordomain FolderError {
 		INVALID,
@@ -3379,7 +4348,11 @@
 		SUMMARY_INVALID;
 		public static GLib.Quark quark ();
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SERVICE_ERROR_", type_id = "camel_service_error_get_type ()")]
+#else
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SERVICE_ERROR_")]
+#endif
 	[Version (since = "2.32")]
 	public errordomain ServiceError {
 		INVALID,
@@ -3389,7 +4362,11 @@
 		NOT_CONNECTED;
 		public static GLib.Quark quark ();
 	}
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_ERROR_", type_id = "camel_store_error_get_type ()")]
+#else
 	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_ERROR_")]
+#endif
 	[Version (since = "2.32")]
 	public errordomain StoreError {
 		INVALID,
@@ -3404,8 +4381,13 @@
 	[Version (since = "2.24")]
 	public delegate int DBCollate (void* enc, int length1, void* data1, int length2, void* data2);
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 0.9)]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.57.1")]
+	public delegate bool DBSelectCB ([CCode (array_length_cname = "ncol", array_length_pos = 0.666667)] string[] colvalues, [CCode (array_length_cname = "ncol", array_length_pos = 0.666667)] string[] colnames);
+#else
 	[Version (since = "2.24")]
 	public delegate int DBSelectCB ([CCode (array_length_cname = "ncol", array_length_pos = 0.666667)] string[] colvalues, [CCode (array_length_cname = "ncol", array_length_pos = 0.666667)] string[] colnames);
+#endif
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
 	[Version (since = "3.26")]
 	public delegate bool DataCacheRemoveFunc (Camel.DataCache cdc, string filename);
@@ -3419,11 +4401,27 @@
 	public delegate void FilterStatusFunc (Camel.FilterDriver driver, void* status, int pc, string desc);
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 1.9)]
 	public delegate void FilterSystemBeepFunc (Camel.FilterDriver driver);
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
+	public delegate int64 FolderThreadInt64Func (void* item);
+	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
+	public delegate unowned string FolderThreadStrFunc (void* item);
+	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
+	public delegate uint64 FolderThreadUint64Func (void* item);
+	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
+	public delegate void FolderThreadVoidFunc (void* item);
+#else
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
 	public delegate void ForeachInfoData (Camel.VeeMessageInfoData mi_data, Camel.Folder subfolder);
+#endif
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 3.9)]
 	[Version (since = "3.34")]
 	public delegate bool ForeachPartFunc (Camel.MimeMessage message, Camel.MimePart part, Camel.MimePart? parent_part);
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", instance_pos = 1.9)]
+	[Version (since = "3.52")]
+	public delegate string? GeneratePreviewFunc (void* part);
+#endif
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
 	public delegate string IndexNorm (Camel.Index index, string word);
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
@@ -3440,6 +4438,11 @@
 	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
 	[Version (since = "3.2")]
 	public delegate void SessionCallback (Camel.Session session, GLib.Cancellable? cancellable) throws GLib.Error;
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
+	[Version (since = "3.57.1")]
+	public delegate bool StoreDBReadMessagesFunc (Camel.StoreDB storedb, Camel.StoreDBMessageRecord record);
+#endif
 	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
 	public delegate void TextIndexFunc (Camel.TextIndex idx, string word, string buffer);
 	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
@@ -3458,6 +4461,7 @@
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_CIPHER_CERT_INFO_PROPERTY_SIGNERS_ALT_EMAILS")]
 	[Version (since = "3.28")]
 	public const string CIPHER_CERT_INFO_PROPERTY_SIGNERS_ALT_EMAILS;
+#if !HAS_CAMEL_3_57
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_DB_FILE")]
 	[Version (since = "2.24")]
 	public const string DB_FILE;
@@ -3476,6 +4480,7 @@
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_DB_SLEEP_INTERVAL")]
 	[Version (since = "2.24")]
 	public const int DB_SLEEP_INTERVAL;
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_DEBUG_IMAP")]
 	public const string DEBUG_IMAP;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_DEBUG_IMAP_FOLDER")]
@@ -3530,6 +4535,11 @@
 	public const int LOCK_DOT_STALE;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_LOCK_RETRY")]
 	public const int LOCK_RETRY;
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MAX_PREVIEW_LENGTH")]
+	[Version (since = "3.52")]
+	public const int MAX_PREVIEW_LENGTH;
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MESSAGE_DATE_CURRENT")]
 	public const int MESSAGE_DATE_CURRENT;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MESSAGE_SYSTEM_MASK")]
@@ -3576,6 +4586,17 @@
 	public const string RECIPIENT_TYPE_RESENT_TO;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_TO")]
 	public const string RECIPIENT_TYPE_TO;
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_SESSION_BOOK_UID_ANY")]
+	[Version (since = "3.44")]
+	public const string SESSION_BOOK_UID_ANY;
+	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_SESSION_BOOK_UID_COMPLETION")]
+	[Version (since = "3.44")]
+	public const string SESSION_BOOK_UID_COMPLETION;
+	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_DB_FILE")]
+	[Version (since = "3.57.1")]
+	public const string STORE_DB_FILE;
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_INFO_FOLDER_TYPE_BIT")]
 	public const int STORE_INFO_FOLDER_TYPE_BIT;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_INFO_FOLDER_TYPE_MASK")]
@@ -3590,8 +4611,10 @@
 	public const string STORE_SETUP_SENT_FOLDER;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_SETUP_TEMPLATES_FOLDER")]
 	public const string STORE_SETUP_TEMPLATES_FOLDER;
+#if !HAS_CAMEL_3_57
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_UNMATCHED_NAME")]
 	public const string UNMATCHED_NAME;
+#endif
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_HIDE_ALL")]
 	public const int URL_HIDE_ALL;
 	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_AUTH")]
@@ -3630,12 +4653,30 @@
 	[Version (since = "3.16")]
 	public static unowned GLib.Binding binding_bind_property_with_closures (GLib.Object source, string source_property, GLib.Object target, string target_property, GLib.BindingFlags flags, GLib.Closure transform_to, GLib.Closure transform_from);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (replacement = "Charset.best")]
+	public static unowned string? charset_best ([CCode (array_length_cname = "len", array_length_pos = 1.1)] char[] @in);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "Charset.iso_to_windows")]
+	public static unowned string charset_iso_to_windows (string isocharset);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	[Version (since = "3.22")]
 	public static bool cipher_can_load_photos ();
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int cipher_canonical_to_stream (Camel.MimePart part, uint32 flags, Camel.Stream ostream, GLib.Cancellable? cancellable = null) throws GLib.Error;
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (replacement = "ContentDisposition.decode")]
+	public static Camel.ContentDisposition content_disposition_decode (string @in);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static string content_transfer_encoding_decode (string @in);
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "ContentType.decode")]
+	public static Camel.ContentType content_type_decode (string @in);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static bool debug (string mode);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3645,10 +4686,18 @@
 	public static void debug_end ();
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.12")]
+#if HAS_CAMEL_3_57
+	public static GLib.StringBuilder? debug_get_backtrace ();
+#else
 	public static GLib.StringBuilder debug_get_backtrace ();
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.30")]
+#if HAS_CAMEL_3_57
+	public static GLib.StringBuilder? debug_get_raw_backtrace ();
+#else
 	public static GLib.StringBuilder debug_get_raw_backtrace ();
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static void debug_init ();
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3669,13 +4718,26 @@
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int file_util_decode_fixed_string (void* @in, string str, size_t len);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.50")]
+	public static int file_util_decode_gint64 (void* @in, int64 dest);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static int file_util_decode_gsize (void* @in, size_t dest);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static int file_util_decode_off_t (void* @in, off_t dest);
+#else
 	public static int file_util_decode_off_t (void* @in, size_t dest);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int file_util_decode_string (void* @in, string str);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static int file_util_decode_time_t (void* @in, time_t dest);
+#else
 	public static int file_util_decode_time_t (void* @in, long dest);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int file_util_decode_uint32 (void* @in, uint32 dest);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3683,19 +4745,40 @@
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int file_util_encode_fixed_string (void* @out, string str, size_t len);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.50")]
+	public static int file_util_encode_gint64 (void* @out, int64 value);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static int file_util_encode_gsize (void* @out, size_t value);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static int file_util_encode_off_t (void* @out, off_t value);
+#else
 	public static int file_util_encode_off_t (void* @out, size_t value);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int file_util_encode_string (void* @out, string str);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static int file_util_encode_time_t (void* @out, time_t value);
+#else
 	public static int file_util_encode_time_t (void* @out, long value);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int file_util_encode_uint32 (void* @out, uint32 value);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static string file_util_safe_filename (string name);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static string file_util_savename (string filename);
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "FolderError.quark")]
+	public static GLib.Quark folder_error_quark ();
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "FolderInfo.build")]
+	public static Camel.FolderInfo folder_info_build (GLib.GenericArray<Camel.FolderInfo> folders, string namespace_, char separator, bool short_names);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "2.22")]
 	public static void freeaddrinfo (void* host);
@@ -3703,9 +4786,36 @@
 	[Version (since = "2.22")]
 	public static void* getaddrinfo (string name, string service, void* hints, GLib.Cancellable? cancellable = null) throws GLib.Error;
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (replacement = "HeaderAddress.decode")]
+	public static Camel.HeaderAddress header_address_decode (string @in, string charset);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "HeaderAddress.fold")]
+	public static string header_address_fold (string @in, size_t headerlen);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "HeaderAddress.list_append")]
+	public static void header_address_list_append ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlistp, Camel.HeaderAddress addr);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "HeaderAddress.list_append_list")]
+	public static void header_address_list_append_list ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlistp, [CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrs);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "HeaderAddress.list_clear")]
+	public static void header_address_list_clear ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlistp);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "HeaderAddress.list_encode")]
+	public static string header_address_list_encode ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlist);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "HeaderAddress.list_format")]
+	public static string header_address_list_format ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlist);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static string header_contentid_decode (string @in);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static time_t header_decode_date (string str, int tz_offset);
+#else
 	public static long header_decode_date (string str, int tz_offset);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int header_decode_int (string @in);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3719,7 +4829,11 @@
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static string header_format_ctext (string @in, string default_charset);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static string header_format_date (time_t date, int tz_offset);
+#else
 	public static string header_format_date (long date, int tz_offset);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static string header_location_decode (string @in);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3729,7 +4843,11 @@
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static string header_msgid_decode (string @in);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static string header_msgid_generate (string? domain);
+#else
 	public static string header_msgid_generate (string domain);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static GLib.SList<string> header_newsgroups_decode (string @in);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3744,7 +4862,17 @@
 	public static string? headers_dup_mailing_list (Camel.NameValueArray headers);
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.16")]
+#if HAS_CAMEL_3_57
+	public static string? host_idna_to_ascii (string? host);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.54")]
+	public static bool hostname_utils_host_is_in_domain (string? host, string? domain);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.44")]
+	public static bool hostname_utils_requires_ascii (string hostname);
+#else
 	public static string host_idna_to_ascii (string host);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static unowned string iconv_charset_language (string charset);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3756,7 +4884,11 @@
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int init (string certdb_dir, bool nss_init);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static void localtime_with_offset (time_t tt, [CCode (type = "tm*")] Posix.tm tm, int offset);
+#else
 	public static void localtime_with_offset (long tt, [CCode (type = "tm*")] Posix.tm tm, int offset);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int lock_dot (string path) throws GLib.Error;
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3771,7 +4903,11 @@
 	public static int lock_helper_unlock (int lockid);
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.4")]
+#if HAS_CAMEL_3_57
+	public static time_t mktime_utc ([CCode (type = "tm*")] Posix.tm tm);
+#else
 	public static long mktime_utc ([CCode (type = "tm*")] Posix.tm tm);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static int movemail (string source, string dest) throws GLib.Error;
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3784,20 +4920,53 @@
 	[Version (since = "3.6")]
 	public static void pointer_tracker_untrack (void* ptr);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (replacement = "Provider.get")]
+	public static Camel.Provider provider_get (string protocol) throws GLib.Error;
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "Provider.init")]
+	public static void provider_init ();
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "Provider.list")]
+	public static GLib.List<weak Camel.Provider> provider_list (bool load);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "Provider.load")]
+	public static bool provider_load (string path) throws GLib.Error;
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "ProviderModule.init")]
+	public static void provider_module_init ();
+	[CCode (cheader_filename = "camel/camel.h")]
+	public static unowned string? pstring_add (string? string, bool own);
+#else
 	public static unowned string pstring_add (string string, bool own);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.22")]
+#if HAS_CAMEL_3_57
+	public static bool pstring_contains (string? string);
+#else
 	public static bool pstring_contains (string string);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.6")]
 	public static void pstring_dump_stat ();
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	public static void pstring_free (string? string);
+#else
 	public static void pstring_free (string string);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "2.24")]
+#if HAS_CAMEL_3_57
+	public static unowned string? pstring_peek (string? string);
+	[CCode (cheader_filename = "camel/camel.h")]
+	public static unowned string? pstring_strdup (string? string);
+#else
 	public static unowned string pstring_peek (string string);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static unowned string pstring_strdup (string string);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static size_t quoted_decode_step ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length = false)] ref uint8[] @out, [CCode (array_length_cname = "savestate", array_length_pos = 2.5)] ref int[] saveme);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3829,23 +4998,64 @@
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static bool search_header_match (string value, string match, Camel._search_match_t how, Camel._search_t type, string default_charset);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.57.1")]
+	public static time_t search_util_add_months (time_t t, int months);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.57.1")]
+	public static int search_util_compare_date (int64 datetime1, int64 datetime2);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.57.1")]
+	public static uint64 search_util_hash_message_id (string message_id, bool needs_decode);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.57.1")]
+	public static time_t search_util_make_time (int argc, Camel.SExpResult argv);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.57.1")]
+	public static int64 search_util_str_to_time (string? str);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static void search_words_free (void* words);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static void* search_words_simple (void* words);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static void* search_words_split (uint8 @in);
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "ServiceError.quark")]
+	public static GLib.Quark service_error_quark ();
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "2.24")]
 	public static void shutdown ();
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (replacement = "StoreError.quark")]
+	public static GLib.Quark store_error_quark ();
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (deprecated = true, deprecated_since = "3.46", replacement = "StoreInfo.name")]
+	public static unowned string store_info_name (Camel.StoreSummary summary, Camel.StoreInfo info);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (deprecated = true, deprecated_since = "3.46", replacement = "StoreInfo.path")]
+#endif
 	public static unowned string store_info_path (Camel.StoreSummary summary, Camel.StoreInfo info);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (deprecated = true, deprecated_since = "3.46", replacement = "StoreInfo.set_string")]
+	public static void store_info_set_string (Camel.StoreSummary summary, Camel.StoreInfo info, int type, string value);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static int strcase_equal (void* a, void* b);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static uint strcase_hash (void* v);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static unowned string strdown (string str);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.44")]
+	public static bool string_is_all_ascii (string? str);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static string strstrcase (string haystack, string needle);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static Camel.MessageFlags system_flag (string name);
@@ -3855,7 +5065,17 @@
 	public static string text_to_html (string @in, Camel.MimeFilterToHTMLFlags flags, uint32 color);
 	[CCode (cheader_filename = "camel/camel.h")]
 	[Version (since = "3.24")]
+#if HAS_CAMEL_3_57
+	public static time_t time_value_apply (time_t src_time, Camel.TimeUnit unit, int value);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "TransferEncoding.from_string")]
+	public static Camel.TransferEncoding transfer_encoding_from_string (string string);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "TransferEncoding.to_string")]
+	public static unowned string transfer_encoding_to_string (Camel.TransferEncoding encoding);
+#else
 	public static long time_value_apply (long src_time, Camel.TimeUnit unit, int value);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static string ucs2_utf8 (string ptr);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3866,6 +5086,35 @@
 	public static void unlock_flock (int fd);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static void unlock_folder (string path, int fd);
+#if HAS_CAMEL_3_57
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.addrspec_end")]
+	public static bool url_addrspec_end (string @in, string pos, string inend, Camel.UrlMatch match);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.addrspec_start")]
+	public static bool url_addrspec_start (string @in, string pos, string inend, Camel.UrlMatch match);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.decode")]
+	public static void url_decode (string part);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.decode_path")]
+	public static string url_decode_path (string path);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.encode")]
+	public static string url_encode (string part, string? escape_extra);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.file_end")]
+	public static bool url_file_end (string @in, string pos, string inend, Camel.UrlMatch match);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.file_start")]
+	public static bool url_file_start (string @in, string pos, string inend, Camel.UrlMatch match);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.web_end")]
+	public static bool url_web_end (string @in, string pos, string inend, Camel.UrlMatch match);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (replacement = "URL.web_start")]
+	public static bool url_web_start (string @in, string pos, string inend, Camel.UrlMatch match);
+#endif
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static unowned string ustrstrcase (string haystack, string needle);
 	[CCode (cheader_filename = "camel/camel.h")]
@@ -3911,6 +5160,17 @@
 	[Version (since = "3.40")]
 	public static GLib.GenericArray<weak string> util_get_directory_variants (string main_path, string replace_prefix, bool with_modules_dir);
 	[CCode (cheader_filename = "camel/camel.h")]
+#if HAS_CAMEL_3_57
+	[Version (since = "3.44")]
+	public static string? utils_sanitize_ascii_domain_in_address (string? email_address, bool do_format);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.44")]
+	public static bool utils_sanitize_ascii_domain_in_url (Camel.URL url);
+	[CCode (cheader_filename = "camel/camel.h")]
+	[Version (since = "3.44")]
+	public static string? utils_sanitize_ascii_domain_in_url_str (string? url_str);
+	[CCode (cheader_filename = "camel/camel.h")]
+#endif
 	public static size_t uudecode_step ([CCode (array_length_cname = "inlen", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length = false)] ref uint8[] @out, [CCode (array_length_cname = "state", array_length_pos = 2.5)] ref uint32[] save);
 	[CCode (cheader_filename = "camel/camel.h")]
 	public static size_t uuencode_close ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length = false)] ref uint8[] @out, [CCode (array_length = false)] ref uint8 uubuf[60], [CCode (array_length_cname = "state", array_length_pos = 3.5)] ref uint32[] save);
openSUSE Build Service is sponsored by