-
Notifications
You must be signed in to change notification settings - Fork 225
[V5] Use Swift 6 with complete concurrency checking #3759
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v5
Are you sure you want to change the base?
Conversation
Public Interface- public struct MessageReminderInfo: Equatable
+ public struct MessageReminderInfo: Equatable, Sendable
public struct AIIndicatorStopEvent: CustomEventPayload, Event
- public static var eventType: EventType
+ public static let eventType: EventType
- public enum LocalAttachmentDownloadState: Hashable
+ public enum LocalAttachmentDownloadState: Hashable, Sendable
- public enum LogLevel: Int
+ public enum LogLevel: Int, Sendable
- public struct PollVoteListQuery: Encodable
+ public struct PollVoteListQuery: Encodable, Sendable
public struct LateResize: ImageProcessing
- @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping () -> CGSize)
+ @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping @Sendable() -> CGSize)
- public init(id: String,sizeProvider: @escaping () -> CGSize)
+ public init(id: String,sizeProvider: @escaping @Sendable() -> CGSize)
- public struct MessageDeliveryStatus: RawRepresentable, Hashable
+ public struct MessageDeliveryStatus: RawRepresentable, Hashable, Sendable
- public struct MessageSearchQuery: Encodable
+ public struct MessageSearchQuery: Encodable, Sendable
- public final class UserList
+ public final class UserList: Sendable
- @MainActor public lazy var state: UserListState
+ @MainActor public var state: UserListState
- public struct ChatMessage
+ public struct ChatMessage: Sendable
- public protocol ComponentsProvider: AnyObject
+ @MainActor public protocol ComponentsProvider: AnyObject
@available(iOSApplicationExtension, unavailable) open class ChatChannelVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatChannelControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousMessages(completion: @escaping (Error?) -> Void)
+ open func loadPreviousMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextMessages(completion: @escaping (Error?) -> Void)
+ open func loadNextMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @Sendable(Error?) -> Void)
- open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate
+ open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate, @unchecked Sendable
- open func beginRecording(_ completionHandler: @escaping (() -> Void))
+ open func beginRecording(_ completionHandler: @escaping @Sendable() -> Void)
- public static let `default`
+ nonisolated public static let `default`
- public protocol ChatMessageListVCDataSource: AnyObject
+ @MainActor public protocol ChatMessageListVCDataSource: AnyObject
- public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextChannels(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextChannels(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: ((Error?) -> Void)? = nil)
+ @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct AnyAttachmentUpdater
+ public struct AnyAttachmentUpdater: Sendable
- public struct AttachmentUploadingState: Hashable
+ public struct AttachmentUploadingState: Hashable, Sendable
- public struct ImageLoaderOptions
+ public struct ImageLoaderOptions: Sendable
- public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
- public protocol CurrentChatUserControllerDelegate: AnyObject
+ @MainActor public protocol CurrentChatUserControllerDelegate: AnyObject
- public struct DraftMessage
+ public struct DraftMessage: Sendable
- public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(term: String?,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(term: String?,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: UserListQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: UserListQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextUsers(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextUsers(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct ChannelListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ChannelListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public protocol Event
+ public protocol Event: Sendable
- public struct AudioPlaybackRate: Comparable, Equatable
+ public struct AudioPlaybackRate: Comparable, Equatable, Sendable
- public final class ReactionList
+ public final class ReactionList: Sendable
- @MainActor public lazy var state: ReactionListState
+ @MainActor public var state: ReactionListState
- public final class InvalidToken: ClientError
+ public final class InvalidToken: ClientError, @unchecked Sendable
- public final class AudioRecorderError: ClientError
+ public final class AudioRecorderError: ClientError, @unchecked Sendable
open class NukeImageLoader: ImageLoading
- @discardableResult open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: ((Result<UIImage, Error>) -> Void)?)-> Cancellable?
+ @discardableResult @MainActor open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: (@MainActor @Sendable(Result<UIImage, Error>) -> Void)?)-> Cancellable?
- @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping ((Result<UIImage, Error>) -> Void))-> Cancellable?
+ @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)-> Cancellable?
- open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping (([Result<UIImage, Error>]) -> Void))
+ open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping @MainActor @Sendable([Result<UIImage, Error>]) -> Void)
- public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreThreads(limit: Int? = nil,completion: ((Result<[ChatThread], Error>) -> Void)? = nil)
+ public func loadMoreThreads(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[ChatThread], Error>) -> Void)? = nil)
- public struct AppSettings
+ public struct AppSettings: Sendable
- public struct UploadConfig
+ public struct UploadConfig: Sendable
- public enum LocalMessageState: String
+ public enum LocalMessageState: String, Sendable
- public struct Filter
+ public struct Filter: Sendable
- public protocol GalleryItemPreview
+ @MainActor public protocol GalleryItemPreview
public enum StreamRuntimeCheck
- public static var assertionsEnabled
+ public nonisolated static var assertionsEnabled
- public static var _isDatabasePrefetchingEnabled
+ public nonisolated static var _isDatabasePrefetchingEnabled
- public class Logger
+ public class Logger: @unchecked Sendable
- public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #filePath,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
+ public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #file,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
- open class SwipeToReplyGestureHandler
+ @MainActor open class SwipeToReplyGestureHandler
- public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator = .init(style: .medium))
+ public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator? = nil)
- public struct CurrentUserUnreads
+ public struct CurrentUserUnreads: Sendable
- open class BaseLogDestination: LogDestination
+ open class BaseLogDestination: LogDestination, @unchecked Sendable
- public protocol LogDestination
+ public protocol LogDestination: Sendable
- public protocol AppearanceProvider: AnyObject
+ @MainActor public protocol AppearanceProvider: AnyObject
- public class ChatChannelMember: ChatUser
+ public class ChatChannelMember: ChatUser, @unchecked Sendable
- @resultBuilder public struct ViewContainerBuilder
+ @MainActor @resultBuilder public struct ViewContainerBuilder
- public struct ThreadQuery: Encodable
+ public struct ThreadQuery: Encodable, Sendable
- public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- extension PollController: EventsControllerDelegate
+ extension PollController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollController
+ @Published public private var poll: Poll?
+ @Published public private var ownVotes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
- public protocol ChatMessageActionsVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageActionsVCDelegate: AnyObject
- public struct AudioRecordingContext: Hashable
+ public struct AudioRecordingContext: Hashable, Sendable
- public enum MessageType: String, Codable
+ public enum MessageType: String, Codable, Sendable
- public class ChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(text: String,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(text: String,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: MessageSearchQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: MessageSearchQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextMessages(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate
+ open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate, @unchecked Sendable
- public struct QuotedAvatarAlignment: RawRepresentable, Equatable
+ public struct QuotedAvatarAlignment: RawRepresentable, Equatable, Sendable
- open class StreamAudioSessionConfigurator: AudioSessionConfiguring
+ open class StreamAudioSessionConfigurator: AudioSessionConfiguring, @unchecked Sendable
- open func requestRecordPermission(_ completionHandler: @escaping (Bool) -> Void)
+ open func requestRecordPermission(_ completionHandler: @escaping @Sendable(Bool) -> Void)
- public protocol ChatChannelListItemViewSwiftUIView: View
+ @MainActor public protocol ChatChannelListItemViewSwiftUIView: View
- public struct ChatThread
+ public struct ChatThread: Sendable
- public struct ChannelMemberListQuery: Encodable
+ public struct ChannelMemberListQuery: Encodable, Sendable
- public struct MessageReminderListQuery: Encodable
+ public struct MessageReminderListQuery: Encodable, Sendable
- public struct UserInfo
+ public struct UserInfo: Sendable
- public protocol AudioPlayingDelegate: AnyObject
+ @MainActor public protocol AudioPlayingDelegate: AnyObject
- public class ClientError: Error, CustomStringConvertible
+ public class ClientError: Error, CustomStringConvertible, @unchecked Sendable
- public struct UnreadChannelByType
+ public struct UnreadChannelByType: Sendable
- public class PollController: DataController, DelegateCallable, DataStoreProvider
+ public class PollController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func castPollVote(answerText: String?,optionId: String?,completion: ((Error?) -> Void)? = nil)
+ public func castPollVote(answerText: String?,optionId: String?,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removePollVote(voteId: String,completion: ((Error?) -> Void)? = nil)
+ public func removePollVote(voteId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func closePoll(completion: ((Error?) -> Void)? = nil)
+ public func closePoll(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public protocol ChatConnectionControllerDelegate: AnyObject
+ @MainActor public protocol ChatConnectionControllerDelegate: AnyObject
- public struct Mode
+ public struct Mode: Sendable
- public static var clip
+ public static let clip
- public static var fill
+ public static let fill
- public static var scale
+ public static let scale
- public final class ReconnectionTimeout: ClientError
+ public final class ReconnectionTimeout: ClientError, @unchecked Sendable
- public class HealthCheckEvent: ConnectionEvent, EventDTO
+ public final class HealthCheckEvent: ConnectionEvent, EventDTO, Sendable
- public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
+ @MainActor public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
- public struct ReadReceiptsPrivacySettings
+ public struct ReadReceiptsPrivacySettings: Sendable
- public protocol AttachmentPayload: Codable
+ public protocol AttachmentPayload: Codable, Sendable
- public struct ChatChannel
+ public struct ChatChannel: Sendable
- public struct APIKey: Equatable
+ public struct APIKey: Equatable, Sendable
- public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public protocol ChatMessageListScrollOverlayDataSource: AnyObject
+ @MainActor public protocol ChatMessageListScrollOverlayDataSource: AnyObject
- public struct AttachmentId: Hashable
+ public struct AttachmentId: Hashable, Sendable
- public protocol ImageCDN
+ public protocol ImageCDN: Sendable
- public struct UserListQuery: Encodable
+ public struct UserListQuery: Encodable, Sendable
- public struct ChatChannelRead: Equatable
+ public struct ChatChannelRead: Equatable, Sendable
- public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: ((Error?) -> Void)? = nil)
+ public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func muteChannel(expiration: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func muteChannel(expiration: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unmuteChannel(completion: ((Error?) -> Void)? = nil)
+ public func unmuteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func archive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func archive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unarchive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unarchive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteChannel(completion: ((Error?) -> Void)? = nil)
+ public func deleteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func hideChannel(clearHistory: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func hideChannel(clearHistory: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func showChannel(completion: ((Error?) -> Void)? = nil)
+ public func showChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftMessage(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftMessage(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftMessage(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: ((Result<MessageId, Error>) -> Void)?)
+ public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)?)
- public func deletePoll(pollId: String,completion: ((Error?) -> Void)? = nil)
+ public func deletePoll(pollId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func inviteMembers(userIds: Set<UserId>,completion: ((Error?) -> Void)? = nil)
+ public func inviteMembers(userIds: Set<UserId>,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func acceptInvite(message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func acceptInvite(message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func rejectInvite(completion: ((Error?) -> Void)? = nil)
+ public func rejectInvite(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markRead(completion: ((Error?) -> Void)? = nil)
+ public func markRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markUnread(from messageId: MessageId,completion: ((Result<ChatChannel, Error>) -> Void)? = nil)
+ public func markUnread(from messageId: MessageId,completion: (@MainActor @Sendable(Result<ChatChannel, Error>) -> Void)? = nil)
- public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping (Error?) -> Void)
+ public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping (Error?) -> Void)
+ public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func enableSlowMode(cooldownDuration: Int,completion: ((Error?) -> Void)? = nil)
+ public func enableSlowMode(cooldownDuration: Int,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disableSlowMode(completion: ((Error?) -> Void)? = nil)
+ public func disableSlowMode(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func startWatching(isInRecoveryMode: Bool,completion: ((Error?) -> Void)? = nil)
+ public func startWatching(isInRecoveryMode: Bool,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func stopWatching(completion: ((Error?) -> Void)? = nil)
+ public func stopWatching(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func freezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func freezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unfreezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func unfreezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func pin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unpin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil,completion: @escaping ((Result<UploadedAttachment, Error>) -> Void))
+ public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil,completion: @escaping @MainActor @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public func enrichUrl(_ url: URL,completion: @escaping (Result<LinkAttachmentPayload, Error>) -> Void)
+ public func enrichUrl(_ url: URL,completion: @escaping @MainActor @Sendable(Result<LinkAttachmentPayload, Error>) -> Void)
- public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping (Result<[ChatMessage], Error>) -> Void)
+ public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping @MainActor @Sendable(Result<[ChatMessage], Error>) -> Void)
- public func deleteFile(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteFile(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteImage(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteImage(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct PollCreationSection: RawRepresentable, Equatable
+ public struct PollCreationSection: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- public static var features
+ public static let features
- public final class MemberList
+ public final class MemberList: Sendable
- @MainActor public lazy var state: MemberListState
+ @MainActor public var state: MemberListState
- public struct AttachmentFile: Codable, Hashable
+ public struct AttachmentFile: Codable, Hashable, Sendable
- public static let sizeFormatter
+ public nonisolated static let sizeFormatter
- public struct LocalCaching: Equatable
+ public struct LocalCaching: Equatable, Sendable
- public protocol StreamModelsTransformer
+ public protocol StreamModelsTransformer: Sendable
- public protocol AudioPlaying: AnyObject
+ public protocol AudioPlaying: AnyObject, Sendable
- public class ChannelConfig: Codable
+ public final class ChannelConfig: Codable, Sendable
- public struct UnreadCount: Decodable, Equatable
+ public struct UnreadCount: Decodable, Equatable, Sendable
- public final class ConnectedUser
+ public final class ConnectedUser: Sendable
- @MainActor public lazy var state: ConnectedUserState
+ @MainActor public var state: ConnectedUserState
- public final class MissingTokenProvider: ClientError
+ public final class MissingTokenProvider: ClientError, @unchecked Sendable
- public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
- public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider
+ public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreVotes(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadMoreVotes(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public enum BanEnabling
+ public enum BanEnabling: Sendable
- public protocol EventsControllerDelegate: AnyObject
+ @MainActor public protocol EventsControllerDelegate: AnyObject
- public protocol SwipeableViewDelegate: AnyObject
+ @MainActor public protocol SwipeableViewDelegate: AnyObject
- public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable
+ public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable, Sendable
- public protocol CustomEventPayload: Codable, Hashable
+ public protocol CustomEventPayload: Codable, Hashable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatThreadVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatMessageControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousReplies(completion: @escaping (Error?) -> Void)
+ open func loadPreviousReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextReplies(completion: @escaping (Error?) -> Void)
+ open func loadNextReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @Sendable(Error?) -> Void)
- public struct Components
+ public struct Components: @unchecked Sendable
- public static var `default`
+ public nonisolated static var `default`
- public struct Sorting: Encodable, CustomStringConvertible
+ public struct Sorting: Encodable, CustomStringConvertible, Sendable
- public struct LogSubsystem: OptionSet
+ public struct LogSubsystem: OptionSet, Sendable
- public class StreamAttachmentUploader: AttachmentUploader
+ public class StreamAttachmentUploader: AttachmentUploader, @unchecked Sendable
- public func upload(_ attachment: AnyChatMessageAttachment,progress: ((Double) -> Void)?,completion: @escaping (Result<UploadedAttachment, Error>) -> Void)
+ public func upload(_ attachment: AnyChatMessageAttachment,progress: (@Sendable(Double) -> Void)?,completion: @escaping @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public struct Command: Codable, Hashable
+ public struct Command: Codable, Hashable, Sendable
- public class EventsController: Controller, DelegateCallable
+ public class EventsController: Controller, DelegateCallable, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var delegate: EventsControllerDelegate?
- public var delegate: EventsControllerDelegate?
- public enum AttachmentFileType: String, Codable, Equatable, CaseIterable
+ public enum AttachmentFileType: String, Codable, Equatable, CaseIterable, Sendable
- public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
public enum LogConfig
- public static var identifier
+ public nonisolated static var identifier
- public static var level: LogLevel
+ public nonisolated static var level: LogLevel
- public static var dateFormatter: DateFormatter
+ public nonisolated static var dateFormatter: DateFormatter
- public static var formatters
+ public nonisolated static var formatters
- public static var showDate
+ public nonisolated static var showDate
- public static var showLevel
+ public nonisolated static var showLevel
- public static var showIdentifier
+ public nonisolated static var showIdentifier
- public static var showThreadName
+ public nonisolated static var showThreadName
- public static var showFileName
+ public nonisolated static var showFileName
- public static var showLineNumber
+ public nonisolated static var showLineNumber
- public static var showFunctionName
+ public nonisolated static var showFunctionName
- public static var subsystems: LogSubsystem
+ public nonisolated static var subsystems: LogSubsystem
- public static var destinationTypes: [LogDestination.Type]
+ public nonisolated static var destinationTypes: [LogDestination.Type]
public struct TypingSuggester
- public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
+ @MainActor public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
open class WaveformView: _View, ThemeProvider
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
extension FileAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public struct ChatMessageReactionGroup: Equatable
+ public struct ChatMessageReactionGroup: Equatable, Sendable
- public final class IgnoredEventType: ClientError
+ public final class IgnoredEventType: ClientError, @unchecked Sendable
- public class MessageSearch
+ public class MessageSearch: @unchecked Sendable
- @MainActor public lazy var state: MessageSearchState
+ @MainActor public var state: MessageSearchState
- public struct AudioAnalysisEngine
+ public struct AudioAnalysisEngine: Sendable
- public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping (Result<[Float], Error>) -> Void)
+ public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping @Sendable(Result<[Float], Error>) -> Void)
- public protocol ChatChannelUnreadCountViewSwiftUIView: View
+ @MainActor public protocol ChatChannelUnreadCountViewSwiftUIView: View
- public final class Unexpected: ClientError
+ public final class Unexpected: ClientError, @unchecked Sendable
- public final class TooManyFailedTokenRefreshAttempts: ClientError
+ public final class TooManyFailedTokenRefreshAttempts: ClientError, @unchecked Sendable
- public struct AttachmentDownloadingState: Hashable
+ public struct AttachmentDownloadingState: Hashable, Sendable
- public enum LocalAttachmentState: Hashable
+ public enum LocalAttachmentState: Hashable, Sendable
- public struct PollsEntryConfig
+ public struct PollsEntryConfig: Sendable
- public struct DraftListQuery: Encodable
+ public struct DraftListQuery: Encodable, Sendable
- extension PollVoteListController: EventsControllerDelegate
+ extension PollVoteListController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: any Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollVoteListController
+ @Published public private var votes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
open class ChatChannelAvatarView: _View, ThemeProvider, SwiftUIRepresentable
- open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping ([UIImage], ChannelId)
+ open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping @Sendable([UIImage], ChannelId)
- public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
open class ComposerVC: _ViewController, ThemeProvider, UITextViewDelegate, UIImagePickerControllerDelegate, UIDocumentPickerDelegate, UINavigationControllerDelegate, InputTextViewClipboardAttachmentDelegate, VoiceRecordingDelegate
- open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: Encodable?)throws
+ open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: (Encodable & Sendable)?)throws
- open class StreamImageCDN: ImageCDN
+ open class StreamImageCDN: ImageCDN, @unchecked Sendable
- public static var streamCDNURL
+ nonisolated public static var streamCDNURL
- public struct BaseURL: CustomStringConvertible
+ public struct BaseURL: CustomStringConvertible, Sendable
- public protocol SortingKey: Encodable
+ public protocol SortingKey: Encodable, Sendable
- public struct ChatMessageReaction: Hashable
+ public struct ChatMessageReaction: Hashable, Sendable
- public struct EmptyResponse: Decodable
+ public struct EmptyResponse: Decodable, Sendable
public struct StreamAssetPropertyLoader: AssetPropertyLoading
- public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping (Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
+ public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping @Sendable(Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
- public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider
+ public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreReminders(limit: Int? = nil,completion: ((Result<[MessageReminder], Error>) -> Void)? = nil)
+ public func loadMoreReminders(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[MessageReminder], Error>) -> Void)? = nil)
public class ChatRemoteNotificationHandler
- public func handleNotification(completion: @escaping (ChatPushNotificationContent) -> Void)-> Bool
+ public func handleNotification(completion: @escaping @Sendable(ChatPushNotificationContent) -> Void)-> Bool
- public struct MessageReminder
+ public struct MessageReminder: Sendable
- public struct ReactionListQuery: Encodable
+ public struct ReactionListQuery: Encodable, Sendable
- public class ChannelList
+ public class ChannelList: @unchecked Sendable
- @MainActor public lazy var state: ChannelListState
+ @MainActor public var state: ChannelListState
- public class MessageReminderDueEvent: Event
+ public final class MessageReminderDueEvent: Event
- public final class EventDecoding: ClientError
+ public final class EventDecoding: ClientError, @unchecked Sendable
- public class ChatUser
+ public class ChatUser: @unchecked Sendable
- public enum ChannelType: Codable, Hashable
+ public enum ChannelType: Codable, Hashable, Sendable
- public enum LocalReactionState: String
+ public enum LocalReactionState: String, Sendable
- public class ChannelEventsController: EventsController
+ public class ChannelEventsController: EventsController, @unchecked Sendable
- public func sendEvent(_ payload: T,completion: ((Error?) -> Void)? = nil)
+ public func sendEvent(_ payload: T,completion: (@Sendable(Error?) -> Void)? = nil)
- public struct TextLink: Equatable
+ public struct TextLink: Equatable, Sendable
- public struct AttachmentAction: Codable, Hashable
+ public struct AttachmentAction: Codable, Hashable, Sendable
- public enum ActionType: String, Codable
+ public enum ActionType: String, Codable, Sendable
- public enum ActionStyle: String, Codable
+ public enum ActionStyle: String, Codable, Sendable
- public protocol ChatChannelAvatarViewSwiftUIView: View
+ @MainActor public protocol ChatChannelAvatarViewSwiftUIView: View
- public struct VotingVisibility: RawRepresentable, Equatable
+ public struct VotingVisibility: RawRepresentable, Equatable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatChannelSearchVC: ChatChannelListSearchVC
- public var didSelectChannel: ((ChatChannel) -> Void)?
+ public var didSelectChannel: (@MainActor(ChatChannel) -> Void)?
- open class AttachmentViewInjector
+ @MainActor open class AttachmentViewInjector
- public struct ChannelUnreadCount: Decodable, Equatable
+ public struct ChannelUnreadCount: Decodable, Equatable, Sendable
- public protocol UploadedAttachmentPostProcessor
+ public protocol UploadedAttachmentPostProcessor: Sendable
- public struct MessageModerationAction: RawRepresentable, Equatable
+ public struct MessageModerationAction: RawRepresentable, Equatable, Sendable
- public struct PollFeatureType: Equatable
+ public struct PollFeatureType: Equatable, Sendable
- public static var multipleVotes
+ public static let multipleVotes
- public static var anonymous
+ public static let anonymous
- public static var suggestions
+ public static let suggestions
- public static var comments
+ public static let comments
- public class MessageReminderCreatedEvent: Event
+ public final class MessageReminderCreatedEvent: Event
- public struct MessagePinDetails
+ public struct MessagePinDetails: Sendable
open class ChatMessageAttachmentPreviewVC: _ViewController, WKNavigationDelegate, AppearanceProvider
- public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
- public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
extension ImageAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public protocol AttachmentUploader
+ public protocol AttachmentUploader: Sendable
- public class Chat
+ public class Chat: @unchecked Sendable
- @MainActor public lazy var state: ChatState
+ @MainActor public var state: ChatState
- public func subscribe(toEvent event: E.Type,handler: @escaping (E) -> Void)-> AnyCancellable
+ public func subscribe(toEvent event: E.Type,handler: @escaping @Sendable(E) -> Void)-> AnyCancellable
- public func subscribe(_ handler: @escaping (Event) -> Void)-> AnyCancellable
+ public func subscribe(_ handler: @escaping @Sendable(Event) -> Void)-> AnyCancellable
- public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil)async throws -> UploadedAttachment
+ public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil)async throws -> UploadedAttachment
- public class ScheduledStreamTimer: StreamTimer
+ public class ScheduledStreamTimer: StreamTimer, @unchecked Sendable
- public var onChange: (() -> Void)?
+ public var onChange: (@Sendable() -> Void)?
- public struct BlockedUserDetails
+ public struct BlockedUserDetails: Sendable
- public final class AudioAnalysisEngineError: ClientError
+ public final class AudioAnalysisEngineError: ClientError, @unchecked Sendable
- public struct SharedLocation: Equatable
+ public struct SharedLocation: Equatable, Sendable
open class VoiceRecordingVC: _ViewController, ComponentsProvider, AppearanceProvider, AudioRecordingDelegate, AudioPlayingDelegate, UIGestureRecognizerDelegate
- public struct State: RawRepresentable, Equatable
+ public struct State: RawRepresentable, Equatable, Sendable
- public static var idle
+ public static let idle
- public static var showingTip
+ public static let showingTip
- public static var recording
+ public static let recording
- public static var locked
+ public static let locked
- public static var preview
+ public static let preview
- public struct Action: RawRepresentable, Equatable
+ public struct Action: RawRepresentable, Equatable, Sendable
- public static var tapRecord
+ public static let tapRecord
- public static var showTip
+ public static let showTip
- public static var beginRecording
+ public static let beginRecording
- public static var touchUp
+ public static let touchUp
- public static var cancel
+ public static let cancel
- public static var lock
+ public static let lock
- public static var stop
+ public static let stop
- public static var discard
+ public static let discard
- public static var send
+ public static let send
- public static var confirm
+ public static let confirm
- public static var publishMessage
+ public static let publishMessage
- public static var play
+ public static let play
- public static var pause
+ public static let pause
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
- public struct PollVote: Hashable, Equatable
+ public struct PollVote: Hashable, Equatable, Sendable
open class AudioQueuePlayerNextItemProvider
- public struct LookUpScope: RawRepresentable, Equatable
+ public struct LookUpScope: RawRepresentable, Equatable, Sendable
- public struct TranslationLanguage: Hashable
+ public struct TranslationLanguage: Hashable, Sendable
- public final class MissingToken: ClientError
+ public final class MissingToken: ClientError, @unchecked Sendable
- public protocol FilterValue: Encodable
+ public protocol FilterValue: Encodable, Sendable
- open class NukeImageProcessor: ImageProcessor
+ open class NukeImageProcessor: ImageProcessor, @unchecked Sendable
- public struct PollOption: Hashable, Equatable
+ public struct PollOption: Hashable, Equatable, Sendable
- public struct QueryOptions: OptionSet, Encodable
+ public struct QueryOptions: OptionSet, Encodable, Sendable
- public struct ChannelListSearchStrategy
+ public struct ChannelListSearchStrategy: Sendable
- public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
+ @MainActor public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
- public protocol CDNClient
+ public protocol CDNClient: Sendable
- public struct UserPrivacySettings
+ public struct UserPrivacySettings: Sendable
- public protocol KeyboardHandler
+ @MainActor public protocol KeyboardHandler
- public protocol QuotedChatMessageViewSwiftUIView: View
+ @MainActor public protocol QuotedChatMessageViewSwiftUIView: View
- public class MessageReminderDeletedEvent: Event
+ public final class MessageReminderDeletedEvent: Event
- public protocol AssetPropertyLoading
+ public protocol AssetPropertyLoading: Sendable
- public struct LocationInfo
+ public struct LocationInfo: Sendable
- @propertyWrapper public class Atomic
+ @propertyWrapper public class Atomic: @unchecked Sendable
- public struct AudioPlaybackState: Equatable, CustomStringConvertible
+ public struct AudioPlaybackState: Equatable, CustomStringConvertible, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatMessageSearchVC: ChatChannelListSearchVC, ChatMessageSearchControllerDelegate
- public var didSelectMessage: ((ChatChannel, ChatMessage) -> Void)?
+ public var didSelectMessage: (@MainActor(ChatChannel, ChatMessage) -> Void)?
- public enum PinnedMessagesPagination: Hashable
+ public enum PinnedMessagesPagination: Hashable, Sendable
- public struct ComposerState: RawRepresentable, Equatable
+ public struct ComposerState: RawRepresentable, Equatable, Sendable
- public static var new
+ public static let new
- public static var edit
+ public static let edit
- public static var quote
+ public static let quote
- public static var recording
+ public static let recording
- public static var recordingLocked
+ public static let recordingLocked
- public struct TypingIndicatorPrivacySettings
+ public struct TypingIndicatorPrivacySettings: Sendable
- public struct ChannelQuery: Encodable
+ public struct ChannelQuery: Encodable, Sendable
- public protocol MaskProviding
+ @MainActor public protocol MaskProviding
- public final class ClientIsNotInActiveMode: ClientError
+ public final class ClientIsNotInActiveMode: ClientError, @unchecked Sendable
- public class DraftUpdatedEvent: Event
+ public final class DraftUpdatedEvent: Event
- public struct ThreadParticipant: Equatable
+ public struct ThreadParticipant: Equatable, Sendable
- public struct AITypingState: ExpressibleByStringLiteral, Hashable
+ public struct AITypingState: ExpressibleByStringLiteral, Hashable, Sendable
- public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public final class Unknown: ClientError
+ public final class Unknown: ClientError, @unchecked Sendable
- public protocol Customizable
+ @MainActor public protocol Customizable
- public struct AudioPlaybackContext: Equatable
+ public struct AudioPlaybackContext: Equatable, Sendable
- public final class ClientHasBeenDeallocated: ClientError
+ public final class ClientHasBeenDeallocated: ClientError, @unchecked Sendable
- public final class ConnectionWasNotInitiated: ClientError
+ public final class ConnectionWasNotInitiated: ClientError, @unchecked Sendable
- public final class ConnectionNotSuccessful: ClientError
+ public final class ConnectionNotSuccessful: ClientError, @unchecked Sendable
- public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider
+ public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var connectionStatus: ConnectionStatus
- public var connectionStatus: ConnectionStatus
+ public let client: ChatClient
- public let client: ChatClient
- public indirect enum RawJSON: Codable, Hashable
+ public indirect enum RawJSON: Codable, Hashable, Sendable
- public struct NewLocationInfo
+ public struct NewLocationInfo: Sendable
- public class MessageReminderUpdatedEvent: Event
+ public final class MessageReminderUpdatedEvent: Event
- public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: ((Result<ChatMessage, Error>) -> Void)? = nil)
+ public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: (@MainActor @Sendable(Result<ChatMessage, Error>) -> Void)? = nil)
- public func deleteMessage(hard: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func deleteMessage(hard: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(limit: Int? = nil,_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(limit: Int? = nil,_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextReactions(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReactions(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping (Result<[ChatMessageReaction], Error>) -> Void)
+ public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping @MainActor @Sendable(Result<[ChatMessageReaction], Error>) -> Void)
- public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unflag(completion: ((Error?) -> Void)? = nil)
+ public func unflag(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteReaction(_ type: MessageReactionType,completion: ((Error?) -> Void)? = nil)
+ public func deleteReaction(_ type: MessageReactionType,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(_ pinning: MessagePinning,completion: ((Error?) -> Void)? = nil)
+ public func pin(_ pinning: MessagePinning,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(completion: ((Error?) -> Void)? = nil)
+ public func unpin(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping (Result<ChatMessageAttachment<Payload>, Error>) -> Void)
+ public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping @MainActor @Sendable(Result<ChatMessageAttachment<Payload>, Error>) -> Void)
- public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func restartFailedAttachmentUploading(with id: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func restartFailedAttachmentUploading(with id: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func resendMessage(completion: ((Error?) -> Void)? = nil)
+ public func resendMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: ((Error?) -> Void)? = nil)
+ public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func translate(to language: TranslationLanguage,completion: ((Error?) -> Void)? = nil)
+ public func translate(to language: TranslationLanguage,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadRead(completion: ((Error?) -> Void)? = nil)
+ public func markThreadRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadUnread(completion: ((Error?) -> Void)? = nil)
+ public func markThreadUnread(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func stopLiveLocationSharing(completion: ((Result<SharedLocation, Error>) -> Void)? = nil)
+ public func stopLiveLocationSharing(completion: (@MainActor @Sendable(Result<SharedLocation, Error>) -> Void)? = nil)
- public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftReply(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftReply(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftReply(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftReply(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createReminder(remindAt: Date? = nil,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func createReminder(remindAt: Date? = nil,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func updateReminder(remindAt: Date?,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func updateReminder(remindAt: Date?,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func deleteReminder(completion: ((Error?) -> Void)? = nil)
+ public func deleteReminder(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public final class WebSocket: ClientError
+ public final class WebSocket: ClientError, @unchecked Sendable
- public class DataController: Controller
+ public class DataController: Controller, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+
-
+
-
+ public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+
-
+
-
+ public enum State: Equatable, Sendable
- public enum State: Equatable
+
-
+ case initialized
- case initialized
+ case localDataFetched
- case localDataFetched
+ case localDataFetchFailed(ClientError)
- case localDataFetchFailed(ClientError)
+ case remoteDataFetched
- case remoteDataFetched
+ case remoteDataFetchFailed(ClientError)
- case remoteDataFetchFailed(ClientError)
- public protocol VoiceRecordingDelegate: AnyObject
+ @MainActor public protocol VoiceRecordingDelegate: AnyObject
- public protocol SwiftUIRepresentable: AnyObject
+ @MainActor public protocol SwiftUIRepresentable: AnyObject
- public struct MessagesPagination: Encodable, Equatable
+ public struct MessagesPagination: Encodable, Equatable, Sendable
- public struct MessagePinning: Equatable
+ public struct MessagePinning: Equatable, Sendable
- public struct Appearance
+ public struct Appearance: @unchecked Sendable
- public var localizationProvider: (_ key: String, _ table: String) -> String
+ public var localizationProvider: @Sendable(_ key: String, _ table: String) -> String
- public enum MessageOrdering
+ public enum MessageOrdering: Sendable
- public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral
+ public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral, Sendable
- public struct ImageResize
+ public struct ImageResize: Sendable
- public struct PollsConfig
+ public struct PollsConfig: Sendable
- public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public final class PollVoteAlreadyExists: ClientError
+ public final class PollVoteAlreadyExists: ClientError, @unchecked Sendable
- public struct AssetProperty: CustomStringConvertible
+ public struct AssetProperty: CustomStringConvertible, Sendable
- public final class InvalidChannelId: ClientError
+ public final class InvalidChannelId: ClientError, @unchecked Sendable
- public struct UnreadThread
+ public struct UnreadThread: Sendable
- public enum PaginationParameter: Encodable, Hashable
+ public enum PaginationParameter: Encodable, Hashable, Sendable
- public protocol ChatMessageContentViewDelegate: AnyObject
+ @MainActor public protocol ChatMessageContentViewDelegate: AnyObject
- public protocol SendMessageInterceptorFactory
+ public protocol SendMessageInterceptorFactory: Sendable
- public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable
+ public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable, Sendable
- public class DraftDeletedEvent: Event
+ public final class DraftDeletedEvent: Event
- public struct Alignment: Equatable
+ public struct Alignment: Equatable, Sendable
- public protocol DataControllerStateDelegate: AnyObject
+ @MainActor public protocol DataControllerStateDelegate: AnyObject
- public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
- public struct UnreadChannel
+ public struct UnreadChannel: Sendable
- public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct Distribution: Equatable
+ public struct Distribution: Equatable, Sendable
- public enum ConnectionStatus: Equatable
+ public enum ConnectionStatus: Equatable, Sendable
- public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct Poll: Equatable
+ public struct Poll: Equatable, Sendable
- public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable
+ public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable, Sendable
- @available(iOSApplicationExtension, unavailable) public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
+ @available(iOSApplicationExtension, unavailable) @MainActor public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
@available(iOSApplicationExtension, unavailable) open class ChatMessageListVC: _ViewController, ThemeProvider, ChatMessageListScrollOverlayDataSource, ChatMessageActionsVCDelegate, ChatMessageContentViewDelegate, GalleryContentViewDelegate, GiphyActionContentViewDelegate, FileActionContentViewDelegate, LinkPreviewViewDelegate, PollAttachmentViewInjectorDelegate, UITableViewDataSource, UITableViewDelegate, UIGestureRecognizerDelegate, VoiceRecordingAttachmentPresentationViewDelegate
- open func jumpToUnreadMessage(animated: Bool = true,onHighlight: ((IndexPath) -> Void)? = nil)
+ open func jumpToUnreadMessage(animated: Bool = true,onHighlight: (@Sendable(IndexPath) -> Void)? = nil)
- public struct ChannelWatcherListQuery: Encodable
+ public struct ChannelWatcherListQuery: Encodable, Sendable
- public struct MessageModerationDetails
+ public struct MessageModerationDetails: Sendable
- public protocol ChatMessageListVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageListVCDelegate: AnyObject
- public final class MissingLocalStorageURL: ClientError
+ public final class MissingLocalStorageURL: ClientError, @unchecked Sendable
extension VideoAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- open class StreamVideoLoader: VideoLoading
+ open class StreamVideoLoader: VideoLoading, @unchecked Sendable
- open func loadPreviewForVideo(at url: URL,completion: @escaping (Result<UIImage, Error>) -> Void)
+ open func loadPreviewForVideo(at url: URL,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)
- public class ConsoleLogDestination: BaseLogDestination
+ public class ConsoleLogDestination: BaseLogDestination, @unchecked Sendable
public struct DefaultAttachmentPreviewProvider: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public struct PushNotificationType: Equatable
+ public struct PushNotificationType: Equatable, Sendable
- public static var messageNew: PushNotificationType
+ public static let messageNew: PushNotificationType
- public static var messageReminderDue: PushNotificationType
+ public static let messageReminderDue: PushNotificationType
- public static var messageUpdated: PushNotificationType
+ public static let messageUpdated: PushNotificationType
- public static var reactionNew: PushNotificationType
+ public static let reactionNew: PushNotificationType
- public protocol AudioSessionFeedbackGenerator
+ @MainActor public protocol AudioSessionFeedbackGenerator
- public protocol AudioQueuePlayerDatasource: AnyObject
+ @MainActor public protocol AudioQueuePlayerDatasource: AnyObject
- public struct ChatClientConfig
+ public struct ChatClientConfig: Sendable
- public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible
+ public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible, Sendable
open class PollAllOptionsListVC: _ViewController, ThemeProvider, PollControllerDelegate, UITableViewDataSource, UITableViewDelegate
- public struct Section: RawRepresentable, Equatable
+ public struct Section: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
- public class CooldownTracker
+ public class CooldownTracker: @unchecked Sendable
- public class ChatClient
+ public class ChatClient: @unchecked Sendable
- public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectUser(userInfo: UserInfo,token: Token,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,token: Token,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectGuestUser(userInfo: UserInfo,completion: ((Error?) -> Void)? = nil)
+ public func connectGuestUser(userInfo: UserInfo,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectAnonymousUser(completion: ((Error?) -> Void)? = nil)
+ public func connectAnonymousUser(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disconnect(completion: @escaping () -> Void)
+ public func disconnect(completion: @escaping @MainActor @Sendable() -> Void)
- public func logout(removeDevice: Bool = true,completion: @escaping () -> Void)
+ public func logout(removeDevice: Bool = true,completion: @escaping @MainActor @Sendable() -> Void)
- public func loadAppSettings(completion: ((Result<AppSettings, Error>) -> Void)? = nil)
+ public func loadAppSettings(completion: (@Sendable(Result<AppSettings, Error>) -> Void)? = nil)
- public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public class UserSearch
+ public class UserSearch: @unchecked Sendable
- @MainActor public lazy var state: UserSearchState
+ @MainActor public var state: UserSearchState
- public struct UploadedAttachment
+ public struct UploadedAttachment: Sendable
- public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct ThreadRead: Equatable
+ public struct ThreadRead: Equatable, Sendable
- public struct Pagination: Encodable, Equatable
+ public struct Pagination: Encodable, Equatable, Sendable
extension VoiceRecordingAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public struct MuteDetails: Equatable
+ public struct MuteDetails: Equatable, Sendable
- public struct ThreadListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ThreadListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public final class UnsupportedUploadableAttachmentType: ClientError
+ public final class UnsupportedUploadableAttachmentType: ClientError, @unchecked Sendable
- public protocol AudioRecordingDelegate: AnyObject
+ @MainActor public protocol AudioRecordingDelegate: AnyObject
- public struct AudioRecordingState: Hashable
+ public struct AudioRecordingState: Hashable, Sendable
- public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public protocol ImageProcessor
+ public protocol ImageProcessor: Sendable
- public struct Device: Codable, Equatable
+ public struct Device: Codable, Equatable, Sendable
- public struct Token: Decodable, Equatable, ExpressibleByStringLiteral
+ public struct Token: Decodable, Equatable, ExpressibleByStringLiteral, Sendable
- open class StreamAudioQueuePlayer: StreamAudioPlayer
+ open class StreamAudioQueuePlayer: StreamAudioPlayer, @unchecked Sendable
- public struct AnyAttachmentPayload
+ public struct AnyAttachmentPayload: Sendable
- public let payload: Encodable
+ public let payload: (Encodable & Sendable)
- public class CurrentChatUser: ChatUser
+ public class CurrentChatUser: ChatUser, @unchecked Sendable |
Generated by 🚫 Danger |
SDK Performance
|
Public Interface- public struct UnreadChannelByType
+ public struct UnreadChannelByType: Sendable
- public struct BlockedUserDetails
+ public struct BlockedUserDetails: Sendable
- public class ChatChannelMember: ChatUser
+ public class ChatChannelMember: ChatUser, @unchecked Sendable
- public protocol SwipeableViewDelegate: AnyObject
+ @MainActor public protocol SwipeableViewDelegate: AnyObject
- open class StreamImageCDN: ImageCDN
+ open class StreamImageCDN: ImageCDN, @unchecked Sendable
- public static var streamCDNURL
+ nonisolated public static var streamCDNURL
- public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextChannels(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextChannels(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: ((Error?) -> Void)? = nil)
+ @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct ComposerState: RawRepresentable, Equatable
+ public struct ComposerState: RawRepresentable, Equatable, Sendable
- public static var new
+ public static let new
- public static var edit
+ public static let edit
- public static var quote
+ public static let quote
- public static var recording
+ public static let recording
- public static var recordingLocked
+ public static let recordingLocked
- public struct Token: Decodable, Equatable, ExpressibleByStringLiteral
+ public struct Token: Decodable, Equatable, ExpressibleByStringLiteral, Sendable
- public struct AudioPlaybackState: Equatable, CustomStringConvertible
+ public struct AudioPlaybackState: Equatable, CustomStringConvertible, Sendable
- public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public protocol MaskProviding
+ @MainActor public protocol MaskProviding
- public enum MessageType: String, Codable
+ public enum MessageType: String, Codable, Sendable
- public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct ChannelWatcherListQuery: Encodable
+ public struct ChannelWatcherListQuery: Encodable, Sendable
- public struct AttachmentFile: Codable, Hashable
+ public struct AttachmentFile: Codable, Hashable, Sendable
- public static let sizeFormatter
+ public nonisolated static let sizeFormatter
- public protocol ChatMessageListScrollOverlayDataSource: AnyObject
+ @MainActor public protocol ChatMessageListScrollOverlayDataSource: AnyObject
- public struct ChatMessageReaction: Hashable
+ public struct ChatMessageReaction: Hashable, Sendable
- public enum LocalReactionState: String
+ public enum LocalReactionState: String, Sendable
- public class ClientError: Error, CustomStringConvertible
+ public class ClientError: Error, CustomStringConvertible, @unchecked Sendable
- public final class AudioAnalysisEngineError: ClientError
+ public final class AudioAnalysisEngineError: ClientError, @unchecked Sendable
- public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public class ChatClient
+ public class ChatClient: @unchecked Sendable
- public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectUser(userInfo: UserInfo,token: Token,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,token: Token,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectGuestUser(userInfo: UserInfo,completion: ((Error?) -> Void)? = nil)
+ public func connectGuestUser(userInfo: UserInfo,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectAnonymousUser(completion: ((Error?) -> Void)? = nil)
+ public func connectAnonymousUser(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disconnect(completion: @escaping () -> Void)
+ public func disconnect(completion: @escaping @MainActor @Sendable() -> Void)
- public func logout(removeDevice: Bool = true,completion: @escaping () -> Void)
+ public func logout(removeDevice: Bool = true,completion: @escaping @MainActor @Sendable() -> Void)
- public func loadAppSettings(completion: ((Result<AppSettings, Error>) -> Void)? = nil)
+ public func loadAppSettings(completion: (@Sendable(Result<AppSettings, Error>) -> Void)? = nil)
- public class ChatUser
+ public class ChatUser: @unchecked Sendable
- public protocol Event
+ public protocol Event: Sendable
- public struct LocalCaching: Equatable
+ public struct LocalCaching: Equatable, Sendable
- public struct ChannelListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ChannelListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
@available(iOSApplicationExtension, unavailable) open class ChatChannelSearchVC: ChatChannelListSearchVC
- public var didSelectChannel: ((ChatChannel) -> Void)?
+ public var didSelectChannel: (@MainActor(ChatChannel) -> Void)?
- public struct AudioRecordingContext: Hashable
+ public struct AudioRecordingContext: Hashable, Sendable
- public final class MissingLocalStorageURL: ClientError
+ public final class MissingLocalStorageURL: ClientError, @unchecked Sendable
- @available(iOSApplicationExtension, unavailable) public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
+ @available(iOSApplicationExtension, unavailable) @MainActor public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
- public struct AnyAttachmentPayload
+ public struct AnyAttachmentPayload: Sendable
- public let payload: Encodable
+ public let payload: (Encodable & Sendable)
- public protocol CurrentChatUserControllerDelegate: AnyObject
+ @MainActor public protocol CurrentChatUserControllerDelegate: AnyObject
- public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
- public protocol ChatChannelListItemViewSwiftUIView: View
+ @MainActor public protocol ChatChannelListItemViewSwiftUIView: View
- public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct PollsEntryConfig
+ public struct PollsEntryConfig: Sendable
- public protocol VoiceRecordingDelegate: AnyObject
+ @MainActor public protocol VoiceRecordingDelegate: AnyObject
- public struct DraftListQuery: Encodable
+ public struct DraftListQuery: Encodable, Sendable
- public struct MessageReminder
+ public struct MessageReminder: Sendable
- public struct Mode
+ public struct Mode: Sendable
- public static var clip
+ public static let clip
- public static var fill
+ public static let fill
- public static var scale
+ public static let scale
open class WaveformView: _View, ThemeProvider
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
- public protocol CustomEventPayload: Codable, Hashable
+ public protocol CustomEventPayload: Codable, Hashable, Sendable
- public struct ThreadParticipant: Equatable
+ public struct ThreadParticipant: Equatable, Sendable
- public class HealthCheckEvent: ConnectionEvent, EventDTO
+ public final class HealthCheckEvent: ConnectionEvent, EventDTO, Sendable
- public struct PollCreationSection: RawRepresentable, Equatable
+ public struct PollCreationSection: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- public static var features
+ public static let features
@available(iOSApplicationExtension, unavailable) open class ChatThreadVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatMessageControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousReplies(completion: @escaping (Error?) -> Void)
+ open func loadPreviousReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextReplies(completion: @escaping (Error?) -> Void)
+ open func loadNextReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @Sendable(Error?) -> Void)
public enum StreamRuntimeCheck
- public static var assertionsEnabled
+ public nonisolated static var assertionsEnabled
- public static var _isDatabasePrefetchingEnabled
+ public nonisolated static var _isDatabasePrefetchingEnabled
- public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(text: String,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(text: String,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: MessageSearchQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: MessageSearchQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextMessages(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct UserPrivacySettings
+ public struct UserPrivacySettings: Sendable
- public protocol GalleryItemPreview
+ @MainActor public protocol GalleryItemPreview
- public struct Distribution: Equatable
+ public struct Distribution: Equatable, Sendable
- public class ChannelList
+ public class ChannelList: @unchecked Sendable
- @MainActor public lazy var state: ChannelListState
+ @MainActor public var state: ChannelListState
- public class StreamAttachmentUploader: AttachmentUploader
+ public class StreamAttachmentUploader: AttachmentUploader, @unchecked Sendable
- public func upload(_ attachment: AnyChatMessageAttachment,progress: ((Double) -> Void)?,completion: @escaping (Result<UploadedAttachment, Error>) -> Void)
+ public func upload(_ attachment: AnyChatMessageAttachment,progress: (@Sendable(Double) -> Void)?,completion: @escaping @Sendable(Result<UploadedAttachment, Error>) -> Void)
- open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate
+ open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate, @unchecked Sendable
- open func beginRecording(_ completionHandler: @escaping (() -> Void))
+ open func beginRecording(_ completionHandler: @escaping @Sendable() -> Void)
- public static let `default`
+ nonisolated public static let `default`
- public final class PollVoteAlreadyExists: ClientError
+ public final class PollVoteAlreadyExists: ClientError, @unchecked Sendable
- public class MessageReminderCreatedEvent: Event
+ public final class MessageReminderCreatedEvent: Event
- public struct PollVote: Hashable, Equatable
+ public struct PollVote: Hashable, Equatable, Sendable
- public protocol EventsControllerDelegate: AnyObject
+ @MainActor public protocol EventsControllerDelegate: AnyObject
- public struct ReadReceiptsPrivacySettings
+ public struct ReadReceiptsPrivacySettings: Sendable
- public struct MessageReminderListQuery: Encodable
+ public struct MessageReminderListQuery: Encodable, Sendable
public struct StreamAssetPropertyLoader: AssetPropertyLoading
- public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping (Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
+ public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping @Sendable(Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
- open class NukeImageProcessor: ImageProcessor
+ open class NukeImageProcessor: ImageProcessor, @unchecked Sendable
- public struct ChatMessage
+ public struct ChatMessage: Sendable
- public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public class PollController: DataController, DelegateCallable, DataStoreProvider
+ public class PollController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func castPollVote(answerText: String?,optionId: String?,completion: ((Error?) -> Void)? = nil)
+ public func castPollVote(answerText: String?,optionId: String?,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removePollVote(voteId: String,completion: ((Error?) -> Void)? = nil)
+ public func removePollVote(voteId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func closePoll(completion: ((Error?) -> Void)? = nil)
+ public func closePoll(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public final class Unknown: ClientError
+ public final class Unknown: ClientError, @unchecked Sendable
- public protocol ImageProcessor
+ public protocol ImageProcessor: Sendable
- public protocol SwiftUIRepresentable: AnyObject
+ @MainActor public protocol SwiftUIRepresentable: AnyObject
- public final class UserList
+ public final class UserList: Sendable
- @MainActor public lazy var state: UserListState
+ @MainActor public var state: UserListState
- open class AttachmentViewInjector
+ @MainActor open class AttachmentViewInjector
- public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable
+ public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable, Sendable
open class ComposerVC: _ViewController, ThemeProvider, UITextViewDelegate, UIImagePickerControllerDelegate, UIDocumentPickerDelegate, UINavigationControllerDelegate, InputTextViewClipboardAttachmentDelegate, VoiceRecordingDelegate
- open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: Encodable?)throws
+ open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: (Encodable & Sendable)?)throws
- public struct CurrentUserUnreads
+ public struct CurrentUserUnreads: Sendable
- public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider
+ public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreReminders(limit: Int? = nil,completion: ((Result<[MessageReminder], Error>) -> Void)? = nil)
+ public func loadMoreReminders(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[MessageReminder], Error>) -> Void)? = nil)
- public struct Command: Codable, Hashable
+ public struct Command: Codable, Hashable, Sendable
- public final class ClientHasBeenDeallocated: ClientError
+ public final class ClientHasBeenDeallocated: ClientError, @unchecked Sendable
- public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: ((Result<ChatMessage, Error>) -> Void)? = nil)
+ public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: (@MainActor @Sendable(Result<ChatMessage, Error>) -> Void)? = nil)
- public func deleteMessage(hard: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func deleteMessage(hard: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(limit: Int? = nil,_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(limit: Int? = nil,_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextReactions(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReactions(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping (Result<[ChatMessageReaction], Error>) -> Void)
+ public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping @MainActor @Sendable(Result<[ChatMessageReaction], Error>) -> Void)
- public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unflag(completion: ((Error?) -> Void)? = nil)
+ public func unflag(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteReaction(_ type: MessageReactionType,completion: ((Error?) -> Void)? = nil)
+ public func deleteReaction(_ type: MessageReactionType,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(_ pinning: MessagePinning,completion: ((Error?) -> Void)? = nil)
+ public func pin(_ pinning: MessagePinning,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(completion: ((Error?) -> Void)? = nil)
+ public func unpin(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping (Result<ChatMessageAttachment<Payload>, Error>) -> Void)
+ public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping @MainActor @Sendable(Result<ChatMessageAttachment<Payload>, Error>) -> Void)
- public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func restartFailedAttachmentUploading(with id: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func restartFailedAttachmentUploading(with id: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func resendMessage(completion: ((Error?) -> Void)? = nil)
+ public func resendMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: ((Error?) -> Void)? = nil)
+ public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func translate(to language: TranslationLanguage,completion: ((Error?) -> Void)? = nil)
+ public func translate(to language: TranslationLanguage,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadRead(completion: ((Error?) -> Void)? = nil)
+ public func markThreadRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadUnread(completion: ((Error?) -> Void)? = nil)
+ public func markThreadUnread(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func stopLiveLocationSharing(completion: ((Result<SharedLocation, Error>) -> Void)? = nil)
+ public func stopLiveLocationSharing(completion: (@MainActor @Sendable(Result<SharedLocation, Error>) -> Void)? = nil)
- public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftReply(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftReply(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftReply(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftReply(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createReminder(remindAt: Date? = nil,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func createReminder(remindAt: Date? = nil,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func updateReminder(remindAt: Date?,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func updateReminder(remindAt: Date?,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func deleteReminder(completion: ((Error?) -> Void)? = nil)
+ public func deleteReminder(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct Device: Codable, Equatable
+ public struct Device: Codable, Equatable, Sendable
- public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
- public struct ImageLoaderOptions
+ public struct ImageLoaderOptions: Sendable
- public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(term: String?,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(term: String?,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: UserListQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: UserListQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextUsers(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextUsers(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public protocol ComponentsProvider: AnyObject
+ @MainActor public protocol ComponentsProvider: AnyObject
- public struct LogSubsystem: OptionSet
+ public struct LogSubsystem: OptionSet, Sendable
extension FileAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreThreads(limit: Int? = nil,completion: ((Result<[ChatThread], Error>) -> Void)? = nil)
+ public func loadMoreThreads(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[ChatThread], Error>) -> Void)? = nil)
- public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable
+ public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable, Sendable
- public protocol FilterValue: Encodable
+ public protocol FilterValue: Encodable, Sendable
- public final class ConnectedUser
+ public final class ConnectedUser: Sendable
- @MainActor public lazy var state: ConnectedUserState
+ @MainActor public var state: ConnectedUserState
- public final class InvalidToken: ClientError
+ public final class InvalidToken: ClientError, @unchecked Sendable
- public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider
+ public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var connectionStatus: ConnectionStatus
- public var connectionStatus: ConnectionStatus
+ public let client: ChatClient
- public let client: ChatClient
@available(iOSApplicationExtension, unavailable) open class ChatChannelVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatChannelControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousMessages(completion: @escaping (Error?) -> Void)
+ open func loadPreviousMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextMessages(completion: @escaping (Error?) -> Void)
+ open func loadNextMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @Sendable(Error?) -> Void)
- public protocol SendMessageInterceptorFactory
+ public protocol SendMessageInterceptorFactory: Sendable
- public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public class DataController: Controller
+ public class DataController: Controller, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+
-
+
-
+ public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+
-
+
-
+ public enum State: Equatable, Sendable
- public enum State: Equatable
+
-
+ case initialized
- case initialized
+ case localDataFetched
- case localDataFetched
+ case localDataFetchFailed(ClientError)
- case localDataFetchFailed(ClientError)
+ case remoteDataFetched
- case remoteDataFetched
+ case remoteDataFetchFailed(ClientError)
- case remoteDataFetchFailed(ClientError)
- public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct EmptyResponse: Decodable
+ public struct EmptyResponse: Decodable, Sendable
- public protocol ChatMessageListVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageListVCDelegate: AnyObject
- public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct ImageResize
+ public struct ImageResize: Sendable
- public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: ((Error?) -> Void)? = nil)
+ public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func muteChannel(expiration: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func muteChannel(expiration: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unmuteChannel(completion: ((Error?) -> Void)? = nil)
+ public func unmuteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func archive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func archive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unarchive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unarchive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteChannel(completion: ((Error?) -> Void)? = nil)
+ public func deleteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func hideChannel(clearHistory: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func hideChannel(clearHistory: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func showChannel(completion: ((Error?) -> Void)? = nil)
+ public func showChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftMessage(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftMessage(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftMessage(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: ((Result<MessageId, Error>) -> Void)?)
+ public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)?)
- public func deletePoll(pollId: String,completion: ((Error?) -> Void)? = nil)
+ public func deletePoll(pollId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func inviteMembers(userIds: Set<UserId>,completion: ((Error?) -> Void)? = nil)
+ public func inviteMembers(userIds: Set<UserId>,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func acceptInvite(message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func acceptInvite(message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func rejectInvite(completion: ((Error?) -> Void)? = nil)
+ public func rejectInvite(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markRead(completion: ((Error?) -> Void)? = nil)
+ public func markRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markUnread(from messageId: MessageId,completion: ((Result<ChatChannel, Error>) -> Void)? = nil)
+ public func markUnread(from messageId: MessageId,completion: (@MainActor @Sendable(Result<ChatChannel, Error>) -> Void)? = nil)
- public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping (Error?) -> Void)
+ public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping (Error?) -> Void)
+ public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func enableSlowMode(cooldownDuration: Int,completion: ((Error?) -> Void)? = nil)
+ public func enableSlowMode(cooldownDuration: Int,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disableSlowMode(completion: ((Error?) -> Void)? = nil)
+ public func disableSlowMode(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func startWatching(isInRecoveryMode: Bool,completion: ((Error?) -> Void)? = nil)
+ public func startWatching(isInRecoveryMode: Bool,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func stopWatching(completion: ((Error?) -> Void)? = nil)
+ public func stopWatching(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func freezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func freezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unfreezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func unfreezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func pin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unpin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil,completion: @escaping ((Result<UploadedAttachment, Error>) -> Void))
+ public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil,completion: @escaping @MainActor @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public func enrichUrl(_ url: URL,completion: @escaping (Result<LinkAttachmentPayload, Error>) -> Void)
+ public func enrichUrl(_ url: URL,completion: @escaping @MainActor @Sendable(Result<LinkAttachmentPayload, Error>) -> Void)
- public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping (Result<[ChatMessage], Error>) -> Void)
+ public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping @MainActor @Sendable(Result<[ChatMessage], Error>) -> Void)
- public func deleteFile(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteFile(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteImage(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteImage(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct MessagesPagination: Encodable, Equatable
+ public struct MessagesPagination: Encodable, Equatable, Sendable
- public struct PollVoteListQuery: Encodable
+ public struct PollVoteListQuery: Encodable, Sendable
- public enum LocalAttachmentDownloadState: Hashable
+ public enum LocalAttachmentDownloadState: Hashable, Sendable
- public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
+ @MainActor public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
- public final class MemberList
+ public final class MemberList: Sendable
- @MainActor public lazy var state: MemberListState
+ @MainActor public var state: MemberListState
- public struct ChannelUnreadCount: Decodable, Equatable
+ public struct ChannelUnreadCount: Decodable, Equatable, Sendable
- public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
- public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable
+ public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable, Sendable
- public struct AudioAnalysisEngine
+ public struct AudioAnalysisEngine: Sendable
- public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping (Result<[Float], Error>) -> Void)
+ public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping @Sendable(Result<[Float], Error>) -> Void)
- public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral
+ public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral, Sendable
- public struct NewLocationInfo
+ public struct NewLocationInfo: Sendable
- public enum ChannelType: Codable, Hashable
+ public enum ChannelType: Codable, Hashable, Sendable
- public protocol KeyboardHandler
+ @MainActor public protocol KeyboardHandler
- public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct UserInfo
+ public struct UserInfo: Sendable
- public struct Pagination: Encodable, Equatable
+ public struct Pagination: Encodable, Equatable, Sendable
- public struct ChatChannelRead: Equatable
+ public struct ChatChannelRead: Equatable, Sendable
- public final class IgnoredEventType: ClientError
+ public final class IgnoredEventType: ClientError, @unchecked Sendable
- public class MessageReminderDeletedEvent: Event
+ public final class MessageReminderDeletedEvent: Event
- public protocol AudioQueuePlayerDatasource: AnyObject
+ @MainActor public protocol AudioQueuePlayerDatasource: AnyObject
- public struct TypingIndicatorPrivacySettings
+ public struct TypingIndicatorPrivacySettings: Sendable
- public protocol AudioRecordingDelegate: AnyObject
+ @MainActor public protocol AudioRecordingDelegate: AnyObject
- public final class ReconnectionTimeout: ClientError
+ public final class ReconnectionTimeout: ClientError, @unchecked Sendable
- public enum ConnectionStatus: Equatable
+ public enum ConnectionStatus: Equatable, Sendable
- public struct ChatClientConfig
+ public struct ChatClientConfig: Sendable
- public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible
+ public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible, Sendable
- public final class EventDecoding: ClientError
+ public final class EventDecoding: ClientError, @unchecked Sendable
- open class StreamAudioSessionConfigurator: AudioSessionConfiguring
+ open class StreamAudioSessionConfigurator: AudioSessionConfiguring, @unchecked Sendable
- open func requestRecordPermission(_ completionHandler: @escaping (Bool) -> Void)
+ open func requestRecordPermission(_ completionHandler: @escaping @Sendable(Bool) -> Void)
- public struct UploadedAttachment
+ public struct UploadedAttachment: Sendable
- public final class ConnectionWasNotInitiated: ClientError
+ public final class ConnectionWasNotInitiated: ClientError, @unchecked Sendable
- public struct TranslationLanguage: Hashable
+ public struct TranslationLanguage: Hashable, Sendable
- public struct ChatChannel
+ public struct ChatChannel: Sendable
- public final class Unexpected: ClientError
+ public final class Unexpected: ClientError, @unchecked Sendable
- public struct PollFeatureType: Equatable
+ public struct PollFeatureType: Equatable, Sendable
- public static var multipleVotes
+ public static let multipleVotes
- public static var anonymous
+ public static let anonymous
- public static var suggestions
+ public static let suggestions
- public static var comments
+ public static let comments
- public struct UnreadChannel
+ public struct UnreadChannel: Sendable
public struct AIIndicatorStopEvent: CustomEventPayload, Event
- public static var eventType: EventType
+ public static let eventType: EventType
- public struct MuteDetails: Equatable
+ public struct MuteDetails: Equatable, Sendable
- public struct ThreadRead: Equatable
+ public struct ThreadRead: Equatable, Sendable
- public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
- public struct MessageModerationDetails
+ public struct MessageModerationDetails: Sendable
- public protocol AssetPropertyLoading
+ public protocol AssetPropertyLoading: Sendable
- public class DraftDeletedEvent: Event
+ public final class DraftDeletedEvent: Event
- public enum LocalAttachmentState: Hashable
+ public enum LocalAttachmentState: Hashable, Sendable
- open class BaseLogDestination: LogDestination
+ open class BaseLogDestination: LogDestination, @unchecked Sendable
- public class Chat
+ public class Chat: @unchecked Sendable
- @MainActor public lazy var state: ChatState
+ @MainActor public var state: ChatState
- public func subscribe(toEvent event: E.Type,handler: @escaping (E) -> Void)-> AnyCancellable
+ public func subscribe(toEvent event: E.Type,handler: @escaping @Sendable(E) -> Void)-> AnyCancellable
- public func subscribe(_ handler: @escaping (Event) -> Void)-> AnyCancellable
+ public func subscribe(_ handler: @escaping @Sendable(Event) -> Void)-> AnyCancellable
- public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil)async throws -> UploadedAttachment
+ public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil)async throws -> UploadedAttachment
- public final class TooManyFailedTokenRefreshAttempts: ClientError
+ public final class TooManyFailedTokenRefreshAttempts: ClientError, @unchecked Sendable
- public struct Poll: Equatable
+ public struct Poll: Equatable, Sendable
- public struct QueryOptions: OptionSet, Encodable
+ public struct QueryOptions: OptionSet, Encodable, Sendable
- public struct ChannelListSearchStrategy
+ public struct ChannelListSearchStrategy: Sendable
- public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
+ @MainActor public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
- public struct ChannelMemberListQuery: Encodable
+ public struct ChannelMemberListQuery: Encodable, Sendable
- public struct PollOption: Hashable, Equatable
+ public struct PollOption: Hashable, Equatable, Sendable
- public class EventsController: Controller, DelegateCallable
+ public class EventsController: Controller, DelegateCallable, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var delegate: EventsControllerDelegate?
- public var delegate: EventsControllerDelegate?
- public struct PushNotificationType: Equatable
+ public struct PushNotificationType: Equatable, Sendable
- public static var messageNew: PushNotificationType
+ public static let messageNew: PushNotificationType
- public static var messageReminderDue: PushNotificationType
+ public static let messageReminderDue: PushNotificationType
- public static var messageUpdated: PushNotificationType
+ public static let messageUpdated: PushNotificationType
- public static var reactionNew: PushNotificationType
+ public static let reactionNew: PushNotificationType
- public struct ReactionListQuery: Encodable
+ public struct ReactionListQuery: Encodable, Sendable
- public class ChannelEventsController: EventsController
+ public class ChannelEventsController: EventsController, @unchecked Sendable
- public func sendEvent(_ payload: T,completion: ((Error?) -> Void)? = nil)
+ public func sendEvent(_ payload: T,completion: (@Sendable(Error?) -> Void)? = nil)
open class ChatChannelAvatarView: _View, ThemeProvider, SwiftUIRepresentable
- open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping ([UIImage], ChannelId)
+ open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping @Sendable([UIImage], ChannelId)
- public class CooldownTracker
+ public class CooldownTracker: @unchecked Sendable
- public enum BanEnabling
+ public enum BanEnabling: Sendable
- public protocol ChatMessageListVCDataSource: AnyObject
+ @MainActor public protocol ChatMessageListVCDataSource: AnyObject
- public protocol QuotedChatMessageViewSwiftUIView: View
+ @MainActor public protocol QuotedChatMessageViewSwiftUIView: View
- public indirect enum RawJSON: Codable, Hashable
+ public indirect enum RawJSON: Codable, Hashable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatMessageSearchVC: ChatChannelListSearchVC, ChatMessageSearchControllerDelegate
- public var didSelectMessage: ((ChatChannel, ChatMessage) -> Void)?
+ public var didSelectMessage: (@MainActor(ChatChannel, ChatMessage) -> Void)?
- public protocol AudioSessionFeedbackGenerator
+ @MainActor public protocol AudioSessionFeedbackGenerator
- public struct ThreadQuery: Encodable
+ public struct ThreadQuery: Encodable, Sendable
- public struct APIKey: Equatable
+ public struct APIKey: Equatable, Sendable
- public struct MessageSearchQuery: Encodable
+ public struct MessageSearchQuery: Encodable, Sendable
open class PollAllOptionsListVC: _ViewController, ThemeProvider, PollControllerDelegate, UITableViewDataSource, UITableViewDelegate
- public struct Section: RawRepresentable, Equatable
+ public struct Section: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- open class StreamVideoLoader: VideoLoading
+ open class StreamVideoLoader: VideoLoading, @unchecked Sendable
- open func loadPreviewForVideo(at url: URL,completion: @escaping (Result<UIImage, Error>) -> Void)
+ open func loadPreviewForVideo(at url: URL,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)
- public enum PinnedMessagesPagination: Hashable
+ public enum PinnedMessagesPagination: Hashable, Sendable
- public struct AnyAttachmentUpdater
+ public struct AnyAttachmentUpdater: Sendable
- public struct AudioRecordingState: Hashable
+ public struct AudioRecordingState: Hashable, Sendable
- public protocol DataControllerStateDelegate: AnyObject
+ @MainActor public protocol DataControllerStateDelegate: AnyObject
- public protocol AppearanceProvider: AnyObject
+ @MainActor public protocol AppearanceProvider: AnyObject
- public protocol ChatChannelAvatarViewSwiftUIView: View
+ @MainActor public protocol ChatChannelAvatarViewSwiftUIView: View
- public struct UserListQuery: Encodable
+ public struct UserListQuery: Encodable, Sendable
- public class ChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public enum LocalMessageState: String
+ public enum LocalMessageState: String, Sendable
- public struct AppSettings
+ public struct AppSettings: Sendable
- public struct UploadConfig
+ public struct UploadConfig: Sendable
- public protocol ChatMessageContentViewDelegate: AnyObject
+ @MainActor public protocol ChatMessageContentViewDelegate: AnyObject
@available(iOSApplicationExtension, unavailable) open class ChatMessageListVC: _ViewController, ThemeProvider, ChatMessageListScrollOverlayDataSource, ChatMessageActionsVCDelegate, ChatMessageContentViewDelegate, GalleryContentViewDelegate, GiphyActionContentViewDelegate, FileActionContentViewDelegate, LinkPreviewViewDelegate, PollAttachmentViewInjectorDelegate, UITableViewDataSource, UITableViewDelegate, UIGestureRecognizerDelegate, VoiceRecordingAttachmentPresentationViewDelegate
- open func jumpToUnreadMessage(animated: Bool = true,onHighlight: ((IndexPath) -> Void)? = nil)
+ open func jumpToUnreadMessage(animated: Bool = true,onHighlight: (@Sendable(IndexPath) -> Void)? = nil)
- public class UserSearch
+ public class UserSearch: @unchecked Sendable
- @MainActor public lazy var state: UserSearchState
+ @MainActor public var state: UserSearchState
- public struct ChatMessageReactionGroup: Equatable
+ public struct ChatMessageReactionGroup: Equatable, Sendable
- public class DraftUpdatedEvent: Event
+ public final class DraftUpdatedEvent: Event
- public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct PollsConfig
+ public struct PollsConfig: Sendable
- public struct Appearance
+ public struct Appearance: @unchecked Sendable
- public var localizationProvider: (_ key: String, _ table: String) -> String
+ public var localizationProvider: @Sendable(_ key: String, _ table: String) -> String
- @propertyWrapper public class Atomic
+ @propertyWrapper public class Atomic: @unchecked Sendable
- public struct Sorting: Encodable, CustomStringConvertible
+ public struct Sorting: Encodable, CustomStringConvertible, Sendable
- @resultBuilder public struct ViewContainerBuilder
+ @MainActor @resultBuilder public struct ViewContainerBuilder
- open class StreamAudioQueuePlayer: StreamAudioPlayer
+ open class StreamAudioQueuePlayer: StreamAudioPlayer, @unchecked Sendable
extension ImageAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public final class ConnectionNotSuccessful: ClientError
+ public final class ConnectionNotSuccessful: ClientError, @unchecked Sendable
- public struct MessageModerationAction: RawRepresentable, Equatable
+ public struct MessageModerationAction: RawRepresentable, Equatable, Sendable
- public protocol AttachmentUploader
+ public protocol AttachmentUploader: Sendable
- public struct MessagePinDetails
+ public struct MessagePinDetails: Sendable
open class ChatMessageAttachmentPreviewVC: _ViewController, WKNavigationDelegate, AppearanceProvider
- public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
- public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
- public struct MessagePinning: Equatable
+ public struct MessagePinning: Equatable, Sendable
- public struct ChannelQuery: Encodable
+ public struct ChannelQuery: Encodable, Sendable
public struct DefaultAttachmentPreviewProvider: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider
+ public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreVotes(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadMoreVotes(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct AttachmentDownloadingState: Hashable
+ public struct AttachmentDownloadingState: Hashable, Sendable
- public struct LocationInfo
+ public struct LocationInfo: Sendable
- public struct AssetProperty: CustomStringConvertible
+ public struct AssetProperty: CustomStringConvertible, Sendable
- public struct AITypingState: ExpressibleByStringLiteral, Hashable
+ public struct AITypingState: ExpressibleByStringLiteral, Hashable, Sendable
- public protocol ChatChannelUnreadCountViewSwiftUIView: View
+ @MainActor public protocol ChatChannelUnreadCountViewSwiftUIView: View
- public struct AudioPlaybackRate: Comparable, Equatable
+ public struct AudioPlaybackRate: Comparable, Equatable, Sendable
- public class Logger
+ public class Logger: @unchecked Sendable
- public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #filePath,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
+ public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #file,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
- public class MessageReminderDueEvent: Event
+ public final class MessageReminderDueEvent: Event
- public final class ClientIsNotInActiveMode: ClientError
+ public final class ClientIsNotInActiveMode: ClientError, @unchecked Sendable
- public final class AudioRecorderError: ClientError
+ public final class AudioRecorderError: ClientError, @unchecked Sendable
open class NukeImageLoader: ImageLoading
- @discardableResult open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: ((Result<UIImage, Error>) -> Void)?)-> Cancellable?
+ @discardableResult @MainActor open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: (@MainActor @Sendable(Result<UIImage, Error>) -> Void)?)-> Cancellable?
- @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping ((Result<UIImage, Error>) -> Void))-> Cancellable?
+ @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)-> Cancellable?
- open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping (([Result<UIImage, Error>]) -> Void))
+ open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping @MainActor @Sendable([Result<UIImage, Error>]) -> Void)
- public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public protocol StreamModelsTransformer
+ public protocol StreamModelsTransformer: Sendable
- public struct VotingVisibility: RawRepresentable, Equatable
+ public struct VotingVisibility: RawRepresentable, Equatable, Sendable
- public struct BaseURL: CustomStringConvertible
+ public struct BaseURL: CustomStringConvertible, Sendable
public struct LateResize: ImageProcessing
- @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping () -> CGSize)
+ @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping @Sendable() -> CGSize)
- public init(id: String,sizeProvider: @escaping () -> CGSize)
+ public init(id: String,sizeProvider: @escaping @Sendable() -> CGSize)
- public protocol ImageCDN
+ public protocol ImageCDN: Sendable
- public protocol Customizable
+ @MainActor public protocol Customizable
- public struct AttachmentUploadingState: Hashable
+ public struct AttachmentUploadingState: Hashable, Sendable
- public protocol ChatConnectionControllerDelegate: AnyObject
+ @MainActor public protocol ChatConnectionControllerDelegate: AnyObject
- public class MessageReminderUpdatedEvent: Event
+ public final class MessageReminderUpdatedEvent: Event
open class VoiceRecordingVC: _ViewController, ComponentsProvider, AppearanceProvider, AudioRecordingDelegate, AudioPlayingDelegate, UIGestureRecognizerDelegate
- public struct State: RawRepresentable, Equatable
+ public struct State: RawRepresentable, Equatable, Sendable
- public static var idle
+ public static let idle
- public static var showingTip
+ public static let showingTip
- public static var recording
+ public static let recording
- public static var locked
+ public static let locked
- public static var preview
+ public static let preview
- public struct Action: RawRepresentable, Equatable
+ public struct Action: RawRepresentable, Equatable, Sendable
- public static var tapRecord
+ public static let tapRecord
- public static var showTip
+ public static let showTip
- public static var beginRecording
+ public static let beginRecording
- public static var touchUp
+ public static let touchUp
- public static var cancel
+ public static let cancel
- public static var lock
+ public static let lock
- public static var stop
+ public static let stop
- public static var discard
+ public static let discard
- public static var send
+ public static let send
- public static var confirm
+ public static let confirm
- public static var publishMessage
+ public static let publishMessage
- public static var play
+ public static let play
- public static var pause
+ public static let pause
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
extension VoiceRecordingAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public class ChannelConfig: Codable
+ public final class ChannelConfig: Codable, Sendable
public class ChatRemoteNotificationHandler
- public func handleNotification(completion: @escaping (ChatPushNotificationContent) -> Void)-> Bool
+ public func handleNotification(completion: @escaping @Sendable(ChatPushNotificationContent) -> Void)-> Bool
- public struct QuotedAvatarAlignment: RawRepresentable, Equatable
+ public struct QuotedAvatarAlignment: RawRepresentable, Equatable, Sendable
- public final class MissingToken: ClientError
+ public final class MissingToken: ClientError, @unchecked Sendable
- public struct SharedLocation: Equatable
+ public struct SharedLocation: Equatable, Sendable
- open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate
+ open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate, @unchecked Sendable
- public struct MessageDeliveryStatus: RawRepresentable, Hashable
+ public struct MessageDeliveryStatus: RawRepresentable, Hashable, Sendable
- public protocol ChatMessageActionsVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageActionsVCDelegate: AnyObject
- public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
- public struct ThreadListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ThreadListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public enum PaginationParameter: Encodable, Hashable
+ public enum PaginationParameter: Encodable, Hashable, Sendable
- public enum AttachmentFileType: String, Codable, Equatable, CaseIterable
+ public enum AttachmentFileType: String, Codable, Equatable, CaseIterable, Sendable
- public struct Filter
+ public struct Filter: Sendable
- extension PollVoteListController: EventsControllerDelegate
+ extension PollVoteListController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: any Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollVoteListController
+ @Published public private var votes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
open class AudioQueuePlayerNextItemProvider
- public struct LookUpScope: RawRepresentable, Equatable
+ public struct LookUpScope: RawRepresentable, Equatable, Sendable
- public struct MessageReminderInfo: Equatable
+ public struct MessageReminderInfo: Equatable, Sendable
- public enum LogLevel: Int
+ public enum LogLevel: Int, Sendable
- public struct TextLink: Equatable
+ public struct TextLink: Equatable, Sendable
- extension PollController: EventsControllerDelegate
+ extension PollController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollController
+ @Published public private var poll: Poll?
+ @Published public private var ownVotes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
public struct TypingSuggester
- public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
+ @MainActor public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
- public class ConsoleLogDestination: BaseLogDestination
+ public class ConsoleLogDestination: BaseLogDestination, @unchecked Sendable
- public protocol AttachmentPayload: Codable
+ public protocol AttachmentPayload: Codable, Sendable
- public protocol AudioPlayingDelegate: AnyObject
+ @MainActor public protocol AudioPlayingDelegate: AnyObject
- open class SwipeToReplyGestureHandler
+ @MainActor open class SwipeToReplyGestureHandler
- public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator = .init(style: .medium))
+ public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator? = nil)
- public final class InvalidChannelId: ClientError
+ public final class InvalidChannelId: ClientError, @unchecked Sendable
- public struct AttachmentId: Hashable
+ public struct AttachmentId: Hashable, Sendable
- public protocol UploadedAttachmentPostProcessor
+ public protocol UploadedAttachmentPostProcessor: Sendable
- public struct AudioPlaybackContext: Equatable
+ public struct AudioPlaybackContext: Equatable, Sendable
- public struct DraftMessage
+ public struct DraftMessage: Sendable
- public struct Components
+ public struct Components: @unchecked Sendable
- public static var `default`
+ public nonisolated static var `default`
- public struct UnreadThread
+ public struct UnreadThread: Sendable
- public struct UnreadCount: Decodable, Equatable
+ public struct UnreadCount: Decodable, Equatable, Sendable
- public struct AttachmentAction: Codable, Hashable
+ public struct AttachmentAction: Codable, Hashable, Sendable
- public enum ActionType: String, Codable
+ public enum ActionType: String, Codable, Sendable
- public enum ActionStyle: String, Codable
+ public enum ActionStyle: String, Codable, Sendable
- public final class UnsupportedUploadableAttachmentType: ClientError
+ public final class UnsupportedUploadableAttachmentType: ClientError, @unchecked Sendable
- public enum MessageOrdering
+ public enum MessageOrdering: Sendable
- public struct ChatThread
+ public struct ChatThread: Sendable
- public protocol LogDestination
+ public protocol LogDestination: Sendable
- public final class WebSocket: ClientError
+ public final class WebSocket: ClientError, @unchecked Sendable
- public class MessageSearch
+ public class MessageSearch: @unchecked Sendable
- @MainActor public lazy var state: MessageSearchState
+ @MainActor public var state: MessageSearchState
- public protocol CDNClient
+ public protocol CDNClient: Sendable
- public protocol SortingKey: Encodable
+ public protocol SortingKey: Encodable, Sendable
- public protocol AudioPlaying: AnyObject
+ public protocol AudioPlaying: AnyObject, Sendable
public enum LogConfig
- public static var identifier
+ public nonisolated static var identifier
- public static var level: LogLevel
+ public nonisolated static var level: LogLevel
- public static var dateFormatter: DateFormatter
+ public nonisolated static var dateFormatter: DateFormatter
- public static var formatters
+ public nonisolated static var formatters
- public static var showDate
+ public nonisolated static var showDate
- public static var showLevel
+ public nonisolated static var showLevel
- public static var showIdentifier
+ public nonisolated static var showIdentifier
- public static var showThreadName
+ public nonisolated static var showThreadName
- public static var showFileName
+ public nonisolated static var showFileName
- public static var showLineNumber
+ public nonisolated static var showLineNumber
- public static var showFunctionName
+ public nonisolated static var showFunctionName
- public static var subsystems: LogSubsystem
+ public nonisolated static var subsystems: LogSubsystem
- public static var destinationTypes: [LogDestination.Type]
+ public nonisolated static var destinationTypes: [LogDestination.Type]
- public final class ReactionList
+ public final class ReactionList: Sendable
- @MainActor public lazy var state: ReactionListState
+ @MainActor public var state: ReactionListState
- public class ScheduledStreamTimer: StreamTimer
+ public class ScheduledStreamTimer: StreamTimer, @unchecked Sendable
- public var onChange: (() -> Void)?
+ public var onChange: (@Sendable() -> Void)?
- public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public class CurrentChatUser: ChatUser
+ public class CurrentChatUser: ChatUser, @unchecked Sendable
extension VideoAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public struct Alignment: Equatable
+ public struct Alignment: Equatable, Sendable
- public final class MissingTokenProvider: ClientError
+ public final class MissingTokenProvider: ClientError, @unchecked Sendable |
6194763
to
1a3c98b
Compare
Public Interface- public protocol DataControllerStateDelegate: AnyObject
+ @MainActor public protocol DataControllerStateDelegate: AnyObject
- public struct UploadedAttachment
+ public struct UploadedAttachment: Sendable
- public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- open class NukeImageProcessor: ImageProcessor
+ open class NukeImageProcessor: ImageProcessor, @unchecked Sendable
- public struct UnreadChannelByType
+ public struct UnreadChannelByType: Sendable
- public final class AudioAnalysisEngineError: ClientError
+ public final class AudioAnalysisEngineError: ClientError, @unchecked Sendable
- public protocol SortingKey: Encodable
+ public protocol SortingKey: Encodable, Sendable
- public class PollController: DataController, DelegateCallable, DataStoreProvider
+ public class PollController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func castPollVote(answerText: String?,optionId: String?,completion: ((Error?) -> Void)? = nil)
+ public func castPollVote(answerText: String?,optionId: String?,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removePollVote(voteId: String,completion: ((Error?) -> Void)? = nil)
+ public func removePollVote(voteId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func closePoll(completion: ((Error?) -> Void)? = nil)
+ public func closePoll(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct ThreadRead: Equatable
+ public struct ThreadRead: Equatable, Sendable
- public struct Distribution: Equatable
+ public struct Distribution: Equatable, Sendable
- public protocol ChatMessageActionsVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageActionsVCDelegate: AnyObject
- public protocol ChatMessageListScrollOverlayDataSource: AnyObject
+ @MainActor public protocol ChatMessageListScrollOverlayDataSource: AnyObject
- public enum AttachmentFileType: String, Codable, Equatable, CaseIterable
+ public enum AttachmentFileType: String, Codable, Equatable, CaseIterable, Sendable
- public final class WebSocket: ClientError
+ public final class WebSocket: ClientError, @unchecked Sendable
- public enum MessageOrdering
+ public enum MessageOrdering: Sendable
open class ComposerVC: _ViewController, ThemeProvider, UITextViewDelegate, UIImagePickerControllerDelegate, UIDocumentPickerDelegate, UINavigationControllerDelegate, InputTextViewClipboardAttachmentDelegate, VoiceRecordingDelegate
- open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: Encodable?)throws
+ open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: (Encodable & Sendable)?)throws
- public struct Sorting: Encodable, CustomStringConvertible
+ public struct Sorting: Encodable, CustomStringConvertible, Sendable
- public enum MessageType: String, Codable
+ public enum MessageType: String, Codable, Sendable
- public struct TypingIndicatorPrivacySettings
+ public struct TypingIndicatorPrivacySettings: Sendable
- public struct Poll: Equatable
+ public struct Poll: Equatable, Sendable
- public class MessageReminderDeletedEvent: Event
+ public final class MessageReminderDeletedEvent: Event
- public class ConsoleLogDestination: BaseLogDestination
+ public class ConsoleLogDestination: BaseLogDestination, @unchecked Sendable
- public struct ChatMessage
+ public struct ChatMessage: Sendable
- public protocol Event
+ public protocol Event: Sendable
- public struct AttachmentAction: Codable, Hashable
+ public struct AttachmentAction: Codable, Hashable, Sendable
- public enum ActionType: String, Codable
+ public enum ActionType: String, Codable, Sendable
- public enum ActionStyle: String, Codable
+ public enum ActionStyle: String, Codable, Sendable
- public protocol StreamModelsTransformer
+ public protocol StreamModelsTransformer: Sendable
- public struct UnreadThread
+ public struct UnreadThread: Sendable
- @propertyWrapper public class Atomic
+ @propertyWrapper public class Atomic: @unchecked Sendable
- public class DraftDeletedEvent: Event
+ public final class DraftDeletedEvent: Event
- public struct PushNotificationType: Equatable
+ public struct PushNotificationType: Equatable, Sendable
- public static var messageNew: PushNotificationType
+ public static let messageNew: PushNotificationType
- public static var messageReminderDue: PushNotificationType
+ public static let messageReminderDue: PushNotificationType
- public static var messageUpdated: PushNotificationType
+ public static let messageUpdated: PushNotificationType
- public static var reactionNew: PushNotificationType
+ public static let reactionNew: PushNotificationType
- public class MessageReminderDueEvent: Event
+ public final class MessageReminderDueEvent: Event
- public struct Token: Decodable, Equatable, ExpressibleByStringLiteral
+ public struct Token: Decodable, Equatable, ExpressibleByStringLiteral, Sendable
- public struct AudioPlaybackRate: Comparable, Equatable
+ public struct AudioPlaybackRate: Comparable, Equatable, Sendable
- public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public final class ReconnectionTimeout: ClientError
+ public final class ReconnectionTimeout: ClientError, @unchecked Sendable
- public struct ChannelQuery: Encodable
+ public struct ChannelQuery: Encodable, Sendable
- public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
+ @MainActor public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
- public struct ThreadParticipant: Equatable
+ public struct ThreadParticipant: Equatable, Sendable
- public struct SharedLocation: Equatable
+ public struct SharedLocation: Equatable, Sendable
- public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public final class PollVoteAlreadyExists: ClientError
+ public final class PollVoteAlreadyExists: ClientError, @unchecked Sendable
- public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
- open class BaseLogDestination: LogDestination
+ open class BaseLogDestination: LogDestination, @unchecked Sendable
- public final class Unknown: ClientError
+ public final class Unknown: ClientError, @unchecked Sendable
- public protocol KeyboardHandler
+ @MainActor public protocol KeyboardHandler
open class VoiceRecordingVC: _ViewController, ComponentsProvider, AppearanceProvider, AudioRecordingDelegate, AudioPlayingDelegate, UIGestureRecognizerDelegate
- public struct State: RawRepresentable, Equatable
+ public struct State: RawRepresentable, Equatable, Sendable
- public static var idle
+ public static let idle
- public static var showingTip
+ public static let showingTip
- public static var recording
+ public static let recording
- public static var locked
+ public static let locked
- public static var preview
+ public static let preview
- public struct Action: RawRepresentable, Equatable
+ public struct Action: RawRepresentable, Equatable, Sendable
- public static var tapRecord
+ public static let tapRecord
- public static var showTip
+ public static let showTip
- public static var beginRecording
+ public static let beginRecording
- public static var touchUp
+ public static let touchUp
- public static var cancel
+ public static let cancel
- public static var lock
+ public static let lock
- public static var stop
+ public static let stop
- public static var discard
+ public static let discard
- public static var send
+ public static let send
- public static var confirm
+ public static let confirm
- public static var publishMessage
+ public static let publishMessage
- public static var play
+ public static let play
- public static var pause
+ public static let pause
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
- public protocol AttachmentUploader
+ public protocol AttachmentUploader: Sendable
- public protocol AudioRecordingDelegate: AnyObject
+ @MainActor public protocol AudioRecordingDelegate: AnyObject
- public struct TranslationLanguage: Hashable
+ public struct TranslationLanguage: Hashable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatChannelSearchVC: ChatChannelListSearchVC
- public var didSelectChannel: ((ChatChannel) -> Void)?
+ public var didSelectChannel: (@MainActor(ChatChannel) -> Void)?
- public struct UserListQuery: Encodable
+ public struct UserListQuery: Encodable, Sendable
- public final class MissingTokenProvider: ClientError
+ public final class MissingTokenProvider: ClientError, @unchecked Sendable
- public protocol Customizable
+ @MainActor public protocol Customizable
- public class ChannelList
+ public class ChannelList: @unchecked Sendable
- @MainActor public lazy var state: ChannelListState
+ @MainActor public var state: ChannelListState
- public protocol ChatMessageContentViewDelegate: AnyObject
+ @MainActor public protocol ChatMessageContentViewDelegate: AnyObject
- public struct LocalCaching: Equatable
+ public struct LocalCaching: Equatable, Sendable
- public struct MessagePinDetails
+ public struct MessagePinDetails: Sendable
- public enum PinnedMessagesPagination: Hashable
+ public enum PinnedMessagesPagination: Hashable, Sendable
- public struct DraftListQuery: Encodable
+ public struct DraftListQuery: Encodable, Sendable
- public final class Unexpected: ClientError
+ public final class Unexpected: ClientError, @unchecked Sendable
- public struct Components
+ public struct Components: @unchecked Sendable
- public static var `default`
+ public nonisolated static var `default`
- public struct EmptyResponse: Decodable
+ public struct EmptyResponse: Decodable, Sendable
- public struct MessageReminder
+ public struct MessageReminder: Sendable
- public protocol SendMessageInterceptorFactory
+ public protocol SendMessageInterceptorFactory: Sendable
- public protocol ChatMessageListVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageListVCDelegate: AnyObject
- open class StreamAudioQueuePlayer: StreamAudioPlayer
+ open class StreamAudioQueuePlayer: StreamAudioPlayer, @unchecked Sendable
- public struct ChatChannel
+ public struct ChatChannel: Sendable
- public final class IgnoredEventType: ClientError
+ public final class IgnoredEventType: ClientError, @unchecked Sendable
- public protocol ChatMessageListVCDataSource: AnyObject
+ @MainActor public protocol ChatMessageListVCDataSource: AnyObject
- public protocol AudioPlayingDelegate: AnyObject
+ @MainActor public protocol AudioPlayingDelegate: AnyObject
- public protocol FilterValue: Encodable
+ public protocol FilterValue: Encodable, Sendable
- public struct AnyAttachmentPayload
+ public struct AnyAttachmentPayload: Sendable
- public let payload: Encodable
+ public let payload: (Encodable & Sendable)
- public protocol ChatChannelAvatarViewSwiftUIView: View
+ @MainActor public protocol ChatChannelAvatarViewSwiftUIView: View
extension ImageAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider
+ public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreVotes(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadMoreVotes(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public class CurrentChatUser: ChatUser
+ public class CurrentChatUser: ChatUser, @unchecked Sendable
- public class ChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct ReadReceiptsPrivacySettings
+ public struct ReadReceiptsPrivacySettings: Sendable
public enum LogConfig
- public static var identifier
+ public nonisolated static var identifier
- public static var level: LogLevel
+ public nonisolated static var level: LogLevel
- public static var dateFormatter: DateFormatter
+ public nonisolated static var dateFormatter: DateFormatter
- public static var formatters
+ public nonisolated static var formatters
- public static var showDate
+ public nonisolated static var showDate
- public static var showLevel
+ public nonisolated static var showLevel
- public static var showIdentifier
+ public nonisolated static var showIdentifier
- public static var showThreadName
+ public nonisolated static var showThreadName
- public static var showFileName
+ public nonisolated static var showFileName
- public static var showLineNumber
+ public nonisolated static var showLineNumber
- public static var showFunctionName
+ public nonisolated static var showFunctionName
- public static var subsystems: LogSubsystem
+ public nonisolated static var subsystems: LogSubsystem
- public static var destinationTypes: [LogDestination.Type]
+ public nonisolated static var destinationTypes: [LogDestination.Type]
extension VideoAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
- public protocol QuotedChatMessageViewSwiftUIView: View
+ @MainActor public protocol QuotedChatMessageViewSwiftUIView: View
- public final class ConnectionNotSuccessful: ClientError
+ public final class ConnectionNotSuccessful: ClientError, @unchecked Sendable
- public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: ((Result<ChatMessage, Error>) -> Void)? = nil)
+ public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: (@MainActor @Sendable(Result<ChatMessage, Error>) -> Void)? = nil)
- public func deleteMessage(hard: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func deleteMessage(hard: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(limit: Int? = nil,_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(limit: Int? = nil,_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextReactions(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReactions(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping (Result<[ChatMessageReaction], Error>) -> Void)
+ public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping @MainActor @Sendable(Result<[ChatMessageReaction], Error>) -> Void)
- public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unflag(completion: ((Error?) -> Void)? = nil)
+ public func unflag(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteReaction(_ type: MessageReactionType,completion: ((Error?) -> Void)? = nil)
+ public func deleteReaction(_ type: MessageReactionType,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(_ pinning: MessagePinning,completion: ((Error?) -> Void)? = nil)
+ public func pin(_ pinning: MessagePinning,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(completion: ((Error?) -> Void)? = nil)
+ public func unpin(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping (Result<ChatMessageAttachment<Payload>, Error>) -> Void)
+ public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping @MainActor @Sendable(Result<ChatMessageAttachment<Payload>, Error>) -> Void)
- public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func restartFailedAttachmentUploading(with id: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func restartFailedAttachmentUploading(with id: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func resendMessage(completion: ((Error?) -> Void)? = nil)
+ public func resendMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: ((Error?) -> Void)? = nil)
+ public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func translate(to language: TranslationLanguage,completion: ((Error?) -> Void)? = nil)
+ public func translate(to language: TranslationLanguage,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadRead(completion: ((Error?) -> Void)? = nil)
+ public func markThreadRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadUnread(completion: ((Error?) -> Void)? = nil)
+ public func markThreadUnread(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func stopLiveLocationSharing(completion: ((Result<SharedLocation, Error>) -> Void)? = nil)
+ public func stopLiveLocationSharing(completion: (@MainActor @Sendable(Result<SharedLocation, Error>) -> Void)? = nil)
- public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftReply(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftReply(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftReply(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftReply(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createReminder(remindAt: Date? = nil,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func createReminder(remindAt: Date? = nil,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func updateReminder(remindAt: Date?,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func updateReminder(remindAt: Date?,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func deleteReminder(completion: ((Error?) -> Void)? = nil)
+ public func deleteReminder(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(text: String,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(text: String,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: MessageSearchQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: MessageSearchQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextMessages(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct ComposerState: RawRepresentable, Equatable
+ public struct ComposerState: RawRepresentable, Equatable, Sendable
- public static var new
+ public static let new
- public static var edit
+ public static let edit
- public static var quote
+ public static let quote
- public static var recording
+ public static let recording
- public static var recordingLocked
+ public static let recordingLocked
- public struct PollOption: Hashable, Equatable
+ public struct PollOption: Hashable, Equatable, Sendable
- public protocol ImageCDN
+ public protocol ImageCDN: Sendable
- public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- @resultBuilder public struct ViewContainerBuilder
+ @MainActor @resultBuilder public struct ViewContainerBuilder
- public struct QueryOptions: OptionSet, Encodable
+ public struct QueryOptions: OptionSet, Encodable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatMessageSearchVC: ChatChannelListSearchVC, ChatMessageSearchControllerDelegate
- public var didSelectMessage: ((ChatChannel, ChatMessage) -> Void)?
+ public var didSelectMessage: (@MainActor(ChatChannel, ChatMessage) -> Void)?
- public struct ChatMessageReactionGroup: Equatable
+ public struct ChatMessageReactionGroup: Equatable, Sendable
- open class StreamVideoLoader: VideoLoading
+ open class StreamVideoLoader: VideoLoading, @unchecked Sendable
- open func loadPreviewForVideo(at url: URL,completion: @escaping (Result<UIImage, Error>) -> Void)
+ open func loadPreviewForVideo(at url: URL,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)
extension VoiceRecordingAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public protocol AppearanceProvider: AnyObject
+ @MainActor public protocol AppearanceProvider: AnyObject
@available(iOSApplicationExtension, unavailable) open class ChatMessageListVC: _ViewController, ThemeProvider, ChatMessageListScrollOverlayDataSource, ChatMessageActionsVCDelegate, ChatMessageContentViewDelegate, GalleryContentViewDelegate, GiphyActionContentViewDelegate, FileActionContentViewDelegate, LinkPreviewViewDelegate, PollAttachmentViewInjectorDelegate, UITableViewDataSource, UITableViewDelegate, UIGestureRecognizerDelegate, VoiceRecordingAttachmentPresentationViewDelegate
- open func jumpToUnreadMessage(animated: Bool = true,onHighlight: ((IndexPath) -> Void)? = nil)
+ open func jumpToUnreadMessage(animated: Bool = true,onHighlight: (@Sendable(IndexPath) -> Void)? = nil)
- public class ScheduledStreamTimer: StreamTimer
+ public class ScheduledStreamTimer: StreamTimer, @unchecked Sendable
- public var onChange: (() -> Void)?
+ public var onChange: (@Sendable() -> Void)?
- public struct AttachmentId: Hashable
+ public struct AttachmentId: Hashable, Sendable
- public struct ReactionListQuery: Encodable
+ public struct ReactionListQuery: Encodable, Sendable
- public final class ClientHasBeenDeallocated: ClientError
+ public final class ClientHasBeenDeallocated: ClientError, @unchecked Sendable
- public struct PollFeatureType: Equatable
+ public struct PollFeatureType: Equatable, Sendable
- public static var multipleVotes
+ public static let multipleVotes
- public static var anonymous
+ public static let anonymous
- public static var suggestions
+ public static let suggestions
- public static var comments
+ public static let comments
- public final class InvalidChannelId: ClientError
+ public final class InvalidChannelId: ClientError, @unchecked Sendable
- @available(iOSApplicationExtension, unavailable) public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
+ @available(iOSApplicationExtension, unavailable) @MainActor public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
open class ChatMessageAttachmentPreviewVC: _ViewController, WKNavigationDelegate, AppearanceProvider
- public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
- public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
- public enum LocalAttachmentDownloadState: Hashable
+ public enum LocalAttachmentDownloadState: Hashable, Sendable
- open class StreamAudioSessionConfigurator: AudioSessionConfiguring
+ open class StreamAudioSessionConfigurator: AudioSessionConfiguring, @unchecked Sendable
- open func requestRecordPermission(_ completionHandler: @escaping (Bool) -> Void)
+ open func requestRecordPermission(_ completionHandler: @escaping @Sendable(Bool) -> Void)
- public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: ((Error?) -> Void)? = nil)
+ public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func muteChannel(expiration: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func muteChannel(expiration: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unmuteChannel(completion: ((Error?) -> Void)? = nil)
+ public func unmuteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func archive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func archive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unarchive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unarchive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteChannel(completion: ((Error?) -> Void)? = nil)
+ public func deleteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func hideChannel(clearHistory: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func hideChannel(clearHistory: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func showChannel(completion: ((Error?) -> Void)? = nil)
+ public func showChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftMessage(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftMessage(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftMessage(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: ((Result<MessageId, Error>) -> Void)?)
+ public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)?)
- public func deletePoll(pollId: String,completion: ((Error?) -> Void)? = nil)
+ public func deletePoll(pollId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func inviteMembers(userIds: Set<UserId>,completion: ((Error?) -> Void)? = nil)
+ public func inviteMembers(userIds: Set<UserId>,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func acceptInvite(message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func acceptInvite(message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func rejectInvite(completion: ((Error?) -> Void)? = nil)
+ public func rejectInvite(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markRead(completion: ((Error?) -> Void)? = nil)
+ public func markRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markUnread(from messageId: MessageId,completion: ((Result<ChatChannel, Error>) -> Void)? = nil)
+ public func markUnread(from messageId: MessageId,completion: (@MainActor @Sendable(Result<ChatChannel, Error>) -> Void)? = nil)
- public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping (Error?) -> Void)
+ public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping (Error?) -> Void)
+ public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func enableSlowMode(cooldownDuration: Int,completion: ((Error?) -> Void)? = nil)
+ public func enableSlowMode(cooldownDuration: Int,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disableSlowMode(completion: ((Error?) -> Void)? = nil)
+ public func disableSlowMode(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func startWatching(isInRecoveryMode: Bool,completion: ((Error?) -> Void)? = nil)
+ public func startWatching(isInRecoveryMode: Bool,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func stopWatching(completion: ((Error?) -> Void)? = nil)
+ public func stopWatching(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func freezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func freezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unfreezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func unfreezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func pin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unpin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil,completion: @escaping ((Result<UploadedAttachment, Error>) -> Void))
+ public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil,completion: @escaping @MainActor @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public func enrichUrl(_ url: URL,completion: @escaping (Result<LinkAttachmentPayload, Error>) -> Void)
+ public func enrichUrl(_ url: URL,completion: @escaping @MainActor @Sendable(Result<LinkAttachmentPayload, Error>) -> Void)
- public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping (Result<[ChatMessage], Error>) -> Void)
+ public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping @MainActor @Sendable(Result<[ChatMessage], Error>) -> Void)
- public func deleteFile(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteFile(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteImage(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteImage(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct PollVoteListQuery: Encodable
+ public struct PollVoteListQuery: Encodable, Sendable
open class WaveformView: _View, ThemeProvider
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
- public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(term: String?,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(term: String?,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: UserListQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: UserListQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextUsers(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextUsers(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- extension PollController: EventsControllerDelegate
+ extension PollController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollController
+ @Published public private var poll: Poll?
+ @Published public private var ownVotes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
- open class AttachmentViewInjector
+ @MainActor open class AttachmentViewInjector
- public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public protocol EventsControllerDelegate: AnyObject
+ @MainActor public protocol EventsControllerDelegate: AnyObject
- public class DraftUpdatedEvent: Event
+ public final class DraftUpdatedEvent: Event
- public protocol AudioSessionFeedbackGenerator
+ @MainActor public protocol AudioSessionFeedbackGenerator
open class ChatChannelAvatarView: _View, ThemeProvider, SwiftUIRepresentable
- open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping ([UIImage], ChannelId)
+ open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping @Sendable([UIImage], ChannelId)
- public struct UserPrivacySettings
+ public struct UserPrivacySettings: Sendable
- public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct ChatMessageReaction: Hashable
+ public struct ChatMessageReaction: Hashable, Sendable
- public final class MissingToken: ClientError
+ public final class MissingToken: ClientError, @unchecked Sendable
- extension PollVoteListController: EventsControllerDelegate
+ extension PollVoteListController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: any Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollVoteListController
+ @Published public private var votes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
- public struct AttachmentDownloadingState: Hashable
+ public struct AttachmentDownloadingState: Hashable, Sendable
- public struct UserInfo
+ public struct UserInfo: Sendable
- public protocol ChatConnectionControllerDelegate: AnyObject
+ @MainActor public protocol ChatConnectionControllerDelegate: AnyObject
- open class SwipeToReplyGestureHandler
+ @MainActor open class SwipeToReplyGestureHandler
- public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator = .init(style: .medium))
+ public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator? = nil)
public struct StreamAssetPropertyLoader: AssetPropertyLoading
- public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping (Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
+ public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping @Sendable(Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
- public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
- public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- open class StreamImageCDN: ImageCDN
+ open class StreamImageCDN: ImageCDN, @unchecked Sendable
- public static var streamCDNURL
+ nonisolated public static var streamCDNURL
- public struct Mode
+ public struct Mode: Sendable
- public static var clip
+ public static let clip
- public static var fill
+ public static let fill
- public static var scale
+ public static let scale
- public final class UnsupportedUploadableAttachmentType: ClientError
+ public final class UnsupportedUploadableAttachmentType: ClientError, @unchecked Sendable
- public protocol SwipeableViewDelegate: AnyObject
+ @MainActor public protocol SwipeableViewDelegate: AnyObject
- public struct Pagination: Encodable, Equatable
+ public struct Pagination: Encodable, Equatable, Sendable
- public struct AudioRecordingState: Hashable
+ public struct AudioRecordingState: Hashable, Sendable
- public class ChatChannelMember: ChatUser
+ public class ChatChannelMember: ChatUser, @unchecked Sendable
- public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct QuotedAvatarAlignment: RawRepresentable, Equatable
+ public struct QuotedAvatarAlignment: RawRepresentable, Equatable, Sendable
- public struct AnyAttachmentUpdater
+ public struct AnyAttachmentUpdater: Sendable
- public struct MessagePinning: Equatable
+ public struct MessagePinning: Equatable, Sendable
- public struct MessagesPagination: Encodable, Equatable
+ public struct MessagesPagination: Encodable, Equatable, Sendable
open class PollAllOptionsListVC: _ViewController, ThemeProvider, PollControllerDelegate, UITableViewDataSource, UITableViewDelegate
- public struct Section: RawRepresentable, Equatable
+ public struct Section: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
public enum StreamRuntimeCheck
- public static var assertionsEnabled
+ public nonisolated static var assertionsEnabled
- public static var _isDatabasePrefetchingEnabled
+ public nonisolated static var _isDatabasePrefetchingEnabled
public struct TypingSuggester
- public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
+ @MainActor public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
- public enum LocalReactionState: String
+ public enum LocalReactionState: String, Sendable
- public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextChannels(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextChannels(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: ((Error?) -> Void)? = nil)
+ @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct LogSubsystem: OptionSet
+ public struct LogSubsystem: OptionSet, Sendable
- public indirect enum RawJSON: Codable, Hashable
+ public indirect enum RawJSON: Codable, Hashable, Sendable
- public class HealthCheckEvent: ConnectionEvent, EventDTO
+ public final class HealthCheckEvent: ConnectionEvent, EventDTO, Sendable
- public class Chat
+ public class Chat: @unchecked Sendable
- @MainActor public lazy var state: ChatState
+ @MainActor public var state: ChatState
- public func subscribe(toEvent event: E.Type,handler: @escaping (E) -> Void)-> AnyCancellable
+ public func subscribe(toEvent event: E.Type,handler: @escaping @Sendable(E) -> Void)-> AnyCancellable
- public func subscribe(_ handler: @escaping (Event) -> Void)-> AnyCancellable
+ public func subscribe(_ handler: @escaping @Sendable(Event) -> Void)-> AnyCancellable
- public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil)async throws -> UploadedAttachment
+ public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil)async throws -> UploadedAttachment
- public struct NewLocationInfo
+ public struct NewLocationInfo: Sendable
- public struct BaseURL: CustomStringConvertible
+ public struct BaseURL: CustomStringConvertible, Sendable
- public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider
+ public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var connectionStatus: ConnectionStatus
- public var connectionStatus: ConnectionStatus
+ public let client: ChatClient
- public let client: ChatClient
- public struct MessageSearchQuery: Encodable
+ public struct MessageSearchQuery: Encodable, Sendable
- public protocol AudioQueuePlayerDatasource: AnyObject
+ @MainActor public protocol AudioQueuePlayerDatasource: AnyObject
- public final class ReactionList
+ public final class ReactionList: Sendable
- @MainActor public lazy var state: ReactionListState
+ @MainActor public var state: ReactionListState
- public struct AudioPlaybackState: Equatable, CustomStringConvertible
+ public struct AudioPlaybackState: Equatable, CustomStringConvertible, Sendable
public struct DefaultAttachmentPreviewProvider: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
@available(iOSApplicationExtension, unavailable) open class ChatThreadVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatMessageControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousReplies(completion: @escaping (Error?) -> Void)
+ open func loadPreviousReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextReplies(completion: @escaping (Error?) -> Void)
+ open func loadNextReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @Sendable(Error?) -> Void)
- public class ClientError: Error, CustomStringConvertible
+ public class ClientError: Error, CustomStringConvertible, @unchecked Sendable
- public protocol CDNClient
+ public protocol CDNClient: Sendable
- public struct AudioPlaybackContext: Equatable
+ public struct AudioPlaybackContext: Equatable, Sendable
- public struct PollCreationSection: RawRepresentable, Equatable
+ public struct PollCreationSection: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- public static var features
+ public static let features
- public class EventsController: Controller, DelegateCallable
+ public class EventsController: Controller, DelegateCallable, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var delegate: EventsControllerDelegate?
- public var delegate: EventsControllerDelegate?
- public struct ImageLoaderOptions
+ public struct ImageLoaderOptions: Sendable
- public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public protocol SwiftUIRepresentable: AnyObject
+ @MainActor public protocol SwiftUIRepresentable: AnyObject
- public protocol CurrentChatUserControllerDelegate: AnyObject
+ @MainActor public protocol CurrentChatUserControllerDelegate: AnyObject
- public class ChatClient
+ public class ChatClient: @unchecked Sendable
- public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectUser(userInfo: UserInfo,token: Token,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,token: Token,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectGuestUser(userInfo: UserInfo,completion: ((Error?) -> Void)? = nil)
+ public func connectGuestUser(userInfo: UserInfo,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectAnonymousUser(completion: ((Error?) -> Void)? = nil)
+ public func connectAnonymousUser(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disconnect(completion: @escaping () -> Void)
+ public func disconnect(completion: @escaping @MainActor @Sendable() -> Void)
- public func logout(removeDevice: Bool = true,completion: @escaping () -> Void)
+ public func logout(removeDevice: Bool = true,completion: @escaping @MainActor @Sendable() -> Void)
- public func loadAppSettings(completion: ((Result<AppSettings, Error>) -> Void)? = nil)
+ public func loadAppSettings(completion: (@Sendable(Result<AppSettings, Error>) -> Void)? = nil)
- public final class TooManyFailedTokenRefreshAttempts: ClientError
+ public final class TooManyFailedTokenRefreshAttempts: ClientError, @unchecked Sendable
- public protocol ComponentsProvider: AnyObject
+ @MainActor public protocol ComponentsProvider: AnyObject
- public final class InvalidToken: ClientError
+ public final class InvalidToken: ClientError, @unchecked Sendable
@available(iOSApplicationExtension, unavailable) open class ChatChannelVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatChannelControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousMessages(completion: @escaping (Error?) -> Void)
+ open func loadPreviousMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextMessages(completion: @escaping (Error?) -> Void)
+ open func loadNextMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @Sendable(Error?) -> Void)
extension FileAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public final class UserList
+ public final class UserList: Sendable
- @MainActor public lazy var state: UserListState
+ @MainActor public var state: UserListState
- public struct APIKey: Equatable
+ public struct APIKey: Equatable, Sendable
public struct LateResize: ImageProcessing
- @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping () -> CGSize)
+ @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping @Sendable() -> CGSize)
- public init(id: String,sizeProvider: @escaping () -> CGSize)
+ public init(id: String,sizeProvider: @escaping @Sendable() -> CGSize)
- open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate
+ open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate, @unchecked Sendable
- public class MessageSearch
+ public class MessageSearch: @unchecked Sendable
- @MainActor public lazy var state: MessageSearchState
+ @MainActor public var state: MessageSearchState
open class AudioQueuePlayerNextItemProvider
- public struct LookUpScope: RawRepresentable, Equatable
+ public struct LookUpScope: RawRepresentable, Equatable, Sendable
- public struct AITypingState: ExpressibleByStringLiteral, Hashable
+ public struct AITypingState: ExpressibleByStringLiteral, Hashable, Sendable
- public final class MemberList
+ public final class MemberList: Sendable
- @MainActor public lazy var state: MemberListState
+ @MainActor public var state: MemberListState
- public struct MuteDetails: Equatable
+ public struct MuteDetails: Equatable, Sendable
- public struct ChatClientConfig
+ public struct ChatClientConfig: Sendable
- public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible
+ public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible, Sendable
- public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public class MessageReminderUpdatedEvent: Event
+ public final class MessageReminderUpdatedEvent: Event
- public struct BlockedUserDetails
+ public struct BlockedUserDetails: Sendable
- public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
- public struct ThreadQuery: Encodable
+ public struct ThreadQuery: Encodable, Sendable
- public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct MessageModerationDetails
+ public struct MessageModerationDetails: Sendable
- public struct UnreadCount: Decodable, Equatable
+ public struct UnreadCount: Decodable, Equatable, Sendable
- public enum LocalAttachmentState: Hashable
+ public enum LocalAttachmentState: Hashable, Sendable
- public enum BanEnabling
+ public enum BanEnabling: Sendable
- public enum ChannelType: Codable, Hashable
+ public enum ChannelType: Codable, Hashable, Sendable
- public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable
+ public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable, Sendable
- public protocol ChatChannelUnreadCountViewSwiftUIView: View
+ @MainActor public protocol ChatChannelUnreadCountViewSwiftUIView: View
- public protocol AssetPropertyLoading
+ public protocol AssetPropertyLoading: Sendable
- public struct AssetProperty: CustomStringConvertible
+ public struct AssetProperty: CustomStringConvertible, Sendable
- public struct AttachmentFile: Codable, Hashable
+ public struct AttachmentFile: Codable, Hashable, Sendable
- public static let sizeFormatter
+ public nonisolated static let sizeFormatter
- public class MessageReminderCreatedEvent: Event
+ public final class MessageReminderCreatedEvent: Event
- public final class ConnectedUser
+ public final class ConnectedUser: Sendable
- @MainActor public lazy var state: ConnectedUserState
+ @MainActor public var state: ConnectedUserState
- public struct AppSettings
+ public struct AppSettings: Sendable
- public struct UploadConfig
+ public struct UploadConfig: Sendable
- public enum LogLevel: Int
+ public enum LogLevel: Int, Sendable
- public struct VotingVisibility: RawRepresentable, Equatable
+ public struct VotingVisibility: RawRepresentable, Equatable, Sendable
- public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public protocol VoiceRecordingDelegate: AnyObject
+ @MainActor public protocol VoiceRecordingDelegate: AnyObject
- public class StreamAttachmentUploader: AttachmentUploader
+ public class StreamAttachmentUploader: AttachmentUploader, @unchecked Sendable
- public func upload(_ attachment: AnyChatMessageAttachment,progress: ((Double) -> Void)?,completion: @escaping (Result<UploadedAttachment, Error>) -> Void)
+ public func upload(_ attachment: AnyChatMessageAttachment,progress: (@Sendable(Double) -> Void)?,completion: @escaping @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public enum LocalMessageState: String
+ public enum LocalMessageState: String, Sendable
- public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
open class NukeImageLoader: ImageLoading
- @discardableResult open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: ((Result<UIImage, Error>) -> Void)?)-> Cancellable?
+ @discardableResult @MainActor open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: (@MainActor @Sendable(Result<UIImage, Error>) -> Void)?)-> Cancellable?
- @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping ((Result<UIImage, Error>) -> Void))-> Cancellable?
+ @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)-> Cancellable?
- open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping (([Result<UIImage, Error>]) -> Void))
+ open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping @MainActor @Sendable([Result<UIImage, Error>]) -> Void)
- public struct Appearance
+ public struct Appearance: @unchecked Sendable
- public var localizationProvider: (_ key: String, _ table: String) -> String
+ public var localizationProvider: @Sendable(_ key: String, _ table: String) -> String
- public final class MissingLocalStorageURL: ClientError
+ public final class MissingLocalStorageURL: ClientError, @unchecked Sendable
- public struct AudioAnalysisEngine
+ public struct AudioAnalysisEngine: Sendable
- public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping (Result<[Float], Error>) -> Void)
+ public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping @Sendable(Result<[Float], Error>) -> Void)
- public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable
+ public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable, Sendable
- public class ChatUser
+ public class ChatUser: @unchecked Sendable
- public final class ConnectionWasNotInitiated: ClientError
+ public final class ConnectionWasNotInitiated: ClientError, @unchecked Sendable
- public protocol ImageProcessor
+ public protocol ImageProcessor: Sendable
- public protocol MaskProviding
+ @MainActor public protocol MaskProviding
- public struct MessageDeliveryStatus: RawRepresentable, Hashable
+ public struct MessageDeliveryStatus: RawRepresentable, Hashable, Sendable
- public protocol CustomEventPayload: Codable, Hashable
+ public protocol CustomEventPayload: Codable, Hashable, Sendable
- public struct MessageModerationAction: RawRepresentable, Equatable
+ public struct MessageModerationAction: RawRepresentable, Equatable, Sendable
- public final class ClientIsNotInActiveMode: ClientError
+ public final class ClientIsNotInActiveMode: ClientError, @unchecked Sendable
- public struct DraftMessage
+ public struct DraftMessage: Sendable
- public struct ChannelUnreadCount: Decodable, Equatable
+ public struct ChannelUnreadCount: Decodable, Equatable, Sendable
public struct AIIndicatorStopEvent: CustomEventPayload, Event
- public static var eventType: EventType
+ public static let eventType: EventType
- public struct ChannelWatcherListQuery: Encodable
+ public struct ChannelWatcherListQuery: Encodable, Sendable
- public struct Command: Codable, Hashable
+ public struct Command: Codable, Hashable, Sendable
- open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate
+ open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate, @unchecked Sendable
- open func beginRecording(_ completionHandler: @escaping (() -> Void))
+ open func beginRecording(_ completionHandler: @escaping @Sendable() -> Void)
- public static let `default`
+ nonisolated public static let `default`
- public enum PaginationParameter: Encodable, Hashable
+ public enum PaginationParameter: Encodable, Hashable, Sendable
- public struct LocationInfo
+ public struct LocationInfo: Sendable
- public struct AttachmentUploadingState: Hashable
+ public struct AttachmentUploadingState: Hashable, Sendable
- public protocol LogDestination
+ public protocol LogDestination: Sendable
- public protocol AudioPlaying: AnyObject
+ public protocol AudioPlaying: AnyObject, Sendable
public class ChatRemoteNotificationHandler
- public func handleNotification(completion: @escaping (ChatPushNotificationContent) -> Void)-> Bool
+ public func handleNotification(completion: @escaping @Sendable(ChatPushNotificationContent) -> Void)-> Bool
- public struct Device: Codable, Equatable
+ public struct Device: Codable, Equatable, Sendable
- public protocol GalleryItemPreview
+ @MainActor public protocol GalleryItemPreview
- public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreThreads(limit: Int? = nil,completion: ((Result<[ChatThread], Error>) -> Void)? = nil)
+ public func loadMoreThreads(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[ChatThread], Error>) -> Void)? = nil)
- public struct MessageReminderInfo: Equatable
+ public struct MessageReminderInfo: Equatable, Sendable
- public struct AudioRecordingContext: Hashable
+ public struct AudioRecordingContext: Hashable, Sendable
- public struct UnreadChannel
+ public struct UnreadChannel: Sendable
- public struct ChannelListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ChannelListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public class ChannelConfig: Codable
+ public final class ChannelConfig: Codable, Sendable
- public struct PollsConfig
+ public struct PollsConfig: Sendable
- public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct PollVote: Hashable, Equatable
+ public struct PollVote: Hashable, Equatable, Sendable
- public struct ImageResize
+ public struct ImageResize: Sendable
- public final class AudioRecorderError: ClientError
+ public final class AudioRecorderError: ClientError, @unchecked Sendable
- public struct ChannelMemberListQuery: Encodable
+ public struct ChannelMemberListQuery: Encodable, Sendable
- public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral
+ public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral, Sendable
- public protocol UploadedAttachmentPostProcessor
+ public protocol UploadedAttachmentPostProcessor: Sendable
- public struct Filter
+ public struct Filter: Sendable
- public struct MessageReminderListQuery: Encodable
+ public struct MessageReminderListQuery: Encodable, Sendable
- public struct ThreadListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ThreadListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public struct Alignment: Equatable
+ public struct Alignment: Equatable, Sendable
- public struct ChatChannelRead: Equatable
+ public struct ChatChannelRead: Equatable, Sendable
- public struct ChannelListSearchStrategy
+ public struct ChannelListSearchStrategy: Sendable
- public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
+ @MainActor public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
- public protocol AttachmentPayload: Codable
+ public protocol AttachmentPayload: Codable, Sendable
- public enum ConnectionStatus: Equatable
+ public enum ConnectionStatus: Equatable, Sendable
- public protocol ChatChannelListItemViewSwiftUIView: View
+ @MainActor public protocol ChatChannelListItemViewSwiftUIView: View
- public class UserSearch
+ public class UserSearch: @unchecked Sendable
- @MainActor public lazy var state: UserSearchState
+ @MainActor public var state: UserSearchState
- public class ChannelEventsController: EventsController
+ public class ChannelEventsController: EventsController, @unchecked Sendable
- public func sendEvent(_ payload: T,completion: ((Error?) -> Void)? = nil)
+ public func sendEvent(_ payload: T,completion: (@Sendable(Error?) -> Void)? = nil)
- public class CooldownTracker
+ public class CooldownTracker: @unchecked Sendable
- public struct ChatThread
+ public struct ChatThread: Sendable
- public struct TextLink: Equatable
+ public struct TextLink: Equatable, Sendable
- public struct PollsEntryConfig
+ public struct PollsEntryConfig: Sendable
- public class Logger
+ public class Logger: @unchecked Sendable
- public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #filePath,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
+ public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #file,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
- public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable
+ public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable, Sendable
- public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider
+ public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreReminders(limit: Int? = nil,completion: ((Result<[MessageReminder], Error>) -> Void)? = nil)
+ public func loadMoreReminders(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[MessageReminder], Error>) -> Void)? = nil)
- public class DataController: Controller
+ public class DataController: Controller, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+
-
+
-
+ public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+
-
+
-
+ public enum State: Equatable, Sendable
- public enum State: Equatable
+
-
+ case initialized
- case initialized
+ case localDataFetched
- case localDataFetched
+ case localDataFetchFailed(ClientError)
- case localDataFetchFailed(ClientError)
+ case remoteDataFetched
- case remoteDataFetched
+ case remoteDataFetchFailed(ClientError)
- case remoteDataFetchFailed(ClientError)
- public final class EventDecoding: ClientError
+ public final class EventDecoding: ClientError, @unchecked Sendable
- public struct CurrentUserUnreads
+ public struct CurrentUserUnreads: Sendable |
Public Interface- public class DraftDeletedEvent: Event
+ public final class DraftDeletedEvent: Event
- public final class PollVoteAlreadyExists: ClientError
+ public final class PollVoteAlreadyExists: ClientError, @unchecked Sendable
- public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable
+ public struct FilterKey: ExpressibleByStringLiteral, RawRepresentable, Sendable
open class ChatMessageAttachmentPreviewVC: _ViewController, WKNavigationDelegate, AppearanceProvider
- public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didStartProvisionalNavigation navigation: WKNavigation!)
- public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
+ nonisolated public func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)
- public struct ChatChannel
+ public struct ChatChannel: Sendable
- public struct Components
+ public struct Components: @unchecked Sendable
- public static var `default`
+ public nonisolated static var `default`
- public enum AttachmentFileType: String, Codable, Equatable, CaseIterable
+ public enum AttachmentFileType: String, Codable, Equatable, CaseIterable, Sendable
- public struct BaseURL: CustomStringConvertible
+ public struct BaseURL: CustomStringConvertible, Sendable
- public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextChannels(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextChannels(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: ((Error?) -> Void)? = nil)
+ @available(*, deprecated, message: "Please use `markAllRead` available in `CurrentChatUserController`") public func markAllRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public final class ReactionList
+ public final class ReactionList: Sendable
- @MainActor public lazy var state: ReactionListState
+ @MainActor public var state: ReactionListState
- public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func updateChannel(name: String?,imageURL: URL?,team: String?,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: ((Error?) -> Void)? = nil)
+ public func partialChannelUpdate(name: String? = nil,imageURL: URL? = nil,team: String? = nil,members: Set<UserId> = [],invites: Set<UserId> = [],extraData: [String: RawJSON] = [:],unsetProperties: [String] = [],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func muteChannel(expiration: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func muteChannel(expiration: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unmuteChannel(completion: ((Error?) -> Void)? = nil)
+ public func unmuteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func archive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func archive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unarchive(scope: ChannelArchivingScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unarchive(scope: ChannelArchivingScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteChannel(completion: ((Error?) -> Void)? = nil)
+ public func deleteChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func truncateChannel(skipPush: Bool = false,hardDelete: Bool = true,systemMessage: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func hideChannel(clearHistory: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func hideChannel(clearHistory: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func showChannel(completion: ((Error?) -> Void)? = nil)
+ public func showChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousMessages(before messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(after messageId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundMessageId(_ messageId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendKeystrokeEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStartTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: ((Error?) -> Void)? = nil)
+ public func sendStopTypingEvent(parentMessageId: MessageId? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewMessage(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,restrictedVisibility: [UserId] = [],location: NewLocationInfo? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createSystemMessage(text: String,messageId: MessageId? = nil,restrictedVisibility: [UserId] = [],extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func sendStaticLocation(_ location: LocationInfo,text: String? = nil,messageId: MessageId? = nil,quotedMessageId: MessageId? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func startLiveLocationSharing(_ location: LocationInfo,endDate: Date,text: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftMessage(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftMessage(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftMessage(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftMessage(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: ((Result<MessageId, Error>) -> Void)?)
+ public func createPoll(name: String,allowAnswers: Bool? = nil,allowUserSuggestedOptions: Bool? = nil,description: String? = nil,enforceUniqueVote: Bool? = nil,maxVotesAllowed: Int? = nil,votingVisibility: VotingVisibility? = nil,options: [PollOption]? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)?)
- public func deletePoll(pollId: String,completion: ((Error?) -> Void)? = nil)
+ public func deletePoll(pollId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(_ members: [MemberInfo],hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func addMembers(userIds: Set<UserId>,hideHistory: Bool = false,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func removeMembers(userIds: Set<UserId>,message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func inviteMembers(userIds: Set<UserId>,completion: ((Error?) -> Void)? = nil)
+ public func inviteMembers(userIds: Set<UserId>,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func acceptInvite(message: String? = nil,completion: ((Error?) -> Void)? = nil)
+ public func acceptInvite(message: String? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func rejectInvite(completion: ((Error?) -> Void)? = nil)
+ public func rejectInvite(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markRead(completion: ((Error?) -> Void)? = nil)
+ public func markRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markUnread(from messageId: MessageId,completion: ((Result<ChatChannel, Error>) -> Void)? = nil)
+ public func markUnread(from messageId: MessageId,completion: (@MainActor @Sendable(Result<ChatChannel, Error>) -> Void)? = nil)
- public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping (Error?) -> Void)
+ public func loadChannelReads(pagination: Pagination? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping (Error?) -> Void)
+ public func loadMoreChannelReads(limit: Int? = nil,completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func enableSlowMode(cooldownDuration: Int,completion: ((Error?) -> Void)? = nil)
+ public func enableSlowMode(cooldownDuration: Int,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disableSlowMode(completion: ((Error?) -> Void)? = nil)
+ public func disableSlowMode(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func startWatching(isInRecoveryMode: Bool,completion: ((Error?) -> Void)? = nil)
+ public func startWatching(isInRecoveryMode: Bool,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func stopWatching(completion: ((Error?) -> Void)? = nil)
+ public func stopWatching(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func freezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func freezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unfreezeChannel(completion: ((Error?) -> Void)? = nil)
+ public func unfreezeChannel(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func pin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(scope: ChannelPinningScope = .me,completion: ((Error?) -> Void)? = nil)
+ public func unpin(scope: ChannelPinningScope = .me,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil,completion: @escaping ((Result<UploadedAttachment, Error>) -> Void))
+ public func uploadAttachment(localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil,completion: @escaping @MainActor @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public func enrichUrl(_ url: URL,completion: @escaping (Result<LinkAttachmentPayload, Error>) -> Void)
+ public func enrichUrl(_ url: URL,completion: @escaping @MainActor @Sendable(Result<LinkAttachmentPayload, Error>) -> Void)
- public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping (Result<[ChatMessage], Error>) -> Void)
+ public func loadPinnedMessages(pageSize: Int = .messagesPageSize,sorting: [Sorting<PinnedMessagesSortingKey>] = [],pagination: PinnedMessagesPagination? = nil,completion: @escaping @MainActor @Sendable(Result<[ChatMessage], Error>) -> Void)
- public func deleteFile(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteFile(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteImage(url: String,completion: ((Error?) -> Void)? = nil)
+ public func deleteImage(url: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public class PollController: DataController, DelegateCallable, DataStoreProvider
+ public class PollController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func castPollVote(answerText: String?,optionId: String?,completion: ((Error?) -> Void)? = nil)
+ public func castPollVote(answerText: String?,optionId: String?,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func removePollVote(voteId: String,completion: ((Error?) -> Void)? = nil)
+ public func removePollVote(voteId: String,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func closePoll(completion: ((Error?) -> Void)? = nil)
+ public func closePoll(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func suggestPollOption(text: String,position: Int? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public protocol ComponentsProvider: AnyObject
+ @MainActor public protocol ComponentsProvider: AnyObject
- public struct ComposerState: RawRepresentable, Equatable
+ public struct ComposerState: RawRepresentable, Equatable, Sendable
- public static var new
+ public static let new
- public static var edit
+ public static let edit
- public static var quote
+ public static let quote
- public static var recording
+ public static let recording
- public static var recordingLocked
+ public static let recordingLocked
- public struct QuotedAvatarAlignment: RawRepresentable, Equatable
+ public struct QuotedAvatarAlignment: RawRepresentable, Equatable, Sendable
- public struct Appearance
+ public struct Appearance: @unchecked Sendable
- public var localizationProvider: (_ key: String, _ table: String) -> String
+ public var localizationProvider: @Sendable(_ key: String, _ table: String) -> String
- public struct ReadReceiptsPrivacySettings
+ public struct ReadReceiptsPrivacySettings: Sendable
- public final class ReconnectionTimeout: ClientError
+ public final class ReconnectionTimeout: ClientError, @unchecked Sendable
- public struct ImageLoaderOptions
+ public struct ImageLoaderOptions: Sendable
- public enum PaginationParameter: Encodable, Hashable
+ public enum PaginationParameter: Encodable, Hashable, Sendable
- public protocol EventsControllerDelegate: AnyObject
+ @MainActor public protocol EventsControllerDelegate: AnyObject
- public final class AudioRecorderError: ClientError
+ public final class AudioRecorderError: ClientError, @unchecked Sendable
- public final class Unexpected: ClientError
+ public final class Unexpected: ClientError, @unchecked Sendable
- public struct UnreadCount: Decodable, Equatable
+ public struct UnreadCount: Decodable, Equatable, Sendable
- public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GalleryContentViewDelegate: ChatMessageContentViewDelegate
- public protocol ChatMessageListScrollOverlayDataSource: AnyObject
+ @MainActor public protocol ChatMessageListScrollOverlayDataSource: AnyObject
- public protocol AttachmentUploader
+ public protocol AttachmentUploader: Sendable
- public struct ChatChannelRead: Equatable
+ public struct ChatChannelRead: Equatable, Sendable
- public final class IgnoredEventType: ClientError
+ public final class IgnoredEventType: ClientError, @unchecked Sendable
- public struct Poll: Equatable
+ public struct Poll: Equatable, Sendable
- public struct ChannelListSearchStrategy
+ public struct ChannelListSearchStrategy: Sendable
- public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
+ @MainActor public func makeSearchController(with channelListVC: ChatChannelListVC)-> UISearchController?
- public struct MessageReminder
+ public struct MessageReminder: Sendable
- public class MessageReminderUpdatedEvent: Event
+ public final class MessageReminderUpdatedEvent: Event
- open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate
+ open class StreamAudioRecorder: NSObject, AudioRecording, AVAudioRecorderDelegate, AppStateObserverDelegate, @unchecked Sendable
- open func beginRecording(_ completionHandler: @escaping (() -> Void))
+ open func beginRecording(_ completionHandler: @escaping @Sendable() -> Void)
- public static let `default`
+ nonisolated public static let `default`
- public protocol DataControllerStateDelegate: AnyObject
+ @MainActor public protocol DataControllerStateDelegate: AnyObject
- public struct TextLink: Equatable
+ public struct TextLink: Equatable, Sendable
- public protocol Event
+ public protocol Event: Sendable
- public final class UnsupportedUploadableAttachmentType: ClientError
+ public final class UnsupportedUploadableAttachmentType: ClientError, @unchecked Sendable
- public struct ChatMessageReaction: Hashable
+ public struct ChatMessageReaction: Hashable, Sendable
- public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol PollAttachmentViewInjectorDelegate: ChatMessageContentViewDelegate
- public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct AITypingState: ExpressibleByStringLiteral, Hashable
+ public struct AITypingState: ExpressibleByStringLiteral, Hashable, Sendable
- public protocol ChatChannelAvatarViewSwiftUIView: View
+ @MainActor public protocol ChatChannelAvatarViewSwiftUIView: View
open class WaveformView: _View, ThemeProvider
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
- public enum BanEnabling
+ public enum BanEnabling: Sendable
- public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatReactionListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public struct ChannelMemberListQuery: Encodable
+ public struct ChannelMemberListQuery: Encodable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatChannelVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatChannelControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousMessages(completion: @escaping (Error?) -> Void)
+ open func loadPreviousMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextMessages(completion: @escaping (Error?) -> Void)
+ open func loadNextMessages(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public struct VotingVisibility: RawRepresentable, Equatable
+ public struct VotingVisibility: RawRepresentable, Equatable, Sendable
- public protocol AudioQueuePlayerDatasource: AnyObject
+ @MainActor public protocol AudioQueuePlayerDatasource: AnyObject
- public struct AudioAnalysisEngine
+ public struct AudioAnalysisEngine: Sendable
- public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping (Result<[Float], Error>) -> Void)
+ public func waveformVisualisation(fromAudioURL audioURL: URL,for targetSamples: Int,completionHandler: @escaping @Sendable(Result<[Float], Error>) -> Void)
- public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol VoiceRecordingAttachmentPresentationViewDelegate: ChatMessageContentViewDelegate
- public protocol GalleryItemPreview
+ @MainActor public protocol GalleryItemPreview
- public protocol AudioSessionFeedbackGenerator
+ @MainActor public protocol AudioSessionFeedbackGenerator
public struct DefaultAttachmentPreviewProvider: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public struct AssetProperty: CustomStringConvertible
+ public struct AssetProperty: CustomStringConvertible, Sendable
- public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct EventType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MemberRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider
+ public class ChatConnectionController: Controller, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var connectionStatus: ConnectionStatus
- public var connectionStatus: ConnectionStatus
+ public let client: ChatClient
- public let client: ChatClient
- public class ChatChannelMember: ChatUser
+ public class ChatChannelMember: ChatUser, @unchecked Sendable
- public protocol ChatMessageActionsVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageActionsVCDelegate: AnyObject
- public struct AttachmentUploadingState: Hashable
+ public struct AttachmentUploadingState: Hashable, Sendable
- public struct EmptyResponse: Decodable
+ public struct EmptyResponse: Decodable, Sendable
- public final class AudioAnalysisEngineError: ClientError
+ public final class AudioAnalysisEngineError: ClientError, @unchecked Sendable
- public struct ChatClientConfig
+ public struct ChatClientConfig: Sendable
- public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible
+ public enum DeletedMessageVisibility: String, CustomStringConvertible, CustomDebugStringConvertible, Sendable
- public struct LogSubsystem: OptionSet
+ public struct LogSubsystem: OptionSet, Sendable
- public class ClientError: Error, CustomStringConvertible
+ public class ClientError: Error, CustomStringConvertible, @unchecked Sendable
- public struct UploadedAttachment
+ public struct UploadedAttachment: Sendable
- public protocol VoiceRecordingDelegate: AnyObject
+ @MainActor public protocol VoiceRecordingDelegate: AnyObject
- public class CooldownTracker
+ public class CooldownTracker: @unchecked Sendable
- public struct PollCreationSection: RawRepresentable, Equatable
+ public struct PollCreationSection: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- public static var features
+ public static let features
- public struct UnreadThread
+ public struct UnreadThread: Sendable
- public enum PinnedMessagesPagination: Hashable
+ public enum PinnedMessagesPagination: Hashable, Sendable
@available(iOSApplicationExtension, unavailable) open class ChatThreadVC: _ViewController, ThemeProvider, ChatMessageListVCDataSource, ChatMessageListVCDelegate, ChatMessageControllerDelegate, EventsControllerDelegate, AudioQueuePlayerDatasource
- open func loadPreviousReplies(completion: @escaping (Error?) -> Void)
+ open func loadPreviousReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- open func loadNextReplies(completion: @escaping (Error?) -> Void)
+ open func loadNextReplies(completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping ((Error?) -> Void))
+ public func chatMessageListVC(_ vc: ChatMessageListVC,shouldLoadPageAroundMessageId messageId: MessageId,_ completion: @escaping @MainActor @Sendable(Error?) -> Void)
- public protocol AssetPropertyLoading
+ public protocol AssetPropertyLoading: Sendable
- public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral
+ public struct Spacing: Equatable, ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral, Sendable
- public protocol ChatConnectionControllerDelegate: AnyObject
+ @MainActor public protocol ChatConnectionControllerDelegate: AnyObject
- public struct ThreadRead: Equatable
+ public struct ThreadRead: Equatable, Sendable
extension VoiceRecordingAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public struct PollsConfig
+ public struct PollsConfig: Sendable
- public struct AudioPlaybackState: Equatable, CustomStringConvertible
+ public struct AudioPlaybackState: Equatable, CustomStringConvertible, Sendable
- public protocol KeyboardHandler
+ @MainActor public protocol KeyboardHandler
- public final class MissingLocalStorageURL: ClientError
+ public final class MissingLocalStorageURL: ClientError, @unchecked Sendable
- public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatThreadListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreThreads(limit: Int? = nil,completion: ((Result<[ChatThread], Error>) -> Void)? = nil)
+ public func loadMoreThreads(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[ChatThread], Error>) -> Void)? = nil)
- public struct AudioRecordingState: Hashable
+ public struct AudioRecordingState: Hashable, Sendable
- public struct Command: Codable, Hashable
+ public struct Command: Codable, Hashable, Sendable
- public struct AttachmentId: Hashable
+ public struct AttachmentId: Hashable, Sendable
- public struct PollVote: Hashable, Equatable
+ public struct PollVote: Hashable, Equatable, Sendable
- public protocol AppearanceProvider: AnyObject
+ @MainActor public protocol AppearanceProvider: AnyObject
- public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct UserRole: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public protocol LogDestination
+ public protocol LogDestination: Sendable
- public protocol ImageCDN
+ public protocol ImageCDN: Sendable
- public struct MessageReminderListQuery: Encodable
+ public struct MessageReminderListQuery: Encodable, Sendable
- public protocol SendMessageInterceptorFactory
+ public protocol SendMessageInterceptorFactory: Sendable
- @propertyWrapper public class Atomic
+ @propertyWrapper public class Atomic: @unchecked Sendable
- public protocol ChatChannelListItemViewSwiftUIView: View
+ @MainActor public protocol ChatChannelListItemViewSwiftUIView: View
public struct TypingSuggester
- public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
+ @MainActor public func typingSuggestion(in textView: UITextView)-> TypingSuggestion?
- public struct DraftListQuery: Encodable
+ public struct DraftListQuery: Encodable, Sendable
- public final class ClientIsNotInActiveMode: ClientError
+ public final class ClientIsNotInActiveMode: ClientError, @unchecked Sendable
- public final class InvalidChannelId: ClientError
+ public final class InvalidChannelId: ClientError, @unchecked Sendable
- public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct MessageReactionType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- public protocol AudioPlaying: AnyObject
+ public protocol AudioPlaying: AnyObject, Sendable
- public protocol CurrentChatUserControllerDelegate: AnyObject
+ @MainActor public protocol CurrentChatUserControllerDelegate: AnyObject
- public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable
+ public struct LocalAttachmentInfoKey: Hashable, Equatable, RawRepresentable, Sendable
- public class MessageSearch
+ public class MessageSearch: @unchecked Sendable
- @MainActor public lazy var state: MessageSearchState
+ @MainActor public var state: MessageSearchState
- public struct LocationInfo
+ public struct LocationInfo: Sendable
- public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider
+ public class PollVoteListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreVotes(limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadMoreVotes(limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct UserListQuery: Encodable
+ public struct UserListQuery: Encodable, Sendable
- public struct UserInfo
+ public struct UserInfo: Sendable
- public class HealthCheckEvent: ConnectionEvent, EventDTO
+ public final class HealthCheckEvent: ConnectionEvent, EventDTO, Sendable
- extension PollVoteListController: EventsControllerDelegate
+ extension PollVoteListController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: any Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollVoteListController
+ @Published public private var votes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
- public struct AttachmentFile: Codable, Hashable
+ public struct AttachmentFile: Codable, Hashable, Sendable
- public static let sizeFormatter
+ public nonisolated static let sizeFormatter
- public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral
+ public struct AttachmentType: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable
- @available(iOSApplicationExtension, unavailable) public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
+ @available(iOSApplicationExtension, unavailable) @MainActor public protocol LinkPreviewViewDelegate: ChatMessageContentViewDelegate
- public struct AudioRecordingContext: Hashable
+ public struct AudioRecordingContext: Hashable, Sendable
- public protocol SwiftUIRepresentable: AnyObject
+ @MainActor public protocol SwiftUIRepresentable: AnyObject
- @resultBuilder public struct ViewContainerBuilder
+ @MainActor @resultBuilder public struct ViewContainerBuilder
- public protocol ChatMessageContentViewDelegate: AnyObject
+ @MainActor public protocol ChatMessageContentViewDelegate: AnyObject
- open class StreamAudioQueuePlayer: StreamAudioPlayer
+ open class StreamAudioQueuePlayer: StreamAudioPlayer, @unchecked Sendable
- public struct ChatMessage
+ public struct ChatMessage: Sendable
@available(iOSApplicationExtension, unavailable) open class ChatChannelSearchVC: ChatChannelListSearchVC
- public var didSelectChannel: ((ChatChannel) -> Void)?
+ public var didSelectChannel: (@MainActor(ChatChannel) -> Void)?
- public struct Device: Codable, Equatable
+ public struct Device: Codable, Equatable, Sendable
- public protocol AudioRecordingDelegate: AnyObject
+ @MainActor public protocol AudioRecordingDelegate: AnyObject
- open class AttachmentViewInjector
+ @MainActor open class AttachmentViewInjector
- public struct DraftMessage
+ public struct DraftMessage: Sendable
- public final class MissingTokenProvider: ClientError
+ public final class MissingTokenProvider: ClientError, @unchecked Sendable
- public struct Alignment: Equatable
+ public struct Alignment: Equatable, Sendable
- public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable
+ public struct ChannelCapability: RawRepresentable, ExpressibleByStringLiteral, Hashable, Sendable
open class VoiceRecordingVC: _ViewController, ComponentsProvider, AppearanceProvider, AudioRecordingDelegate, AudioPlayingDelegate, UIGestureRecognizerDelegate
- public struct State: RawRepresentable, Equatable
+ public struct State: RawRepresentable, Equatable, Sendable
- public static var idle
+ public static let idle
- public static var showingTip
+ public static let showingTip
- public static var recording
+ public static let recording
- public static var locked
+ public static let locked
- public static var preview
+ public static let preview
- public struct Action: RawRepresentable, Equatable
+ public struct Action: RawRepresentable, Equatable, Sendable
- public static var tapRecord
+ public static let tapRecord
- public static var showTip
+ public static let showTip
- public static var beginRecording
+ public static let beginRecording
- public static var touchUp
+ public static let touchUp
- public static var cancel
+ public static let cancel
- public static var lock
+ public static let lock
- public static var stop
+ public static let stop
- public static var discard
+ public static let discard
- public static var send
+ public static let send
- public static var confirm
+ public static let confirm
- public static var publishMessage
+ public static let publishMessage
- public static var play
+ public static let play
- public static var pause
+ public static let pause
- public struct Content: Equatable
+ public struct Content: Equatable, Sendable
- public class StreamAttachmentUploader: AttachmentUploader
+ public class StreamAttachmentUploader: AttachmentUploader, @unchecked Sendable
- public func upload(_ attachment: AnyChatMessageAttachment,progress: ((Double) -> Void)?,completion: @escaping (Result<UploadedAttachment, Error>) -> Void)
+ public func upload(_ attachment: AnyChatMessageAttachment,progress: (@Sendable(Double) -> Void)?,completion: @escaping @Sendable(Result<UploadedAttachment, Error>) -> Void)
- public struct UnreadChannelByType
+ public struct UnreadChannelByType: Sendable
- public final class EventDecoding: ClientError
+ public final class EventDecoding: ClientError, @unchecked Sendable
- public class DraftUpdatedEvent: Event
+ public final class DraftUpdatedEvent: Event
- public struct AnyAttachmentUpdater
+ public struct AnyAttachmentUpdater: Sendable
- open class StreamImageCDN: ImageCDN
+ open class StreamImageCDN: ImageCDN, @unchecked Sendable
- public static var streamCDNURL
+ nonisolated public static var streamCDNURL
- public protocol MaskProviding
+ @MainActor public protocol MaskProviding
- public enum MessageOrdering
+ public enum MessageOrdering: Sendable
- public protocol ChatMessageListVCDataSource: AnyObject
+ @MainActor public protocol ChatMessageListVCDataSource: AnyObject
- public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(term: String?,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(term: String?,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: UserListQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: UserListQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextUsers(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextUsers(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public final class ConnectionWasNotInitiated: ClientError
+ public final class ConnectionWasNotInitiated: ClientError, @unchecked Sendable
- public struct AudioPlaybackContext: Equatable
+ public struct AudioPlaybackContext: Equatable, Sendable
- public enum LocalAttachmentDownloadState: Hashable
+ public enum LocalAttachmentDownloadState: Hashable, Sendable
- public struct MessagePinning: Equatable
+ public struct MessagePinning: Equatable, Sendable
- public class MessageReminderDueEvent: Event
+ public final class MessageReminderDueEvent: Event
- public struct AttachmentAction: Codable, Hashable
+ public struct AttachmentAction: Codable, Hashable, Sendable
- public enum ActionType: String, Codable
+ public enum ActionType: String, Codable, Sendable
- public enum ActionStyle: String, Codable
+ public enum ActionStyle: String, Codable, Sendable
public enum StreamRuntimeCheck
- public static var assertionsEnabled
+ public nonisolated static var assertionsEnabled
- public static var _isDatabasePrefetchingEnabled
+ public nonisolated static var _isDatabasePrefetchingEnabled
- public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct PushProvider: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public class ScheduledStreamTimer: StreamTimer
+ public class ScheduledStreamTimer: StreamTimer, @unchecked Sendable
- public var onChange: (() -> Void)?
+ public var onChange: (@Sendable() -> Void)?
- public indirect enum RawJSON: Codable, Hashable
+ public indirect enum RawJSON: Codable, Hashable, Sendable
- extension PollController: EventsControllerDelegate
+ extension PollController
- public func eventsController(_ controller: EventsController,didReceiveEvent event: Event)
+ public var observableObject: ObservableObject
+
+
+ public class ObservableObject: SwiftUI.ObservableObject
+
+ public let controller: PollController
+ @Published public private var poll: Poll?
+ @Published public private var ownVotes: LazyCachedMapCollection<PollVote>
+ @Published public private var state: DataController.State
open class AudioQueuePlayerNextItemProvider
- public struct LookUpScope: RawRepresentable, Equatable
+ public struct LookUpScope: RawRepresentable, Equatable, Sendable
- public struct ChatThread
+ public struct ChatThread: Sendable
- public class MessageReminderCreatedEvent: Event
+ public final class MessageReminderCreatedEvent: Event
- public protocol StreamModelsTransformer
+ public protocol StreamModelsTransformer: Sendable
- open class StreamVideoLoader: VideoLoading
+ open class StreamVideoLoader: VideoLoading, @unchecked Sendable
- open func loadPreviewForVideo(at url: URL,completion: @escaping (Result<UIImage, Error>) -> Void)
+ open func loadPreviewForVideo(at url: URL,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)
- open class NukeImageProcessor: ImageProcessor
+ open class NukeImageProcessor: ImageProcessor, @unchecked Sendable
- public final class ConnectionNotSuccessful: ClientError
+ public final class ConnectionNotSuccessful: ClientError, @unchecked Sendable
- public struct BlockedUserDetails
+ public struct BlockedUserDetails: Sendable
- public class ConsoleLogDestination: BaseLogDestination
+ public class ConsoleLogDestination: BaseLogDestination, @unchecked Sendable
- public struct Token: Decodable, Equatable, ExpressibleByStringLiteral
+ public struct Token: Decodable, Equatable, ExpressibleByStringLiteral, Sendable
- public struct ChannelUnreadCount: Decodable, Equatable
+ public struct ChannelUnreadCount: Decodable, Equatable, Sendable
- public struct ChatMessageReactionGroup: Equatable
+ public struct ChatMessageReactionGroup: Equatable, Sendable
- open class SwipeToReplyGestureHandler
+ @MainActor open class SwipeToReplyGestureHandler
- public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator = .init(style: .medium))
+ public init(listView: ChatMessageListView,impactFeedbackGenerator: UIImpactFeedbackGenerator? = nil)
- public struct PollFeatureType: Equatable
+ public struct PollFeatureType: Equatable, Sendable
- public static var multipleVotes
+ public static let multipleVotes
- public static var anonymous
+ public static let anonymous
- public static var suggestions
+ public static let suggestions
- public static var comments
+ public static let comments
- public struct MessagePinDetails
+ public struct MessagePinDetails: Sendable
- public struct ChannelQuery: Encodable
+ public struct ChannelQuery: Encodable, Sendable
- public class ChatUser
+ public class ChatUser: @unchecked Sendable
- public protocol SwipeableViewDelegate: AnyObject
+ @MainActor public protocol SwipeableViewDelegate: AnyObject
- public struct ChannelListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ChannelListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public struct UnreadChannel
+ public struct UnreadChannel: Sendable
- public struct PollOption: Hashable, Equatable
+ public struct PollOption: Hashable, Equatable, Sendable
- public final class ConnectedUser
+ public final class ConnectedUser: Sendable
- @MainActor public lazy var state: ConnectedUserState
+ @MainActor public var state: ConnectedUserState
- public protocol CDNClient
+ public protocol CDNClient: Sendable
- public final class UserList
+ public final class UserList: Sendable
- @MainActor public lazy var state: UserListState
+ @MainActor public var state: UserListState
- public protocol ChatChannelUnreadCountViewSwiftUIView: View
+ @MainActor public protocol ChatChannelUnreadCountViewSwiftUIView: View
- public struct CurrentUserUnreads
+ public struct CurrentUserUnreads: Sendable
- public struct SharedLocation: Equatable
+ public struct SharedLocation: Equatable, Sendable
- public struct MessageReminderInfo: Equatable
+ public struct MessageReminderInfo: Equatable, Sendable
- public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class CurrentChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
extension FileAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- public class ChatClient
+ public class ChatClient: @unchecked Sendable
- public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,tokenProvider: @escaping TokenProvider,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectUser(userInfo: UserInfo,token: Token,completion: ((Error?) -> Void)? = nil)
+ public func connectUser(userInfo: UserInfo,token: Token,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectGuestUser(userInfo: UserInfo,completion: ((Error?) -> Void)? = nil)
+ public func connectGuestUser(userInfo: UserInfo,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func connectAnonymousUser(completion: ((Error?) -> Void)? = nil)
+ public func connectAnonymousUser(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func disconnect(completion: @escaping () -> Void)
+ public func disconnect(completion: @escaping @MainActor @Sendable() -> Void)
- public func logout(removeDevice: Bool = true,completion: @escaping () -> Void)
+ public func logout(removeDevice: Bool = true,completion: @escaping @MainActor @Sendable() -> Void)
- public func loadAppSettings(completion: ((Result<AppSettings, Error>) -> Void)? = nil)
+ public func loadAppSettings(completion: (@Sendable(Result<AppSettings, Error>) -> Void)? = nil)
- public struct MessageModerationAction: RawRepresentable, Equatable
+ public struct MessageModerationAction: RawRepresentable, Equatable, Sendable
- public final class MissingToken: ClientError
+ public final class MissingToken: ClientError, @unchecked Sendable
- public class UserSearch
+ public class UserSearch: @unchecked Sendable
- @MainActor public lazy var state: UserSearchState
+ @MainActor public var state: UserSearchState
open class ChatChannelAvatarView: _View, ThemeProvider, SwiftUIRepresentable
- open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping ([UIImage], ChannelId)
+ open func loadAvatarsFrom(urls: [URL?],channelId: ChannelId,completion: @escaping @Sendable([UIImage], ChannelId)
@available(iOSApplicationExtension, unavailable) open class ChatMessageSearchVC: ChatChannelListSearchVC, ChatMessageSearchControllerDelegate
- public var didSelectMessage: ((ChatChannel, ChatMessage) -> Void)?
+ public var didSelectMessage: (@MainActor(ChatChannel, ChatMessage) -> Void)?
- public struct Filter
+ public struct Filter: Sendable
- public protocol QuotedChatMessageViewSwiftUIView: View
+ @MainActor public protocol QuotedChatMessageViewSwiftUIView: View
- public class Logger
+ public class Logger: @unchecked Sendable
- public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #filePath,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
+ public func callAsFunction(_ level: LogLevel,functionName: StaticString = #function,fileName: StaticString = #file,lineNumber: UInt = #line,message: @autoclosure () -> Any,subsystems: LogSubsystem = .other)
- public struct MessagesPagination: Encodable, Equatable
+ public struct MessagesPagination: Encodable, Equatable, Sendable
public class ChatRemoteNotificationHandler
- public func handleNotification(completion: @escaping (ChatPushNotificationContent) -> Void)-> Bool
+ public func handleNotification(completion: @escaping @Sendable(ChatPushNotificationContent) -> Void)-> Bool
- public struct AudioPlaybackRate: Comparable, Equatable
+ public struct AudioPlaybackRate: Comparable, Equatable, Sendable
- public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageSearchController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public func search(text: String,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(text: String,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func search(query: MessageSearchQuery,completion: ((_ error: Error?) -> Void)? = nil)
+ public func search(query: MessageSearchQuery,completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextMessages(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextMessages(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public struct ChannelWatcherListQuery: Encodable
+ public struct ChannelWatcherListQuery: Encodable, Sendable
- public enum MessageType: String, Codable
+ public enum MessageType: String, Codable, Sendable
- public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelWatcherListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public class ChatUserController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatUserController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public class ChannelEventsController: EventsController
+ public class ChannelEventsController: EventsController, @unchecked Sendable
- public func sendEvent(_ payload: T,completion: ((Error?) -> Void)? = nil)
+ public func sendEvent(_ payload: T,completion: (@Sendable(Error?) -> Void)? = nil)
- public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
+ @MainActor public protocol InputTextViewClipboardAttachmentDelegate: AnyObject
- public struct ReactionListQuery: Encodable
+ public struct ReactionListQuery: Encodable, Sendable
- public struct LocalCaching: Equatable
+ public struct LocalCaching: Equatable, Sendable
- public protocol SortingKey: Encodable
+ public protocol SortingKey: Encodable, Sendable
- public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral
+ public struct ChatMessageLayoutOption: RawRepresentable, Hashable, ExpressibleByStringLiteral, Sendable
- public final class WebSocket: ClientError
+ public final class WebSocket: ClientError, @unchecked Sendable
- public protocol AttachmentPayload: Codable
+ public protocol AttachmentPayload: Codable, Sendable
- public struct ThreadListQuery: Encodable, LocalConvertibleSortingQuery
+ public struct ThreadListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
- public struct AppSettings
+ public struct AppSettings: Sendable
- public struct UploadConfig
+ public struct UploadConfig: Sendable
- public class EventsController: Controller, DelegateCallable
+ public class EventsController: Controller, DelegateCallable, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+ public var delegate: EventsControllerDelegate?
- public var delegate: EventsControllerDelegate?
- public enum LocalMessageState: String
+ public enum LocalMessageState: String, Sendable
- public struct Pagination: Encodable, Equatable
+ public struct Pagination: Encodable, Equatable, Sendable
- public struct ThreadQuery: Encodable
+ public struct ThreadQuery: Encodable, Sendable
- public struct Sorting: Encodable, CustomStringConvertible
+ public struct Sorting: Encodable, CustomStringConvertible, Sendable
- public class CurrentChatUser: ChatUser
+ public class CurrentChatUser: ChatUser, @unchecked Sendable
- public protocol Customizable
+ @MainActor public protocol Customizable
open class ComposerVC: _ViewController, ThemeProvider, UITextViewDelegate, UIImagePickerControllerDelegate, UIDocumentPickerDelegate, UINavigationControllerDelegate, InputTextViewClipboardAttachmentDelegate, VoiceRecordingDelegate
- open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: Encodable?)throws
+ open func addAttachmentToContent(from url: URL,type: AttachmentType,info: [LocalAttachmentInfoKey: Any],extraData: (Encodable & Sendable)?)throws
- public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatChannelMemberListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public enum LogLevel: Int
+ public enum LogLevel: Int, Sendable
- public protocol AudioPlayingDelegate: AnyObject
+ @MainActor public protocol AudioPlayingDelegate: AnyObject
- public final class Unknown: ClientError
+ public final class Unknown: ClientError, @unchecked Sendable
- public struct UserPrivacySettings
+ public struct UserPrivacySettings: Sendable
public enum LogConfig
- public static var identifier
+ public nonisolated static var identifier
- public static var level: LogLevel
+ public nonisolated static var level: LogLevel
- public static var dateFormatter: DateFormatter
+ public nonisolated static var dateFormatter: DateFormatter
- public static var formatters
+ public nonisolated static var formatters
- public static var showDate
+ public nonisolated static var showDate
- public static var showLevel
+ public nonisolated static var showLevel
- public static var showIdentifier
+ public nonisolated static var showIdentifier
- public static var showThreadName
+ public nonisolated static var showThreadName
- public static var showFileName
+ public nonisolated static var showFileName
- public static var showLineNumber
+ public nonisolated static var showLineNumber
- public static var showFunctionName
+ public nonisolated static var showFunctionName
- public static var subsystems: LogSubsystem
+ public nonisolated static var subsystems: LogSubsystem
- public static var destinationTypes: [LogDestination.Type]
+ public nonisolated static var destinationTypes: [LogDestination.Type]
- public struct NewLocationInfo
+ public struct NewLocationInfo: Sendable
- public struct TypingIndicatorPrivacySettings
+ public struct TypingIndicatorPrivacySettings: Sendable
- public class ChannelConfig: Codable
+ public final class ChannelConfig: Codable, Sendable
- public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider
+ public class MessageReminderListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadMoreReminders(limit: Int? = nil,completion: ((Result<[MessageReminder], Error>) -> Void)? = nil)
+ public func loadMoreReminders(limit: Int? = nil,completion: (@MainActor @Sendable(Result<[MessageReminder], Error>) -> Void)? = nil)
- public struct PollsEntryConfig
+ public struct PollsEntryConfig: Sendable
- public struct PollVoteListQuery: Encodable
+ public struct PollVoteListQuery: Encodable, Sendable
- public struct Mode
+ public struct Mode: Sendable
- public static var clip
+ public static let clip
- public static var fill
+ public static let fill
- public static var scale
+ public static let scale
- public enum LocalReactionState: String
+ public enum LocalReactionState: String, Sendable
open class PollAllOptionsListVC: _ViewController, ThemeProvider, PollControllerDelegate, UITableViewDataSource, UITableViewDelegate
- public struct Section: RawRepresentable, Equatable
+ public struct Section: RawRepresentable, Equatable, Sendable
- public static var name
+ public static let name
- public static var options
+ public static let options
- public class ChannelList
+ public class ChannelList: @unchecked Sendable
- @MainActor public lazy var state: ChannelListState
+ @MainActor public var state: ChannelListState
- public struct MessageModerationDetails
+ public struct MessageModerationDetails: Sendable
- public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider
+ public class ChatMessageController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- override public func synchronize(_ completion: ((Error?) -> Void)? = nil)
+ override public func synchronize(_ completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func editMessage(text: String,skipEnrichUrl: Bool = false,skipPush: Bool = false,attachments: [AnyAttachmentPayload] = [],restrictedVisibility: [UserId] = [],extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: ((Result<ChatMessage, Error>) -> Void)? = nil)
+ public func partialUpdateMessage(text: String? = nil,attachments: [AnyAttachmentPayload]? = nil,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: (@MainActor @Sendable(Result<ChatMessage, Error>) -> Void)? = nil)
- public func deleteMessage(hard: Bool = false,completion: ((Error?) -> Void)? = nil)
+ public func deleteMessage(hard: Bool = false,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: ((Result<MessageId, Error>) -> Void)? = nil)
+ public func createNewReply(messageId: MessageId? = nil,text: String,pinning: MessagePinning? = nil,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],showReplyInChannel: Bool = false,isSilent: Bool = false,quotedMessageId: MessageId? = nil,skipPush: Bool = false,skipEnrichUrl: Bool = false,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<MessageId, Error>) -> Void)? = nil)
- public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPreviousReplies(before replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadPageAroundReplyId(_ replyId: MessageId,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReplies(after replyId: MessageId? = nil,limit: Int? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadFirstPage(limit: Int? = nil,_ completion: ((_ error: Error?) -> Void)? = nil)
+ public func loadFirstPage(limit: Int? = nil,_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func loadNextReactions(limit: Int = 25,completion: ((Error?) -> Void)? = nil)
+ public func loadNextReactions(limit: Int = 25,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping (Result<[ChatMessageReaction], Error>) -> Void)
+ public func loadReactions(limit: Int,offset: Int = 0,completion: @escaping @MainActor @Sendable(Result<[ChatMessageReaction], Error>) -> Void)
- public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: ((Error?) -> Void)? = nil)
+ public func flag(reason: String? = nil,extraData: [String: RawJSON]? = nil,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unflag(completion: ((Error?) -> Void)? = nil)
+ public func unflag(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: ((Error?) -> Void)? = nil)
+ public func addReaction(_ type: MessageReactionType,score: Int = 1,enforceUnique: Bool = false,skipPush: Bool = false,pushEmojiCode: String? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func deleteReaction(_ type: MessageReactionType,completion: ((Error?) -> Void)? = nil)
+ public func deleteReaction(_ type: MessageReactionType,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func pin(_ pinning: MessagePinning,completion: ((Error?) -> Void)? = nil)
+ public func pin(_ pinning: MessagePinning,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func unpin(completion: ((Error?) -> Void)? = nil)
+ public func unpin(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping (Result<ChatMessageAttachment<Payload>, Error>) -> Void)
+ public func downloadAttachment(_ attachment: ChatMessageAttachment<Payload>,completion: @escaping @MainActor @Sendable(Result<ChatMessageAttachment<Payload>, Error>) -> Void)
- public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func deleteLocalAttachmentDownload(for attachmentId: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func restartFailedAttachmentUploading(with id: AttachmentId,completion: ((Error?) -> Void)? = nil)
+ public func restartFailedAttachmentUploading(with id: AttachmentId,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func resendMessage(completion: ((Error?) -> Void)? = nil)
+ public func resendMessage(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: ((Error?) -> Void)? = nil)
+ public func dispatchEphemeralMessageAction(_ action: AttachmentAction,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func translate(to language: TranslationLanguage,completion: ((Error?) -> Void)? = nil)
+ public func translate(to language: TranslationLanguage,completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadRead(completion: ((Error?) -> Void)? = nil)
+ public func markThreadRead(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func markThreadUnread(completion: ((Error?) -> Void)? = nil)
+ public func markThreadUnread(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func loadThread(replyLimit: Int? = nil,participantLimit: Int? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping ((Result<ChatThread, Error>) -> Void))
+ public func updateThread(title: String?,extraData: [String: RawJSON]? = nil,unsetProperties: [String]? = nil,completion: @escaping @MainActor @Sendable(Result<ChatThread, Error>) -> Void)
- public func stopLiveLocationSharing(completion: ((Result<SharedLocation, Error>) -> Void)? = nil)
+ public func stopLiveLocationSharing(completion: (@MainActor @Sendable(Result<SharedLocation, Error>) -> Void)? = nil)
- public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: ((Result<DraftMessage, Error>) -> Void)? = nil)
+ public func updateDraftReply(text: String,isSilent: Bool = false,attachments: [AnyAttachmentPayload] = [],mentionedUserIds: [UserId] = [],quotedMessageId: MessageId? = nil,showReplyInChannel: Bool = false,command: Command? = nil,extraData: [String: RawJSON] = [:],completion: (@MainActor @Sendable(Result<DraftMessage, Error>) -> Void)? = nil)
- public func loadDraftReply(completion: ((Result<DraftMessage?, Error>) -> Void)? = nil)
+ public func loadDraftReply(completion: (@MainActor @Sendable(Result<DraftMessage?, Error>) -> Void)? = nil)
- public func deleteDraftReply(completion: ((Error?) -> Void)? = nil)
+ public func deleteDraftReply(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public func createReminder(remindAt: Date? = nil,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func createReminder(remindAt: Date? = nil,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func updateReminder(remindAt: Date?,completion: ((Result<MessageReminder, Error>) -> Void)? = nil)
+ public func updateReminder(remindAt: Date?,completion: (@MainActor @Sendable(Result<MessageReminder, Error>) -> Void)? = nil)
- public func deleteReminder(completion: ((Error?) -> Void)? = nil)
+ public func deleteReminder(completion: (@MainActor @Sendable(Error?) -> Void)? = nil)
- public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol GiphyActionContentViewDelegate: ChatMessageContentViewDelegate
- public struct AttachmentDownloadingState: Hashable
+ public struct AttachmentDownloadingState: Hashable, Sendable
- public final class ClientHasBeenDeallocated: ClientError
+ public final class ClientHasBeenDeallocated: ClientError, @unchecked Sendable
- public class MessageReminderDeletedEvent: Event
+ public final class MessageReminderDeletedEvent: Event
- public enum ChannelType: Codable, Hashable
+ public enum ChannelType: Codable, Hashable, Sendable
- public struct ImageResize
+ public struct ImageResize: Sendable
- public protocol FilterValue: Encodable
+ public protocol FilterValue: Encodable, Sendable
- public enum ConnectionStatus: Equatable
+ public enum ConnectionStatus: Equatable, Sendable
- public protocol ImageProcessor
+ public protocol ImageProcessor: Sendable
- public protocol CustomEventPayload: Codable, Hashable
+ public protocol CustomEventPayload: Codable, Hashable, Sendable
- public struct ThreadParticipant: Equatable
+ public struct ThreadParticipant: Equatable, Sendable
public struct StreamAssetPropertyLoader: AssetPropertyLoading
- public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping (Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
+ public func loadProperties(_ properties: [AssetProperty],of asset: Asset,completion: @escaping @Sendable(Result<Asset, AssetPropertyLoadingCompositeError>) -> Void)
- public struct AnyAttachmentPayload
+ public struct AnyAttachmentPayload: Sendable
- public let payload: Encodable
+ public let payload: (Encodable & Sendable)
- public final class InvalidToken: ClientError
+ public final class InvalidToken: ClientError, @unchecked Sendable
@available(iOSApplicationExtension, unavailable) open class ChatMessageListVC: _ViewController, ThemeProvider, ChatMessageListScrollOverlayDataSource, ChatMessageActionsVCDelegate, ChatMessageContentViewDelegate, GalleryContentViewDelegate, GiphyActionContentViewDelegate, FileActionContentViewDelegate, LinkPreviewViewDelegate, PollAttachmentViewInjectorDelegate, UITableViewDataSource, UITableViewDelegate, UIGestureRecognizerDelegate, VoiceRecordingAttachmentPresentationViewDelegate
- open func jumpToUnreadMessage(animated: Bool = true,onHighlight: ((IndexPath) -> Void)? = nil)
+ open func jumpToUnreadMessage(animated: Bool = true,onHighlight: (@Sendable(IndexPath) -> Void)? = nil)
- public protocol ChatMessageListVCDelegate: AnyObject
+ @MainActor public protocol ChatMessageListVCDelegate: AnyObject
public struct LateResize: ImageProcessing
- @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping () -> CGSize)
+ @available(*, deprecated, message: "Use init(id:sizeProvider:) instead") public init(sizeProvider: @escaping @Sendable() -> CGSize)
- public init(id: String,sizeProvider: @escaping () -> CGSize)
+ public init(id: String,sizeProvider: @escaping @Sendable() -> CGSize)
- public enum LocalAttachmentState: Hashable
+ public enum LocalAttachmentState: Hashable, Sendable
- public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
+ @MainActor public protocol FileActionContentViewDelegate: ChatMessageContentViewDelegate
- open class BaseLogDestination: LogDestination
+ open class BaseLogDestination: LogDestination, @unchecked Sendable
- public struct QueryOptions: OptionSet, Encodable
+ public struct QueryOptions: OptionSet, Encodable, Sendable
- public struct MuteDetails: Equatable
+ public struct MuteDetails: Equatable, Sendable
- public struct TranslationLanguage: Hashable
+ public struct TranslationLanguage: Hashable, Sendable
- public protocol UploadedAttachmentPostProcessor
+ public protocol UploadedAttachmentPostProcessor: Sendable
- public struct MessageDeliveryStatus: RawRepresentable, Hashable
+ public struct MessageDeliveryStatus: RawRepresentable, Hashable, Sendable
- public struct APIKey: Equatable
+ public struct APIKey: Equatable, Sendable
- public struct MessageSearchQuery: Encodable
+ public struct MessageSearchQuery: Encodable, Sendable
open class NukeImageLoader: ImageLoading
- @discardableResult open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: ((Result<UIImage, Error>) -> Void)?)-> Cancellable?
+ @discardableResult @MainActor open func loadImage(into imageView: UIImageView,from url: URL?,with options: ImageLoaderOptions,completion: (@MainActor @Sendable(Result<UIImage, Error>) -> Void)?)-> Cancellable?
- @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping ((Result<UIImage, Error>) -> Void))-> Cancellable?
+ @discardableResult open func downloadImage(with request: ImageDownloadRequest,completion: @escaping @MainActor @Sendable(Result<UIImage, Error>) -> Void)-> Cancellable?
- open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping (([Result<UIImage, Error>]) -> Void))
+ open func downloadMultipleImages(with requests: [ImageDownloadRequest],completion: @escaping @MainActor @Sendable([Result<UIImage, Error>]) -> Void)
- open class StreamAudioSessionConfigurator: AudioSessionConfiguring
+ open class StreamAudioSessionConfigurator: AudioSessionConfiguring, @unchecked Sendable
- open func requestRecordPermission(_ completionHandler: @escaping (Bool) -> Void)
+ open func requestRecordPermission(_ completionHandler: @escaping @Sendable(Bool) -> Void)
- public final class MemberList
+ public final class MemberList: Sendable
- @MainActor public lazy var state: MemberListState
+ @MainActor public var state: MemberListState
- public class Chat
+ public class Chat: @unchecked Sendable
- @MainActor public lazy var state: ChatState
+ @MainActor public var state: ChatState
- public func subscribe(toEvent event: E.Type,handler: @escaping (E) -> Void)-> AnyCancellable
+ public func subscribe(toEvent event: E.Type,handler: @escaping @Sendable(E) -> Void)-> AnyCancellable
- public func subscribe(_ handler: @escaping (Event) -> Void)-> AnyCancellable
+ public func subscribe(_ handler: @escaping @Sendable(Event) -> Void)-> AnyCancellable
- public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: ((Double) -> Void)? = nil)async throws -> UploadedAttachment
+ public func uploadAttachment(with localFileURL: URL,type: AttachmentType,progress: (@Sendable(Double) -> Void)? = nil)async throws -> UploadedAttachment
extension ImageAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
extension VideoAttachmentPayload: AttachmentPreviewProvider
- public func previewView(components: Components)-> UIView
+ @MainActor public func previewView(components: Components)-> UIView
- open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate
+ open class StreamAudioPlayer: AudioPlaying, AppStateObserverDelegate, @unchecked Sendable
- public final class TooManyFailedTokenRefreshAttempts: ClientError
+ public final class TooManyFailedTokenRefreshAttempts: ClientError, @unchecked Sendable
- public struct PushNotificationType: Equatable
+ public struct PushNotificationType: Equatable, Sendable
- public static var messageNew: PushNotificationType
+ public static let messageNew: PushNotificationType
- public static var messageReminderDue: PushNotificationType
+ public static let messageReminderDue: PushNotificationType
- public static var messageUpdated: PushNotificationType
+ public static let messageUpdated: PushNotificationType
- public static var reactionNew: PushNotificationType
+ public static let reactionNew: PushNotificationType
- public class DataController: Controller
+ public class DataController: Controller, @unchecked Sendable
- public var callbackQueue: DispatchQueue
+
-
+
-
+ public func synchronize(_ completion: (@MainActor @Sendable(_ error: Error?) -> Void)? = nil)
- public func synchronize(_ completion: ((_ error: Error?) -> Void)? = nil)
+
-
+
-
+ public enum State: Equatable, Sendable
- public enum State: Equatable
+
-
+ case initialized
- case initialized
+ case localDataFetched
- case localDataFetched
+ case localDataFetchFailed(ClientError)
- case localDataFetchFailed(ClientError)
+ case remoteDataFetched
- case remoteDataFetched
+ case remoteDataFetchFailed(ClientError)
- case remoteDataFetchFailed(ClientError)
public struct AIIndicatorStopEvent: CustomEventPayload, Event
- public static var eventType: EventType
+ public static let eventType: EventType
- public struct Distribution: Equatable
+ public struct Distribution: Equatable, Sendable |
SDK Size
|
|
@@ -0,0 +1,213 @@ | |||
// |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not review anything in the StreamNuke folder since this is not ours.
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
SDK Performance
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good ✅ Left few small comments, and let's do a round of tests. Did you test the changes already?
@@ -35,7 +35,7 @@ enum UserPayloadsCodingKeys: String, CodingKey, CaseIterable { | |||
// MARK: - GET users | |||
|
|||
/// An object describing the incoming user JSON payload. | |||
class UserPayload: Decodable { | |||
class UserPayload: Decodable, @unchecked Sendable { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not final, but unchecked Sendable like the others?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is because it is subclassed here:
final class CurrentUserPayload: UserPayload, @unchecked Sendable {
} else { | ||
callbackQueue.async { | ||
DispatchQueue.main.async { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't we use the StreamConcurrency.onMain here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a tiny difference and I did not want to change it (being extra careful). StreamConcurrency.onMain
has DispatchQueue.main.sync
here because it supports returning a value (needed in some cases).
@@ -135,10 +134,16 @@ public class PollController: DataController, DelegateCallable, DataStoreProvider | |||
) | |||
pollsRepository = client.pollsRepository | |||
super.init() | |||
eventsController.delegate = self | |||
eventsObserver = client.subscribe(toEvent: PollVoteChangedEvent.self, handler: { [weak self] event in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we change this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we changed controller delegates to be @mainactor (delegates ran on the callbackQueue which is main), then this has a side-effect where controller can't conform to EventsControllerDelegate
easily since delegate conformance would then require main actor, but controller types are not.
@MainActor public protocol EventsControllerDelegate: AnyObject {
Option 1 (current): Add @mainactor toEventsControllerDelegate
and change the code where we use it in controllers
Option 2: Do not add @mainactor to EventsControllerDelegate
, but if @mainactor view model or etc implements it, it as to use nonisolated for the delegate method and dispatch the call to main thread.
@@ -2,7 +2,7 @@ | |||
// Copyright © 2025 Stream.io Inc. All rights reserved. | |||
// | |||
|
|||
import CoreData | |||
@preconcurrency import CoreData |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting, why do we need it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does not like setting merge policy.
Sources/StreamChat/Database/DatabaseContainer.swift:25:31 Reference to var 'NSMergeByPropertyObjectTrumpMergePolicy' is not concurrency-safe because it involves shared mutable state
@@ -150,7 +150,7 @@ struct GzipError: Swift.Error { | |||
|
|||
init(code: Int32, msg: UnsafePointer<CChar>?) { | |||
message = { | |||
guard let msg = msg, let message = String(validatingUTF8: msg) else { | |||
guard let msg = msg, let message = String(validatingCString: msg) else { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we change this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a deprecated in Swift 6: reference and Xcode shows a warning here since we bumped Swift version.
@laevandus actually it doesn't build for me on Xcode 16.2. |
SDK Size
|
Important
This PR is for next major version 5 and is going to merged into
v5
branch.🔗 Issue Links
Resolves: IOS-734
Resolves: IOS-735
🎯 Goal
Use Swift 6 with strict concurrency checking set to complete
📝 Summary
🛠 Implementation
Tried to make it as concise as possible, therefore in some cases there is
nonisolated(unsafe)
, because fixing them properly leads to huge refactoring (too large scope). In many cases this is actually all right.🧪 Manual Testing Notes
Needs full regression testing round.
☑️ Contributor Checklist
docs-content
repo