import { EventEmitter } from '../../stencil-public-runtime'; import { Meeting, Peer } from '../../types/dyte-client'; import { Chat, ChatChannel, Size } from '../../types/props'; import { IconPack } from '../../lib/icons'; import type { Message, TextMessage } from '@dytesdk/web-core'; import { DyteI18n } from '../../lib/lang'; import { States, UIConfig } from '../../exports'; export type ChatFilter = (message: Message) => boolean; /** * Fully featured chat component with image & file upload, emoji picker and auto-scroll. */ export declare class DyteChat { private chatUpdateListener; private chatPermissionUpdateListener; host: HTMLDyteChatElement; /** Meeting object */ meeting: Meeting; /** Config */ config: UIConfig; /** Size */ size: Size; /** Icon pack */ iconPack: IconPack; /** Language */ t: DyteI18n; /** disables private chat */ disablePrivateChat: boolean; /** Can current user pin/unpin messages */ canPinMessages: boolean; /** * @deprecated * Beta API, will change in future * List of target presets allowed as private chat recipient */ privatePresetFilter: String[]; /** * @deprecated * Beta API, will change in future * A filter function for messages to be displayed */ displayFilter: ChatFilter; unreadCountGroups: Record; chatGroups: Record; selectedGroup: string; now: Date; dropzoneActivated: boolean; showLatestMessageButton: boolean; canSend: boolean; canSendTextMessage: boolean; canSendFiles: boolean; canPrivateMessage: boolean; canSendPrivateTexts: boolean; canSendPrivateFiles: boolean; emojiPickerEnabled: boolean; chatRecipientId: string; participants: Peer[]; selectedParticipant: Peer; channels: ChatChannel[]; selectedChannelId: string; editingMessage: TextMessage | null; replyMessage: TextMessage | null; searchQuery: string; selectorState: 'desktop' | 'hide' | 'mobile'; creatingChannel: boolean; showPinnedMessages: boolean; /** Emits updated state data */ stateUpdate: EventEmitter; private channelMap; private isChatViewType; private isGroupCall; private resizeObserver; private onDragOver; private onDragLeave; private onDrop; connectedCallback(): void; onEditMessageInit(event: CustomEvent<{ payload: TextMessage; flags: { isReply?: boolean; isEdit?: boolean; }; }>): void; private disconnectMeeting; disconnectedCallback(): void; meetingChanged(meeting: Meeting, oldMeeting?: Meeting): void; private getFilteredParticipants; private onParticipantUpdate; private usePaginatedChat; chatGroupsChanged(chatGroups: Record): void; private updateUnreadCountGroups; private initializeChatGroups; private onDisplayFilterChanged; private addToChatGroup; private getRecipientPeerIds; private isPrivateChatSupported; private updateRecipients; private isTextMessagingAllowed; private isFileMessagingAllowed; channelSwitchListener(e: CustomEvent): void; private onChannelChanged; private createDMChannel; private cleanup; private onQuotedMessageDismiss; private onChannelCreateOrUpdate; private getMemberDisplayName; private onNewMessageHandler; private onEditMessageHandler; private onEditCancel; private onSearchHandler; private onSearchDismissed; private onChannelCreateClicked; private onPinMessage; private onDeleteMessage; private renderHeadlessComponents; private renderComposerUI; private renderFullChat; private getChannelItems; private getPrivateChatRecipients; private onTogglePinnedMessages; private renderPinnedMessagesHeader; render(): any; }