import * as react from 'react'; import react__default from 'react'; declare enum ChatMessageStatus { SENDING = "Sending", SENT = "Sent", RECEIVED = "Received", SEEN = "Seen", FAILED = "Failed" } type MessageAttachment = { id: string; url: string; type: "image" | "video" | "audio" | "file"; title?: string; }; type ChatMessage = { id: string; status?: ChatMessageStatus; timestamp?: string; alignment?: "left" | "right" | "stretch"; isLastInGroup?: boolean; textualContent?: string; attachments?: MessageAttachment[]; customRender?: React.ReactNode; slotAboveBubble?: React.ReactNode; slotBelowBubble?: React.ReactNode; }; type ChatPreviewProps = { name: string; previewText: string; profilePhotoUrl?: string; status?: ChatMessageStatus; timestamp?: string; slotBelowTimestamp?: React.ReactNode; }; declare const ChatPreview: React.FC; type ChatNavBarProps = { title: string; subtitle?: string; profilePhotoUrl?: string; hideBackButton?: boolean; backButtonUnreadCount?: number; onClose?: () => void; onClick?: () => void; rightSlot?: React.ReactNode; }; declare const ChatNavBar: React.FC; type ChatInputProps = { onSend: (text: string) => void; placeholder?: string; defaultValue?: string; leftSlot?: react__default.ReactNode; rightSlot?: react__default.ReactNode; disabled?: boolean; }; type ChatInputHandle = { focus: () => void; }; declare const _default$3: react__default.ForwardRefExoticComponent>; type ChatMessagesListProps = { messages: ChatMessage[]; scrolledUpThreshold?: number; onScrolledUpChange?: (isScrolledUp: boolean) => void; onAttachmentClick?: (attachment: MessageAttachment, message: ChatMessage) => void; }; type ChatMessagesListHandle = { scrollToBottom: (smooth?: boolean) => void; }; declare const _default$2: react.MemoExoticComponent>>; type AttachmentViewerProps = { current: MessageAttachment; onClose: () => void; context?: ChatMessage; }; declare const AttachmentViewer: React.FC; type ProfilePictureProps = { profilePhotoUrl?: string; size?: "xl" | "lg" | "md" | "sm"; }; declare const ProfilePicture: React.FC; type MenuItemProps = { text: string; onClick: () => void; leftSlot?: React.ReactNode; }; declare const MenuItem: React.FC; type AddAttachmentsMenuProps = { onSelect: (files: File[]) => void; }; declare const AddAttachmentsMenu: React.FC; type ChatBubbleProps = { timestamp?: string; status?: ChatMessageStatus; align?: "left" | "right" | "stretch"; isLastInGroupedMessages?: boolean; aboveBubbleSlot?: React.ReactNode; belowBubbleSlot?: React.ReactNode; }; declare const _default$1: react.NamedExoticComponent>; type ChatProps = { chatTitle: string; messages: ChatMessage[]; onSend: (message: ChatMessage) => void; hideAddAttachmentsButton?: boolean; hideNavBarBackButton?: boolean; chatSubtitle?: string; profilePhotoUrl?: string; disableChatInput?: boolean; hideChatInput?: boolean; onClose?: () => void; }; type ChatHandle = { scrollToBottom: (smooth?: boolean) => void; focusChatInput: () => void; }; declare const _default: react.ForwardRefExoticComponent>; export { AddAttachmentsMenu, AttachmentViewer, _default as Chat, _default$1 as ChatBubble, type ChatHandle, _default$3 as ChatInput, type ChatInputHandle, type ChatMessage, ChatMessageStatus, _default$2 as ChatMessagesList, type ChatMessagesListHandle, ChatNavBar, ChatPreview, MenuItem, type MessageAttachment, ProfilePicture };