///
import { CometChat } from "@cometchat-pro/react-native-chat";
import { MessageBubbleAlignmentType } from "../constants/UIKitConstants";
import { CometChatMessageOption } from "../modals/CometChatMessageOption";
import { CometChatMessageTemplate } from "../modals/CometChatMessageTemplate";
import { CometChatTheme } from "../resources/CometChatTheme";
import { AudioBubbleStyleInterface } from "../views/CometChatAudioBubble";
import { FileBubbleStyleInterface } from "../views/CometChatFileBubble";
import { ImageBubbleStyleInterface } from "../views/CometChatImageBubble";
import { VideoBubbleStyleInterface } from "../views/CometChatVideoBubble";
export interface DataSource {
getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getAudioMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getVideoMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getImageMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getFileMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getCommonOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group: CometChat.Group): Array;
getBottomView(message: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType): JSX.Element;
getDeleteMessageBubble(message: CometChat.BaseMessage, theme: CometChatTheme): JSX.Element;
getVideoMessageBubble(videoUrl: string, thumbnailUrl: string, message: CometChat.MediaMessage, theme: CometChatTheme, videoBubbleStyle: VideoBubbleStyleInterface): any;
getTextMessageBubble(messageText: string, message: CometChat.TextMessage, alignment: MessageBubbleAlignmentType, theme: CometChatTheme): JSX.Element;
getImageMessageBubble(imageUrl: string, caption: string, style: ImageBubbleStyleInterface, message: CometChat.MediaMessage, theme: CometChatTheme): JSX.Element;
getAudioMessageBubble(audioUrl: string, title: string, style: AudioBubbleStyleInterface, message: CometChat.MediaMessage, theme: CometChatTheme): JSX.Element;
getFileMessageBubble(fileUrl: string, title: string, style: FileBubbleStyleInterface, message: CometChat.MediaMessage, theme: CometChatTheme): JSX.Element;
getGroupActionBubble(message: CometChat.BaseMessage, theme: CometChatTheme): JSX.Element;
getTextMessageContentView(message: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType, theme: CometChatTheme): JSX.Element;
getAudioMessageContentView(message: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType, theme: CometChatTheme): JSX.Element;
getVideoMessageContentView(message: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType, theme: CometChatTheme): JSX.Element;
getImageMessageContentView(message: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType, theme: CometChatTheme): JSX.Element;
getFileMessageContentView(message: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType, theme: CometChatTheme): JSX.Element;
getTextMessageTemplate(theme: CometChatTheme): CometChatMessageTemplate;
getAudioMessageTemplate(theme: CometChatTheme): CometChatMessageTemplate;
getVideoMessageTemplate(theme: CometChatTheme): CometChatMessageTemplate;
getImageMessageTemplate(theme: CometChatTheme): CometChatMessageTemplate;
getFileMessageTemplate(theme: CometChatTheme): CometChatMessageTemplate;
getAllMessageTemplates(theme: CometChatTheme): Array;
getMessageTemplate(messageType: string, MessageCategory: string, theme: CometChatTheme): CometChatMessageTemplate | null;
getGroupActionTemplate(theme: CometChatTheme): CometChatMessageTemplate;
getAllMessageTypes(): Array;
getAllMessageCategories(): Array;
getAuxiliaryOptions(user: CometChat.User, group: CometChat.Group, id: Map): JSX.Element;
getId(): string;
getMessageTypeToSubtitle(messageType: string): string;
getAttachmentOptions: (user?: any, group?: any, composerId?: any) => any;
getAuxiliaryButtonOptions: () => any;
getLastConversationMessage(conversation: CometChat.Conversation): string;
getAuxiliaryHeaderAppbarOptions(user?: CometChat.User, group?: CometChat.Group, theme?: CometChatTheme): JSX.Element;
}