import { FC, ReactElement } from "react"; import { MessagePayload, EmojiPickerElementProps } from "../types"; import "./message-input.scss"; export interface MessageInputProps { /** Option to set a placeholder message to display in the text window. */ placeholder?: string; /** Option to set a draft message to display in the text window. */ draftMessage?: string; /** Option to attach sender data directly to each message. Enable it for high-throughput environments. * This is an alternative to providing a full list of users directly into the Chat provider. */ senderInfo?: boolean; /** Option to enable/disable firing the typing events when a user is typing a message. */ typingIndicator?: boolean; /** Option to enable/disable the internal file upload capability. */ fileUpload?: "image" | "all"; /** Option to disable the input from composing and sending messages. */ disabled?: boolean; /** Option to hide the Send button. */ hideSendButton?: boolean; /** Custom UI component to override default display for the Send button. */ sendButton?: JSX.Element | string; /** Option to pass in an emoji picker if you want it to be rendered in the input. For more details, refer to the Emoji Pickers section in the docs. */ emojiPicker?: ReactElement; /** Callback to handle an event when the text value changes. */ onChange?: (value: string) => void; /** Callback to modify message content before sending it. This only works for text messages, not files. */ onBeforeSend?: (value: MessagePayload) => MessagePayload; /** Callback for extra actions after sending a message. */ onSend?: (value: MessagePayload | File) => void; /** Option to provide an extra actions renderer to add custom action buttons to the input. */ extraActionsRenderer?: () => JSX.Element; /** Option to provide rows numer in message input **/ rows: number; } /** * Allows users to compose messages using text and emojis * and automatically publish them on PubNub channels upon sending. */ export declare const MessageInput: FC;