import { default as React } from 'react'; import { AttachmentDisplayConfig, ChatColorMode, ChatHeaderConfig, ChatIcons, ChatMessage as ChatMessageType, ChatPersist, ChatSendPayload, ChatTheme, ChatTooltips, ComposerCtx, EmojiConfig, FeedbackConfig, HeaderCtx, MessageActionsConfig, ReactionsConfig, ReplyConfig, TypingUser, UserActionEvent } from '../types'; export interface ChatWindowProps { messages: ChatMessageType[]; onSendMessage?: (data: ChatSendPayload) => void; onUserAction?: (event: UserActionEvent) => void; composerText?: string; onComposerTextChange?: (text: string) => void; composerPlaceholder?: string; composerDisabled?: boolean; renderComposer?: (ctx: ComposerCtx) => React.ReactNode; showSendButton?: boolean; sendOnEnter?: boolean; showMic?: boolean; onMicClick?: () => void; isMicActive?: boolean; emoji?: EmojiConfig; attachments?: AttachmentDisplayConfig; header?: ChatHeaderConfig; renderHeader?: (ctx: HeaderCtx) => React.ReactNode; icons?: ChatIcons; tooltips?: ChatTooltips; onMinimize?: () => boolean | Promise | void | Promise; onClose?: () => boolean | Promise | void | Promise; onRestart?: () => boolean | Promise | void | Promise; isMinimized?: boolean; headerSlot?: React.ReactNode; aboveComposerSlot?: React.ReactNode; belowComposerSlot?: React.ReactNode; showTime?: boolean; showAvatars?: boolean; customMessageTypes?: Record>; messageActions?: MessageActionsConfig; reactions?: ReactionsConfig; feedback?: FeedbackConfig; reply?: ReplyConfig; typingUsers?: TypingUser[]; showLoader?: boolean; onRetryMessage?: (messageId: string) => void; draggable?: boolean; resizable?: boolean; persist?: ChatPersist; persistKey?: string; defaultPosition?: { x?: number; y?: number; }; defaultSize?: { width?: number; height?: number; }; minWidth?: number; minHeight?: number; maxWidth?: number | string; maxHeight?: number | string; theme?: ChatTheme; colorMode?: ChatColorMode; cssVars?: Record; className?: string; style?: React.CSSProperties; align?: 'bottomRight' | 'bottomLeft'; spacingCorner?: string; spacingBottom?: string; ariaLabel?: string; announcements?: boolean; trapFocus?: boolean; shortcutsHelp?: boolean; fullscreen?: boolean; noShadow?: boolean; noAnimation?: boolean; fontFamily?: string; width?: number | string; height?: number | string; } export declare function ChatWindow(props: ChatWindowProps): React.JSX.Element | null; export default ChatWindow;