// // IMailFolder.cs // // Author: Jeffrey Stedfast // // Copyright (c) 2013-2020 .NET Foundation and Contributors // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // using System; using System.IO; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using MimeKit; using MailKit.Search; namespace MailKit { /// /// An interface for a mailbox folder as used by . /// /// /// Implemented by message stores such as /// public interface IMailFolder : IEnumerable { /// /// Gets an object that can be used to synchronize access to the folder. /// /// /// Gets an object that can be used to synchronize access to the folder. /// /// The sync root. object SyncRoot { get; } /// /// Get the parent folder. /// /// /// Root-level folders do not have a parent folder. /// /// The parent folder. IMailFolder ParentFolder { get; } /// /// Get the folder attributes. /// /// /// Gets the folder attributes. /// /// The folder attributes. FolderAttributes Attributes { get; } /// /// Get the annotation access level. /// /// /// If annotations are supported, this property can be used to determine whether or not /// the supports reading and writing annotations. /// AnnotationAccess AnnotationAccess { get; } /// /// Get the supported annotation scopes. /// /// /// If annotations are supported, this property can be used to determine which /// annotation scopes are supported by the . /// AnnotationScope AnnotationScopes { get; } /// /// Get the maximum size of annotation values supported by the folder. /// /// /// If annotations are supported, this property can be used to determine the /// maximum size of annotation values supported by the . /// uint MaxAnnotationSize { get; } /// /// Get the permanent flags. /// /// /// The permanent flags are the message flags that will persist between sessions. /// If the flag is set, then the folder allows /// storing of user-defined (custom) message flags. /// /// The permanent flags. MessageFlags PermanentFlags { get; } /// /// Get the accepted flags. /// /// /// The accepted flags are the message flags that will be accepted and persist /// for the current session. For the set of flags that will persist between /// sessions, see the property. /// /// The accepted flags. MessageFlags AcceptedFlags { get; } /// /// Get the directory separator. /// /// /// Gets the directory separator. /// /// The directory separator. char DirectorySeparator { get; } /// /// Get the read/write access of the folder. /// /// /// Gets the read/write access of the folder. /// /// The read/write access. FolderAccess Access { get; } /// /// Get whether or not the folder is a namespace folder. /// /// /// Gets whether or not the folder is a namespace folder. /// /// true if the folder is a namespace folder; otherwise, false. bool IsNamespace { get; } /// /// Get the full name of the folder. /// /// /// This is the equivalent of the full path of a file on a file system. /// /// The full name of the folder. string FullName { get; } /// /// Get the name of the folder. /// /// /// This is the equivalent of the file name of a file on the file system. /// /// The name of the folder. string Name { get; } /// /// Get the unique identifier for the folder, if available. /// /// /// Gets a unique identifier for the folder, if available. This is useful for clients /// implementing a message cache that want to track the folder after it is renamed by another /// client. /// This property will only be available if the server supports the /// OBJECTID extension. /// /// The unique folder identifier. string Id { get; } /// /// Get whether or not the folder is subscribed. /// /// /// Gets whether or not the folder is subscribed. /// /// true if the folder is subscribed; otherwise, false. bool IsSubscribed { get; } /// /// Get whether or not the folder is currently open. /// /// /// Gets whether or not the folder is currently open. /// /// true if the folder is currently open; otherwise, false. bool IsOpen { get; } /// /// Get whether or not the folder exists. /// /// /// Gets whether or not the folder exists. /// /// true if the folder exists; otherwise, false. bool Exists { get; } /// /// Get whether or not the folder supports mod-sequences. /// /// /// Gets whether or not the folder supports mod-sequences. /// If mod-sequences are not supported by the folder, then all of the APIs that take a modseq /// argument will throw and should not be used. /// /// true if the folder supports mod-sequences; otherwise, false. [Obsolete ("Use Supports(FolderFeature.ModSequences) instead.")] bool SupportsModSeq { get; } /// /// Get the highest mod-sequence value of all messages in the mailbox. /// /// /// Gets the highest mod-sequence value of all messages in the mailbox. /// /// The highest mod-sequence value. ulong HighestModSeq { get; } /// /// Get the Unique ID validity. /// /// /// UIDs are only valid so long as the UID validity value remains unchanged. If and when /// the folder's is changed, a client MUST discard its cache of UIDs /// along with any summary information that it may have and re-query the folder. /// The will only be set after the folder has been opened. /// /// The UID validity. uint UidValidity { get; } /// /// Get the UID that the next message that is added to the folder will be assigned. /// /// /// This value will only be set after the folder has been opened. /// /// The next UID. UniqueId? UidNext { get; } /// /// Get the maximum size of a message that can be appended to the folder. /// /// /// Gets the maximum size of a message that can be appended to the folder. /// If the value is not set, then the limit is unspecified. /// /// The append limit. uint? AppendLimit { get; } /// /// Get the size of the folder. /// /// /// Gets the size of the folder in bytes. /// If the value is not set, then the size is unspecified. /// /// The size. ulong? Size { get; } /// /// Get the index of the first unread message in the folder. /// /// /// This value will only be set after the folder has been opened. /// /// The index of the first unread message. int FirstUnread { get; } /// /// Get the number of unread messages in the folder. /// /// /// Gets the number of unread messages in the folder. /// This value will only be set after calling /// /// with . /// /// The number of unread messages. int Unread { get; } /// /// Get the number of recently delivered messages in the folder. /// /// /// Gets the number of recently delivered messages in the folder. /// /// This value will only be set after calling /// /// with . /// /// The number of recently delivered messages. int Recent { get; } /// /// Get the total number of messages in the folder. /// /// /// Gets the total number of messages in the folder. /// /// The total number of messages. int Count { get; } /// /// Get the threading algorithms supported by the folder. /// /// /// Get the threading algorithms supported by the folder. /// /// The supported threading algorithms. HashSet ThreadingAlgorithms { get; } /// /// Determine whether or not an supports a feature. /// /// /// Determines whether or not an supports a feature. /// /// The desired feature. /// true if the feature is supported; otherwise, false. bool Supports (FolderFeature feature); /// /// Opens the folder using the requested folder access. /// /// /// This variant of the /// method is meant for quick resynchronization of the folder. Before calling this method, /// the method MUST be called. /// You should also make sure to add listeners to the and /// events to get notifications of changes since /// the last time the folder was opened. /// /// The state of the folder. /// The requested folder access. /// The last known value. /// The last known value. /// The last known list of unique message identifiers. /// The cancellation token. FolderAccess Open (FolderAccess access, uint uidValidity, ulong highestModSeq, IList uids, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously opens the folder using the requested folder access. /// /// /// This variant of the /// method is meant for quick resynchronization of the folder. Before calling this method, /// the method MUST be called. /// You should also make sure to add listeners to the and /// events to get notifications of changes since /// the last time the folder was opened. /// /// The state of the folder. /// The requested folder access. /// The last known value. /// The last known value. /// The last known list of unique message identifiers. /// The cancellation token. Task OpenAsync (FolderAccess access, uint uidValidity, ulong highestModSeq, IList uids, CancellationToken cancellationToken = default (CancellationToken)); /// /// Open the folder using the requested folder access. /// /// /// Opens the folder using the requested folder access. /// /// The state of the folder. /// The requested folder access. /// The cancellation token. FolderAccess Open (FolderAccess access, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously open the folder using the requested folder access. /// /// /// Asynchronously opens the folder using the requested folder access. /// /// The state of the folder. /// The requested folder access. /// The cancellation token. Task OpenAsync (FolderAccess access, CancellationToken cancellationToken = default (CancellationToken)); /// /// Close the folder, optionally expunging the messages marked for deletion. /// /// /// Closes the folder, optionally expunging the messages marked for deletion. /// /// If set to true, expunge. /// The cancellation token. void Close (bool expunge = false, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously close the folder, optionally expunging the messages marked for deletion. /// /// /// Asynchronously closes the folder, optionally expunging the messages marked for deletion. /// /// An asynchronous task context. /// If set to true, expunge. /// The cancellation token. Task CloseAsync (bool expunge = false, CancellationToken cancellationToken = default (CancellationToken)); /// /// Create a new subfolder with the given name. /// /// /// Creates a new subfolder with the given name. /// /// The created folder. /// The name of the folder to create. /// true if the folder will be used to contain messages; otherwise false. /// The cancellation token. IMailFolder Create (string name, bool isMessageFolder, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously create a new subfolder with the given name. /// /// /// Asynchronously creates a new subfolder with the given name. /// /// The created folder. /// The name of the folder to create. /// true if the folder will be used to contain messages; otherwise false. /// The cancellation token. Task CreateAsync (string name, bool isMessageFolder, CancellationToken cancellationToken = default (CancellationToken)); /// /// Create a new subfolder with the given name. /// /// /// Creates a new subfolder with the given name. /// /// The created folder. /// The name of the folder to create. /// A list of special uses for the folder being created. /// The cancellation token. IMailFolder Create (string name, IEnumerable specialUses, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously create a new subfolder with the given name. /// /// /// Asynchronously creates a new subfolder with the given name. /// /// The created folder. /// The name of the folder to create. /// A list of special uses for the folder being created. /// The cancellation token. Task CreateAsync (string name, IEnumerable specialUses, CancellationToken cancellationToken = default (CancellationToken)); /// /// Create a new subfolder with the given name. /// /// /// Creates a new subfolder with the given name. /// /// The created folder. /// The name of the folder to create. /// The special use for the folder being created. /// The cancellation token. IMailFolder Create (string name, SpecialFolder specialUse, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously create a new subfolder with the given name. /// /// /// Asynchronously creates a new subfolder with the given name. /// /// The created folder. /// The name of the folder to create. /// The special use for the folder being created. /// The cancellation token. Task CreateAsync (string name, SpecialFolder specialUse, CancellationToken cancellationToken = default (CancellationToken)); /// /// Rename the folder. /// /// /// Renames the folder. /// /// The new parent folder. /// The new name of the folder. /// The cancellation token. void Rename (IMailFolder parent, string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously rename the folder. /// /// /// Asynchronously renames the folder. /// /// An asynchronous task context. /// The new parent folder. /// The new name of the folder. /// The cancellation token. Task RenameAsync (IMailFolder parent, string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Delete the folder. /// /// /// Deletes the folder. /// /// The cancellation token. void Delete (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously delete the folder. /// /// /// Asynchronously deletes the folder. /// /// An asynchronous task context. /// The cancellation token. Task DeleteAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Subscribe to the folder. /// /// /// Subscribes to the folder. /// /// The cancellation token. void Subscribe (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously subscribe to the folder. /// /// /// Asynchronously subscribes to the folder. /// /// An asynchronous task context. /// The cancellation token. Task SubscribeAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Unsubscribe from the folder. /// /// /// Unsubscribes from the folder. /// /// The cancellation token. void Unsubscribe (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously unsubscribe from the folder. /// /// /// Asynchronously unsubscribes from the folder. /// /// An asynchronous task context. /// The cancellation token. Task UnsubscribeAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the subfolders. /// /// /// Gets the subfolders as well as queries the server for the status of the requested items. /// When the argument is non-empty, this has the equivalent functionality /// of calling and then calling /// on each of the returned folders. /// Using this method is potentially more efficient than querying the status of each returned folder. /// /// The subfolders. /// The status items to pre-populate. /// If set to true, only subscribed folders will be listed. /// The cancellation token. IList GetSubfolders (StatusItems items, bool subscribedOnly = false, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the subfolders. /// /// /// Asynchronously gets the subfolders as well as queries the server for the status of the requested items. /// When the argument is non-empty, this has the equivalent functionality /// of calling and then calling /// on each of the returned folders. /// /// The subfolders. /// The status items to pre-populate. /// If set to true, only subscribed folders will be listed. /// The cancellation token. Task> GetSubfoldersAsync (StatusItems items, bool subscribedOnly = false, CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the subfolders. /// /// /// Gets the subfolders. /// /// The subfolders. /// If set to true, only subscribed folders will be listed. /// The cancellation token. IList GetSubfolders (bool subscribedOnly = false, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the subfolders. /// /// /// Asynchronously gets the subfolders. /// /// The subfolders. /// If set to true, only subscribed folders will be listed. /// The cancellation token. Task> GetSubfoldersAsync (bool subscribedOnly = false, CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the specified subfolder. /// /// /// Gets the specified subfolder. /// /// The subfolder. /// The name of the subfolder. /// The cancellation token. IMailFolder GetSubfolder (string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the specified subfolder. /// /// /// Asynchronously gets the specified subfolder. /// /// The subfolder. /// The name of the subfolder. /// The cancellation token. Task GetSubfolderAsync (string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Force the server to flush its state for the folder. /// /// /// Forces the server to flush its state for the folder. /// /// The cancellation token. void Check (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously force the server to flush its state for the folder. /// /// /// Asynchronously forces the server to flush its state for the folder. /// /// An asynchronous task context. /// The cancellation token. Task CheckAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Update the values of the specified items. /// /// /// Updates the values of the specified items. /// The method /// MUST NOT be used on a folder that is already in the opened state. Instead, other ways /// of getting the desired information should be used. /// For example, a common use for the /// method is to get the number of unread messages in the folder. When the folder is open, however, it is /// possible to use the /// method to query for the list of unread messages. /// /// The items to update. /// The cancellation token. void Status (StatusItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously update the values of the specified items. /// /// /// Updates the values of the specified items. /// The method /// MUST NOT be used on a folder that is already in the opened state. Instead, other ways /// of getting the desired information should be used. /// For example, a common use for the /// method is to get the number of unread messages in the folder. When the folder is open, however, it is /// possible to use the /// method to query for the list of unread messages. /// /// An asynchronous task context. /// The items to update. /// The cancellation token. Task StatusAsync (StatusItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the complete access control list for the folder. /// /// /// Gets the complete access control list for the folder. /// /// The access control list. /// The cancellation token. AccessControlList GetAccessControlList (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the complete access control list for the folder. /// /// /// Asynchronously gets the complete access control list for the folder. /// /// The access control list. /// The cancellation token. Task GetAccessControlListAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the access rights for a particular identifier. /// /// /// Gets the access rights for a particular identifier. /// /// The access rights. /// The identifier name. /// The cancellation token. AccessRights GetAccessRights (string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the access rights for a particular identifier. /// /// /// Asynchronously gets the access rights for a particular identifier. /// /// The access rights. /// The identifier name. /// The cancellation token. Task GetAccessRightsAsync (string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the access rights for the current authenticated user. /// /// /// Gets the access rights for the current authenticated user. /// /// The access rights. /// The cancellation token. AccessRights GetMyAccessRights (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the access rights for the current authenticated user. /// /// /// Asynchronously gets the access rights for the current authenticated user. /// /// The access rights. /// The cancellation token. Task GetMyAccessRightsAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Add access rights for the specified identity. /// /// /// Adds the given access rights for the specified identity. /// /// The identity name. /// The access rights. /// The cancellation token. void AddAccessRights (string name, AccessRights rights, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add access rights for the specified identity. /// /// /// Asynchronously adds the given access rights for the specified identity. /// /// An asynchronous task context. /// The identity name. /// The access rights. /// The cancellation token. Task AddAccessRightsAsync (string name, AccessRights rights, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove access rights for the specified identity. /// /// /// Removes the given access rights for the specified identity. /// /// The identity name. /// The access rights. /// The cancellation token. void RemoveAccessRights (string name, AccessRights rights, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove access rights for the specified identity. /// /// /// Asynchronously removes the given access rights for the specified identity. /// /// An asynchronous task context. /// The identity name. /// The access rights. /// The cancellation token. Task RemoveAccessRightsAsync (string name, AccessRights rights, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the access rights for the specified identity. /// /// /// Sets the access rights for the specified identity. /// /// The identity name. /// The access rights. /// The cancellation token. void SetAccessRights (string name, AccessRights rights, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the access rights for the sepcified identity. /// /// /// Asynchronously sets the access rights for the specified identity. /// /// An asynchronous task context. /// The identity name. /// The access rights. /// The cancellation token. Task SetAccessRightsAsync (string name, AccessRights rights, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove all access rights for the given identity. /// /// /// Removes all access rights for the given identity. /// /// The identity name. /// The cancellation token. void RemoveAccess (string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove all access rights for the given identity. /// /// /// Asynchronously removes all access rights for the given identity. /// /// An asynchronous task context. /// The identity name. /// The cancellation token. Task RemoveAccessAsync (string name, CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the quota information for the folder. /// /// /// Gets the quota information for the folder. /// To determine if a quotas are supported, check the /// property. /// /// The folder quota. /// The cancellation token. FolderQuota GetQuota (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously get the quota information for the folder. /// /// /// Asynchronously gets the quota information for the folder. /// To determine if a quotas are supported, check the /// property. /// /// The folder quota. /// The cancellation token. Task GetQuotaAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the quota limits for the folder. /// /// /// Sets the quota limits for the folder. /// To determine if a quotas are supported, check the /// property. /// /// The updated folder quota. /// If not null, sets the maximum number of messages to allow. /// If not null, sets the maximum storage size (in kilobytes). /// The cancellation token. FolderQuota SetQuota (uint? messageLimit, uint? storageLimit, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the quota limits for the folder. /// /// /// Asynchronously sets the quota limits for the folder. /// To determine if a quotas are supported, check the /// property. /// /// The updated folder quota. /// If not null, sets the maximum number of messages to allow. /// If not null, sets the maximum storage size (in kilobytes). /// The cancellation token. Task SetQuotaAsync (uint? messageLimit, uint? storageLimit, CancellationToken cancellationToken = default (CancellationToken)); /// /// Gets the specified metadata. /// /// /// Gets the specified metadata. /// /// The requested metadata value. /// The metadata tag. /// The cancellation token. string GetMetadata (MetadataTag tag, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously gets the specified metadata. /// /// /// Asynchronously gets the specified metadata. /// /// The requested metadata value. /// The metadata tag. /// The cancellation token. Task GetMetadataAsync (MetadataTag tag, CancellationToken cancellationToken = default (CancellationToken)); /// /// Gets the specified metadata. /// /// /// Gets the specified metadata. /// /// The requested metadata. /// The metadata tags. /// The cancellation token. MetadataCollection GetMetadata (IEnumerable tags, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously gets the specified metadata. /// /// /// Asynchronously gets the specified metadata. /// /// The requested metadata. /// The metadata tags. /// The cancellation token. Task GetMetadataAsync (IEnumerable tags, CancellationToken cancellationToken = default (CancellationToken)); /// /// Gets the specified metadata. /// /// /// Gets the specified metadata. /// /// The requested metadata. /// The metadata options. /// The metadata tags. /// The cancellation token. MetadataCollection GetMetadata (MetadataOptions options, IEnumerable tags, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously gets the specified metadata. /// /// /// Asynchronously gets the specified metadata. /// /// The requested metadata. /// The metadata options. /// The metadata tags. /// The cancellation token. Task GetMetadataAsync (MetadataOptions options, IEnumerable tags, CancellationToken cancellationToken = default (CancellationToken)); /// /// Sets the specified metadata. /// /// /// Sets the specified metadata. /// /// The metadata. /// The cancellation token. void SetMetadata (MetadataCollection metadata, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously sets the specified metadata. /// /// /// Asynchronously sets the specified metadata. /// /// An asynchronous task context. /// The metadata. /// The cancellation token. Task SetMetadataAsync (MetadataCollection metadata, CancellationToken cancellationToken = default (CancellationToken)); /// /// Expunge the folder, permanently removing all messages marked for deletion. /// /// /// Expunges the folder, permanently removing all messages marked for deletion. /// Normally, an event will be emitted for each /// message that is expunged. However, if the mail store supports the quick /// resynchronization feature and it has been enabled via the /// method, then /// the event will be emitted rather than the /// event. /// /// The cancellation token. void Expunge (CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously expunge the folder, permanently removing all messages marked for deletion. /// /// /// Asynchronously expunges the folder, permanently removing all messages marked for deletion. /// Normally, an event will be emitted for /// each message that is expunged. However, if the mail store supports the quick /// resynchronization feature and it has been enabled via the /// method, then /// the event will be emitted rather than the /// event. /// /// An asynchronous task context. /// The cancellation token. Task ExpungeAsync (CancellationToken cancellationToken = default (CancellationToken)); /// /// Expunge the specified uids, permanently removing them from the folder. /// /// /// Expunges the specified uids, permanently removing them from the folder. /// Normally, an event will be emitted for /// each message that is expunged. However, if the mail store supports the quick /// resynchronization feature and it has been enabled via the /// method, then /// the event will be emitted rather than the /// event. /// /// The message uids. /// The cancellation token. void Expunge (IList uids, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously expunge the specified uids, permanently removing them from the folder. /// /// /// Asynchronously expunges the specified uids, permanently removing them from the folder. /// Normally, an event will be emitted for /// each message that is expunged. However, if the mail store supports the quick /// resynchronization feature and it has been enabled via the /// method, then /// the event will be emitted rather than the /// event. /// /// An asynchronous task context. /// The message uids. /// The cancellation token. Task ExpungeAsync (IList uids, CancellationToken cancellationToken = default (CancellationToken)); /// /// Append the specified message to the folder. /// /// /// Appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Append (MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified message to the folder. /// /// /// Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. Task AppendAsync (MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified message to the folder. /// /// /// Appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Append (MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified message to the folder. /// /// /// Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. Task AppendAsync (MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified message to the folder. /// /// /// Appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The message. /// The message flags. /// The received date of the message. /// The message annotations. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Append (MimeMessage message, MessageFlags flags, DateTimeOffset? date, IList annotations, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified message to the folder. /// /// /// Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The message. /// The message flags. /// The received date of the message. /// The message annotations. /// The cancellation token. /// The progress reporting mechanism. Task AppendAsync (MimeMessage message, MessageFlags flags, DateTimeOffset? date, IList annotations, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified message to the folder. /// /// /// Appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The formatting options. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Append (FormatOptions options, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified message to the folder. /// /// /// Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The formatting options. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. Task AppendAsync (FormatOptions options, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified message to the folder. /// /// /// Appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The formatting options. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Append (FormatOptions options, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified message to the folder. /// /// /// Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The formatting options. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. Task AppendAsync (FormatOptions options, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified message to the folder. /// /// /// Appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The formatting options. /// The message. /// The message flags. /// The received date of the message. /// The message annotations. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Append (FormatOptions options, MimeMessage message, MessageFlags flags, DateTimeOffset? date, IList annotations, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified message to the folder. /// /// /// Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. /// /// The UID of the appended message, if available; otherwise, null. /// The formatting options. /// The message. /// The message flags. /// The received date of the message. /// The message annotations. /// The cancellation token. /// The progress reporting mechanism. Task AppendAsync (FormatOptions options, MimeMessage message, MessageFlags flags, DateTimeOffset? date, IList annotations, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified messages to the folder. /// /// /// Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The list of messages to append to the folder. /// The message flags to use for each message. /// The cancellation token. /// The progress reporting mechanism. IList Append (IList messages, IList flags, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified messages to the folder. /// /// /// Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The list of messages to append to the folder. /// The message flags to use for each message. /// The cancellation token. /// The progress reporting mechanism. Task> AppendAsync (IList messages, IList flags, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified messages to the folder. /// /// /// Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The list of messages to append to the folder. /// The message flags to use for each of the messages. /// The received dates to use for each of the messages. /// The cancellation token. /// The progress reporting mechanism. IList Append (IList messages, IList flags, IList dates, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified messages to the folder. /// /// /// Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The list of messages to append to the folder. /// The message flags to use for each of the messages. /// The received dates to use for each of the messages. /// The cancellation token. /// The progress reporting mechanism. Task> AppendAsync (IList messages, IList flags, IList dates, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified messages to the folder. /// /// /// Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The formatting options. /// The list of messages to append to the folder. /// The message flags to use for each message. /// The cancellation token. /// The progress reporting mechanism. IList Append (FormatOptions options, IList messages, IList flags, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified messages to the folder. /// /// /// Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The formatting options. /// The list of messages to append to the folder. /// The message flags to use for each message. /// The cancellation token. /// The progress reporting mechanism. Task> AppendAsync (FormatOptions options, IList messages, IList flags, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Append the specified messages to the folder. /// /// /// Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The formatting options. /// The list of messages to append to the folder. /// The message flags to use for each of the messages. /// The received dates to use for each of the messages. /// The cancellation token. /// The progress reporting mechanism. IList Append (FormatOptions options, IList messages, IList flags, IList dates, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously append the specified messages to the folder. /// /// /// Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. /// /// The UIDs of the appended messages, if available; otherwise an empty array. /// The formatting options. /// The list of messages to append to the folder. /// The message flags to use for each of the messages. /// The received dates to use for each of the messages. /// The cancellation token. /// The progress reporting mechanism. Task> AppendAsync (FormatOptions options, IList messages, IList flags, IList dates, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (UniqueId uid, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (UniqueId uid, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (UniqueId uid, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (UniqueId uid, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (FormatOptions options, UniqueId uid, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (FormatOptions options, UniqueId uid, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (FormatOptions options, UniqueId uid, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The UID of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (FormatOptions options, UniqueId uid, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The index of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (int index, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The index of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism.; Task ReplaceAsync (int index, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The index of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (int index, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The index of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (int index, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The index of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (FormatOptions options, int index, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The index of the message to be replaced. /// The message. /// The message flags. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (FormatOptions options, int index, MimeMessage message, MessageFlags flags = MessageFlags.None, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The index of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. UniqueId? Replace (FormatOptions options, int index, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously replace a message in the folder. /// /// /// Replaces the specified message in the folder and returns the UniqueId assigned to the new message. /// /// The UID of the new message, if available; otherwise, null. /// The formatting options. /// The index of the message to be replaced. /// The message. /// The message flags. /// The received date of the message. /// The cancellation token. /// The progress reporting mechanism. Task ReplaceAsync (FormatOptions options, int index, MimeMessage message, MessageFlags flags, DateTimeOffset date, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Copy the specified message to the destination folder. /// /// /// Copies the specified message to the destination folder. /// /// The UID of the message in the destination folder, if available; otherwise, null. /// The UID of the message to copy. /// The destination folder. /// The cancellation token. UniqueId? CopyTo (UniqueId uid, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously copy the specified message to the destination folder. /// /// /// Asynchronously copies the specified message to the destination folder. /// /// The UID of the message in the destination folder, if available; otherwise, null. /// The UID of the message to copy. /// The destination folder. /// The cancellation token. Task CopyToAsync (UniqueId uid, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Copy the specified messages to the destination folder. /// /// /// Copies the specified messages to the destination folder. /// /// The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. /// The UIDs of the messages to copy. /// The destination folder. /// The cancellation token. UniqueIdMap CopyTo (IList uids, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously copy the specified messages to the destination folder. /// /// /// Asynchronously copies the specified messages to the destination folder. /// /// The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. /// The UIDs of the messages to copy. /// The destination folder. /// The cancellation token. Task CopyToAsync (IList uids, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Move the specified message to the destination folder. /// /// /// Moves the specified message to the destination folder. /// /// The UID of the message in the destination folder, if available; otherwise, null. /// The UID of the message to move. /// The destination folder. /// The cancellation token. UniqueId? MoveTo (UniqueId uid, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously move the specified message to the destination folder. /// /// /// Asynchronously moves the specified message to the destination folder. /// /// The UID of the message in the destination folder, if available; otherwise, null. /// The UID of the message to move. /// The destination folder. /// The cancellation token. Task MoveToAsync (UniqueId uid, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Move the specified messages to the destination folder. /// /// /// Moves the specified messages to the destination folder. /// /// The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. /// The UIDs of the messages to copy. /// The destination folder. /// The cancellation token. UniqueIdMap MoveTo (IList uids, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously move the specified messages to the destination folder. /// /// /// Asynchronously moves the specified messages to the destination folder. /// /// The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. /// The UIDs of the messages to copy. /// The destination folder. /// The cancellation token. Task MoveToAsync (IList uids, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Copy the specified message to the destination folder. /// /// /// Copies the specified message to the destination folder. /// /// The index of the message to copy. /// The destination folder. /// The cancellation token. void CopyTo (int index, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously copy the specified message to the destination folder. /// /// /// Asynchronously copies the specified message to the destination folder. /// /// An asynchronous task context. /// The indexes of the message to copy. /// The destination folder. /// The cancellation token. Task CopyToAsync (int index, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Copy the specified messages to the destination folder. /// /// /// Copies the specified messages to the destination folder. /// /// The indexes of the messages to copy. /// The destination folder. /// The cancellation token. void CopyTo (IList indexes, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously copy the specified messages to the destination folder. /// /// /// Asynchronously copies the specified messages to the destination folder. /// /// An asynchronous task context. /// The indexes of the messages to copy. /// The destination folder. /// The cancellation token. Task CopyToAsync (IList indexes, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Move the specified message to the destination folder. /// /// /// Moves the specified message to the destination folder. /// /// The index of the message to move. /// The destination folder. /// The cancellation token. void MoveTo (int index, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously move the specified message to the destination folder. /// /// /// Asynchronously moves the specified message to the destination folder. /// /// An asynchronous task context. /// The index of the message to move. /// The destination folder. /// The cancellation token. Task MoveToAsync (int index, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Move the specified messages to the destination folder. /// /// /// Moves the specified messages to the destination folder. /// /// The indexes of the messages to move. /// The destination folder. /// The cancellation token. void MoveTo (IList indexes, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously move the specified messages to the destination folder. /// /// /// Asynchronously moves the specified messages to the destination folder. /// /// An asynchronous task context. /// The indexes of the messages to move. /// The destination folder. /// The cancellation token. Task MoveToAsync (IList indexes, IMailFolder destination, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message UIDs. /// /// /// Fetches the message summaries for the specified message UIDs. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// /// /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The message summary items to fetch. /// The cancellation token. IList Fetch (IList uids, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message UIDs. /// /// /// Asynchronously fetches the message summaries for the specified message /// UIDs. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The message summary items to fetch. /// The cancellation token. Task> FetchAsync (IList uids, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message UIDs. /// /// /// Fetches the message summaries for the specified message UIDs. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList uids, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message UIDs. /// /// /// Asynchronously fetches the message summaries for the specified message /// UIDs. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList uids, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message UIDs. /// /// /// Fetches the message summaries for the specified message UIDs. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList uids, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message UIDs. /// /// /// Asynchronously fetches the message summaries for the specified message /// UIDs. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList uids, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message UIDs that have a /// higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the specified message UIDs that /// have a higher mod-sequence value than the one specified. /// If the mail store supports quick resynchronization and the application has /// enabled this feature via , /// then this method will emit events for messages that /// have vanished since the specified mod-sequence value. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The mod-sequence value. /// The message summary items to fetch. /// The cancellation token. IList Fetch (IList uids, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message UIDs that have a /// higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the specified message UIDs that /// have a higher mod-sequence value than the one specified. /// If the mail store supports quick resynchronization and the application has /// enabled this feature via , /// then this method will emit events for messages that /// have vanished since the specified mod-sequence value. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The mod-sequence value. /// The message summary items to fetch. /// The cancellation token. Task> FetchAsync (IList uids, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message UIDs that have a /// higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the specified message UIDs that /// have a higher mod-sequence value than the one specified. /// If the mail store supports quick resynchronization and the application has /// enabled this feature via , /// then this method will emit events for messages that /// have vanished since the specified mod-sequence value. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList uids, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message UIDs that have a /// higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the specified message UIDs that /// have a higher mod-sequence value than the one specified. /// If the mail store supports quick resynchronization and the application has /// enabled this feature via , /// then this method will emit events for messages that /// have vanished since the specified mod-sequence value. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList uids, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message UIDs that have a /// higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the specified message UIDs that /// have a higher mod-sequence value than the one specified. /// If the mail store supports quick resynchronization and the application has /// enabled this feature via , /// then this method will emit events for messages that /// have vanished since the specified mod-sequence value. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList uids, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message UIDs that have a /// higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the specified message UIDs that /// have a higher mod-sequence value than the one specified. /// If the mail store supports quick resynchronization and the application has /// enabled this feature via , /// then this method will emit events for messages that /// have vanished since the specified mod-sequence value. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The UIDs. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList uids, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message indexes. /// /// /// Fetches the message summaries for the specified message indexes. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The message summary items to fetch. /// The cancellation token. IList Fetch (IList indexes, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message indexes. /// /// /// Asynchronously fetches the message summaries for the specified message /// indexes. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The message summary items to fetch. /// The cancellation token. Task> FetchAsync (IList indexes, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message indexes. /// /// /// Fetches the message summaries for the specified message indexes. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList indexes, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message indexes. /// /// /// Asynchronously fetches the message summaries for the specified message /// indexes. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList indexes, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message indexes. /// /// /// Fetches the message summaries for the specified message indexes. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList indexes, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message indexes. /// /// /// Asynchronously fetches the message summaries for the specified message /// indexes. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList indexes, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message indexes that have a /// higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the specified message indexes that /// have a higher mod-sequence value than the one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The mod-sequence value. /// The message summary items to fetch. /// The cancellation token. IList Fetch (IList indexes, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message indexes that have a /// higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the specified message /// indexes that have a higher mod-sequence value than the one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The mod-sequence value. /// The message summary items to fetch. /// The cancellation token. Task> FetchAsync (IList indexes, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message indexes that have a /// higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the specified message indexes that /// have a higher mod-sequence value than the one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList indexes, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message indexes /// that have a higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the specified message /// indexes that have a higher mod-sequence value than the one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList indexes, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the specified message indexes that /// have a higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the specified message indexes that /// have a higher mod-sequence value than the one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (IList indexes, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the specified message indexes /// that have a higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the specified message /// indexes that have a higher mod-sequence value than the one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The indexes. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (IList indexes, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the messages between the two indexes, inclusive. /// /// /// Fetches the message summaries for the messages between the two /// indexes, inclusive. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The message summary items to fetch. /// The cancellation token. IList Fetch (int min, int max, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. /// /// /// Asynchronously fetches the message summaries for the messages between /// the two indexes, inclusive. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The message summary items to fetch. /// The cancellation token. Task> FetchAsync (int min, int max, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the messages between the two indexes, inclusive. /// /// /// Fetches the message summaries for the messages between the two /// indexes, inclusive. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (int min, int max, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. /// /// /// Asynchronously fetches the message summaries for the messages between /// the two indexes, inclusive. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (int min, int max, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the messages between the two indexes, inclusive. /// /// /// Fetches the message summaries for the messages between the two /// indexes, inclusive. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (int min, int max, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. /// /// /// Asynchronously fetches the message summaries for the messages between /// the two indexes, inclusive. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (int min, int max, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the messages between the two indexes (inclusive) /// that have a higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the messages between the two /// indexes (inclusive) that have a higher mod-sequence value than the one /// specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The mod-sequence value. /// The message summary items to fetch. /// The cancellation token. IList Fetch (int min, int max, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the messages between the two indexes /// (inclusive) that have a higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the messages between /// the two indexes (inclusive) that have a higher mod-sequence value than the /// one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The mod-sequence value. /// The message summary items to fetch. /// The cancellation token. Task> FetchAsync (int min, int max, ulong modseq, MessageSummaryItems items, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the messages between the two indexes (inclusive) /// that have a higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the messages between the two /// indexes (inclusive) that have a higher mod-sequence value than the one /// specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (int min, int max, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the messages between the two indexes /// (inclusive) that have a higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the messages between /// the two indexes (inclusive) that have a higher mod-sequence value than the /// one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (int min, int max, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Fetch the message summaries for the messages between the two indexes (inclusive) /// that have a higher mod-sequence value than the one specified. /// /// /// Fetches the message summaries for the messages between the two /// indexes (inclusive) that have a higher mod-sequence value than the one /// specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. IList Fetch (int min, int max, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously fetch the message summaries for the messages between the two indexes /// (inclusive) that have a higher mod-sequence value than the one specified. /// /// /// Asynchronously fetches the message summaries for the messages between /// the two indexes (inclusive) that have a higher mod-sequence value than the /// one specified. /// It should be noted that if another client has modified any message /// in the folder, the mail service may choose to return information that was /// not explicitly requested. It is therefore important to be prepared to /// handle both additional fields on a for /// messages that were requested as well as summaries for messages that were /// not requested at all. /// /// An enumeration of summaries for the requested messages. /// The minimum index. /// The maximum index, or -1 to specify no upper bound. /// The mod-sequence value. /// The message summary items to fetch. /// The desired header fields. /// The cancellation token. Task> FetchAsync (int min, int max, ulong modseq, MessageSummaryItems items, IEnumerable headers, CancellationToken cancellationToken = default (CancellationToken)); /// /// Get the specified message headers. /// /// /// Gets the specified message headers. /// /// The message headers. /// The UID of the message. /// The cancellation token. /// The progress reporting mechanism. HeaderList GetHeaders (UniqueId uid, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified message headers. /// /// /// Asynchronously gets the specified message headers. /// /// The message headers. /// The UID of the message. /// The cancellation token. /// The progress reporting mechanism. Task GetHeadersAsync (UniqueId uid, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified body part headers. /// /// /// Gets the specified body part headers. /// /// The body part headers. /// The UID of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. HeaderList GetHeaders (UniqueId uid, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified body part headers. /// /// /// Asynchronously gets the specified body part headers. /// /// The body part headers. /// The UID of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. Task GetHeadersAsync (UniqueId uid, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified message headers. /// /// /// Gets the specified message headers. /// /// The message headers. /// The index of the message. /// The cancellation token. /// The progress reporting mechanism. HeaderList GetHeaders (int index, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified message headers. /// /// /// Asynchronously gets the specified message headers. /// /// The message headers. /// The index of the message. /// The cancellation token. /// The progress reporting mechanism. Task GetHeadersAsync (int index, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified body part headers. /// /// /// Gets the specified body part headers. /// /// The body part headers. /// The index of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. HeaderList GetHeaders (int index, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified body part headers. /// /// /// Asynchronously gets the specified body part headers. /// /// The body part headers. /// The index of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. Task GetHeadersAsync (int index, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified message. /// /// /// Gets the specified message. /// /// The message. /// The UID of the message. /// The cancellation token. /// The progress reporting mechanism. MimeMessage GetMessage (UniqueId uid, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified message. /// /// /// Asynchronously gets the specified message. /// /// The message. /// The UID of the message. /// The cancellation token. /// The progress reporting mechanism. Task GetMessageAsync (UniqueId uid, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified message. /// /// /// Gets the specified message. /// /// The message. /// The index of the message. /// The cancellation token. /// The progress reporting mechanism. MimeMessage GetMessage (int index, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified message. /// /// /// Asynchronously gets the specified message. /// /// The message. /// The index of the message. /// The cancellation token. /// The progress reporting mechanism. Task GetMessageAsync (int index, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified body part. /// /// /// Gets the specified body part. /// /// /// /// /// The body part. /// The UID of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. MimeEntity GetBodyPart (UniqueId uid, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified body part. /// /// /// Asynchronously gets the specified body part. /// /// The body part. /// The UID of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. Task GetBodyPartAsync (UniqueId uid, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get the specified body part. /// /// /// Gets the specified body part. /// /// The body part. /// The index of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. MimeEntity GetBodyPart (int index, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get the specified body part. /// /// /// Asynchronously gets the specified body part. /// /// The body part. /// The index of the message. /// The body part. /// The cancellation token. /// The progress reporting mechanism. Task GetBodyPartAsync (int index, BodyPart part, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified message. /// /// /// Gets a substream of the message. If the starting offset is beyond /// the end of the message, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the message, a truncated stream /// will be returned. /// /// The stream. /// The UID of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (UniqueId uid, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified message. /// /// /// Asynchronously gets a substream of the message. If the starting offset is beyond /// the end of the message, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the message, a truncated stream /// will be returned. /// /// The stream. /// The UID of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (UniqueId uid, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified message. /// /// /// Gets a substream of the message. If the starting offset is beyond /// the end of the message, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the message, a truncated stream /// will be returned. /// /// The stream. /// The index of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (int index, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified message. /// /// /// Asynchronously gets a substream of the message. If the starting offset is beyond /// the end of the message, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the message, a truncated stream /// will be returned. /// /// The stream. /// The index of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (int index, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified body part. /// /// /// Gets a substream of the body part. If the starting offset is beyond /// the end of the body part, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the body part, a truncated stream /// will be returned. /// /// The stream. /// The UID of the message. /// The desired body part. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (UniqueId uid, BodyPart part, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified body part. /// /// /// Asynchronously gets a substream of the body part. If the starting offset is beyond /// the end of the body part, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the body part, a truncated stream /// will be returned. /// /// The stream. /// The UID of the message. /// The desired body part. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (UniqueId uid, BodyPart part, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified body part. /// /// /// Gets a substream of the body part. If the starting offset is beyond /// the end of the body part, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the body part, a truncated stream /// will be returned. /// /// The stream. /// The index of the message. /// The desired body part. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (int index, BodyPart part, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified body part. /// /// /// Asynchronously gets a substream of the body part. If the starting offset is beyond /// the end of the body part, an empty stream is returned. If the number of /// bytes desired extends beyond the end of the body part, a truncated stream /// will be returned. /// /// The stream. /// The index of the message. /// The desired body part. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (int index, BodyPart part, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified message. /// /// /// Gets a substream of the specified message. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The UID of the message. /// The desired section of the message. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (UniqueId uid, string section, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified message. /// /// /// Asynchronously gets a substream of the specified message. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The UID of the message. /// The desired section of the message. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (UniqueId uid, string section, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified message. /// /// /// Gets a substream of the specified message. If the starting offset is beyond /// the end of the specified section of the message, an empty stream is returned. If /// the number of bytes desired extends beyond the end of the section, a truncated /// stream will be returned. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The UID of the message. /// The desired section of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (UniqueId uid, string section, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified message. /// /// /// Asynchronously gets a substream of the specified message. If the starting /// offset is beyond the end of the specified section of the message, an empty stream /// is returned. If the number of bytes desired extends beyond the end of the section, /// a truncated stream will be returned. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The UID of the message. /// The desired section of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (UniqueId uid, string section, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified message. /// /// /// Gets a substream of the specified message. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The index of the message. /// The desired section of the message. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (int index, string section, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified message. /// /// /// Asynchronously gets a substream of the specified message. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The index of the message. /// The desired section of the message. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (int index, string section, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Get a substream of the specified message. /// /// /// Gets a substream of the specified message. If the starting offset is beyond /// the end of the specified section of the message, an empty stream is returned. If /// the number of bytes desired extends beyond the end of the section, a truncated /// stream will be returned. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The index of the message. /// The desired section of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Stream GetStream (int index, string section, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Asynchronously get a substream of the specified message. /// /// /// Asynchronously gets a substream of the specified message. If the starting /// offset is beyond the end of the specified section of the message, an empty stream /// is returned. If the number of bytes desired extends beyond the end of the section, /// a truncated stream will be returned. /// For more information about how to construct the , /// see Section 6.4.5 of RFC3501. /// /// The stream. /// The index of the message. /// The desired section of the message. /// The starting offset of the first desired byte. /// The number of bytes desired. /// The cancellation token. /// The progress reporting mechanism. Task GetStreamAsync (int index, string section, int offset, int count, CancellationToken cancellationToken = default (CancellationToken), ITransferProgress progress = null); /// /// Add a set of flags to the specified message. /// /// /// Adds a set of flags to the specified message. /// /// The UID of the message. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (UniqueId uid, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified message. /// /// /// Asynchronously adds a set of flags to the specified message. /// /// An asynchronous task context. /// The UIDs of the message. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (UniqueId uid, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified message. /// /// /// Adds a set of flags to the specified message. /// /// The UID of the message. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (UniqueId uid, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified message. /// /// /// Asynchronously adds a set of flags to the specified message. /// /// An asynchronous task context. /// The UIDs of the message. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (UniqueId uid, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages. /// /// /// Adds a set of flags to the specified messages. /// /// The UIDs of the messages. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (IList uids, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages. /// /// /// Asynchronously adds a set of flags to the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (IList uids, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages. /// /// /// Adds a set of flags to the specified messages. /// /// The UIDs of the messages. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (IList uids, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages. /// /// /// Asynchronously adds a set of flags to the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (IList uids, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified message. /// /// /// Removes a set of flags from the specified message. /// /// The UID of the message. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (UniqueId uid, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified message. /// /// /// Asynchronously removes a set of flags from the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (UniqueId uid, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified message. /// /// /// Removes a set of flags from the specified message. /// /// The UID of the message. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (UniqueId uid, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified message. /// /// /// Asynchronously removes a set of flags from the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (UniqueId uid, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages. /// /// /// Removes a set of flags from the specified messages. /// /// The UIDs of the messages. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (IList uids, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages. /// /// /// Asynchronously removes a set of flags from the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (IList uids, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages. /// /// /// Removes a set of flags from the specified messages. /// /// The UIDs of the messages. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (IList uids, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages. /// /// /// Asynchronously removes a set of flags from the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (IList uids, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified message. /// /// /// Sets the flags of the specified message. /// /// The UID of the message. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (UniqueId uid, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified message. /// /// /// Asynchronously sets the flags of the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (UniqueId uid, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified message. /// /// /// Sets the flags of the specified message. /// /// The UID of the message. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (UniqueId uid, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified message. /// /// /// Asynchronously sets the flags of the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (UniqueId uid, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages. /// /// /// Sets the flags of the specified messages. /// /// The UIDs of the messages. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (IList uids, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages. /// /// /// Asynchronously sets the flags of the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (IList uids, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages. /// /// /// Sets the flags of the specified messages. /// /// The UIDs of the messages. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (IList uids, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages. /// /// /// Asynchronously sets the flags of the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (IList uids, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. IList AddFlags (IList uids, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task> AddFlagsAsync (IList uids, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to add. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. IList AddFlags (IList uids, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to add. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> AddFlagsAsync (IList uids, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. IList RemoveFlags (IList uids, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task> RemoveFlagsAsync (IList uids, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. IList RemoveFlags (IList uids, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task> RemoveFlagsAsync (IList uids, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. IList SetFlags (IList uids, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> SetFlagsAsync (IList uids, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. IList SetFlags (IList uids, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> SetFlagsAsync (IList uids, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified message. /// /// /// Adds a set of flags to the specified message. /// /// The index of the message. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (int index, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified message. /// /// /// Asynchronously adds a set of flags to the specified message. /// /// An asynchronous task context. /// The index of the message. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (int index, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified message. /// /// /// Adds a set of flags to the specified message. /// /// The index of the message. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (int index, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified message. /// /// /// Asynchronously adds a set of flags to the specified message. /// /// An asynchronous task context. /// The index of the message. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (int index, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages. /// /// /// Adds a set of flags to the specified messages. /// /// The indexes of the messages. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (IList indexes, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages. /// /// /// Asynchronously adds a set of flags to the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (IList indexes, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages. /// /// /// Adds a set of flags to the specified messages. /// /// The indexes of the messages. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddFlags (IList indexes, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages. /// /// /// Asynchronously adds a set of flags to the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddFlagsAsync (IList indexes, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified message. /// /// /// Removes a set of flags from the specified message. /// /// The index of the message. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (int index, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified message. /// /// /// Asynchronously removes a set of flags from the specified message. /// /// An asynchronous task context. /// The index of the message. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (int index, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified message. /// /// /// Removes a set of flags from the specified message. /// /// The index of the message. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (int index, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified message. /// /// /// Asynchronously removes a set of flags from the specified message. /// /// An asynchronous task context. /// The index of the message. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (int index, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages. /// /// /// Removes a set of flags from the specified messages. /// /// The indexes of the messages. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (IList indexes, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages. /// /// /// Asynchronously removes a set of flags from the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (IList indexes, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages. /// /// /// Removes a set of flags from the specified messages. /// /// The indexes of the messages. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveFlags (IList indexes, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages. /// /// /// Asynchronously removes a set of flags from the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveFlagsAsync (IList indexes, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified message. /// /// /// Sets the flags of the specified message. /// /// The index of the message. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (int index, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified message. /// /// /// Asynchronously sets the flags of the specified message. /// /// An asynchronous task context. /// The index of the message. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (int index, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified message. /// /// /// Sets the flags of the specified message. /// /// The index of the message. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (int index, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified message. /// /// /// Asynchronously sets the flags of the specified message. /// /// An asynchronous task context. /// The index of the message. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (int index, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages. /// /// /// Sets the flags of the specified messages. /// /// The indexes of the messages. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (IList indexes, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages. /// /// /// Asynchronously sets the flags of the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (IList indexes, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages. /// /// /// Sets the flags of the specified messages. /// /// The indexes of the messages. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetFlags (IList indexes, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages. /// /// /// Asynchronously sets the flags of the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetFlagsAsync (IList indexes, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. IList AddFlags (IList indexes, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task> AddFlagsAsync (IList indexes, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. IList AddFlags (IList indexes, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to add. /// A set of user-defined flags to add. /// If set to true, no events will be emitted. /// The cancellation token. Task> AddFlagsAsync (IList indexes, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. IList RemoveFlags (IList indexes, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task> RemoveFlagsAsync (IList indexes, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. IList RemoveFlags (IList indexes, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to remove. /// A set of user-defined flags to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task> RemoveFlagsAsync (IList indexes, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. IList SetFlags (IList indexes, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> SetFlagsAsync (IList indexes, ulong modseq, MessageFlags flags, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. IList SetFlags (IList indexes, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The message flags to set. /// A set of user-defined flags to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> SetFlagsAsync (IList indexes, ulong modseq, MessageFlags flags, HashSet keywords, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of labels to the specified message. /// /// /// Adds a set of labels to the specified message. /// /// The UID of the message. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddLabels (UniqueId uid, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of labels to the specified message. /// /// /// Asynchronously adds a set of labels to the specified message. /// /// An asynchronous task context. /// The UIDs of the message. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddLabelsAsync (UniqueId uid, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of labels to the specified messages. /// /// /// Adds a set of labels to the specified messages. /// /// The UIDs of the messages. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddLabels (IList uids, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of labels to the specified messages. /// /// /// Asynchronously adds a set of labels to the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddLabelsAsync (IList uids, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of labels from the specified message. /// /// /// Removes a set of labels from the specified message. /// /// The UID of the message. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveLabels (UniqueId uid, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of labels from the specified message. /// /// /// Asynchronously removes a set of labels from the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveLabelsAsync (UniqueId uid, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of labels from the specified messages. /// /// /// Removes a set of labels from the specified messages. /// /// The UIDs of the messages. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveLabels (IList uids, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of labels from the specified messages. /// /// /// Asynchronously removes a set of labels from the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveLabelsAsync (IList uids, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the labels of the specified message. /// /// /// Sets the labels of the specified message. /// /// The UID of the message. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetLabels (UniqueId uid, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the labels of the specified message. /// /// /// Asynchronously sets the labels of the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetLabelsAsync (UniqueId uid, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the labels of the specified messages. /// /// /// Sets the labels of the specified messages. /// /// The UIDs of the messages. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetLabels (IList uids, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the labels of the specified messages. /// /// /// Asynchronously sets the labels of the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetLabelsAsync (IList uids, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. IList AddLabels (IList uids, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. Task> AddLabelsAsync (IList uids, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. IList RemoveLabels (IList uids, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task> RemoveLabelsAsync (IList uids, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Sets the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. IList SetLabels (IList uids, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously sets the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> SetLabelsAsync (IList uids, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of labels to the specified message. /// /// /// Adds a set of labels to the specified message. /// /// The index of the message. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddLabels (int index, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of labels to the specified message. /// /// /// Asynchronously adds a set of labels to the specified message. /// /// An asynchronous task context. /// The index of the message. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddLabelsAsync (int index, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of labels to the specified messages. /// /// /// Adds a set of labels to the specified messages. /// /// The indexes of the messages. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. void AddLabels (IList indexes, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of labels to the specified messages. /// /// /// Asynchronously adds a set of labels to the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. Task AddLabelsAsync (IList indexes, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of labels from the specified message. /// /// /// Removes a set of labels from the specified message. /// /// The index of the message. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveLabels (int index, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of labels from the specified message. /// /// /// Asynchronously removes a set of labels from the specified message. /// /// An asynchronous task context. /// The index of the message. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveLabelsAsync (int index, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of labels from the specified messages. /// /// /// Removes a set of labels from the specified messages. /// /// The indexes of the messages. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. void RemoveLabels (IList indexes, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of labels from the specified messages. /// /// /// Asynchronously removes a set of labels from the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task RemoveLabelsAsync (IList indexes, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the labels of the specified message. /// /// /// Sets the labels of the specified message. /// /// The index of the message. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetLabels (int index, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the labels of the specified message. /// /// /// Asynchronously sets the labels of the specified message. /// /// An asynchronous task context. /// The index of the message. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetLabelsAsync (int index, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the labels of the specified messages. /// /// /// Sets the labels of the specified messages. /// /// The indexes of the messages. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. void SetLabels (IList indexes, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the labels of the specified messages. /// /// /// Asynchronously sets the labels of the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. Task SetLabelsAsync (IList indexes, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. IList AddLabels (IList indexes, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The labels to add. /// If set to true, no events will be emitted. /// The cancellation token. Task> AddLabelsAsync (IList indexes, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. IList RemoveLabels (IList indexes, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The labels to remove. /// If set to true, no events will be emitted. /// The cancellation token. Task> RemoveLabelsAsync (IList indexes, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Set the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Sets the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. IList SetLabels (IList indexes, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously set the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously sets the labels of the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The labels to set. /// If set to true, no events will be emitted. /// The cancellation token. Task> SetLabelsAsync (IList indexes, ulong modseq, IList labels, bool silent, CancellationToken cancellationToken = default (CancellationToken)); /// /// Store the annotations for the specified message. /// /// /// Stores the annotations for the specified message. /// /// The UID of the message. /// The annotations to store. /// The cancellation token. void Store (UniqueId uid, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously store the annotations for the specified message. /// /// /// Asynchronously stores the annotations for the specified message. /// /// An asynchronous task context. /// The UID of the message. /// The annotations to store. /// The cancellation token. Task StoreAsync (UniqueId uid, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Store the annotations for the specified messages. /// /// /// Stores the annotations for the specified messages. /// /// The UIDs of the messages. /// The annotations to store. /// The cancellation token. void Store (IList uids, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously store the annotations for the specified messages. /// /// /// Asynchronously stores the annotations for the specified messages. /// /// An asynchronous task context. /// The UIDs of the messages. /// The annotations to store. /// The cancellation token. Task StoreAsync (IList uids, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The annotations to store. /// The cancellation token. IList Store (IList uids, ulong modseq, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// The unique IDs of the messages that were not updated. /// The UIDs of the messages. /// The mod-sequence value. /// The annotations to store. /// The cancellation token. Task> StoreAsync (IList uids, ulong modseq, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Store the annotations for the specified message. /// /// /// Stores the annotations for the specified message. /// /// The index of the message. /// The annotations to store. /// The cancellation token. void Store (int index, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously store the annotations for the specified message. /// /// /// Asynchronously stores the annotations for the specified message. /// /// An asynchronous task context. /// The indexes of the message. /// The annotations to store. /// The cancellation token. Task StoreAsync (int index, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Store the annotations for the specified messages. /// /// /// Stores the annotations for the specified messages. /// /// The indexes of the messages. /// The annotations to store. /// The cancellation token. void Store (IList indexes, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously store the annotations for the specified messages. /// /// /// Asynchronously stores the annotations for the specified messages. /// /// An asynchronous task context. /// The indexes of the messages. /// The annotations to store. /// The cancellation token. Task StoreAsync (IList indexes, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The annotations to store. /// The cancellation token. IList Store (IList indexes, ulong modseq, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. /// /// /// Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value.s /// /// The indexes of the messages that were not updated. /// The indexes of the messages. /// The mod-sequence value. /// The annotations to store. /// The cancellation token. Task> StoreAsync (IList indexes, ulong modseq, IList annotations, CancellationToken cancellationToken = default (CancellationToken)); /// /// Search the folder for messages matching the specified query. /// /// /// The returned array of unique identifiers can be used with methods such as /// . /// /// An array of matching UIDs. /// The search query. /// The cancellation token. IList Search (SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously search the folder for messages matching the specified query. /// /// /// The returned array of unique identifiers can be used with methods such as /// . /// /// An array of matching UIDs. /// The search query. /// The cancellation token. Task> SearchAsync (SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Search the subset of UIDs in the folder for messages matching the specified query. /// /// /// The returned array of unique identifiers can be used with methods such as /// . /// /// An array of matching UIDs. /// The subset of UIDs /// The search query. /// The cancellation token. IList Search (IList uids, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously search the subset of UIDs in the folder for messages matching the specified query. /// /// /// The returned array of unique identifiers can be used with methods such as /// . /// /// An array of matching UIDs. /// The subset of UIDs /// The search query. /// The cancellation token. Task> SearchAsync (IList uids, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Search the folder for messages matching the specified query. /// /// /// Searches the folder for messages matching the specified query, /// returning only the specified search results. /// /// The search results. /// The search options. /// The search query. /// The cancellation token. SearchResults Search (SearchOptions options, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously search the folder for messages matching the specified query. /// /// /// Asynchronously searches the folder for messages matching the specified query, /// returning only the specified search results. /// /// The search results. /// The search options. /// The search query. /// The cancellation token. Task SearchAsync (SearchOptions options, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Search the subset of UIDs in the folder for messages matching the specified query. /// /// /// Searches the fsubset of UIDs in the folder for messages matching the specified query, /// returning only the specified search results. /// /// The search results. /// The search options. /// The subset of UIDs /// The search query. /// The cancellation token. SearchResults Search (SearchOptions options, IList uids, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously search the subset of UIDs in the folder for messages matching the specified query. /// /// /// Asynchronously searches the fsubset of UIDs in the folder for messages matching the specified query, /// returning only the specified search results. /// /// The search results. /// The search options. /// The subset of UIDs /// The search query. /// The cancellation token. Task SearchAsync (SearchOptions options, IList uids, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Sort messages matching the specified query. /// /// /// The returned array of unique identifiers will be sorted in the preferred order and /// can be used with . /// /// An array of matching UIDs in the specified sort order. /// The search query. /// The sort order. /// The cancellation token. IList Sort (SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously sort messages matching the specified query. /// /// /// The returned array of unique identifiers will be sorted in the preferred order and /// can be used with . /// /// An array of matching UIDs in the specified sort order. /// The search query. /// The sort order. /// The cancellation token. Task> SortAsync (SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Sort messages matching the specified query. /// /// /// The returned array of unique identifiers will be sorted in the preferred order and /// can be used with . /// /// An array of matching UIDs in the specified sort order. /// The subset of UIDs /// The search query. /// The sort order. /// The cancellation token. IList Sort (IList uids, SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously sort messages matching the specified query. /// /// /// The returned array of unique identifiers will be sorted in the preferred order and /// can be used with . /// /// An array of matching UIDs in the specified sort order. /// The subset of UIDs /// The search query. /// The sort order. /// The cancellation token. Task> SortAsync (IList uids, SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Sort messages matching the specified query. /// /// /// Searches the folder for messages matching the specified query, returning the search results in the specified sort order. /// /// The search results. /// The search options. /// The search query. /// The sort order. /// The cancellation token. SearchResults Sort (SearchOptions options, SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously sort messages matching the specified query. /// /// /// Asynchronously searches the folder for messages matching the specified query, returning the search results in the specified sort order. /// /// The search results. /// The search options. /// The search query. /// The sort order. /// The cancellation token. Task SortAsync (SearchOptions options, SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Sort messages matching the specified query. /// /// /// Searches the folder for messages matching the specified query, returning the search results in the specified sort order. /// /// The search results. /// The search options. /// The subset of UIDs /// The search query. /// The sort order. /// The cancellation token. SearchResults Sort (SearchOptions options, IList uids, SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously sort messages matching the specified query. /// /// /// Asynchronously searches the folder for messages matching the specified query, /// returning the search results in the specified sort order. /// /// The search results. /// The search options. /// The subset of UIDs /// The search query. /// The sort order. /// The cancellation token. Task SortAsync (SearchOptions options, IList uids, SearchQuery query, IList orderBy, CancellationToken cancellationToken = default (CancellationToken)); /// /// Thread the messages in the folder that match the search query using the specified threading algorithm. /// /// /// The can be used with methods such as /// . /// /// An array of message threads. /// The threading algorithm to use. /// The search query. /// The cancellation token. IList Thread (ThreadingAlgorithm algorithm, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. /// /// /// The can be used with methods such as /// . /// /// An array of message threads. /// The threading algorithm to use. /// The search query. /// The cancellation token. Task> ThreadAsync (ThreadingAlgorithm algorithm, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Thread the messages in the folder that match the search query using the specified threading algorithm. /// /// /// The can be used with methods such as /// . /// /// An array of message threads. /// The subset of UIDs /// The threading algorithm to use. /// The search query. /// The cancellation token. IList Thread (IList uids, ThreadingAlgorithm algorithm, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. /// /// /// The can be used with methods such as /// . /// /// An array of message threads. /// The subset of UIDs /// The threading algorithm to use. /// The search query. /// The cancellation token. Task> ThreadAsync (IList uids, ThreadingAlgorithm algorithm, SearchQuery query, CancellationToken cancellationToken = default (CancellationToken)); /// /// Occurs when the folder is opened. /// /// /// Emitted when the folder is opened. /// event EventHandler Opened; /// /// Occurs when the folder is closed. /// /// /// Emitted when the folder is closed. /// event EventHandler Closed; /// /// Occurs when the folder is deleted. /// /// /// Emitted when the folder is deleted. /// event EventHandler Deleted; /// /// Occurs when the folder is renamed. /// /// /// Emitted when the folder is renamed. /// event EventHandler Renamed; /// /// Occurs when the folder is subscribed. /// /// /// Emitted when the folder is subscribed. /// event EventHandler Subscribed; /// /// Occurs when the folder is unsubscribed. /// /// /// Emitted when the folder is unsubscribed. /// event EventHandler Unsubscribed; /// /// Occurs when a message is expunged from the folder. /// /// /// Emitted when a message is expunged from the folder. /// /// /// /// event EventHandler MessageExpunged; /// /// Occurs when messages vanish from the folder. /// /// /// Emitted when a messages vanish from the folder. /// event EventHandler MessagesVanished; /// /// Occurs when flags changed on a message. /// /// /// Emitted when flags changed on a message. /// /// /// /// event EventHandler MessageFlagsChanged; /// /// Occurs when labels changed on a message. /// /// /// Emitted when labels changed on a message. /// event EventHandler MessageLabelsChanged; /// /// Occurs when annotations changed on a message. /// /// /// Emitted when annotations changed on a message. /// event EventHandler AnnotationsChanged; /// /// Occurs when a message summary is fetched from the folder. /// /// /// Emitted when a message summary is fetched from the folder. /// When multiple message summaries are being fetched from a remote folder, /// it is possible that the connection will drop or some other exception will /// occur, causing the Fetch method to fail, requiring the client to request the /// same set of message summaries again after it reconnects. This is obviously /// inefficient. To alleviate this potential problem, this event will be emitted /// as soon as the successfully retrieves the complete /// for each requested message. /// The Fetch /// methods will return a list of all message summaries that any information was /// retrieved for, regardless of whether or not all of the requested items were fetched, /// therefore there may be a discrepency between the number of times this event is /// emitetd and the number of summary items returned from the Fetch method. /// event EventHandler MessageSummaryFetched; /// /// Occurs when metadata changes. /// /// /// The event is emitted when metadata changes. /// event EventHandler MetadataChanged; /// /// Occurs when the mod-sequence changed on a message. /// /// /// Emitted when the mod-sequence changed on a message. /// event EventHandler ModSeqChanged; /// /// Occurs when the highest mod-sequence changes. /// /// /// The event is emitted whenever the value changes. /// event EventHandler HighestModSeqChanged; /// /// Occurs when the next UID changes. /// /// /// Emitted when the property changes. /// event EventHandler UidNextChanged; /// /// Occurs when the UID validity changes. /// /// /// Emitted when the property changes. /// event EventHandler UidValidityChanged; /// /// Occurs when the ID changes. /// /// /// Emitted when the property changes. /// event EventHandler IdChanged; /// /// Occurs when the size of the folder changes. /// /// /// Emitted when the property changes. /// event EventHandler SizeChanged; /// /// Occurs when the message count changes. /// /// /// Emitted when the property changes. /// /// /// /// event EventHandler CountChanged; /// /// Occurs when the recent message count changes. /// /// /// Emitted when the property changes. /// event EventHandler RecentChanged; /// /// Occurs when the message unread count changes. /// /// /// Emitted when the property changes. /// event EventHandler UnreadChanged; } }