import type { Component, PropType, VNodeChild } from 'vue'; import type { ExtractPublicPropTypes } from '../../_utils'; import type { UploadFileInfo, UploadProps } from '../../upload'; export declare enum MessageBubbleType { MESSAGE = "message", SERVICE = "service" } export declare enum MessageBubbleServiceVariant { UNREAD = "unread", SYSTEM = "system", EVENT = "event", DIVIDER = "divider" } export declare enum MessageBubbleStatus { READ = "read", UNREAD = "unread", PENDING = "pending", RETRY = "retry" } export declare enum MessageBubbleAttachmentStatus { PENDING = "pending", UPLOADING = "uploading", FINISHED = "finished", ERROR = "error" } export interface MessageBubbleSlots { default?: (message: MessageBubbleMessagePayload) => VNodeChild; title?: (message: MessageBubbleMessagePayload) => VNodeChild; service?: (variant: MessageBubbleServiceVariant) => VNodeChild; messageStatus?: (message: MessageBubbleMessagePayload) => VNodeChild; bubbleActions?: (message: MessageBubbleMessagePayload) => VNodeChild; messageAttachment?: (message: MessageBubbleMessagePayload) => VNodeChild; 'upload-file-title'?: (file: UploadFileInfo) => VNodeChild; 'upload-file-subtitle'?: (file: UploadFileInfo) => VNodeChild; } export interface MessageBubbleAttachment { id: MessageBubbleId; name: string; url?: string; size?: number | string; thumbnail?: string; preview?: string; status?: MessageBubbleAttachmentStatus; percentage?: number; type?: string; } export interface MessageBubbleMessagePayload { id?: MessageBubbleId; isOwn: boolean; title?: MessageBubbleRenderContent; content?: MessageBubbleRenderContent; timestamp?: string | number | Date | (() => VNodeChild); status?: MessageBubbleStatus; attachments: MessageBubbleAttachment[]; } export interface MessageBubbleAction { key: string; label: string | (() => VNodeChild); handler: (message: MessageBubbleMessagePayload) => void; visible?: (message: MessageBubbleMessagePayload) => boolean; } export type MessageBubbleId = string | number | symbol; export type MessageBubbleRenderContent = string | (() => VNodeChild); export type MessageBubbleProps = ExtractPublicPropTypes; export declare const statusIconMapper: Partial>; export declare const messageBubbleProps: { readonly type: { readonly type: PropType; readonly default: MessageBubbleType.MESSAGE; }; readonly serviceVariant: { readonly type: PropType; readonly default: MessageBubbleServiceVariant.SYSTEM; }; readonly id: { readonly type: PropType; readonly default: undefined; }; readonly isOwn: { readonly type: BooleanConstructor; readonly default: false; }; readonly title: { readonly type: PropType; readonly default: undefined; }; readonly content: { readonly type: PropType; readonly default: undefined; }; readonly timestamp: { readonly type: PropType VNodeChild)>; readonly default: undefined; }; readonly status: { readonly type: PropType; readonly default: undefined; }; readonly attachments: { readonly type: PropType; readonly default: undefined; }; readonly uploadProps: { readonly type: PropType>; readonly default: undefined; }; readonly actions: { readonly type: PropType; readonly default: undefined; }; readonly retryText: { readonly type: StringConstructor; readonly default: undefined; }; readonly onRetry: { readonly type: PropType<(message: MessageBubbleMessagePayload) => void>; readonly default: undefined; }; readonly onAttachmentDownload: { readonly type: PropType<(attachment: MessageBubbleAttachment) => Promise | void>; readonly default: undefined; }; readonly theme: PropType; }>>; readonly themeOverrides: PropType; }>>>; readonly builtinThemeOverrides: PropType; }>>>; };