import Foundation public struct GlobalMessageIdsNamespace: Hashable { public let peerIdNamespace: PeerId.Namespace public let messageIdNamespace: MessageId.Namespace public init(peerIdNamespace: PeerId.Namespace, messageIdNamespace: MessageId.Namespace) { self.peerIdNamespace = peerIdNamespace self.messageIdNamespace = messageIdNamespace } } public final class SeedConfiguration { public let globalMessageIdsPeerIdNamespaces: Set public let initializeChatListWithHole: (topLevel: ChatListHole?, groups: ChatListHole?) public let messageHoles: [PeerId.Namespace: [MessageId.Namespace: Set]] public let messageTagsWithSummary: MessageTags public let existingGlobalMessageTags: GlobalMessageTags public let peerNamespacesRequiringMessageTextIndex: [PeerId.Namespace] public let peerSummaryCounterTags: (Peer) -> PeerSummaryCounterTags public let additionalChatListIndexNamespace: MessageId.Namespace? public let messageNamespacesRequiringGroupStatsValidation: Set public let defaultMessageNamespaceReadStates: [MessageId.Namespace: PeerReadState] public let chatMessagesNamespaces: Set public init(globalMessageIdsPeerIdNamespaces: Set, initializeChatListWithHole: (topLevel: ChatListHole?, groups: ChatListHole?), messageHoles: [PeerId.Namespace: [MessageId.Namespace: Set]], existingMessageTags: MessageTags, messageTagsWithSummary: MessageTags, existingGlobalMessageTags: GlobalMessageTags, peerNamespacesRequiringMessageTextIndex: [PeerId.Namespace], peerSummaryCounterTags: @escaping (Peer) -> PeerSummaryCounterTags, additionalChatListIndexNamespace: MessageId.Namespace?, messageNamespacesRequiringGroupStatsValidation: Set, defaultMessageNamespaceReadStates: [MessageId.Namespace: PeerReadState], chatMessagesNamespaces: Set) { self.globalMessageIdsPeerIdNamespaces = globalMessageIdsPeerIdNamespaces self.initializeChatListWithHole = initializeChatListWithHole self.messageHoles = messageHoles self.messageTagsWithSummary = messageTagsWithSummary self.existingGlobalMessageTags = existingGlobalMessageTags self.peerNamespacesRequiringMessageTextIndex = peerNamespacesRequiringMessageTextIndex self.peerSummaryCounterTags = peerSummaryCounterTags self.additionalChatListIndexNamespace = additionalChatListIndexNamespace self.messageNamespacesRequiringGroupStatsValidation = messageNamespacesRequiringGroupStatsValidation self.defaultMessageNamespaceReadStates = defaultMessageNamespaceReadStates self.chatMessagesNamespaces = chatMessagesNamespaces } }