import { EventEmitter } from '../../stencil-public-runtime'; import { IconPack, Size } from '../../exports'; import { DyteI18n } from '../../lib/lang'; import type { DyteBasicParticipant, TextMessage } from '@dytesdk/web-core'; interface DyteText { type: 'text'; message: string; replyTo?: TextMessage; } interface DyteImage { type: 'image'; image: File; /** @deprecated use 'image' instead */ file: File; } interface DyteFile { type: 'file'; file: File; } export type DyteNewMessageEvent = DyteText | DyteImage | DyteFile; export declare class DyteChatComposerUi { private $textArea; /** Whether user can send text messages */ canSendTextMessage: boolean; /** Whether user can send file messages */ canSendFiles: boolean; /** Size */ size: Size; /** Icon pack */ iconPack: IconPack; /** Language */ t: DyteI18n; /** Whether to show emoji picker */ disableEmojiPicker?: boolean; /** prefill the composer */ prefill: { suggestedReplies?: string[]; editMessage?: TextMessage; replyMessage?: TextMessage; }; /** list of members that can be mentioned */ members?: DyteBasicParticipant[]; /** channel id */ channelId?: string; emojiPickerActive: boolean; mentionQuery: string; focusedMemberIndex: number; filePreview: string; /** Event emitted when new message is submitted */ onNewMessage: EventEmitter; /** Event emitted when message is edited */ onEditMessage: EventEmitter<{ id: string; message: string; channelId?: string; }>; /** Event emitted when message editing is cancelled */ onEditCancelled: EventEmitter; private fileReader; private fileToUpload; connectedCallback(): void; onChannelChanged(): void; componentDidRender(): void; get storageKey(): string; private handleKeyDown; private handleKeyUp; private onPaste; private generateFilePreview; private sendFile; private handleSendMessage; private cleanup; private handleEditMessage; private handleEditCancel; private uploadFile; private initializeTextField; private onMemberSelect; private getFilteredMembers; private cleanUpFileUpload; private renderFilePreview; private renderSuggestedReplies; private renderMenu; render(): any; } export {};