import '../../../stories/Components/TestFooter/TestFooter'; import '../../../stories/Components/Toaster/Toaster'; import '../../../stories/Components/AttachmentBox/AttachmentPreview/AttachmentPreview'; import '../../../stories/Components/ReplyBlock/ReplyBlock'; interface MediaPreview { type: string; src: string; file: File; } interface MentionedUser { wordCount: number; userId: string; order: number; } interface ConversationConfig { pushNotifications: boolean; readEvents: boolean; typingEvents: boolean; } interface Member { isAdmin: boolean; lastMessageSentAt: number; lastSeen: number; metaData: { assetList?: Array>; country?: string; [key: string]: any; }; online: boolean; userId: string; userIdentifier: string; userName: string; userProfileImageUrl: string; } interface LastReadAt { [userId: string]: number; } interface UsersOwnDetails { isAdmin: boolean; lastMessageSentAt: number; memberId: string; } interface ConversationDetails { adminCount: number; config: ConversationConfig; conversationImageUrl: string; conversationTitle: string; conversationType: number; createdAt: number; createdBy: string; createdByUserImageUrl: string; createdByUserName: string; customType: string | null; hiddenForCreator: boolean; isGroup: boolean; lastMessageSentAt: number; lastReadAt: LastReadAt; members: Member[]; membersCount: number; metaData: Record | null; opponentDetails: Record; privateOneToOne: boolean; searchableTags: string[]; updatedAt: number; usersOwnDetails: UsersOwnDetails; } declare class ChatFooter { messageBody: string; attachmentDetails: any; deviceId: string; mediaPreviews: MediaPreview[]; inputKey: number; showCloseIcon: Boolean; mentionUserList: MentionedUser[]; userMetaData: any; refetchMessages: () => void; changeMessageSendingState: (newState: boolean) => void; changeScrollToBottomState: (newState: boolean) => void; updateAllMessages: (newMessages: any) => void; allMessages: any; selectedConversationId: string; replyMessage: any; handleremoveReplyMessage: () => void; sortConversationsByLatestMessage: (conversations: any[]) => void; conversationDetails: ConversationDetails; allConversationList: any; updateConversationListProp: (updatedList: any[]) => void; showCamera: Boolean; linkPreview: String; linkToPreview: String; detectLinks: Boolean; isGroupcast: Boolean; groupcastId: String; private inputRef; private debounceTimeout; componentWillLoad(): Promise; handleInputChange: (event: any) => Promise; debounceApiCall: () => void; handleCameraClick: () => void; postTyping: () => Promise; generateSearchableTags: (body: string) => string[]; handleFileUpload: (event: CustomEvent) => void; updateConversationListOnMessageSend(localMessage: any): Promise; createLocalMessage: (messageBody: string, attachments: any, messageId: string) => { metaData: { parentMessageName: any; parentMessageMediaUrl: any; parentMessageType: any; parentMessageId: any; parentMessage: any; parentMessageTime: any; parentMessageSenderId: any; parentMessageSenderName: any; }; mentionedUsers: MentionedUser[]; attachments: any; body: string; messageId: string; deliveredToAll: string; senderId: any; messageType: number; sentAt: number; }; updateMessageWithApiResponse: (messageId: string, oldMessageId: string) => void; clearLinkPreview(): void; handleSendMessage: () => Promise; handleDirectAudioUpload: (audioFile: File) => Promise; sendTextMessage(body: string, conversationId: string): Promise; sendMediaMessage(conversationId: string): Promise; uploadAndSendMedia(presignedUrls: any[], attachments: any[], conversationId: string, oldMessageId: string): Promise; getReplyMetadata(): { parentMessageName: any; parentMessageMediaUrl: any; parentMessageType: any; parentMessageId: any; parentMessage: any; parentMessageTime: any; parentMessageSenderId: any; parentMessageSenderName: any; }; handleClearAttachment: () => void; handleDataChange(): Promise; replyFocusHandler(): void; handleMentionUser(event: CustomEvent): void; handleSendQrCodeMessage(event: CustomEvent): void; handleQrCodeMessageReady(event: CustomEvent): void; handleCameraCapture: (captureData: { file: File; type: string; src: string; }) => Promise; render(): any; } export { ChatFooter };