/* camel-1.2.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Camel", gir_namespace = "Camel", gir_version = "1.2", lower_case_cprefix = "camel_")]
namespace Camel {
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_address_get_type ()")]
	public class Address : GLib.Object {
		[CCode (has_construct_function = false)]
		public Address ();
		public virtual int cat (Camel.Address source);
		public int copy (Camel.Address source);
		public virtual int decode (string raw);
		public virtual string encode ();
		public virtual string format ();
		public virtual int length ();
		public Camel.Address new_clone ();
		public virtual void remove (int index);
		public virtual int unformat (string raw);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	[Version (since = "3.12")]
	public class AsyncClosure {
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_block_file_get_type ()")]
	public class BlockFile : GLib.Object {
		[CCode (has_construct_function = false)]
		public BlockFile (string path, int flags, string version, size_t block_size);
		public void attach_block (Camel.Block bl);
		public int @delete ();
		public void detach_block (Camel.Block bl);
		public int free_block (Camel._block_t id);
		[Version (since = "3.24")]
		public int get_cache_limit ();
		[Version (since = "3.24")]
		public unowned Camel.BlockRoot? get_root ();
		[Version (since = "3.24")]
		public unowned Camel.Block? get_root_block ();
		[NoWrapper]
		public virtual int init_root ();
		public int rename (string path);
		[Version (since = "3.24")]
		public void set_cache_limit (int block_cache_limit);
		public int sync ();
		public int sync_block (Camel.Block bl);
		public void touch_block (Camel.Block bl);
		public void unref_block (Camel.Block bl);
		[NoWrapper]
		public virtual int validate_root ();
	}
	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_cert_ref", type_id = "camel_cert_get_type ()", unref_function = "camel_cert_unref")]
	[Compact]
	public class Cert {
		public string fingerprint;
		public string hostname;
		public string issuer;
		public GLib.Bytes rawcert;
		public int refcount;
		public string subject;
		public Camel.CertTrust trust;
		[CCode (has_construct_function = false)]
		public Cert ();
		public bool load_cert_file () throws GLib.Error;
		public Camel.Cert @ref ();
		public bool save_cert_file (GLib.ByteArray der_data) throws GLib.Error;
		public void unref ();
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "certdb", type_id = "camel_certdb_get_type ()")]
	public class CertDB : GLib.Object {
		[CCode (has_construct_function = false)]
		public CertDB ();
		[NoWrapper]
		public virtual Camel.Cert cert_load ([CCode (type = "FILE*")] GLib.FileStream istream);
		[NoWrapper]
		public virtual int cert_save (Camel.Cert cert, [CCode (type = "FILE*")] GLib.FileStream ostream);
		public void clear ();
		public static Camel.CertDB get_default ();
		[Version (since = "3.6")]
		public Camel.Cert? get_host (string hostname, string fingerprint);
		[NoWrapper]
		public virtual int header_load ([CCode (type = "FILE*")] GLib.FileStream istream);
		[NoWrapper]
		public virtual int header_save ([CCode (type = "FILE*")] GLib.FileStream ostream);
		[Version (since = "3.16")]
		public GLib.SList<Camel.Cert> list_certs ();
		public int load ();
		[Version (since = "3.6")]
		public void put (Camel.Cert cert);
		[Version (since = "3.6")]
		public void remove_host (string hostname, string fingerprint);
		public int save ();
		public void set_default ();
		public void set_filename (string filename);
		public void touch ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_cipher_context_get_type ()")]
	public class CipherContext : GLib.Object {
		[CCode (has_construct_function = false)]
		public CipherContext (Camel.Session? session);
		[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")]
		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 ();
		[Version (since = "2.32")]
		public unowned Camel.Session? get_session ();
		public virtual unowned string hash_to_id (Camel.CipherHash hash);
		public virtual Camel.CipherHash id_to_hash (string id);
		[Version (since = "3.0")]
		public async bool sign (string userid, Camel.CipherHash hash, Camel.MimePart ipart, Camel.MimePart opart, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool sign_sync (string userid, Camel.CipherHash hash, Camel.MimePart ipart, Camel.MimePart opart, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async Camel.CipherValidity verify (Camel.MimePart ipart, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public virtual Camel.CipherValidity verify_sync (Camel.MimePart ipart, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public Camel.Session session { get; construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_cipher_validity_get_type ()")]
	[Compact]
	public class CipherValidity {
		public weak GLib.Queue children;
		[CCode (has_construct_function = false)]
		public CipherValidity ();
		public int add_certinfo (Camel.CipherValidityMode mode, string name, string email);
		[Version (since = "2.30")]
		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);
		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);
		public unowned string get_description ();
		public bool get_valid ();
		public void init ();
		[Version (since = "3.22")]
		public void set_certinfo_property (Camel.CipherValidityMode mode, int info_index, string name, void* value, GLib.DestroyNotify? value_free, Camel.CipherCloneFunc? value_clone);
		public void set_description (string description);
		public void set_valid (bool valid);
	}
	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_content_disposition_ref", type_id = "camel_content_disposition_get_type ()", unref_function = "camel_content_disposition_unref")]
	[Compact]
	public class ContentDisposition {
		public string disposition;
		public Camel.HeaderParam @params;
		public uint refcount;
		[CCode (has_construct_function = false)]
		public ContentDisposition ();
		public static Camel.ContentDisposition decode (string @in);
		public string format ();
		public bool is_attachment (Camel.ContentType content_type);
		public bool is_attachment_ex (Camel.ContentType content_type, Camel.ContentType parent_content_type);
		public Camel.ContentDisposition @ref ();
		public void unref ();
	}
	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_content_type_ref", type_id = "camel_content_type_get_type ()", unref_function = "camel_content_type_unref")]
	[Compact]
	public class ContentType {
		public Camel.HeaderParam @params;
		public uint refcount;
		public string subtype;
		public string type;
		[CCode (has_construct_function = false)]
		public ContentType (string type, string subtype);
		public static Camel.ContentType decode (string @in);
		public void dump ();
		public string format ();
		public bool @is (string type, string subtype);
		public unowned string param (string name);
		public Camel.ContentType @ref ();
		public void set_param (string name, string value);
		public string simple ();
		public void unref ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_db_get_type ()")]
	[Version (since = "2.24")]
	public class DB : GLib.Object {
		[CCode (has_construct_function = false)]
		[Version (since = "3.58")]
		public DB (string filename) throws GLib.Error;
		[Version (since = "3.58")]
		public bool abort_transaction () throws GLib.Error;
		[Version (since = "3.58")]
		public bool begin_transaction () throws GLib.Error;
		[Version (since = "3.58")]
		public bool end_transaction () throws GLib.Error;
		public static GLib.Quark error_quark ();
		[Version (since = "3.58")]
		public bool exec_select (string stmt, Camel.DBSelectCB callback) throws GLib.Error;
		[Version (since = "3.58")]
		public bool exec_statement (string stmt) throws GLib.Error;
		public static void free_sqlized_string (string? string);
		[Version (since = "3.24")]
		public unowned string get_filename ();
		[Version (since = "3.58")]
		public bool has_table (string table_name);
		[Version (since = "3.58")]
		public bool has_table_with_column (string table_name, string column_name);
		[Version (since = "3.16")]
		public bool maybe_run_maintenance () throws GLib.Error;
		[Version (since = "3.58")]
		public bool open (string filename) throws GLib.Error;
		[Version (since = "3.58")]
		public void reader_lock ();
		[Version (since = "3.58")]
		public void reader_unlock ();
		[Version (since = "3.24")]
		public static void release_cache_memory ();
		public bool set_collate (string col, string collate, Camel.DBCollate func);
		public static string sqlize_string (string string);
		[Version (since = "3.58")]
		public static void sqlize_to_statement (GLib.StringBuilder stmt, string? str, Camel.DBSqlizeFlags flags);
		[Version (since = "3.58")]
		public void writer_lock ();
		[Version (since = "3.58")]
		public void writer_unlock ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_data_cache_get_type ()")]
	public class DataCache : GLib.Object {
		[CCode (has_construct_function = false)]
		public DataCache (string path) throws GLib.Error;
		public GLib.IOStream add (string path, string key) throws GLib.Error;
		[Version (since = "3.2")]
		public void clear (string path);
		[Version (since = "3.26")]
		public void foreach_remove (string path, Camel.DataCacheRemoveFunc func);
		public GLib.IOStream @get (string path, string key) throws GLib.Error;
		[Version (since = "3.24")]
		public bool get_expire_enabled ();
		[Version (since = "2.26")]
		public string get_filename (string path, string key);
		[Version (since = "2.32")]
		public unowned string get_path ();
		public int remove (string path, string key) throws GLib.Error;
		public void set_expire_access (time_t when);
		public void set_expire_age (time_t when);
		[Version (since = "3.24")]
		public void set_expire_enabled (bool expire_enabled);
		[Version (since = "2.32")]
		public void set_path (string path);
		public bool expire_enabled { get; set construct; }
		public string path { get; set construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_data_wrapper_get_type ()")]
	public class DataWrapper : GLib.Object {
		[CCode (has_construct_function = false)]
		public DataWrapper ();
		[Version (since = "3.24")]
		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;
		[Version (since = "3.46")]
		public bool construct_from_data_sync (void* data, ssize_t data_len, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[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")]
		public virtual bool construct_from_input_stream_sync (GLib.InputStream input_stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async bool construct_from_stream (Camel.Stream stream, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool construct_from_stream_sync (Camel.Stream stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public async ssize_t decode_to_output_stream (GLib.OutputStream output_stream, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public virtual ssize_t decode_to_output_stream_sync (GLib.OutputStream output_stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async ssize_t decode_to_stream (Camel.Stream stream, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual ssize_t decode_to_stream_sync (Camel.Stream stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.2")]
		public unowned GLib.ByteArray get_byte_array ();
		[Version (since = "3.24")]
		public Camel.TransferEncoding get_encoding ();
		public virtual string get_mime_type ();
		public virtual unowned Camel.ContentType? get_mime_type_field ();
		public virtual bool is_offline ();
		[Version (since = "3.24")]
		public void set_encoding (Camel.TransferEncoding encoding);
		public virtual void set_mime_type (string mime_type);
		public virtual void set_mime_type_field (Camel.ContentType? mime_type);
		[Version (since = "3.24")]
		public void set_offline (bool offline);
		[Version (since = "3.24")]
		public void take_mime_type_field (owned Camel.ContentType? mime_type);
		[Version (since = "3.12")]
		public async ssize_t write_to_output_stream (GLib.OutputStream output_stream, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public virtual ssize_t write_to_output_stream_sync (GLib.OutputStream output_stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async ssize_t write_to_stream (Camel.Stream stream, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual ssize_t write_to_stream_sync (Camel.Stream stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_filter_driver_get_type ()")]
	public class FilterDriver : GLib.Object {
		[CCode (has_construct_function = false)]
		public FilterDriver (Camel.Session session);
		public void add_rule (string name, string match, string action);
		public int filter_folder (Camel.Folder folder, Camel.UIDCache cache, GLib.GenericArray<string>? uids, bool remove, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public int filter_mbox (string mbox, string? original_source_url, GLib.Cancellable? cancellable = null) throws GLib.Error;
		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;
		public void flush () throws GLib.Error;
		public bool remove_rule_by_name (string name);
		public void set_default_folder (Camel.Folder? def);
		public void set_folder_func (Camel.FilterGetFolderFunc get_folder);
		public void set_logfile ([CCode (type = "FILE*")] GLib.FileStream logfile);
		public void set_play_sound_func (Camel.FilterPlaySoundFunc func);
		public void set_shell_func (Camel.FilterShellFunc func);
		public void set_status_func (Camel.FilterStatusFunc func);
		public void set_system_beep_func (Camel.FilterSystemBeepFunc func);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_filter_input_stream_get_type ()")]
	public class FilterInputStream : GLib.FilterInputStream {
		[CCode (has_construct_function = false, type = "GInputStream*")]
		[Version (since = "3.12")]
		public FilterInputStream (GLib.InputStream base_stream, Camel.MimeFilter filter);
		[Version (since = "3.12")]
		public unowned Camel.MimeFilter get_filter ();
		public Camel.MimeFilter filter { get; construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_filter_output_stream_get_type ()")]
	public class FilterOutputStream : GLib.FilterOutputStream {
		[CCode (has_construct_function = false, type = "GOutputStream*")]
		[Version (since = "3.12")]
		public FilterOutputStream (GLib.OutputStream base_stream, Camel.MimeFilter filter);
		[Version (since = "3.12")]
		public unowned Camel.MimeFilter get_filter ();
		public Camel.MimeFilter filter { get; construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_folder_get_type ()")]
	public abstract class Folder : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Folder ();
		[Version (since = "3.0")]
		public async bool append_message (Camel.MimeMessage message, Camel.MessageInfo? info, int io_priority, GLib.Cancellable? cancellable = null, out string? appended_uid) throws GLib.Error;
		[Version (since = "3.0")]
		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);
		public void @delete ();
		[NoWrapper]
		public virtual void delete_ ();
		[Version (since = "3.8")]
		public string dup_description ();
		[Version (since = "3.8")]
		public string dup_display_name ();
		[Version (since = "3.8")]
		public string dup_full_name ();
		[Version (since = "3.58")]
		public virtual bool dup_headers_sync (string uid, out Camel.NameValueArray out_headers, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.58")]
		public virtual GLib.GenericArray<weak string> dup_uids ();
		[Version (since = "3.58")]
		public virtual GLib.GenericArray<weak string> dup_uncached_uids (GLib.GenericArray<string> uids) throws GLib.Error;
		[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;
		public virtual void freeze ();
		[Version (since = "2.32")]
		public unowned string get_description ();
		[Version (since = "3.2")]
		public unowned string get_display_name ();
		[Version (since = "2.26")]
		public virtual string get_filename (string uid) throws GLib.Error;
		[Version (since = "3.24")]
		public uint32 get_flags ();
		[Version (since = "3.24")]
		public unowned Camel.FolderSummary? get_folder_summary ();
		[Version (since = "2.32")]
		public int get_frozen_count ();
		[Version (since = "3.46")]
		public virtual unowned string get_full_display_name ();
		public unowned string get_full_name ();
		[Version (since = "3.32")]
		public Camel.ThreeState get_mark_seen ();
		[Version (since = "3.32")]
		public int get_mark_seen_timeout ();
		[Version (since = "3.0")]
		public async unowned Camel.MimeMessage get_message (string message_uid, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public virtual Camel.MimeMessage? get_message_cached (string message_uid, GLib.Cancellable? cancellable = null);
		public virtual int get_message_count ();
		public virtual uint32 get_message_flags (string uid);
		public virtual Camel.MessageInfo? get_message_info (string uid);
		[Version (since = "3.0")]
		public virtual unowned Camel.MimeMessage get_message_sync (string message_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public unowned Camel.Store get_parent_store ();
		public virtual uint32 get_permanent_flags ();
		[Version (since = "3.2")]
		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;
		[Version (since = "3.58")]
		public unowned string? get_state_filename ();
		[NoWrapper]
		public virtual bool has_search_capability ();
		public bool has_summary_capability ();
		public virtual bool is_frozen ();
		[Version (since = "3.58")]
		public void load_state ();
		[Version (since = "2.32")]
		public void @lock ();
		[CCode (cname = "camel_folder_class_map_legacy_property")]
		[Version (since = "3.58")]
		public class void map_legacy_property (string prop_name, int32 tag);
		[Version (since = "3.22")]
		public virtual void prepare_content_refresh ();
		[Version (since = "3.4")]
		public async bool purge_message_cache (string start_uid, string end_uid, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.4")]
		public virtual bool purge_message_cache_sync (string start_uid, string end_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.2")]
		public async bool refresh_info (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool refresh_info_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		public virtual void rename (string new_name);
		[Version (since = "3.58")]
		public void save_state ();
		[Version (since = "3.58")]
		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.58")]
		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.58")]
		public virtual bool search_sync (string expression, out GLib.GenericArray<weak string>? out_uids, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "2.32")]
		public void set_description (string description);
		[Version (since = "3.2")]
		public void set_display_name (string display_name);
		[Version (since = "3.24")]
		public void set_flags (uint32 folder_flags);
		[Version (since = "2.32")]
		public void set_full_name (string full_name);
		[Version (since = "2.30")]
		public void set_lock_async (bool skip_folder_lock);
		[Version (since = "3.32")]
		public void set_mark_seen (Camel.ThreeState mark_seen);
		[Version (since = "3.32")]
		public void set_mark_seen_timeout (int timeout);
		public virtual bool set_message_flags (string uid, uint32 mask, uint32 @set);
		[Version (since = "2.24")]
		public virtual void sort_uids (GLib.GenericArray<string> uids);
		[Version (since = "3.0")]
		public async bool synchronize (bool expunge, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async bool synchronize_message (string message_uid, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool synchronize_message_sync (string message_uid, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool synchronize_sync (bool expunge, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public void take_folder_summary (owned Camel.FolderSummary summary);
		[Version (since = "3.58")]
		public void take_state_filename (owned string filename);
		public virtual void thaw ();
		[Version (since = "3.0")]
		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;
		[Version (since = "2.32")]
		public void @unlock ();
		public string description { get; set construct; }
		public string display_name { get; set construct; }
		public string full_name { get; set construct; }
		[Version (since = "3.32")]
		public Camel.ThreeState mark_seen { get; set construct; }
		[Version (since = "3.32")]
		public int mark_seen_timeout { get; set construct; }
		public Camel.Store parent_store { get; construct; }
		[HasEmitter]
		public virtual signal void changed (Camel.FolderChangeInfo changes);
		public virtual signal void deleted ();
		public virtual signal void renamed (string old_name);
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_folder_change_info_get_type ()")]
	[Compact]
	public class FolderChangeInfo {
		public weak GLib.GenericArray<void*> uid_added;
		public weak GLib.GenericArray<void*> uid_changed;
		public weak GLib.GenericArray<void*> uid_recent;
		public weak GLib.GenericArray<void*> uid_removed;
		[CCode (has_construct_function = false)]
		public FolderChangeInfo ();
		public void add_source (string uid);
		public void add_source_list (owned GLib.GenericArray<weak string> list);
		public void add_uid (string uid);
		public void add_update (string uid);
		public void add_update_list (owned GLib.GenericArray<weak string> list);
		public void build_diff ();
		public void cat (Camel.FolderChangeInfo src);
		public void change_uid (string uid);
		public bool changed ();
		public void clear ();
		[Version (since = "3.24")]
		public Camel.FolderChangeInfo copy ();
		public void free ();
		[Version (since = "3.24")]
		public unowned GLib.GenericArray<string> get_added_uids ();
		[Version (since = "3.24")]
		public unowned GLib.GenericArray<string> get_changed_uids ();
		[Version (since = "3.24")]
		public unowned GLib.GenericArray<string> get_recent_uids ();
		[Version (since = "3.24")]
		public unowned GLib.GenericArray<string> get_removed_uids ();
		public void recent_uid (string uid);
		public void remove_uid (string uid);
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_folder_info_get_type ()")]
	[Compact]
	public class FolderInfo {
		public Camel.FolderInfo? child;
		public string display_name;
		public Camel.FolderInfoFlags flags;
		public string full_name;
		public Camel.FolderInfo? next;
		public weak Camel.FolderInfo? parent;
		public int32 total;
		public int32 unread;
		[CCode (has_construct_function = false)]
		[Version (since = "2.22")]
		public FolderInfo ();
		public static Camel.FolderInfo build (GLib.GenericArray<Camel.FolderInfo> folders, string namespace_, char separator, bool short_names);
		public Camel.FolderInfo clone ();
		public void free ();
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_folder_quota_info_get_type ()")]
	[Compact]
	[Version (since = "2.24")]
	public class FolderQuotaInfo {
		public string name;
		public Camel.FolderQuotaInfo? next;
		public uint64 total;
		public uint64 used;
		[CCode (has_construct_function = false)]
		public FolderQuotaInfo (string name, uint64 used, uint64 total);
		public Camel.FolderQuotaInfo clone ();
		public void free ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_folder_summary_get_type ()")]
	public class FolderSummary : GLib.Object {
		[CCode (has_construct_function = false)]
		public FolderSummary (Camel.Folder folder);
		public void add (Camel.MessageInfo info, bool force_keep_uid);
		[Version (since = "2.24")]
		public bool check_uid (string uid);
		public bool clear () throws GLib.Error;
		public uint count ();
		[Version (since = "3.58")]
		public GLib.GenericArray<weak string> dup_changed ();
		[Version (since = "3.58")]
		public GLib.GenericArray<weak string> dup_uids ();
		[CCode (vfunc_name = "message_info_from_uid")]
		[Version (since = "3.4")]
		public virtual Camel.MessageInfo? @get (string uid);
		[Version (since = "3.4")]
		public uint32 get_deleted_count ();
		[Version (since = "3.24")]
		public uint32 get_flags ();
		[Version (since = "3.4")]
		public unowned Camel.Folder get_folder ();
		[Version (since = "3.6")]
		public GLib.HashTable<weak string,int> get_hash ();
		[Version (since = "3.4")]
		public unowned Camel.Index? get_index ();
		[Version (since = "3.12")]
		public uint32 get_info_flags (string uid);
		[Version (since = "3.4")]
		public uint32 get_junk_count ();
		[Version (since = "3.4")]
		public uint32 get_junk_not_deleted_count ();
		[Version (since = "3.4")]
		public uint32 get_next_uid ();
		[Version (since = "3.4")]
		public uint32 get_saved_count ();
		[Version (since = "3.24")]
		public int64 get_timestamp ();
		[Version (since = "3.4")]
		public uint32 get_unread_count ();
		[Version (since = "3.24")]
		public uint32 get_version ();
		[Version (since = "3.4")]
		public uint32 get_visible_count ();
		[Version (since = "3.24")]
		public bool header_load ([CCode (type = "_CamelStore*")] Camel.Store store, string folder_name) throws GLib.Error;
		[CCode (vfunc_name = "summary_header_load")]
		[NoWrapper]
		public virtual bool header_load_impl (Camel.StoreDBFolderRecord record);
		[Version (since = "3.24")]
		public bool header_save () throws GLib.Error;
		[CCode (vfunc_name = "message_info_new_from_headers")]
		[Version (since = "3.24")]
		public virtual Camel.MessageInfo info_new_from_headers (Camel.NameValueArray headers);
		[CCode (vfunc_name = "message_info_new_from_message")]
		public virtual Camel.MessageInfo info_new_from_message (Camel.MimeMessage message);
		[CCode (vfunc_name = "message_info_new_from_parser")]
		public virtual Camel.MessageInfo info_new_from_parser (Camel.MimeParser parser);
		[Version (since = "3.24")]
		public bool load () throws GLib.Error;
		[Version (since = "2.32")]
		public void @lock ();
		public uint32 next_uid ();
		public virtual string next_uid_string ();
		[Version (since = "2.26")]
		public Camel.MessageInfo? peek_loaded (string uid);
		[Version (since = "2.32")]
		public virtual bool prepare_fetch_all () throws GLib.Error;
		public bool remove (Camel.MessageInfo info);
		public bool remove_uid (string uid);
		[Version (since = "3.6")]
		public bool remove_uids (GLib.GenericArray<string> uids);
		[Version (since = "3.58")]
		public bool replace_flags (string uid, uint32 new_flags);
		[Version (since = "3.24")]
		public bool save () throws GLib.Error;
		[Version (since = "3.24")]
		public void set_flags (uint32 flags);
		public void set_index (Camel.Index? index);
		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);
		[NoWrapper]
		public virtual bool summary_header_save (Camel.StoreDBFolderRecord inout_record) throws GLib.Error;
		public void touch ();
		[Version (since = "2.32")]
		public void @unlock ();
		public uint deleted_count { get; }
		public Camel.Folder folder { get; construct; }
		public uint junk_count { get; }
		public uint junk_not_deleted_count { get; }
		public uint saved_count { get; }
		public uint unread_count { get; }
		public uint visible_count { get; }
		[Version (since = "3.58")]
		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.58")]
		public FolderThread (Camel.Folder folder, GLib.GenericArray<string>? uids, Camel.FolderThreadFlags flags);
		public uint dump ();
		[Version (since = "3.58")]
		public unowned Camel.FolderThreadNode get_tree ();
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	public class FolderThreadNode {
		[Version (since = "3.58")]
		public unowned Camel.FolderThreadNode? get_child ();
		[Version (since = "3.58")]
		public void* get_item ();
		[Version (since = "3.58")]
		public unowned Camel.FolderThreadNode? get_next ();
		[Version (since = "3.58")]
		public unowned Camel.FolderThreadNode? get_parent ();
	}
	[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*")]
		public GpgContext (Camel.Session? session);
		[Version (since = "2.32")]
		public bool get_always_trust ();
		[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 ();
		[Version (since = "3.20")]
		public bool get_prefer_inline ();
		[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;
		public void set_always_trust (bool always_trust);
		[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);
		[Version (since = "3.20")]
		public void set_prefer_inline (bool prefer_inline);
		public bool always_trust { get; set construct; }
		public bool locate_keys { get; set construct; }
		public bool prefer_inline { get; set construct; }
	}
	[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 ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_html_parser_get_type ()")]
	public class HTMLParser : GLib.Object {
		[CCode (has_construct_function = false)]
		public HTMLParser ();
		public unowned string attr (string name);
		public unowned GLib.GenericArray<string> attr_list (ref GLib.GenericArray<string>? values);
		public unowned string left (int lenp);
		public void set_data (string start, int len, int last);
		public Camel.HTMLParserState step (string datap, int lenp);
		public unowned string tag ();
	}
	[CCode (cheader_filename = "camel/camel.h", ref_function = "camel_header_address_ref", type_id = "camel_header_address_get_type ()", unref_function = "camel_header_address_unref")]
	[Compact]
	public class HeaderAddress {
		public string name;
		public Camel.HeaderAddress? next;
		public uint refcount;
		public Camel.HeaderAddressType type;
		[CCode (cname = "v.addr")]
		public string v_addr;
		[CCode (cname = "v.members")]
		public Camel.HeaderAddress? v_members;
		[CCode (has_construct_function = false)]
		public HeaderAddress ();
		public void add_member (Camel.HeaderAddress member);
		public static Camel.HeaderAddress decode (string @in, string charset);
		public static string fold (string @in, size_t headerlen);
		[CCode (has_construct_function = false)]
		public HeaderAddress.group (string name);
		public static void list_append ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlistp, Camel.HeaderAddress addr);
		public static void 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);
		public static void list_clear ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlistp);
		public static string list_encode ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlist);
		public static string list_format ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] addrlist);
		public Camel.HeaderAddress @ref ();
		public void set_addr (string addr);
		public void set_members ([CCode (array_length = false, array_null_terminated = true)] Camel.HeaderAddress[] group);
		public void set_name (string name);
		public void unref ();
		[CCode (cname = "camel_header_address_new_name", has_construct_function = false)]
		public HeaderAddress.with_name (string name, string addr);
	}
	[CCode (cheader_filename = "camel/camel.h", free_function = "camel_header_param_list_free", has_type_id = false)]
	[Compact]
	public class HeaderParam {
		public string name;
		public Camel.HeaderParam? next;
		public string value;
		[CCode (cname = "camel_header_param_list_decode")]
		[Version (replacement = "HeaderParam.list_decode")]
		public static Camel.HeaderParam? decode (string? @in);
		[CCode (cname = "camel_header_param_list_format")]
		[Version (replacement = "HeaderParam.list_format")]
		public string format ();
		[CCode (cname = "camel_header_param_list_format_append", instance_pos = 1.5)]
		[Version (replacement = "HeaderParam.list_format_append")]
		public void format_append (GLib.StringBuilder @out);
		[CCode (cname = "camel_header_param_list_free")]
		[DestroysInstance]
		[Version (replacement = "HeaderParam.list_free")]
		public void free ();
		[CCode (cname = "camel_header_param")]
		public unowned string get_value (string name);
		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);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_index_get_type ()")]
	public class Index : GLib.Object {
		public uint32 flags;
		public weak Camel.IndexNorm normalize;
		public void* normalize_data;
		public weak string path;
		public uint32 state;
		public uint32 version;
		[CCode (has_construct_function = false)]
		protected Index ();
		public virtual unowned Camel.IndexName? add_name (string name);
		public virtual int compress ();
		public void @construct (string path, int flags);
		public int @delete ();
		[NoWrapper]
		public virtual int delete_ ();
		public virtual void delete_name (string name);
		public virtual unowned Camel.IndexCursor? find (string word);
		public virtual unowned Camel.IndexCursor? find_name (string name);
		public virtual int has_name (string name);
		public virtual int rename (string path);
		[Version (since = "2.32")]
		public void set_normalize (Camel.IndexNorm func);
		public virtual int sync ();
		public virtual unowned Camel.IndexCursor? words ();
		public virtual int write_name (Camel.IndexName idn);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_index_cursor_get_type ()")]
	public class IndexCursor : GLib.Object {
		public weak Camel.Index index;
		[CCode (has_construct_function = false)]
		protected IndexCursor ();
		public virtual unowned string next ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_index_name_get_type ()")]
	public class IndexName : GLib.Object {
		public weak GLib.ByteArray buffer;
		public weak Camel.Index index;
		public weak string name;
		public weak GLib.HashTable<void*,void*> words;
		[CCode (has_construct_function = false)]
		protected IndexName ();
		public virtual size_t add_buffer (string buffer, size_t len);
		public virtual void add_word (string word);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_internet_address_get_type ()")]
	public class InternetAddress : Camel.Address {
		[CCode (has_construct_function = false)]
		public InternetAddress ();
		public int add (string name, string address);
		public static string encode_address (int? len, string name, string addr);
		[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);
		[Version (since = "3.44")]
		public bool sanitize_ascii_domain ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_key_file_get_type ()")]
	public class KeyFile : GLib.Object {
		[CCode (has_construct_function = false)]
		public KeyFile (string path, int flags, string version);
		public int @delete ();
		public int read (Camel._block_t start, [CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] Camel._key_t[]? records);
		public int rename (string path);
		public int write (Camel._block_t parent, [CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] Camel._key_t[] records);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_key_table_get_type ()")]
	public class KeyTable : GLib.Object {
		[CCode (has_construct_function = false)]
		public KeyTable (Camel.BlockFile bs, Camel._block_t root);
		public Camel._key_t add (string key, Camel._block_t data, uint flags);
		public Camel._block_t lookup (Camel._key_t keyid, string key, uint flags);
		public Camel._key_t next (Camel._key_t next, string keyp, uint flagsp, Camel._block_t datap);
		public bool set_data (Camel._key_t keyid, Camel._block_t data);
		public bool set_flags (Camel._key_t keyid, uint flags, uint @set);
		public int sync ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_local_settings_get_type ()")]
	[Version (since = "3.4")]
	public class LocalSettings : Camel.StoreSettings {
		[CCode (has_construct_function = false)]
		protected LocalSettings ();
		public string dup_path ();
		[Version (since = "3.24")]
		public bool get_filter_all ();
		[Version (since = "3.24")]
		public bool get_filter_junk ();
		[Version (since = "3.40")]
		public bool get_maildir_alt_flag_sep ();
		public unowned string get_path ();
		[Version (since = "3.24")]
		public void set_filter_all (bool filter_all);
		[Version (since = "3.24")]
		public void set_filter_junk (bool filter_junk);
		[Version (since = "3.40")]
		public void set_maildir_alt_flag_sep (bool maildir_alt_flag_sep);
		public void set_path (string path);
		public bool filter_all { get; set construct; }
		public bool filter_junk { get; set construct; }
		public bool maildir_alt_flag_sep { get; set construct; }
		public string path { get; set construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_medium_get_type ()")]
	public abstract class Medium : Camel.DataWrapper {
		[CCode (has_construct_function = false)]
		protected Medium ();
		public virtual void add_header (string name, string value);
		[Version (since = "3.24")]
		public virtual Camel.NameValueArray dup_headers ();
		public virtual unowned Camel.DataWrapper? get_content ();
		public virtual unowned string? get_header (string name);
		[Version (since = "3.24")]
		public virtual unowned Camel.NameValueArray get_headers ();
		public virtual void remove_header (string name);
		public virtual void set_content (Camel.DataWrapper? content);
		public virtual void set_header (string name, string? value);
		public Camel.DataWrapper content { get; set; }
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	[Version (since = "3.4")]
	public class MemChunk {
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	[Version (since = "2.32")]
	public class MemPool {
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_message_content_info_get_type ()")]
	[Compact]
	public class MessageContentInfo {
		public Camel.MessageContentInfo? childs;
		public string description;
		public Camel.ContentDisposition disposition;
		public string encoding;
		public string id;
		public Camel.MessageContentInfo? next;
		public weak Camel.MessageContentInfo? parent;
		public uint32 size;
		public Camel.ContentType type;
		[CCode (has_construct_function = false)]
		public MessageContentInfo ();
		[Version (since = "3.24")]
		public Camel.MessageContentInfo? copy ();
		public void dump (int depth);
		public void free ();
		[CCode (has_construct_function = false)]
		public MessageContentInfo.from_headers (Camel.NameValueArray headers);
		[CCode (has_construct_function = false)]
		public MessageContentInfo.from_message (Camel.MimePart mime_part);
		[CCode (has_construct_function = false)]
		public MessageContentInfo.from_parser (Camel.MimeParser parser);
		public bool traverse (Camel.MessageContentInfoTraverseCallback func);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_message_info_get_type ()")]
	public abstract class MessageInfo : GLib.Object {
		[CCode (has_construct_function = false)]
		protected MessageInfo ();
		[Version (since = "3.24")]
		public virtual Camel.MessageInfo clone (Camel.FolderSummary? assign_summary);
		[Version (since = "3.24")]
		public void dump ();
		[Version (since = "3.24")]
		public Camel.NameValueArray? dup_headers ();
		[Version (since = "3.42")]
		public unowned string? dup_preview ();
		[Version (since = "3.24")]
		public GLib.Array<uint64>? dup_references ();
		[Version (since = "3.24")]
		public virtual Camel.NamedFlags? dup_user_flags ();
		[Version (since = "3.42")]
		public string? dup_user_header (string name);
		[Version (since = "3.42")]
		public Camel.NameValueArray? dup_user_headers ();
		[Version (since = "3.24")]
		public string? dup_user_tag (string name);
		[Version (since = "3.24")]
		public virtual Camel.NameValueArray? dup_user_tags ();
		[Version (since = "3.58")]
		public string encode_user_flags ();
		[Version (since = "3.58")]
		public string encode_user_tags ();
		[Version (since = "3.24")]
		public void freeze_notifications ();
		[CCode (cname = "camel_message_info_new_from_headers")]
		[Version (since = "3.24")]
		public static Camel.MessageInfo from_headers (Camel.FolderSummary? summary, Camel.NameValueArray headers);
		[CCode (cname = "camel_message_info_new_from_message")]
		[Version (since = "3.54")]
		public static Camel.MessageInfo from_message (Camel.FolderSummary? summary, Camel.MimeMessage message);
		[Version (since = "3.24")]
		public bool get_abort_notifications ();
		[Version (since = "3.24")]
		public virtual unowned string get_cc ();
		[Version (since = "3.24")]
		public virtual int64 get_date_received ();
		[Version (since = "3.24")]
		public virtual int64 get_date_sent ();
		[Version (since = "3.24")]
		public bool get_dirty ();
		[Version (since = "3.24")]
		public virtual uint32 get_flags ();
		[Version (since = "3.24")]
		public bool get_folder_flagged ();
		[Version (since = "3.24")]
		public uint get_folder_flagged_stamp ();
		[Version (since = "3.24")]
		public virtual unowned string get_from ();
		[Version (since = "3.24")]
		public virtual unowned Camel.NameValueArray? get_headers ();
		[Version (since = "3.24")]
		public virtual uint64 get_message_id ();
		[Version (since = "3.24")]
		public virtual unowned string get_mlist ();
		[Version (since = "3.24")]
		public bool get_notifications_frozen ();
		[Version (since = "3.42")]
		public virtual unowned string? get_preview ();
		[Version (since = "3.24")]
		public virtual unowned GLib.Array<uint64>? get_references ();
		[Version (since = "3.24")]
		public virtual uint32 get_size ();
		[Version (since = "3.24")]
		public virtual unowned string get_subject ();
		[Version (since = "3.24")]
		public virtual unowned string get_to ();
		[Version (since = "3.24")]
		public unowned string get_uid ();
		[Version (since = "3.24")]
		public virtual bool get_user_flag (string name);
		[Version (since = "3.24")]
		public virtual unowned Camel.NamedFlags? get_user_flags ();
		[Version (since = "3.42")]
		public virtual unowned string? get_user_header (string name);
		[Version (since = "3.42")]
		public virtual unowned Camel.NameValueArray? get_user_headers ();
		[Version (since = "3.24")]
		public virtual unowned string? get_user_tag (string name);
		[Version (since = "3.24")]
		public virtual unowned Camel.NameValueArray? get_user_tags ();
		[Version (since = "3.24")]
		public virtual bool load (Camel.StoreDBMessageRecord record, string bdata_ptr);
		[Version (since = "3.24")]
		public static Camel.MessageInfo @new (Camel.FolderSummary? summary);
		[Version (since = "3.24")]
		public unowned string pooldup_uid ();
		[Version (since = "3.24")]
		public void property_lock ();
		[Version (since = "3.24")]
		public void property_unlock ();
		[Version (since = "3.24")]
		public Camel.FolderSummary? ref_summary ();
		[Version (since = "3.24")]
		public virtual bool save (Camel.StoreDBMessageRecord record, GLib.StringBuilder bdata_str);
		[Version (since = "3.24")]
		public void set_abort_notifications (bool abort_notifications);
		[Version (since = "3.24")]
		public virtual bool set_cc (string? cc);
		[Version (since = "3.24")]
		public virtual bool set_date_received (int64 date_received);
		[Version (since = "3.24")]
		public virtual bool set_date_sent (int64 date_sent);
		[Version (since = "3.24")]
		public void set_dirty (bool dirty);
		[Version (since = "3.24")]
		public virtual bool set_flags (uint32 mask, uint32 @set);
		[Version (since = "3.24")]
		public bool set_folder_flagged (bool folder_flagged);
		[Version (since = "3.24")]
		public virtual bool set_from (string? from);
		[Version (since = "3.24")]
		public virtual bool set_message_id (uint64 message_id);
		[Version (since = "3.24")]
		public virtual bool set_mlist (string? mlist);
		[Version (since = "3.42")]
		public virtual bool set_preview (string? preview);
		[Version (since = "3.24")]
		public virtual bool set_size (uint32 size);
		[Version (since = "3.24")]
		public virtual bool set_subject (string? subject);
		[Version (since = "3.24")]
		public virtual bool set_to (string? to);
		[Version (since = "3.24")]
		public bool set_uid (string uid);
		[Version (since = "3.24")]
		public virtual bool set_user_flag (string name, bool state);
		[Version (since = "3.42")]
		public virtual bool set_user_header (string name, string? value);
		[Version (since = "3.24")]
		public virtual bool set_user_tag (string name, string? value);
		[Version (since = "3.24")]
		public virtual bool take_headers (owned Camel.NameValueArray? headers);
		[Version (since = "3.24")]
		public virtual bool take_references (owned GLib.Array<uint64>? references);
		[Version (since = "3.24")]
		public virtual bool take_user_flags (owned Camel.NamedFlags? user_flags);
		[Version (since = "3.42")]
		public virtual bool take_user_headers (owned Camel.NameValueArray? headers);
		[Version (since = "3.24")]
		public virtual bool take_user_tags (owned Camel.NameValueArray? user_tags);
		[Version (since = "3.24")]
		public void thaw_notifications ();
		[Version (since = "3.24")]
		public bool abort_notifications { get; set; }
		[Version (since = "3.24")]
		public string cc { get; set; }
		[Version (since = "3.24")]
		public int64 date_received { get; set; }
		[Version (since = "3.24")]
		public int64 date_sent { get; set; }
		[Version (since = "3.24")]
		public bool dirty { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.24")]
		public Camel.MessageFlags flags { get; set; }
		[Version (since = "3.24")]
		public bool folder_flagged { get; set; }
		[Version (since = "3.24")]
		public uint folder_flagged_stamp { get; }
		[Version (since = "3.24")]
		public string from { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.24")]
		public Camel.NameValueArray headers { owned get; set; }
		[Version (since = "3.24")]
		public uint64 message_id { get; set; }
		[Version (since = "3.24")]
		public string mlist { get; set; }
		[Version (since = "3.42")]
		public string preview { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.24")]
		public GLib.Array<uint64> references { owned get; set; }
		[Version (since = "3.24")]
		public uint size { get; set; }
		[Version (since = "3.24")]
		public string subject { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.24")]
		public Camel.FolderSummary summary { owned get; construct; }
		[Version (since = "3.24")]
		public string to { get; set; }
		[Version (since = "3.24")]
		public string uid { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.24")]
		public Camel.NamedFlags user_flags { owned get; set; }
		[NoAccessorMethod]
		[Version (since = "3.42")]
		public Camel.NameValueArray user_headers { owned get; set; }
		[NoAccessorMethod]
		[Version (since = "3.24")]
		public Camel.NameValueArray user_tags { owned get; set; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_message_info_base_get_type ()")]
	public class MessageInfoBase : Camel.MessageInfo {
		[CCode (has_construct_function = false)]
		protected MessageInfoBase ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_get_type ()")]
	public abstract class MimeFilter : GLib.Object {
		public string backbuf;
		public size_t backlen;
		public size_t backsize;
		public weak string outbuf;
		public size_t outpre;
		public weak string outptr;
		public string outreal;
		public size_t outsize;
		[CCode (has_construct_function = false)]
		protected MimeFilter ();
		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);
		[Version (since = "3.52")]
		public bool get_request_stop ();
		public static Camel.MimeFilter @new ();
		public virtual void reset ();
		[Version (since = "3.52")]
		public void set_request_stop (bool request_stop);
		public void set_size (size_t size, int keep);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_basic_get_type ()")]
	public class MimeFilterBasic : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterBasic (Camel.MimeFilterBasicType type);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_bestenc_get_type ()")]
	public class MimeFilterBestenc : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterBestenc (uint flags);
		public unowned string get_best_charset ();
		public Camel.TransferEncoding get_best_encoding (Camel.BestencEncoding required);
		public void set_flags (uint flags);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_crlf_get_type ()")]
	public class MimeFilterCRLF : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterCRLF (Camel.MimeFilterCRLFDirection direction, Camel.MimeFilterCRLFMode mode);
		[Version (since = "3.42")]
		public bool get_ensure_crlf_end ();
		[Version (since = "3.42")]
		public void set_ensure_crlf_end (bool ensure_crlf_end);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_canon_get_type ()")]
	public class MimeFilterCanon : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterCanon (Camel.MimeFilterCanonFlags flags);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_charset_get_type ()")]
	public class MimeFilterCharset : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterCharset (string from_charset, string to_charset);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_enriched_get_type ()")]
	public class MimeFilterEnriched : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterEnriched (Camel.MimeFilterEnrichedFlags flags);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_from_get_type ()")]
	public class MimeFilterFrom : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterFrom ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_gzip_get_type ()")]
	public class MimeFilterGZip : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterGZip (Camel.MimeFilterGZipMode mode, int level);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_html_get_type ()")]
	public class MimeFilterHTML : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterHTML ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_index_get_type ()")]
	public class MimeFilterIndex : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterIndex (Camel.Index index);
		public void set_index (Camel.Index index);
		public void set_name (Camel.IndexName name);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_linewrap_get_type ()")]
	public class MimeFilterLinewrap : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterLinewrap (uint preferred_len, uint max_len, char indent_char, uint32 flags);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_pgp_get_type ()")]
	public class MimeFilterPgp : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterPgp ();
	}
	[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);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_progress_get_type ()")]
	[Version (since = "2.24")]
	public class MimeFilterProgress : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterProgress (GLib.Cancellable? cancellable = null, size_t total);
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "mime_filter_tohtml", type_id = "camel_mime_filter_tohtml_get_type ()")]
	public class MimeFilterToHTML : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterToHTML (Camel.MimeFilterToHTMLFlags flags, uint32 color);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_windows_get_type ()")]
	public class MimeFilterWindows : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterWindows (string claimed_charset);
		public bool is_windows_charset ();
		public unowned string real_charset ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_filter_yenc_get_type ()")]
	public class MimeFilterYenc : Camel.MimeFilter {
		[CCode (has_construct_function = false, type = "CamelMimeFilter*")]
		public MimeFilterYenc (Camel.MimeFilterYencDirection direction);
		public uint32 get_crc ();
		public uint32 get_pcrc ();
		public void set_crc (uint32 crc);
		public void set_state (int state);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_message_get_type ()")]
	public class MimeMessage : Camel.MimePart {
		[CCode (has_construct_function = false)]
		public MimeMessage ();
		public string build_mbox_from ();
		public void dump (int body);
		public void encode_8bit_parts ();
		[Version (since = "3.34")]
		public void foreach_part (Camel.ForeachPartFunc callback);
		public time_t get_date (out int offset);
		public time_t get_date_received (out int offset);
		public unowned Camel.InternetAddress? get_from ();
		public unowned string? get_message_id ();
		public unowned Camel.MimePart? get_part_by_content_id (string content_id);
		public unowned Camel.InternetAddress? get_recipients (string type);
		public unowned Camel.InternetAddress? get_reply_to ();
		public unowned string? get_source ();
		public unowned string? get_subject ();
		public bool has_8bit_parts ();
		[Version (since = "2.28")]
		public bool has_attachment ();
		public void set_best_encoding (Camel.BestencRequired required, Camel.BestencEncoding enctype);
		public void set_date (time_t date, int offset);
		public void set_from (Camel.InternetAddress? from);
		public void set_message_id (string? message_id);
		public void set_recipients (string type, Camel.InternetAddress? recipients);
		public void set_reply_to (Camel.InternetAddress? reply_to);
		public void set_source (string? source_uid);
		public void set_subject (string? subject);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_parser_get_type ()")]
	public class MimeParser : GLib.Object {
		[CCode (has_construct_function = false)]
		public MimeParser ();
		[NoWrapper]
		public virtual void content ();
		public Camel.ContentType? content_type ();
		public void drop_step ();
		[Version (since = "3.24")]
		public Camel.NameValueArray? dup_headers ();
		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")]
		public unowned string? from_line ();
		public unowned string? header (string name, int offset);
		[Version (since = "3.12")]
		public void init_with_bytes (GLib.Bytes bytes);
		public int init_with_fd (int fd);
		[Version (since = "3.12")]
		public void init_with_input_stream (GLib.InputStream input_stream);
		public int init_with_stream (Camel.Stream stream) throws GLib.Error;
		[NoWrapper]
		public virtual void message (void* headers);
		[NoWrapper]
		public virtual void part ();
		[Version (since = "2.22")]
		public unowned string? postface ();
		[Version (since = "2.22")]
		public unowned string? preface ();
		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);
		public void scan_pre_from (bool scan_pre_from);
		[Version (since = "2.22")]
		public int64 seek (int64 offset, int whence);
		public int set_header_regex (string matchstr);
		public Camel.MimeParserState state ();
		public Camel.MimeParserState step ([CCode (array_length_cname = "datalength", array_length_pos = 1.1, array_length_type = "gsize")] ref uint8[] databuffer);
		public unowned Camel.Stream? stream ();
		[Version (since = "2.22")]
		public int64 tell ();
		[Version (since = "2.22")]
		public int64 tell_start_boundary ();
		[Version (since = "2.22")]
		public int64 tell_start_from ();
		[Version (since = "2.22")]
		public int64 tell_start_headers ();
		public void unstep ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_mime_part_get_type ()")]
	public class MimePart : Camel.Medium {
		[CCode (has_construct_function = false)]
		public MimePart ();
		[Version (since = "2.24")]
		public bool construct_content_from_parser (Camel.MimeParser mp, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		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;
		[Version (since = "3.52")]
		public virtual string? generate_preview (Camel.GeneratePreviewFunc? func);
		[Version (since = "2.30")]
		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 ();
		public Camel.TransferEncoding get_encoding ();
		public unowned string? get_filename ();
		public void set_content ([CCode (array_length_cname = "length", array_length_pos = 1.5)] uint8[]? data, string? type);
		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);
		public void set_description (string description);
		public void set_disposition (string? disposition);
		public void set_encoding (Camel.TransferEncoding encoding);
		public void set_filename (string? filename);
		public string content_id { get; set; }
		public string content_location { get; set; }
		public string content_md5 { get; set; }
		public string description { get; set; }
		public string disposition { get; set; }
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	[Version (since = "2.24")]
	public class MsgPort {
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_multipart_get_type ()")]
	public class Multipart : Camel.DataWrapper {
		[CCode (has_construct_function = false)]
		public Multipart ();
		public virtual void add_part (Camel.MimePart part);
		public virtual int construct_from_parser (Camel.MimeParser parser);
		[Version (since = "3.52")]
		public virtual string? generate_preview (Camel.GeneratePreviewFunc? func);
		public virtual unowned string get_boundary ();
		public virtual uint get_number ();
		public virtual unowned Camel.MimePart? get_part (uint index);
		[Version (since = "3.12")]
		public unowned string get_postface ();
		[Version (since = "3.12")]
		public unowned string get_preface ();
		public virtual void set_boundary (string? boundary);
		public void set_postface (string postface);
		public void set_preface (string preface);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_multipart_encrypted_get_type ()")]
	public class MultipartEncrypted : Camel.Multipart {
		[CCode (has_construct_function = false)]
		public MultipartEncrypted ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_multipart_signed_get_type ()")]
	public class MultipartSigned : Camel.Multipart {
		[CCode (has_construct_function = false)]
		public MultipartSigned ();
		public Camel.Stream get_content_stream () throws GLib.Error;
		[Version (since = "3.12")]
		public void set_content_stream (Camel.Stream content_stream);
		[Version (since = "3.12")]
		public void set_signature (Camel.MimePart signature);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_nntp_address_get_type ()")]
	public class NNTPAddress : Camel.Address {
		[CCode (has_construct_function = false)]
		public NNTPAddress ();
		public int add (string name);
		public bool @get (int index, string namep);
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_name_value_array_get_type ()")]
	[Compact]
	[Version (since = "3.24")]
	public class NameValueArray {
		[CCode (has_construct_function = false)]
		public NameValueArray ();
		public void append (string name, string value);
		public void clear ();
		public Camel.NameValueArray copy ();
		public bool equal (Camel.NameValueArray? array_b, Camel.CompareType compare_type);
		public void free ();
		public bool @get (uint index, out string? out_name, out string? out_value);
		public uint get_length ();
		public unowned string? get_name (uint index);
		public unowned string? get_named (Camel.CompareType compare_type, string name);
		public unowned string? get_value (uint index);
		public bool remove (uint index);
		public uint remove_named (Camel.CompareType compare_type, string name, bool all_occurrences);
		public bool @set (uint index, string name, string value);
		public bool set_name (uint index, string name);
		public bool set_named (Camel.CompareType compare_type, string name, string value);
		public bool set_value (uint index, string value);
		[CCode (has_construct_function = false)]
		public NameValueArray.sized (uint reserve_size);
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_named_flags_get_type ()")]
	[Compact]
	[Version (since = "3.24")]
	public class NamedFlags {
		[CCode (has_construct_function = false)]
		public NamedFlags ();
		public void clear ();
		public bool contains (string name);
		public Camel.NamedFlags copy ();
		public bool equal (Camel.NamedFlags? named_flags_b);
		public void free ();
		public unowned string? @get (uint index);
		public uint get_length ();
		public bool insert (string name);
		public bool remove (string name);
		[CCode (has_construct_function = false)]
		public NamedFlags.sized (uint reserve_size);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_null_output_stream_get_type ()")]
	public class NullOutputStream : GLib.OutputStream {
		[CCode (has_construct_function = false, type = "GOutputStream*")]
		[Version (since = "3.12")]
		public NullOutputStream ();
		[Version (since = "3.12")]
		public size_t get_bytes_written ();
		[Version (since = "3.30")]
		public bool get_ends_with_crlf ();
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	public class ObjectBag {
		public void abort (void* key);
		public void add (void* key, void* object);
		public void destroy ();
		public void* @get (void* key);
		public GLib.GenericArray<GLib.Object> list ();
		public void* peek (void* key);
		public void rekey (void* object, void* new_key);
		public void remove (void* object);
		public void* reserve (void* key);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_offline_folder_get_type ()")]
	public class OfflineFolder : Camel.Folder {
		[CCode (has_construct_function = false)]
		protected OfflineFolder ();
		[Version (since = "3.22")]
		public bool can_downsync ();
		[Version (since = "3.0")]
		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;
		[Version (since = "2.32")]
		public Camel.ThreeState get_offline_sync ();
		[Version (since = "2.32")]
		public void set_offline_sync (Camel.ThreeState offline_sync);
		public Camel.ThreeState offline_sync { get; set; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_offline_settings_get_type ()")]
	[Version (since = "3.2")]
	public class OfflineSettings : Camel.StoreSettings {
		[CCode (has_construct_function = false)]
		protected OfflineSettings ();
		[Version (since = "3.24")]
		public bool get_limit_by_age ();
		[Version (since = "3.24")]
		public Camel.TimeUnit get_limit_unit ();
		[Version (since = "3.24")]
		public int get_limit_value ();
		public bool get_stay_synchronized ();
		[Version (since = "3.24")]
		public void set_limit_by_age (bool limit_by_age);
		[Version (since = "3.24")]
		public void set_limit_unit (Camel.TimeUnit limit_unit);
		[Version (since = "3.24")]
		public void set_limit_value (bool limit_value);
		public void set_stay_synchronized (bool stay_synchronized);
		public bool limit_by_age { get; set construct; }
		public Camel.TimeUnit limit_unit { get; set construct; }
		public int limit_value { get; set construct; }
		public bool stay_synchronized { get; set construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_offline_store_get_type ()")]
	public class OfflineStore : Camel.Store, GLib.Initable {
		[CCode (has_construct_function = false)]
		protected OfflineStore ();
		[Version (since = "3.28")]
		public virtual GLib.GenericArray<Camel.Folder> dup_downsync_folders ();
		[Version (since = "2.24")]
		public bool get_online ();
		[Version (since = "2.22")]
		public bool prepare_for_offline_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public bool requires_downsync ();
		[Version (since = "3.26")]
		public async bool set_online (bool online, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public bool set_online_sync (bool online, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public bool online { get; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_operation_get_type ()")]
	public class Operation : GLib.Cancellable {
		[CCode (has_construct_function = false, type = "GCancellable*")]
		public Operation ();
		public static void cancel_all ();
		[Version (since = "3.52")]
		public static string? dup_message (GLib.Cancellable? cancellable = null);
		[CCode (has_construct_function = false, type = "GCancellable*")]
		[Version (since = "3.24")]
		public Operation.proxy (GLib.Cancellable? cancellable = null);
		[PrintfFormat]
		public void push_message (string format, ...);
		[HasEmitter]
		public signal void pop_message ();
		[HasEmitter]
		public signal void progress (int percent);
		[CCode (cname = "push-message")]
		public signal void pushed_message (string object);
		public virtual signal void status (string what, int pc);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_partition_table_get_type ()")]
	public class PartitionTable : GLib.Object {
		[CCode (has_construct_function = false)]
		public PartitionTable (Camel.BlockFile bs, Camel._block_t root);
		public int add (string key, Camel._key_t keyid);
		public Camel._key_t lookup (string key);
		public bool remove (string key);
		public int sync ();
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_provider_get_type ()")]
	[Compact]
	public class Provider {
		public weak GLib.List<Camel.ServiceAuthType> authtypes;
		public weak string description;
		public weak string domain;
		public Camel.ProviderConfEntry extra_conf;
		public Camel.ProviderFlags flags;
		public weak string name;
		[CCode (array_length = false)]
		public weak GLib.Type[] object_types;
		public Camel.ProviderPortEntry port_entries;
		public weak string protocol;
		public weak string translation_domain;
		public Camel.ProviderURLFlags url_flags;
		public static Camel.Provider @get (string protocol) throws GLib.Error;
		public static void init ();
		public static GLib.List<weak Camel.Provider> list (bool load);
		public static bool load (string path) throws GLib.Error;
		public void register ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sexp_get_type ()")]
	[Version (since = "3.4")]
	public class SExp : GLib.Object {
		[CCode (has_construct_function = false)]
		public SExp ();
		public void add_function (uint scope, string name, Camel.SExpFunc func);
		public void add_ifunction (uint scope, string name, Camel.SExpIFunc ifunc);
		public void add_variable (uint scope, string name, Camel.SExpTerm value);
		public static void encode_bool (GLib.StringBuilder string, bool v_bool);
		public static void encode_string (GLib.StringBuilder string, string v_string);
		public unowned string? error ();
		public unowned Camel.SExpResult? eval ();
		public bool evaluate_occur_times (time_t start, time_t end);
		public void fatal_error (string why, ...);
		public void input_file (int fd);
		public void input_text (string text, int len);
		public int parse ();
		public unowned Camel.SExpTerm? parse_value ();
		public void remove_symbol (uint scope, string name);
		public void result_free (Camel.SExpResult? result);
		public Camel.SExpResult? result_new (int type);
		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);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_smime_context_get_type ()")]
	public class SMIMEContext : Camel.CipherContext {
		[CCode (has_construct_function = false, type = "CamelCipherContext*")]
		public SMIMEContext (Camel.Session session);
		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);
		[Version (since = "3.52")]
		public static unowned string? util_nss_error_to_string (int nss_error_code);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_get_type ()")]
	public abstract class Sasl : GLib.Object {
		public class weak Camel.ServiceAuthType? auth_type;
		[CCode (has_construct_function = false)]
		protected Sasl ();
		public static unowned Camel.ServiceAuthType? authtype (string mechanism);
		public static GLib.List<weak Camel.ServiceAuthType?> authtype_list (bool include_plain);
		[Version (since = "3.0")]
		public async GLib.ByteArray? challenge (GLib.ByteArray? token, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[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;
		public virtual GLib.ByteArray? challenge_sync (GLib.ByteArray? token, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[CCode (cname = "camel_sasl_new")]
		public static Camel.Sasl? for_service (string service_name, string mechanism, Camel.Service service);
		public bool get_authenticated ();
		[Version (since = "2.32")]
		public unowned string get_mechanism ();
		[Version (since = "2.32")]
		public unowned Camel.Service get_service ();
		[Version (since = "2.32")]
		public unowned string get_service_name ();
		[Version (since = "3.28")]
		public static bool is_xoauth2_alias (string? mechanism);
		[Version (since = "2.32")]
		public void set_authenticated (bool authenticated);
		[Version (since = "3.2")]
		public async bool try_empty_password (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.2")]
		public virtual bool try_empty_password_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		public bool authenticated { get; set; }
		public string mechanism { get; construct; }
		public Camel.Service service { get; construct; }
		public string service_name { get; construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_anonymous_get_type ()")]
	public class SaslAnonymous : Camel.Sasl {
		[CCode (has_construct_function = false, type = "CamelSasl*")]
		public SaslAnonymous (Camel.SaslAnonTraceType type, string trace_info);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_cram_md5_get_type ()")]
	public class SaslCramMd5 : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslCramMd5 ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_digest_md5_get_type ()")]
	public class SaslDigestMd5 : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslDigestMd5 ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_gssapi_get_type ()")]
	public class SaslGssapi : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslGssapi ();
		[Version (since = "3.12")]
		public static bool is_available ();
		[Version (since = "3.12")]
		public void override_host_and_user (string? override_host, string? override_user);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_login_get_type ()")]
	public class SaslLogin : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslLogin ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_ntlm_get_type ()")]
	public class SaslNTLM : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslNTLM ();
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "sasl_popb4smtp", type_id = "camel_sasl_popb4smtp_get_type ()")]
	public class SaslPOPB4SMTP : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslPOPB4SMTP ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_sasl_plain_get_type ()")]
	public class SaslPlain : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslPlain ();
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "sasl_xoauth2", type_id = "camel_sasl_xoauth2_get_type ()")]
	public class SaslXOAuth2 : Camel.Sasl {
		[CCode (has_construct_function = false)]
		protected SaslXOAuth2 ();
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "sasl_xoauth2_google", type_id = "camel_sasl_xoauth2_google_get_type ()")]
	public class SaslXOAuth2Google : Camel.SaslXOAuth2 {
		[CCode (has_construct_function = false)]
		protected SaslXOAuth2Google ();
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "sasl_xoauth2_outlook", type_id = "camel_sasl_xoauth2_outlook_get_type ()")]
	public class SaslXOAuth2Outlook : Camel.SaslXOAuth2 {
		[CCode (has_construct_function = false)]
		protected SaslXOAuth2Outlook ();
	}
	[CCode (cheader_filename = "camel/camel.h", lower_case_csuffix = "sasl_xoauth2_yahoo", type_id = "camel_sasl_xoauth2_yahoo_get_type ()")]
	public class SaslXOAuth2Yahoo : Camel.SaslXOAuth2 {
		[CCode (has_construct_function = false)]
		protected SaslXOAuth2Yahoo ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_service_get_type ()")]
	public abstract class Service : GLib.Object, GLib.Initable {
		[CCode (has_construct_function = false)]
		protected Service ();
		[Version (since = "3.4")]
		public async Camel.AuthenticationResult authenticate (string? mechanism, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.4")]
		public virtual Camel.AuthenticationResult authenticate_sync (string? mechanism, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.6")]
		public async bool connect (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.6")]
		public virtual bool connect_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.6")]
		public async bool disconnect (bool clean, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.6")]
		public virtual bool disconnect_sync (bool clean, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public string? dup_display_name ();
		[Version (since = "3.12")]
		public string dup_password ();
		[Version (since = "3.2")]
		public Camel.ServiceConnectionStatus get_connection_status ();
		[Version (since = "3.2")]
		public unowned string? get_display_name ();
		public virtual string get_name (bool brief);
		[Version (since = "3.4")]
		public unowned string get_password ();
		public Camel.Provider get_provider ();
		[Version (since = "3.2")]
		public unowned string get_uid ();
		[Version (since = "3.4")]
		public unowned string get_user_cache_dir ();
		[Version (since = "3.2")]
		public unowned string get_user_data_dir ();
		[Version (since = "3.2")]
		public async GLib.List<weak Camel.ServiceAuthType?> query_auth_types (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public virtual GLib.List<weak Camel.ServiceAuthType?> query_auth_types_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public void queue_task (GLib.Task task, [CCode (scope = "async")] GLib.TaskThreadFunc task_func);
		[Version (since = "3.12")]
		public GLib.ProxyResolver? ref_proxy_resolver ();
		[Version (since = "3.8")]
		public Camel.Session ref_session ();
		[Version (since = "3.6")]
		public Camel.Settings ref_settings ();
		[Version (since = "3.2")]
		public void set_display_name (string? display_name);
		[Version (since = "3.4")]
		public void set_password (string password);
		[Version (since = "3.12")]
		public void set_proxy_resolver (GLib.ProxyResolver? proxy_resolver);
		[Version (since = "3.2")]
		public void set_settings (Camel.Settings? settings);
		public Camel.ServiceConnectionStatus connection_status { get; }
		public string display_name { get; set construct; }
		public string password { get; set construct; }
		public Camel.Provider provider { owned get; construct; }
		[NoAccessorMethod]
		public GLib.ProxyResolver proxy_resolver { owned get; set; }
		[NoAccessorMethod]
		public Camel.Session session { owned get; construct; }
		[NoAccessorMethod]
		public Camel.Settings settings { owned get; set construct; }
		public string uid { get; construct; }
		[NoAccessorMethod]
		public bool with_proxy_resolver { construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_session_get_type ()")]
	public class Session : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Session ();
		[Version (since = "3.2")]
		public virtual Camel.Service add_service (string uid, string protocol, Camel.ProviderType type) throws GLib.Error;
		[Version (since = "3.44")]
		public virtual bool addressbook_contains_sync (string book_uid, string email_address, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[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")]
		public virtual bool authenticate_sync (Camel.Service service, string? mechanism, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public virtual bool forget_password (Camel.Service service, string item) throws GLib.Error;
		[Version (since = "3.6")]
		public async bool forward_to (Camel.Folder folder, Camel.MimeMessage message, string address, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.6")]
		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")]
		public unowned Camel.JunkFilter? get_junk_filter ();
		[Version (since = "2.22")]
		public unowned GLib.HashTable<string,string> get_junk_headers ();
		[Version (since = "3.28")]
		public virtual bool get_oauth2_access_token_sync (Camel.Service service, out string? out_access_token, out int out_expires_in, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public bool get_online ();
		public virtual string get_password (Camel.Service service, string prompt, string item, uint32 flags) throws GLib.Error;
		[Version (since = "3.30")]
		public virtual bool get_recipient_certificates_sync (uint32 flags, GLib.GenericArray<string> recipients, out GLib.SList<string> out_certificates, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.4")]
		public unowned string get_user_cache_dir ();
		[Version (since = "3.2")]
		public unowned string get_user_data_dir ();
		[Version (since = "3.6")]
		public uint idle_add (int priority, owned GLib.SourceFunc function);
		[Version (since = "3.2")]
		public GLib.List<Camel.Service> list_services ();
		[Version (since = "2.22")]
		public virtual bool lookup_addressbook (string name);
		[Version (since = "3.8")]
		public GLib.MainContext ref_main_context ();
		[Version (since = "3.22")]
		public GLib.NetworkMonitor ref_network_monitor ();
		[Version (since = "3.6")]
		public Camel.Service? ref_service (string uid);
		[Version (since = "3.2")]
		public virtual void remove_service (Camel.Service service);
		[Version (since = "3.2")]
		public void remove_services ();
		[Version (since = "3.2")]
		public void set_junk_filter (Camel.JunkFilter? junk_filter);
		[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")]
		public void set_network_monitor (GLib.NetworkMonitor? network_monitor);
		public void set_online (bool online);
		[Version (since = "3.2")]
		public void submit_job (string description, owned Camel.SessionCallback callback);
		[Version (since = "3.8")]
		public virtual Camel.CertTrust trust_prompt (Camel.Service service, GLib.TlsCertificate certificate, GLib.TlsCertificateFlags errors);
		public Camel.JunkFilter junk_filter { get; set; }
		[NoAccessorMethod]
		public GLib.MainContext main_context { owned get; }
		[NoAccessorMethod]
		public GLib.NetworkMonitor network_monitor { owned get; set; }
		public bool online { get; set construct; }
		[NoAccessorMethod]
		public string user_cache_dir { owned get; set construct; }
		[NoAccessorMethod]
		public string user_data_dir { owned get; set construct; }
		public virtual signal void job_finished (GLib.Cancellable? cancellable, GLib.Error error);
		public virtual signal void job_started (GLib.Cancellable? cancellable = null);
		[HasEmitter]
		public virtual signal void user_alert (Camel.Service service, Camel.SessionAlertType type, string message);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_settings_get_type ()")]
	[Version (since = "3.2")]
	public class Settings : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Settings ();
		public virtual Camel.Settings clone ();
		public virtual bool equal (Camel.Settings settings_b);
		[CCode (cname = "camel_settings_class_list_settings")]
		public class GLib.ParamSpec list_settings (uint n_settings);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_get_type ()")]
	public abstract class Store : Camel.Service, GLib.Initable {
		[CCode (has_construct_function = false)]
		protected Store ();
		[Version (since = "2.22")]
		public virtual bool can_refresh_folder (Camel.FolderInfo info) throws GLib.Error;
		[Version (since = "3.0")]
		public async Camel.FolderInfo? create_folder (string? parent_name, string folder_name, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual Camel.FolderInfo? create_folder_sync (string? parent_name, string folder_name, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public void delete_cached_folder (string folder_name);
		[Version (since = "3.0")]
		public async bool delete_folder (string folder_name, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool delete_folder_sync (string folder_name, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public GLib.GenericArray<Camel.Folder> dup_opened_folders ();
		[Version (since = "3.40")]
		public virtual bool get_can_auto_save_changes ();
		[Version (since = "3.58")]
		public unowned Camel.StoreDB get_db ();
		[Version (since = "3.24")]
		public uint32 get_flags ();
		[Version (since = "3.0")]
		public async Camel.Folder? get_folder (string folder_name, Camel.StoreGetFolderFlags flags, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async Camel.FolderInfo? get_folder_info (string? top, Camel.StoreGetFolderInfoFlags flags, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual Camel.FolderInfo? get_folder_info_sync (string? top, Camel.StoreGetFolderInfoFlags flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual Camel.Folder? get_folder_sync (string folder_name, Camel.StoreGetFolderFlags flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public unowned Camel.ObjectBag get_folders_bag ();
		[Version (since = "3.0")]
		public async Camel.Folder? get_inbox_folder (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual Camel.Folder? get_inbox_folder_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public async Camel.Folder? get_junk_folder (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual Camel.Folder? get_junk_folder_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public uint32 get_permissions ();
		[Version (since = "3.0")]
		public async Camel.Folder? get_trash_folder (int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual Camel.Folder? get_trash_folder_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.20")]
		public async bool initial_setup (int io_priority, GLib.Cancellable? cancellable = null, out GLib.HashTable<weak string,weak string> out_save_setup) throws GLib.Error;
		[Version (since = "3.20")]
		public virtual bool initial_setup_sync (out GLib.HashTable<weak string,weak string> out_save_setup, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.16")]
		public bool maybe_run_db_maintenance () throws GLib.Error;
		[Version (since = "3.0")]
		public async bool rename_folder (string old_name, string new_name, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool rename_folder_sync (string old_name, string new_name, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.24")]
		public void set_flags (uint32 flags);
		[Version (since = "3.24")]
		public void set_permissions (uint32 permissions);
		[Version (since = "3.0")]
		public async bool synchronize (bool expunge, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.0")]
		public virtual bool synchronize_sync (bool expunge, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[HasEmitter]
		public virtual signal void folder_created (Camel.FolderInfo folder_info);
		[HasEmitter]
		public virtual signal void folder_deleted (Camel.FolderInfo folder_info);
		[HasEmitter]
		public virtual signal void folder_info_stale ();
		[HasEmitter]
		public virtual signal void folder_opened (Camel.Folder folder);
		[HasEmitter]
		public virtual signal void folder_renamed (string old_name, Camel.FolderInfo folder_info);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_db_get_type ()")]
	[Version (since = "3.58")]
	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 weak string path;
		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 (since = "3.46")]
		public Camel.StoreInfo @ref ();
		[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.58")]
	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.58")]
	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.58")]
	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 ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_settings_get_type ()")]
	[Version (since = "3.2")]
	public class StoreSettings : Camel.Settings {
		[CCode (has_construct_function = false)]
		protected StoreSettings ();
		public bool get_filter_inbox ();
		[Version (since = "3.40")]
		public int get_store_changes_interval ();
		public void set_filter_inbox (bool filter_inbox);
		[Version (since = "3.40")]
		public void set_store_changes_interval (int interval);
		public bool filter_inbox { get; set construct; }
		public int store_changes_interval { get; set construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_store_summary_get_type ()")]
	public class StoreSummary : GLib.Object {
		[CCode (has_construct_function = false)]
		public StoreSummary ();
		public void add (owned Camel.StoreInfo info);
		public unowned Camel.StoreInfo? add_from_path (string path);
		public GLib.GenericArray<Camel.StoreInfo> array ();
		[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);
		public Camel.StoreInfo info_new ();
		public int load ();
		public Camel.StoreInfo? path (string path);
		public void remove (Camel.StoreInfo info);
		public void remove_path (string path);
		public int save ();
		public void set_filename (string filename);
		[Version (since = "3.24")]
		public void sort (GLib.CompareDataFunc compare_func);
		[NoWrapper]
		public virtual void store_info_free (owned Camel.StoreInfo info);
		[NoWrapper]
		public virtual Camel.StoreInfo store_info_load ([CCode (type = "FILE*")] GLib.FileStream file);
		[NoWrapper]
		public virtual Camel.StoreInfo store_info_new (string path);
		[NoWrapper]
		public virtual int store_info_save ([CCode (type = "FILE*")] GLib.FileStream file, Camel.StoreInfo info);
		[NoWrapper]
		public virtual void store_info_set_value (Camel.StoreInfo info, int type, string value);
		[NoWrapper]
		public virtual int summary_header_load ([CCode (type = "FILE*")] GLib.FileStream file);
		[NoWrapper]
		public virtual int summary_header_save ([CCode (type = "FILE*")] GLib.FileStream file);
		public void touch ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_get_type ()")]
	public class Stream : GLib.Object, GLib.Seekable {
		[CCode (has_construct_function = false)]
		[Version (since = "3.12")]
		public Stream (GLib.IOStream base_stream);
		public virtual int close (GLib.Cancellable? cancellable = null) throws GLib.Error;
		public virtual bool eos ();
		public virtual int flush (GLib.Cancellable? cancellable = null) throws GLib.Error;
		public virtual ssize_t read ([CCode (array_length_cname = "n", array_length_pos = 1.5, array_length_type = "gsize")] char[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public GLib.IOStream? ref_base_stream ();
		[Version (since = "3.12")]
		public void set_base_stream (GLib.IOStream base_stream);
		public virtual ssize_t write ([CCode (array_length_cname = "n", array_length_pos = 1.5, array_length_type = "gsize")] char[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public ssize_t write_string (string string, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public ssize_t write_to_stream (Camel.Stream output_stream, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[NoAccessorMethod]
		public GLib.IOStream base_stream { owned get; set; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_buffer_get_type ()")]
	public class StreamBuffer : Camel.Stream, GLib.Seekable {
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamBuffer (Camel.Stream stream, Camel.StreamBufferMode mode);
		[Version (since = "3.38")]
		public void discard_cache ();
		public int gets ([CCode (array_length_cname = "max", array_length_pos = 1.5, array_length_type = "guint")] char[] buf, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[NoWrapper]
		public virtual void init (Camel.Stream stream, Camel.StreamBufferMode mode);
		[NoWrapper]
		public virtual void init_vbuf (Camel.Stream stream, Camel.StreamBufferMode mode, string buf, uint32 size);
		public string? read_line (GLib.Cancellable? cancellable = null) throws GLib.Error;
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_filter_get_type ()")]
	public class StreamFilter : Camel.Stream, GLib.Seekable {
		[CCode (has_construct_function = false, type = "CamelStream*")]
		[Version (since = "2.32")]
		public StreamFilter (Camel.Stream source);
		public int add (Camel.MimeFilter filter);
		[Version (since = "2.32")]
		public unowned Camel.Stream get_source ();
		public void remove (int id);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_fs_get_type ()")]
	public class StreamFs : Camel.Stream, GLib.Seekable {
		[CCode (has_construct_function = false)]
		protected StreamFs ();
		[Version (since = "2.32")]
		public int get_fd ();
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamFs.with_fd (int fd);
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamFs.with_name (string name, int flags, uint32 mode) throws GLib.Error;
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_mem_get_type ()")]
	public class StreamMem : Camel.Stream, GLib.Seekable {
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamMem ();
		[Version (since = "2.32")]
		public unowned GLib.ByteArray get_byte_array ();
		public void set_buffer ([CCode (array_length_cname = "len", array_length_pos = 1.1, array_length_type = "gsize")] uint8[] buffer);
		public void set_byte_array (owned GLib.ByteArray buffer);
		public void set_secure ();
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamMem.with_buffer ([CCode (array_length_cname = "len", array_length_pos = 1.1, array_length_type = "gsize")] uint8[] buffer);
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamMem.with_byte_array (owned GLib.ByteArray buffer);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_null_get_type ()")]
	public class StreamNull : Camel.Stream, GLib.Seekable {
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamNull ();
		[Version (since = "3.24")]
		public size_t get_bytes_written ();
		[Version (since = "3.30")]
		public bool get_ends_with_crlf ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_stream_process_get_type ()")]
	public class StreamProcess : Camel.Stream, GLib.Seekable {
		[CCode (has_construct_function = false, type = "CamelStream*")]
		public StreamProcess ();
		public int connect (string command, string env) throws GLib.Error;
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_text_index_get_type ()")]
	public class TextIndex : Camel.Index {
		[CCode (has_construct_function = false)]
		public TextIndex (string path, int flags);
		public static int check (string path);
		public void dump ();
		public void info ();
		public static int remove (string old);
		public static int rename (string old, string new_);
		public void validate ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_text_index_cursor_get_type ()")]
	public class TextIndexCursor : Camel.IndexCursor {
		[CCode (has_construct_function = false)]
		protected TextIndexCursor ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_text_index_key_cursor_get_type ()")]
	public class TextIndexKeyCursor : Camel.IndexCursor {
		[CCode (has_construct_function = false)]
		protected TextIndexKeyCursor ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_text_index_name_get_type ()")]
	public class TextIndexName : Camel.IndexName {
		[CCode (has_construct_function = false)]
		protected TextIndexName ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_transport_get_type ()")]
	public abstract class Transport : Camel.Service, GLib.Initable {
		[CCode (has_construct_function = false)]
		protected Transport ();
		[Version (since = "3.50")]
		public bool get_request_dsn ();
		[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;
		[Version (since = "3.50")]
		public void set_request_dsn (bool request_dsn);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	[Version (since = "2.24")]
	public class Trie {
		public void add (string pattern, int pattern_id);
		public unowned string? search ([CCode (array_length_cname = "buflen", array_length_pos = 1.5, array_length_type = "gsize")] char[] buffer, out int matched_id);
	}
	[CCode (cheader_filename = "camel/camel.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "camel_url_get_type ()")]
	[Compact]
	public class URL {
		public weak string authmech;
		public weak string fragment;
		public weak string host;
		public GLib.Datalist @params;
		public weak string path;
		public int port;
		public weak string protocol;
		public weak string query;
		public weak string user;
		[CCode (has_construct_function = false)]
		public URL (string url_string) throws GLib.Error;
		public static bool addrspec_end (string @in, string pos, string inend, Camel.UrlMatch match);
		public static bool addrspec_start (string @in, string pos, string inend, Camel.UrlMatch match);
		public Camel.URL copy ();
		public static void decode (string part);
		public static string decode_path (string path);
		public static string encode (string part, string? escape_extra);
		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 ();
		public unowned string? get_param (string name);
		public uint hash ();
		public Camel.URL new_with_base (string url_string);
		public void set_authmech (string authmech);
		public void set_fragment (string fragment);
		public void set_host (string host);
		public void set_param (string name, string value);
		public void set_path (string path);
		public void set_port (int port);
		public void set_protocol (string protocol);
		public void set_query (string query);
		public void set_user (string user);
		public string to_string (Camel.URLFlags flags);
		public static bool web_end (string @in, string pos, string inend, Camel.UrlMatch match);
		public static bool web_start (string @in, string pos, string inend, Camel.UrlMatch match);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Compact]
	public class UrlScanner {
		public void add (Camel.UrlPattern pattern);
		public bool scan ([CCode (array_length_cname = "inlen", array_length_pos = 1.5, array_length_type = "gsize")] char[] @in, Camel.UrlMatch match);
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vtrash_folder_get_type ()")]
	public class VTrashFolder : Camel.VeeFolder {
		[CCode (has_construct_function = false, type = "CamelFolder*")]
		public VTrashFolder (Camel.Store parent_store, Camel.VTrashFolderType type);
		[Version (since = "3.24")]
		public Camel.VTrashFolderType get_folder_type ();
	}
	[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);
		[Version (since = "3.58")]
		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.58")]
		public GLib.GenericArray<weak Camel.Folder> dup_folders ();
		[Version (since = "3.6")]
		public Camel.Folder? dup_vee_uid_folder (string vee_message_uid);
		[Version (since = "3.6")]
		public bool get_auto_update ();
		[Version (since = "3.6")]
		public unowned string get_expression ();
		[Version (since = "3.24")]
		public uint32 get_flags ();
		public unowned Camel.Folder get_location (Camel.VeeMessageInfo vinfo, out string? realuid);
		[Version (since = "3.58")]
		public bool remove_folder_sync (Camel.Folder subfolder, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.6")]
		public void set_auto_update (bool auto_update);
		[Version (since = "3.58")]
		public bool set_expression_sync (string expression, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.58")]
		public bool set_folders_sync (GLib.GenericArray<Camel.Folder> folders, Camel.VeeFolderOpFlags op_flags, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public bool auto_update { get; set; }
		public signal void vee_setup_changed ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_id = "camel_vee_message_info_get_type ()")]
	public class VeeMessageInfo : Camel.MessageInfo {
		[CCode (has_construct_function = false, type = "CamelMessageInfo*")]
		[Version (since = "3.24")]
		public VeeMessageInfo (Camel.FolderSummary summary, Camel.FolderSummary original_summary, string vuid);
		[Version (since = "3.24")]
		public unowned Camel.Folder get_original_folder ();
		[Version (since = "3.24")]
		public unowned Camel.FolderSummary get_original_summary ();
	}
	[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)]
		protected VeeStore ();
	}
	[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);
		[Version (since = "3.58")]
		public GLib.GenericSet<Camel.Folder> dup_subfolders ();
	}
	[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]
	public class WeakRefGroup {
		[CCode (has_construct_function = false)]
		[Version (since = "3.24")]
		public WeakRefGroup ();
		[Version (since = "3.24")]
		public GLib.Object @get ();
		[Version (since = "3.24")]
		public Camel.WeakRefGroup @ref ();
		[Version (since = "3.24")]
		public void @set ([CCode (type = "gpointer")] owned GLib.Object object);
		[Version (since = "3.24")]
		public void unref ();
	}
	[CCode (cheader_filename = "camel/camel.h", type_cname = "CamelJunkFilterInterface", type_id = "camel_junk_filter_get_type ()")]
	[Version (since = "3.2")]
	public interface JunkFilter : GLib.Object {
		public abstract Camel.JunkStatus classify (Camel.MimeMessage message, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract bool learn_junk (Camel.MimeMessage message, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract bool learn_not_junk (Camel.MimeMessage message, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract bool synchronize (GLib.Cancellable? cancellable = null) throws GLib.Error;
	}
	[CCode (cheader_filename = "camel/camel.h", type_cname = "CamelNetworkServiceInterface", type_id = "camel_network_service_get_type ()")]
	[Version (since = "3.2")]
	public interface NetworkService : Camel.Service {
		[Version (since = "3.12")]
		public async bool can_reach (GLib.Cancellable? cancellable = null) throws GLib.Error;
		[Version (since = "3.12")]
		public bool can_reach_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract GLib.IOStream connect_sync (GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract uint16 get_default_port (Camel.NetworkSecurityMethod method);
		[Version (since = "3.8")]
		public bool get_host_reachable ();
		public abstract unowned string? get_service_name (Camel.NetworkSecurityMethod method);
		[NoWrapper]
		public abstract unowned GLib.SocketConnectable new_connectable ();
		[Version (since = "3.8")]
		public GLib.SocketConnectable ref_connectable ();
		[Version (since = "3.8")]
		public void set_connectable (GLib.SocketConnectable? connectable);
		[Version (since = "3.12")]
		public GLib.IOStream? starttls (GLib.IOStream base_stream) throws GLib.Error;
		[NoAccessorMethod]
		public abstract GLib.SocketConnectable connectable { owned get; set; }
		[ConcreteAccessor]
		public abstract bool host_reachable { get; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_cname = "CamelNetworkSettingsInterface", type_id = "camel_network_settings_get_type ()")]
	[Version (since = "3.2")]
	public interface NetworkSettings : Camel.Settings {
		[Version (since = "3.4")]
		public string? dup_auth_mechanism ();
		[Version (since = "3.4")]
		public string dup_host ();
		[Version (since = "3.16")]
		public string dup_host_ensure_ascii ();
		[Version (since = "3.4")]
		public string dup_user ();
		[Version (since = "3.4")]
		public unowned string? get_auth_mechanism ();
		[Version (since = "3.4")]
		public unowned string get_host ();
		[Version (since = "3.4")]
		public uint16 get_port ();
		public Camel.NetworkSecurityMethod get_security_method ();
		[Version (since = "3.4")]
		public unowned string get_user ();
		[Version (since = "3.4")]
		public void set_auth_mechanism (string? auth_mechanism);
		[Version (since = "3.4")]
		public void set_host (string? host);
		[Version (since = "3.4")]
		public void set_port (uint16 port);
		public void set_security_method (Camel.NetworkSecurityMethod method);
		[Version (since = "3.4")]
		public void set_user (string? user);
		[ConcreteAccessor]
		public abstract string auth_mechanism { get; set construct; }
		[ConcreteAccessor]
		public abstract string host { get; set construct; }
		[ConcreteAccessor]
		public abstract uint port { get; set construct; }
		[ConcreteAccessor]
		public abstract Camel.NetworkSecurityMethod security_method { get; set construct; }
		[ConcreteAccessor]
		public abstract string user { get; set construct; }
	}
	[CCode (cheader_filename = "camel/camel.h", type_cname = "CamelSubscribableInterface", type_id = "camel_subscribable_get_type ()")]
	[Version (since = "3.2")]
	public interface Subscribable : Camel.Store {
		public abstract bool folder_is_subscribed (string folder_name);
		public async bool subscribe_folder (string folder_name, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract bool subscribe_folder_sync (string folder_name, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public async bool unsubscribe_folder (string folder_name, int io_priority, GLib.Cancellable? cancellable = null) throws GLib.Error;
		public abstract bool unsubscribe_folder_sync (string folder_name, GLib.Cancellable? cancellable = null) throws GLib.Error;
		[HasEmitter]
		public virtual signal void folder_subscribed (Camel.FolderInfo folder_info);
		[HasEmitter]
		public virtual signal void folder_unsubscribed (Camel.FolderInfo folder_info);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct Block {
		public Camel._block_t id;
		public Camel.BlockFlags flags;
		public uint32 refcount;
		public uint32 align00;
		[CCode (array_length = false)]
		public weak uint8 data[1024];
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct BlockRoot {
		[CCode (array_length = false)]
		public weak char version[8];
		public uint32 flags;
		public uint32 block_size;
		public Camel._block_t free;
		public Camel._block_t last;
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct Charset {
		public uint mask;
		public int level;
		public static unowned string? best ([CCode (array_length_cname = "len", array_length_pos = 1.1)] char[] @in);
		public unowned string best_name ();
		public void init ();
		public static unowned string iso_to_windows (string isocharset);
		public void step ([CCode (array_length_cname = "len", array_length_pos = 1.1)] char[] @in);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct CipherCertInfo {
		public weak string name;
		public weak string email;
		public void* cert_data;
		public weak GLib.DestroyNotify cert_data_free;
		public weak Camel.CipherCloneFunc cert_data_clone;
		public weak GLib.SList<Camel.CipherCertInfoProperty> properties;
		[CCode (cname = "camel_cipher_certinfo_get_property")]
		[Version (since = "3.22")]
		public void* get_property (string name);
		[CCode (cname = "camel_cipher_certinfo_set_property")]
		[Version (since = "3.22")]
		public void set_property (string name, void* value, GLib.DestroyNotify? value_free, Camel.CipherCloneFunc? value_clone);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct CipherCertInfoProperty {
		public weak string name;
		public void* value;
		public weak GLib.DestroyNotify value_free;
		public weak Camel.CipherCloneFunc value_clone;
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	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)]
	[Version (since = "2.24")]
	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.58")]
	public struct StoreDBFolderRecord {
		public weak string folder_name;
		public uint32 version;
		public uint32 flags;
		public uint32 nextuid;
		public int64 timestamp;
		public uint32 saved_count;
		public uint32 unread_count;
		public uint32 deleted_count;
		public uint32 junk_count;
		public uint32 visible_count;
		public uint32 jnd_count;
		public weak string bdata;
		public uint32 folder_id;
		public void clear ();
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Version (since = "3.58")]
	public struct StoreDBMessageRecord {
		public uint32 folder_id;
		public weak string uid;
		public uint32 flags;
		public uint32 msg_type;
		public uint32 dirty;
		public uint32 size;
		public int64 dsent;
		public int64 dreceived;
		public weak string subject;
		public weak string from;
		public weak string to;
		public weak string cc;
		public weak string mlist;
		public weak string part;
		public weak string labels;
		public weak string usertags;
		public weak string cinfo;
		public weak string bdata;
		public weak string userheaders;
		public weak string preview;
		public void clear ();
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	[Version (since = "3.58")]
	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 ();
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct SummaryMessageID {
		[CCode (cname = "id.id")]
		public uint64 id_id;
		[CCode (array_length = false, cname = "id.hash")]
		public weak uint8 id_hash[8];
		[CCode (cname = "id.part.hi")]
		public uint32 id_part_hi;
		[CCode (cname = "id.part.lo")]
		public uint32 id_part_lo;
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct UIDCache {
		public weak string filename;
		public weak GLib.HashTable<void*,void*> uids;
		public uint level;
		public size_t expired;
		public size_t size;
		public int fd;
		public void destroy ();
		public GLib.GenericArray<weak string> dup_new_uids (GLib.GenericArray<string> uids);
		public bool save ();
		public void save_uid (string uid);
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct UrlMatch {
		public weak string pattern;
		public weak string prefix;
		public int64 um_so;
		public int64 um_eo;
	}
	[CCode (cheader_filename = "camel/camel.h", has_type_id = false)]
	public struct UrlPattern {
		public weak string pattern;
		public weak string prefix;
		public weak Camel.UrlScanFunc start;
		public weak Camel.UrlScanFunc end;
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "_CamelKeyKey", has_type_id = false)]
	public struct _KeyKey {
		public Camel._block_t data;
		public uint offset;
		public uint flags;
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "_CamelLockHelperMsg", has_type_id = false)]
	public struct _LockHelperMsg {
		public uint32 magic;
		public uint32 seq;
		public uint32 id;
		public uint32 data;
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "_camel_search_word", has_type_id = false)]
	public struct __search_word {
		public Camel._search_word_t type;
		public weak string word;
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "_camel_search_words", has_type_id = false)]
	public struct __search_words {
		public int len;
		public Camel._search_word_t type;
		public void* words;
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "camel_block_t")]
	[SimpleType]
	public struct _block_t : uint32 {
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "_encrypt", has_type_id = false)]
	public struct _encrypt {
		public Camel.CipherValidityEncrypt status;
		public weak string description;
		public weak GLib.Queue encrypters;
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "camel_hash_t")]
	[SimpleType]
	public struct _hash_t : uint32 {
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "camel_key_t")]
	[SimpleType]
	public struct _key_t : uint32 {
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "_sign", has_type_id = false)]
	public struct _sign {
		public Camel.CipherValiditySign status;
		public weak string description;
		public weak GLib.Queue signers;
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_AUTHENTICATION_", type_id = "camel_authentication_result_get_type ()")]
	[Version (since = "3.4")]
	public enum AuthenticationResult {
		ERROR,
		ACCEPTED,
		REJECTED
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_BESTENC_", has_type_id = false)]
	[Flags]
	public enum BestencEncoding {
		@7BIT,
		@8BIT,
		BINARY,
		TEXT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_BESTENC_", has_type_id = false)]
	[Flags]
	public enum BestencRequired {
		GET_ENCODING,
		GET_CHARSET,
		LF_IS_CRLF,
		NO_FROM
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_BLOCK_FILE_", has_type_id = false)]
	[Flags]
	public enum BlockFileFlags {
		[CCode (cname = "CAMEL_BLOCK_FILE_SYNC")]
		BLOCK_FILE_SYNC
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_BLOCK_", has_type_id = false)]
	[Flags]
	public enum BlockFlags {
		DIRTY,
		DETACHED
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CERT_TRUST_", has_type_id = false)]
	public enum CertTrust {
		UNKNOWN,
		NEVER,
		MARGINAL,
		FULLY,
		ULTIMATE,
		TEMPORARY
	}
	[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
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CIPHER_HASH_", has_type_id = false)]
	public enum CipherHash {
		DEFAULT,
		MD2,
		MD5,
		SHA1,
		SHA256,
		SHA384,
		SHA512,
		RIPEMD160,
		TIGER192,
		HAVAL5160
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CIPHER_VALIDITY_ENCRYPT_", has_type_id = false)]
	public enum CipherValidityEncrypt {
		NONE,
		WEAK,
		ENCRYPTED,
		STRONG
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CIPHER_VALIDITY_", has_type_id = false)]
	public enum CipherValidityMode {
		SIGN,
		ENCRYPT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_CIPHER_VALIDITY_SIGN_", has_type_id = false)]
	public enum CipherValiditySign {
		NONE,
		GOOD,
		BAD,
		UNKNOWN,
		NEED_PUBLIC_KEY
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "CmpBodyKind", cprefix = "CMP_BODY_", has_type_id = false)]
	public enum CmpBodyKind {
		TEXT,
		REGEX
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "CmpHeaderKind", cprefix = "CMP_HEADER_", has_type_id = false)]
	public enum CmpHeaderKind {
		CONTAINS,
		MATCHES,
		STARTS_WITH,
		ENDS_WITH,
		EXISTS,
		SOUNDEX,
		REGEX,
		FULL_REGEX,
		HAS_WORDS
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_COMPARE_CASE_", type_id = "camel_compare_type_get_type ()")]
	[Version (since = "3.24")]
	public enum CompareType {
		INSENSITIVE,
		SENSITIVE
	}
	[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.58")]
	public enum DBSqlizeFlags {
		FULL,
		ESCAPE_ONLY
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FETCH_HEADERS_", type_id = "camel_fetch_headers_type_get_type ()")]
	[Version (since = "3.2")]
	public enum FetchHeadersType {
		BASIC,
		BASIC_AND_MAILING_LIST,
		ALL
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FETCH_", type_id = "camel_fetch_type_get_type ()")]
	[Version (since = "3.4")]
	public enum FetchType {
		OLD_MESSAGES,
		NEW_MESSAGES
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_", type_id = "camel_folder_flags_get_type ()")]
	[Flags]
	public enum FolderFlags {
		HAS_SUMMARY_CAPABILITY,
		FILTER_RECENT,
		HAS_BEEN_DELETED,
		IS_TRASH,
		IS_JUNK,
		FILTER_JUNK
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_", type_id = "camel_folder_info_flags_get_type ()")]
	[Flags]
	public enum FolderInfoFlags {
		NOSELECT,
		NOINFERIORS,
		CHILDREN,
		NOCHILDREN,
		SUBSCRIBED,
		VIRTUAL,
		SYSTEM,
		VTRASH,
		SHARED_TO_ME,
		SHARED_BY_ME,
		TYPE_NORMAL,
		TYPE_INBOX,
		TYPE_OUTBOX,
		TYPE_TRASH,
		TYPE_JUNK,
		TYPE_SENT,
		TYPE_CONTACTS,
		TYPE_EVENTS,
		TYPE_MEMOS,
		TYPE_TASKS,
		TYPE_ALL,
		TYPE_ARCHIVE,
		TYPE_DRAFTS,
		READONLY,
		WRITEONLY,
		FLAGGED,
		FLAGS_LAST
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_PARAM_", type_id = "camel_folder_param_flags_get_type ()")]
	[Flags]
	[Version (since = "3.58")]
	public enum FolderParamFlags {
		PERSISTENT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_SUMMARY_", has_type_id = false)]
	[Flags]
	public enum FolderSummaryFlags {
		DIRTY,
		IN_MEMORY_ONLY
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_THREAD_FLAG_", type_id = "camel_folder_thread_flags_get_type ()")]
	[Flags]
	[Version (since = "3.58")]
	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
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_HTML_PARSER_", has_type_id = false)]
	public enum HTMLParserState {
		DATA,
		ENT,
		ELEMENT,
		TAG,
		DTDENT,
		COMMENT0,
		COMMENT,
		ATTR0,
		ATTR,
		VAL0,
		VAL,
		VAL_ENT,
		EOD,
		EOF
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_HEADER_ADDRESS_", has_type_id = false)]
	public enum HeaderAddressType {
		NONE,
		NAME,
		GROUP
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_JUNK_STATUS_", type_id = "camel_junk_status_get_type ()")]
	public enum JunkStatus {
		ERROR,
		INCONCLUSIVE,
		MESSAGE_IS_JUNK,
		MESSAGE_IS_NOT_JUNK
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_LOCK_", has_type_id = false)]
	public enum LockType {
		READ,
		WRITE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MATCH_THREADS_KIND_", type_id = "camel_match_threads_kind_get_type ()")]
	[Version (since = "3.58")]
	public enum MatchThreadsKind {
		NONE,
		ALL,
		REPLIES,
		REPLIES_AND_PARENTS,
		SINGLE,
		NOT_ALL
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MEMPOOL_ALIGN_", has_type_id = false)]
	[Version (since = "2.32")]
	public enum MemPoolFlags {
		STRUCT,
		WORD,
		BYTE,
		MASK
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MESSAGE_", type_id = "camel_message_flags_get_type ()")]
	[Flags]
	public enum MessageFlags {
		ANSWERED,
		DELETED,
		DRAFT,
		FLAGGED,
		SEEN,
		ATTACHMENTS,
		ANSWERED_ALL,
		JUNK,
		SECURE,
		NOTJUNK,
		FORWARDED,
		FOLDER_FLAGGED,
		JUNK_LEARN,
		USER
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_BASIC_", type_id = "camel_mime_filter_basic_type_get_type ()")]
	public enum MimeFilterBasicType {
		INVALID,
		BASE64_ENC,
		BASE64_DEC,
		QP_ENC,
		QP_DEC,
		UU_ENC,
		UU_DEC
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_CRLF_", type_id = "camel_mime_filter_crlf_direction_get_type ()")]
	public enum MimeFilterCRLFDirection {
		ENCODE,
		DECODE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_CRLF_MODE_CRLF_", type_id = "camel_mime_filter_crlf_mode_get_type ()")]
	public enum MimeFilterCRLFMode {
		DOTS,
		ONLY
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_CANON_", type_id = "camel_mime_filter_canon_flags_get_type ()")]
	[Flags]
	public enum MimeFilterCanonFlags {
		CRLF,
		FROM,
		STRIP
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_ENRICHED_", type_id = "camel_mime_filter_enriched_flags_get_type ()")]
	[Flags]
	public enum MimeFilterEnrichedFlags {
		NONE,
		IS_RICHTEXT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_GZIP_MODE_", type_id = "camel_mime_filter_gzip_mode_get_type ()")]
	public enum MimeFilterGZipMode {
		ZIP,
		UNZIP
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_TOHTML_", type_id = "camel_mime_filter_to_html_flags_get_type ()")]
	[Flags]
	public enum MimeFilterToHTMLFlags {
		PRE,
		CONVERT_NL,
		CONVERT_SPACES,
		CONVERT_URLS,
		MARK_CITATION,
		CONVERT_ADDRESSES,
		ESCAPE_8BIT,
		CITE,
		PRESERVE_8BIT,
		FORMAT_FLOWED,
		QUOTE_CITATION,
		DIV,
		PRESERVE_TABS
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_FILTER_YENC_DIRECTION_", type_id = "camel_mime_filter_yenc_direction_get_type ()")]
	public enum MimeFilterYencDirection {
		ENCODE,
		DECODE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_MIME_PARSER_STATE_", has_type_id = false)]
	public enum MimeParserState {
		INITIAL,
		PRE_FROM,
		FROM,
		HEADER,
		BODY,
		MULTIPART,
		MESSAGE,
		PART,
		END,
		EOF,
		PRE_FROM_END,
		FROM_END,
		HEADER_END,
		BODY_END,
		MULTIPART_END,
		MESSAGE_END
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_NETWORK_SECURITY_METHOD_", type_id = "camel_network_security_method_get_type ()")]
	[Version (since = "3.2")]
	public enum NetworkSecurityMethod {
		NONE,
		SSL_ON_ALTERNATE_PORT,
		STARTTLS_ON_STANDARD_PORT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_PROVIDER_CONF_", type_id = "camel_provider_conf_type_get_type ()")]
	public enum ProviderConfType {
		END,
		SECTION_START,
		SECTION_END,
		CHECKBOX,
		CHECKSPIN,
		ENTRY,
		LABEL,
		HIDDEN,
		OPTIONS,
		PLACEHOLDER,
		ADVANCED_SECTION_START
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_PROVIDER_", type_id = "camel_provider_flags_get_type ()")]
	[Flags]
	public enum ProviderFlags {
		IS_REMOTE,
		IS_LOCAL,
		IS_EXTERNAL,
		IS_SOURCE,
		IS_STORAGE,
		SUPPORTS_SSL,
		HAS_LICENSE,
		DISABLE_SENT_FOLDER,
		ALLOW_REAL_TRASH_FOLDER,
		ALLOW_REAL_JUNK_FOLDER,
		SUPPORTS_MOBILE_DEVICES,
		SUPPORTS_BATCH_FETCH,
		SUPPORTS_PURGE_MESSAGE_CACHE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_PROVIDER_", type_id = "camel_provider_type_get_type ()")]
	public enum ProviderType {
		STORE,
		TRANSPORT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_URL_", has_type_id = false)]
	[Flags]
	public enum ProviderURLFlags {
		ALLOW_USER,
		ALLOW_AUTH,
		ALLOW_PASSWORD,
		ALLOW_HOST,
		ALLOW_PORT,
		ALLOW_PATH,
		NEED_USER,
		NEED_AUTH,
		NEED_PASSWORD,
		NEED_HOST,
		NEED_PORT,
		NEED_PATH,
		NEED_PATH_DIR,
		HIDDEN_USER,
		HIDDEN_AUTH,
		HIDDEN_PASSWORD,
		HIDDEN_HOST,
		HIDDEN_PORT,
		HIDDEN_PATH
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_RECIPIENT_CERTIFICATE_", type_id = "camel_recipient_certificate_flags_get_type ()")]
	[Flags]
	[Version (since = "3.30")]
	public enum RecipientCertificateFlags {
		SMIME,
		PGP
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SEXP_RES_", type_id = "camel_sexp_result_type_get_type ()")]
	[Version (since = "3.4")]
	public enum SExpResultType {
		ARRAY_PTR,
		INT,
		STRING,
		BOOL,
		TIME,
		UNDEFINED
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SEXP_TERM_", type_id = "camel_sexp_term_type_get_type ()")]
	[Version (since = "3.4")]
	public enum SExpTermType {
		INT,
		BOOL,
		STRING,
		TIME,
		FUNC,
		IFUNC,
		VAR
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SMIME_", has_type_id = false)]
	[Flags]
	public enum SMIMEDescribe {
		SIGNED,
		ENCRYPTED,
		CERTS,
		CRLS
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SMIME_SIGN_", has_type_id = false)]
	public enum SMIMESign {
		CLEARSIGN,
		ENVELOPED
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SASL_ANON_TRACE_", type_id = "camel_sasl_anon_trace_type_get_type ()")]
	public enum SaslAnonTraceType {
		EMAIL,
		OPAQUE,
		EMPTY
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SERVICE_", type_id = "camel_service_connection_status_get_type ()")]
	[Version (since = "3.6")]
	public enum ServiceConnectionStatus {
		DISCONNECTED,
		CONNECTING,
		CONNECTED,
		DISCONNECTING
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SESSION_ALERT_", type_id = "camel_session_alert_type_get_type ()")]
	public enum SessionAlertType {
		INFO,
		WARNING,
		ERROR
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SORT_", type_id = "camel_sort_type_get_type ()")]
	[Version (since = "3.2")]
	public enum SortType {
		ASCENDING,
		DESCENDING
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_DB_COUNT_KIND_", type_id = "camel_store_db_count_kind_get_type ()")]
	[Version (since = "3.58")]
	public enum StoreDBCountKind {
		TOTAL,
		UNREAD,
		JUNK,
		DELETED,
		NOT_JUNK_NOT_DELETED,
		NOT_JUNK_NOT_DELETED_UNREAD,
		JUNK_NOT_DELETED
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_", type_id = "camel_store_flags_get_type ()")]
	[Flags]
	public enum StoreFlags {
		VTRASH,
		VJUNK,
		PROXY,
		IS_MIGRATING,
		REAL_JUNK_FOLDER,
		CAN_EDIT_FOLDERS,
		USE_CACHE_DIR,
		CAN_DELETE_FOLDERS_AT_ONCE,
		SUPPORTS_INITIAL_SETUP,
		IS_BUILTIN,
		USE_TEMP_DIR
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_FOLDER_", type_id = "camel_store_get_folder_flags_get_type ()")]
	[Flags]
	public enum StoreGetFolderFlags {
		NONE,
		CREATE,
		BODY_INDEX,
		PRIVATE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_FOLDER_INFO_", type_id = "camel_store_get_folder_info_flags_get_type ()")]
	[Flags]
	public enum StoreGetFolderInfoFlags {
		FAST,
		RECURSIVE,
		SUBSCRIBED,
		NO_VIRTUAL,
		SUBSCRIPTION_LIST,
		REFRESH
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_INFO_FOLDER_", type_id = "camel_store_info_flags_get_type ()")]
	[Flags]
	public enum StoreInfoFlags {
		NOSELECT,
		NOINFERIORS,
		CHILDREN,
		NOCHILDREN,
		SUBSCRIBED,
		VIRTUAL,
		SYSTEM,
		VTRASH,
		SHARED_TO_ME,
		SHARED_BY_ME,
		TYPE_NORMAL,
		TYPE_INBOX,
		TYPE_OUTBOX,
		TYPE_TRASH,
		TYPE_JUNK,
		TYPE_SENT,
		TYPE_CONTACTS,
		TYPE_EVENTS,
		TYPE_MEMOS,
		TYPE_TASKS,
		TYPE_ALL,
		TYPE_ARCHIVE,
		TYPE_DRAFTS,
		READONLY,
		WRITEONLY,
		FLAGGED
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_", type_id = "camel_store_permission_flags_get_type ()")]
	[Flags]
	public enum StorePermissionFlags {
		READ,
		WRITE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STREAM_BUFFER_", has_type_id = false)]
	public enum StreamBufferMode {
		BUFFER,
		NONE,
		READ,
		WRITE,
		MODE
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_THREE_STATE_", type_id = "camel_three_state_get_type ()")]
	[Version (since = "3.22")]
	public enum ThreeState {
		OFF,
		ON,
		INCONSISTENT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_TIME_UNIT_", type_id = "camel_time_unit_get_type ()")]
	[Version (since = "3.24")]
	public enum TimeUnit {
		DAYS,
		WEEKS,
		MONTHS,
		YEARS
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_TRANSFER_", type_id = "camel_transfer_encoding_get_type ()")]
	public enum TransferEncoding {
		ENCODING_DEFAULT,
		ENCODING_7BIT,
		ENCODING_8BIT,
		ENCODING_BASE64,
		ENCODING_QUOTEDPRINTABLE,
		ENCODING_BINARY,
		ENCODING_UUENCODE,
		NUM_ENCODINGS;
		public static Camel.TransferEncoding from_string (string string);
		public unowned string to_string ();
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_URL_HIDE_", type_id = "camel_url_flags_get_type ()")]
	[Flags]
	public enum URLFlags {
		PARAMS,
		AUTH
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_UUDECODE_STATE_", has_type_id = false)]
	[Flags]
	public enum UUDecodeState {
		INIT,
		BEGIN,
		END
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_VTRASH_FOLDER_", has_type_id = false)]
	public enum VTrashFolderType {
		TRASH,
		JUNK,
		LAST
	}
	[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.58")]
	public enum VeeFolderOpFlags {
		NONE,
		SKIP_REBUILD,
		SKIP_EMIT
	}
	[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 {
		START,
		END,
		REGEX,
		ICASE,
		NEWLINE
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "camel_search_match_t", cprefix = "CAMEL_SEARCH_MATCH_", has_type_id = false)]
	public enum _search_match_t {
		EXACT,
		CONTAINS,
		WORD,
		STARTS,
		ENDS,
		SOUNDEX,
		REGEX_SINGLELINE,
		REGEX_MULTILINE
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "camel_search_t", cprefix = "CAMEL_SEARCH_TYPE_", has_type_id = false)]
	public enum _search_t {
		ASIS,
		ENCODED,
		ADDRESS,
		ADDRESS_ENCODED,
		MLIST
	}
	[CCode (cheader_filename = "camel/camel.h", cname = "camel_search_word_t", cprefix = "CAMEL_SEARCH_WORD_", has_type_id = false)]
	public enum _search_word_t {
		SIMPLE,
		COMPLEX,
		@8BIT
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_ERROR_", has_type_id = false)]
	[Version (since = "2.32")]
	public errordomain Error {
		[CCode (cname = "CAMEL_ERROR_GENERIC")]
		ERROR_GENERIC;
		public static GLib.Quark quark ();
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_FOLDER_ERROR_", type_id = "camel_folder_error_get_type ()")]
	[Version (since = "2.32")]
	public errordomain FolderError {
		INVALID,
		INVALID_STATE,
		NON_EMPTY,
		NON_UID,
		INSUFFICIENT_PERMISSION,
		INVALID_PATH,
		INVALID_UID,
		SUMMARY_INVALID;
		public static GLib.Quark quark ();
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_SERVICE_ERROR_", type_id = "camel_service_error_get_type ()")]
	[Version (since = "2.32")]
	public errordomain ServiceError {
		INVALID,
		URL_INVALID,
		UNAVAILABLE,
		CANT_AUTHENTICATE,
		NOT_CONNECTED;
		public static GLib.Quark quark ();
	}
	[CCode (cheader_filename = "camel/camel.h", cprefix = "CAMEL_STORE_ERROR_", type_id = "camel_store_error_get_type ()")]
	[Version (since = "2.32")]
	public errordomain StoreError {
		INVALID,
		NO_FOLDER;
		public static GLib.Quark quark ();
	}
	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
	public delegate void* CipherCloneFunc (void* value);
	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
	public delegate void* CopyFunc (void* object);
	[CCode (cheader_filename = "camel/camel.h", has_target = false)]
	[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)]
	[Version (since = "3.58")]
	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);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
	[Version (since = "3.26")]
	public delegate bool DataCacheRemoveFunc (Camel.DataCache cdc, string filename);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
	public delegate unowned Camel.Folder FilterGetFolderFunc (Camel.FilterDriver driver, string uri) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
	public delegate void FilterPlaySoundFunc (Camel.FilterDriver driver, string filename);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 3.9)]
	public delegate void FilterShellFunc (Camel.FilterDriver driver, int argc, string argv);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 4.9)]
	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);
	[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);
	[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);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 1.9)]
	[Version (since = "3.52")]
	public delegate string? GeneratePreviewFunc (void* part);
	[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)]
	[Version (since = "3.36")]
	public delegate bool MessageContentInfoTraverseCallback (Camel.MessageContentInfo ci, int depth);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
	[Version (since = "3.4")]
	public delegate unowned Camel.SExpResult? SExpFunc (Camel.SExp sexp, [CCode (array_length_cname = "argc", array_length_pos = 1.5)] Camel.SExpResult[] argv);
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
	[Version (since = "3.4")]
	public delegate unowned Camel.SExpResult? SExpIFunc (Camel.SExp sexp, [CCode (array_length_cname = "argc", array_length_pos = 1.5)] Camel.SExpTerm[] argv);
	[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;
	[CCode (cheader_filename = "camel/camel.h", instance_pos = 2.9)]
	[Version (since = "3.58")]
	public delegate bool StoreDBReadMessagesFunc (Camel.StoreDB storedb, Camel.StoreDBMessageRecord record);
	[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)]
	public delegate bool UrlScanFunc (string @in, string pos, string inend, Camel.UrlMatch match);
	[CCode (cheader_filename = "camel/camel.h", cname = "AI_CANONNAME")]
	public const int AI_CANONNAME;
	[CCode (cheader_filename = "camel/camel.h", cname = "AI_NUMERICHOST")]
	public const int AI_NUMERICHOST;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_BLOCK_SIZE")]
	public const int BLOCK_SIZE;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_BLOCK_SIZE_BITS")]
	public const int BLOCK_SIZE_BITS;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_CIPHER_CERT_INFO_PROPERTY_PHOTO_FILENAME")]
	[Version (since = "3.22")]
	public const string CIPHER_CERT_INFO_PROPERTY_PHOTO_FILENAME;
	[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;
	[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")]
	public const string DEBUG_IMAP_FOLDER;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_DOT_LOCK_REFRESH")]
	public const int DOT_LOCK_REFRESH;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_ADDRFAMILY")]
	public const int EAI_ADDRFAMILY;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_AGAIN")]
	public const int EAI_AGAIN;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_BADFLAGS")]
	public const int EAI_BADFLAGS;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_FAIL")]
	public const int EAI_FAIL;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_FAMILY")]
	public const int EAI_FAMILY;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_MEMORY")]
	public const int EAI_MEMORY;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_NODATA")]
	public const int EAI_NODATA;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_NONAME")]
	public const int EAI_NONAME;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_OVERFLOW")]
	public const int EAI_OVERFLOW;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_SERVICE")]
	public const int EAI_SERVICE;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_SOCKTYPE")]
	public const int EAI_SOCKTYPE;
	[CCode (cheader_filename = "camel/camel.h", cname = "EAI_SYSTEM")]
	public const int EAI_SYSTEM;
	[CCode (cheader_filename = "camel/camel.h", cname = "EDS_CAMEL_PROVIDER_DIR")]
	public const string EDS_CAMEL_PROVIDER_DIR;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_FOLDER_TYPE_BIT")]
	public const int FOLDER_TYPE_BIT;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_FOLDER_TYPE_MASK")]
	public const int FOLDER_TYPE_MASK;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_FOLD_MAX_SIZE")]
	public const int FOLD_MAX_SIZE;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_FOLD_SIZE")]
	public const int FOLD_SIZE;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_INDEX_DELETED")]
	public const int INDEX_DELETED;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_KEY_TABLE_MAX_KEY")]
	public const int KEY_TABLE_MAX_KEY;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_LOCK_DELAY")]
	public const int LOCK_DELAY;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_LOCK_DOT_DELAY")]
	public const int LOCK_DOT_DELAY;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_LOCK_DOT_RETRY")]
	public const int LOCK_DOT_RETRY;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_LOCK_DOT_STALE")]
	public const int LOCK_DOT_STALE;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_LOCK_RETRY")]
	public const int LOCK_RETRY;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MAX_PREVIEW_LENGTH")]
	[Version (since = "3.52")]
	public const int MAX_PREVIEW_LENGTH;
	[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")]
	public const int MESSAGE_SYSTEM_MASK;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_BEGIN")]
	public const int MIME_YDECODE_STATE_BEGIN;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_DECODE")]
	public const int MIME_YDECODE_STATE_DECODE;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_END")]
	public const int MIME_YDECODE_STATE_END;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_EOLN")]
	public const int MIME_YDECODE_STATE_EOLN;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_ESCAPE")]
	public const int MIME_YDECODE_STATE_ESCAPE;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_INIT")]
	public const int MIME_YDECODE_STATE_INIT;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YDECODE_STATE_PART")]
	public const int MIME_YDECODE_STATE_PART;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YENCODE_CRC_INIT")]
	public const int MIME_YENCODE_CRC_INIT;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_MIME_YENCODE_STATE_INIT")]
	public const int MIME_YENCODE_STATE_INIT;
	[CCode (cheader_filename = "camel/camel.h", cname = "NI_DGRAM")]
	public const int NI_DGRAM;
	[CCode (cheader_filename = "camel/camel.h", cname = "NI_NAMEREQD")]
	public const int NI_NAMEREQD;
	[CCode (cheader_filename = "camel/camel.h", cname = "NI_NOFQDN")]
	public const int NI_NOFQDN;
	[CCode (cheader_filename = "camel/camel.h", cname = "NI_NUMERICHOST")]
	public const int NI_NUMERICHOST;
	[CCode (cheader_filename = "camel/camel.h", cname = "NI_NUMERICSERV")]
	public const int NI_NUMERICSERV;
	[CCode (cheader_filename = "camel/camel.h", cname = "O_BINARY")]
	public const int O_BINARY;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_BCC")]
	public const string RECIPIENT_TYPE_BCC;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_CC")]
	public const string RECIPIENT_TYPE_CC;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_RESENT_BCC")]
	public const string RECIPIENT_TYPE_RESENT_BCC;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_RESENT_CC")]
	public const string RECIPIENT_TYPE_RESENT_CC;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_RESENT_TO")]
	public const string RECIPIENT_TYPE_RESENT_TO;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_RECIPIENT_TYPE_TO")]
	public const string RECIPIENT_TYPE_TO;
	[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.58")]
	public const string STORE_DB_FILE;
	[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")]
	public const int STORE_INFO_FOLDER_TYPE_MASK;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_INFO_FOLDER_UNKNOWN")]
	public const int STORE_INFO_FOLDER_UNKNOWN;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_SETUP_ARCHIVE_FOLDER")]
	public const string STORE_SETUP_ARCHIVE_FOLDER;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_SETUP_DRAFTS_FOLDER")]
	public const string STORE_SETUP_DRAFTS_FOLDER;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_STORE_SETUP_SENT_FOLDER")]
	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;
	[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")]
	public const int URL_PART_AUTH;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_HIDDEN")]
	public const int URL_PART_HIDDEN;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_HOST")]
	public const int URL_PART_HOST;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_NEED")]
	public const int URL_PART_NEED;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_PASSWORD")]
	public const int URL_PART_PASSWORD;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_PATH")]
	public const int URL_PART_PATH;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_PATH_DIR")]
	public const int URL_PART_PATH_DIR;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_PORT")]
	public const int URL_PART_PORT;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_URL_PART_USER")]
	public const int URL_PART_USER;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_UTILS_MAX_USER_HEADERS")]
	public const int UTILS_MAX_USER_HEADERS;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_UUDECODE_STATE_MASK")]
	public const int UUDECODE_STATE_MASK;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_VJUNK_NAME")]
	public const string VJUNK_NAME;
	[CCode (cheader_filename = "camel/camel.h", cname = "CAMEL_VTRASH_NAME")]
	public const string VTRASH_NAME;
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.16")]
	public static unowned GLib.Binding binding_bind_property (GLib.Object source, string source_property, GLib.Object target, string target_property, GLib.BindingFlags flags);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.16")]
	public static unowned GLib.Binding binding_bind_property_full (GLib.Object source, string source_property, GLib.Object target, string target_property, GLib.BindingFlags flags, GLib.BindingTransformFunc? transform_to, owned GLib.BindingTransformFunc? transform_from);
	[CCode (cheader_filename = "camel/camel.h")]
	[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")]
	[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")]
	[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")]
	[Version (replacement = "ContentDisposition.decode")]
	public static Camel.ContentDisposition content_disposition_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string content_transfer_encoding_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (replacement = "ContentType.decode")]
	public static Camel.ContentType content_type_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static bool debug (string mode);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.30")]
	public static void debug_demangle_backtrace (ref GLib.StringBuilder? bt);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void debug_end ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.12")]
	public static GLib.StringBuilder? debug_get_backtrace ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.30")]
	public static GLib.StringBuilder? debug_get_raw_backtrace ();
	[CCode (cheader_filename = "camel/camel.h")]
	public static void debug_init ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.20")]
	public static void debug_ref_unref_dump_backtraces ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.20")]
	public static void debug_ref_unref_push_backtrace (GLib.StringBuilder backtrace, uint object_ref_count);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.20")]
	public static void debug_ref_unref_push_backtrace_for_object (void* _object);
	[CCode (cheader_filename = "camel/camel.h")]
	public static bool debug_start (string mode);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string enriched_to_html (string @in, Camel.MimeFilterEnrichedFlags flags);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_decode_fixed_int32 (void* @in, int32 dest);
	[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")]
	[Version (since = "3.50")]
	public static int file_util_decode_gint64 (void* @in, int64 dest);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_decode_gsize (void* @in, size_t dest);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_decode_off_t (void* @in, off_t dest);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_decode_string (void* @in, string str);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_decode_time_t (void* @in, time_t dest);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_decode_uint32 (void* @in, uint32 dest);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_encode_fixed_int32 (void* @out, int32 value);
	[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")]
	[Version (since = "3.50")]
	public static int file_util_encode_gint64 (void* @out, int64 value);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_encode_gsize (void* @out, size_t value);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_encode_off_t (void* @out, off_t value);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_encode_string (void* @out, string str);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int file_util_encode_time_t (void* @out, time_t value);
	[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);
	[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);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "2.22")]
	public static void freeaddrinfo (void* host);
	[CCode (cheader_filename = "camel/camel.h")]
	[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")]
	[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")]
	public static string header_contentid_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static time_t header_decode_date (string str, int tz_offset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int header_decode_int (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_decode_string (string @in, string default_charset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_encode_phrase (uint8 @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_encode_string (uint8 @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_fold (string @in, size_t headerlen);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_format_ctext (string @in, string default_charset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_format_date (time_t date, int tz_offset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_location_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static Camel.HeaderAddress header_mailbox_decode (string @in, string charset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void header_mime_decode (string @in, int maj, int min);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_msgid_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_msgid_generate (string? domain);
	[CCode (cheader_filename = "camel/camel.h")]
	public static GLib.SList<string> header_newsgroups_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static GLib.SList<string> header_references_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void* header_set_param (void* paramsp, string name, string value);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_token_decode (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string header_unfold (string @in);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string? headers_dup_mailing_list (Camel.NameValueArray headers);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.16")]
	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);
	[CCode (cheader_filename = "camel/camel.h")]
	public static unowned string iconv_charset_language (string charset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static unowned string iconv_charset_name (string charset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static unowned string iconv_locale_charset ();
	[CCode (cheader_filename = "camel/camel.h")]
	public static unowned string iconv_locale_language ();
	[CCode (cheader_filename = "camel/camel.h")]
	public static int init (string certdb_dir, bool nss_init);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void localtime_with_offset (time_t tt, [CCode (type = "tm*")] Posix.tm tm, int offset);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int lock_dot (string path) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static int lock_fcntl (int fd, Camel.LockType type) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static int lock_flock (int fd, Camel.LockType type) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static int lock_folder (string path, int fd, Camel.LockType type) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static int lock_helper_lock (string path) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static int lock_helper_unlock (int lockid);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.4")]
	public static time_t mktime_utc ([CCode (type = "tm*")] Posix.tm tm);
	[CCode (cheader_filename = "camel/camel.h")]
	public static int movemail (string source, string dest) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.6")]
	public static void pointer_tracker_dump ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.6")]
	public static void pointer_tracker_track_with_info (void* ptr, string info);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.6")]
	public static void pointer_tracker_untrack (void* ptr);
	[CCode (cheader_filename = "camel/camel.h")]
	[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);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.22")]
	public static bool pstring_contains (string? string);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.6")]
	public static void pstring_dump_stat ();
	[CCode (cheader_filename = "camel/camel.h")]
	public static void pstring_free (string? string);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "2.24")]
	public static unowned string? pstring_peek (string? string);
	[CCode (cheader_filename = "camel/camel.h")]
	public static unowned string? pstring_strdup (string? string);
	[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")]
	public static size_t quoted_encode_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_cname = "state", array_length_pos = 2.5)] ref int[] save);
	[CCode (cheader_filename = "camel/camel.h")]
	public static size_t quoted_encode_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 = "state", array_length_pos = 2.5)] ref int[] save);
	[CCode (cheader_filename = "camel/camel.h")]
	public static ssize_t read (int fd, string buf, size_t n, GLib.Cancellable? cancellable = null) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static bool search_camel_header_soundex (string header, string match);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.22")]
	public static string search_get_all_headers_decoded (Camel.MimeMessage message);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.28")]
	public static unowned string search_get_default_charset_from_headers (Camel.NameValueArray headers);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.22")]
	public static unowned string search_get_default_charset_from_message (Camel.MimeMessage message);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.22")]
	public static string search_get_header_decoded (string header_name, string header_value, string? default_charset);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.28")]
	public static string search_get_headers_decoded (Camel.NameValueArray headers, string? default_charset);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.22")]
	public static bool search_header_is_address (string header_name);
	[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")]
	[Version (since = "3.58")]
	public static time_t search_util_add_months (time_t t, int months);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.58")]
	public static int search_util_compare_date (int64 datetime1, int64 datetime2);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.58")]
	public static uint64 search_util_hash_message_id (string message_id, bool needs_decode);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.58")]
	public static time_t search_util_make_time (int argc, Camel.SExpResult argv);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.58")]
	public static int64 search_util_str_to_time (string? str);
	[CCode (cheader_filename = "camel/camel.h")]
	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);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (replacement = "ServiceError.quark")]
	public static GLib.Quark service_error_quark ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "2.24")]
	public static void shutdown ();
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (replacement = "StoreError.quark")]
	public static GLib.Quark store_error_quark ();
	[CCode (cheader_filename = "camel/camel.h")]
	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")]
	[Version (since = "3.44")]
	public static bool string_is_all_ascii (string? str);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string strstrcase (string haystack, string needle);
	[CCode (cheader_filename = "camel/camel.h")]
	public static Camel.MessageFlags system_flag (string name);
	[CCode (cheader_filename = "camel/camel.h")]
	public static bool system_flag_get (Camel.MessageFlags flags, string name);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string text_to_html (string @in, Camel.MimeFilterToHTMLFlags flags, uint32 color);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.24")]
	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);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string ucs2_utf8 (string ptr);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void unlock_dot (string path);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void unlock_fcntl (int fd);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void unlock_flock (int fd);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void unlock_folder (string path, int fd);
	[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);
	[CCode (cheader_filename = "camel/camel.h")]
	public static unowned string ustrstrcase (string haystack, string needle);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string utf7_utf8 (string ptr);
	[CCode (cheader_filename = "camel/camel.h")]
	public static uint32 utf8_getc (ref uint8 ptr);
	[CCode (cheader_filename = "camel/camel.h")]
	public static uint32 utf8_getc_limit (ref uint8 ptr, uint8 end);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "2.26")]
	public static string utf8_make_valid (string text);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.34")]
	public static string utf8_make_valid_len (string text, ssize_t text_len);
	[CCode (cheader_filename = "camel/camel.h")]
	public static void utf8_putc (ref uint8 ptr, uint32 c);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string utf8_ucs2 (string ptr);
	[CCode (cheader_filename = "camel/camel.h")]
	public static string utf8_utf7 (string ptr);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.24")]
	public static int64 util_bdata_get_number (string bdata_ptr, int64 default_value);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.24")]
	public static string util_bdata_get_string (string bdata_ptr, string default_value);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.24")]
	public static void util_bdata_put_number (GLib.StringBuilder bdata_str, int64 value);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.24")]
	public static void util_bdata_put_string (GLib.StringBuilder bdata_str, string value);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.42")]
	public static void util_decode_user_header_setting (string setting_value, out string? out_display_name, out string out_header_name);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.42")]
	public static string util_encode_user_header_setting (string? display_name, string header_name);
	[CCode (cheader_filename = "camel/camel.h")]
	[Version (since = "3.42")]
	public static bool util_fill_message_info_user_headers (Camel.MessageInfo info, Camel.NameValueArray headers);
	[CCode (cheader_filename = "camel/camel.h")]
	[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")]
	[Version (since = "3.60.2")]
	public static bool util_is_network_error (GLib.Error? error);
	[CCode (cheader_filename = "camel/camel.h")]
	[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")]
	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);
	[CCode (cheader_filename = "camel/camel.h")]
	public static size_t uuencode_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 = false)] ref uint8 uubuf[60], [CCode (array_length_cname = "state", array_length_pos = 3.5)] ref uint32[] save);
	[CCode (cheader_filename = "camel/camel.h")]
	public static ssize_t write (int fd, string buf, size_t n, GLib.Cancellable? cancellable = null) throws GLib.Error;
	[CCode (cheader_filename = "camel/camel.h")]
	public static size_t ydecode_step ([CCode (array_length_cname = "inlen", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length = false)] out uint8[] @out, out int state, out uint32 pcrc, out uint32 crc);
	[CCode (cheader_filename = "camel/camel.h")]
	public static size_t yencode_close ([CCode (array_length_cname = "inlen", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length = false)] out uint8[] @out, out int state, out uint32 pcrc, out uint32 crc);
	[CCode (cheader_filename = "camel/camel.h")]
	public static size_t yencode_step ([CCode (array_length_cname = "inlen", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] @in, [CCode (array_length = false)] out uint8[] @out, out int state, out uint32 pcrc, out uint32 crc);
}
