UNPKG

devextreme-react

Version:

DevExtreme UI and Visualization Components for React

616 lines (614 loc) • 27.9 kB
/*! * devextreme-react * Version: 26.1.3 * Build date: Wed Jun 10 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/DevExtreme */ import * as React from "react"; import { Ref, ReactElement } from "react"; import dxChat, { Properties } from "devextreme/ui/chat"; import { IHtmlOptions, NestedComponentMeta } from "./core/component"; import type { Message, AttachmentDownloadClickEvent, DisposingEvent, InitializedEvent, MessageDeletedEvent, MessageDeletingEvent, MessageEditCanceledEvent, MessageEditingStartEvent, MessageEnteredEvent, MessageUpdatedEvent, MessageUpdatingEvent, TypingEndEvent, TypingStartEvent, Attachment as ChatAttachment, User as ChatUser, SendButtonAction, SendButtonClickEvent } from "devextreme/ui/chat"; import type { DisposingEvent as FileUploaderDisposingEvent, InitializedEvent as FileUploaderInitializedEvent, BeforeSendEvent, ContentReadyEvent, DropZoneEnterEvent, DropZoneLeaveEvent, FilesUploadedEvent, OptionChangedEvent, ProgressEvent, UploadAbortedEvent, UploadedEvent, UploadErrorEvent, UploadStartedEvent, ValueChangedEvent, UploadHttpMethod, FileUploadMode } from "devextreme/ui/file_uploader"; import type { DisposingEvent as SpeechToTextDisposingEvent, InitializedEvent as SpeechToTextInitializedEvent, ContentReadyEvent as SpeechToTextContentReadyEvent, OptionChangedEvent as SpeechToTextOptionChangedEvent, CustomSpeechRecognizer as SpeechToTextCustomSpeechRecognizer, EndEvent, ErrorEvent, ResultEvent, StartClickEvent, StopClickEvent, SpeechRecognitionConfig as SpeechToTextSpeechRecognitionConfig } from "devextreme/ui/speech_to_text"; import type { DisposingEvent as ButtonGroupDisposingEvent, InitializedEvent as ButtonGroupInitializedEvent, ContentReadyEvent as ButtonGroupContentReadyEvent, OptionChangedEvent as ButtonGroupOptionChangedEvent, dxButtonGroupItem, ItemClickEvent, SelectionChangedEvent } from "devextreme/ui/button_group"; import type { Format, ValidationStatus, ButtonType, template, ButtonStyle, SingleMultipleOrNone } from "devextreme/common"; import type { CollectionWidgetItem } from "devextreme/ui/collection/ui.collection_widget.base"; import type UploadInfo from "devextreme/file_management/upload_info"; type ReplaceFieldTypes<TSource, TReplacement> = { [P in keyof TSource]: P extends keyof TReplacement ? TReplacement[P] : TSource[P]; }; type IChatOptionsNarrowedEvents = { onAttachmentDownloadClick?: ((e: AttachmentDownloadClickEvent) => void) | undefined; onDisposing?: ((e: DisposingEvent) => void); onInitialized?: ((e: InitializedEvent) => void); onMessageDeleted?: ((e: MessageDeletedEvent) => void) | undefined; onMessageDeleting?: ((e: MessageDeletingEvent) => void) | undefined; onMessageEditCanceled?: ((e: MessageEditCanceledEvent) => void) | undefined; onMessageEditingStart?: ((e: MessageEditingStartEvent) => void) | undefined; onMessageEntered?: ((e: MessageEnteredEvent) => void) | undefined; onMessageUpdated?: ((e: MessageUpdatedEvent) => void) | undefined; onMessageUpdating?: ((e: MessageUpdatingEvent) => void) | undefined; onTypingEnd?: ((e: TypingEndEvent) => void) | undefined; onTypingStart?: ((e: TypingStartEvent) => void) | undefined; }; type IChatOptions = React.PropsWithChildren<ReplaceFieldTypes<Properties, IChatOptionsNarrowedEvents> & IHtmlOptions & { emptyViewRender?: (...params: any) => React.ReactNode; emptyViewComponent?: React.ComponentType<any>; messageRender?: (...params: any) => React.ReactNode; messageComponent?: React.ComponentType<any>; defaultItems?: Array<Message>; onItemsChange?: (value: Array<Message>) => void; }>; interface ChatRef { instance: () => dxChat; } declare const Chat: (props: React.PropsWithChildren<IChatOptions> & { ref?: Ref<ChatRef>; }) => ReactElement | null; type IAlertProps = React.PropsWithChildren<{ id?: number | string; message?: string; }>; declare const Alert: ((props: IAlertProps) => React.FunctionComponentElement<React.PropsWithChildren<{ id?: string | number | undefined; message?: string | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IAttachmentProps = React.PropsWithChildren<{ name?: string; size?: number; }>; declare const Attachment: ((props: IAttachmentProps) => React.FunctionComponentElement<React.PropsWithChildren<{ name?: string | undefined; size?: number | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IAuthorProps = React.PropsWithChildren<{ avatarAlt?: string; avatarUrl?: string; id?: number | string; name?: string; }>; declare const Author: ((props: IAuthorProps) => React.FunctionComponentElement<React.PropsWithChildren<{ avatarAlt?: string | undefined; avatarUrl?: string | undefined; id?: string | number | undefined; name?: string | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IChatItemProps = React.PropsWithChildren<{ alt?: string; attachments?: Array<ChatAttachment>; author?: ChatUser; id?: number | string; isDeleted?: boolean; isEdited?: boolean; src?: string; text?: string; timestamp?: Date | number | string; type?: string | undefined; }>; declare const ChatItem: ((props: IChatItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{ alt?: string | undefined; attachments?: ChatAttachment[] | undefined; author?: ChatUser | undefined; id?: string | number | undefined; isDeleted?: boolean | undefined; isEdited?: boolean | undefined; src?: string | undefined; text?: string | undefined; timestamp?: string | number | Date | undefined; type?: string | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ICustomSpeechRecognizerProps = React.PropsWithChildren<{ enabled?: boolean; isListening?: boolean; }>; declare const CustomSpeechRecognizer: ((props: ICustomSpeechRecognizerProps) => React.FunctionComponentElement<React.PropsWithChildren<{ enabled?: boolean | undefined; isListening?: boolean | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IDayHeaderFormatProps = React.PropsWithChildren<{ currency?: string; formatter?: ((value: number | Date) => string); parser?: ((value: string) => number | Date); precision?: number; type?: Format | string; useCurrencyAccountingStyle?: boolean; }>; declare const DayHeaderFormat: ((props: IDayHeaderFormatProps) => React.FunctionComponentElement<React.PropsWithChildren<{ currency?: string | undefined; formatter?: ((value: number | Date) => string) | undefined; parser?: ((value: string) => number | Date) | undefined; precision?: number | undefined; type?: string | undefined; useCurrencyAccountingStyle?: boolean | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IEditingProps = React.PropsWithChildren<{ allowDeleting?: boolean | ((options: { component: dxChat; message: Message; }) => boolean); allowUpdating?: boolean | ((options: { component: dxChat; message: Message; }) => boolean); }>; declare const Editing: ((props: IEditingProps) => React.FunctionComponentElement<React.PropsWithChildren<{ allowDeleting?: boolean | ((options: { component: dxChat; message: Message; }) => boolean) | undefined; allowUpdating?: boolean | ((options: { component: dxChat; message: Message; }) => boolean) | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IFileUploaderOptionsProps = React.PropsWithChildren<{ abortUpload?: ((file: any, uploadInfo?: UploadInfo) => any); accept?: string; accessKey?: string | undefined; activeStateEnabled?: boolean; allowCanceling?: boolean; allowedFileExtensions?: Array<string>; chunkSize?: number; dialogTrigger?: any | string | undefined; disabled?: boolean; dropZone?: any | string | undefined; elementAttr?: Record<string, any>; focusStateEnabled?: boolean; height?: number | string | undefined; hint?: string | undefined; hoverStateEnabled?: boolean; inputAttr?: any; invalidFileExtensionMessage?: string; invalidMaxFileSizeMessage?: string; invalidMinFileSizeMessage?: string; isDirty?: boolean; isValid?: boolean; labelText?: string; maxFileSize?: number; minFileSize?: number; multiple?: boolean; name?: string; onBeforeSend?: ((e: BeforeSendEvent) => void); onContentReady?: ((e: ContentReadyEvent) => void); onDisposing?: ((e: FileUploaderDisposingEvent) => void); onDropZoneEnter?: ((e: DropZoneEnterEvent) => void); onDropZoneLeave?: ((e: DropZoneLeaveEvent) => void); onFilesUploaded?: ((e: FilesUploadedEvent) => void); onInitialized?: ((e: FileUploaderInitializedEvent) => void); onOptionChanged?: ((e: OptionChangedEvent) => void); onProgress?: ((e: ProgressEvent) => void); onUploadAborted?: ((e: UploadAbortedEvent) => void); onUploaded?: ((e: UploadedEvent) => void); onUploadError?: ((e: UploadErrorEvent) => void); onUploadStarted?: ((e: UploadStartedEvent) => void); onValueChanged?: ((e: ValueChangedEvent) => void); progress?: number; readOnly?: boolean; readyToUploadMessage?: string; rtlEnabled?: boolean; selectButtonText?: string; showFileList?: boolean; tabIndex?: number; uploadAbortedMessage?: string; uploadButtonText?: string; uploadChunk?: ((file: any, uploadInfo: UploadInfo) => any); uploadCustomData?: any; uploadedMessage?: string; uploadFailedMessage?: string; uploadFile?: ((file: any, progressCallback: (() => void)) => any); uploadHeaders?: any; uploadMethod?: UploadHttpMethod; uploadMode?: FileUploadMode; uploadUrl?: string; validationError?: any; validationErrors?: Array<any>; validationStatus?: ValidationStatus; value?: Array<any>; visible?: boolean; width?: number | string | undefined; defaultValue?: Array<any>; onValueChange?: (value: Array<any>) => void; }>; declare const FileUploaderOptions: ((props: IFileUploaderOptionsProps) => React.FunctionComponentElement<React.PropsWithChildren<{ abortUpload?: ((file: any, uploadInfo?: UploadInfo) => any) | undefined; accept?: string | undefined; accessKey?: string | undefined; activeStateEnabled?: boolean | undefined; allowCanceling?: boolean | undefined; allowedFileExtensions?: string[] | undefined; chunkSize?: number | undefined; dialogTrigger?: any | string | undefined; disabled?: boolean | undefined; dropZone?: any | string | undefined; elementAttr?: Record<string, any> | undefined; focusStateEnabled?: boolean | undefined; height?: number | string | undefined; hint?: string | undefined; hoverStateEnabled?: boolean | undefined; inputAttr?: any; invalidFileExtensionMessage?: string | undefined; invalidMaxFileSizeMessage?: string | undefined; invalidMinFileSizeMessage?: string | undefined; isDirty?: boolean | undefined; isValid?: boolean | undefined; labelText?: string | undefined; maxFileSize?: number | undefined; minFileSize?: number | undefined; multiple?: boolean | undefined; name?: string | undefined; onBeforeSend?: ((e: BeforeSendEvent) => void) | undefined; onContentReady?: ((e: ContentReadyEvent) => void) | undefined; onDisposing?: ((e: FileUploaderDisposingEvent) => void) | undefined; onDropZoneEnter?: ((e: DropZoneEnterEvent) => void) | undefined; onDropZoneLeave?: ((e: DropZoneLeaveEvent) => void) | undefined; onFilesUploaded?: ((e: FilesUploadedEvent) => void) | undefined; onInitialized?: ((e: FileUploaderInitializedEvent) => void) | undefined; onOptionChanged?: ((e: OptionChangedEvent) => void) | undefined; onProgress?: ((e: ProgressEvent) => void) | undefined; onUploadAborted?: ((e: UploadAbortedEvent) => void) | undefined; onUploaded?: ((e: UploadedEvent) => void) | undefined; onUploadError?: ((e: UploadErrorEvent) => void) | undefined; onUploadStarted?: ((e: UploadStartedEvent) => void) | undefined; onValueChanged?: ((e: ValueChangedEvent) => void) | undefined; progress?: number | undefined; readOnly?: boolean | undefined; readyToUploadMessage?: string | undefined; rtlEnabled?: boolean | undefined; selectButtonText?: string | undefined; showFileList?: boolean | undefined; tabIndex?: number | undefined; uploadAbortedMessage?: string | undefined; uploadButtonText?: string | undefined; uploadChunk?: ((file: any, uploadInfo: UploadInfo) => any) | undefined; uploadCustomData?: any; uploadedMessage?: string | undefined; uploadFailedMessage?: string | undefined; uploadFile?: ((file: any, progressCallback: (() => void)) => any) | undefined; uploadHeaders?: any; uploadMethod?: UploadHttpMethod | undefined; uploadMode?: FileUploadMode | undefined; uploadUrl?: string | undefined; validationError?: any; validationErrors?: any[] | undefined; validationStatus?: ValidationStatus | undefined; value?: any[] | undefined; visible?: boolean | undefined; width?: number | string | undefined; defaultValue?: any[] | undefined; onValueChange?: ((value: Array<any>) => void) | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IItemProps = React.PropsWithChildren<{ alt?: string; attachments?: Array<ChatAttachment>; author?: ChatUser; id?: number | string; isDeleted?: boolean; isEdited?: boolean; src?: string; text?: string; timestamp?: Date | number | string; type?: string | undefined | ButtonType; disabled?: boolean; elementAttr?: Record<string, any>; hint?: string; icon?: string; template?: ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | template; visible?: boolean; render?: (...params: any) => React.ReactNode; component?: React.ComponentType<any>; }>; declare const Item: ((props: IItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{ alt?: string | undefined; attachments?: ChatAttachment[] | undefined; author?: ChatUser | undefined; id?: string | number | undefined; isDeleted?: boolean | undefined; isEdited?: boolean | undefined; src?: string | undefined; text?: string | undefined; timestamp?: string | number | Date | undefined; type?: string | undefined | ButtonType; disabled?: boolean | undefined; elementAttr?: Record<string, any> | undefined; hint?: string | undefined; icon?: string | undefined; template?: template | ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | undefined; visible?: boolean | undefined; render?: ((...params: any) => React.ReactNode) | undefined; component?: React.ComponentType<any> | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IMessageTimestampFormatProps = React.PropsWithChildren<{ currency?: string; formatter?: ((value: number | Date) => string); parser?: ((value: string) => number | Date); precision?: number; type?: Format | string; useCurrencyAccountingStyle?: boolean; }>; declare const MessageTimestampFormat: ((props: IMessageTimestampFormatProps) => React.FunctionComponentElement<React.PropsWithChildren<{ currency?: string | undefined; formatter?: ((value: number | Date) => string) | undefined; parser?: ((value: string) => number | Date) | undefined; precision?: number | undefined; type?: string | undefined; useCurrencyAccountingStyle?: boolean | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ISendButtonOptionsProps = React.PropsWithChildren<{ action?: SendButtonAction; icon?: string; onClick?: ((e: SendButtonClickEvent) => void); }>; declare const SendButtonOptions: ((props: ISendButtonOptionsProps) => React.FunctionComponentElement<React.PropsWithChildren<{ action?: SendButtonAction | undefined; icon?: string | undefined; onClick?: ((e: SendButtonClickEvent) => void) | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ISpeechRecognitionConfigProps = React.PropsWithChildren<{ continuous?: boolean; grammars?: Array<string>; interimResults?: boolean; lang?: string; maxAlternatives?: number; }>; declare const SpeechRecognitionConfig: ((props: ISpeechRecognitionConfigProps) => React.FunctionComponentElement<React.PropsWithChildren<{ continuous?: boolean | undefined; grammars?: string[] | undefined; interimResults?: boolean | undefined; lang?: string | undefined; maxAlternatives?: number | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ISpeechToTextOptionsProps = React.PropsWithChildren<{ accessKey?: string | undefined; activeStateEnabled?: boolean; customSpeechRecognizer?: SpeechToTextCustomSpeechRecognizer; disabled?: boolean; elementAttr?: Record<string, any>; focusStateEnabled?: boolean; height?: number | string | undefined; hint?: string | undefined; hoverStateEnabled?: boolean; onContentReady?: ((e: SpeechToTextContentReadyEvent) => void); onDisposing?: ((e: SpeechToTextDisposingEvent) => void); onEnd?: ((e: EndEvent) => void) | undefined; onError?: ((e: ErrorEvent) => void) | undefined; onInitialized?: ((e: SpeechToTextInitializedEvent) => void); onOptionChanged?: ((e: SpeechToTextOptionChangedEvent) => void); onResult?: ((e: ResultEvent) => void) | undefined; onStartClick?: ((e: StartClickEvent) => void) | undefined; onStopClick?: ((e: StopClickEvent) => void) | undefined; rtlEnabled?: boolean; speechRecognitionConfig?: Record<string, any> | SpeechToTextSpeechRecognitionConfig; startIcon?: string; startText?: string; stopIcon?: string; stopText?: string; stylingMode?: ButtonStyle; tabIndex?: number; type?: ButtonType | string; visible?: boolean; width?: number | string | undefined; }>; declare const SpeechToTextOptions: ((props: ISpeechToTextOptionsProps) => React.FunctionComponentElement<React.PropsWithChildren<{ accessKey?: string | undefined; activeStateEnabled?: boolean | undefined; customSpeechRecognizer?: SpeechToTextCustomSpeechRecognizer | undefined; disabled?: boolean | undefined; elementAttr?: Record<string, any> | undefined; focusStateEnabled?: boolean | undefined; height?: number | string | undefined; hint?: string | undefined; hoverStateEnabled?: boolean | undefined; onContentReady?: ((e: SpeechToTextContentReadyEvent) => void) | undefined; onDisposing?: ((e: SpeechToTextDisposingEvent) => void) | undefined; onEnd?: ((e: EndEvent) => void) | undefined; onError?: ((e: ErrorEvent) => void) | undefined; onInitialized?: ((e: SpeechToTextInitializedEvent) => void) | undefined; onOptionChanged?: ((e: SpeechToTextOptionChangedEvent) => void) | undefined; onResult?: ((e: ResultEvent) => void) | undefined; onStartClick?: ((e: StartClickEvent) => void) | undefined; onStopClick?: ((e: StopClickEvent) => void) | undefined; rtlEnabled?: boolean | undefined; speechRecognitionConfig?: Record<string, any> | SpeechToTextSpeechRecognitionConfig | undefined; startIcon?: string | undefined; startText?: string | undefined; stopIcon?: string | undefined; stopText?: string | undefined; stylingMode?: ButtonStyle | undefined; tabIndex?: number | undefined; type?: string | undefined; visible?: boolean | undefined; width?: number | string | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ISuggestionsProps = React.PropsWithChildren<{ accessKey?: string | undefined; activeStateEnabled?: boolean; buttonTemplate?: ((buttonData: any, buttonContent: any) => string | any) | template; disabled?: boolean; elementAttr?: Record<string, any>; focusStateEnabled?: boolean; height?: number | string | undefined; hint?: string | undefined; hoverStateEnabled?: boolean; items?: Array<dxButtonGroupItem>; keyExpr?: ((item: any) => any) | string; onContentReady?: ((e: ButtonGroupContentReadyEvent) => void); onDisposing?: ((e: ButtonGroupDisposingEvent) => void); onInitialized?: ((e: ButtonGroupInitializedEvent) => void); onItemClick?: ((e: ItemClickEvent) => void); onOptionChanged?: ((e: ButtonGroupOptionChangedEvent) => void); onSelectionChanged?: ((e: SelectionChangedEvent) => void); rtlEnabled?: boolean; selectedItemKeys?: Array<any>; selectedItems?: Array<any>; selectionMode?: SingleMultipleOrNone; stylingMode?: ButtonStyle; tabIndex?: number; visible?: boolean; width?: number | string | undefined; defaultSelectedItemKeys?: Array<any>; onSelectedItemKeysChange?: (value: Array<any>) => void; defaultSelectedItems?: Array<any>; onSelectedItemsChange?: (value: Array<any>) => void; buttonRender?: (...params: any) => React.ReactNode; buttonComponent?: React.ComponentType<any>; }>; declare const Suggestions: ((props: ISuggestionsProps) => React.FunctionComponentElement<React.PropsWithChildren<{ accessKey?: string | undefined; activeStateEnabled?: boolean | undefined; buttonTemplate?: template | ((buttonData: any, buttonContent: any) => string | any) | undefined; disabled?: boolean | undefined; elementAttr?: Record<string, any> | undefined; focusStateEnabled?: boolean | undefined; height?: number | string | undefined; hint?: string | undefined; hoverStateEnabled?: boolean | undefined; items?: dxButtonGroupItem[] | undefined; keyExpr?: string | ((item: any) => any) | undefined; onContentReady?: ((e: ButtonGroupContentReadyEvent) => void) | undefined; onDisposing?: ((e: ButtonGroupDisposingEvent) => void) | undefined; onInitialized?: ((e: ButtonGroupInitializedEvent) => void) | undefined; onItemClick?: ((e: ItemClickEvent) => void) | undefined; onOptionChanged?: ((e: ButtonGroupOptionChangedEvent) => void) | undefined; onSelectionChanged?: ((e: SelectionChangedEvent) => void) | undefined; rtlEnabled?: boolean | undefined; selectedItemKeys?: any[] | undefined; selectedItems?: any[] | undefined; selectionMode?: SingleMultipleOrNone | undefined; stylingMode?: ButtonStyle | undefined; tabIndex?: number | undefined; visible?: boolean | undefined; width?: number | string | undefined; defaultSelectedItemKeys?: any[] | undefined; onSelectedItemKeysChange?: ((value: Array<any>) => void) | undefined; defaultSelectedItems?: any[] | undefined; onSelectedItemsChange?: ((value: Array<any>) => void) | undefined; buttonRender?: ((...params: any) => React.ReactNode) | undefined; buttonComponent?: React.ComponentType<any> | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ISuggestionsItemProps = React.PropsWithChildren<{ disabled?: boolean; elementAttr?: Record<string, any>; hint?: string; icon?: string; template?: ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | template; text?: string; type?: ButtonType | string; visible?: boolean; render?: (...params: any) => React.ReactNode; component?: React.ComponentType<any>; }>; declare const SuggestionsItem: ((props: ISuggestionsItemProps) => React.FunctionComponentElement<React.PropsWithChildren<{ disabled?: boolean | undefined; elementAttr?: Record<string, any> | undefined; hint?: string | undefined; icon?: string | undefined; template?: template | ((itemData: CollectionWidgetItem, itemIndex: number, itemElement: any) => string | any) | undefined; text?: string | undefined; type?: string | undefined; visible?: boolean | undefined; render?: ((...params: any) => React.ReactNode) | undefined; component?: React.ComponentType<any> | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type ITypingUserProps = React.PropsWithChildren<{ avatarAlt?: string; avatarUrl?: string; id?: number | string; name?: string; }>; declare const TypingUser: ((props: ITypingUserProps) => React.FunctionComponentElement<React.PropsWithChildren<{ avatarAlt?: string | undefined; avatarUrl?: string | undefined; id?: string | number | undefined; name?: string | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IUserProps = React.PropsWithChildren<{ avatarAlt?: string; avatarUrl?: string; id?: number | string; name?: string; }>; declare const User: ((props: IUserProps) => React.FunctionComponentElement<React.PropsWithChildren<{ avatarAlt?: string | undefined; avatarUrl?: string | undefined; id?: string | number | undefined; name?: string | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; export default Chat; export { Chat, IChatOptions, ChatRef, Alert, IAlertProps, Attachment, IAttachmentProps, Author, IAuthorProps, ChatItem, IChatItemProps, CustomSpeechRecognizer, ICustomSpeechRecognizerProps, DayHeaderFormat, IDayHeaderFormatProps, Editing, IEditingProps, FileUploaderOptions, IFileUploaderOptionsProps, Item, IItemProps, MessageTimestampFormat, IMessageTimestampFormatProps, SendButtonOptions, ISendButtonOptionsProps, SpeechRecognitionConfig, ISpeechRecognitionConfigProps, SpeechToTextOptions, ISpeechToTextOptionsProps, Suggestions, ISuggestionsProps, SuggestionsItem, ISuggestionsItemProps, TypingUser, ITypingUserProps, User, IUserProps }; import type * as ChatTypes from 'devextreme/ui/chat_types'; export { ChatTypes };