package dev.inmo.tgbotapi.types.message.abstracts import dev.inmo.tgbotapi.types.MessageThreadId import dev.inmo.tgbotapi.types.chat.* import dev.inmo.tgbotapi.types.message.content.MessageContent sealed interface GroupContentMessage : PublicContentMessage { override val chat: PreviewGroupChat } sealed interface PotentiallyFromUserGroupContentMessage : GroupContentMessage { val senderBoostsCount: Int? } sealed interface ForumContentMessage : GroupContentMessage, PossiblyTopicMessage { override val chat: PreviewForumChat override val threadId: MessageThreadId } sealed interface FromChannelGroupContentMessage : GroupContentMessage, SignedMessage, WithSenderChatMessage { val channel: PreviewChannelChat override val senderChat: PreviewChannelChat get() = channel } interface ConnectedFromChannelGroupContentMessage : FromChannelGroupContentMessage interface UnconnectedFromChannelGroupContentMessage : FromChannelGroupContentMessage interface AnonymousGroupContentMessage : GroupContentMessage, SignedMessage, WithSenderChatMessage { override val senderChat: PreviewGroupChat get() = chat } interface CommonGroupContentMessage : GroupContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage interface FromChannelForumContentMessage : FromChannelGroupContentMessage, ForumContentMessage interface AnonymousForumContentMessage : ForumContentMessage, SignedMessage, WithSenderChatMessage { override val senderChat: PreviewGroupChat get() = chat } interface CommonForumContentMessage : ForumContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage